Как стать автором
Обновить

Hyper-V и устройства хранения данных

Время на прочтение5 мин
Количество просмотров63K
image

Как я уже обещал – продолжаю «евангелировать» и пишу очередную статью про Hyper-V. На этот раз речь пойдет о работе Hyper-V с устройствами хранения данных – сиречь жесткими дисками и всякими внешними СХД.


Где виртуальные машины могут хранить данные?


Диски виртуальных машин могут храниться как на локальных жестких дисках сервера, так и на внешних СХД (SAN).

На схеме используется DAS. На диске Disk2, смонтированном в хостовой системе как диск Y:, создан файл VM1.vhd, который, в свою очередь, смонтирован в виртуальной машине и используется ей в качестве диска C:. А Disk3 подключается к виртуальной машине напрямую, и в гостевой ОС с ним можно работать как с диском D:. В хостовой же ОС Disk3 находится в состоянии Offline, и зайти на него не получится.
Посмотрим теперь, какие варианты имеются при использовании SAN.

Самый «классический» вариант – LUN 1 презентуется серверу, монтируется в хостовой ОС, к примеру, как диск Z:, на нем уже создается VHD, который, в свою очередь, используется виртуальной машиной. Примерно как в сказке – «игла в яйце, яйцо в утке, утка в зайце, и т.д.».
Второй вариант – LUN 2 презентуется серверу, но в хостовой ОС он не монтируется, а подключается как pass-through-диск к виртуальной машине.
Кроме этого, если SAN построена на базе протокола iSCSI – LUN может быть смонтирован внутри виртуальной машины с помощью программного iSCSI-инициатора, запущенного внутри гостевой ОС. К сожалению, FibreChannel-LUN’ы присоединить подобным образом не получится – в Hyper-V нет виртуального FC-HBA.

Виртуальные контроллеры


Итак, начнем с того, что виртуальная машина, точно так же, как и настоящий компьютер, имеет свои виртуальные жесткие диски и виртуальные контроллеры жестких дисков. Контроллеры эти бывают всего двух типов: IDE и SCSI. В чем же разница между ними?
Во-первых, в отличие от IDE, SCSI-контроллер является полностью синтетическим устройством, и потому для своей работы требует установки компонент интеграции. Поэтому использовать его можно лишь в тех гостевых ОС, которые их поддерживают (напоминаю, что это – только MS Windows, а так же RHEL и SLES). По этой же причине гостевая операционная система может загружаться только с IDE-устройства. Основным отличием между виртуальными IDE и SCSI-контроллерами является количество устройств, способных через этот контроллер работать. IDE-контроллеров в виртуальной машине может быть два, и к каждому может быть подключено максимум по два виртуальных диска. SCSI-контроллеров может быть четыре, и к каждому контроллеру можно подключить до 64 виртуальных дисков, то есть всего виртуальная машина может иметь 260 виртуальных дисков (4 IDE + 4*64 SCSI). Надо так же помнить, что хотя реальные SCSI-диски работают быстрее, чем IDE — это не совсем верно для виртуальной среды. В среде Hyper-V R2 при установленных компонентах интеграции виртуальные IDE- и SCSI-диски работают одинаково быстро, и производительность определяется только физической дисковой подсистемой.

Виртуальные диски


Посмотрим теперь, какими могут быть сами жесткие диски у виртуальных машин. Начнем с того, что Hyper-V поддерживает как виртуальные жесткие диски, представляемые в виде файлов .VHD, так и прямое подключение дисков к виртуальной машине (так называемые pass-through-диски).
Виртуальные диски представляют из себя файлы особого формата (VHD). Формат этот первоначально был разработан компанией Connectix, а затем, после приобретения оной корпорацией Microsoft – начал использоваться в продуктах виртуализации от MS – VirtualPC, Virtual Server, а ныне – Hyper-V. На данный момент, в ОС Windows 7 и Windows Server 2008 R2 файлы VHD поддерживаются на уровне ОС и могут монтироваться в самой системе как диски. Более того, сама ОС может быть установлена на VHD и загружаться с него. Формат VHD в настоящее время полностью открыт, и существует множество стороннего ПО (например, от компании Paragon), позволяющая работать с VHD, а так же диски VHD поддерживаются в некоторых продуктах Citrix. Виртуальные диски бывают трех типов: фиксированного размера, динамические и дифференциальные.
Динамические виртуальные диски представляют из себя VHD-файл, который увеличивается в размере по мере записи на него. Динамический диск в процессе работы может быть сжат за счет удаления неиспользуемых блоков, которые остаются при удалении данных с VHD. Использование динамических дисков позволяет наиболее рационально использовать дисковое пространство, но использовать их в production-среде не рекомендуется из-за возможного падения производительности.
Виртуальные диски фиксированного размера представляют собой файл, содержащий набор блоков, представляемый виртуальной машине в качестве диска. Размер виртуального диска задается при его создании, и на жестком диске сервера создается файл VHD соответствующего размера. Процесс создания может занять некоторое время, в зависимости от размера диска. Использование дисков фиксированного размера предпочтительней, чем динамических по двум причинам. Во-первых, поскольку динамический диск расширяется постепенно, VHD-файл может фрагментироваться, что повлияет на производительность. VHD фиксированного размера сразу же занимает все необходимое ему пространство, и потому не фрагментируется в процессе работы. Во-вторых, может сложиться ситуация, что место на физическом диске закончится, и динамическим дискам будет некуда «расти», и это может привести к сбоям в работе виртуальных машин.
Дифференциальный диск — всегда имеет «родительский» VHD. Чтение при этом может осуществляться как с «родительского», так и с самого дифференциального VHD, но запись идет только в дифференциальный VHD, «родительский» остается при этом без изменений. Таковы, например, AVHD-диски, создаваемые при снапшотах виртуальной машины. Подробнее о снапшотах – см. мою предыдущую статью. Так же дифференциальные VHD можно использовать в тестовой среде, когда необходимо поднять несколько виртуальных машин с примерно одинаковым содержимым жестких дисков (к примеру – с установленной ОС). Использовать дифференциальные диски в production-среде не рекомендуется во-первых из-за снижения производительности (вместо чтения из одного VHD приходится читать из нескольких), а во-вторых – из-за снижения надежности (повреждение родительского VHD приводит к повреждению всех дифференциальных).
Максимальный размер виртуальных дисков, как фиксированных, так и динамических, равен 2 терабайтам (или 2040 гигабайтам).
Pass-through-диски – это подключение физических дисков напрямую к виртуальной машине без создания VHD-файлов. Это могут быть как разделы на локальных жестких дисках, так и презентованный серверу LUN от внешней системы хранения (SAN). Для хостовой же ОС диск, после монтирования к виртуальной машине, переходит в состояние «Offline», то есть прямой доступ к диску прекращается. В качестве pass-through-дисков не могут использоваться примонтированные VHD, а так же они не поддерживают снапшоты на уровне виртуальных машин.
Размер pass-through-дисков не ограничен 2 терабайтами.
Иногда возникают вопросы: что же лучше использовать – VHD или pass-through-диски? Некоторые считают, что VHD работают медленнее, но это неправда. Исследования показали, что в Winodws Server 2008 R2 VHD и pass-through-диски работают с одинаковой скоростью. Подробнее о замерах можно почитать официальный документ.

На этом я пожалуй закончу, следующая статья будет рассказывать о работе виртуальных машин с сетью. Если будут какие-либо вопросы по теме статьи — как обычно, милости прошу в комментарии.
Теги:
Хабы:
Всего голосов 65: ↑43 и ↓22+21
Комментарии43

Публикации

Истории

Работа

DevOps инженер
45 вакансий

Ближайшие события