Содержание статьи
Динамические диски таят в себе множество загадок и скрытых подводных камней. Отношение администраторов к ним далеко не однозначно, и они уже успели подпортить себе репутацию, загубив немало данных, восстановление которых стоит денег и к тому же далеко не всегда возможно. Мыщъх, специализирующийся на подъеме файловых систем после падения, раскурил эту тему сразу же после того, как получил диск с Win2k, и нарыл немало полезной инфы, которой и делится с читателями.
Краткий исторический экскурс
Динамические диски появились еще в NT 4.0, только там они назывались мультидисками (multidisk) и представляли собой обыкновенные программные RAID’ы, широко распространенные в мире UNIX. Информация о конфигурации мультидисков хранилась в реестре, и крах системы приводил к потере всех данных. Потеря всех данных происходила и при полной переустановке системы или попытке перенести жесткий диск на систему с другой NT. Эти недостатки нивелировали все достоинства мультидисков, существенно ограничивая область их применения. Начиная с Win2k, Microsoft слегка усовершенствовала менеджер дисковой подсистемы, и теперь информация о конфигурации хранится непосредственно на самом диске, откуда считывается в реестр при первом монтировании мультидиска.
По маркетинговым соображениям мультидиски были переименованы в динамические диски (dynamic disk), и Microsoft развернула целую компанию по их продвижению на рынок. Но если при обновлении NT 4.0 до Win2k информация о существующих мультидисках нормально считывалась из реестра, то попытка обновления NT 4.0 до XP или Server 2003/2008 ведет к необратимой потере данных, которые необходимо предварительно скопировать на другой носитель. В остальном же динамические диски по сравнению с мультидисками не претерпели никаких существенных изменений. Однако отказ от реестра как от основного хранилища информации о конфигурации RAID-массива создает все предпосылки для перехода с обычных дисков на динамические. Но, прежде чем принимать окончательное решение, необходимо взвесить все за и против, чем мы сейчас, собственно, и займемся.
Мифы о динамических дисках
Динамические диски окружены огромным количеством сплетен, мифов и легенд, кочующих из одного издания в другое и приписывающих им чудодейственные возможности, которыми они не обладают и обладать не могут в принципе (смотри, например, www.computerperformance.co.uk/Litmus/disk_dynamic.htm).
Опрос знакомых администраторов показал, что большинство из них уверены, что динамические диски (в отличие от обычных) могут изменять свой размер «на лету». Однако мало кто из них пытался осуществить это на практике, а попытавшись, убеждался, что с этим справляются только утилиты сторонних разработчиков типа знаменитого PQMagic.
Заблуждение это происходит из-за неверной трактовки термина free space, под которым технические писатели из Microsoft подразумевали unallocated space, то есть свободное пространство, не принадлежащее никакому дисковому тому. Допустим, у нас есть два раздела, на которых свободно по 69 и 96 Гб соответственно. Можем ли мы увеличить размер первого раздела хотя бы на 10 Гб за счет второго? Ответ отрицательный! А вот если мы воткнем еще один винчестер, на котором нет никаких разделов (или же имеются неразмеченные разделы), то в этом (и только этом!) случае динамический диск действительно сможет увеличить свой размер, поглотив все неразмеченное пространство (или его часть).
В результате этого один раздел (например, F:) окажется расположен на двух (или более) физических дисках, но с точки зрения операционной системы будет трактоваться как один том. Такая задача никакому PQMagic’у уже не по зубам, однако следует помнить, что подобное увеличение размера динамического диска достается дорогой ценой. Во-первых, при отказе одного диска мы автоматически теряем второй (и все остальные). Во-вторых, при попытке переноса динамического тома на другую машину нам придется тащить за собой сразу два или более диска, что опять-таки не всегда приемлемо, и в ряде случаев выгоднее использовать несколько стандартных томов (типа C:, D:, E:), чем один динамический диск такого же размера, тем более что Win2k3 позволяет монтировать раздел на любую пустую папку другого раздела, а при необходимости демонтировать его обратно.
Заблуждение второе - динамические диски поддерживают неограниченное количество томов на одном устройстве, а стандартные (они же базовые) - всего четыре, поскольку в таблице разделов имеется место только для четырех записей. Однако еще со времен MS-DOS таблица разделов поддерживает рекурсивные расширения, снимающие всякие ограничения на число томов. В MS-DOS и Win9x количество разделов не может превышать число возможных букв, но Win2k и все последующие системы позволяют назначать дискам имена произвольной длины или монтировать их на папки соседних разделов, поэтому при желании один диск можно разбить хоть на 666 томов. Вопрос только зачем.
Заблуждение третье — динамические диски работают быстрее/лучшее обычных. И с какой это радости?! Планировка запросов в динамических дисках выполнена просто ужасно, и, в случае если динамический диск занимает более одного физического, мы получаем конкретные тормоза. Если же динамический диск полностью умещается на одном физическом диске, то он работает абсолютно с той же скоростью, что и обычный.
Типы динамических дисков
Простые (simple) диски практически ничем не отличаются от обычных, за исключением того, что при переразбиении диска отпадает необходимость в перезагрузке. Simple-тома размещаются на одном физическом диске и всегда непрерывны на всем своем протяжении. При увеличении размеров simple-томов за счет свободного пространства, находящегося на других дисках, они автоматически превращаются в составные (spanned) разделы.
Избыточность: отсутствует
Производительность: средняя
Составные (spanned) состоят из одного или нескольких simple-томов, находящихся на разных физических дисках, объединенных в единый логический том. Информация записывается последовательно, как в классическом линейном RAID-массиве.
Избыточность: отсутствует
Производительность: средняя
Чередующиеся (stripped) внешне похожи на spanned, поскольку, как и последние, объединяют несколько физических дисков в один логический том, но данные записываются вперемешку, то есть первый сектор - на первый жесткий диск, второй — на второй и т.д. В результате этого оба жестких диска работают параллельно, и, если они подключены к различным IDE-контроллерам, скорость обмена пропорционально возрастает. Однако если хотя бы один диск откажет, из данных образуется «решето», не подлежащее восстановлению. Одним словом, все как в классическом RAID-массиве уровня 0.
Избыточность: отсутствует
Производительность: высокая
Зеркальные (mirrored) - два или более динамических диска, объединенных в один логический, причем запись дублируется на все диски (как в RAID’е уровня 1), и при выходе одного винчестера из строя он может быть заменен без потери данных (а в случае поддержки hot-plug’а - и без остановки сервера). Зеркалировать можно не только простые, но также составные и чередующиеся динамические диски. Платить за надежность приходится не только дисковым пространством, но и производительностью, поскольку количество контроллеров не безгранично и зеркальные диски обычно цепляются на уже задействованные контроллеры. К тому же поиск секторов на современных винчестерах осуществляется методом «вилки» и занимает различное время, а значит, при одновременном работе с несколькими винчестерами мы вынуждены дожидаться самого последнего из них, то есть паспортное время поиска из «среднего» приближается к «наихудшему».
Избыточность: очень высокая
Производительность: средняя или низкая
Чередование с контролем четности (stripped with parity) соответствует массиву RAID уровня 5. Состоит из трех или более дисков (максимум — 32). Данные пишутся на все диски, кроме последнего, где хранятся коды коррекции ошибок, с помощью которых можно восстановить любой другой отказавший диск. Получается, если мы имеем три диска, избыточность составит всего 30%, а в случае пяти дисков — 20%. Естественно, RAID–5 оправдывает себя только на массивах, состоящих из большого количества дисков. Массив не может динамически увеличивать свой размер за счет присоединения новых томов и к тому же поддерживается только серверными версиями Windows.
Избыточность: средняя или низкая
Производительность: высокая
Программный RAID-массив vs аппаратный
Ох уж эти американцы! Любят они выдумывать новые слова в ущерб уже существующим. Динамический диск представляет собой обыкновенный программный RAID, реализаций которого можно насчитать десятки. Microsoft продвигает не самое лучшее и к тому же далеко не бесплатное решение, подкупая потребителей заумной терминологией и торговыми марками.
Интересно сравнить достоинства и недостатки программных RAID-массивов с таковыми аппаратных.
Достоинства аппаратных RAID-массивов (по сравнению с программными):
- независимость от конкретной операционной системы (при условии, что она поддерживает этот RAID-контроллер);
- более высокая производительность и улучшенная система диагностики аварийных и предаварийных состояний;
- возможность замены диска без остановки системы.
Недостатки аппаратных RAID-массивов:
- если RAID-контроллер выйдет из строя или откажет материнская плата с интегрированным RAID-контроллером, то нам потребуется отыскать точно такой же контроллер, иначе все данные превратятся в труху;
- контроллеры и интегрированные чипсеты зачастую содержат множество ошибок, но далеко не всякий контроллер позволяет обновлять свою прошивку (не говоря уже о том, что такая операция сопряжена с большим риском и требует пересоздания массива и восстановления всех данных);
- низкая мобильность — при переносе массива дисков на другую машину необходимо прихватить контроллер (с драйверами), а в случае динамических дисков достаточно просто воткнуть их в Win2k/Win2k3.
Следует отметить, что всем типам RAID-массивов присуща проблема восстановления данных. Большинство восстановительных утилит работают только с базовыми дисками, а RAID’ами приходится заниматься специалистам, располагающим не только глубокими техническими знаниями, но и соответствующим оборудованием.
Шесть доводов против динамических дисков
- Преобразование базового диска в динамический — это практически необратимая операция. Исключение составляют simple-разделы, которые можно превратить в обычные тома путем редактирования диска на секторном уровне (смотри ниже «Высший пилотаж, или делаем из динамического диска обычный»). Но составные, чередующиеся и уж тем более RAID–5 диски преобразовать обратно можно только путем копирования данных на внешний носитель и удаления динамических дисков с последующим созданием обычных разделов.
- Преобразовав системный диск в динамический, мы уже не сможем ни обновить, ни переустановить Windows, поскольку динамические диски, увы, инсталлятор не понимает и навряд ли будет понимать в дальнейшем (Server 2008 beta 3 до сих пор не поддерживает такую операцию).
- Linux и xBSD штатным образом динамические диски не поддерживают и для работы с ними требуют установки программного обеспечения от сторонних производителей (например, Paragon LDM/NTFS driver – paragon-software.com), но это еще полбеды. Некоторые типы динамических дисков поддерживаются только «продвинутыми» версиями Windows, и потому, обновляя, например, Windows XP Home до Windows Vista Home Base/Premium, мы с удивлением обнаружим пропажу динамических дисков.
- При серьезных разрушениях дискового тома восстанавливать данные на динамических дисках намного труднее, чем на обычных, и как минимум на порядок дороже. Хакеры только-только распотрошили формат информации, описывающий структуру динамических дисков, но там еще много белых пятен, и реально действующих утилит для автоматизированного восстановления на сегодняшний день нет.
- Динамические диски имеют проблемы со службой кластеров и теневыми копиями, и, чтобы не накосячить, требуется раскурить базу знаний и тщательно продумать каждый шаг.
- Серьезные серверы традиционно оснащаются аппаратными RAID-контроллерами, а у несерьезных потребности в динамических дисках, в общем-то, не возникает, и там они несут больше проблем, чем решают.
Создаем и удаляем динамические диски
Создание динамических дисков не представляет никаких проблем. Запускаем Computer Management, входим в Disk Management, щелкаем правой клавишей мыши по базовому диску, который мы хотим преобразовать в динамический, выбираем в контекстном меню пункт Convert to Dynamic Disk и, ответив на ряд унылых запросов, получаем simple-том. Щелкнув по нему, мы сможем либо расширить его размер за счет невыделенного свободного пространства других дисков (Extend Volume), либо зазеркалить том (Add Mirror). Причем последний пункт работает только в серверных версиях и только при наличии места на зеркальном диске (создать зеркало на том же самом физическом диске невозможно, да это и ненужно).
Simple-том не может быть преобразован в RAID–5, и потому для создания такой матрицы нам потребуется по меньшей мере три пустых динамических диска, на которых не создано никаких томов. Щелкаем мышью по любому из них, говорим New Volume, в появившемся диалоговом окне выбираем RAID–5 (работает только на серверных версиях Windows), отвечаем на пару несложных запросов (какие диски добавлять в массив, как его форматировать) - и все!
Утилита командой строки DISKPART позволяет делать то же самое, только без помощи мыши. Просто набираем в консоли diskpart.exe, пишем help и смотрим вывод. В частности, чтобы создать simple-том размером 32 Гб на диске №4, находясь внутри diskpart.exe, необходимо написать:
list disk
select disk 4
create volume simple size=32768
Assign
Для удаленного управления динамическими дисками можно либо воспользоваться терминальной службой, запуская в RDP-сессии diskpart.exe, либо в Computer Management выбрать «Action -> Connect to another computer». При этом в качестве клиента может выступать любая ось из линейки NT, начиная с Win2k.
Высший пилотаж, или делаем из динамического диска обычный
Simple-том, полученный путем обновления базового диска до динамического, можно вернуть обратно, запустив редактор диска и поменяв тип раздела с 42h на 07h. После перезагрузки «Менеджер диска» потеряет динамический диск, отметив его красным крестиком, но это нестрашно, и его можно смело удалить. А вот восстановленный базовый диск рекомендуется почекать утилитой chkdsk. Подробнее об этом можно прочитать в статье «Converting Dynamic Disks Back to Basic Disks» (thelazyadmin.com/blogs/thelazyadmin/archive/2007/01/17/Converting-Dynamic-Disks-Back-to-Basic-Disks.aspx). Однако следует помнить, что во всех остальных случаях (включая расширение simple-диска до spanned/stripped) эта техника уже не работает, приводя к серьезным разрушениям данных, восстановить которые по силам только профессионалам.
Поддержка динамических дисков разными осями
- Vista Home Base/Premium не поддерживает динамических дисков вообще;
- Windows 2000 Pro, XP Home/Professional/x86–64, Vista Business/Enterprise/Ultimate поддерживают только простые, составные и чередующиеся динамические диски;
- Windows 2000 Server, Sever 2003, Server 2008 поддерживают все типы динамических дисков.
На laptop’ах динамические диски не поддерживаются.
Комментарий редактора
Читая различные обзоры, можно сделать вывод, что динамические диски обладают просто потрясающими возможностями: расширение дискового тома, применение чередования для повышения производительности, использование зеркального отражения, присоединение тома к массиву RAID–5, причем все это - штатными средствами операционной системы (через консоль mmc), без необходимости приобретения аппаратного RAID-контроллера и без перезагрузки! Разве не сказка? На практике оказывается, что нет.
Загрузка с динамического диска невозможна, следовательно, у нас должен быть один базовый диск под системные нужды плюс еще один базовый диск (или внешний носитель/накопитель) для хранения резервных копий (например, для gho-, tib- или bkf-файлов). Высока вероятность того, что динамический диск мы не увидим из другой операционки. На нем нельзя создавать основной (основные) и дополнительный разделы. В продакшн-системах составные и расширенные тома практически бесполезны, так как ни один из этих типов не предусматривает избыточности, соответственно, все данные будут утрачены при отказе любого диска этого тома. Не поддерживаются такие популярные уровни, как RAID–10 и RAID–50. Не получится «на лету» увеличить размер томов RAID–0 и RAID–5, просто добавив диски к существующей матрице (аппаратные RAID’ы это позволяют), - придется обращаться к услугам специального мастера и совершать дополнительные телодвижения. Как минимум одна перезагрузка все же потребуется - при создании или преобразовании первого из базовых дисков в динамический. Кроме того, операции преобразования придется выполнять в часы простоя сервера - поздно ночью или в выходные дни, так как при наличии открытых файлов возможна потеря данных. Остальные минусы использования этой «революционной разработки» красочно расписал мыщъх.
Некоторые сорвиголовы скажут, что динамические диски можно использовать в связке с аппаратным RAID-контроллером, тогда программная реализация обеспечит гибкость при необходимости расширения тома, а железка - требуемую избыточность, однако Microsoft в своих руководствах настоятельно не рекомендует применять этот подход.