Опубликовано 28 сентября 2002, 00:33

RAID домашнего пользования

Краткое описание технологии создания RAID-массивов. Примеры использования в домашних системах

Когда мне впервые встретилось слово RAID, я по привычке запросил перевод у любимого Lingvo. Запросил для дела, но вместо аббревиатуры впопыхах набрал слово строчными буквами и, разумеется, получил в ответ, что «raid» — ни что иное, как воздушный налет (вторжение, вылазка) и даже был предложен вариант выражения — «a raid into enemy territory».

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

Сегодня разъемы RAID появились даже на недорогих материнских платах. Но, по-моему, даже десятая часть обладателей этих разъемов и не думает ими пользоваться. Если моя догадка верна, возникает закономерный вопрос — этот «рейд» совершенно бесполезная для простого пользователя штука? Или все-таки может пригодиться в домашнем хозяйстве?

Впервые технология создания RAID-массивов была представлены в 1987 году тремя исследователями Калифорнийского университета — Гибсоном, Петтерсоном и Катцом. В следующем году они сделали официальный доклад о RAID’е, где были определены уровни RAID’а и их практическое назначение. С этого момента RAID-массивы получили резкий толчок к развитию. Друг за другом стали разрабатываться новые уровни повышенной отказоустойчивости — RAID 6, 10, 30, 50, специальные архитектуры и алгоритмы шифрования информации, позволяющие восстанавливать данные при одновременном уходе из жизни сразу нескольких винчестеров (например, специальный алгоритм кодирования Reed-Solomon, используемый в RAID-6, или новая архитектура AFRAID с высокой отказоустойчивостью). Постоянно возникали новые идеи по созданию систем «отдающим предпочтение» только различным свойствам массива — высокая производительность системы при низкой отказоустойчивость или высокая производительность при низком объеме и т.д. Чаще всего новые эффективные архитектуры разрабатываются для RAID-5, примеров таких очень много и даже компания Seagate выпустила на рынок драйв со встроенной поддержкой RAID через интерфейсы SCSI и Fibre Chanel, что дало ощутимую прибавку в скорости обработки информации при работе именно в массиве пятого уровня. Возможно, когда-нибудь уровни RAID’а выше первого начнут применяться в домашних системах. Пока же дело ограничивается применением самых простых режимов, что для недорогих систем вполне оправдано.

Сначала завершим перевод, с которым Lingvo сразу не справился. Если подключить компьютерный словарь и набрать слово, как положено, прописными буквами, можно выяснить, что RAID — это избыточный массив независимых дисков (Redundant Array of Independent Disks) или избыточный массив недорогих дисков (Redundant Array of Inexpensive Devices)1.

Избыточный массив, а если точнее, то массив с резервированием — это просто несколько жестких дисков, работающих в одной упряжке. Например, у вас имеется два-три винчестера, вы преспокойно можете состыковать их в один RAID-массив, который будет «прикидываться» одним, но большим диском. Пожалуй, сегодня это не так актуально, как в те годы, когда было принято говорить, что «винчестера всегда мало». Сегодня диски в 40–60 гигабайт перекрывают требования большинства реальных задач. И если у вас нет большого диска, но имеется пара «лишних» 20-гигабайтников (и на каждом из них сложно хранить, к примеру, промежуточные результаты видеомонтажа), есть резон объединить их в один 40-гигабайтник. Кстати, такой вариант работы RAID-контроллера называют нулевым уровнем, и это действительно самое несложное, что способен дать RAID-массив. Об остальных возможностях поговорим чуть позже.

В принципе, RAID-массив можно организовать на любом компьютере, даже если на материнской плате нет соответствующего контроллера и разъемов. Специальный SCSI-контроллер можно установить в слот PCI, и к нему присоединить SCSI-винчестеры. Но, думаю, сегодня это слишком дорогое решение никому не придет в голову, поскольку на многих материнских платах есть уже готовая «инфраструктура» под IDE — контроллер и два дополнительных IDE-разъема, к которым присоединяется до 4 дисков. Причем работать они могут на любом современном протоколе, лишь бы он поддерживался самой материнской платой (чипсетом), вплоть до ATA-100 и ATA-133.

RAID для дома

2.gif

Распределение данных на двухдисках в режиме stripping.Файл 1 = «ABCD».Файл 2 = «EFIJ».

2.gif

Распределение данных на двухдисках в режиме stripping.Файл 1 = «ABCD».Файл 2 = «EFIJ».

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

Вопреки логике счета, до момента, когда RAID-массивы стали достоянием народа (появились на недорогих системных платах), уровни RAID отсчитывались, начиная с первого. Нулевой уровень был создан позже, и как раз сейчас он прекрасно подходит для домашних компьютеров с двумя винчестерами. Правда, этот уровень— самый ненадежный для хранения информации (отказ одного из винчестеров влечет за собой потерю всех данных массива), но производительность его намного выше, чем у обычных «одновинчестерных» систем. Это особенность и делает его притягательным для многих пользователей. Принцип действия нулевого уровня RAID (другое его название — striping, «работающий полосками») довольно прост — блоки данных распределяются между винчестерами. Т.е. части одного файла или набора файлов могут оказаться на разных дисках, но при синхронной работе запись и чтение производятся намного быстрее, чем на одном диске. Разумеется, даже если отвлечься от простого: «мне приятно, когда мой компьютер работает быстро», — режим striping может быть необходим в задачах, где требуется быстрая обработка больших файлов — в том же видеомонтаже или обработке больших фотографий в высоком разрешении.

Существует еще один вариант массива нулевого уровня, с которым мы уже кратко познакомились. Называется он JBOD (Just a Bunch of Drives — только связка дисководов) и отличается от первого варианта методом «разбрасывания» информации по дискам. При работе по принципу JBOD информация сначала записывается на один винчестер, а когда он заполнится под завязку, запись начинается на второй винчестер и.т.д. Это самая примитивная схема RAID — эмулируется банальное подключение винчестеров к обычному контроллеру дисководов материнской платы.

1.gif

Распределение данных одногофайла (ABCD) на двух дискахв режиме mirroring.

1.gif

Распределение данных одногофайла (ABCD) на двух дискахв режиме mirroring.

Следующий уровень RAID зовется первым (другое название — Mirroring, «уровень зеркалирования»). С его использованием на домашнем компьютере связана очень одна особенность. Дело в том, что для работы RAID-массива на этом уровне желательно иметь в наличии более двух винчестеров в одном компьютере. Мало того, число винчестеров в массиве всегда должно быть четным. Смысл работы mirroring в том, что все винчестеры объединяются в пары и становятся зеркалами (т.е. полностью дублируют друг друга). Налицо потеря свободного объема (ровно половина от всего дискового пространства!), но взамен вы получаете довольно неплохую защиту информации. При потере данных с одного винчестера всегда можно восстановиться с зеркала.

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

Последний вариант RAID-массива домашнего пользования — RAID 0+1. Такой способ работы массива — самый эффективный по всем параметрам, включая надежность и скорость. Но объединять в такой массив можно не менее 4 винчестеров. При таком подключении, например, два диска будут работать на нулевом уровне (режим striping), а два остальных будут зеркальными дисками, причем также работающими в режиме Striping. К минусам такого уровня можно опять же отнести избыточность за счет зеркалирования.

Очень полезной особенностью работы RAID-контроллера на уровне 1 и 0+1 (кстати, такая же особенность присутствует на уровнях 3 и 5) это возможность резервной замены дисков (Standby Replacement of Disks). Актуальна она только для небольших серверов или домашних станций, когда в системе находится много ценной информации и есть дополнительный резервный винчестер. Информация, находящаяся на вышедшем из строя диске восстанавливается — переписывается через зеркало на резервный диск, подключенный к этому же контроллеру и он тем самым быстро заменяет собой вышедший из строя накопитель. Таким образом, надежность RAID 1 и 1+0 при наличии дополнительного (так называемого «горячего резерва» — Hot Spare) диска резко возрастает.

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

RAID-практикум

Для начала скажу, что самая популярная схема подключения винчестеров такая: один диск подключен к стандартному разъему IDE, и является загрузочным (к массиву он соответственно никакого отношения не имеет), а остальные драйвы подключены соответственно к IDE RAID и объединены в один массив.

У каждого RAID-контроллера, будь-то впаянного в материнку или выполненного в виде PCI карты, есть свой собственный BIOS, где происходит конфигурирование работы массива и содержатся прочие полезные настройки. Только в случае с впаянным IDE RAID-контроллером, все настройки массива будут содержаться в основном BIOS’е компьютера — BIOS’е материнской платы.

При первом запуске, когда дополнительные винчестеры только подключены к разъемам IDE RAID, следует обязательно навестить BIOS и выставить там необходимые параметры работы RAID-массива (в частности уровень). Затем, загрузившись в операционную систему установить специальные драйверы для RAID-контроллера, которые должны идти в поставке с вашей материнской платой. Эти драйверы очень важны, без них Windows, хоть и распознает подключенные к ней диски, но работать с ними категорически откажется, а любая попытка воздействия на массив будет вводить ОС в ступор с последующим мертвым зависанием.

После всех этих действий у вас в компьютере помимо обычного диска, подключенного к стандартным разъемам IDE, появится еще один, (во вкладке «Система» Панели Управления раскроется название вашего контроллера). Теперь массив может быть спокойно отформатирован и разбит средствами Windows или DOS (сразу после настройки BIOS весь массив становится доступным в DOS’е, в том числе и для самых распространенных программ FORMAT и FDISK).

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

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

Как бы то ни было, абсолютно безболезненной транспортировки файлов в составе массива не получишь, и если вам часто приходится таскать горы информации, лучше обзаведитесь скоростным CD-RW. Или пусть помимо массива на стандартном IDE-канале останется висеть отдельный загрузочный винчестер. С ним и на другом компьютере загрузиться можно, да переносить его легче.

Что же касается надежности, тут, я думаю, всем ясно — чем больше дисков объединено в массив, тем надежней эта структура себя чувствует. При работе в режимах RAID, в которых присутствует зеркалирование, желательно иметь все диски одного размера, иначе можно столкнутся с нехорошей проблемой пропажи свободного места. Например, размер зеркального массива, в который включены винчестеры емкостью 40 и 60 Гбайт будет равняться 40 Гбайтам, а оставшиеся на одном из винтов 20 гигабайт попросту не будут использоваться. Если у вас такая ситуация, то для полноценного использования всего объема надо «включать» массив на нулевом уровне или уровне JBOD, а лучше всего пойти и обменять сороковник на шестидесятник.

На большинстве материнских плат, что сегодня можно встретить в продаже, контроллер IDE RAID построен на чипах Promise PDC20265R или Promise PDC20276. И, по большому счету, пользователя могло бы и не волновать, какой чип стоит на системной плате, если бы не одна особенность более современного Promise PDC20276, который устанавливают на последние модели «матерей». Этот контроллер позволяет использовать дополнительные разъемы IDE 3 и 4 без RAID. Т.е. пользователь получает возможность активизировать контроллер и получить дополнительные каналы IDE для простого подключения дисков. При этом можно, например, каждое дисковое устройство повесить на свой собственный канал и таким образом увеличить скорость работы с драйвами при их одновременной работе.

IDE3.jpg

RAID-контроллер и дополнительные разъемы IDE-3 и IDE-4 на материнской плате MSI K7T 266 Pro.

IDE3.jpg

RAID-контроллер и дополнительные разъемы IDE-3 и IDE-4 на материнской плате MSI K7T 266 Pro.

Ну, и в завершении необходимо рассказать о возможности системного эмулирования RAID-массива, т.е. замены аппаратного контроллера программным. Такие вещи могут проделывать Windows NT 4.0 и Windows 2000, однако рекомендовать такую реализацию RAID’а язык не поворачивается. Конечно, основное достоинство программного RAID’а дешевизна, но в этом случае на кон ставится производительность не только дисковой подсистемы, но и всего компьютера в целом, к тому же, как и все программное, работа RAID’а будет в первую очередь зависеть от состояния системы, а все операции по обработке данных лягут на плечи процессора. Стоит ли овчинка выделки? Не думаю. Тем более, основная цель организации RAID-массива — повышение производительность системы и, по крайней мере, сохранение надежности. А в случае заркальных режимов — значительно увеличить надежность. Причем, разумеется, для этого должны быть веские основания — стоимость информации на дисках должна быть не меньше тех затрат, которые придется понести, создавая RAID-массив. Это простое правило очень часто используют при построении самых разных систем. Так что, если вы решились на «рейд», постарайтесь реально взвесить насколько ценны для вас скорость и надежность — то, что может дать работа с RAID-массивами.


  1. Второй вариант расшифровки этой аббревиатуры уходит своими корнями в недалекое прошлое, когда в массивах использовались «не слишком дорогие девайсы» — по сравнению с крупногабаритными дисковыми накопителями мини-ЭВМ. Однако сейчас RAID принято расшифровывать все-таки как массив независимых дисков, поскольку для реализации некоторых уровней RAID’а используется очень и очень недешевая аппаратура. [вернуться]

По материалам журнала «Домашний Компьютер».