Raid-массивы
Содержание:
Введение
Пословицу «Пока гром не грянет, мужик не перекрестится» знает почти каждый. Жизненная она: пока та или иная проблема не коснется юзера вплотную, тот о ней даже не задумается. Умер блок питания и прихватил с собой пару-тройку девайсов — пользователь бросается искать статьи соответствующей тематики о вкусном и здоровом питании. Сгорел или начал глючить от перегрева процессор — в «Избранном» появляется пара-тройка ссылок на развесистые ветки форумов, на которых обсуждают охлаждение CPU.
С жесткими дисками та же история: как только очередной винт, хрустнув на прощание головками, покидает наш бренный мир, обладатель ПК начинает суетиться, чтобы обеспечить улучшение жизненных условий накопителя. Но даже самый навороченный кулер не может гарантировать диску долгую и счастливую жизнь. На срок службы накопителя влияет много факторов: и брак на производстве, и случайный пинок корпуса ногой (особенно если кузов стоит где-нибудь на полу), и пыль, прошедшая сквозь фильтры, и высоковольтная помеха, посланная блоком питания… Выход один — резервное копирование информации, а если требуется бэкап на ходу, то самое время строить RAID-массив, благо сегодня почти каждая материнка обладает каким-нибудь RAID-контроллером.
На этом месте мы остановимся и сделаем краткий экскурс в историю и теорию RAID-массивов. Сама аббревиатура RAID расшифровывается как Redundant Array of Independent Disks (избыточный массив независимых дисков). Раньше вместо independent употребляли inexpensive (недорогой), но со временем это определение потеряло актуальность: недорогими стали почти все дисковые накопители.
История RAID началась в 1987 году, когда появилась на свет статья «Корпус для избыточных массивов из дешевых дисков (RAID)», подписанная товарищами Петерсоном, Гибсоном и Катцем. В заметке была описана технология объединения нескольких обычных дисков в массив для получения более быстрого и надежного накопителя. Также авторы материала рассказывали читателям о нескольких типах массивов — от RAID-1 до RAID-5. Впоследствии к описанным почти двадцать лет назад массивам прибавился RAID-массив нулевого уровня, и он обрел популярность. Так что же представляют собой все эти RAID-x? В чем их суть? Почему они называются избыточными? В этом мы и постараемся разобраться.
Если говорить очень простым языком, то RAID — это такая штука, которая позволяет операционной системе не знать, сколько дисков установлено в компьютере. Объединение хардов в RAID-массив — процесс, прямо противоположный разбиению единого пространства на логические диски: мы формирует один логический накопитель на основе нескольких физических. Для того чтобы сделать это, нам потребуется или соответствующий софт (об этом варианте мы даже говорить не будем — ненужная это вещь), или RAID-контроллер, встроенный в материнку, или отдельный, вставляемый в слот PCI либо PCI Express. Именно контроллер объединяет диски в массив, а операционная система работает уже не с HDD, а с контроллером, который ей ничего ненужного не сообщает. А вот вариантов объединения нескольких дисков в один существует великое множество, точнее, около десяти.
Введение
После того, как моя домашняя коллекция CD и DVD-дисков перевалила за 300 штук, у меня появился вполне резонный вопрос – как со всем этим управляться? Перебирать диски в поисках нужного оказалось очень долго и нудно.
После поисков в Интернете выяснилось, что для автоматизации библиотеки дисков предлагалось только одно доступное решение – модули Dacal CD Library на 150 дисков. Их емкость можно наращивать каскадами по 5 модулей в стойке, всего до 128 модулей в цепочке, т.е. 150х128=19200 дисков. Но оказалось, что затраты на приобретение модуля, в расчете на стоимость хранения одного диска в подобной библиотеке слишком велика – 38 рублей, а также не устраивали габариты модуля библиотеки (370х390х180мм) и его вес (3,5 кг). Также, недостатком можно считать, что эту систему надо располагать на расстоянии длины USB-шнура от компьютера, т.е. не более 1,5-2 метров.
Естественно, я обратил внимание на жесткие диски. Имеющиеся в продаже диски емкостью 500 Гб и стоимостью 2000 рублей меня вполне устраивали, т.к
стоимость хранения 1 Гб у них равна 4 рублям.
При попытке переписать библиотеку дисков на жесткий диск выяснилось, что около 10% ранее записанных дисков не читается – появились царапины или изначально были записаны некачественные болванки. В связи с этим появились сомнения – насколько надежно будут храниться данные на жестком диске – ведь при отказе диска я потеряю всю библиотеку.
Таким образом я пришел к мысли о необходимости использовать для хранения библиотеки RAID-массив. Массив с зеркалированием был отвергнут сразу, было жалко использовать удвоенное число дисков. RAID-5 подходил по всем параметрам – его емкость равна сумме емкостей всех дисков массива минус один. Такая плата за надежность хранения данных представляется мне нормальной.
Аппаратный контроллер RAID-массива мне не понравился – слишком высокая стоимость контроллера. И еще — при отказе контроллера, массив ничем невозможно поднять, кроме как, точно таким же контроллером. Иметь два дорогих контроллера для надежности – это очень накладно. И диски для контроллера надо иметь одинаковые. В, общем, дорогое решение для дома.
Оставался программный RAID-массив. После поисков в Интернете было найдено решение — FreeNAS на основе операционной системы FreeBSD. Решение легкое и изящное, но… Выяснилось, что FreeBSD поддерживает не все контроллеры жестких дисков на моей материнской плате – контроллер JMB363 SATA, который там стоял, оказался FreeBSD не по зубам.
У меня оставалось только одно решение – собрать программный массив RAID-5 под Windows XP. Для того, чтобы емкость жестких дисков использовалась только для массива, было решено, что операционная система массива будет грузиться с USB Flash диска.
Сравнение уровней RAID
Уровень | Количестводисков | Эффективнаяёмкость* | Допустимое количествовышедших из строя дисков | Надёжность | Скоростьчтения | Скоростьзаписи | Примечание |
---|---|---|---|---|---|---|---|
от 2 | S * N | нет | очень низкая | высокая | высокая | Потеря данных при выходе из строя любого из дисков! | |
1 | от 2 | S | N-1 дисков | очень высокая | средняя | средняя | N-кратная стоимость дискового пространства; максимально возможная надёжность; минимально возможный размер, скорость чтения/записи одиночного диска |
1E | от 3 | S * N / 2 | от 1 до N/2-1 дисков | высокая | высокая | низкая | Потеря данные при одновременном выходе из строя любых двух соседних дисков, либо первого с последним |
10 | от 4, чётное | S * N / 2 | от 1 до N/2 дисков** | высокая | высокая | высокая | двойная стоимость дискового пространства |
01 | от 4, чётное | S * N / 2 | от 1 до N/2 дисков** | высокая | высокая | высокая | двойная стоимость дискового пространства |
5 | от 3 | S * (N − 1) | 1 диск | средняя | высокая | средняя | |
50 | от 6, чётное | S * (N − 2) | от 1 до 2 дисков*** | средняя | высокая | высокая | |
51 | от 6, чётное | S * (N − 2) / 2 | от 2 до N/2+1 дисков**** | высокая | высокая | низкая | двойная стоимость дискового пространства |
5E | от 4 | S * (N − 2) | 1 диск | средняя | высокая | высокая | резервный накопитель работаетна холостом ходу и не проверяется |
5EE | от 4 | S * (N − 2) | 1 диск | средняя | высокая | высокая | резервный накопитель работаетна холостом ходу и не проверяется |
6 | от 4 | S * (N − 2) | 2 диска | высокая | высокая |
низкая или средняя
(см. примечание) |
скорость записи в зависимости от реализации
(может соответствовать скорости записи RAID 5) |
60 | от 8, чётное | S * (N − 4) | от 2 до 4 дисков*** | средняя | высокая | средняя | |
61 | от 8, чётное | S * (N − 2) / 2 | от 4 до N/2+2 дисков**** | высокая | высокая | низкая | двойная стоимость дискового пространства |
* N — количество дисков в массиве, S — объём наименьшего диска.
** Информация не потеряется, если выйдут из строя диски в пределах разных зеркал.
*** Информация не потеряется, если выйдет из строя одинаковое кол-во дисков в разных stripe’ах.
**** Информация не потеряется, если выйдут из строя диски в пределах одного зеркала.
Создание массива
Надеюсь, с выбором типа массива вы уже справились. Если на вашей плате есть RAID-контроллер, вам ничего, кроме нужного количества дисков и драйверов этого самого контроллера, не понадобится. Кстати, имейте в виду: есть смысл объединять в массивы только диски одинакового объема, причем лучше одной модели. С дисками разного объема может отказаться работать контроллер, и, скорее всего, вы сможете задействовать лишь часть большого диска, равную по объему меньшему из дисков. Кроме того, даже скорость stripe-массива будет определяться скоростью самого медленного из дисков. И мой вам совет: не пытайтесь сделать RAID-массив загрузочным. Это возможно, но в случае возникновения каких-либо сбоев в системе вам придется нелегко, так как восстановление работоспособности будет сильно затруднено. Кроме того, опасно размещать несколько систем на таком массиве: почти все программы, отвечающие за выбор ОС, убивают информацию из служебных областей винчестера и, соответственно, портят массив. Лучше выбрать иную схему: один диск — загрузочный, а остальные объединены в массив.
Matrix RAID в действии. Часть объема дисков используется массивом RAID-0, оставшуюся часть пространства забирает массив RAID-1.
Каждый RAID-массив начинается с BIOS RAID-контроллера. Иногда (только в случае с интегрированными контроллерами, да и то не всегда) он встроен в основной BIOS материнки, иногда расположен отдельно и активируется после прохождения самотестирования, но в любом случае вам туда надо. Именно в BIOS задаются нужные параметры массива, а также размеры блоков данных, используемые винчестеры и так далее. После того как вы все это определите, достаточно будет сохранить параметры, выйти из BIOS и вернуться в операционную систему.
Там обязательно нужно установить драйверы контроллера (как правило, дискета с ними прилагается к материнке или к самому контроллеру, но они могут быть записаны на диск с другими драйверами и служебным софтом), перезагрузиться, и все, массив готов к работе. Можете разбивать его на логические диски, форматировать и заполнять данными. Помните только о том, что RAID не панацея. Он спасет вас от потери данных при гибели винчестера и минимизирует последствия такого исхода, но не спасет от скачков напряжения в сети и сбоев некачественного блока питания, который убивает оба диска сразу, без оглядки на их «массивность».
Пренебрежительное отношение к качественному питанию и температурному режиму дисков может существенно сократить срок жизни HDD, бывает, все диски массива выходят из строя, а все данные оказываются безвозвратно потерянными. В частности, современные винчестеры (в особенности IBM и Hitachi) очень чувствительны к каналу +12 В и не любят даже малейшего изменения напряжения на нем, так что перед закупкой всего оборудования, необходимого для построения массива, стоит проверить соответствующие напряжения и при необходимости включить новый БП в список покупок.
Питание жестких дисков, равно как и всех остальных комплектующих, от второго блока питания, на первый взгляд, реализуется просто, но в такой схеме питания немало подводных камней, и нужно сто раз подумать, прежде чем решиться на такой шаг. С охлаждением все проще: необходимо лишь обеспечить обдув всех винчестеров, плюс не ставьте их вплотную друг к другу. Простые правила, но, к сожалению, соблюдают их не все. И случаи, когда оба диска в массиве умирают одновременно, нередки.
Кроме того, RAID не отменяет необходимости регулярно изготавливать резервные копии данных. Зеркалирование зеркалированием, но если вы случайно испортите или сотрете файлы, второй диск вам никак не поможет. Так что делайте бэкап всякий раз, когда вы можете его делать. Это правило действует вне зависимости от наличия RAID-массивов внутри ПК.
Так что, are you RAIDy? Да? Отлично! Только в погоне за объемом и скоростью не забудьте другую пословицу: «Заставь дурака Богу молиться, он и лоб расшибет». Крепких вам дисков и надежных контроллеров!
Matrix
Схема Intel Matrix RAID
Matrix RAID — это технология, реализованная фирмой Intel в южных мостах своих чипсетов, начиная с ICH6R. Эта технология не является новым уровнем RAID и не имеет аппаратной поддержки. Средства BIOS позволяют организовать несколько устройств в логический массив, дальнейшая обработка которого именно как RAID-массива, возлагается на драйвер. Технология позволяет организовывать на разных разделах дисков одновременно несколько массивов уровня RAID 1, RAID 0 и RAID 5. Это позволяет для одних разделов выбрать повышенную надёжность, для других — высокую производительность.
Позднее, Intel объявила о переименовании технологии Matrix RAID в Intel Rapid Storage Technology (Intel RST).
Список контроллеров, поддерживающих Intel RST:
- Intel PCHM SATA RAID/AHCI controller hub
- Intel PCH SATA RAID/AHCI controller hub
- Intel ICH10R/DO SATA RAID/AHCI controller hub
- Intel ICH10D SATA AHCI controller hub
- Intel ICH9M-E SATA AHCI/RAID controller hub
- Intel ICH9M AHCI controller hub
- Intel 82801IR I/O Controller Hub—RAID and AHCI
- Intel 82801HEM I/O Controller Hub—RAID and AHCI
- Intel 82801HBM I/O Controller Hub—AHCI only
- Intel 82801HR/HH/HO I/O Controller Hub—RAID and AHCI
- Intel 631xESB/632xESB I/O Controller Hub—RAID and AHCI
- Intel 82801GHM I/O Controller Hub—RAID only
- Intel 82801GBM I/O Controller Hub—AHCI only
- Intel 82801GR/GH I/O Controller Hub—RAID and AHCI
Недостатки RAID
Коррелированные сбои
Накопители в массиве, за исключением запасных («spare»), первое время часто имеют одинаковый возраст, подвергаются одинаковой нагрузке и воздействию окружающей среды, это нарушает предположения о независимой вероятности отказа дисков; сбои на самом деле статистически коррелированы. На практике шанс второго отказа перед первым восстановлением выше, чем вероятность случайных сбоев.
Несовместимость конфигураций
Несмотря на то, что конфигурация массива хранится непосредственно на физических дисках, не существует общепринятого стандарта для её кодирования и хранения. При поломке контроллера пользователь вынужден приобретать совместимый контроллер, чтобы восстановить доступ к данным, а не создавать заново пустой массив.
Нестандартные уровни RAID
RAID 1E
Схема дискового массива RAID 1E в двух вариантах для 3, 4 и 5 устройств
RAID 1E (enhanced — усовершенствованный) — зеркало, способное работать на нечётном количестве устройств.
Существуют как минимум два разных алгоритма RAID 1E:
- RAID 1E near (он же RAID 1E striped);
- RAID 1E interleaved.
В руководстве к вашему RAID-контроллеру может не указываться, какой именно тип RAID 1E (near или interleaved) он поддерживает. Общим для них является то, что они хорошо подходят для создания массива из трёх дисковых устройств.
В RAID 1E near первый блок данных записывается на диск № 1 и на диск № 2 (полная копия, как при RAID 1). Следующий блок — на диск № 3 и диск № 4 (если диски закончились, например, диска № 4 в массиве нет, 3-й диск последний — контроллер возвращается к диску № 1 и переходит к следующей полоске).
В RAID 1E interleaved данные чередуются по полоскам: в первую полоску пишутся сами данные, во вторую — их копия. При переходе от одной полоски к другой увеличивается индекс устройства, с которого начинается запись. Таким образом, первый блок данных записывается на диск № 1 в первой полоске и на диск № 2 во второй полоске, второй блок данных — на диск № 2 в первой полоске и на диск № 3 во второй полоске и так далее.
Результирующая ёмкость массива с использованием RAID 1E составляет S∗N2{\displaystyle S*N/2}, где N — количество дисков в массиве, а S — ёмкость наименьшего из них.
Преимущества:
- 1. Хорошая скорость передачи данных и обработки запросов.
- 2. В отличие от RAID 1 и RAID 10, реализована возможность организации зеркала на нечётном количестве устройств.
Недостатки:
- 1. Увеличение стоимости, поскольку доступна лишь половина суммарной ёмкости устройств.
- 2. В некоторых моделях контроллеров допускается отказ только одного диска, в связи с чем при чётном количестве дисков и отсутствии диска горячей замены предпочтительнее использовать RAID 10.
Минимальное количество дисков: 3 (при двух — неотличим от RAID 1).
RAID 7
RAID 7 — зарегистрированная торговая марка компании Storage Computer Corporation, отдельным уровнем RAID не является. Структура массива такова: на n−1{\displaystyle n-1} дисках хранятся данные, один диск используется для складирования блоков чётности. Запись на диски кэшируется с использованием оперативной памяти, сам массив требует обязательного ИБП; в случае перебоев с питанием происходит повреждение данных.
Число 7 в названии создаёт впечатление, что система чем-то превосходит своих «младших братьев» RAID 5 и 6, но математика RAID 7 не отличается от RAID 4, а кэш и батареи используются в RAID-контроллерах любых уровней (чем дороже контроллер, тем больше вероятность наличия этих компонентов). Поэтому, хотя никто не отрицает, что RAID 7 обладает высокой надёжностью и скоростью работы, — это не промышленный стандарт, а скорее маркетинговый ход единственной компании-производителя таких устройств, и только эта компания осуществляет для них техническую поддержку.
RAID-DP
Существует модификация RAID-4 компании NetApp — RAID-DP (Dual Parity). Отличие от традиционного массива заключается в выделении под контрольные суммы двух отдельных дисков. Благодаря взаимодействию RAID-DP и файловой системы WAFL (все операции записи последовательны и производятся на свободное место) пропадает падение производительности как в сравнении с RAID-5, так и в сравнении с RAID-6.
Hybrid RAID
«Hybrid RAID» — это некоторые из обычных уровней RAID, но в сочетании с дополнительным ПО и твердотельными накопителями (SSD), которые используются как кэш для чтения. В результате производительность системы повышается, так как SSD обладают значительно лучшими скоростными характеристиками по сравнению с HDD. Существует несколько реализаций, например Crucial Adrenaline, либо некоторые контроллеры Adaptec бюджетного класса. На данный момент Hybrid RAID не рекомендуется использовать в серверах ввиду малого ресурса SSD, исключение составляют специальные серверные SSD с повышенным ресурсом.
История
Аббревиатура «RAID» изначально расшифровывалась как «Redundant Array of Inexpensive Disks» («избыточный массив недорогих дисков», так как они были гораздо дешевле дисков SLED (Single Large Expensive Drive)). Именно так был представлен RAID его создателями Петтерсоном (David A. Patterson), Гибсоном (Garth A. Gibson) и Катцом (Randy H. Katz) в 1987 году. Со временем «RAID» стали расшифровывать как «Redundant Array of Independent Disks» («избыточный массив независимых (самостоятельных) дисков»), потому что для массивов приходилось использовать и дорогое оборудование (под недорогими дисками подразумевались диски для ПЭВМ).
Калифорнийский университет в Беркли представил следующие уровни спецификации RAID, которые были приняты как стандарт де-факто:
- — зеркальный дисковый массив;
- — зарезервирован для массивов, которые применяют код Хемминга;
- и — дисковые массивы с чередованием и выделенным диском чётности;
- — дисковый массив с чередованием и отсутствием выделенного диска чётности.
В современных RAID-контроллерах предоставлены дополнительные уровни спецификации RAID:
- — дисковый массив повышенной производительности с чередованием, без отказоустойчивости. Строго говоря, RAID-массивом не является, поскольку избыточность (redundancy) в нём отсутствует;
- — дисковый массив с чередованием, использующий две контрольные суммы, вычисляемые двумя независимыми способами;
- — массив RAID 0, построенный из массивов RAID 1;
- (зеркало из трёх устройств), RAID 50 (массив RAID 0 из массивов RAID 5), RAID 05 (RAID 5 из RAID 0), RAID 60 (RAID 0 из RAID 6) и различные другие.
Аппаратный RAID-контроллер может иметь и одновременно поддерживать несколько RAID-массивов различных уровней. При этом контроллер, встроенный в материнскую плату, в настройках BIOS имеет всего два состояния (включён или отключён), поэтому новый жёсткий диск, подключённый в незадействованный разъём контроллера при активированном режиме RAID, может игнорироваться системой, пока он не будет ассоциирован как ещё один RAID-массив типа JBOD (spanned), состоящий из одного диска.
Уровни RAID, реализуемые средствами файловой системы ZFS:
- RAID-Z — один избыточный диск;
- RAID-Z2 — два избыточных диска;
- RAID-Z3 — три избыточных диска.
Выбор железа
Главное в такой системе – вместительный корпус. Был взят пустой старый корпус от промышленного компьютера (халява) с 8 гнездами 5,25” под жесткие диски.
Поскольку он был велик, я его обрезал под необходимый размер, и покрасил в черный цвет акриловой краской из баллончика. В принципе, корпус может быть любой, лишь бы было необходимое количество гнезд 5,25” под жесткие диски.
В качестве блока питания был использован FSP ATX-400 ATX (24pin) 400W. Хотя потребляемая массивом мощность равна 200 ваттам, двукратный запас по мощности блока питания позволял надеяться на более качественное питание (по напряжениям 5В и 12В), выдаваемое на массив. Блок пришлось доработать – добавить разъемы для питания жестких дисков.
Для установки жестких дисков я приобрел 8 модулей SATA Rack Mount черного цвета с вентиляторами для охлаждения дисков. Для улучшения охлаждения дисков в пластмассе модулей были прорезаны дополнительные отверстия. Эти модули также позволяют быстро заменить неисправный диск.
Материнская плата подойдет любая, с необходимым количеством разъемов SATA на ней и возможностью в BIOS загрузки с USB-HDD диска. В моем случае была использована плата ABIT AB9-PRO i965P ATX SATA, с 9 разъемами SATA-2, 1 — E-SATA и 1 – IDE.
Так как в материнской плате не оказалось встроенной видеокарты, я поставил старенькую PCI-карту S3 Virge. Опять халява 🙂
Для массива я приобрел 8 дисков Samsung 500Gb (16Mb) HD501LJ SATA-2 7200rpm. Выбор именно SATA-2 винчестеров обусловлен более высокой скоростью обмена, а главное – 8 кабелей для подключения SATA дисков занимают существенно меньшее место в корпусе, по сравнению с 8 IDE кабелями и это оказывает свое влияние на продуваемость корпуса, т.е на охлаждение. Можно использовать и более емкие диски, например диски на 1Тб, и увеличить размер массива до 7Тб, но на момент создания массива, по соотношению емкость/цена, эти диски оказались оптимальными.
Оперативная память – 1 плашка DDR-2 PC667 на 1024 Мб. С этим объемом получился перебор – использование памяти никогда не превышало 105 Мб.
Процессор — INTEL Celeron-420, 1,6 ГГц. С процессором наоборот, получился недобор. Если скорость чтения с массива практически не зависит от процессора и составляет 85-95 Мб/сек по сети, то запись нагружает процессор до 95-97% (т.к. это все-таки программный массив) и скорость становится в 3-4 раза меньше скорости чтения (20-30 Мб/сек). Таким образом, чем производительнее процессор, тем быстрее работает система на запись.
Для установки и запуска операционной системы Windows XP я использовал Kingstone Flash-USB DataTraveler объемом 2 Гб.
Забегая вперед хочу сказать, что когда я собрал все железо в корпус и включил, эффект от его работы превзошел все мои ожидания. Система ревела как реактивный самолет на взлете. Еще бы — 8 вентиляторов продувают жесткие диски, 1 вентилятор — для процессора, 1 вентилятор — для блока питания и 1 вентилятор – продувает корпус. Итого – 11 штук. Самые шумные – вентиляторы для дисков, они же самые маленькие. Но без них никак было нельзя. Если с ними температура дисков поднималась не более 37°С, то без них температура моментально поднималась к 47-48°С, слишком плотно стояли диски. Заменить воздушную систему охлаждения на более тихую, водяную, представлялось весьма проблематичным из-за отсутствия ватерблоков для жестких дисков и общей высокой стоимости такой системы охлаждения.
В таком виде массив было нельзя ставить там, где находились люди (т.е. в гостинной) и для его перенесения в такое место, где шум никому не мешает (в туалет), пришлось к общему списку железа добавить адаптер Wi-Fi. Я использовал D-Link DWA-520 PCI 802.11g с турбо-режимом. Скорость обмена с изделиями D-Link, также имеющими турбо-режим составляет 108 Мб/с.
Ценовая выгода шумного RAID
RAID — это хорошо даже без оглядки на деньги. Но давайте посчитаем цену простейшего stripe-массива объемом 400 Гбайт. Два диска Seagate Barracuda SATA 7200.8 по 200 Гбайт каждый обойдутся вам примерно в $230. RAID-контроллеры встроены в большинство материнских плат, то бишь мы получаем их бесплатно.
В то же время 400-гигабайтный диск той же модели стоит $280. Разница — $50, и на эти деньги можно приобрести мощный блок питания, который вам, несомненно, понадобится. Я уж не говорю о том, что производительность составного «диска» при более низкой цене будет почти вдвое выше производительности одного винчестера.
Проведем теперь подсчет, ориентируясь на общий объем 250 Гбайт. Дисков по 125 Гбайт не существует, так что возьмем два винчестера по 120 Гбайт. Цена каждого диска — $90, цена одного 250-гигабайтного винчестера — $130. Что ж, при таких объемах за производительность приходится платить. А если взять 300-гигабайтный массив? Два диска по 160 Гбайт — примерно $200, один на 300 Гбайт — $170… Опять не то. Получается, что выгоден RAID только при использовании дисков очень большого объема.
Аппаратные RAID-контроллеры
Представляют собой плату расширения, либо размещаются вне сервера (например, в составе внешней дисковой подсистемы либо NAS). Имеют собственный процессор, многие имеют кэш-память для ускорения работы. В устройства подороже опционально устанавливаются батареи (Battery Backup Unit, сокр. BBU, химические, либо ) для сохранения данных в кэше в случае аварийного отключения электропитания. Конденсаторные батареи более современные, но более дорогие, поскольку дополнительно требуют наличия модуля энергонезависимой FLASH-памяти, куда при аварии будет копироваться кэш. Такие батареи не портятся со временем и, в отличие от химических, не требуют замены в течение срока службы сервера.
Для подключения дисков контроллер может иметь внутренние, либо внешние порты, либо и те, и другие. Порты могут быть выполнены по различным стандартам (см. для примера список , а также SFF-8639).
Контроллеры различных производителей, как правило, не совместимы и не взаимозаменяемы между собой — это следует иметь в виду в случае выхода из строя платы контроллера. Информация о конфигурации RAID-массива хранится на дисках, но прочитать её, даже с полностью исправных дисков, и воссоздать массив сможет только контроллер того же производителя. Для предотвращения подобных проблем существуют кластерные дисковые системы. Программные RAID-массивы также лишены этого недостатка.
Дальнейшее развитие идеи RAID
Синий разъём PCI-X на материнской плате сервера FSC Primergy TX200 S2 специально предназначен для платы ноль-канального RAID (zero-channel RAID, ZCR). Установлен MegaRAID -0 Zero Channel RAID Controler фирмы LSI)
Идея RAID-массивов — в объединении дисков, каждый из которых рассматривается как набор секторов, и в результате драйвер файловой системы «видит» как бы единый диск и работает с ним, не обращая внимания на его внутреннюю структуру. Однако, можно добиться существенного повышения производительности и надёжности дисковой системы, если драйвер файловой системы будет «знать» о том, что работает не с одним диском, а с набором дисков.
Более того, при разрушении любого из дисков в составе RAID 0 вся информация в массиве окажется потерянной. Но если драйвер файловой системы разместил каждый файл на одном диске, и при этом правильно организована структура каталогов, то при разрушении любого из дисков будут потеряны только файлы, находившиеся на этом диске; а файлы, целиком находящиеся на сохранившихся дисках, останутся доступными. Схожая идея «повышения надёжности» реализована в массивах JBOD.
Размещение файлов по принципу «каждый файл целиком находится на одном диске» сложным/неоднозначным образом влияет на производительность дисковой системы. Для мелких файлов латентность (время позиционирования головки над нужным треком + время ожидания прихода нужного сектора под головку) важнее, чем время собственно чтения/записи; поэтому если мелкий файл целиком находится на одном диске, доступ к нему будет быстрее, чем если он разнесён на два диска (структура RAID-массивов такова, что мелкий файл не может оказаться на трёх и более дисках). Для крупных файлов размещение строго на одном диске может оказаться хуже, чем размещение на нескольких дисках; однако, это проявится только если обмен данными производится большими блоками; либо если к файлу делается много мелких обращений в асинхронном режиме, что позволяет работать сразу со всеми дисками, на которых размещён этот файл.
Программный RAID
Для реализации RAID можно применять не только аппаратные средства, но и полностью программные компоненты (драйверы). Например, в системах на ядре Linux поддержка существует непосредственно на уровне ядра. Управлять RAID-устройствами в Linux можно с помощью утилиты mdadm. Программный RAID имеет свои достоинства и недостатки. С одной стороны, он ничего не стоит (в отличие от аппаратных RAID-контроллеров, цена которых от $150). С другой стороны, программный RAID использует некоторое количество ресурсов центрального процессора.
Ядро Linux 2.6.28 (последнее из вышедших в 2008 году) поддерживает программные RAID следующих уровней: 0, 1, 4, 5, 6, 10. Реализация позволяет создавать RAID на отдельных разделах дисков, что аналогично описанному ниже Matrix RAID. Поддерживается загрузка с RAID.
ОС семейства Windows NT, такие как Windows NT 3.1/3.5/3.51/NT4//XP/ изначально, с момента проектирования данного семейства, поддерживают программный RAID 0, RAID 1 и RAID 5 (см. Dynamic Disk).
Более точно, Windows XP Pro поддерживает RAID 0. Поддержка RAID 1 и RAID 5 заблокирована разработчиками, но, тем не менее, может быть включена, путём редактирования системных бинарных файлов ОС, что запрещено лицензионным соглашением. Windows 7 поддерживает программный RAID 0 и RAID 1, Windows Server 2003 — 0, 1 и 5. Windows XP Home не поддерживает RAID.
В ОС FreeBSD есть несколько реализаций программного RAID. Так, atacontrol, может как полностью строить программный RAID, так и может поддерживать полуаппаратный RAID на таких чипах, как ICH5R. Во FreeBSD, начиная с версии 5.0, дисковая подсистема управляется встроенным в ядро механизмом GEOM. GEOM предоставляет модульную дисковую структуру, благодаря которой родились такие модули как gstripe (RAID 0), gmirror (RAID 1), graid3 (RAID 3), gconcat (объединение нескольких дисков в единый дисковый раздел). Также существуют устаревшие классы ccd (RAID 0, RAID 1) и gvinum (менеджер логических томов vinum). Начиная с FreeBSD 7.2 поддерживается файловая система ZFS, в которой можно собирать следующие уровни RAID: 0, 1, 5, 6, а также комбинируемые уровни.
OpenSolaris и Solaris 10 используют Solaris Volume Manager, который поддерживает RAID 0, RAID 1, RAID 5 и любые их комбинации, как 1+0. Поддержка RAID 6 осуществляется в файловой системе ZFS.