Все про raid массивы из жестких дисков (hdd)
Введение
Пословицу «Пока гром не грянет, мужик не перекрестится» знает почти каждый. Жизненная она: пока та или иная проблема не коснется юзера вплотную, тот о ней даже не задумается. Умер блок питания и прихватил с собой пару-тройку девайсов — пользователь бросается искать статьи соответствующей тематики о вкусном и здоровом питании. Сгорел или начал глючить от перегрева процессор — в «Избранном» появляется пара-тройка ссылок на развесистые ветки форумов, на которых обсуждают охлаждение 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 диска.
Выбор железа
Главное в такой системе – вместительный корпус. Был взят пустой старый корпус от промышленного компьютера (халява) с 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-контроллер, вам ничего, кроме нужного количества дисков и драйверов этого самого контроллера, не понадобится. Кстати, имейте в виду: есть смысл объединять в массивы только диски одинакового объема, причем лучше одной модели. С дисками разного объема может отказаться работать контроллер, и, скорее всего, вы сможете задействовать лишь часть большого диска, равную по объему меньшему из дисков. Кроме того, даже скорость stripe-массива будет определяться скоростью самого медленного из дисков. И мой вам совет: не пытайтесь сделать RAID-массив загрузочным. Это возможно, но в случае возникновения каких-либо сбоев в системе вам придется нелегко, так как восстановление работоспособности будет сильно затруднено. Кроме того, опасно размещать несколько систем на таком массиве: почти все программы, отвечающие за выбор ОС, убивают информацию из служебных областей винчестера и, соответственно, портят массив. Лучше выбрать иную схему: один диск — загрузочный, а остальные объединены в массив.
Matrix RAID в действии. Часть объема дисков используется массивом RAID-0, оставшуюся часть пространства забирает массив RAID-1.
Каждый RAID-массив начинается с BIOS RAID-контроллера. Иногда (только в случае с интегрированными контроллерами, да и то не всегда) он встроен в основной BIOS материнки, иногда расположен отдельно и активируется после прохождения самотестирования, но в любом случае вам туда надо. Именно в BIOS задаются нужные параметры массива, а также размеры блоков данных, используемые винчестеры и так далее. После того как вы все это определите, достаточно будет сохранить параметры, выйти из BIOS и вернуться в операционную систему.
Там обязательно нужно установить драйверы контроллера (как правило, дискета с ними прилагается к материнке или к самому контроллеру, но они могут быть записаны на диск с другими драйверами и служебным софтом), перезагрузиться, и все, массив готов к работе. Можете разбивать его на логические диски, форматировать и заполнять данными. Помните только о том, что RAID не панацея. Он спасет вас от потери данных при гибели винчестера и минимизирует последствия такого исхода, но не спасет от скачков напряжения в сети и сбоев некачественного блока питания, который убивает оба диска сразу, без оглядки на их «массивность».
Пренебрежительное отношение к качественному питанию и температурному режиму дисков может существенно сократить срок жизни HDD, бывает, все диски массива выходят из строя, а все данные оказываются безвозвратно потерянными. В частности, современные винчестеры (в особенности IBM и Hitachi) очень чувствительны к каналу +12 В и не любят даже малейшего изменения напряжения на нем, так что перед закупкой всего оборудования, необходимого для построения массива, стоит проверить соответствующие напряжения и при необходимости включить новый БП в список покупок.
Питание жестких дисков, равно как и всех остальных комплектующих, от второго блока питания, на первый взгляд, реализуется просто, но в такой схеме питания немало подводных камней, и нужно сто раз подумать, прежде чем решиться на такой шаг. С охлаждением все проще: необходимо лишь обеспечить обдув всех винчестеров, плюс не ставьте их вплотную друг к другу. Простые правила, но, к сожалению, соблюдают их не все. И случаи, когда оба диска в массиве умирают одновременно, нередки.
Кроме того, RAID не отменяет необходимости регулярно изготавливать резервные копии данных. Зеркалирование зеркалированием, но если вы случайно испортите или сотрете файлы, второй диск вам никак не поможет. Так что делайте бэкап всякий раз, когда вы можете его делать. Это правило действует вне зависимости от наличия RAID-массивов внутри ПК.
Так что, are you RAIDy? Да? Отлично! Только в погоне за объемом и скоростью не забудьте другую пословицу: «Заставь дурака Богу молиться, он и лоб расшибет». Крепких вам дисков и надежных контроллеров!
Ценовая выгода шумного 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 только при использовании дисков очень большого объема.