Отступление: использование программного массива дисков RAID 1 (зеркало) не есть хорошо. Грубо говоря, это развод для лохов. Для получения надежности от дисковой системы необходимо использовать только аппаратный RAID-массив. Это дорого, но надежно.
Почему программный RAID 1 плох? Может сложиться ситуация, при которой оба диска станут недоступными. Например, первый диск начинает активно сыпаться (появляются bad-сектора). Система зависает, т.к. не может произвести операцию чтения/записи. После перезагрузки сервера автоматически запускается ресинхронизация дисков, т.е. информация с первого диска перезаписывается на второй. Если ресинхронизацию прервать, то второй диск станет бесполезной грудой металла, т.к. он не содержит полный образ системы. А ресинхронизация обязательно прервется из-за bad-секторов на первом диске. В результате у нас на руках останутся два неисправных диска и дай бог, чтобы у вас сохранился свежий образ системы и данных.
Тем не менее, программный RAID 1 массив часто используется и ниже приведена инструкция, как его настроить в Windows Server 2008 R2.
Исходные данные: два диска до 2 ТБ, работающих в режиме BIOS (MBR). Диски большей емкости использовать не рекомендуется, т.к. при этом не будет работать встроенная система архивации данных.
Перед установкой Windows необходимо отключить один из дисков. Установщик Windows такой затейник, что запросто может поставить системную область и основную на разные диски.
После установки системы имеем следующую конфигурацию дисков:
Создание раздела для восстановления системы
Windows Recovery Environment позволяет восстановить систему.
В командной строке с правами администратора запускаем программу Diskpart и вводим следующие команды:
shrink desired=300
create partition primary size=300
format fs=ntfs quick label=Recovery
assign letter=q
Окно с Diskpart не закрываем и открываем новое окно с командной строкой.
rd c:\Recovery
robocopy.exe c:\Windows\System32\Recovery\ q:\Recovery\WindowsRE\ Winre.wim /copyall /dcopy:t /move
reagentc.exe /setreimage /path Q:\Recovery\WindowsRE
reagentc.exe /enable
В результате в системе появится диск Q для восстановления системы.
Копирование системного раздела на второй диск
Создаем системный раздел на втором диске (disk1), чтобы с него можно было загрузиться в случае выхода из строя первого диска (disk0). Размер системного раздела на втором диске должен быть таким же, как и на первом диске. Например, для Windows Server 2012 - 350 МБ.
Окно с Diskpart:
create partition primary size=100
active
format fs=ntfs quick label="System Reserved"
assign letter=t
select disk 0
select partition 1
assign letter=s
Второе окно с командной строкой:
Окно с Diskpart:
remove
Буковки дискам назначаем для копирования данных. В самом конце настройки системные разделы и разделы для восстановления не будут иметь привязки к буквам.
Здесь s: - системный раздел на первом диске, t: - на втором.
Создание зеркала главного раздела
Перед созданием зеркала обязательно преобразовать диски в динамические тома.
Окно с Diskpart:
convert dynamic
select disk 0
convert dynamic
select volume=q
retain
select volume=c
add disk=1 wait
Процесс ресинхронизации для дисков 2 ТБ длится около 5 часов.
Копирование раздела для восстановления
Следующим шагом копируем раздел для восстановления системы с первого диска (disk 0) на второй (disk 1) (с q: на r:).
Перед копированием необходимо создать новый раздел на втором диске.
Окно с Diskpart:
retain
format fs=ntfs quick label=Recovery
assign letter=r
Второе окно с командной строкой:
Окно с Diskpart:
remove
Редактирование меню загрузки
Копируем меню загрузки с первого диска на второй.
Второе окно с командной строкой:
После преобразования дисков в массив RAID-0 в меню при загрузке системы появится две строчки:
Windows Server 2008 R2
Windows Server 2008 R2 – secondary plex (вторичный плекс)
При загрузке с первого диска (первичный плекс) нет смысла продолжать загрузку со второго диска. Поэтому вторую строчку меню можно удалить для эстетического удовольствия. Кому лень тратить на это время, переходят к редактированию меню загрузки на втором диске.
Эта команда выводит всю конфигурацию хранилища загрузки. Здесь нас интересуют идентификаторы каждого пункта меню.
bcdedit /delete {identifier2}
где
{identifier1} - идентификатор с описанием "Windows Resume Application – secondary plex",
{identifier2} - "Windows Server 2008 R2 – secondary plex".
Таким образом, меню выбора плексов не будет появляться при загрузке сервера.
Далее переходим к редактированию конфигурации загрузки второго диска.
bcdedit /store t:\boot\BCD /set {identifier1} ramdisksdidevice partition=r:
bcdedit /store t:\boot\BCD /set {memdiag} device partition=t:
bcdedit.exe /store t:\boot\BCD /set {identifier2} device ramdisk=[r:]\Recovery\WindowsRE\Winre.wim,{identifier1}
bcdedit.exe /store t:\boot\BCD /set {identifier2} osdevice ramdisk=[r:]\Recovery\WindowsRE\Winre.wim,{identifier1}
bcdedit.exe /store t:\boot\BCD /set {bootmgr} device partition=t:
где
{identifier1} - идентификатор с описанием "Ramdisk Options" (в некоторых случаях "Windows Recovery")
{identifier2} - идентификатор с описанием "Windows Recovery Environment".
Окно с Diskpart:
remove
Для перфекционистов можно удалить ссылки на первичный плекс:
bcdedit /store t:\boot\BCD /delete {identifier2}
где
{identifier1} - идентификатор с описанием "Windows Resume Application",
{identifier2} - идентификатор с описанием "Windows Server 2008 R2".
Заключительная часть:
bcdedit.exe /store t:\boot\BCD /set {identifier1} recoverysequence {identifier3}
bcdedit.exe /store t:\boot\BCD /set {bootmgr} default {identifier1}
Bcdedit.exe /store t:\boot\BCD /set {bootmgr} resumeobject {identifier2}
где
{identifier1} - идентификатор с описанием "Windows Server 2008 R2 – secondary plex",
{identifier2} - идентификатор с описанием "Windows Resume Application – secondary plex",
{identifier3} - идентификатор с описанием "Windows Recovery Environment".
Diskpart:
remove
Смотрите также:
Создание программного RAID 1 массива для UEFI систем (GPT-диски) (english)
Окно с Diskpart:
select disk 1
create partition primary size=100
active
format fs=ntfs quick label=»System Reserved»
assign letter=t
select disk 0
select partition 1
assign letter=s
Окно с Diskpart:
select volume=s
remove
Между этими двумя блоками команд пропущено копирование загрузчика?
Загрузчик для второго диска делаем позже с помощью BCDEDIT:
bcdedit /export t:\boot\BCD
У меня нет индентификатора с описанием «Ramdisk Options», если его пропустить критично ли это будет или что сделать чтобы он появился?
Ramdisk должен быть.
Описание этого идентификатора может быть «Windows Recovery» (путь \Recovery\WindowsRE\boot.sdi).
Огромное спасибо за статью!
Автор, Спасибо! Инструкция полностью применима для Windows Server 2016.
Статья актуальна для Win Server 2016
«использование программного массива дисков RAID 1 (зеркало) не есть хорошо. Грубо говоря, это развод для лохов. Для получения надежности от дисковой системы необходимо использовать только аппаратный RAID-массив»
лолшто? Ну, возможно в винде это и так, хз, но звучит либо как бред, либо как невероятная недоработка индусов, но в ГНУ/Линуксе такого нет 100% и программный рейд (mdadm) отрабатывает ошибки как положено, помечая диск как битый и отключая его.
А любители искать старый аппаратный контроллер в n часу ночи пусть сразу закупаются успокоительными, обезболивающими и смазкой — пригодятся, раньше или позже.