Моя система Ubuntu 12.04 имеет два zpools: rpool (содержащий корневую файловую систему) и rdata (содержащий все остальные данные). Первоначально для rdata были зеркальные диски размером 2 x 1 ТБ.
Поскольку я не мог обновить rdata до дисков 3TB (неправильный ashift), мне пришлось создать новый zpool из новых дисков 3TB: первоначально он назывался datapool. Затем я rsync просмотрел все данные, экспортировал rdata, импортировал пул данных как rdata и Боб - твой дядя. Затем я выключил и удалил старые диски. Однако ...
Когда я снова включился, статус zpool показывает
pool: rdata
state: UNAVAIL
status: One or more devices could not be used because the label is missing
or invalid. There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
a backup source.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
scan: none requested
config:
NAME STATE READ WRITE CKSUM
rdata UNAVAIL 0 0 0 insufficient replicas
mirror-0 UNAVAIL 0 0 0 insufficient replicas
scsi-SATA_WDC_WD10EADS-00_WD-WCAU47275172-part1 UNAVAIL 0 0 0
scsi-SATA_WDC_WD10EADS-00_WD-WCAU47283913-part1 UNAVAIL 0 0 0
pool: rpool
state: ONLINE
scan: scrub repaired 0 in 0h23m with 0 errors on Tue Jun 4 11:33:29 2013
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
ata-Maxtor_6Y120L0_Y31J3CLE-part2 ONLINE 0 0 0
errors: No known data errors
Как вы можете видеть, статус zpool по-прежнему показывает старые данные; который недоступен.
zpool import показывает
pool: rdata
id: 7033445233439275442
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
rdata ONLINE
mirror-0 ONLINE
scsi-SATA_ST3000DM001-1CH_W1F1EE1G ONLINE
scsi-SATA_ST3000DM001-1CH_W1F25SE2 ONLINE
Это правильные rdata
Вопрос: Как заставить Ubuntu забыть все о старом zpool?
sudo zpool destroy rdata
уничтожит старый пул (вам может понадобиться -f для форсирования).
sudo zpool export rdata
отключит пул.
sudo zpool import 7033445233439275442
импортирует новый пул. Вам нужно использовать идентификационный номер, так как есть два пула "rdata".
Поскольку вы работаете с корнем ZFS, остается только перестроить initramfs для обновления пулов:
sudo update-initramfs -c -k all
sudo update-grub
Перезагрузиться, и все в порядке. :)
Вы можете уничтожить пул в одной команде.
sudo zpool destroy <poolname>
Проверка состояния пула
sudo zpool status <poolname>