Поддержка raid 5 что такое. Уровни RAID — краткие теоретические сведения

Краткий обзор технологии RAID

В этом документе описываются базовые элементы технологии RAID и приводится краткий обзор различных уровней RAID.

  • RAID 2, 3

    RAID 4, 5

    Таблица: преимущества и недостатки основных уровней RAID

RAID - это акроним от Redundant Array of Independent Disks .

Дисковый массив - это набор дисковых устройств, работающих вместе, чтобы повысить скорость и надежность системы ввода/вывода. Этим набором устройств управляет специальный RAID-контроллер (контроллер массива ), который инкапсулирует в себе функции размещения данных по массиву; а для всей остальной системы позволяет представлять весь массив как одно логическое устройство ввода/вывода. За счет параллельного выполения операций чтения и записи на нескольких дисках, массив обеспечивает повышенную скорость обменов по сравнению с одним большим диском.

Массивы также могут обеспечивать избыточное хранение данных, с тем, чтобы данные не были потеряны в случае выхода из строя одного из дисков. В зависимости от уровня RAID, проводится или зеркалирование или распределение данных по дискам.

Уровни RAID

Каждый из четырех основных уровней RAID использует уникальный метод записи данных на диски, и поэтому все уровни обеспечивают различные преимущества. Уровни RAID 1,3 и 5 обеспечивают зеркалирование или хранение битов четности; и поэтому позволяют восстановить информацию в случае сбоя одного из дисков.

RAID уровня 0

Технология RAID 0 также известна как распределение данных (data striping ). С применение этой технологии, информация разбивается на куски (фиксированные объемы данных, обычно именуемы блоками); и эти куски записываются на диски и считываются с них в параллель. С точки зрения производительности это означает два основных преимущества :

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

    снижается латентность случайного доступа; несколько запросов к различным небольшим сегментам информации могут выполнятся одновременно.

Недостаток : уровень RAID 0 предназначен исключительно для повышения производительности, и не обеспечивает избыточности данных. Поэтому любые дисковые сбои потребуют восстановления информации с резервных носителей.

Контроллер Массива

Диск 1

Диск 2

Диск 3

Диск 4

Диск 5

Сегмент 1

Сегмент 2

Сегмент 3

Сегмент 4

Сегмент 5

Сегмент 6

Сегмент 7

Сегмент 8

Сегмент 9

Сегмент 10

рис. 1. Схема работы массива и распределение данных по дискам для RAID 0. Примечание: сегмент - это 2 дисковых блока по 512 байт.

RAID уровня 1

Технология RAID 1 также известна как зеркалирование (disk mirroring ). В этом случае, копии каждого куска информации хранятся на отдельном диске; или, обычно каждый (используемый) диск имеет "двойника", который хранит точную копию этого диска. Если происходит сбой одного из основных дисков, этот замещается своим "двойником". Производительность произвольного чтения может быть улучшена, если для чтения информации будет использоваться тот из "двойников", головка которого расположена ближе к требуемому блоку.

Время записи может оказаться несколько больше , чем для одного диска, в зависимости от стратегии записи: запись на два диска может производится либо в параллель (для скорости), либо строго последовательно (для надежности).

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

Диск 1 (данные)

Диск 2 (копия диска 1)

Диск 3 (данные)

Диск 4 (копия диска 3)

Диск 5 (свободный)

Сегмент 1

Сегмент 1

Сегмент 2

Сегмент 2

Сегмент 3

Сегмент 3

Сегмент 4

Сегмент 4

рис. 2. Распределение данных по дискам для RAID 1.

RAID уровней 2 и 3

Технология RAID уровней 2 и 3 предусматривает параллельную ("в унисон") работу всех дисков. Эта архитектура требует хранения битов четности для каждого элемента информации, распределяемого по дискам. Отличие RAID 3 от RAID 2 состоит только в том, что RAID 2 использует для хранения битов четности несколько дисков, тогда как RAID 3 использует только один. RAID 2 используется крайне редко.

Если происходит сбой одного диска с данными, то система может восстановить его содержимое по содержимому остальных дисков с данными и диска с информацией четности.

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

Диск 1 (данные)

Диск 2 (данные)

Диск 3 (данные)

Диск 4 (данные)

Диск 5 (информация четности)

Байт четности

Байт четности

рис. 3. Распределение данных по дискам для RAID 3.

RAID уровней 4 и 5

RAID 4 исправляет некоторые недостатки технологии RAID 3 за счет использования больших сегментов информации, распределяемых по всем дискам, за исключением диска с информацией четности. При этом для небольших объемов информации используется только диск, на котором находится нужная информация. Это означает, что возможно одновременное исполнение нескольких запросов на чтение. Однако запросы на запись порождают блокировки при записи информации четности. RAID 4 используется крайне редко.

Технология RAID 5 очень похожа на RAID 4, но устраняет связанные с ней блокировки. Различие состоит в том, что информация четности распределяется по всем дискам массива. В данном случае возможны как одновременные операции чтения, так и записи.

Данная технология хорошо подходит для приложений, которые работают с небольшими объемами данных, например, для систем обработки транзакций.

Диск 1

Диск 2

Диск 3

Диск 4

Диск 5

Сегмент четности

Сегмент 1

Сегмент 2

Сегмент 3

Сегмент 4

Сегмент 5

Сегмент четности

Сегмент 6

Сегмент 7

Сегмент 8

Сегмент 9

Сегмент 10

Сегмент четности

Сегмент 11

Сегмент 12

рис. 4. Распределение данных по дискам для RAID 5.

Преимущества и недостатки основных уровней RAID

Уровень RAID

Механизм обеспечения надежности

Эффективная емкость массива

Производительность

Область применения

приложения без существенных требований к надежности

зеркалирование

высокая или средняя

приложения без существенных требований к стоимости

четность

приложения, работающие с большими объемами данных (графика, CAD/CAM и пр.)

четность

приложения, работающие с небольшими объемами данных (обработка транзакций)

Мы столкнулись с такой проблемой, что большинство серверов, приобретаемых пользователями наших программ, поставляются с дисковым массивом, сконфигурированным в уровень RAID 5. Впоследствии системные администраторы не хотят тратить время на переконфигурирование, или просто боятся что-то менять в уже настроенном и работающем компьютере. В результате производительность работы с базой данных, установленной на такой сервер, оказывается меньше, чем была на старом, который проработал на предприятии 3-4 года. Наверное, стремление поставщиков сконфигурировать дисковый массив именно в RAID пятого уровня можно объяснить желанием удивить клиента огромным размером дискового пространства. Сисадмины, в свою очередь, часто просто не обладают достаточными знаниями о том как работает RAID массив того или иного уровня. Цель данной статьи дать ответы на два вопроса:

Почему нельзя использовать RAID 5 для сервера базы данных?

Как оптимальным образом сконфигурировать RAID контроллер для размещения базы данных сервера Firebird?

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

Как работает RAID 5?

Рассмотрим упрощенную схему работы массива из четырех дисков. Один из дисков выделяется для хранения контрольной суммы. Три – доступны для размещения данных. На рисунке ниже, диски с полезной информацией названы A, B и C. Диск D хранит контрольные суммы.

Минимальный объем информации, который контроллер считывает или записывает на один диск, называется стрипом (strip). В параметрах большинства контроллеров, с которыми нам приходилось сталкиваться, указывается не размер стрипа, а размер страйпа (stripe) – блока информации, который распределяется на все диски массива. На рисунке ниже один страйп выделен более темным цветом:


Размер страйпа равен размеру стрипа помноженного на количество дисков в массиве. Т.е. в случае с четырьмя дисками и размером страйпа 64К, минимальное количество информации, которое контроллер способен записать или считать с диска, равняется 64 / 4 = 16К.

Контрольная сумма, которая попадает на диск D, рассчитывается по следующей формуле:

D = A xor B xor C

Благодаря транзитивности операции xor в случае выхода из строя одного из дисков с полезной информацией её можно восстановить xor-ированием данных оставшихся дисков, включая диск с контрольной суммой. Например, вышел из строя диск B.


При запросе блока информации с диска B контроллер восстановит его по формуле:

B = A xor C xor D

Сервер Firebird обменивается с дисковой подсистемой страницами данных. Оптимальный размер страницы в большинстве случаев составляет 8К, что намного меньше размера страйпа и в большинстве случаев даже меньше чем размер стрипа. Ситуации, когда на диск записываются последовательно расположенные страницы, также достаточно редки. Таким образом, если в нашем примере происходит запись информации на диск А, то контроллеру придется выполнить следующие операции:

  1. Прочитать данные стрипов с дисков B и C. Две операции чтения.
  2. Рассчитать новую контрольную сумму. Две операции xor.
  3. Запись информацию на диск A и контрольную сумму на диск D. Две операции записи.

Итого, два чтения, две записи и две операции xor. Было бы удивительно, если бы при таком объеме работы, общая производительность не падала. Теперь становится очевидным почему RAID 5 не подходит для размещения файла базы данных.

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

Впрочем, как и у любого правила, у нашего - тоже есть свое исключение. Производительность дискового массива RAID 5 не будет снижаться, если размер энергонезависимой кэш памяти контроллера сопоставим с размером файла базы данных. Например, при размере кэш памяти в 512 Мб вполне можно использовать RAID массив пятого уровня для баз до 1-1,5 Гб. При условии, что сервер выделен только для работы с базой данных и не выполняет других задач.

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

Какой уровень RAID выбрать?

Если RAID 5 не подходит, то какой уровень выбрать для размещения файла базы данных? При количестве дисков меньше четырех единственным вариантом является зеркало (mirror) – RAID 1. Если в массиве от четырех дисков и больше, то оптимальным с точки зрения производительности и надежности является RAID 10 – объединение (RAID 0) нескольких зеркал (RAID 1). Иногда можно встретить написание как RAID 1+0. На рисунке ниже представлен массив RAID 10 из четырех дисков. Темным тоном выделены данные одного страйпа. Штриховка показывает дубликат этого страйпа.

Отметим так же, что если массив RAID 5 способен пережить потерю только одного диска, то RAID 10 из m зеркал по два диска выживет в случае потери от одного до m дисков, при условии, что откажут не более чем по одному диску в каждом зеркале.

Попробуем количественно сравнить массивы RAID 5 и RAID 10, в каждом из которых n дисков. n кратно двум. Примем размер читаемого/записываемого блока данных равным размеру стрипа. В таблице ниже приведено необходимое количество операций чтения/записи и xor-ирования данных.


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

Как настроить RAID контроллер?

Размер кэш памяти

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

Уровень RAID

RAID 10. Если количество дисков меньше четырех, то RAID 1 (зеркало). Почему? Читайте статью с самого начала.

Размер страйпа

Размер страницы базы данных умноженный на количество зеркал в массиве. Например, если в массиве 8 дисков, объединенных в четыре зеркала по два диска, а размер страницы базы данных равен 8К, то размер страйпа следует выставить в 8 * 4 = 32К.

Упреждающее чтение

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

Политика кэша на запись

Выбрать режим write back. Данные будут помещаться в кэш, а потом записываться на диск. Операция записи будет считаться завершенной сразу же после помещения данных в кэш.

Резервный (spare) диск

Если возможности контроллера позволяют, то рекомендуется включить в массив резервный диск. Такой диск в обычном режиме работы пребывает в состоянии stand by. В случае выхода из строя одного из рабочих винчестеров, резервный диск автоматически добавляется в массив.

Технология RAID разработаная в 1980-х годах задумывалась как обьединение нескольких дисков в дисковый массив с целью увеличения емкости, повышения надежности и доступности данных. Рассмотрим вкратце основные уровни RAID

RAID0: Чередование (Striping)

Описание : Данные распределены по всем дискам массива равномерно. В массиве участвуют два или более дисков

Производительность : Одновременно может быть записан и прочитан бит данных

Плюсы : Быстродействие чтения/записи

Минусы : Нет резервирования. Любой диск вышедший из строя приведет к разрушению массива и как следствие потере всех данных

Использование : Приложения, которым необходим скоросной обмен данными, хранилище временных файлов, некритичные данные

RAID1: Зеркалирование (Mirroring)

Описание : Запись/чтение данных происходит одновременно на два или более дисков массива

Производительность : Операции чтения выполняются бстрее т.к. данные считываются со всех дисков массива одновременно. Операции записи медленнее т.к. запись выполняется дважды или более раз (зависит от количества дисков в массиве)

Плюсы : Выход из строя любого количества дисков массива кроме последнего не приводит к потере данных

Минусы : Стоимость. Пропорциональна количеству дисков в массиве

Использование : Системные разделы, разделы с важными данными, приложения использующие транзакции

RAID3: Чередование с выделенным диском чётности (Virtual disk blocks)

Описание : Данные чередуются по дискам массива на уровне байтов. Необходим дополнительный диск на котором хранится информация о четности. Минимально три диска в массиве

Производительность : Низкая на операциях записи

Плюсы : Данные остаются полностью доступными при выходе из строя одного диска

Минусы : Производительность

Использование : Редко меняющиеся, часто считываемые данные

RAID4: Чередование с выделенным диском чётности (Dedicated parity disk)

Описание : Данные чередуются на уровне блоков. Необходим дополнительный диск на котором хранится информация о четности. Минимально три диска в массиве

Производительность : Низкая на операциях записи

Плюсы : Это лучше чем RAID3. Данные остаются полностью доступными при выходе из строя одного диска. В массив можно добавить любое количество дисков

Минусы : Узкое место такого массива — выделенный диск четности. Данные не считаются записанными, пока не будет записана контрольная сумма на диск четности

Использование : Не подходит для высокопроизводительных систем с активной записью/чтением

RAID5: Чередование чётности (Striped parity)

Описание : В отличии от RAID4 данные и четность чередуются по всем дискам массива. Очень хорошо иметь дополнительный вакантный диск (hot spare disk) на случай если один из дисков массива выйдет из строя. Тогда контроллер подхватит вакантный диск и массив будет перестроен. Минимально три диска в массиве

Производительность : Лучше, чем в RAID4 т.к. решена проблема выделенного диска четности

Плюсы : Достигнут баланс чтения/записи/резервирования

Минусы : Просадка производительности во время перестройки массива. Если не используется кеш записи (рейд-контроллер не оборудован батарейкой и не настроен), то просадка будет особенно чуствительна

Использование : Веб-сервера, файловые сервера где используется интенсивное чтение данных

RAID6: Двойное чередование чётности (Dual parity)

Описание : Похож на RAID5 с той разницей, что в массиве присутствует два диска контроля четности, что повышает надежность системы. Минимально четыре диска в массиве

Производительность : Хуже на 10%-15% чем в RAID5 из-за более сложного алгоритма рассчета контрольных сумм. Больше операций чтения/записи

Плюсы : Повышена надежность сохранности данных. Система останется в работе при двух отказавших дисках

Минусы : Стоимость. Просадка производительности во время перестройки массива

Использование : Резервные хранилища данных с повышенной надежностью

RAID10

Описание : Из групп массивов RAID1 строится RAID0

Производительность : Считается самым быстрым и надежным массивом

Плюсы : Повышена надежность сохранности данных. Массив будет жизнеспособен пока в каждой группе массивов RAID1 будет рабочим последний диск

Минусы : Стоимость, один из самых дорогих

Использование : Веб-сервера с активным чтением данных, приложения используюшие транзакции

Технология RAID 5 позволяет объединять от 3 жестких дисков в единый массив. Главная особенность – по всему пространству равномерно распределяются контрольные суммы, с помощью которых можно вернуть утерянные данные. Однако техника имеет свои нюансы, поэтому актуальным вопросом является, как восстановить RAID 5. Мы расскажем о причинах выхода из строя, основных уровнях RAID, а также представим подробную процедуру восстановления.

Возможные причины выхода из строя

Избыточность RAID-массива повышает шансы на восстановление данных, но жесткие диски, как и любая другая техника, конечно же, подвержены типичным проблемам:

  • непреднамеренное удаление;
  • повреждение файлов/папок,
  • повреждения файловых систем,
  • действие вредоносного программного обеспечения.

Подвержены массивы и внешним воздействиям: уронили жесткий диск, сгорел сервер или попала внутрь вода. Нередко ломается сам RAID-контроллер. Дешевые модели имеют низкий ценник не только из-за упрощенных алгоритмов. Всегда есть шанс попасть на бракованное изделие.

Скачки напряжения или исчезновение питания могут привести к тому, что диск «выбрасывается» из массива и переходит в статус offline, но остается полностью исправным и работоспособным. Проблема может крыться в софте или контроллере, которые просто не видят данный HDD.

Основные уровни RAID и принцип их восстановления

Пользователь может восстановить данные несколькими способами, которые определяет уровень массива. Рекомендуем ознакомиться с существующими уровнями, которые применятся в современных системах:

  • RAID0. Массив обеспечивает высочайшее быстродействие за счет отсутствия избыточности. Но безопасность данных находится на минимальном уровне, поэтому при поломке одного диска восстановить систему без ремонта будет практически невозможно.
  • RAID1. Система не отличается высоким быстродействием, но может похвастаться высокой безопасностью данных. Используется принцип «зеркала», когда все данные дублируются, при этом имеются в одной копии на другом диске. При потере информации она просто копируется с первого диска, не останавливая работу всего массива.
  • RAID5. Используется распределение информационных блоков по всему пространству и принципу четности. При поломке только одного, конечно же, HDD-массив продолжает работать, но на более низких скоростях.
  • RAID 10. Комбинация первых двух уровней, минимальное количество дисков – 4. Используется принцип зеркальности данных.

Пошаговая инструкция восстановления данных

Восстановить удаленные данные можно самостоятельно, но только в тех ситуациях, когда все диски исправны, массив просто «развалился», а на HDD нет критически важных данных. Если информация крайне ценная, не стоит экспериментировать самому. Рекомендуем воспользоваться помощью специалистов. При аппаратной поломке вам понадобится подчинить жесткий диск. Только после заниматься «сборкой» массива. Это специфическая операция, которую самостоятельно выполнить проблематично.

Программное восстановление

Процедура требует предварительной установки RAID Reconstructor или аналогов. Также вам понадобится персональный компьютер и кабели, с помощью которых можно подключать диски к нему. Если подключить диски из массива к ПК вы не можете, то не стоит и начинать. Инструкция включает шаги:

  1. Исправность HDD из массива говорит о том, что вы можете подключить их к компьютеру как отдельные носители. Используйте любой удобный способ (SATA, SAS, IDE и подобное).
  2. Как только диски будут подключены, не инициализируйте их, не обращайтесь к данным и не пытайтесь форматировать. Идеальный вариант – работать с их посекторными копиями, так как изменения не будут касаться оригинальных данных.
  3. Запускаем программу RAID Reconstructor. В поле Type установите RAID5 и поставьте количество дисков. В нашем примере их будет три.
  4. В вертикальном списке через троеточие необходимо указать наши диски, т. е. их образы. Нажимайте на Select file. В проводнике выберите необходимые image.
  5. Нажмите кнопку Open Drives и далее Analyze.
  6. В следующих окнах жмите Next. Процедура проведет только сканирование для определения размера блока и других параметров. Далее будет показано окно с выбором параметров.
  7. Установите размер блока и начальный сектор (если они известны однозначно). В ином случае галочки можно поставить везде. Тип четности еще не известен, поэтому понадобятся тесты. Число количества секторов для пробы увеличьте в 10 раз (до 100 тысяч), а затем нажмите Next.
  8. Если все удалось, то вы получите однозначный (или неоднозначный) результат и рекомендацию.
  9. Теперь восстановите весь массив. В главном окне укажите путь, куда будет скопирован готовый массив, а затем нажмите Copy.

Этот метод позволяет быстро и удобно восстановить данные с RAID 5. При необходимости можно попробовать восстановление с помощью Intel Rapid Storage Technology или R-Studio.

Аппаратное

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

  1. пронумеровать диски массива;
  2. скопировать посекторно каждый из них;
  3. подключить их к контроллеру в нужном порядке.

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

При наличии важных данных обращайтесь только в специализированный сервисный центр. Множество «разрывов и смещений» в данных существенно усложняет работу. Только опытные специалисты способны видеть «узоры», а также постепенно восстанавливать ценную информацию. Иногда для восстановления RAID5 мастерам приходится программировать собственные алгоритмы.

Когда у вас слетели диски в RAID-массиве, есть список действий, которые не рекомендуется выполнять. Первый и главный шаг – не производить инициализацию до выяснения остаточного источника и типа проблемы. Бывают ситуации, когда в массиве по несколько лет не работает один диск (допустимо для RAID5), но это остается незамеченным. Затем после сбоя или скачка напряжения массив разваливается, но диски остаются видны. Системный администратор собирает все на место, в ходе чего обязательно выполняется инициализация. Однако незнание информации о неисправном HDD приведет к плачевному результату. Итог – поврежденные данные или убитый раздел. «Выпавший» диск вносит изменения в контрольные суммы, соответственно, портит всю информацию.


  • Отправить

    Аппаратные подсистемы RAID 5 являются на сегодняшний день наиболее популярными для файл-серверов общего назначения, Web-серверов и других прикладных задач, связанных с хранением и обработкой данных. Они не только повышают производительность и улучшают защиту данных, но позволяют снизить стоимость такого решения при сохранении или улучшении основных характеристик и свойств.

    Эффективное хранение данных – важная задача для вычислительной среды предприятия, и многие организации используют RAID-массивы в серверных, сетевых и Интернет приложениях хранения и обработки данных, чтобы повысить их доступность. Технологии RAID могут позволить IT-менеджерам использовать в своих интересах ключевую производительность и операционные характеристики, которые контроллеры и подсистемы RAID 5 обеспечивают благодаря процессорам ввода/вывода, которые освобождают центральный процессор от прерываний во время дисковых операций «чтение-модификация-запись».

    По реализации RAID-контроллеры бывают программными (т.н. софтовыми), программно-аппаратными и полностью аппаратными.

    Программный RAID не требует специальных аппаратных средств. Все данные обрабатываются центральным процессором. В этом случае используется стандартное подключение накопителей. Неудобство такой реализации RAID – дополнительная существенная нагрузка на процессор, сокращение процессорного времени на обработку запросов приложений и операционной системы, так как центральный процессор обрабатывает все RAID-операции (вычисление XOR, размещение данных и обработка прерываний по этим задачам).

    Программно-аппаратный RAID реализуется с помощью чипа ввода-вывода специальной микросхемы (ASIC), которая может выполнять операции XOR. В данном случае часть операций по обеспечению функционирования RAID-массива берет на себя эта микросхема. Все остальное – по-прежнему центральный процессор, осуществляющий операции с помощью драйверов. Программно-аппаратный RAID – по существу более производительное решение на основе центрального процессора системы.

    Аппаратный RAID-контроллер представляет собой RAID-подсистему, которая фактически является самостоятельной и самодостаточной для своих задач и практически не требует ресурсов центрального процессора при операциях с RAID-массивом. У этой подсистемы есть свой BIOS, приглашение которого можно видеть во время загрузки системы, свой процессор и своя память, называемая кэш-памятью контроллера.

    Определение уровней RAID

    Существует несколько основных типов (т.н. «уровней») RAID. Каждый предлагает уникальную комбинацию свойств, два основных из которых – это степень защиты данных и производительность. Для того, чтобы понять, как работает RAID 5, рассмотрим два начальных уровня RAID – «0» и «1»:

    RAID 0 (страйп, stripe): этот уровень RAID обеспечивает одновременное чтение/запись блоков данных сразу на все накопители массива параллельно. Такая параллельная обработка данных позволяет считывать и записывать информацию на массив RAID 0 значительно быстрее, чем на один накопитель. RAID 0 обычно используется для задач, в которых скорость обработки данных гораздо важнее их целостности, поскольку при отказе одного из накопителей все данные массива теряются.

    RAID 1 (зеркало, mirror): этот уровень RAID дублирует данные на одном и более накопителях. RAID 1, в противоположность RAID 0, используется для задач, в которых защита данных важнее производительности. В случае выхода из строя одного из накопителей, информация полностью сохранится на втором. RAID-1 обеспечивает более быстрое чтение, чем один накопитель, но запись на него происходит медленнее. Поскольку защита операционной системы является важной задачей, RAID 1 зачастую используется, чтобы зеркалировать загрузочный накопитель сервера (в том случае, когда операционная система и данные разнесены по разным накопителям или массивам).

    Как работает RAID 5

    RAID 5 сочетает в себе свойства RAID 0 и RAID 1 . С одной стороны, операции чтения и записи происходят одновременно (параллельно) со всеми дисками массива. С другой стороны, при выходе из строя одного диска информация не теряется.

    RAID 5 обеспечивает целостность данных дискового массива, используя пространство, по объему равное меньшему накопителю в массиве. Например, в массиве из пяти накопителей емкостью по 72 ГБ, доступная емкость массива будет составлять 288 ГБ. Доступная для пользователя емкость массива RAID 5 считается по формуле S * (N – 1), где S – емкость наименьшего накопителя в массиве, N общее количество накопителей в массиве.

    Количество накопителей, их емкость и суммарная емкость массива RAID 5 на сохранности данных не сказываются. Также, как единственный накопитель емкостью 72 ГБ может защитить все данные в массиве из пяти накопителей общей емкостью 288 ГБ, в массиве с 15-ю накопителями емкостью 300 ГБ, единственный накопитель на 300 ГБ может защитить весь массив на 4,2 ТБ в случае отказа одного накопителя.

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

    Вычисление функции XOR

    Один накопитель может защитить данные любого числа других накопителей при условии, что из строя выходит только один из накопителей массива. XOR является и ассоциативной, и коммутативной операцией, что означает, что ни порядок, ни группировка операндов не влияет на результаты. XOR – также бинарная операция, и имеет только четыре возможных комбинации двух операндов. Два операнда имеют «истинный» результат XOR, когда один и только один операнд имеет значение 1.

    Вычисление XOR реализуют с помощью специальных аппаратных средств, которыми могут быть чип XOR ASIC или процессор ввода/вывода с интегрированными функциональными возможностями XOR, что значительно увеличивает производительность RAID-контроллера. Каждый байт данных, сохраняемых в томе RAID 5, требует вычислений XOR. Представление о том, как работает операция XOR, является очень важным для понимания, как подсистема RAID 5 может защитить большой объем данных с помощью относительно небольшого объема одного накопителя.

    На рисунке 1 каждый прямоугольник Dn представляет блок данных, называемый стрип (strip, англ. полоска). Все полоски ряда называются страйп (stripe, англ. полоса). В RAID 5, данные четности расположены в разных стрипах на каждом накопителе – это так называемое parity rotation (англ. «вращение четности»). Это сделано для увеличения производительности: поскольку четность вычисляется и записывается в каждой операции «чтение-модификация-запись», размещение ее на одном накопителе привело бы к образованию узкого места, так называемого «бутылочного горлышка». Обращения к такому накопителю производились бы во столько раз чаще по отношению к другим накопителям в системе, сколько этих накопителей в системе. Данные четности – Pn, где n – номер страйпа, всего-навсего результат операции XOR на всех других элементах данных в пределах того же страйпа. Поскольку XOR – ассоциативная и коммутативная операция, ее результат над несколькими операндами можно найти путем выполнения XOR сначала на любых двух операндах, затем выполнением XOR над результатом этой операции и следующим операндом, и так далее со всеми операндами, пока не будет достигнут результат.

    Рисунок 1. Карта данных типичного RAID 5 с четырьмя накопителями

    Том RAID 5 допускает отказ любого одного накопителя массива без потери данных. Как правило, когда физический накопитель выходит из строя, как, например, накопитель 3 на рисунке 2, говорят, что массив в критическом состоянии (англ. degraded). В такой ситуации недостающие данные для любого страйпа могут быть определены выполнением операции XOR на всех оставшихся элементах данных этого страйпа. Грубо говоря, каждый потерянный элемент данных представляется как общая сумма оставшихся стрип в страйпе. Обычный размер стрипа – от 32 кБ до 128 кБ. На рисунке 2 показан массив с условным объемом стрипа, где каждый элемент представляет единственный бит.

    Четность для первой полосы:
    P1 = D1 XOR D2 XOR D3;
    P1 промежут. = D1 XOR D2 = 1;
    P1 = P1 промежут. XOR D3 = 0.
    Таким образом, P1 = 0.

    Рисунок 2. Карта данных RAID 5 с четырьмя накопителями; массив с условным объемом стрипа.

    Если хост запрашивает у контроллера данные с массива, который находится в критическом состоянии, RAID-контроллер должен сначала прочитать все доступные элементы данных на полосе, включая четность. После этого выполняется XOR над этими элементами. Результатом этой операции являются потерянные данные. Таким образом, доступ к массиву в случае выхода из строя одного из накопителей не прерывается. Однако, если из строя в это время выходит второй накопитель, то безвозвратно теряются данные всего массива.

    Большинство аппаратных RAID-контроллеров восстанавливают массив автоматически, если доступен запасной (hot-spare) накопитель, возвращая массив в нормальное состояние. Кроме того, как правило, с аппаратными RAID-контроллерами поставляется программное обеспечение, которое включает средства, позволяющие уведомить администраторов системы, когда такой отказ происходит. Это позволяет администраторам устранить проблему прежде, чем следующий накопитель выйдет из строя, и массив перейдет в критическое состояние без возможности автоматического восстановления.

    Выполнение операции «чтение-модификация-запись»

    Операция записи в RAID 5 ответственна за вычисление и запись данных четности. Эта операция обычно упоминается как операция «чтение-модификация-запись». Представьте страйп составленным из четырех блоков данных и одного блока четности. Предположим, что хост хочет изменить маленький блок данных, которые занимают место только на одном стрипе в пределах страйпа. RAID-контроллер не может просто записать этот маленький блок данных и считать запрос выполненным. Эта операция также должна обновить данные четности, которые вычислены выполнением операции XOR на каждом стрипе в пределах страйпа. Таким образом, четность вычисляется всегда, когда изменяется один или более стрипов.

    Рисунок 3 показывает типичную операцию «чтение-модификация-запись», в которой данные, которые хост пишет на накопитель, содержатся в пределах только одной полосы, в блоке D5. Операция «чтение-модификация-запись» состоит из следующих шагов:

    Рисунок 3. Шаг за шагом: операция «чтение-модификация-запись» в массиве RAID 5 с четырьмя накопителями

    1. Получение новых данных от хоста: операционная система запрашивает запись данных в блок D5 на накопителе 2.
    2. Чтение старых данных накопителя 2, на место которых предполагается записать новые данные. Чтение только того блока данных, который в процессе записи будет изменен, устраняет необходимость для вычисления четности читать данные со всех других накопителей в пределах страйпа. Число шагов, необходимых для операции «чтение-модификация-запись», не зависит от числа накопителей в массиве.
    3. Чтение старой четности. Эта операция не зависит от числа накопителей в массиве.
    4. Вычисление новой четности страйпа. Для этого нужно вычислить XOR шагов 2 и 3 минус (в данном случае, в булевой арифметике, это тот же XOR) вклад старых данных, которые будут переписаны. Это объясняется ассоциативностью и коммутативностью XOR. Таким образом, чтобы определить четность для страйпа с новым блоком D5, нужно всего лишь вычислить XOR новых данных, старых данных и старой четности.
    5. Проверка целостности данных: этот процесс не описан на рисунке 3, поскольку его реализация сильно различается у разных производителей. Смысл этого процесса в отслеживании выполнения последующих шагов 6 и 7. Для целостного дискового массива подсистема должна гарантировать, что блок четности всегда соответствует данным в пределах полосы. Поскольку невозможно гарантировать, что новые данные и новый блок четности будут записаны на разные диски одновременно, подсистема RAID определяет обрабатываемый страйп как незавершенный (нецелостный), «dirty» (англ. «грязный»), и это означает, что целостность данных нарушена.
    6. Запись данных, которые были получены от хоста в шаге 1. Теперь, в соответствии с таблицей размещения данных, подсистема RAID определяет, на каком физическом накопителе, и где именно на накопителе, будут записаны эти данные.
    7. Запись нового блока четности: новый блок четности был вычислен в шаге 4; теперь подсистема RAID пишет его на накопитель.
    8. Проверка целостности данных: как только подсистема RAID проверяет, что шаги 6 и 7 были закончены успешно, т.е. и данные и четность записаны на накопители, страйп считают целостным.

    В примере на рисунке 3, предположим, что Dnew = 0, Dold = 1, и Pold = 0. Обработка шага 4 на этих данных даст нам: 0 XOR 1 XOR 0 = 1. Это четность P. После процедуры «чтение-модификация-запись», второй ряд в иллюстрации 3 будет D4 = 1, D5 = 0, P2 = 1, и D6 = 0.

    Этот оптимизированный метод полностью масштабируем. Количество операций чтения, записи, и операции XOR независимы от числа накопителей в массиве. Поскольку накопитель с данными четности участвует в каждой операции записи (шаги 6 и 7), данные четности хранятся на всех накопителях в массиве, перемещаясь в страйпе относительно блоков данных. Если бы все данные четности хранились на одном физическом накопителе, то этот накопитель мог бы стать узким местом, «бутылочным горлышком», о чем уже говорилось выше.

    Разгрузка прерываний центрального процессора

    Прерывание – это запрос от компонента системы на процессорное время. Подсистемы ввода/вывода производят прерывание центрального процессора, когда они заканчивают транзакцию. Ниже приведено небольшое сравнение, какие прерывания генерируют различные по типу исполнения RAID-контроллеры для простой записи на массив RAID 5:

    Программный RAID: поскольку в данном случае центральный процессор системы отвечает за размещение данных на диске, он должен сгенерировать запрос на каждое чтение и запись, необходимые для операции «чтение-модификация-запись». Таким образом, центральный процессор получает четыре прерывания от подсистемы, состоящие из двух запросов на чтение, и двух на запись (шаги 2, 3, 6, и 7 в примере на рисунке 3).

    Программно-аппаратный RAID: эта реализация генерирует те же самые четыре прерывания, что и программный RAID, поскольку упрощение в этой реализации связано в большинстве случаев только с вычислением операции XOR специальной микросхемой XOR ASIC .

    Аппаратный RAID: процессор ввода/вывода в аппаратной подсистеме RAID обычно скрывает все промежуточные операции чтения и записи, и генерирует всего одно прерывание – об успешном выполнении транзакции. Процессор ввода/вывода перехватывает все другие прерывания, освобождая центральный процессор, чтобы тот мог выполнять не-RAID задачи.

    по материалам компаний Dell и Intel



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: