RAIDz добавит возможность добавлять диски
Разработчик-основатель OpenZFS Мэтью Аренс на прошлой неделе объявил пул реквест для одной из самых востребованных функций ZFS — расширения RAIDz. Она позволит добавлять новые диски.
Хранилище vdev / blog.open-e.comZFS (Zettabyte File System) — это 128-битная файловая система, созданная в Sun Microsystems в 2004 году. Она объединяет концепции файловой системы, менеджера логических дисков и физических носителей. Сердцем системы хранения ZFS является zpool. Он содержит vdev с дисками. Записи разбиваются на блоки, которые затем распределяются между ними.
Хранилище vdev может быть одного из пяти типов: одинарный диск, зеркало, RAIDz1, RAIDz2 или RAIDz3. Есть возможность добавлять больше vdev в zpool или присоединить больше дисков к одинарному или зеркальному vdev. Обычный RAID предлагает возможность расширения и/или изменения формы массива. Например, можно добавить один диск в массив RAID6 с шестью дисками. Однако такая задача может потребовать недели или больше, при этом производительность массива за все время будет серьезно ограничена.
Ранее ZFS избегала такого расширения. Изначально система была разработана для использования в бизнесе, а снижение производительности хранилища в течение нескольких дней, как правило, требует больших затрат, чем покупка нового набора оборудования. Расширение в реальном времени также потенциально очень опасно, поскольку оно включает в себя чтение и перезапись всех данных.
Четырехдисковый RAIDz1 (слева), расширенный до пятидискового RAIDz1 (справа). Данные по-прежнему записываются полосами шириной четыре / arstechnica.comС практической точки зрения новая функция расширения vdev просто добавляет новые возможности к существующей команде, а именно, zpool attach, которая обычно используется для добавления диска к однодисковому vdev (превращая его в зеркало) или добавления дополнительного диска к зеркалу (например, превращение двухдискового зеркала в трехдисковый).
Появится возможность присоединять новые диски к существующему RAIDz vdev. Это увеличивает ширину vdev, но не меняет тип, поэтому шестидисковый RAIDz2 vdev станет семидисковым RAIDz2 vdev, но не семидисковым RAIDz3.
После ввода команды zpool attach начинается расширение. В это время каждый блок или запись считываются из расширяемого vdev и затем перезаписываются. Секторы перезаписанного блока распределяются по всем дискам в vdev, включая новый, но ширина самой полосы не изменяется. Таким образом, RAIDz2 vdev, расширенный с шести до десяти дисков, по-прежнему будет заполнен полосами шириной шесть после завершения расширения.
Пользователи получат дополнительное пространство, доступное на новых дисках, но эффективность хранения расширенных данных не улучшится. В вышеприведенном случае с шестидисковым RAIDz2 с номинальной эффективностью хранения 67% при переходе к RAIDz2 с десятью дисками с номинальной эффективностью хранения 80% старые расширенные данные по-прежнему записываются полосами шириной шесть.
Добавление одного или нескольких новых дисков в vdev также означает, что он должен иметь несколько более высокую пропускную способность. Несмотря на то, что устаревшие блоки не охватывают всю ширину vdev, добавленные диски дают больше пространства для распределения. Однако это вряд ли даст возможность читать или записывать два блока одновременно, поскольку улучшения скорости, вероятно, будут незначительными.
Однако новая расширенная конфигурация должна работать так же хорошо, как исходная нерасширенная версия.
Пока известно лишь, что расширение RAIDz не попадет в грядущий выпуск OpenZFS 2.1