Как создать RAID массив и зачем он нужен

Настройка программного RAID массива в среде Windows гораздо более простая задача, чем под Linux системами, однако и она имеет свои особенности. Зачастую неполные и отрывочные знания в данной области приводят к сложностям, а в среде администраторов ходят мифы и легенды о "капризности" и "глючности" данного механизма в Windows. В данной статье мы постараемся заполнить этот пробел.

Перед тем как продолжить, снова вспомним основной принцип построения аппаратных массиво: один элемент массива - один физический диск. Основа программных массивов - логический диск. Понимание этой разницы - залог успеха, то что применимо к аппаратному массиву, может оказаться катастрофическим для программного, особенно если речь идет об отказе одного из элементов массива.

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

Главное правило: установка или загрузка Windows с динамического тома возможна только в том случае, если этот диск был преобразован из системного или загрузочного тома. Т.е. если у вас стоит несколько экземпляров ОС, то после преобразования диска в динамический вы сможете загрузить лишь тот экземпляр, который находится на загрузочном разделе.

Исходя из этого правила становится очевидно, что для загрузочного и системного томов возможно создание только зеркального массива (RAID1), создание иных видов массива невозможно, так как они подразумевают установку системы на заранее созданный раздел.

А стоит ли овчинка выделки? Несмотря на все ограничения, стоит. Основной недостаток аппаратных массивов - привязка к конкретной модели контроллера. Если у вас сгорела материнская плата или контроллер, вам понадобится точно такой же (или материнская плата с аналогичным контроллером), иначе с данными можно попрощаться. В случае программного RAID достаточно машины с установленным Windows Server.

На практике работа с программными массивами и динамическими дисками производится через оснастку Хранение - Управление дисками в Диспетчере сервера . Для преобразования дисков в динамические достаточно щелкнуть на одном из них правой кнопкой мыши и выбрать Преобразовать в динамический диск , в открывшемся окне можно выбрать для преобразования сразу несколько дисков.

Стоит помнить, что эта операция необратимая и особое внимание следует уделить системному разделу, переразметить загрузочный диск у вас уже не получится (точнее он после этого перестанет быть загрузочным), единственное, что вы сможете - это расширить том за счет неразмеченного пространства.

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

Подключив дополнительные диски мы получим гораздо более широкие возможности, вы можете как объединить несколько дисков в отдельный том, так и создать RAID 0, 1 или 5.

В общем ничего сложного, однако множество ограничений способны отпугнуть кого угодно. Но не спешите делать скоропалительных выводов, по здравому размышлению никаких серьезных препятствий нет, так как обычно принято разносить систему и данные по разным дискам, учитывая копеечную стоимость современных дисков, это не влечет существенных затрат. Мы, например, для нашего тестового сервера создали зеркало для системного диска и RAID5 для данных.

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

Существуют две реализации RAID: Аппаратный и программный RAID массив

Аппаратный RAID

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

Программный RAID

Программная поддержка различных уровней RAID реализована в коде ядра для диска (блочного устройства). Это представляет собой самое недорогое решение, так как дорогие платы контроллеров дисков и шасси для горячей замены не требуются. Программный RAID работает также хорошо с более дешёвыми IDE дисками как и с дисками SCSI. Учитывая скорость современных процессоров, производительность программных RAID массивов может превосходить производительность аппаратных RAID. Драйвер MD в ядре Linux представляет собой пример реализации RAID, полностью независимой от оборудования. Производительность программного массива зависит от производительности процессора и его нагрузки. Информацию о настройке программного RAID в программе установки Red Hat Linux вы можете найти в Главе 5 . Для тех, кому интересно узнать, что ещё может предложить программный RAID, ниже приведён краткий список самых важных возможностей: Процесс перестроения поддерживает потоки Реализация полностью в ядре Массив может быть перенесён в другие Linux системы без перестроения Перестроение массива выполняется в фоновом режиме, используя свободные ресурсы системы Поддержка дисков с "горячей" заменой Автоматическое определение CPU позволяет получить выигрыш, используя оптимизацию

Жесткие диски являются основными хранителями информации на компьютере. Но они, к сожалению, не вечны. И очень досадно однажды осознать, что "накопленное непосильным трудом" вдруг исчезает из-за выхода диска из строя. В некоторых случаях данные можно восстановить. Но обычно лишь частично. И то не всегда.

Как обезопасить себя от потери данных на жестких дисках? Есть несколько вариантов решения этой проблемы.

Наиболее простой - периодически скидывать важные данные на внешние носители: DVD/Blu-ray диски, флешки, внешние жесткие диски. Вариант вообщем-то достаточно надежный, но не совсем удобный: нужно помнить и находить время для резервного копирования данных, кроме того данные от последнего копирования до краха диска все равно будут утеряны.

Чтобы не возиться с внешними носителями, можно установить в компьютер еще один HDD и периодически копировать данные на него. А еще лучше если бы это выполнялось автоматически.

Подобная автоматизация уже давно используется и она получила свое выражение в так называемых RAID-массивах. Это массивы жестких дисков, объединенных особенным способом. Существует несколько типов RAID-ов, наиболее популярные из них "RAID-0" - 2 диска влючены последовательно для более быстрого чтения-записи данных, и "RAID-1" - 2 диска включены параллельно для одновременной записи данных сразу на оба HDD. Если один из дисков выходит из строя, остается другой диск с зеркальной копией данных, а вероятность выхода из строя двух дисков одновременно очень уж невелика. RAID-1 принято называть "зеркалом", а параллельное включение нескольких дисков - "зеркалированием".

Для реализации дискового массива в компьютере должен быть установлен контроллер RAID-а. Он может быть встроенным в материнскую плату, а может устанавливаться отдельно.

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

В связи с этим в последнее время все большую популярность приобретают так называемые "программные RAID-ы", т.е. параллельная запись данных на 2 диска выполняется не на аппаратном уровне, а на программном. Специальная программа отслеживает все операции записи данных на определенный диск и пишет эти же данные на другой диск.

В операционных системах Windows 7 и Windows 8 разработчики встроили программный RAID в саму ОС, т.е. реализовать зеркалирование данных можно средствами Windows.

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

Если на вашем компьютере только одна операционная система, можете смело использовать все описанное далее, Вашей Windows ничего не грозит.

Итак для того, чтобы посмотреть все подводные камни зеркалирования данных средствами ОС, я использую компьютер с 2-мя установленными операционными системами - Windows 7 и Windows 8. При том первой была установлена Windows 7, а затем, на другой логический диск, Windows 8. Выполнять само зеркалирование мы будем в Windows 8.

Что для этого нужно? Нужно, чтобы на компьютере было 2 физических жестких диска. Иначе и быть не может - копирование данных диска на него самого лишено всякого смысла, так как при выходе диска из стироя мы потеряем и данные и их копию одновременно. Преимущество программного RAID-а в том, что его, в отличии от аппаратного, можно настраивать для отдельных логических дисков, а не только для всего физического диска в целом.

Для создания зеркала необходимо войти в управление дисками. Для этого заходим в Панель управления и выбираем "Администрирование".

В Администрировании находим "Управление компьютером".

В окне Управления компьютером слева выбираем "Управление дисками".

Из рисунка видно, что на компьютере есть 2 физических диска - "Диск 0" и "Диск 1". Будем создавать зеркало для логического диска F (Новый том), находящегося на Диске 0. Объем этого раздела 10Гб. У нас есть второй HDD (Диск 1), объемом 12Гб, который используем как зеркало. На втором диске должно быть нераспределенное свободное место, объем которого не меньше объема зеркалируемого диска. У нас на Диске 1 есть 12Гб нераспределенного пространства, т.е. в этом пространстве нет логических дисков.

Щелкаем правой кнопкой мыши на нужном разделе и в контекстном меню выбираем "Добавить зеркало".

Система предложит выбрать диск, который будет использоваться в качестве зеркала.

Выбираем нужный диск из списка и нажимаем "Добавить зеркальный том". Вот тут появится интересное предупреждение:

Нас предупреждают о том, что диски будут преобразованы в динамические и если на компьютере установлено несколько операционных систем, то после выполнения данной операции рабочей останется только запущенная сейчас ОС. Проверим это в дальнейшем. Нажимаем "Да".

Начнется процесс создания зеркала - если на диске F есть какие-то данные, они будут скопированы на зеркальный диск.

После завершения всех процессов получаем вот такую картину.

Как видим, система забрала со второго диска пространство, объем которого равный объему зеркалируемого диска. Остальное пространство второго диска осталось неразмеченным и его можно использовать по своему усмотрению, например создать там еще один логический диск.

Проверим, сможем ли мы теперь загрузить вторую ОС, установленую на компьютере. Напомню, в моем случае установлены Windows 7 и Windows 8, все действия мы выполняли под Windows 8. Попробуем загрузить Windows 7.

Перезагружаем компьютер, получаем список выбора ОС.

Выбираем Windows 7, начинается процесс загрузки и... получаем вот это.

Теперь еще о подводных камнях, о которых я упоминал в начале статьи. Я не зря там оговорился, что Windows 8 была установлена после Windows 7. На что это влияет? Дело в том, что на компьютере может быть только один загрузчик ОС. И загрузчиком всегда является загрузчик последней установленной операционной системы - он переписывает предыдущий найденный на диске загрузчик. Но при этом, в процессе установки, Windows, найдя на компьютере уже установленные ранее операционные системы, конфигурирует свой загрузчик таким образом, чтобы он предоставлял пользователю список установленных ОС при запуске. Из этого списка мы выбираем какую ОС сейчас хотим запустить. В моем случае запускается загрузчик Windows 8, которая была установлена последней, и предлагает список найденных операционных систем. Теперь представим, что я выполнил бы настройку зеркалирования не в Windows 8, а в Windows 7. В этом случае Windows 8 стала бы неработоспособной. А вместе с ней перестал бы функционировать и ее загручик и я лишился бы возможности вообще запустить какую либо ОС на своем компьютере - проверено опытом. Решением этой проблемы может быть только переустановка Windows.

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