zfs и замена малого диска на большой

Применимость: FreeBSD, Solaris, Nexenta


Задача:

У меня системный диск 80Гб и нужно переместить систему на новый диск 500Gb

Решение:

Используется ZFS mirroring.

Шаги:

1) Копировать данные и ОС на новый HDD

a) подключить новый диск 500 GB HDD

b) создать раздела «Solaris 2 'с FDISK и сделать его активным (загрузочным)

# fdisk /dev/rdsk/c4t0d0p0

c) создать раздел s0 на все цилиндры, кроме цилиндра 0

d) Зеркалировать существующий пул ZFS (rpool) на новый HDD

# zpool attach -f rpool c1t0d0s0 c4t0d0s0

Примечания:

  • c1t0d0 - 80 GB HDD (старый HDD)
  • c4t0d0- 500 GB HDD (новый HDD)
  • опция -f нужна для обхода предупреждения - «partition 0 overlaps partition 2»

e) ждать завершения синхронизации ( проверить командой zpool status)

f) Установить Grub на новый HDD

# installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c4t0d0s0

Примечание: этот шаг специфичен для X86, на Sparc, используйте

# installboot -F zfs /usr/platform/<arch>/lib/fs/zfs/bootblk /dev/rdsk/c4t0d0s0

g) Разделить пул rpool путем отделения на новый жесткий диск для создания нового пула:

# zpool split rpool rpool2 c4t0d0s0

Примечания:

  • Это удаляет устройство c4t0d0s0 из пула rpool и создает новый пул с именем rpool2 на этом диске.
  • Функция zpool split оступна на Solaris 10 09/10 и более поздних
  • Я решил не отсоединять старый жесткий диск, потому что хотел, чтобы можно было его использовать в случае возникновения проблем

2) Физически заменить старый жесткий диск на новый

а) завершить работу сервера

b) заменить внутренний жесткий диск 80 Гб на новый

3) Переименовать rpool2 в rpool

а) загрузить систему с Express LiveCD

b) импортировать, переименовать и экспортировать системный пул

# zpool import rpool2 rpool  
# zpool export rpool         

4) Загрузиться с новвого HDD

5) Увеличить размера пула для использовать всего диска (раздела)

# zpool set autoexpand=on rpool

Готово.

Ссылки: