Программный RAID1 (зеркало) для загрузочного GPT диска в Windows 10/ Server 2016

В этой статье мы рассмотрим, как создать программное зеркало (RAID1) из двух GPT дисков в Windows Server 2016/Windows 10, установленных на UEFI системе. Мы рассмотрим полноценную конфигурацию BCD загрузчика, позволяющую обеспечить корректную загрузку Windows и защитить данные от выхода из строя любого диска.

Итак, у нас имеется простой компьютер UEFI-архитектуры без встроенного RAID контроллера с двумя идентичными дисками размерами по 50 Гб. Наша задача — установить на первый GPT диск ОС (Windows Server 2016, Windows 10 или бесплатного сервер Hyper-V), а затем собрать из двух дисков программное зеркало (RAID1 – Mirroring).

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

Запишите установочный образ Windows на DVD/ USB флешку, загрузите компьютер) с этого загрузочного устройства (в режиме UEFI, не Legacy) и запустите установку Windows Server 2016.

После установки, откройте консоли управления дисками (diskmgmt.msc), убедитесь, что на первом диске используется таблица разделов GPT (свойства диска -> вкладка Volumes -> Partition style –> GUID partition table), а второй диск пустой (неразмечен).

Подготовка таблицы разделов для зеркала на 2 диске

подготовка с созданию програмного raid в Windows 10 / Server 2016

Откройте командную строку с правами администратора и выполните команду diskpart. Наберите:

DISKPART>List disk

Как вы видите, в системе имеется два диска:

  • Disk 0 – диск с таблицей разделов GPT, на который установлена Windows
  • Disk 1 – пустой неразмеченный диск

List disk

На всякий случай еще раз очистим второй диск и конвертируем его в GPT:

Select disk 1

clean

Convert GPT

Введите список разделов на втором диске:

List part

Если найдется хотя бы один раздел (в моем примере это Partition 1 – Reserved – Size 128 Mb), удалите его:

Sel part 1

Delete partition override

конвертирование диска в gpt

Выведите список разделов на 1 диске (disk 0). Далее вам нужно создать такие же разделы на Disk 1.

Select disk 0

List part

Имеется 4 раздела:

  • Recovery – 450 Мб, раздел восстановления со средой WinRE
  • System – 99 Мб, EFI раздел (подробнее про структуру разделов на GPT дисках)
  • Reserved 16 Мб, MSR раздел
  • Primary – 49 Гб, основной раздел с Windows

list part на gpt диске

Создаем такие же разделы на Disk 1:

Select disk 1

Create partition primary size=450

format quick fs=ntfs label=»WinRE»

set id=»de94bba4-06d1-4d40-a16a-bfd50179d6ac»

create partition efi size=99

create partition msr size=16

list part

создание структуры разделов для загрузочного gpt диска

Преобразования дисков в динамические, создание зеркала

Теперь оба диска нужно преобразовать в динамические:

Select disk 0

Convert dynamic

Select disk 1

Conv dyn

конвертивровать диски в динамические

Создадим зеркало для системного диска (диск C:). Нужно выбрать раздел на первом диске и создать для него зеркало на 2 диске:

Select volume c
Add disk=1

Должно появится сообщение:

DiskPart succeeded in adding a mirror to the volume

Откройте консоль управления дисками, и убедитесь, что запустилась синхронизуя раздела C на (Recynching). Дождитесь ее окончания (может занять до нескольких часов в значимости от размера раздела C: ).

синхронизация данных в програмном raid 1 в windows

При загрузке Windows теперь будет появляться меню Windows Boot Manager с предложение выбрать с какого диска загружаться. Если не выбрать диск вручную, система через 30 секунд попытается загрузиться с первого диска:

  • Windows Server 2016
  • Windows Server 2016 – secondary plex

Windows Server 2016 – secondary plex

Однако проблема в том, что сейчас у вас конфигурация загрузчика хранится только на 1 диске, и при его потере, вы не сможете загрузить ОС со второго без дополнительных действий. По сути вы защитили данные ( но не загрузчик Windows) только от сбоя второго диска.

Программный RAID Windows не получится использовать для создания нормального зеркала EFI раздела. Т.к. на EFI разделе хранятся файлы, необходимые для загрузки ОС, то при выходе их строя первого диска, вы не сможете загрузить компьютер со второго диска без ручного восстановления загрузчика EFI на нем в среде восстановления. Эти операции довольно сложно сделать неподготовленному администратору, а также потребует дополнительного времени (которого может не быть, если у вас за спиной стоит толпа разгневанных пользователей).

Далее мы покажем, как скопировать EFI раздел на второй диск и изменить конфигурацию загрузчика BCD, чтобы вы могли загрузить Windows как с первого, так и со второго диска.

Подготовка EFI раздела на втором диске в зеркале

Теперь нужно подготовить EFI раздел на втором диске в зеркале, чтобы компьютер мог использовать этот раздел для загрузки Windows. Назначим EFI разделу на Disk 1 букву S и отформатируем его в файловой системе FAT32:

Select disk 1

Select part 2

assign letter=S

format fs=FAT32 quick

создать EFI раздел с fat32

Теперь назначим букву диска P: для EFI раздела на Disk 0:

select disk 0

select partition 2

assign letter=P

exit

diskpart назначить буквы дискам EFI

Копирование конфигурации EFI и BCD на второй диск

Выведите текущую конфигурацию загрузчика BCD с помощью команды:

bcdedit /enum

При создании зеркала, служба VDS автоматически добавила в конфигурацию BCD запись для второго зеркального диска (с меткой Windows Server 2016 – secondary plex).

bcdedit /enum для gpt диска сbootmgfw.efi

Чтобы EFI в случае потери первого диска могут загружаться со второго диска, нужно изменить конфигурацию BCD.

Для этого нужно скопировать текущую конфигурацию Windows Boot Manager

bcdedit /copy {bootmgr} /d "Windows Boot Manager Cloned"

The entry was successfully copied to {44d1d6bf-xxxxxxxxxxxxxxxx}

Теперь скопируйте полученный ID конфигурации и используйте его в следующей команде:

bcdedit /set {44d1d6bf-xxxxxxxxxxxxxxxx} device partition=s:

Если все правильно, должна появится строка The operation completed successfully.

bcdedit /set {44d1d6bf-xxxxxxxxxxxxxxxx} device partition=s:

Выведите текущую конфигурацию Windows Boot Manager (bcdedit /enum). Обратите внимает, что у загрузчика теперь два варианта загрузки EFI с разных дисков (default и resume object).

две конфигурации Windows Boot Manager для разных gpt дисков с загрузчиками

Теперь нужно сделать копию BCD хранилища на разделе EFI первого диска и скопировать файлы на второй диск:

P:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
robocopy p:\ s:\ /e /r:0

robocopy EFI раздела в зеркале

Осталось переименовать BCD хранилище на втором диске:

Rename s:\EFI\Microsoft\Boot\BCD2 BCD

И удалить копию на Disk 0:

Del P:\EFI\Microsoft\Boot\BCD2

переименовать bcd

Теперь при выходе из строя первого диска, вам нужно при загрузке компьютера выбрать устройство «Windows Boot Manager Cloned», а затем «Microsoft Windows Server 2016 — secondary plex».

При загрузке с отказавшим дисков, в диспетчере Disk Management вы увидите сообщение Failed Redndancy.

windows програмный raid failed redundance

В этом случае вы должны заменить неисправный диск, удалить конфигурацию зеркала и пересоздать программный RAID с начала.


Предыдущая статья Следующая статья


Комментариев: 51 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)