Share via


Shared VHDX в Windows Server 2012 R2

В предыдущем посте, посвященном обзору Windows Server 2012 R2, я упоминал новую возможность Hyper-V – использование общих VHDX-файлов (Shared VHDX) для создания гостевых кластеров. Сегодня я хотел бы подробнее остановиться на этой теме и обсудить особенности настройки и применения Shared VHDX.

Гостевая кластеризация

Для начала кратко о том, зачем вообще нужна гостевая кластеризация. Большая часть приложений и сервисов, используемых в современной ИТ-инфраструктуре, может быть запущена внутри виртуальных машин (ВМ). Виртуализация дает целый ряд очевидных и не очень преимуществ, перечисление которых выходит за рамки поста. Чем более критичное для компании приложение крутится внутри ВМ, тем более важной становится задача обеспечения высокой доступности такой ВМ.

Обеспечить высокую доступность ВМ можно разместив ее на физическом (хостовом) кластере, в данном контексте – кластере Hyper-V. Выход из строя физического узла кластера, на котором была запущена ВМ, приводит к автоматическому восстановлению ВМ на другом узле кластера. Эта процедура отработки отказа может привести пусть и к кратковременной, но потере связи с ВМ и приложением внутри нее.

Другой метод повышения доступности – объединение в Failover Cluster двух или более ВМ, то есть создание гостевого кластера в том смысле, что кластер создается на базе гостевых ОС. В этом случае мы уже говорим о высокой доступности не ВМ как таковых, а приложения (или приложений) внутри гостевого кластера.

Разумеется, для большей надежности можно сочетать хостовую и гостевую кластеризацию.

Гостевая кластеризация, впрочем как и хостовая, предполагает наличие некоторого общего хранилища. Применительно к виртуальным машинам таким хранилищем до выхода Windows Server 2012 мог выступать iSCSI-storage.

clip_image001

В Windows Server 2012 благодаря Virtual Fibre Channel появилась возможность подключать ВМ через HBA-адаптер хоста непосредственно к FC-storage.

clip_image002

Однако в любом случае для построения гостевого кластера необходимо было предоставить ВМ прямой доступ к хранилищу. Во многих сценариях, например для хостинг-провайдеров, такой вариант является очень неудобным. Общие VHDX-файлы как раз и позволяют эту проблему решить, поскольку абстрагируют ВМ от особенностей реализации СХД. Для создания гостевого кластера к виртуальным машинам подключается нужное количество Shared VHDX, которые и представляют собой общее кластерное хранилище. А где физически, на каком конкретно СХД и LUN-е эти файлы располагаются – это уже дело провайдера.

clip_image003

 

Поддерживаемые конфигурации и настройка Shared VHDX

С точки зрения реализации описанного подхода можно выделить две основные конфигурации использования Shared VHDX. В первой конфигурации общие VHDX-файлы располагаются на CSV-томе физического кластера. CSV-том, в свою очередь, может быть реализован на любом поддерживаемом службой кластеризации Windows Server блочном хранилище (Fibre Channel, iSCSI, Shared SAS).

Во второй конфигурации VHDX-файлы располагаются в общей папке файлового кластера Scale-Out File Server. Последний, замечу, также предполагает наличие CSV-тома. Как видно, и та, и другая конфигурация в итоге приводят к сочетанию хостовой и гостевой кластеризации. Хостовая кластеризация повышает доступность общих VHDX, создаваемый затем поверх гостевой кластер обеспечивает высокую доступность сервисов и приложений внутри ВМ.

clip_image004

Для настройки Shared VHDX прежде всего, конечно, необходимо создать один или несколько VHDX-файлов и расположить их, используя одну из перечисленных выше конфигураций. Затем подключить Shared VHDX можно в консоли Hyper-V, командлетами PowerShell или с помощью сервисного шаблона (service template) в System Center 2012 R2 Virtual Machine Manager.

В консоли Hyper-V это делается путем добавления нового SCSI-диска: в свойствах ВМ выбираете SCSI Controller, затем Hard Drive, нажимаете кнопку Add, указываете путь к VHDX-файлу, после чего выбираете Advanced Features и помечаете соответствующий чекбокс.

clip_image006

Повторяете процедуру для всех ВМ, которые планируется объединить в кластер.

Тоже самое можно сделать в PowerShell следующими командлетами:

New-VHD -Path C:\ClusterStorage\Volume1\Shared.VHDX -Fixed -SizeBytes 30GB

Add-VMHardDiskDrive -VMName Node1 -Path C:\ClusterStorage\Volume1\Shared.VHDX -ShareVirtualDisk

Add-VMHardDiskDrive -VMName Node2 -Path C:\ClusterStorage\Volume1\Shared.VHDX –ShareVirtualDisk

В VMM 2012 R2 в сервисном шаблоне в разделе Hardware Configuration необходимо также добавить SCSI-диск, указать путь к VHDX-файлу и пометить чекбокс Share the disk across the service tier. При развертывании ВМ на основе такого шаблона VMM подключит указанный файл в качестве Shared VHDX.

clip_image008

Какой бы вариант вы не выбрали, внутри ВМ подключенный VHDX будет выглядеть как обычный SAS-диск.

clip_image010

 

Требования к Shared VHDX

Необходимо помнить следующие требования к Shared VHDX:

  1. Файлы должны быть обязательно VHDX, формат VHD для shared-конфигурации не поддерживается. При этом сама гостевая ОС вполне может быть установлена на VHD-диск.
  2. На хостах Hyper-V, а в случае использования Scale-Out File Server и на узлах файлового кластера, должна быть установлена версия Windows Server 2012 R2.
  3. Гостевой ОС может быть Windows Server 2012 R2 или Windows Server 2012 с последней версией интеграционных компонент.
  4. Поддерживаются как ВМ первого поколения (Generation 1), так и второго (Generation 2).

 

Диагностика и тестирование

Для диагностики возможных проблем в Performance Monitor добавлен новый объект Hyper- V Shared VHDX с набором различных счетчиков, которые вы можете анализировать на хостах Hyper-V.

clip_image012

Кроме того, добавлены новые журналы, просмотр которых возможен, как обычно, с помощью Event Viewer,

clip_image014

либо PowerShell:

Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Shared-VHDX/Operational

Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Shared-VHDX/Reservation

Наконец, для целей тестирования, изучения, разработки есть возможность использовать «специальную» конфигурацию Shared VHDX. Для этой конфигурации достаточно одного физического хоста с Windows Server 2012 R2 и поднятой ролью Hyper-V, на котором и можно расположить общие VHDX-файлы, не создавая кластеры с CSV-томами и пр. Чтобы реализовать подобный вариант вам нужно:

  • Установить службу Failover Clustering

Install-WindowsFeature Failover-Clustering

  • Вручную подключить фильтр Shared Virtual Disk для раздела, на котором будут располагаться общие VHDX-файлы, например для диска D: это будет выглядеть как

FLTMC.EXE attach svhdxflt D:

Но помните, что это неподдерживаемая конфигурация и применять ее в реальной среде не следует.

Таким образом, механизм общих VHDX-файлов помогает реализовать более эффективную схему гостевой кластеризации и, в конечном итоге, повысить доступность критически важных приложений и сервисов вашей инфраструктуры. Особенно полезной эта технология может оказаться для частных облаков и хостинговых сценариев.

Надеюсь, материал был полезен.

Спасибо!

Comments

  • Anonymous
    January 01, 2003
    У общего виртуального диска есть еще несколько ограничений: 1) нельзя изменить размер; 2) нельзя использовать Live Storage Migration; 3) нельзя использовать резервное копирование VSS на уровне хоста.

  • Anonymous
    January 01, 2003
    very nice features in server 2012 for hyper v