Создаем софтверное зеркало
Любое устройство современного компьютера может выйти из строя, и высокая стоимость компонента совершенно не гарантирует 100% надежность. Недолговечны и жесткие диски, хранящие тонны бесценной информации, потеря которой может иметь любые последствия, вплоть до развала бизнеса. Традиционным способом сохранить данные является применение систем резервирования, в Win2k8 для этого используется компонент “Server Backup”, который пришел на смену мощной утилите NTBackup. Но сегодня мы не будем устраивать бэкапные разборки, лучше поговорим о простом и при этом очень эффективном способе увеличения отказоустойчивости системы — создании софтварного RAID 1. Напомню, что в массиве RAID 1 используется зеркалирование двух дисков, что и обеспечивает высокую отказоустойчивость. При выходе из строя одного харда второй продолжает работать, как ни в чем не бывало. Чтобы восстановить массив, просто подключаем к серверу второй диск вместо неисправного. Единственный недостаток — это большая стоимость такого решения (на единицу объема), по сравнению с однодисковым вариантом или копированием всех критических данных на внешнее устройство для бэкапа.
Процедура настройки RAID 1 для системных дисков или дисков с данными в Win2k8 несколько отличается. Лонгхорн поддерживает два типа загрузки: MBR (Master Boot Record) и GPT (GUID Partition Table). Тип загрузки MBR разработан специально для x86 систем и на сегодня является наиболее популярным. Тип GPT первоначально появился в системах на базе Itanium и сейчас широко используется при загрузке 64-разрядных ОС. Настройка зеркалирования системных дисков для MBR и GPT также будет немного отличаться.
Теперь последовательно разберем организацию RAID 1 для каждого случая. Начнем с системного диска, использующего MBR. После установки системы у нас должен быть один уже рабочий (системный) диск и второй пока незадействованный диск, который будет зеркалом основного. Для управления хардами используем вкладку Disk Management, — она доступна в Server Manager и в консоли Computer Management (compmgmt.csc). Перед созданием RAID следует преобразовать диски в динамические. Выбираем значок диска в поле внизу и в контекстном меню — пункт Convert to Dynamic Disk (“Преобразовать в динамический диск”). Далее отмечаем в появившемся окне Disk 0, в окне Disk to Convert подтверждаем свой выбор нажатием Convert. После преобразования диска в Disk Management он будет помечен как Dynamic. Эту операцию можно произвести в командной строке при помощи утилиты DISKPART. Вызываем:
1 |
> diskpart |
Смотрим список дисков и некоторые их характеристики:
1 |
diskpart> list disk |
Подключаем disk 0 и преобразуем его в динамический:
1 2 3 4 |
diskpart> select disk 0 Disk 0 is now the selected disk. diskpart> convert dynamic DiskPart successfully converted the selected disk to dynamic format. |
Внимательно прочти сообщение после выполнения этой команды, в некоторых случаях для завершения операции требуется перезагрузка.
C системным диском все. Подключаем второй винч. В случае, когда статус диска в Disk Management показан как Offline, активируем его выбором пункта Online в контекстном меню или аналогичной командой diskpart. Если диск еще не размечен, эту операцию можно произвести при помощи самого Disk Management, выбрав в меню пункт Initialize Disk и затем тип таблицы разделов MBR или GPT. Далее преобразовываем его в динамический диск самостоятельно или поручаем все операции мастерам. Выбираем первый диск и в контекстном меню щелкаем пункт Add Mirror; в появившемся окне отмечаем второй диск. Мастер предупредит, что он будет преобразован в Dynamic Disk, — соглашаемся, нажав ОК. Начнется процесс переноса данных на второй диск. По окончании в загрузчик будет добавлена возможность загрузки ОС со второго харда.
В командной строке действия выполняются также просто, правда, в отличие от Disk Management, здесь уже нет подстраховки, и допущенная ошибка может привести к потере данных. Смотрим список томов:
1 |
diskpart> list volume |
Обычно загрузочный первый диск идет нулевым томом, выбираем его:
1 2 |
diskpart> select volume 0 Volume 0 is the selected volume. |
И создаем зеркало, указав в качестве параметра второй диск:
1 2 |
diskpart> add disk=1 DiskPart succeeded in adding a mirror to the volume. |
В процессе создания зеркала поле “Status” команды “list volume” будет показывать значение “Rebuild”; когда оно изменится на “Healthy”, процесс успешно завершен.
Зеркалирование системных дисков, использующих GPT, чуть сложнее, так как EFI (Extensible Firmware Interface, расширяемый микропрограммный интерфейс) и MSR (The Microsoft Reserved) разделы необходимо создавать вручную. Если второй хард уже содержит таблицу MBR, обязательно переконвертируем его в GPT. Это можно сделать из меню Disk Management или командой:
1 2 3 |
diskpart> select disk 1 diskpart> convert GPT DiskPart successfully converted the selected disk to GPT format. |
Но диск можно конвертировать в GPT, только если он пуст, поэтому если на диске уже созданы разделы, последовательно удаляем их при помощи команд:
1 2 |
diskpart> select partition 1 diskpart> delete partition override |
Теперь смотрим таблицу разделов системного диска, чтобы затем повторить ее на резервном:
1 2 3 4 5 6 7 |
diskpart> select disk 0 diskpart> list partition Partition ### Type Size Offset ----------------------------------- Partition 1 System 400 MB 32 KB Partition 2 Primary 13996 MB 400 MB Partition 3 Reserved 32 MB 14 GB |
Переходим ко второму диску:
1 |
diskpart> select disk 1 |
Создаем системный EFI-раздел размером 400 Мб:
1 2 |
diskpart> create partition efi size=400 Diskpart succeeded in creating the specified partition. |
В качестве дополнительного параметра можно задать смещение. Теперь MSR-раздел, который используется для хранения метаданных, не виден в Disk Management. Такой раздел рекомендуется создавать первым на диске с данными и вторым на системном диске. При преобразовании MBR -> GPT раздел MSR создается автоматически, но его размер нас может не устраивать:
1 2 |
diskpart> create partition msr size=32 Diskpart succeeded in creating the specified partition. |
После создания MSR и EFI разделов необходимо отформатировать EFI в FAT. Для этого назначаем ему букву диска. В обычном варианте это можно было бы сделать через Disk Management, выбрав в контекстном меню пункт New Simple Volume и затем последовательно ответив на вопросы визарда, но с GPT такой фокус не проходит, поэтому используем diskpart:
1 2 3 4 |
diskpart> select disk 1 diskpart> select partition 1 diskpart> assign letter=E DiskPart successfully assigned the drive letter or mount point. |
И — форматируем:
1 |
C:\Windows\system32>format e: /fs:fat /q /y |
Осталось скопировать данные с раздела EFI первого диска (пусть это будет D):
1 |
C:\Windows\system32>xcopy d:\*.* e: /s /h |
Далее конвертируем диски в динамические (convert dynamic) и миррорим, как для MBR.
И, наконец, разберем, как создать RAID 1 для дисков с данными. В этом случае потребуется три диска: на первом (в diskpart обозначен как нулевой) будет установлена система, два других будут содержать данные. Здесь все просто: выбираем в контекстном меню одного из data-дисков пункт New Mirrored Volume и следуем указаниям визарда. Основной шаг — выбор второго диска. В командной строке нужно указать диск или том при помощиselect, а затем создать зеркало командой “add disk=2”. Чтобы отключить зеркало, используем команду “break disk=2”.
Примечание редактора: чтобы повысить общий уровень надежности и защиты данных на критически важных серверах, зеркалированные диски можно разместить на разных дисковых контроллерах. Такая техника обеспечивает отказоустойчивость на уровне контроллеров и носит название “дуплексирование дисков”.