Почему удаление vdev ZFS не работает, если в пуле есть какие-либо устройства RAIDZ?

Во-первых: я совершенно согласен с тем, что на данный момент это так, и не ищу немедленного решения, а скорее пытаюсь понять техническое ограничение этого ограничения.

Я работаю в основном с ZFS в Linux, но насколько я понимаю, все разработки FOSS ZFS на данный момент основаны на OpenZFS, поэтому информация о любом/всех ее вариантах приветствуется.

Справочная страница zfs removeсостояния:

Виртуальные устройства верхнего уровня можно удалить только в том случае, если хранилище основного пула не содержит виртуальное устройство RAIDZ верхнего уровня, все виртуальные устройства верхнего уровня имеют одинаковый размер сектора и загружены ключи для всех зашифрованных наборов данных.

Я понимаю и/или могу догадаться о причинах большинства этих ограничений, но я не совсем понимаю, почему простое наличие виртуального устройства RAIDZ препятствует удалению любого (даже зеркального или неизбыточного) виртуального устройства.

Я понимал/предполагал, что с точки зрения пула каждое виртуальное устройство действует как «немое блочное устройство», при этом фактическая избыточность/зеркалирование происходит на уровне виртуального устройства (о чем свидетельствует неоднократное предупреждение об отсутствии избыточности на уровне пула: все избыточность должна существовать на уровне виртуального устройства, и выход из строя одного виртуального устройства приведет к отключению всего пула).

При этом предположении не должно иметь значения, какие именно данные vdev удаляются, не говоря уже о наличии «плохого» (raidz) vdev в пуле.

Очевидно, что это предположение (или какое-то другое, о котором я не могу думать) неверно. Может кто-нибудь просветить меня в чем?

Единственное предположение, которое я оставил, и которое я не смог проверить, это то, что не существует абсолютной причины, по которой RAIDz vdevs предотвратил бы удаление vdev, но что некоторое взаимодействие некоторых специфичных для RAIDZ операций и удаления устройства просто не реализовано/не протестировано/ проверено на данный момент.

0 ответов

Другие вопросы по тегам