Как создать зеркало ZFS с дисками разных размеров сектора?

467
Louis

Попытка восстановить зеркало в пуле ZFS:

louis@watson:~$ sudo zpool status pool: watson state: ONLINE scan: resilvered 1.55T in 7h22m with 0 errors on Fri Oct 6 03:19:16 2017 config:  NAME STATE READ WRITE CKSUM watson ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 wwn-0x50014ee0ad3655a3 ONLINE 0 0 0 ata-Hitachi_HUA723020ALA640_MK0271YGJA5BSA ONLINE 0 0 0 wwn-0x50014ee058480994 ONLINE 0 0 0 

Когда я пытаюсь добавить диск, я получаю сообщение « Устройства имеют различное выравнивание секторов »:

louis@watson:~$ sudo zpool attach -f watson wwn-0x50014ee058480994 scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP cannot attach scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP to wwn-0x50014ee058480994: devices have different sector alignment 

Вот репорта сектора для новых и целевых дисков:

 louis@watson:~$ sudo hdparm -I /dev/disk/by-id/scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP | fgrep Sector Logical Sector size: 512 bytes Physical Sector size: 4096 bytes Logical Sector-0 offset: 0 bytes louis@watson:~$ sudo hdparm -I /dev/disk/by-id/wwn-0x50014ee058480994 | fgrep Sector Logical/Physical Sector size: 512 bytes * SCT Long Sector Access (AC1) 

Как я могу смешать эти диски в один пул?

3
Добавьте его вручную, но вы потеряете производительность. DGoiko 6 лет назад 0

1 ответ на вопрос

2
user121391

Я предполагаю, что это относится к этой проверке (подробности скопированы с пользователя DeHackEd ):

Основное назначение - это своего рода «принудительная» команда: когда у вас есть пул, созданный с помощью ashift = 9, вы пытаетесь заменить / подключить диск с секторами 4 тыс. ZFS это не нравится (и на то есть веская причина), поэтому указание -o ashift = 9 отменяет определение размера сектора и заставляет ZFS его принять.

[...]

Нет, требование заключается в том, что ashift_of (вставка_диска) <= ashift_of (существующий_дев). В противном случае EDOM будет возвращен, а операция не будет продолжена. Значение вставки_диска считывается с самого диска, но может быть переопределено с помощью -o ashift = значение со значением, удовлетворяющим приведенному выше неравенству, чтобы ZFS принимала диск.

Обоснование состоит в том, что подключение диска со слишком большой скоростью сдвига приведет к такой потрясающе низкой производительности (в любом случае, для ротационных носителей), что пользователи будут недовольны. Я сделал это, мое 500G (наполовину заполненное 1TB дисков) зеркало заняло 24 часа для восстановления, когда должно было быть 2 часа. Это было вызвано смешением 512 и 4096 байт сектора дисков.

[...]

И наоборот. Пул имел ashift = 9, но вставка диска с секторами 4k (ashift = 12) приводит к неравенству 12 <= 9, что неверно. Использование zpool ... -o ashift = 9 делает его 9 <= 9, и ZFS принимает его.

Таким образом, вы можете добавить свой диск с помощью sudo zpool attach -o ashift=9 -f watson wwn-0x50014ee058480994 scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP, но ваша производительность может пострадать. Альтернативой было бы воссоздать пул с правильно выровненными дисками или не смешивать и не согласовывать размеры секторов (что означает использование разных дисков).

Отличная находка! Обещаю ... постараюсь после завершения резервного копирования. Louis 6 лет назад 0
Возникли проблемы с резервной копией. Можете взглянуть на это? https://serverfault.com/questions/882591/more-accurate-way-to-obtain-zfs-filesystem-size Louis 6 лет назад 0
Это работает! Стабилизация кажется медленной на 50 МБ / с. Но это устаревшая версия с небольшим количеством пользователей, поэтому определенно выигрыш в затратах / усилиях. :) Louis 6 лет назад 0

Похожие вопросы