Учитывает ли ZFS размер автоматических запасных частей при использовании autoreplace=on?
Максимальная кодовая база ZFS для пула: zfs-linux (0.7.5-1ubuntu16.11)
Представьте себе пул, который неожиданно увеличился за счет добавления зеркал большего размера с точки зрения емкости физических дисков. Запчасти пошли на буксир. Новое зеркало, новая запаска. SAS Enterprise Grade на HBA. Зеркало 0 меньше 1, а 1 меньше 2. Каждое зеркало имеет запасное зеркало соответствующего размера.
pool: glue
state: ONLINE
scan: scrub repaired 0B in 27h55m with 0 errors on Mon Jul 12 04:19:14 2021
config:
NAME STATE READ WRITE CKSUM
glue ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
wwn-0x5000cca2a501f240 ONLINE 0 0 0
wwn-0x5000cca2975af090 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
wwn-0x5000cca271340e4c ONLINE 0 0 0
wwn-0x5000cca27134c71c ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
wwn-0x5000cca2972cce94 ONLINE 0 0 0
wwn-0x5000cca298192df4 ONLINE 0 0 0
spares
wwn-0x5000cca2558480fc AVAIL
wwn-0x5000cca2972be67c AVAIL
wwn-0x5000c50083bbae43 AVAIL
errors: No known data errors
Вот как это может выглядеть. Если используется автоматическое резервное копирование, а небольшой резервный диск пытается зеркально отразить диск, который больше его, сломается ли пул или возникнет ошибка, которую мы можем отсканировать?
Или будетautoreplaceделать ли проверки, чтобы убедиться, что запасные части присоединяются к зеркалам того же или меньшего размера? В таком случае, возможно ли, чтобы самый большой запасной элемент присоединился к самому маленькому зеркалу?
Я был бы рад взглянуть на код, если вы мне укажете. Более того, я хотел бы дать вам голос «за» и чек.
1 ответ
Автоматическая замена предназначена для замены дисков в одном и том же физическом месте и не имеет ничего общего с горячим/холодным резервированием.
Но похоже, что zfs пробует все запасные части по порядку, пока не найдет тот, который увенчается успехом. Я думаю, что это соответствующий исходный код: GitHub.