RAID

Нужен каждому. Кто же откажется увеличить скорость в несколько раз и довести недежность почти совсем до 100%.

Со скоростью дело обстоит так. Механика механического жесткого диска способна передать электронике жесткого диска, для последующей передачи куда надо, не более 120МB(байт)/сек. Электроника же может передать до 6144Мb(бит)=768МB/сек. (SATA3). Возьмем 6 дисков, подключим их к тому, что позволяет писать/читать данные с них одновременно, и получим ускорение почти в 6 раз. Пользователю же будет виден как-бы один диск, емкостью с 1 из 6. Это называется RAID 0.

Но, при таком раскладе, вероятность отказа всей конструкции будет равна сумме вероятностей отказа каждого из дисков, т.е. в 6 раз больше. Данные, которые хотелось бы сохранить надолго, на такое писать опасно. Данные, которые хотелось бы сохранить надолго, хочется записать в несколько надежных мест сразу, что бы они хоть где-нибудь выжили. RAID1 делает это автоматически. Подключив 2 (4,6,8...) диска, получим на каждом из них точную копию своих файлов, и, если один диск накроется, можно будет либо просто работать на оставшемся, либо поменять битый на новый и система восстановится. И, при использовании RAID1, если то, к чему диски подключены - контроллер RAID, достаточно хороший, можно будет получить небольшое увеличение скорости чтения.

Логично два этих способа: 1 и 0, объединить, что бы и скорость возросла, и надежность. Это, естественно, дороже: от 4 дисков и хороший контроллер. На 4-х дисках имеем 2 копии и двойную скорость. Это RAID10 (или 1+0 или 0+1). Гибнет он только, если одновременно выйдут из строя одинаковые диски всех зеркал, в остальных случаях можно восстановиться легко.

Можно начать экономить диски, пытаясь обеспечивать надежность не простым копированием (еще говорят «зеркалированием»), а хитрыми способами записи данных – кроме них писать еще и специальные метки на специальный отдельный диск. Это называется RAID 5. Ёмкость всей системы (говорят «массива дисков») получается не в 6-4-2 раза меньше, чем общая ёмкость объединенных дисков, а всего на 1. Но при этом:
- увеличивается нагрузка на процессор – надо высчитывать значения меток
- скорость на 20-30% ниже чем в RAID0 или RAID10 (но все же выше чем у отдельного диска)
- если вылетает 1 диск, начинается долгое трудное восстановление, с большой нагрузкой на диски и весь компутер в целом, и уж если в ходе него еще один диск умрет – тогда всё.

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

Затем выбираем желаемый тип RAID. Существует технология Intel Matrix, которая позволяет организовывать на одних и тех же дисках несколько RAIDов разных типов одновременно. Очень полезно: файл подкачки на RAID0 – без ненужной надежности, но с максимальной скоростью, ценные файлы – на RAID1 или RAID10. Еще то хорошо в Intel Matrix, что сделанный им диск-участник RAID читается в обычном, не RAID, режиме без каких-либо дополнительных действий. А вот плохо в Intel Matrix то, что сравнительно часто глючит.

RAID может быть реализован аппаратно или программно. Аппаратно - это значит с помощью специального контроллера. Чем хуже/дешевле контроллер, тем меньше работы он будет брать на себя и тем больше её достанется программе-драйверу, который будет взаимодействовать с операционной системой и грузить центральный процессор и память. В предельном случае остается один драйвер, который понесет всю нагрузку и все загрузит. Это и называется программной реализацией. Естественно, аппаратный метод предпочтительней.

Тем более, что наши любимые операционные системы Windows не поддерживают программный RAID10, самый полезный. От семерки можно добиться RAID0 и RAID1, от серверных версий: 0,1,5. XP Pro - RAID0 просто так, 1 и 5 - глубоко поковырявшись.

Стало быть – контроллер. Они бывают встроенные в материнскую плату либо отдельные. Встроенные:
- уже встроены
- в современных платах, с очень большой вероятностью – Intel, с Matrix
- могут не потребовать драйверов при остановке операционной системы (Windows, чего греха таить) или при запуске различных LiveCD или WinPE.

Отдельные:
- в большинстве случаев позволяют переносить целую систему: контроллер+диски+Windows на них, на другую машину без перестроения RAID (что, в данном случае, предполагает полную очистку от полезных данных) и без переустановки Windows, которая очень не любит, когда ей вдруг подсовывают другой контроллер дисков, чего при таком варианте не происходит)
- стоят от 3000 (более меннее приличные б/у) до 100500 (совсем приличные) рублей.
- скорее всего, Matrix не будет.

Отдельный контроллер надо еще подобрать по типу шины и дисков. Максимальная пропускная способность шины PCI 2.0 – 133MB/c., PCI 3.0 – 266МВ/с., так что PCI в принципе не потянет ни SATA2, ни, тем более SATA3. Если не надеяться на дуплекс, то PCI-E может предать по одному каналу (х1, чаще всего на материнских платах имеено такие разъемы, короткие) в версии 1.0 – 256MB/c (мало), в версии 2.0 - 512MB/c (SATA2 –достаточно, SATA3 - мало), в версии 3.0 1Gb/c. (достаточно для SATA3). Т.е. чтобы использовать SATA3 нужна материнская плата с PCI-E 3.0, либо разъем с 2-я каналами PCI-E 2.0, либо с 4-я каналами PCI-E 1.0 (если в описании материнской платы не указана версия, то она 1.0). И, соответствующий контроллер.

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

Устанавливаем. Диски подключаем. Отдельный контроллер просто вставляем в плату, а встроенный – включаем в BIOS: что-то типа IDE-configuration: RAID и еще может потребоваться что-нибудь изменить в разделе Onboard Devices, например, сменить тип контроллера SATA.

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

Создание RAIDа на новых пустых дисках происходит легко и быстро. Именовать массивы лучше соответствующими именами: Стремительный, Несокрушимый и т.д. Надо задать тип и т.н. strip – там подскажут какой для какого типа, указать на каких дисках создавать, и установить объем.

Если контроллер поддерживает Matrix (Intel, начиная с ICH6R, надо проверять по спецификациям или непосредственно при создании, методом тыка), то создаем сколько хотим каких хотим (с учетом имеющихся диском) массивов. Рекомендуется 2: RAID0 – для быстрого (виртуальной памяти, файла подкачи) и RAID1 или RAID10 – для всего остального.

Если контроллер не поддерживает Matrix, то уменьшать размер массива относительно максимально возможного можно только по одной причине – что-бы обеспечить совместимость его с дисками меньшего размера. Допустим у Вас было два диска по 238.9Gb, создан был массив объемом 238.9Gb, затем один из дисков упал, Вы принесли на замену 238.8Gb – массив его не примет, потребует полного перестроения с уничтожением данных. Лучше изначально задать объем 238.0Gb.

Кнопку жмем – готово. Теперь надо на это поставить операционную систему Windows. Есть небольшая вероятность, что встанет и так. Пробуем. То что не встанет, становится понятно на этапе, когда надо выбирать раздел для установки, а жестких дисков на компутере не оказывается. Преодолевается двумя путями:
1 - Драйвера встраиваем в дистрибутив с помощью программы nLite.
2 - Драйвера записываем на флешку, запускаем установку Windows, наблюдаем внимательно за процессом, в нужный момент жмем F6.

При создании RAIDов с зеркалированием (1,10) можно попытаться сзеркалировать уже имеющийся диск, со всеми данными и установленной Windows. Что бы она после такого запустилась, надо предварительно установить в ней драйвера RAID-контроллера. Для этого:
- устанавливаем/включаем RAID контроллер
- при загрузке программу управления RAIDом не запускаем, либо запускаем, смотрим, что диски, старый и новый (-ые) определяются как типа non-RAID и ничего не делаем
- после загрузки Windows устаналиваем драйвера RAID-контроллера, как для любого друго устройства (может потребоваться 2 перезагрузки, если контроллер что-нибудь хитро эмулирует) и надстройку над драйверами, которая уже в Windows будет RAIDом управлять. У Intel она обычно идет в одном пакете с драйверами, у Promise – отдельно и называется WebPam.
- перезагружаемся, в BIOSе входим в программу управления RAIDом, при создании нового массива ищем кнопку типа «fast initialization” и отключаем её. Если отключили правильно, то, не смотря на возможные предупреждения о полном уничтожении данных, начнется их копирование на новый диск (-и), что может занять пару часов. Полное же уничтожение, в случае ошибки, произойдет мгновенно.

Эксплуатируем. На системе из 4-х дисков SATA2 замеряем скорости: RAID0 - 300MB/c, RAID10 - 150MB/c. Радуемся. Замеры чтения произведены на рабочих дисках, с разделами и файлами. Замеры записи, естественно, на неразмеченный том.

Починяем. Если RAIDy что-то не нравится, а не нравится ему может какой-либо некритичный сбой дисков, например - недописанность кеша при внезапном отключении, он старается самоперестроится. При загрузке в BIOSе статус массива меняется с Normal на Verify (или что то в этом роде), массив продолжает работать и перестроение происходит уже под Windows, совместно с остальной деятельностью. Обращение к массиву, естественно, сильно замедляется.

С перестроениями надо быть осторожнее. Мы как то раз увлеклись разгоном машины с RAIDом и он там перестривался раз 20 подряд. В результате, часть полезных файлов, 60Gb из 200, выглядели как настоящие, но не работали.

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

Если это был RAID0 и на нем было что-нибудь полезное, то надо сразу применять спецсредства. Если любой другой, то следует поменять признанный вышедший из строя диск. Велика вероятность, что на этом беда закончится и RAID самоперестроится. Подключать новый диск к массиву в BIOSе, если он не воспримется автоматически, надо не торопясь, что бы случайно не вызвать полного перестроения. При малейшем намеке на полное перестроение лучше остановится и, применив спецсредства, скопировать данные с RAIDа на отдельный диск.

Спецсредства – это такие специальные программы. Например, нас однажды, при одновременном отказе двух дисков – одного зеркала в RAID10 спасла программа RAID Reconstructor от Runtime Software. Она умеет снимать данные с поврежденных RAID5 и RAID0, а RAID10 при таком отказе как раз в битый RAID0 и превращается. При использовании её отмечены две тонкости:
- Требуется полноценная, с регистрацией dll, инсталляция.
- Диск, на который копируются данные с RAIDа должен быть больше, чем сам RAID.

Если возится с восстановлением некогда, а работать надо, то можно попытаться запустить один из зеркалированных дисков как отдельный. Для этого, не меняя ничего в настройках RAID, просто физически удалить контроллер из компа: вынуть или отключить в BIOSе. Есть вероятность, что загрузка с диска пойдет после этого без каких либо изменений. В этом случае потом можно будет повостанавливать RAID, вернув назад контроллер.

Если не пойдет, то надо будет применить процедуру восстановления MBR, который был изменен при создании RAID, чем под руку попадется: Windows Recovery Console’ю, Paragon’ом, MBRFIX’ом и т.д.

Мигрируем. Это так приятно - переезжать на новую машину, когда диски подключены не к встроенному контроллеру на матплате, а к отдельному, в том числе и райдовому. Ничего в Windows’e менять не надо, опасаться ничего. Вынул, сунул, все работает ….

А вот если используется встроенный RAID контроллер, то возможны варианты.

Intel ICH распознают массивы, созданные их предыдущими поколениями. И естественно, на контроллерах того же поколения. Т.е. переставив диски с платы, где был, допустим, ICH7, на плату где есть ICH9, в БИОСе увидите родной RAID и загрузка с него пойдет, как и прежде.

Windows7, с большой вероятностью, загрузится без проблем, драйверы Intel ICH у ней в запасе есть и она умеет их вовремя подцеплять.

WindowsXP просто так не загрузится, поскольку у неё драйверов не окажется. Необходимо, еще работая на старом месте, установить драйвера нового контролера, что не просто и может не выйти. 

Старая школа. ОГЛАВЛЕНИЕ GeoMaps: карты и книги