Разработка систем хранения информации на RAID – массивах

RAID – массивы

Введение

В конце XX века невозможно уже представить свою жизнь без компьютерной техники. Компьютерная техника нашла широкое распространение в нашей жизни, став главным помощником человека. С развитием информационных технологии перед человеком стала задача о надёжном хранении информации и её быстрой передачи. Для этого стали применять технологию RAID – (Redundant Array of Independent Disks) – избыточный массив независимых дисков. С помощью RAID массива можно построить эффективную и надёжную систему хранения данных.

При написании статьи будет протестирована технология создание массива Intel Matrix RAID который объединил две системы RAID 0 и RAID 1.

  1. Разработка систем хранения информации на RAID – массивах

 1.1 Основные понятия RAID – массива

При создании RAID – массива необходимо учитывать, то не каждая материнская плата поддерживает эту функцию. К примеру можно привести материнскую плату MA790FXT-UD5F компании Gigabyte .

 

Материнская плата построена на чипсете AMD 790FX/SB750 и поддерживает все процессоры Socket AM3 и память DDR3. Хотя чипсет поддерживает шесть портов SATA/300, Gigabyte решила увеличить возможности установки накопителей, добавив контроллер JMicron JM322. Он даёт четыре дополнительных порта SATA/300 (белые разъёмы). В данной материнской плате поддерживают RAID – массивы 0,1и 5.




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

В основе разработки RAID лежат пять основных принципов. Это Массив (Array), Зеркалирование (Mirroring), Дуплекс (Duplexing), Чередование (Striping) и Четность (Parity).

Массивом называют несколько накопителей, которые централизованно настраиваются, форматируются и управляются. Логический массив – это уже более высокий уровень представления, на котором не учитываются физические характеристики системы. Соответственно, логические диски могут по количеству и объему не совпадать с физическими. Но лучше все-таки соблюдать соответствие: физический диск – логический диск. Для операционной системы вообще весь массив является одним большим диском.

Зеркалирование – технология, позволяющая повысить надежность системы. В RAID массиве с зеркалированием все данные одновременно пишутся не на один, а на два жестких диска. То есть создается «зеркало» данных. При выходе из строя одного из дисков вся информация остается сохраненной на втором. 

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

 

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

Чередование – Повышение быстродействия системы . Если чтение и запись вести параллельно на нескольких жестких дисках, можно получить выигрыш в скорости.

Записываемый файл разбивается на части определенного размера и посылается одновременно на все имеющиеся накопители. В таком фрагментированном виде файл и хранится. Считывается он тоже «по кусочкам».

Размер «кусочка» может быть минимальным – 1 байт, но чаще используют более крупное дробление – по 512 байт (размер сектора).

Четность является альтернативным решением, соединяющим в себе достоинства зеркалирования (высокая надежность) и чередования (высокая скорость работы). Используется тот же принцип, что и в контроле четности оперативной памяти. Если имеется I блоков данных и на их основе вычисляется еще один дополнительный экстраблок, из получившихся (I+1) блоков всегда можно восстановить информацию даже при повреждении одного из них. Соответственно, для создания нормального RAID-массива в этом случае требуется (I+1) жесткий диск. Распределение блоков по дискам точно такое же, как при чередовании. Экстраблок может записываться на отдельный накопитель, либо раскидываться по дискам.

Обычно каждый бит экстраблока состоит из суммы бит всех I блоков, точнее из результата выполнения логической операции XOR. Многие помнят со школы, что XOR – удивительный оператор, при его повторном наложении мы можем получить первоначальный результат. То есть (A XOR B) XOR B = A. Это правило распространяется на любое количество операндов.

Плюсы четности очевидны. За счет использования чередования повышается скорость работы. При зеркалировании надежность сохраняется, но при этом «нерабочий» объем массива заметно уменьшается, он одинаков при любом количестве дисков и составляет емкость одного диска, то есть при 5 дисках в массиве пропадает всего 20% емкости.

Но у четности есть весомый минус. Для формирования экстраблоков требуются вычисления! Их надо делать на лету, причем с миллионами, миллиардами бит! Если это дело поручить центральному процессору, мы получим очень «медленную» систему. Необходимо использовать довольно дорогие платы с RAID-контроллерами, которые «берут все вычисления на себя». В случае выхода из строя одного из дисков, процесс восстановления будет не столь быстрым, как при зеркалировании.

1.2 Принцип функционирования RAID – массива

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

Следует отметить, что применение RAID-массивов защищает от потерь данных только в случае физического отказа жестких дисков.

Различают несколько основных уровней RAID-массивов: RAID 0, 1, 2, 3, 5, 6, 7. Также существуют комбинированные уровни, такие как RAID 10, 0+1, 30, 50, 53 и т.п.

  1. Классификация RAID – массивов. Достоинства и недостатки

JBOD (Just a Bunch Of Drives)

В операционной системе Windows JBOD-массив называется spanned disk. Это не уровень RAID, а дополнительная функция некоторых рейд контроллеров. Применяется в случае, если пользователь хочет использовать суммарную емкость нескольких жестких дисков, имеющих разный объем. Однако, кроме увеличения емкости, от этого способа объединения жестких дисков других существенных преимуществ нет.

Характеристики JBOD массива:

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

Особенности JBOD массива:

  • Отказ одного диска позволяет восстановить файлы на остальных дисках, если их начало / конец не принадлежат отказавшему диску;
  • В ряде случаев возможно обеспечение высокой скорости работы нескольких приложений, если приложения работают данными на разных дисках;
  • Рейд может состоять из дисков различной емкости и быстродействия.

RAID 0

(Striped Disk Array without Fault Tolerance) — Дисковый массив без отказоустойчивости . Дисковый массив без избыточного хранения данных. Информация разбивается на отдельные блоки, которые одновременно записываются на отдельные диски, что позволяет повысить производительность диска. Данный способ хранения информации очень ненадежен, так как при выходе из строя одного диска приводет к потере всей информации, поэтому уровнем RAID как таковым не является.




RAID 0 – дешевый и производительный, но ненадежный. За счет возможности одновременного ввода / вывода с нескольких дисков массива RAID 0 обеспечивает максимальную скорость передачи данных и максимальную эффективность использования дискового пространства, так как не требуется места для хранения контрольных сумм. Реализация этого уровня очень проста. RAID 0, как правило, применяется в тех областях, где требуется быстрая передача большого объема данных. Для реализации массива требуется не меньше двух винчестеров.

Преимущества:

  • наивысшая производительность в приложениях, требующих интенсивной обработки запросов ввода / вывода и данных большого объема;
  • простота реализации;

– низкая стоимость;

– максимальная эффективность использования дискового пространства — 100%.

Недостатки:

– не является «настоящим» RAID’ом, поскольку не поддерживает отказоустойчивость;

– отказ одного диска влечет за собой потерю всех данных массива.

RAID 1

Дисковый массив с зеркалированием (Mirroring & Duplexing) . Дисковый массив с дублированием информации (зеркалированием данных). В простейшем случае два накопителя содержат одинаковую информацию и являются одним логическим диском. При выходе из строя одного диска его функции выполняет другой. Для реализации массива требуется не меньше двух винчестеров.

 

RAID 1 – простейший отказоустойчивый массив

Преимущества:

  • простота реализации;
  • простота восстановления массива в случае отказа (копирование);

Недостатки:

  • высокая стоимость – 100-процентная избыточность;
  • невысокая скорость передачи данных.

RAID 2

Отказоустойчивый дисковый массив с использованием кода Хемминга (Hamming Code ECC). Схема резервирования данных с использованием кода Хэмминга для коррекции ошибок.

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

 

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

Преимущества:

  • достаточно простая реализация;
  • коррекция ошибок «на лету»;
  • очень высокая скорость передачи данных;
  • при увеличении количества дисков накладные расходы уменьшаются.

Недостатки:

  • низкая скорость обработки запросов;
  • высокая стоимость;
  • большая избыточность.

RAID 3

Отказоустойчивый дисковый массив с параллельной передачей данных и четностью (Parallel Transfer Disks with Parity). Отказоустойчивый массив с параллельным вводом / выводом данных и диском контроля четности. Поток данных разбивается на порции на уровне байт (хотя возможно и на уровне бит) и записывается одновременно на все диски массива, кроме одного. Один диск предназначен для хранения контрольных сумм, вычисляемых при записи данных. Поломка любого из дисков массива не приведет к потере информации.

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

производится обращение практически ко всем дискам массива, то одновременная обработка нескольких запросов невозможна.

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

Преимущества:

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

Недостатки:

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

RAID 5

Отказоустойчивый массив независимых дисков с распределенной четностью (Independent Data Disks with Distributed Parity Blocks). Самый распространенный уровень. Блоки данных и контрольные суммы циклически записываются на все диски массива, отсутствует выделенный диск для хранения информации о четности, нет асимметричности конфигурации дисков.

В случае RAID 5 все диски массива имеют одинаковый размер – но один из них невидим для операционной системы. Например, если массив состоит из пяти дисков емкостью 10 Гб каждый, то фактически размер массива будет равен 40 Гб – 10 Гб отводится на контрольные суммы. В общем случае полезная емкость массива из N дисков равна суммарной емкости N-1 диска.

 

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

Преимущества:

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

Недостатки:

  • низкая скорость чтения / записи данных малого объема при единичных запросах;
  • достаточно сложная реализация;
  • сложное восстановление данных.

RAID 6

Отказоустойчивый массив независимых дисков с двумя независимыми распределенными схемами четности (Independent Data Disks with Two Independent Distributed Parity Schemes). RAID 6 – это отказоустойчивый массив независимых дисков с распределением контрольных сумм, вычисленных двумя независимыми способами. Этот уровень во многом схож с RAID 5. Только в нем используется не одна, а две независимые схемы контроля четности, что позволяет сохранять работоспособность системы при одновременном выходе из строя двух накопителей. Для вычисления контрольных сумм в RAID 6 используется алгоритм, построенный на основе кода Рида-Соломона.

RAID 6 использует две независимые схемы контроля четности. Этот уровень имеет очень высокую отказоустойчивость, большую скорость считывания (данные хранятся блоками, нет выделенных дисков для хранения контрольных сумм). В то же время из-за большого объема контрольной информации RAID 6 имеет низкую скорость записи. Он очень сложен в реализации, характеризуется низким коэффициентом использования дискового пространства: для массива из пяти дисков он составляет всего 60%, но с ростом числа дисков ситуация исправляется. RAID 6 по многим характеристикам проигрывает другим уровням, поэтому на сегодня не получил коммерческого применения.




Преимущества:

  • высокая отказоустойчивость;
  • достаточно высокая скорость обработки запросов.

Недостатки:

  • низкая скорость чтения / записи данных малого объема при единичных запросах;
  • очень сложная реализация;
  • сложное восстановление данных;
  • низкая скорость записи данных.

RAID 7

Отказоустойчивый массив, оптимизированный для повышения производительности (Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates). В отличие от других уровней, RAID 7 не является открытым индустриальным стандартом – это зарегистрированная торговая марка компании Storage Computer Corporation. Массив основывается на концепциях, использованных в третьем и четвертом уровнях. Добавилась возможность кэширования данных. В состав RAID 7 входит контроллер со встроенным микропроцессором под управлением операционной системы реального времени (real-time OS). Она позволяет обрабатывать все запросы на передачу данных асинхронно и независимо.

RAID 7 – зарегистрированная торговая марка компании Storage Computer Corporation. Блок вычисления контрольных сумм интегрирован с блоком буферизации; для хранения информации о четности используется отдельный диск, который может быть размещен на любом канале. RAID 7 имеет высокую скорость передачи данных и обработки запросов, хорошую масштабируемость. Самым большим недостатком этого уровня является стоимость его реализации.

Преимущества:

  • очень высокая скорость передачи данных и высокая скорость обработки запросов (в 1,5…6 раз выше других стандартных уровней RAID);
  • хорошая масштабируемость;
  • значительно возросшая (благодаря наличию кэша) скорость чтения данных небольшого объема;
  • отсутствие необходимости в дополнительной передаче данных для вычисления четности.

Недостатки:

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

Matrix RAID

Matrix RAID – это технология, реализованная фирмой Intel в своих чипсетах начиная с ICH6R. Строго говоря, эта технология не является новым уровнем RAID (ее аналог существует в аппаратных RAID-контроллерах высокого уровня), она позволяет, используя небольшое количество дисков организовать одновременно один или несколько массивов уровня RAID 1, RAID 0 и RAID5. Это позволяет за сравнительно небольшие деньги обеспечить для одних данных повышенную надёжность, а для других высокую скорость доступа.

  1. Тестовая разработка RAID – массива

В качестве основы тестовой системы мы использовали материнскую плату Intel D925XCV, в южный мост которой встроена поддержка Intel Matrix Storage Technology.

Конфигурация стенда включала также:

  • процессор Intel P4 3,6 ГГц;
  • оперативную память Micron DDR2–533 512 Мб;
  • видеоадаптер ATI Radeon X300 128 Мб.

Эффективность RAID-массива тестировали на двух разных парах винчестеров:

  • Seagate Barracuda 7200.7 SATA NCQ емкостью 160 Гб (ST3160827AS);
  • WD Caviar SE Serial ATA емкостью 120 Гб (WD1200JD).

Тестирование проводилось под операционной системой MS Windows XP Professional SP1. Как уже упоминалось выше, встроенная технология Intel Matrix Storage Technology позволяет создавать RAID-массивы «нулевого» и «первого» уровней. Причем всего на двух винчестерах можно построить RAID 0 и RAID 1. Для этого на обоих накопителях симметрично выделяется часть пространства под один массив, а часть – под другой.

Что для измерения производительности мы тестировали системы, построенные на основе RAID-массива «нулевого» уровня. На таких конструкциях проводились испытания отказоустойчивости RAID 1, построенного с использованием технологии Intel Matrix Storage Technology. Испытания прошли успешно. При имитации выхода из строя одного HDD (винчестер просто отключался от системы) информация сохранялась на «уцелевшем» накопителе. А после подсоединения другого исправного винчестера можно легко восстановить исходное состояние RAID-массива.

Для установки и настройки этого RAID 0 существует два пути.

Первый: создать массив с помощью RAID BIOS’а и установить ОС на него. При этом важно не пропустить при инсталляции системы момент, когда со специальной дискеты нужно установить драйвер RAID-контроллера, без которого установщик Windows просто не увидит винчестеры.

Для пользователей, которые привыкли к более удобному «дружественному» графическому интерфейсу, больше подойдет второй способ. Система устанавливается как обычно. Потом в BIOS’е включается поддержка RAID, после чего под Windows устанавливается специальная утилита Intel Storage Utility. С ее помощью можно легко и просто создать RAID-массив, не потеряв при этом существующие данные.

Intel Storage Utility

Подготовка к созданию массива и настройка параметров производится с помощью понятного интерфейса программы и проходит в шесть шагов.

Шаг 1

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

Шаг 2

Здесь нужно указать имя тома (как именно RAID-массив будет отображаться в системе). Выбор уровня – 0 или 1. Для «нулевого» уровня выбирается размер блока (strip size). На этот этап нужно обратить особое внимание, поскольку производительность RAID 0 сильно зависит от выбранного размера блока. Для выбора оптимального показателя, мы тестировали массив с разными значениями strip size.

Шаг 3

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

Шаг 4

Выбор второго участника массива. На этот HDD будет копироваться информация с источника. (все данные на выбранном винчестере будут удалены).

Шаг 5

Выбор размера массива. При создании двух RAID’ов на двух дисках (0 и 1) первым обязательно должен быть «нулевой» уровень – и никак не наоборот: при установке сначала RAID 1 используется сразу все дисковое пространство и на RAID 0 ничего не остается. Размер массива «нулевого» уровня должен составлять не менее 50% общего дискового пространства.

Шаг 6

Завершение подготовки и начало миграции данных с источника на второй диск.

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

Результаты тестирования.

Сначала измерялись теоретические параметры системы – как построенной на одиночном винчестере, так и на RAID-массиве «нулевого» уровня. Как и предполагалось, RAID почти вдвое превосходит «простой» накопитель.

Протестировав системы программой Aida32, мы получили вполне логичные результаты. Скорость чтения у винчестера производства WD равна приблизительно 50 Мб/с, а у «нулевого» RAID-массива, построенного на двух таких накопителях, этот параметр составляет около 97 Мб/с. Похожие результаты показал и представитель Seagate: 46 Мб/с для одиночного варианта и 90 Мб/с в случае с RAID’ом.

Для тестирования использовали пакет WorldBench 5, в состав которого входит два приложения:

ACD Systems ACDSee PowerPack 5.0

В этом тесте находится и открывается каталог, который содержит 155 файлов формата JPG (Приложение А). Затем все файлы конвертируются в формат PCX. Процедура повторяется несколько раз, причем каждый раз меняется тип формата, в который преобразуются JPG-файлы: GIF, BMP, TIFF, TGA, PNG.

Для винчестера производства Seagate прирост производительности в этом приложении при использовании RAID-массива составил около 5%. Причем показатели всех RAID’ов почти не отличаются – вне зависимости от значения strip size.

Совсем другая картина наблюдается с представителем WD. Во-первых, отчетливо видна разница в производительности у RAID-массивов с разными значениями strip size. Худший результат у массива с размером блока 128 Кб. При переходе на 64 Кб производительность возрастает на 2%, а для блока размером 16 Кб прирост равен почти 5%.

Что же касается сравнения одиночного диска с RAID-массивом, то здесь разница еще более существенна: дисковая подсистема с 16-килобайтным блоком обогнала дисковый вариант более чем на 10% – а это уже можно назвать хорошим приростом.

Ahead Software Nero Express 6.0.0.3

В ходе данного теста создается проект, состоящий из файлов общим объемом около 538 Мб, и записывается восемь изображений (image) этого проекта в формате ISO (Приложение Б).

Вот это уже действительно похоже на реальный прирост производительности. У систем, построенных на винчестерах производства WD, разница составила почти 16%. Зато RAID-массив, составленный из накопителей Seagate, обогнал одиночный винчестер того же производителя почти на 22%.

Заключение

Как видно из результатов тестирования, прирост производительности в приложениях оказался не столь значительным, как в теоретических тестах. Можно предположить, что существенный прирост производительности будет наблюдаться, например, при использовании RAID-массива для обработки больших объемов аудио или видео файлов.

Так же нужно отметить, что мы тестировали не просто RAID, а дисковый массив, построенный при помощи технологии Intel Matrix Storage Technology. При использовании этой технологии, помимо прироста производительности, мы получаем еще и другие преимущества:

  • Во-первых, дешевый RAID-контроллер, встроенный в материнскую плату;
  • Во-вторых, возможность построения на двух HDD двух массивов: RAID 0 для повышения производительности системы и RAID 1 для надежности хранения информации;
  • В-третьих, имеем утилиту Intel Storage Utility, с помощью которой можно легко и просто создать RAID-массив на основе уже работающего винчестера, не потеряв при этом существующие данные.

При использовании данной технологии Intel Matrix Storage Technology – это интересная и перспективная технология, которая найдет свое применение как в домашних рабочих станциях, так и в серверах.

2 thoughts on “Разработка систем хранения информации на RAID – массивах

  1. Сергей

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

  2. alfa

    В настоящее время продуктов «SAN-based» виртуализации на рынке мало и говорить об их промышленном внедрении пока не приходится. Возможно, потребность в этом типе виртуализации появится тогда, когда объемы данных предприятий возрастут настолько, что для их оперативного хранения не будет хватать нескольких high-end дисковых массивов.

Добавить комментарий