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
Готово.