Raid z2: Терминология — RAID-Z2 — AlterBit.ru

В RAIDz появится расширение массива добавлением дисков / Хабр

Разработчик-основатель OpenZFS Мэтью Аренс на прошлой неделе объявил пул реквест для одной из самых востребованных функций ZFS — расширения RAIDz. Она позволит добавлять новые диски.

Хранилище vdev / blog.open-e.com

ZFS (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

Stable IT: Что такое RAID-Z?

Уверен, многие довольно часто сталкивались с этим модным термином в сфере хранения данных, но мало кто знает, что он из себя представляет. Итак, давайте разберемся, что это за зверь и почему он так крут.

Для начала стоит отметить, что это не какая-то абсолютно новая технология, а, скорее, работа над проблемами, которые имели место в RAID-5. Какие именно недостатки она исправляет? Во-первых, устраняется проблема под название «Write hole», во-вторых, в RAID-5, если была изменена лишь часть страйпа (страйп — это группа блоков, каждый из которых расположен на отдельном жестком диске), то необходимо перечитывать весь страйп для того, чтобы пересчитать его данные четности (а это наносит серьезный урон производительности). То есть, если идет запись всего страйпа целиком, то мы просто асинхронно ее выполняем на всех дисках. Если же переписывается только часть страйпа, то необходимо сначала выполнить синхронное чтение перед тем, как что-либо писать. У железных RAID-5 контроллеров это решается посредством сохранения записываемых данных в кэше на то время пока будет выполнено синхронное чтение.

Как же указанные проблемы решаются в RAID-Z? Во-первых, в ZFS RAID-Z используется динамический размер старйпа (что автоматически устраняет случай «частичной перезаписи страйпа»). Таким образом, устранение частичных записей страйпа вместе с принципом записи copy-on-write (новые данные не записываются поверх старых, а пишутся в новое место, а потом атомарно происходит переустановка указателя на новое расположение данных) полностью решают проблему «Write hole». Также, RAID-Z имеет преимущество в скорости, так как ему не нужно выполнять чтение перед записью (так как отсутствуют частичные записи страйпов).

Уход от фиксированного размера страйпа, очевидно, усложняет устройство RAID-массива, так как теперь невозможно пройти весь массив и, допустим, разбив его на блоки 64 килобайта высчитать их ключевые суммы. В связи с динамическим размером страйпа необходимо где-то хранить метаданные о размере страйпов. Что таит в себе еще одну проблему — теперь файловая система (где хранятся эти метаданные) и RAID массив представляю собой единое целое, что делает невозможным раздельную реализицию файловой системы и RAID контроллера. То есть, требуется взгляд как со стороны механики, так и со стороны логики устройства ФС.

Усложнение структуры файловой системы не может не сказаться на скорости работы. Но будет ли это приводить к замедлению? Совершенно нет, так как при синхронизации будут копироваться только блоки с данными, а пустые блоки не будут. Также стоит обратить внимание, что в ZFS блоки хешируются 256 битными ключевыми суммами, в то время как в обычном RAID используется простейший xor.

ZFS RAID-Z также обеспечивает беспрецедентный уровень защиты данных от повреждения по механическим причинам, так как защищает не только от отказа отдельного жесткого диска, но и позволяет обнаруживать отказы отдельных блоков на диске. Когда Вы считываете с RAID-Z блок он сравнивается с его ключевой суммой. Если данные не соответствуют ключевой сумме, то ZFS считывает данные о четности и пытается реконструировать данные, а также при этом выясняет, какой из дисков послужил источником проблемы и, разумеется, уведомляет об этом администратора. Таким образом, приложение запросившее данные получает корректные данные без каких-либо ошибок.

Очень важнй чертой технологии ZFS RAID-Z является то, что она не предъявляет никаких требований к аппаратной части сервера (не считая повышенных требований к оперативной памяти).

Кроме RAID-Z также существует его модификация RAID-Z2 (близка к RAID-6), которая устойчива к отказу двух жестких дисков. Кроме этого, уже существует (но пока только-только портирована во FreeBSD) версия RAID-Z3, которая выдерживает отказ до трех дисков массива.

По материалам: http://blogs.sun.com/bonwick/entry/raid_z и http://en.wikipedia.org/wiki/Non-standard_RAID_levels#RAID-Z

Справочник по типам RAIDZ

Калькулятор RAIDZ Что такое RAIDZ? Ссылка на типы RAIDZ

Существует множество различных способов организации данных в массиве RAIDZ. Эти способы называются «RAIDZ-уровнями». Различные уровни RAIDZ имеют разные характеристики скорости и отказоустойчивости.

Полосатые пулы не являются отказоустойчивыми. RAIDZ1, RAIDZ2 и RAIDZ3 в разной степени отказоустойчивы. — в случае выхода из строя одного из жестких дисков массива данные по-прежнему восстанавливаются на лету и не происходит прерывания доступа.

Есть и более сложные схемы, представляющие собой комбинации базовых уровней RAIDZ. Хотя вы можете использовать традиционные имена для такой вложенной схемы, например RAID50 или RAID60, Названия «Z» для них не вводятся, и часто макеты просто называются по схемам, использованным для их создание как зеркало + чередование или RAIDZ + зеркало. Однако они выходят за рамки данной ссылки.


Полоса Зеркало РАЙДЗ RAIDZ2 RAIDZ3 Полоса+зеркало
Минимальное количество дисков 1 2 2 4 5 4
Отказоустойчивость Нет (Н-1) диск 1 диск 2 диска 3 диска (N-1) диск в каждом N-дисковом зеркале
Заголовок дискового пространства Нет (Н-1)/Н 1 диск 2 диска 3 диска (N-1)*P для P-образной планки над N-дисковыми зеркалами
Скорость чтения Быстро Быстро Медленно, см.
ниже
Быстро
Скорость записи Быстро Ярмарка Медленно, см. ниже Ярмарка
Стоимость оборудования Дешево От высокого к высшему Высокий Очень высокий Очень высокий (диски) От высокого к высшему

Чередование — это способ хранения данных на дисковом массиве. Непрерывный поток данных делится на блоки, и блоки записываются на несколько дисков по определенному шаблону. Чередование используется со всеми уровнями RAIDZ из-за специфики файловой системы ZFS, которая используется в пулах RAIDZ.

Размер блока выбирается динамически для каждой строки данных, записываемой в пул ZFS.

Stripe pool и RAID0 почти равны друг другу. Хотя ZFS обеспечивает контрольную сумму, чтобы избежать скрытого повреждения данных, нет избыточных данных (нет четности или зеркала) для восстановления данных в случае сбоя диска. Еще одно отличие состоит в том, что ZFS хранит записи метаданных в нескольких копиях независимо от схемы RAIDZ верхнего уровня. Однако пользовательские данные по-прежнему хранятся в единственном экземпляре в чередующемся пуле ZFS. Хотя эту конфигурацию не рекомендуется использовать отдельно, его по-прежнему можно рассматривать как часть избыточных схем, таких как RAID10 (чередование плюс зеркало).

Как и RAID0, чередующийся пул ZFS вообще не обеспечивает отказоустойчивости. Если какой-либо из дисков в массиве выходит из строя, выходит из строя весь пул и все данные теряются.

Решения ZFS с чередованием дешевы, и они используют всю емкость диска за вычетом дискового пространства, используемого для избыточности метаданных, что является обязательным. в пуле ZFS независимо от макета.

Если чередующийся пул ZFS дает логический сбой, но все диски присутствуют и исправны, вы можете выполнить Восстановление страйп-пула ZFS относительно легко использовать программу восстановления ReclaiMe Pro ZFS. Однако следует помнить, что в случае сбоя диска данные теряются безвозвратно.

Диск 1 Диск 2 Диск 3
1 5 3
6 2 7
4 8 9

Требуется как минимум два диска и в целом очень похож на RAID1. Использование в сочетании с файловой системой ZFS дает вам определенные преимущества, такие как автоматическая контрольная сумма. Хотя контрольная сумма просто позволяет обнаруживать повреждение данных, это все же то, чего не хватает большинству традиционных систем RAID. Еще одно отличие от обычного RAID1 в том, что с помощью ZFS можно создавать системы хранения с использованием нескольких зеркал, а не только 2 или 3 зеркал в рамках традиционной технологии RAID1.

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

Обычный RAID1 хранит две идентичные копии данных на двух жестких дисках и не использует блоки и полосы. Зеркальные пулы ZFS могут хранить столько копий данных, сколько вы пожелаете, и используют блоки и полосы: копии хранятся внутри определенные «ряды».

Зеркальный пул ZFS использует емкость (N-1) дисков для обеспечения отказоустойчивости. Это составляет (N-1) \ N потери емкости для массива. Например, если вы объедините четыре диска по 500 ГБ в зеркале ZFS, вы получите только 500 ГБ полезного дискового пространства, а 1,5 ТБ пойдет на резервирование.

Диск 1 Диск 2
1 2
2 1
3 3

RAIDZ подходит как большое, надежное, относительно дешевое хранилище.

RAIDZ (иногда называемый RAIDZ1, указывающий на одиночную четность) больше всего похож на традиционный RAID5 и требует как минимум 2 диска. Как и в обычном RAID5, каждая «строка» вместе с блоками данных хранит рассчитанную функцию четности. над блоками данных, что позволяет системе пережить отказ одного диска. Разница заключается в схеме размещения строк, которая больше не является одинаковой для набора дисков; другое отличие — размер блока, который может варьироваться в зависимости от строки. Кроме того, в пулах ZFS RAIDz больше не различаются правый/левый, синхронный/асинхронный макеты RAID5.

Если все диски в порядке, запросы на чтение распределяются по дискам равномерно, обеспечивая скорость чтения, аналогичную скорости чередующегося пула. Теоретически для N-дискового массива чередующийся пул обеспечивает в N раз более быстрое чтение, а RAIDZ должен обеспечивать (N-1) раз быстрее читает. Однако количество блоков в конкретной строке зависит от размера записываемого блока данных. а также на размер блока модуля ZFS, поэтому мы можем говорить только об ускорении скорости чтения (N-1) раз в качестве верхнего предела. Если один из дисков вышел из строя, скорость чтения снижается до скорости одного диска, потому что все блоки подряд необходимы для обслуживания запроса.

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

Емкость одного диска-участника используется для обеспечения отказоустойчивости. Например, если у вас есть 10 дисков по 1 ТБ каждый, результирующая емкость RAIDZ будет 9ТБ.

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

Диск 1 Диск 2 Диск 3 Диск 4
П 1,2 1 2
П 3,4,5 3 4 5
6 Р 6
7 Р 7,8 8

RAIDZ2 — это большое, высоконадежное и относительно дорогое хранилище, для которого требуется как минимум 3 диска.

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

Скорость чтения N-диска RAIDZ2 до (N-2) раз выше (примените те же соображения, что и для RAIDZ выше), чем скорость одного диска, аналогично RAIDZ. Если один или два диска выходят из строя в RAIDZ2, скорость чтения значительно снижается из-за восстановления отсутствующих блоков. требует чтения всей строки.

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

Емкость двух дисков-участников используется для обеспечения отказоустойчивости. Для массива из 10 дисков по 1 ТБ каждый результирующая емкость RAIDZ2 составит 8 ТБ.

Восстановление пула RAIDZ2 в случае сбоя довольно сложно, но в любом случае вам нужно Программное обеспечение для восстановления ZFS для этого.

Диск 1 Диск 2 Диск 3 Диск 4 Диск 5
П 1,2 Q 1,2 1 2
П 3,4,5 Q 3,4,5 3 4 5
Р 7 Q 7 7
П 8,9 Q 8,9 8 9

RAID с тройной четностью. Хотя еще в 2009 г. люди обсуждали, что RAID с тройной четностью должен заменить традиционный RAID5/6 и даже предложил название — RAID7, только в среде ZFS идея RAID с тройной четностью была разработана и реализована в полном объеме. С помощью RAIDZ3 вы можете создать систему хранения, которая позволяет допустить отказ 3 дисков до потери данных. Для создания пула RAIDZ3 необходимо как минимум 4 диска.

Диск 1 Диск 2 Диск 3 Диск 4 Диск 5 Диск 6
Р1 1,2,3 Р2 1,2,3 Р3 1,2,3 1 2 3
Р1 4,5 П2 4,5 Р3 4,5 4 5
Р1 6,7,8,9 Р2 6,7,8,9 Р3 6,7,8,9 6 7 8
9 Р1 10,11 Р2 10,11 Р3 10,11 10 11
Р1 12 Р2 12 Р3 12 12

Полосатый зеркальный пул — это большое, быстрое, надежное, но дорогое хранилище.

Пул чередующихся зеркал использует несколько (минимум два) зеркальных набора дисков для хранения идентичных копий содержимого.

Схема очень похожа на RAID10 и традиционно требует минимум четырех устройств. Предполагая, что зеркала в среде ZFS можно создавать на любом количестве дисков (начиная с 2 дисков), можно легко создать кучу практически любых возможных зеркал (по количеству дочерних дисков) а затем чередовать данные по ним.

Диск 1 Диск 2 Диск 3 Диск 4
1 3 4 6
5 5 2 2
7 1 6 4
3 7 8 8

Этот калькулятор RAIDz был создан командой ReclaiMe с сайта www. ReclaiMe-Pro.com. Проверьте наши другие материалы, если вы заинтересованы в

  • Как восстановить данные с RAID0.
  • Как восстановить данные с RAID5.
  • Как восстановить файловую систему RAW.
  • Как отформатировать жесткий диск.

Что выбрать: RAID-Z1 или RAID-Z2?

Дугофтеабачи
Дилетант