Работа с raid массивами windows server

Windows имеет на борту встроенные средства для создания программных RAID массивов.

Profile picture for user Олег

Windows Server

Windows имеет на борту встроенные средства для создания программных RAID массивов.

Такая возможность появилась ещё в Windows NT 4.0. Там информация о мультидисках хранилась в реестре. Сбой системы приводил к потере всех данных. Видимо, поэтому никто особо не любил их использовать.

В Windows 2000 информация о программном массиве стала храниться на самих дисках, при первом монтировании она считывалась в реестр. Мультидиски были переименованы в динамические диски (dynamic disk), Microsoft развернула маркетинговую компанию по продвижению их на рынок.

Сегодня собираем динамический диск в Windows Server 2016. Другими словами, собираем в Windows программный RAID массив.

Тестовый стенд:

  • Аппаратный сервер Supermicro.
  • Два диска собраны в RAID1 массив на Inter VROC. На этот массив установлена ОС Windows Server 2016.
  • Имеется два одинаковых NVMe диска, из них и будем делать софтварный RAID1 массив средствами Windows.

Что нужно знать о динамических дисках?

  • Невозможность запуска более одной операционной системы. Невозможно установить ОС на динамический диск.
  • Если динамический диск полностью умещается на одном физическом диске, то он работает с той же скоростью, что и обычный. Если динамический диск размещён на нескольких дисках, начинаются тормоза.
  • Linux и xBSD штатным образом динамические диски не поддерживают и для работы с ними требуют установки программного обеспечения от сторонних производителей, например, Paragon LDM/NTFS driver.
  • При обновлении Windows не факт, что динамический диск распознается новой версией.
  • Формат данных динамических дисков проприетарный. Нормальных утилит по восстановлению рассыпавшихся динамических массивов нет.
  • На нетбуках динамические диски не поддерживаются. Версия Home не распознаёт такие диски.
  • Системный диск можно преобразовать в динамический и отзеркалировать раздел C на второй диск. Тогда при загрузке будут спрашивать, с какого из дисков грузиться (вторичный плекс). Однако, если основной диск выйдет из строя вместе с загрузчиком, то загрузиться с зеркала можно только с использованием сторонних утилит.
  • Не поддерживается в кластерах. Есть проблемы с теневым копированием.

Создать программный RAID1 массив

Работаем через утилиту Disk Management (Управление дисками). Быстрый способ добраться — нажать правой кнопкой на Пуск.

raid

В списке у нас три диска. На одном расположена система, два других пустые. Disk Management предлагает инициализировать диски 0 и 1. Их объём около 3ТБ, естественно, выбираем тип раздела GPT. OK.

win

Диски не размечены. Нажимаем правой кнопкой на диске 0.

win

Видим, что теоретически утилита позволяет создавать следующие типы массивов:

  • Simple
  • Spanned
  • Striped
  • Mirrored
  • RAID-5

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

Spanned — диск состоит из нескольких Simple томов и может размещаться на нескольких физических дисках. Информация записывается последовательно как в обычном линейном RAID массиве.

Striped — похож на Spanned, то при записи диски чередуются, пишется по очереди на каждый из дисков. Высокая производительность, низкая надёжность. При выходе из строя одного из дисков теряются все данные. Классический RAID0.

Mirrored — два или более динамических диска, информация на которых дублируется. RAID1, но можно зеркалировать более двух дисков, повышая надёжность. Буду делать этот.

RAID-5 — или ещё может называться stripped with parity (чередование с контролем четности). Классический RAID5 массив. У меня не активен, поскольку требует минимум три диска (максимум — 32).

Выбираю New Mirrored Volume…

win

Запускается мастер создания зеркальных дисков. Next.

win

Уже выбран Disk 0. Выбираю Disk 1 и добавляю Add >.

win

Выбрано два диска. По умолчанию под новый том выделяется всё доступное место. Next.

win

Назначаем букву диска. Next.

win

Предлагают отформатировать новый раздел.

win

Указываю настройки файловой системы. Next.

win

Finish.

win

Выбранная операция сконвертирует диски в динамические. На динамические диски нельзя будет установить ОС, кроме текущей. Продолжить? Yes.

win

Создан программный RAID1 массив из двух дисков.

win

Появился новый диск D.

Разобрать программный RAID1 массив

Надоел нам RAID1 массив, хотим от него избавиться. Желательно без перезагрузки и потери данных.

win

Нажимаем правой кнопкой на любой диск массива. Break Mirrored Volume…

win

Yes.

win

RAID1 массив распался на два идентичных независимых диска.

win

К диску D добавился такой же диск E.

Преобразовать динамический диск в основной

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

win

Правой кнопкой на ненужный диск. Delete Volume…

win

Все данные на диске будут уничтожены. Yes.

win

Диск больше не динамический. Чистый, неразмеченный.

Создать программный RAID1 массив из существующего диска

У нас есть динамический диск с данными и второй пустой диск. Хотим задействовать второй диск в качестве зеркала.

win

Правой кнопкой на диск с данными. Add Mirror…

win

Выбираем диск, который будет зеркалом. Add Mirror.

win

Данная операция сконвертирует второй диск в динамический. Yes.

win

Создаётся RAID1 массив из двух дисков. Но данные, естественно, не синхронизированы. Запускается процедура синхронизации, побежали проценты. Процесс занимает некоторое время, достаточно продолжительное. Второй диск помечен восклицательным знаком, поскольку данные на нём не совпадают с основным диском.

win

После окончания синхронизации у нас программный RAID1 массив.

В этой статье я обзорно расскажу о возможностях по организации 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 [довольно старая статья]
  • Вся правда о динамических дисках — Хакер [читать осторожно, «вся» правда перемешана с небылицами]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Работа с диском в командной строке windows
  • Путь к обоям рабочего стола windows 10
  • Работа с onedrive в windows 10
  • Работа с дисковыми пространствами windows 10
  • Работа с mysql через консоль в windows