Migrating zfs root on FreeBSD 9
January 15th, 2013
Чтобы не забыть чего и куда, запишу небольшую инструкцию.
Исходные данные: FreeBSD 9-STABLE, root на ZFS (feature flags), один WD5000BEVT, GPT, Intel D2500CCE (т. е. у нас всего две SATA дырдочки)
Задача: Перенести всю систему на два новых WD5000BPKT, ZFS Mirror, ZFS swap volume.
Понадобятся нам для этого ровно две вещи: Live-CD/USB с ZFS не меньшей версии, чем текущий пул и возможность погасить сервер на время, достаточное, для переноса всех данных. На 300GB у меня ушло чуть больше двух часов. В качестве Live CD выступил mfsBSD (какая-то из бета-версий с ZFS feature flags).
- Устанавливаем оба новых диска и загружаемся с Live CD.
# foreach i (0 1)
foreach? gpart create -s gpt ada$i
foreach? gpart add -s 512K -b 40 -t freebsd-boot -l boot$i ada$i
foreach? gpart add -b 2048 -t freebsd-zfs -l disk$i ada$i
foreach? gnop create -S 4096 /dev/gpt/disk$i
foreach? end
# zpool create -o altroot=/mnt system mirror /dev/gpt/disk0.nop /dev/gpt/disk1.nop
# zpool export system
# gnop destroy /dev/gpt/disk0.nop /dev/gpt/disk1.nop
# zpool import -o altroot=/mnt -d /dev/gpt system
# zfs create -V 4G system/swap
# zfs set org.freebsd:swap=on system/swap
# zfs set checksum=off system/swap
# shutdown -p now
- Устанавливаем старый диск как ada1 и снова загружаемся с Live CD.
# mkdir /tmp/old
1 Не нужно, если не меняется имя пула.
# zpool import -f -R /tmp/old zroot old
# zpool import -f -o altroot=/mnt -o cachefile=/tmp/zpool.cache -d /dev/gpt system
# zfs snapshot -r old@safe
# zfs send -v -R old@safe | zfs receive -v -F system
# zfs destroy -r system@safe
# zfs set mountpoint=/ system
# cp /tmp/zpool.cache /mnt/boot/zfs/
1# sed -i -e 's/zfs:zroot/zfs:system/' /mnt/boot/loader.conf
# gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 ada0
# zfs umount -a
# zfs set mountpoint=legacy system
# zpool set bootfs=system system
# shutdown -p now
- Устанавливаем второй новый диск обратно в ada1, загружаемся с ada0 и дожидаемся окончания resilvering.
# zfs clear system
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
И да, опасения по поводу большего шума Black-ов не оправдались. Экспериментов не ставил, но субъективно шуршит так же, как и раньше.
No comments yet.