Я переносил пул zfs raidz в linux на новые диски через виртуальные устройства, которые были редкими файлами. Я использовал разделы на дисках, так как диски имеют разные размеры 1.9T каждый. Последний диск, который нужно добавить, - это диск 4 ТБ, и я разделил его, как и остальные, с разделом 1,9 ТБ, чтобы добавить в пул. Он использует таблицу разделов GPT. Когда я пытаюсь заменить последний файл с разделом 1.9T на диске 4T, я получаю следующее
zpool replace -f zfs_raid /zfs_jbod/zfs_raid/zfs.2 /dev/sdd1
cannot replace /zfs_jbod/zfs_raid/zfs.2 with /dev/sdd1: devices have different sector alignment
Как я могу изменить размер сектора раздела на 512, как и у других, или в случае сбоя можно изменить другие устройства пула на 4024? Видимо, все размеры логического сектора 512
cat /sys/block/sdd/queue/hw_sector_size
Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Поскольку я перераспределил диск, который содержал оригинальное 4-е файловое устройство, которое я пытаюсь заменить, но оно не сработало, я воссоздал файл устройства, так что в настоящее время он восстанавливается.
вывод состояния zpool:
NAME STATE READ WRITE CKSUM
zfs_raid DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
sda3 ONLINE 0 0 0
sdc2 ONLINE 0 0 0
sdb1 ONLINE 0 0 0
replacing-3 OFFLINE 0 0 0
/zfs_jbod/zfs_raid/zfs.2 OFFLINE 0 0 0
/mnt/butter2/zfs.4 ONLINE 0 0 0 (resilvering)
источник
Ответы:
Я нашел нужный вариант! в настоящее время пул повторно переносит новый раздел после выполнения следующей команды:
Хотя это возможно, это не рекомендуется, потому что вы получаете ужасную производительность, заставляя диск 4k типа записываться как 512b. Я усвоил трудный путь, который нужно добавить
при создании пула, чтобы избежать необходимости его повторного создания позже, поскольку в настоящее время невозможно выполнить «миграцию» до размера сектора 4 КБ.
источник