Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

articles:dyn-disks-truth [2017/09/05 02:55] (текущий)
Строка 1: Строка 1:
 +====== dyn-disks-truth ======
 +<​sub>​{{dyn-disks-truth.odt|Original file}}</​sub>​
 +
 +====== вся правда о динамических дисках ======
 +
 +крис касперски,​ ака мыщъх, no-email
 +
 +**динамические диски таят в себе множество загадок и скрытых подводных камней,​ отношение администраторов к ним далеко не однозначно и они уже успели подпортить себе репутацию,​ загубив немало данных,​ восстановление которых стоит денег и к тому же далеко не всегда обратимо. мыщъх, специализирующийся на "​подъеме"​ файловых систем после падения,​ раскурил эту тему сразу же после того как получил диск с ****W****2****K ****и за это время нарыл немало полезной инфы, которой и делится с читателями**
 +
 +===== введение или краткий исторический экскурс =====
 +
 +**Динамические диски** появились еще в NT 3.51 (по другим данным в NT 4.0), только там они назывались **мультидисками** (**multidisk**) и представляли собой обыкновенные программные RAID'​ы широко распространенные в мире UNIX.
 +
 +Информация о конфигурации мультидисков хранилась в реестре и крах системы приводил к потере всех данных. Тоже самое относилось к полной переустановке системы или попытке перенести жесткий диск на систему с другой NT. Эти недостатки нивелировали все достоинства мультидисков,​ существенного ограничивая область их применения.
 +
 +Начиная с W2K, Microsoft слегка усовершенствовала менеджер мульидисокв и теперь информация о конфигурации хранится непосредственно на самом диске, откуда считывается в реестр при первом монтировании мультидиска,​ благодаря чему с одной стороны Microsoft смогла избежать переписывания старого (и уже отлаженного) кода, а с другой — при разрушении реестре,​ переустановки системы или подключении диска (массива дисков) к другой системе,​ их монтирование происходит автоматически.
 +
 +{{dyn-disks-truth_Image_0.png?​553}}
 +
 +Рисунок 1 в W2K+ информация о динамических дисках хранится на самих дисках в структурах PRIVHEAD и LDM
 +
 +По маркетинговым соображениям мультдиски были переименованы в **динамические диски (****dynamic disk)** и Microsoft развернула целую маркетинговую компанию по их продвижению на рынок. Причем,​ если при обновлении NT 4.0 до W2K, информация о существующих мультидисках нормально считывалась из реестра,​ то XP их в упор не видит, а потому //​попытка обновления ////NT 4.0////, работающей с мультидисками,////​до ////XP ////или ////Server 2003/​2008////,​ ведет к необратимой потере данных//,​ которые необходимо предварительно скопировать на другой носитель.
 +
 +В остальном же, динамические диски (по сравнению с мультидисками) не претерпели никаких существенных изменений,​ однако,​ отказ от реестра как от основного хранилища информации о конфигурации RAID-массива,​ создает все предпосылки для перехода с обычных дисков на динамические,​ но, прежде чем принимать окончательное решение,​ необходимо взвесить все за и против,​ о чем мы сейчас,​ собственно,​ и поговорим.
 +
 +===== мифы о динамических дисках =====
 +
 +Динамические диски окружены огромным количеством сплетен,​ мифов и легенд,​ кочующих из одного издания в другое и приписывающих им чудодействующие возможностями,​ которыми не обладают и обладать не могут в принципе (cм. например:​ http://​www.computerperformance.co.uk/​Litmus/​disk_dynamic.htm).
 +
 +Опрос знакомых администраторов показал,​ что большинство из них убеждены,​ что динамические диски (в отличии от обычных) могут изменять свой размер налету,​ однако,​ мало кто из них пытался осуществить это на практике,​ а попытавшись,​ убеждался,​ что… с этим справляются только утилиты сторонних разработчиков типа знаменитого PQMagic.
 +
 +Заблуждение это происходит из-за неверной трактовки термина "free space",​ под которым технические писатели в Microsoft подразумевали "​unallocated space",​ то есть **свободное пространство,​ не принадлежащим никакому дисковому тому**. Допустим,​ у нас есть два раздела,​ на которых свободно по 69 и 96 Гбайт соответственно. Можем ли мы увеличить размер первого раздела хотя бы на 10 Гбайт за счет второго?​ Ответ отрицательный! А вот если мы воткнем еще один винчестер,​ на котором нет никаких разделов (или же имеются неразмеченные разделы),​ то в этом (и только этом!) случае динамический диск, действительно,​ сможет увеличить свой размер,​ поглотив все неразмеченное пространство (или его часть).
 +
 +В результате чего, один раздел (например,​ раздел F:) окажется расположен на двух (или более) физических дисках,​ но с точки зрения операционной системы будет трактоваться как _один_ том. Такая задача никакому PQMagic'​у уже не по зубам, однако,​ следует помнить,​ что подобное увеличение размера динамического диска достается дорогой ценой. Во-первых,​ при отказе одного диска мы автоматически теряем второй (и все остальные),​ во-вторых,​ при попытке переноса динамического тома на другую машину нам придется тащить за собой сразу два (или более) дисков,​ что опять-таки не всегда приемлемо и в ряде случаев выгоднее использовать несколько стандартных томов, типа C:, D:, E,.. чем один динамический диск такого же размера,​ тем более, что NT позволяет монтировать раздел на любую пустую папку другого раздела,​ а при необходимости демонтировать его обратно.
 +
 +Заблуждение второе — динамические диски поддерживают неограниченного количество томов на одном устройстве,​ а стандартные (они же базовые),​ всего 4е, поскольку,​ в таблице разделов имеется место только для 4х записей. Однако,​ еще со времен MS-DOS, таблица разделов поддерживает рекурсивные расширения,​ снимающие всякие ограничения на количество томов. В MS-DOS и 9x количество разделов не может превышать число возможных букв, но W2K и все последующие системы позволяют назначать дискам имена произвольной длины или монтировать их на папки соседних разделов,​ поэтому,​ при желании один диск можно разбить хоть на 666 томов. Вопрос — а зачем?​!
 +
 +{{dyn-disks-truth_Image_1.png?​553}}
 +
 +Рисунок 2 пример обычного (базового) диска, разбитого на 8 разделов
 +
 +Заблуждение третье — динамические диски работают быстрее/​лучшее обычных. И с какой это такой радости?​! Планировка запросов в динамических дисках выполнена просто ужасно и в случае если динамический диск занимает более одного физического,​ мы получаем конкретные тормоза. Если же динамический диск полностью умещается на одном физическом диске, то он работает абсолютно с той же скоростью,​ что и обычный.
 +
 +===== типы динамических дисков =====
 +
 +**простые (****simple****)**практически ничем не отличаются от обычных,​ за исключением того, при переразбиении диска отпадает необходимость в перезагрузке. Simple-топа размещается на одном физическом диске и всегда непрерывны на всем своем протяжении. При увеличении размеров simple-томов за счет свободного пространства,​ находящихся на других дисках,​ они автоматически превращается в составные (spanned) разделы.
 +
 +**надежность**:​средняя
 +
 +**избыточность**:​отсутствует
 +
 +**производительность**:​средняя
 +
 +с**оставные (****spanned****)**состоят из одного или нескольких simple-томов,​ находящихся на разных физических дисках,​ объединенных в единый логический том. Информация записывается последовательно,​ как в классическом линейном RAID-массиве.
 +
 +**надежность**:​низкая
 +
 +**избыточность**:​отсутствует
 +
 +**производительность**:​средняя
 +
 +**чередующиеся (****stripped****) **внешне похожи на spanned, поскольку,​ как и последние,​ они объединяют несколько физических дисков в один логический том, но данные записываются вперемешку,​ т. е. первый сектор на первый жесткий диск, второй — на второй и т. д., в результате чего оба жестких диска работают параллельно и если они подключены к различным IDE-контроллерам,​ скорость обмена пропорционально возрастет,​ однако,​ если хотя бы один диск откажет,​ образуется "​решето"​ из данных _совершенно_ непригодное для восстановления,​ в общем, все как в классическом RAID-массиве уровня 0.
 +
 +**надежность**:​очень низкая
 +
 +**избыточность**:​отсутствует
 +
 +**производительность**:​высокая
 +
 +**зеркальные (****mirrored****)**два или более динамических диска, объединенных в один логический,​ причем запись дублируются на все диски (как в RAID уровня 1) и при выходе одного винчестера из строя, он может быть заменен без потери данных (а в случае поддержки hot-plug'​а и без остановки сервера). Зеркалировать можно не только простые,​ но также составные и чередующие динамические диски. Платить за надежность приходится не только дисковым пространством,​ но и производительностью,​ поскольку,​ количество контроллеров не безгранично и зеркальные диски обычно приходится цеплять на уже задействованные контроллеры,​ к тому же, поиск секторов на современных винчестерах осуществляется методом "​вилки"​ и занимает различное время, а, значит,​ при одновременном обмене с несколькими винчестерами,​ мы вынуждены дожидаться самого последнего из них, то есть паспортное время поиска из "​среднего"​ приближается к "​наихудшему"​.
 +
 +**надежность**:​очень высокая
 +
 +**избыточность**:​очень высокая
 +
 +**производительность**:​средняя или низкая
 +
 +**чередующиеся с контролем четности (****stripped with party****): **соответствует массиву RAID уровня 5. Состоит из трех или более дисков (максимум — 32). Данные пишутся на все диски кроме последнего,​ где хранятся коды коррекции ошибок,​ с помощью которых можно восстановить любой другой отказавший диск. То есть, если мы имеем три диска, избыточность составит всего 30%, а в случае пяти дисков — 20%. Естественно RAID-5 оправдывает себя только на массивах,​ состоящих из большого количества дисков. Он не может динамически увеличивать свой размер за счет присоединения новых томов и к тому же поддерживается только серверными версиями Windows. Системные и загрузочный файлы не могут располагаться на RAID-5 дисках,​ то есть реально нам понадобиться как минимум четыре диска: один — системный,​ три – для RAID-5 массива.
 +
 +**надежность**:​очень высокая
 +
 +**избыточность**:​средняя или низкая
 +
 +**производительность**:​очень высокая
 +
 +===== >>>​ врезка поддержка динамических дисков разными осями =====
 +
 +  - **Vista Home Base/​Premium**:​
 +    - не поддерживает динамических дисков вообще;​
 +  - **W2K Home/​Professional****,​ XP Home/​Professional****/​x86-64,​ Vista Business****/​****Enterprise/​Ultimate**:​
 +    - поддерживает только простые,​ составные и чередующиеся динамические диски;
 +  - **Windows 2000 Server,​ Sever 2003,​ Server 2008**:​
 +    - поддерживают все типы динамических дисков;​
 +  - динамические диски не поддерживаются на laptop'​ах;​
 +{{dyn-disks-truth_Image_2.png?​502}}
 +
 +Рисунок 3 Windows 2000 Professional поддерживает только простые,​ составные и чередующие динамические диски
 +
 +===== программный vs аппаратный RAID =====
 +
 +Ох уж эти американцы! Любят они выдумывать новые слова в ущерб уже существующим. Динамический диск представляет собой обыкновенный программный RAID, реализаций которых можно насчитать десятки. Microsoft продвигает не самое лучшее и к тому же далеко не бесплатное решение,​ обстреливая потребителей заумной терминологией и торговыми марками.
 +
 +Представляет интерес сравнить достоинства и недостатки программных RAID-массивов с аппаратными.
 +
 +  - **достоинства аппаратных ****RAID-****массивов (по сравнению с программными)**:​
 +    - независимость от конкретной операционной системы (при условии,​ что она поддерживает данный RAID-контроллер);​
 +    - более высокая производительность и более умно выполненная система диагностики аварийный и предаварийных состояний;​
 +    - возможность замены диска без остановки системы;​
 +  - **недостатки аппаратных ****RAID-****массивов**:​
 +    - если RAID-контроллер умрет или откажет материнская плата с интегрированным RAID-контроллером,​ то нам потребуется отыскать _точно_ такой же контроллер,​ иначе все данные превратятся в труху;
 +    - контроллеры и интегрированные чипсеты зачастую содержат множество ошибок,​ но далеко не всякий контроллер позволяет обновлять свою прошивку (не говоря уже о том, что такая операция небезопасна и сопряжена с большим риском);​
 +    - низкая мобильность — при переносе массива дисков на другую машину,​ необходимо таскать контроллер (с драйверами),​ а в случае динамических дисков достаточно просто воткнуть их в W2K или другую NT-подобную систему;​
 +Помимо этого, всем типам RAID-массивов присуща проблема восстановления данных. Большинство восстановительных утилит работают только с базовыми дисками,​ а восстановлением RAID'​ов занимаются специалисты,​ располагающие не только глубокими техническими знаниями,​ но и соответствующим оборудованием.
 +
 +Аппаратные RAID'​ы оправдывают себя только в том случае,​ если нам требуется экстремальная производительность,​ или на одной машине используется несколько различных операционных систем,​ например,​ Server 2003/​2008 и FreeBSD, которые,​ благодаря возможностям аппаратной виртуализации,​ могут работать _одновременно_ друг с другом безо всяких тормозных эмуляторов типа VM Ware.
 +
 +В остальных случаях предпочтительнее использовать программные RAID'​ы.
 +
 +===== шесть доводов против динамических дисков =====
 +
 +Первое. Преобразование базового диска в динамический — это _практически_ необратимая операция (исключение составляют Simple-разделы,​ которые можно превратить в обычные тома путем редактирования диска на сектором уровне см "​высший пилотаж или делаем из динамического диска обычный",​ но составные,​ чередующие и уж тем более RAID-5 диски преобразовать обратно можно только путем копирования данных на внешний носитель,​ удаления динамических дисков с последующим созданием обычных разделов).
 +
 +Второе. Преобразовав системный диск в динамический мы уже не сможем ни обновить,​ ни переустановить Windows, поскольку инсталлятор динамических дисков,​ увы, не понимает и навряд ли будет понимать в дальнейшем (Server 2008 beta 3 до сих пор не поддерживает такую операцию).
 +
 +Третье. Linux и xBSD штатным образом не поддерживают динамических дисков и для работы с ними требуют установки программного обеспечения от сторонних производителей (например,​ "​Paragon LDM/NTFS driver"​ – http://​paragon-software.com/​),​ но это еще полбеды. Некоторые типы динамических дисков поддерживаются только "​продвинутыми"​ версиями Windows, и потому,​ обновляя Windows XP Home до Windows Vista Home Base/​Premium,​ мы с удивлением обнаружим "​пропажу"​ динамических дисков. А все потому,​ что Microsoft очень сильно хочет денег.
 +
 +Четверное. При серьезных разрушениях дискового тома, восстанавливать данные на динамических дисках намного труднее,​ чем на обычных и как минимум на порядок дороже. Хакеры только распотрошили формат информации,​ описывающий структуру динамических дисков,​ но там еще много белых пятен и реально действующих утилит для автоматизированного восстановления на сегодняшний день нет.
 +
 +Пятое. Динамические диски имеют проблемы со службой кластеров (Cluster Service) и теневыми копиями (Shadow copy), и чтобы не накосячить требуется раскурить базу знаний (Knowledge Base), а, потом, извиняюсь за выражение,​ натянуть презерватив и потрахаться.
 +
 +Шестое. "​Серьезные"​ сервера традиционно оснащаются аппаратными RAID-контроллерами,​ а у "​несерьезных"​ потребности в динамических дисках в общем-то не возникает и там они несут больше проблем чем решают.
 +
 +===== создаем и удаляем динамические диски =====
 +
 +Создавать динамические диски можно как средствами графической оболочки,​ так и из командной строки. В любом случае нам понадобиться 1 Мбайт свободного пространства в конце диска, где хранится LDM-база с информацией о конфигурации. Если же ее там нет, то… увы! Штатный дефрагментатор в общем случае дефраментирует файлы "на месте",​ минимизируя их перемещения и в таком случае,​ вооружившись дисковым редактором,​ можно попробовать определить,​ что за файлы находятся в последнем мегабайте и переместить их на другой раздел (однако,​ если это системные файлы или кусок реестра,​ то остается использовать только продвинутые дефрагментаторы от сторонних производителей,​ например O&O Disk Defrag).
 +
 +В остальном же создание динамических дисков не представляет никаких проблем. Запускаем "​Computer Management",​ входим в "Disk Management",​ щелкаем правой клавишей мыши по базовому диску, который мы хотим преобразовать в динамический и выбираем в контекстом меню пункт "​Convert to Dynamic Disk" и ответив на ряд тупых запросов на подтверждение получаем Simple-том,​ щелкнув по которому,​ мы можем либо расширить его размер за счет _невыделенного_ свободного пространства других дисков ("​Extend Volume"​),​ либо зазеркалить том ("Add Mirror"​),​ причем последний пункт работает только в серверных версиях и только если на зеркальном диске достаточно места (создать зеркало на том же самом физическом диске невозможно,​ да и ненужно).
 +
 +{{dyn-disks-truth_Image_3.png?​552}}
 +
 +Рисунок 4 обновление базового диска до динамического через графическую оболочку
 +
 +Simple-том не может быть преобразован в RAID-5 и потому для создания RAID-5 нам нужно по меньшей мере три пустых динамических дисков на которых не создано никаких томов. Щелкам мышью по любому из них, говорим "New Volume",​ в появившемся диалоговом окне выбираем RAID-5 (работает только на серверных версиях Windows), отвечаем на пару несложных запросов (типа какие диски добавлять в массив,​ как его форматировать) и все!
 +
 +Утилита командой строки **DISKPART** позволяет делать тоже самое, только без мыши. Просто набираем в консоли diskpart.exe,​ пишем "​help"​ и курим, втыкая на экран. В частности,​ чтобы создать simple-том,​ находясь внутри diskpart.exe необходимо написать:​ "​create volume simple [size=n] [disk=n]"​. Описывать остальные команды никакого смысла нет, так как они уже разжеваны в справке.
 +
 +{{dyn-disks-truth_Image_4.png?​553}}
 +
 +Рисунок 5 управление динамическими дисками из командой строки
 +
 +Для удаленного управления динамическими дисками можно воспользоваться либо терминальной службой,​ запуская diskpart.exe,​ либо в "​Computer Management"​ выбрать Action  Connect to another computer. При этом в качестве клиента может выступать любая ось из линейки NT, начиная от W2K и выше. Они преспокойно создают зеркальные и RAID-5 тома на сервере. А вот даже подключившись сервером к рабочей станции,​ создать на ней зеркальный том мы сможем,​ так же как и RAID-5.
 +
 +===== высший пилотаж\\ или делаем из динамического диска обычный =====
 +
 +Simple-том,​ полученный путем обновления базового диска до динамического,​ можно вернуть обратно,​ запустив редактор диска и поменяв тип раздела с 42h на 07h. После перезагрузки,​ Менеджер Диска потеряет динамический диск, отметив его красным крестиком,​ но это не страшно — и его можно смело удалить. А вот восстановленный базовый диск рекомендуется почекать утилитой chkdsk.
 +
 +{{dyn-disks-truth_Image_5.png?​552}}
 +
 +Рисунок 6 после ручного преобразования Simple-диска в базовый,​ система теряем динамический том (Missing Dynamic Offline), однако,​ это так и должно быть и его можно смело удалять
 +
 +Подробнее об этом можно прочитать в статье "//​**Converting**////​**Dynamic**////​**Disks**////​**Back**////​**to**////​**Basic**////​**Disks**//"​ (http://​thelazyadmin.com/​blogs/​thelazyadmin/​archive/​2007/​01/​17/​Converting-Dynamic-Disks-Back-to-Basic-Disks.aspx) однако,​ следует помнить,​ что во всех остальных случаях (включая расширение Simple-диска до Spanned/​Stripped она уже не работает,​ приводя к серьезным разрушениям данных,​ восстановить которые по силам только профессионалам.
 +
 +