Компьютеры, оснащенные несколькими винчестерами, — не такое уж редкое явление. Дополнительные жесткие диски часто появляются в результате апгрейда системы, а отдельные энтузиасты не стесняются оснащать свой ПК парой-тройкой емких HDD изначально. Тем не менее не все знают, что винчестеры можно использовать не только независимо друг от друга. Подобно видеокартам, работающим в режиме SLI/Crossfire, жесткие диски могут тесно взаимодействовать друг с другом, даруя пользователю новые возможности. Речь идет о так называемых RAID-массивах.
Что такое RAID?
Аббревиатура RAID расшифровывается как «Redundant Array of Independent Disks», т. е. «избыточный массив независимых дисков». Впервые RAID был представлен миру в далеком 1987 году, когда на свет вышла статья, описывающая технологию объединения нескольких обычных дисков в массив для получения более быстрого и надежного накопителя. Правда, тогда аббревиатура означала «Redundant Array of Inexpensive Disks», т.е. «избыточный массив недорогих дисков», но впоследствии от этой расшифровки отказались.
Следующим шагом на пути продвижения RAID стало представление описания технологии на конференции SIGMOD в 1988 году. Тогда же были сформированы принципы работы различных уровней RAID, с первого по пятый. Отметим, что уровень массива лишь показывает, как накопители будут взаимодействовать друг с другом, т. е. RAID 3 не считается лучше, чем, скажем, RAID 5, — он просто другой. Впоследствии на свет появились RAID уровней 0 и 6, а также сочетания массивов разного типа.
Главная особенность RAID-массива заключается в том, что несколько жестких дисков воспринимаются операционной системой как один. Можно сказать, что объединение винчестеров в RAID — это процесс, противоположный разбиению дискового пространства на логические диски. В случае с массивом создается один логический накопитель на основе нескольких физических, а ОС взаимодействует уже не с HDD, а с RAID-контроллером, к которому они привязаны.
Слово «избыточный» в аббревиатуре RAID находится неспроста. Дело в том, что для всех «традиционных» массивов объем логического диска будет меньше суммы объемов накопителей, входящих в его состав. Однако это компенсируется тем, что данные, хранящиеся в массиве, не будут потеряны, если один из HDD неожиданно распрощается с этим бренным миром. Более того, в некоторых случаях допускается выход из строя сразу нескольких дисков.
Популярные массивы
Условно уровни RAID можно разделить на два типа. К первому относятся массивы, которые часто используются в быту и доступны рядовому пользователю, а ко второму — редкие мастодонты, преданные забвению либо используемые в серверах. Рассмотрим для начала актуальные уровни.
RAID 0
Первым по порядку идет нулевой уровень (RAID 0 или «striping»). Он не относится к традиционным, т. е. его описания нет в документе разработчиков от 1988 года. Более того, это единственный из массивов, который не обеспечивает избыточности данных и, соответственно, повышенной отказоустойчивости. Принцип работы RAID 0 основан на том, что данные, поступающие на контроллер, поочередно записываются сразу на несколько HDD, не дублируясь, т. е. если потребуется записать какой-то файл, то его части будут равномерно раскиданы по нескольким дискам. Зачем это надо? Исключительно с целью повышения скорости приема и передачи данных, ведь информацию можно будет записывать и считывать сразу с нескольких источников, при этом каждый из них будет работать с максимально допустимой для жесткого диска пропускной способностью. Теоретически объединение пары винчестеров в массив RAID 0 может увеличить скорости чтения и записи вдвое, но на практике эти значения возрастают примерно в 1,6-1,8 раза, в зависимости от качества RAID-контроллера.
Если объединить в RAID 0 несколько жестких дисков разного объема, то на вместительных винчестерах будет задействована лишь часть дискового пространства, равная объему наименьшего HDD. Объединив диски объемом 320 Гб и 250 Гб, мы получим массив на 500 Гб. Вообще, чтобы избежать потерь, для RAID любого уровня следует использовать носители одинакового объема.
Это важно: аналогично объему, если накопители обладают разной скоростью чтения и записи, производительность всего массива будет ограничена скоростью наиболее медленного HDD.
В случае с нулевым уровнем за скорость надо расплачиваться надежностью: если один из винчестеров умрет, то информация на остальных HDD из массива станет нечитабельной, а вероятность выхода RAID 0 из строя даже выше, чем в случае с одним накопителем. Словом, нулевой уровень плохо подходит для хранения важной информации или системных файлов, но тем не менее популярностью он пользуется. Например, RAID 0 нередко становится частью мощных игровых ПК: игры записываются на скоростной, но небезопасный массив, а ОС и важные файлы хранятся на отдельном винчестере. Такой подход вполне оправдан.
JBOD
Частной разновидностью RAID 0 можно считать JBOD (Just a Bunch of Disks), он же «spanning». Это — не уровень RAID, а всего лишь функция, которая обычно поддерживается RAID-контроллерами. JBOD просто «склеивает» несколько дисков в один массив, при этом никаких чередований в записи нет. Данные сначала записываются на первый диск. Когда он заполняется, система принимается за второй винчестер, и так далее. Отказ одного накопителя не приводит к потере файлов на остальных HDD, если их начало/конец не принадлежит поврежденному диску. Никакой прибавки к скорости технология не дает, правда, в отличие от традиционных RAID, объединение носителей разного объема в JBOD не приводит к потере части дискового пространства. Тем не менее очевидно, что в наш век терабайтных винчестеров JBOD уже никому не нужен.
RAID 1
Уровень RAID 1 («mirroring») требует для реализации четного количества жестких дисков: они разбиваются на пары, и вся информация считывается или записывается одновременно на два винчестера, полностью дублирующих друг друга. Другими словами, в массиве RAID 1 из двух HDD содержание обоих жестких дисков будет абсолютно идентичным в любой момент времени. Соответственно, безвозвратная потеря данных возможна лишь в том случае, если из строя выйдут сразу оба винчестера. Такой массив не только повышает надежность хранения информации, но и увеличивает скорость чтения данных, т. к. их можно «тянуть» сразу с двух дисков. При этом скорость записи остается такой же, как и у одного накопителя. Понятно, что объем логического диска, созданного с помощью RAID 1, будет в два раза меньше суммарного объема винчестеров. В целом массив первого уровня очень практичен и часто применяется пользователями, обеспокоенными сохранностью данных.
RAID 1+0
Заметим, что массивы уровней 0 и 1 можно объединять между собой, если это позволяет RAID-контроллер. Для полноценной реализации подобной конфигурации потребуется четыре накопителя: два будут работать в режиме RAID 0, а еще два — дублировать все их действия. В результате мы получим и скорость, и надежность. К тому же в данном случае допустим выход из строя сразу двух дисков, если это не «винчестеры-клоны». Сочетание этих двух уровней часто называют RAID 10, однако за этим же именем в ряде случаев может прятаться обычный RAID 1 — за это стоит сказать спасибо маркетологам, интерпретирующим чтение с двух дисков как полноценный RAID 0.
RAID 5
Еще один массив, пользующийся популярностью, — это RAID 5. В его основе лежит принцип восстановления данных на основе блоков четности. Для реализации RAID 5 требуется как минимум три жестких диска. При этом на каждом из них помимо самой информации будут складироваться те самые блоки контроля четности. Объем памяти, доступный пользователю, будет равен суммарному объему всех дисков за вычетом одного из них. Например, массив RAID 5 из четырех винчестеров по 250 Гб образует логический диск на 750 Гб. В случае потери одного из дисков блоки четности, раскиданные по остальным накопителям, позволяют восстановить информацию, которая хранилась на погибшем накопителе. Массив RAID 5 не только надежен, но и производителен, однако аналогичная конфигурация, образующая RAID 0, все равно будет работать быстрее, ведь в последнем случае контроллеру не придется обновлять блоки четности.
Наглядные данные | ||||||
Уровень | Использование емкости дисков |
Производительность | Надежность | Мин. кол-во дисков |
Макс. кол-во дисков |
|
чтения | записи | |||||
RAID 0 | 100% | Высокая | Высокая | Низкая | 2 | 16 |
RAID 1 | 50% | Высокая | Хорошая | Высокая | 2 | 2 |
RAID 10 | 50% | Высокая | Высокая | Высокая | 4 | 16 |
RAID 5 | 67-94% | Высокая | Средняя | Хорошая | 3 | 16 |
Экзотические уровни
Помимо описанных выше массивов существуют и другие, гораздо менее популярные уровни RAID. Например, массивы второго уровня на сегодняшний день практически не используются, причем это вполне закономерно.
RAID 2
Судите сами: в RAID 2 количество винчестеров, объем которых недоступен пользователю, лишь на единицу уступает числу накопителей, непосредственно хранящих информацию, а высокую производительность массивы второго уровня демонстрируют лишь при работе с большим числом жестких дисков. На избыточных винчестерах в RAID 2 хранятся коды коррекции, получаемые по методу Хемминга. Они позволяют на лету исправлять мелкие однобитовые ошибки, а также восстанавливать утерянную информацию при выходе из строя одного из накопителей, однако из-за своей дороговизны RAID 2 не сыскал популярности.
RAID 3
RAID 3 — это фактически недоработанная версия RAID 5. Информация перед записью разбивается на блоки по одному байту и равномерно раскидывается по всем накопителям массива, за исключением одного. На этот избыточный винчестер записываются блоки четности для восстановления информации. Недостаток такого подхода заключается в том, что при большом количестве носителей производительность всего массива будет упираться в скорость работы жесткого диска с блоками четности. Кроме того, при частых запросах файлов небольшого объема RAID 3 наблюдаются проблемы со скоростью работы.
RAID 4
RAID 4 отличается от RAID 3 тем, что данные разбиваются на блоки, а не на байты, благодаря чему решается проблема низкой скорости передачи данных небольшого объема. Однако по практичности RAID 4 все равно уступает RAID 5.
RAID 6
Массив шестого уровня представляет собой следующую ступень развития RAID 5. В данном случае рассчитываются и разбрасываются по винчестерам сразу две контрольные суммы, причем вычисления ведутся по разным алгоритмам. Это приводит к тому, что данные можно восстановить даже при потере двух накопителей. Расплатой за это можно считать значительное снижение скорости записи, так как контроллеру постоянно приходится обновлять большое количество информации о блоках четности. Также очевидно, что RAID 6 лучше собирать из большого количества винчестеров, так как из итогового объема логического диска будет вычтен объем двух накопителей, да и вероятность выхода из строя сразу двух носителей информации при малом их числе ничтожна.
Современные южные мосты от компании Intel с поддержкой RAID-массивов способны работать с интересной технологией Matrix RAID. С ее помощью пользователь может использовать части одного и того же физического диска для создания массивов различного уровня. Так, можно объединить в системе уровни 5 и 0, воспользовавшись всего тремя одинаковыми накопителями, или одновременно наслаждаться преимуществами RAID 0 и RAID 1, обладая всего парой винчестеров. Последнее, кстати, очень практично.
Приведем пример: из двух накопителей по 500 Гб можно сделать два массива. Один из них, скажем, на 250 Гб, будет работать в режиме RAID 1, обеспечивая сохранность системных файлов и важных данных. При этом второй логический диск на 500 Гб, собранный как массив нулевого уровня и обладающий благодаря этому высокой пропускной способностью, станет хранилищем для игр. При гибели одного из накопителей данные на 250-гигабайтном логическом диске останутся невредимы, а содержимое 500-гигабайтного раздела будет утеряно навсегда.
Практическая реализация
Итак, что же потребуется пользователю для создания RAID-массива? Ответ прост: нужное количество накопителей и контроллер, поддерживающий необходимый уровень RAID. С выбором винчестеров все просто: крайне желательно, чтобы они были одинакового размера, а их производительность находилась на одном уровне. В идеале следует использовать набор винчестеров одной и той же модели.
С контроллером все немного интереснее. Дело в том, что RAID может быть реализован тремя путями: аппаратно, программно-аппаратно и программно. Полностью аппаратный RAID-контроллер — штука крайне полезная. Он проводит все операции самостоятельно, и ему наплевать на программное обеспечение, установленное в системе. Такие устройства оснащаются сложными вычислительными процессорами и собственной памятью. Очень часто аппаратные контроллеры выполняются в виде плат расширения для PCIe ×4 или PCIe ×16. Цена такого устройства вполне сопоставима со стоимостью неплохого системного блока.
При программно-аппаратной реализации часть функций контроллера возлагается на плечи центрального процессора и оперативной памяти посредством драйверов. Как правило, по такому принципу работают все недорогие RAID-контроллеры, включая те, что встраиваются сегодня в материнские платы.
Непрофессиональные устройства для организации RAID, представляющие собой карты расширения, практически утратили свою актуальность: встроенные в системные платы контроллеры выглядят куда более разумным выбором, особенно в случае с массивами нулевого и первого уровня. Во-первых, они достаются нам совершенно бесплатно: нет необходимости докупать далеко не самое дешевое устройство и забивать им слот расширения. Во-вторых, встроенные решения зачастую выигрывают в скорости у дискретных. Связано это с тем, что независимые RAID-контроллеры начального уровня обычно выполняются в виде платы расширения с разъемом PCI, а пропускная способность этого интерфейса далеко не выдающаяся, так что производительность массива вполне может упираться в этот параметр. Кроме того, использование этого разъема привносит определенные задержки в работу. Интегрированные контроллеры — это часть южного моста, так что описанных проблем они лишены.
По сути, для организации простого RAID-массива вполне хватит контроллера, встроенного в материнскую плату: сегодня почти все южные мосты обеспечивают поддержку уровней 0, 1, 5 и 10. В целом, приобретать независимый RAID-контроллер мы рекомендуем лишь в крайнем случае, например, если интегрированный не поддерживает необходимое число накопителей. Заметим, что встроенные контроллеры, как правило, не лучшим образом работают с RAID 5, но этой же проблемой грешат и недорогие дискретные решения.
Существует также полностью программный RAID, однако популярностью он не пользуется: такие массивы существенно нагружают центральный процессор, да и в случае краха операционной системы данные будет очень сложно восстановить.
И еще: многие RAID-контроллеры поддерживают установку резервного диска. Он бездействует, пока массив работает корректно, но если один из винчестеров выйдет из строя, то резервный диск автоматически становится на его место. Функция, конечно, полезная, но в случае домашних RAID-массивов неактуальная.
RAID-массивы не обязательно должны быть частью ПК или сервера. В продаже встречаются и внешние хранилища информации, обеспечивающие поддержку RAID. Помимо накопителей они оснащены собственным RAID-контроллером, который функционирует сам по себе, без вмешательства компьютера.
Примером подобного устройства может служить DNS-343. Устройство представляет собой кейс внушительных размеров с четырьмя отсеками для жестких дисков. Хранилище обеспечивает HDD-поддержку RAID-уровней 0, 1, 5, а также функции JBOD. DNS-343 — это сетевой накопитель, так что он позволяет пользователям локальной сети организовать разграниченный доступ к хранимым данным.
Другой интересный пример — накопитель WD My Book Mirror Edition, о котором вы можете прочесть в нашей рубрике «Новинки».
Создание и настройка
Прежде чем создавать и настраивать RAID-массив, стоит сделать одну важную вещь — прочесть инструкцию к контроллеру или к материнской плате, в которую он вшит. Это не тот случай, когда все можно делать вслепую, опытным путем: обо всех особенностях устройства лучше знать заранее.
BIOS
Чтобы вы имели представление о том, как происходит активация и настройка RAID, разберем эти действия на примере RAID-контроллера, встроенного в южный мост Intel ICH9R материнской платы Asus P5K Premium. В данном случае пользователю требуется зайти в BIOS и в разделе «SATA Configuration» выставить значение «RAID» в строке «Configure SATA As» и «Enabled» в пункте «Onboard Serial-ATA BOOTROOM». После сохранения настроек и перезапуска системы появится окно настройки RAID, в котором нужно будет выбрать необходимый уровень массива, диски, которые будут входить в него, а также значение параметра «stripe». Эта величина показывает размер кусков, на которые будут разбиваться данные перед записью, и оказывает значительное влияние на производительность. Увы, для этого параметра не существует единственно верного значения, обеспечивающего наибольшее быстродействие. Оптимальная величина будет зависеть от самого винчестера, контроллера и даже обрабатываемых данных. Как правило, наиболее близко к идеальному значение 32 Кб, но пользователям, желающим выжать максимум из своей системы, мы рекомендуем самостоятельно произвести замеры быстродействия массива с различными величинами «stripe» с помощью какого-либо бенчмарка.
После завершения настроек RAID пользователя предупредят о том, что все данные на дисках будут потеряны. Остается согласиться с этим, и система приступит к созданию массива. При инсталляции операционной системы потребуется «скормить» установщику драйвер от RAID-контроллера. В случае с Windows XP для этой цели потребуется флоппи-дисковод и дискета с драйвером (устройства редкие, не отрицаем), при установке Vista можно обойтись флэш-накопителем. В обоих случаях записать нужные файлы на портативные носители поможет компакт-диск, поставляющийся с материнской платой.
Альтернативы
Конечно, можно пойти и на хитрости. Ничто не мешает установить систему и драйвера на обычный жесткий диск, с помощью других накопителей собрать RAID-массив из-под BIOS, после чего загрузить установленную операционную систему и клонировать содержимое загрузочного жесткого диска в массив с помощью, например, Acronis True Image. Также можно попытаться встроить драйвера RAID в дистрибутив Windows с помощью программы nlite.
После установки операционной системы в нашем примере понадобится проинсталлировать фирменное программное обеспечение Intel Matrix Storage Console. С помощью этого инструмента можно осуществлять мониторинг состояния RAID, а также пользоваться различными дополнительными возможностями вроде перестроения массива из одного уровня в другой.
По большому счету, для других RAID-контроллеров процесс создания массива не будет сильно отличаться. В ряде случаев может потребоваться ручная инициализация массива: для этого потребуется открыть меню «Управление», доступ к которому осуществляется через контекстное меню значка «Мой компьютер», и выбрать вкладку «Управление дисками».
RAID — очень полезный инструмент, позволяющий повысить надежность хранения данных, а в ряде случаев еще и скорость их передачи. Однако использование массивов связано с рядом проблем. Например, вам, возможно, не удастся открутить накопители и присоединить их к другому компьютеру без потери информации — с высокой вероятностью проявятся проблемы совместимости. Также увеличение числа винчестеров в системе неизменно приводит к повышению уровня шума.
Важно помнить, что RAID помогает сберечь информацию, но это не панацея от всех бед. Какой-нибудь лихой вирус, поселившийся на диске, может легко уничтожить ценные данные, и тут уж от RAID не будет толку. Другое слабое место массивов — их беззащитность перед резкими скачками напряжения. Если блок питания подаст по линии +12 В «что-нибудь не то» — погорят все винчестеры, и информация, несмотря ни на что, также будет утеряна.
И последнее: жесткие диски достаточно сильно нагреваются, поэтому мы рекомендуем располагать их по возможности подальше друг от друга. Также не помешает наладить эффективный обдув накопителей: все-таки за надежность боремся...