Дисковый массив что это
Что такое RAID-массив и зачем он нужен
Содержание
Содержание
В системах хранения данных критически важны сохранность и время восстановления в случае сбоя. Свою ценность, а в некоторых задачах и более высокую, имеет скорость работы накопителей. Использование RAID-массивов в различных конфигурациях — это поиск компромисса между перечисленными параметрами.
RAID — это технология объединения двух и более накопителей в единый логический элемент с целью повышения производительности и (или) отказоустойчивости отдельно взятого элемента массива.
RAID-массивы классифицируются по следующим параметрам:
RAID-контроллеры: аппаратные и не очень
По исполнению контроллеры делятся на программные и аппаратные. Программные реализуются непосредственно средствами операционной системы или на уровне материнской платы. Последние также известны как интегрированные, а также Fake-RAID. Они работают быстрее чисто софтверных решений за счет специального чипа для управления массивом. Недавно публиковался текст о развертывании таких технологий. Дополнительной железки при этом никакой нет и в любом случае будут использоваться ресурсы вычислительной машины.
Аппаратные RAID-контроллеры выполняются в форм-факторе платы PCIe либо в составе внешнего автономного устройства — дискового массива.
Они имеют на борту собственные процессор, память, BIOS и специальный интерфейс для конфигурации. Платы PCIe также комплектуются дополнительными модулями, сохраняющими данные, если произойдет сбой в электропитании: BBU с Li-Ion аккумулятором и ZMCP на базе суперконденсатора.
Оба модуля позволяют сделать сэйв содержимого кэша. После восстановления работы эти данные будут немедленно записаны на диск. Дисковый массив, будучи автономным, располагает собственными блоком питания и системой охлаждения.
Накопители подключаются к плате либо кабелями напрямую, либо через платы расширения. Автономные дисковые массивы содержат все накопители внутри себя, а наружу смотрит все тот же интерфейс PCIe (есть и другие варианты, например, USB 3.2 и Thunderbolt 3). Кстати, известный вид дисковых массивов — сетевое хранилище данных (NAS).
Что можно подключать к RAID-контроллеру
Следующий важный параметр, по которому различаются RAID-массивы, это поддержка интерфейсов накопителей. Не будем тревожить склеп с IDE-дисками, а констатируем, что по большому счету применяются три типа: SATA, SAS и NVMe. SAS — удел серверов, а вот остальные применяются повсеместно.
Есть программные и аппаратные RAID-контроллеры, которые умеют управлять массивом дисков с одним из интерфейсов. В формате PCIe есть и такие платы, которые реализуют режим Tri-Mode, позволяющий работать со смешанным составом накопителей.
Уровни RAID
Разобравшись с основными конструктивными особенностями RAID-контроллеров, перейдем к главной характеристике — поддержке уровней RAID. В подавляющим большинстве контроллеры работают с уровнями 0, 1, 1E, 10, 5, 5EE, 50, 6, 60. Другие занесены в красную книгу и на практике встречаются редко. Простейшие программные контроллеры позволяют создать RAID 0 и 1. Более продвинутые добавляют RAID 10 и 5. В аппаратных, как правило, такой перечень минимален, и многие платы поддерживают весь спектр уровней. Рассмотрим подробнее каждый из них.
Несколько важных нюансов для понимания эффективных объема и быстродействия, получаемых в результате объединения в массив:
RAID 0
Единственный массив, который не совсем оправдывает название, поскольку не обладает избыточностью. При этом скорость и эффективный объем максимальны. Данные разбиваются на одинаковые блоки, равномерно записываемые на все диски по очереди. Эти блоки называются страйпами, отсюда и сам RAID 0 часто именуют страйпом. Считывание данных также происходит параллельно. Здесь конечно же есть свое но.
Дело в том, что прирост производительности не прямо пропорционален количеству дисков (как хотелось бы). В силу специфики накопителей, особенно механических, выигрыш в конфигурации RAID 0 хорошо заметен только на операциях последовательного чтения. Другими словами, при работе с большими файлами. Типичная область применения — игры, видеомонтаж и рендеринг. При условии, что регулярно производится резервирование на сторонние накопители. Наряду с этим при случайном доступе к файлам разница с отдельно взятым диском уже не так ощутима. Более позитивная картина наблюдается в случае твердотельных накопителей, но они и так удовлетворяют большинству запросов по быстродействию.
В общем, в современных реалиях RAID 0 далеко не всегда оправдает свое применение, а основная задача RAID-массива все же в повышении надежности хранения данных.
Обратная сторона медали за скорость как раз в отсутствии избыточности, что означает нулевую отказоустойчивость. В случае сбоя хотя бы одного из элементов массива, восстановление всего содержимого практически невозможно.
RAID 1
RAID 1, известный как «зеркало», представляет собой другую крайность. Он максимально избыточен — в нем производится 100 % дублирование данных. Этот процесс «съедает» ровно половину объема массива. Число дисков в нем, соответственно, четное. Позволяет увеличить скорость чтения, но синхронная скорость записи в некоторых случаях падает. При отказе одного из дисков работа автоматически продолжается с дублером. Если доступна функция горячей замены дисков, то восстановление штатного режима происходит без остановки. RAID 1 идеален для чувствительных данных.
RAID 5
Состоит минимум из трех накопителей, при этом доступный объем уменьшается на один. Данные записываются в страйпы на все диски кроме одного, на котором размещается контрольная сумма этой части данных. Запись этого блока также чередуется между всеми накопителями, распределяя равномерную нагрузку. Если их больше четырех, то скорость чтения будет выше чем в RAID 1, но запись будет осуществляться медленнее. Контрольные суммы позволяют достать информацию в случае выхода из строя одного из элементов. Сама операция восстановления вызывает повышенную нагрузку на оставшиеся диски. Значительно падает производительность и риск утери всех данных в случае отказа еще одного диска. Желательно иметь опцию горячей замены для оперативного возвращения в нормальный режим работы.
Со всеми плюсами и минусами эти три уровня наиболее распространены и просты в развертывании.
RAID 6
Развитие RAID 5 по части надежности, позволяющее пережить потерю двух дисков. В данной конфигурации в каждом проходе пишется две независимые контрольные суммы на два накопителя. Требуется минимум четыре диска, из которых два уйдет на описанный алгоритм повышения отказоустойчивости. При этом скорость записи будет еще ниже, чем у RAID 5.
Следующие уровни — производные и комбинации перечисленных.
RAID 10
Неплохо было бы объединить достоинства RAID 0 (производительность) и RAID 1 (отказоустойчивость)? Встречайте RAID 10: страйп и зеркало, два в одном. Но и недостатки не забудьте — по-прежнему половина объема уходит на резерв. А что делать, за надежность приходится платить. В этом плане менее экономичен, чем RAID 5 И RAID 6, но более прост в восстановлении после сбоя.
RAID 50
По похожей схеме получаем RAID 50. Здесь уже страйпы не зеркалируются, а распределяются по двум и более массивам RAID 5. Требуется от шести дисков, скорость чтения значительно увеличивается. Кроме того, нивелируется и слабое место RAID 5 и RAID 6 — низкая скорость записи. Отрицательная сторона опять лежит в плоскости экономики. Из эффективного объема выпадают два диска, как и RAID 6, при этом массив выдержит потерю только одного.
RAID 60
Данный гибрид RAID 0 и RAID 6 призван решить проблему производительности последнего. Отказоустойчивость остается на том же уровне, как и часть объема накопителей, отводимая на реализацию алгоритмов контроля целостности данных. Дисков для такого удовольствия понадобится как минимум восемь.
RAID 1E
Еще одна вариация совмещения алгоритмов зеркалирования и чередования данных. Записанные на одной итерации страйпы повторно записываются на следующей, но в обратном порядке. Таким образом в RAID 1E можно использовать три диска. Массив останется тем же зеркалом с эффективным объемом, равным половине от исходного.
RAID 5EE
Один из вариантов использования RAID 5 с резервным диском. Отличается тем, что этот диск не простаивает до выхода из строя одного из элементов массива, а используется наряду с другими. На каждой итерации помимо страйпов данными и контрольной суммой записывается резервный блок. Сделано это для ускорения процесса сборки массива в случае нештатной ситуации. Платой за такую опцию становится второй диск, исключаемый из эффективного объема RAID 5EE.
В таблице ниже приведены сравнительные характеристики рассмотренных уровней RAID.
Не забудем и про массив с незатейливым названием JBOD (дословно переводится как «просто связка дисков»). Строго говоря, он не является RAID-массивом. Это объединенные в один несколько дисков без дополнительной функциональности. Позволяет развернуть логический диск с объемом, который недоступен в рамках одного накопителя. Такой диск полезен для перемещения файлов больших размеров в несколько терабайт.
Вместо заключения напомним самое главное правило для всех, кто хранит данные в RAID-массиве: RAID-массив ≠ бэкап! Регулярно делайте резервные копии данных на независимые носители и да пребудет с вами сила.
Что такое RAID-массивы
Содержание:
RAID (Redundant Array of Independent Disks или «избыточный массив независимых дисков») — метод виртуализации, позволяющий объединять несколько дисков в единый логический том, имеющий лучшие характеристики. Чтобы описать, чем RAID может быть полезен на практике, рассмотрим теоретические основы, классификацию и особенности использования данной технологии.
Для чего применяется RAID
RAID позволяет превратить несколько дисковых накопителей в один большой и быстрый диск. Его можно использовать в качестве хранилища данных с функцией автоматического резервного копирования или настроить как системный диск повышенной отказоустойчивости.
У технологии RAID-массивов существуют и минусы. Платой за быстродействие и надежность становится усложнение системы, а также необходимость закупать дополнительное оборудование. Однако эта цена невелика по сравнению с потенциальными убытками, которые может понести пользователь при потере информации или внезапной поломке накопителя.
Преимущества технологии
Условие применения
Технологию можно использовать не во всех случаях. Для этого требуется ее аппаратная и программная поддержка. BIOS должен содержать настройку вида «SATA Configuration: RAID». Если же ее по каким-либо причинам нет, то необходимо «перепрошить» базовую систему ввода-вывода.
В случае, когда поддержка RAID программным методом невозможна, нужно подключить дополнительное устройство — RAID-контроллер и установить соответствующий драйвер. В последних версиях ОС Linux (Ubuntu 20.04, POP-OS 20.04 и т. д.) драйвер для включения режима RAID инсталлируется автоматически.
Основные понятия
В основе функционирования RAID-массивов лежит несколько базовых терминов, без которых нельзя понять принципы работы этой технологии.
Типы RAID-массивов
Классификация RAID по уровням
Основные отличия между конфигурациями или уровнями RAID заключаются в методах формирования и размещения данных, а также в алгоритмах распределения информации на носителях. Базовые типы RAID-массивов — RAID 0 и RAID 1. Остальные уровни считаются их производными, сочетающими в себе достоинства той или иной базовой модели.
RAID 0
Технология виртуализации RAID 0 называется striping («чередование»). Для ее реализации применяется от 2 до 4 накопителей, которые совместно выполняют процедуру «чтения/записи».
При записи информация разделяется на блоки, которые одновременно сохраняются на накопители. Первый блок — на один, второй — на другой жесткий диск и так далее. Производительность массива возрастает прямо пропорционально количеству накопителей в системе. То есть, 4 диска будут работать в 2 раза быстрее, чем два.
Однако, такая конфигурация RAID-массива чревата потерей данных, что уменьшает безопасность хранения информации. Это объясняется структурой каждого файла. Последний состоит из определенной последовательности блоков (байт), поскольку каждый из них записывается на разные диски и происходит «нарушение» его целостности. Если один накопитель выходит из строя, то блок «теряется». При этом получается «битый» файл, который практически невозможно восстановить.
Достоинства
Недостатки
Использование
Применяется в приложениях для скоростного обмена информацией, в хранилищах временных файлов. Также RAID 0 нужен для систем, использующих некритичные по важности массивы данных.
RAID 1
Технология RAID 1 называется мirroring («зеркалирование»). Она подразумевает использование от 2 до 4 накопителей. Однако при этом теряется половина объема дисков, поскольку это пространство используется резервированием данных.
Простыми словами, если RAID-система состоит из 2 жестких дисков, то при выходе одного из них информация не потеряется полностью, поскольку один накопитель является точной копией другого.
Достоинства
Недостатки
Использование
Уровень RAID 1 необходимо применять для увеличения надежности хранения информации на серверах.
RAID 5
Технология RAID 5 («чередование с чётностью») считается наиболее распространенной и безопасной. Для подобной конфигурации необходимо минимум 3 диска, а максимальное допустимое количество — 16.
При записи информации происходит разделение на блоки данных, но с одним условием — на один из дисков, называемый блок «чётность данных» (Parity Drive, PD), происходит запись информации для восстановления. Этот подход позволяет спасти данные при повреждении одного из накопителей.
RAID 5 может реализовываться программным методом при помощи специальных утилит, но IT-специалисты рекомендуют все же отдать предпочтение аппаратному способу.
Достоинства
Недостатки
Использование
Технология виртуализации 5 уровня (RAID 5) прекрасно подойдет для безопасного хранения данных, но при этом не будет утрачена производительность. Очень часто ее используют файловые серверы.
RAID 6
Технология виртуализации 6 уровня («чередование с двойной чётностью») похожа на RAID 5. Отличие состоит в записи информации для восстановления на два диска. Первый — блок «чётность данных» (PD) используются в архитектуре RAID 5 для резервного хранения данных. Второй диск «чётности» дублирует работу первого. Его работа основана на коде Рида-Соломона (Reed-Solomon), поэтому диск часто имеет краткое обозначение — RS или Q.
Благодаря использованию принципа двойной чётности, система может перенести без потерь информации отказ сразу двух жестких дисков. Однако для создания RAID 6 потребуется минимум четыре накопителя.
Достоинства
Недостатки
Использование
RAID 6 является более надежной конфигурацией, чем RAID пятого уровня. Она часто применяется на файловых серверах, где используются большие объемы данных.
RAID 10
Технология виртуализации 10 — «гибрид» RAID нулевого и первого уровней, сочетающая в себе все их преимущества.
Достоинства
Недостатки
Использование
Гибридная технология RAID 10 используется в тех же случаях, что и RAID 0 и RAID 1.
Утилиты для создания
В операционной системе Windows есть встроенная утилита для создания RAID. Однако она поддерживает только RAID-массивы первого. Поэтому для более сложных операций, а также для платформ на базе Unix/Linux требуется установка стороннего ПО.
Перед выбором соответствующей конфигурации RAID-массива, специалисты рекомендуют сохранить информацию на отдельный носитель. При создании или удалении RAID-системы данные на дисках уничтожаются.
Mdadm
Для операционных систем на основе Linux рекомендуется использовать штатную утилиту «mdadm», которую необходимо предварительно установить через терминал.
Основные возможности
Установка
Для инсталляции утилиты требуется ввести в терминале следующие команды:
При этом в систему будет инсталлирована утилита, а также необходимый набор библиотек.
MegaRAID Storage Manager (MSM)
Бесплатное приложение от Microsoft, разработанное с целью обеспечения гибкого управления RAID-системами в ОС Windows.
Основные возможности
Установка
Заключение
Использование RAID-массивов позволяет реализовать повышенние потенциала нескольких дисковых накопителей за счет их объединения. В частности, растет производительность и надежность хранения информации. Однако эффективность работы массива будет сильно зависеть от того, каким способом он создан. Оптимальным является аппаратный метод на базе отдельного RAID-контроллера, но его организация потребует больших финансовых вложений.
Помимо способа реализации для работы RAID важна конфигурация массивов, которая делится на несколько базовых уровней. Оптимальным уровнем считается RAID-10, поскольку он обеспечивает не только высокую скорость обработки данных, но и их сохранность.
Виртуальный сервер от Eternalhost — надежная площадка для современного веб-ресурса! Быстрые NVMe диски, реальная защита от DDoS, техподдержка 24/7.
RAID Levels
Совершенствуя системы хранения данных
Перенос центра тяжести с процессоро-ориентированных на дата-ориентированные приложения обуславливает повышение значимости систем хранения данных. Вместе с этим проблема низкой пропускной способности и отказоустойчивости характерная для таких систем всегда была достаточно важной и всегда требовала своего решения.
В современной компьютерной индустрии в качестве вторичной системы хранения данных повсеместно используются магнитные диски, ибо, несмотря на все свои недостатки, они обладают наилучшими характеристиками для соответствующего типа устройств при доступной цене.
Особенности технологии построения магнитных дисков привели к значительному несоответствию между увеличением производительности процессорных модулей и самих магнитных дисков. Если в 1990 г. лучшими среди серийных были 5.25″ диски со средним временем доступа 12мс и временем задержки 5 мс (при оборотах шпинделя около 5 000 об/м 1 ), то сегодня пальма первенства принадлежит 3.5″ дискам со средним временем доступа 5 мс и временем задержки 1 мс (при оборотах шпинделя 10 000 об/м). Здесь мы видим улучшение технических характеристик на величину около 100%. В тоже время, быстродействие процессоров увеличилось более чем на 2 000%. Во многом это стало возможно благодаря тому, что процессоры имеют прямые преимущества использования VLSI (сверхбольшой интеграции). Ее использование не только дает возможность увеличивать частоту, но и число компонент, которые могут быть интегрированы в чип, что дает возможность внедрять архитектурные преимущества, которые позволяют осуществлять параллельные вычисления.
Сложившуюся ситуацию можно охарактеризовать как кризис ввода-вывода вторичной системы хранения данных.
Увеличиваем быстродействие
Невозможность значительного увеличения технологических параметров магнитных дисков влечет за собой необходимость поиска других путей, одним из которых является параллельная обработка.
Если расположить блок данных по N дискам некоторого массива и организовать это размещение так, чтобы существовала возможность одновременного считывания информации, то этот блок можно будет считать в N раз быстрее, (без учёта времени формирования блока). Поскольку все данные передаются параллельно, это архитектурное решение называется parallel-access array (массив с параллельным доступом).
Массивы с параллельным доступом обычно используются для приложений, требующих передачи данных большого размера.
Некоторые задачи, наоборот, характерны большим количеством малых запросов. К таким задачам относятся, например, задачи обработки баз данных. Располагая записи базы данных по дискам массива, можно распределить загрузку, независимо позиционируя диски. Такую архитектуру принято называть independent-access array (массив с независимым доступом).
Увеличиваем отказоустойчивость
Таким образом, возникает необходимость повышения отказоустойчивости дисковых массивов. Для повышения отказоустойчивости массивов используют избыточное кодирование. Существует два основных типа кодирования, которые применяются в избыточных дисковых массивах — это дублирование и четность.
Дублирование, или зеркализация — наиболее часто используются в дисковых массивах. Простые зеркальные системы используют две копии данных, каждая копия размещается на отдельных дисках. Это схема достаточно проста и не требует дополнительных аппаратных затрат, но имеет один существенный недостаток — она использует 50% дискового пространства для хранения копии информации.
Второй способ реализации избыточных дисковых массивов — использование избыточного кодирования с помощью вычисления четности. Четность вычисляется как операция XOR всех символов в слове данных. Использование четности в избыточных дисковых массивах уменьшает накладные расходы до величины, исчисляемой формулой: НРhdd=1/Nhdd (НРhdd — накладные расходы; Nhdd — количество дисков в массиве).
История и развитие RAID
Несмотря на то, что системы хранения данных, основанные на магнитных дисках, производятся уже 40 лет, массовое производство отказоустойчивых систем началось совсем недавно. Дисковые массивы с избыточностью данных, которые принято называть RAID (redundant arrays of inexpensive disks — избыточный массив недорогих дисков) были представлены исследователями (Петтерсон, Гибсон и Катц) из Калифорнийского университета в Беркли в 1987 году. Но широкое распространение RAID системы получили только тогда, когда диски, которые подходят для использования в избыточных массивах стали доступны и достаточно производительны. Со времени представления официального доклада о RAID в 1988 году, исследования в сфере избыточных дисковых массивов начали бурно развиваться, в попытке обеспечить широкий спектр решений в сфере компромисса — цена-производительность-надежность.
С аббревиатурой RAID в свое время случился казус. Дело в том, что недорогими дисками во время написания статьи назывались все диски, которые использовались в ПК, в противовес дорогим дискам для мейнфрейм (универсальная ЭВМ). Но для использования в массивах RAID пришлось использовать достаточно дорогостоящую аппаратуру по сравнению с другой комплектовкой ПК, поэтому RAID начали расшифровывать как redundant array of independent disks 2 — избыточный массив независимых дисков.
2 — Определение RAID Advisory Board
RAID 0 был представлен индустрией как определение не отказоустойчивого дискового массива. В Беркли RAID 1 был определен как зеркальный дисковый массив. RAID 2 зарезервирован для массивов, которые применяют код Хемминга. Уровни RAID 3, 4, 5 используют четность для защиты данных от одиночных неисправностей. Именно эти уровни, включительно по 5-й были представлены в Беркли, и эта систематика RAID была принята как стандарт де-факто.
Для стандартизации продуктов RAID в 1992 году был организован промышленный консорциум — RAID Advisory Board. Подробно о работе консорциума можно узнать на сайте: www.raidadvisory.org.
Уровни RAID 3,4,5 достаточно популярны, имеют хороший коэффициент использования дискового пространства, но у них есть один существенный недостаток — они устойчивы только к одиночным неисправностям. Особенно это актуально при использовании большого количества дисков, когда вероятность одновременного простоя более чем одного устройства увеличивается. Кроме того, для них характерно длительное восстановление, что также накладывает некоторые ограничения для их использования.
На сегодняшний день разработано достаточно большое количество архитектур, которые обеспечивают работоспособность массива при одновременном отказе любых двух дисков без потери данных. Среди всего множества стоит отметить two-dimensional parity (двухпространственная четность) и EVENODD, которые для кодирования используют четность, и RAID 6, в котором используется кодирование Reed-Solomon.
В схеме использующей двухпространственную четность, каждый блок данных участвует в построении двух независимых кодовых слов. Таким образом, если из строя выходит второй диск в том же кодовом слове, для реконструкции данных используется другое кодовое слово.
Минимальная избыточность в таком массиве достигается при равном количестве столбцов и строчек. И равна: 2 x Square (NDisk) (в «квадрат»).
Если же двухпространственный массив не будет организован в «квадрат», то при реализации вышеуказанной схемы избыточность будет выше.
Архитектура EVENODD имеет похожую на двухпространственную четность схему отказоустойчивости, но другое размещение информационных блоков, которое гарантирует минимальное избыточное использование емкостей. Так же как и в двухпространственной четности каждый блок данных участвует в построении двух независимый кодовых слов, но слова размещены таким образом, что коэффициент избыточности постоянен (в отличие от предыдущей схемы) и равен: 2 x Square (NDisk).
Используя два символа для проверки, четность и недвоичные коды, слово данных может быть сконструировано таким образом, чтобы обеспечить отказоустойчивость при возникновении двойной неисправности. Такая схема известна как RAID 6. Недвоичный код, построенный на основе Reed-Solomon кодирования, обычно вычисляется с использованием таблиц или как итерационный процесс с использованием линейных регистров с обратной связью, а это — относительно сложная операция, требующая специализированных аппаратных средств.
Учитывая то, что применение классических вариантов RAID, реализующих для многих приложений достаточную отказоустойчивость, имеет часто недопустимо низкое быстродействие, исследователи время от времени реализуют различные ходы, которые помогают увеличить быстродействие RAID систем.
В 1996 г. Саведж и Вилкс предложили AFRAID — часто избыточный массив независимых дисков (A Frequently Redundant Array of Independent Disks). Эта архитектура в некоторой степени приносит отказоустойчивость в жертву быстродействию. Делая попытку компенсировать проблему малой записи (small-write problem), характерную для массивов RAID 5-го уровня, разрешается оставлять стрипинг без вычисления четности на некоторый период времени. Если диск, предназначенный для записи четности, занят, то ее запись откладывается. Теоретически доказано, что 25% уменьшение отказоустойчивости может увеличить быстродействие на 97%. AFRAID фактически изменяет модель отказов массивов устойчивых к одиночным неисправностям, поскольку кодовое слово, которое не имеет обновленной четности, восприимчиво к отказам дисков.
Вместо того чтобы приносить в жертву отказоустойчивость, можно использовать такие традиционные способы увеличения быстродействия, как кэширование. Учитывая то, что дисковый трафик имеет пульсирующий характер, можно использовать кеш память с обратной записью (writeback cache) для хранения данных в момент, когда диски заняты. И если кеш-память будет выполнена в виде энергонезависимой памяти, тогда, в случае исчезновения питания, данные будут сохранены. Кроме того, отложенные дисковые операции, дают возможность объединить в произвольном порядке малые блоки для выполнения более эффективных дисковых операций.
Существует также множество архитектур, которые, принося в жертву объем, увеличивают быстродействие. Среди них — отложенная модификация на log диск и разнообразные схемы модификации логического размещение данных в физическое, которые позволяют распределять операции в массиве более эффективно.
Один из вариантов — parity logging (регистрация четности), который предполагает решение проблемы малой записи (small-write problem) и более эффективного использования дисков. Регистрация четности предполагает отложение изменения четности в RAID 5, записывая ее в FIFO log (журнал регистраций типа FIFO), который размещен частично в памяти контроллера и частично на диске. Учитывая то, что доступ к полному треку в среднем в 10 раз более эффективен, чем доступ к сектору, с помощью регистрации четности собираются большие количества данных модифицированной четности, которые потом все вместе записываются на диск, предназначенный для хранения четности по всему треку.
Архитектура floating data and parity (плавающие данные и четность), которая разрешает перераспределить физическое размещение дисковых блоков. Свободные сектора размещаются на каждом цилиндре для уменьшения rotational latency (задержки вращения), данные и четность размещаются на этих свободных местах. Для того, чтобы обеспечить работоспособность при исчезновении питания, карту четности и данных нужно сохранять в энергонезависимой памяти. Если потерять карту размещения все данные в массиве будут потеряны.
Virtual stripping — представляет собой архитектуру floating data and parity с использованием writeback cache. Естественно реализуя положительные стороны обеих.
Кроме того, существуют и другие способы повышения быстродействия, например распределение RAID операций. В свое время фирма Seagate встроила поддержку RAID операций в свои диски с интерфейсом Fibre Chanel и SCSI. Что дало возможность уменьшить трафик между центральным контроллером и дисками в массиве для систем RAID 5. Это было кардинальным новшеством в сфере реализаций RAID, но технология не получила путевки в жизнь, так как некоторые особенности Fibre Chanel и SCSI стандартов ослабляют модель отказов для дисковых массивов.
Для того же RAID 5 была представлена архитектура TickerTAIP. Выглядит она следующим образом — центральный механизм управления originator node (узел-инициатор) получает запросы пользователя, выбирает алгоритм обработки и затем передает работу с диском и четность worker node (рабочий узел). Каждый рабочий узел обрабатывает некоторое подмножество дисков в массиве. Как и в модели фирмы Seagate, рабочие узлы передают данные между собой без участия узла-инициатора. В случае отказа рабочего узла, диски, которые он обслуживал, становятся недоступными. Но если кодовое слово построено так, что каждый его символ обрабатывается отдельным рабочим узлом, то схема отказоустойчивости повторяет RAID 5. Для предупреждения отказов узла-инициатора он дублируется, таким образом, мы получаем архитектуру, устойчивую к отказам любого ее узла. При всех своих положительных чертах эта архитектура страдает от проблемы «ошибки записи» («;write hole»). Что подразумевает возникновение ошибки при одновременном изменении кодового слова несколькими пользователями и отказа узла.
Следует также упомянуть достаточно популярный способ быстрого восстановления RAID — использование свободного диска (spare). При отказе одного из дисков массива, RAID может быть восстановлен с использованием свободного диска вместо вышедшего из строя. Основной особенностью такой реализации есть то, что система переходит в свое предыдущее (отказоустойчивое состояние без внешнего вмешательства). При использовании архитектуры распределения свободного диска (distributed sparing), логические блоки spare диска распределяются физически по всем дискам массива, снимая необходимость перестройки массива при отказе диска.
Для того чтобы избежать проблемы восстановления, характерной для классических уровней RAID, используется также архитектура, которая носит название parity declustering (распределение четности). Она предполагает размещение меньшего количества логических дисков с большим объемом на физические диски меньшего объема, но большего количества. При использовании этой технологии время реакции системы на запрос во время реконструкции улучшается более чем вдвое, а время реконструкции — значительно уменьшается.
Архитектура основных уровней RAID
Теперь давайте рассмотрим архитектуру основных уровней (basic levels) RAID более детально. Перед рассмотрением примем некоторые допущения. Для демонстрации принципов построения RAID систем рассмотрим набор из N дисков (для упрощения N будем считать четным числом), каждый из которых состоит из M блоков.
Данные будем обозначать — Dm,n, где m — число блоков данных, n — число подблоков, на которые разбивается блок данных D.
Диски могут подключаться как к одному, так и к нескольким каналам передачи данных. Использование большего количества каналов увеличивает пропускную способность системы.
RAID 0. Дисковый массив без отказоустойчивости (Striped Disk Array without Fault Tolerance)
Представляет собой дисковый массив, в котором данные разбиваются на блоки, и каждый блок записываются (или же считывается) на отдельный диск. Таким образом, можно осуществлять несколько операций ввода-вывода одновременно.
RAID 1. Дисковый массив с дублированием или зеркалка (mirroring)
Зеркалирование — традиционный способ для повышения надежности дискового массива небольшого объема. В простейшем варианте используется два диска, на которые записывается одинаковая информация, и в случае отказа одного из них остается его дубль, который продолжает работать в прежнем режиме.
RAID 2. Отказоустойчивый дисковый массив с использованием кода Хемминга (Hamming Code ECC).
Избыточное кодирование, которое используется в RAID 2, носит название кода Хемминга. Код Хемминга позволяет исправлять одиночные и обнаруживать двойные неисправности. Сегодня активно используется в технологии кодирования данных в оперативной памяти типа ECC. И кодировании данных на магнитных дисках.
В данном случае показан пример с фиксированным количеством дисков в связи с громоздкостью описания (слово данных состоит из 4 бит, соответственно ECC код из 3-х).
RAID 3. Отказоустойчивый массив с параллельной передачей данных и четностью (Parallel Transfer Disks with Parity)
Данные разбиваются на подблоки на уровне байт и записываются одновременно на все диски массива кроме одного, который используется для четности. Использование RAID 3 решает проблему большой избыточности в RAID 2. Большинство контрольных дисков, используемых в RAID уровня 2, нужны для определения положения неисправного разряда. Но в этом нет нужды, так как большинство контроллеров в состоянии определить, когда диск отказал при помощи специальных сигналов, или дополнительного кодирования информации, записанной на диск и используемой для исправления случайных сбоев.
RAID 4. Отказоустойчивый массив независимых дисков с разделяемым диском четности (Independent Data disks with shared Parity disk)
Данные разбиваются на блочном уровне. Каждый блок данных записывается на отдельный диск и может быть прочитан отдельно. Четность для группы блоков генерируется при записи и проверяется при чтении. RAID уровня 4 повышает производительность передачи небольших объемов данных за счет параллелизма, давая возможность выполнять более одного обращения по вводу/выводу одновременно. Главное отличие между RAID 3 и 4 состоит в том, что в последнем, расслоение данных выполняется на уровне секторов, а не на уровне битов или байтов.
RAID 5. Отказоустойчивый массив независимых дисков с распределенной четностью (Independent Data disks with distributed parity blocks)
Этот уровень похож на RAID 4, но в отличие от предыдущего четность распределяется циклически по всем дискам массива. Это изменение позволяет увеличить производительность записи небольших объемов данных в многозадачных системах. Если операции записи спланировать должным образом, то, возможно, параллельно обрабатывать до N/2 блоков, где N — число дисков в группе.
RAID 6. Отказоустойчивый массив независимых дисков с двумя независимыми распределенными схемами четности (Independent Data disks with two independent distributed parity schemes)
Данные разбиваются на блочном уровне, аналогично RAID 5, но в дополнение к предыдущей архитектуре используется вторая схема для повышения отказоустойчивости. Эта архитектура является устойчивой к двойным отказам. Однако при выполнении логической записи реально происходит шесть обращений к диску, что сильно увеличивает время обработки одного запроса.
Современные RAID контроллеры позволяют комбинировать различные уровни RAID. Таким образом, можно реализовать системы, которые объединяют в себе достоинства различных уровней, а также системы с большим количеством дисков. Обычно это комбинация нулевого уровня (stripping) и какого либо отказоустойчивого уровня.
RAID 10. Отказоустойчивый массив с дублированием и параллельной обработкой
Эта архитектура являет собой массив типа RAID 0, сегментами которого являются массивы RAID 1. Он объединяет в себе очень высокую отказоустойчивость и производительность.
RAID 30. Отказоустойчивый массив с параллельной передачей данных и повышенной производительностью.
Представляет собой массив типа RAID 0, сегментами которого являются массивы RAID 3. Он объединяет в себе отказоустойчивость и высокую производительность. Обычно используется для приложений требующих последовательной передачи данных больших объемов.
RAID 50. Отказоустойчивый массив с распределенной четностью и повышенной производительностью
Являет собой массив типа RAID 0, сегментами которого являются массивы RAID 5. Он объединяет в себе отказоустойчивость и высокую производительность для приложений с большой интенсивностью запросов и высокую скорость передачи данных.
RAID 7. Отказоустойчивый массив, оптимизированный для повышения производительности. (Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates). RAID 7® является зарегистрированной торговой маркой Storage Computer Corporation (SCC)
Рассмотрим теперь стандартные уровни вместе для сравнения их характеристик. Сравнение производится в рамках архитектур, упомянутых в таблице.
Некоторые аспекты реализации RAID систем
Нельзя однозначно сказать, что какая-либо реализация лучше, чем другая. Каждый вариант организации массива удовлетворяет тем или иным потребностям пользователя в зависимости от финансовых возможностей, количества пользователей и используемых приложений.
Каждая из вышеперечисленных реализаций базируется на исполнении программного кода. Отличаются они фактически тем, где этот код исполняется: в центральном процессоре компьютера (программная реализация) или в специализированном процессоре на RAID контроллере (аппаратная реализация).
Главное преимущество программной реализации — низкая стоимость. Но при этом у нее много недостатков: низкая производительность, загрузка дополнительной работой центрального процессора, увеличение шинного трафика. Программно обычно реализуют простые уровни RAID — 0 и 1, так как они не требуют значительных вычислений. Учитывая эти особенности, RAID системы с программной реализацией используются в серверах начального уровня.
Аппаратные реализации RAID соответственно стоят больше чем программные, так как используют дополнительную аппаратуру для выполнения операций ввода вывода. При этом они разгружают или освобождают центральный процессор и системную шину и соответственно позволяют увеличить быстродействие.
Шинно-ориентированные реализации представляют собой RAID контроллеры, которые используют скоростную шину компьютера, в который они устанавливаются (в последнее время обычно используется шина PCI). В свою очередь шинно-ориентированные реализации можно разделить на низкоуровневые и высокоуровневые. Первые обычно не имеют SCSI чипов и используют так называемый RAID порт на материнской плате со встроенным SCSI контроллером. При этом функции обработки кода RAID и операций ввода/вывода распределяются между процессором на RAID контроллере и чипами SCSI на материнской плате. Таким образом, центральный процессор освобождается от обработки дополнительного кода и уменьшается шинный трафик по сравнению с программным вариантом. Стоимость таких плат обычно небольшая, особенно если они ориентированы на системы RAID — 0 или 1 (есть также реализации RAID 3, 5, 10, 30, 50, но они дороже), благодаря чему они понемногу вытесняют программные реализации с рынка серверов начального уровня. Высокоуровневые контроллеры с шинной реализацией имеют несколько другую структуру, чем их младшие братья. Они берут на себя все функции, связанные с вводом/выводом и исполнением RAID кода. Кроме того, они не так зависимы от реализации материнской платы и, как правило, имеют больше возможностей (например, возможность подключения модуля для хранения информации в кеш в случае отказа материнской платы или исчезновения питания). Такие контроллеры обычно стоят дороже низкоуровневых и используются в серверах среднего и высокого уровня. Они, как правило, реализуют RAID уровней 0,1, 3, 5, 10, 30, 50. Учитывая то, что шинно-ориентированные реализации подключаются прямо к внутренней PCI шине компьютера, они являются наиболее производительными среди рассматриваемых систем (при организации одно-хостовых систем). Максимальное быстродействие таких систем может достигать 132 Мбайт/с (32bit PCI) или же 264 Мбайт/с (64bit PCI) при частоте шины 33MHz.
Всех этих недостатков можно избежать, используя автономные подсистемы. Эти системы имеют полностью автономную внешнюю организацию и в принципе являют собой отдельный компьютер, который используется для организации систем хранения информации. Кроме того, в случае удачного развития технологии оптоволоконных каналов быстродействие автономных систем ни в чем не будет уступать шинно-ориентированным системам.
Обычно внешний контроллер ставится в отдельную стойку и в отличие от систем с шинной организацией может иметь большое количество каналов ввода/вывода, в том числе и хост-каналов, что дает возможность подключать к системе несколько хост-компьютеров и организовывать кластерные системы. В системах с автономным контроллером можно реализовать горячее резервирование контроллеров.
Одним из недостатков автономных систем остается их большая стоимость.
Учитывая вышесказанное, отметим, что автономные контроллеры обычно используются для реализации высокоемких хранилищ данных и кластерных систем.