Софтовый raid. Как создать RAID массив и зачем он нужен

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

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

Наиболее простой - периодически скидывать важные данные на внешние носители: 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.

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

Настройка программного 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 позволяет получить выигрыш, используя оптимизацию

Привет всем читателям сайт! Друзья, я давно хотел с Вами поговорить о том, как создать на компьютере RAID массив (избыточный массив независимых дисков). Несмотря на кажущуюся сложность вопроса, на самом деле всё очень просто и я уверен, многие читатели сразу после прочтения этой статьи возьмут на вооружение и будут с удовольствием пользоваться данной очень полезной, связанной с безопасностью ваших данных технологией.

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

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

Весь смысл избыточного массива независимых дисков в том, чтобы сберечь Ваши файлы на жёстком диске в случае полной поломки этого диска! Как это сделать, – спросите вы, да очень просто, нужно всего лишь два (можно даже разных в объёме) жёстких диска.

В сегодняшней статье мы с Вами с помощью операционной системы Windows 8.1 создадим из двух чистых жёстких дисков самый простой и популярный RAID 1 массив , его ещё называют "Зеркалирование" (mirroring). Смысл "зеркала" в том, что информация на обоих дисках дублируется (записывается параллельно) и два винчестера представляют из себя точные копии друг друга.

Если вы скопировали файл на первый жёсткий диск, то на втором появляется точно такой же файл и как вы уже поняли, если один жёсткий диск выходит из строя, то все ваши данные останутся целыми на втором винчестере (зеркале). Вероятность поломки сразу двух жёстких дисков ничтожна мала.

Единственный минус RAID 1 массива в том, что купить нужно два жёстких диска, а работать они будут как один единственный, то есть, если вы установите в системный блок два винчестера в объёме по 500 ГБ, то доступно для хранения файлов будет всё те же 500 ГБ, а не 1ТБ.

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

Лично я, в течении многих лет, использую на работе RAID 1 массив из двух жёстких дисков по 1 ТБ и год назад произошла неприятность, один "хард" приказал долго жить, пришлось его тут же заменить, тогда я с ужасом подумал, чтобы было, не окажись у меня RAID-массива, небольшой холодок пробежал по спине, ведь пропали бы данные накопленные за несколько лет работы, а так, я просто заменил неисправный "терабайтник" и продолжил работу. Кстати, дома у меня тоже небольшой RAID-массив из двух винчестеров по 500 ГБ.

Создание программного RAID 1 массива из двух пустых жёстких дисков средствами Windows 8.1

Первым делом устанавливаем в наш системный блок два чистых жёстких диска. Для примера, я возьму два жёстких диска объёмом 250 ГБ.


Что делать, если размер винчестеров разный или на одном жёстком диске у вас уже находится информация, читаем в следующей нашей статье .

Открываем Управление дисками

Диск 0 - твердотельный накопитель SSD с установленной операционной системой Windows 8.1 на разделе (C:).

Диск 1 и Диск 2 - жёсткие диски объёмом 250 ГБ из которых мы соберём RAID 1 массив.

Щёлкаем правой мышью на любом жёстком диске и выбираем «Создать зеркальный том»



Добавляем диск, который будет зеркалом для выбранного ранее диска. Первым зеркальным томом мы выбрали Диск 1, значит в левой части выбираем Диск 2 и нажимаем на кнопку «Добавить».



Выбираем букву программного RAID 1 массива, я оставляю букву (D:). Далее


Отмечаем галочкой пункт Быстрое форматирование и жмём Далее.




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


В окне "Этот компьютер", программный RAID 1 массив отображается как один диск.


Если один из двух жёстких дисков выйдет из строя, то в управлении дисками RAID-массив будет помечен ошибкой "Отказавшая избыточность", но на втором жёстком диске все данные будут в сохранности.

В этой статье я обзорно расскажу о возможностях по организации RAID массивов встроенными средствами Windows Server и подробно о том, какие подводные камни могут встретиться при создании и эксплуатации таких массивов.

Возможности программного RAID в Windows Server

Поддерживаются следующие массивы:

  • чередующийся том (striped volume, RAID0)
  • зеркальный том (mirrored volume, RAID1)
  • том RAID5 (RAID5 volume)
  • охватывающий том (spanned volume, один логический том размещается более чем на одном физическом диске)

Динамические диски

Массивы RAID можно создавать только на динамических дисках — особая разметка физических дисков (понятная только Windows), которая обладает следующими особенностями:

  • Обычный (базовый) диск можно преобразовать в динамический только целиком.
  • Обратное преобразование динамического диска в базовый возможно, но только если с динамического диска удалить все тома.
  • Динамический диск представляет собой один большой NTFS раздел, на котором с помощью хитрой служебной информации может размещаться большое количество томов (как простых, так и RAID), имеется возможность изменять размеры простых томов штатными средствами Windows. Однако, насколько оптимально и фрагментировано будут размещаться данные, мне не известно.
  • Известные мне программы клонирования, восстановления и изменения размеров дисков не поддерживают динамические диски.
  • Динамические диски, содержащие RAID-тома, могут быть перенесены на другой компьютер с Windows Server, так как содержат необходимую информацию для правильной сборки массива.

Невозможно создать тома с разными уровнями RAID

На одной группе физических дисков можно создавать тома RAID только одного типа (уровня). Например, если у нас есть 3 физических диска, и мы создали на них том RAID5, не занимая всего пространства. Мы не сможем в свободном пространстве создавать тома другого уровня RAID (RAID0 и RAID1), а только RAID5 и простые тома.

Одновременная синхронизация томов

Если на одной группе дисков создано несколько томов RAID, то в случае какого-либо сбоя после загрузки компьютера они начинают восстанавливаться одновременно. Это лютый, бешеный EPIC FAIL! Простая ситуация: имеется два физических диска, на них создано два RAID1 тома, один под операционную систему, другой под данные.

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

Со стороны такая «отказоустойчивость» выглядит следующим образом: общее быстродействие дисковой подсистемы падает раз в 20, сама ОС загрузится либо после окончания синхронизации одного из томов (минут 15, если он небольшой, гиг на 50), либо минут через 20 и будет бесполезна до конца синхронизации одного из томов.

Вышеописанное поведение я считаю недопустимым архитектурным просчетом со стороны Microsoft и удивлен тем, что эта беда не решена до сих пор со времен появления программного RAID в Windows 2000 Server.

Если вы попали в описанную ситуацию, то не стоит дожидаться загрузки ОС и изнашивания дисков.

  1. Отключаете один из физических дисков.
  2. Загружаетесь в ОС с нормальной скоростью.
  3. Разбиваете зеркало, превратив тома RAID1 в простые.
  4. Подключаете обратно второй диск.
  5. Создаете только одно зеркало для необходимого вам тома.

RAID5

Опишу сценарий, при котором вы не сможете восстановить деградировавший массив RAID5 до здорового состояния, даже если для этого предоставлены все условия.

  1. Имеется массив RAID5 из шести дисков (Диск1-Диск6).
  2. Среди них есть один сбойный Диск1 (например, из терабайтного объёма пара мегабайт не читаются), но операционная система об этом еще не знает и как сбойный его не отметила.
  3. По каким-либо причинам от массива был отключен исправный Диск2.
  4. Следуя логике RAID5, при отказе одного диска работоспособность массива сохраняется, такой массив помечается как деградировавший (degraded), скорость его работы резко падает, требуется синхронизация с новым исправным диском.
  5. Исправный Диск2 подключается на место. Система его опознает как сбойный. Чтобы синхронизировать массив, этот сбойный диск нужно удалить из массива RAID5 и определить как пустой.
  6. Все готово для синхронизации массива. Запускаем исправление массива (repair) на пустой Диск2.
  7. ВНЕЗАПНО синхронизация натыкается на ошибки чтения на действительно неисправном диске Диск1 и останавливается.
  8. Весть массив остается деградированным. Диск1 помечен как содержащий ошибки (errors), Диск2 помечен как online, однако из-за прерванной синхронизации не содержит полных корректных данных.
  9. В надежде на восстановление подключается совершенно новый исправный Диск7. Запускается восстановление массива на него.
  10. В результате исправный Диск2 заменяется на другой исправный Диск7, но синхронизация снова прерывается, найдя ошибку на неисправном диске Диск1.
  11. И так далее по циклу.

Ничего сделать, кроме как скопировать еще читающиеся данные и пересобрать весь массив нельзя.

Не желая признавать поражения, я пытался сделать следующие вещи:

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

Пример грамотной реализации программного RAID

От перечисленных выше недостатков избавлена аппаратно-программная реализация RAID-контроллера, известная как Intel Matrix Storage, и недавно переименованная в Intel Rapid Storage (работает на RAID-версиях чипсетов, таких как ICH9R, ICH10R). Аппаратно-программный RAID от Intel обеспечивает многие преимущества «врослых» RAID-контроллеров:

  • возможность определить диски горячей замены
  • возможность создавать тома разного уровня RAID на одной группе дисков
  • последовательная синхронизация и проверка RAID томов на группе дисков

Основным ее недостатком, в отличии от полностью аппаратных RAID-контроллеров, остается «программность», из которой вытекают:

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

Полезные ссылки

  • Что собой представляют динамические диски — Windows IT Pro [довольно старая статья]
  • Вся правда о динамических дисках — Хакер [читать осторожно, «вся» правда перемешана с небылицами]