Microsoft — мировой лидер в области ПО и ИТ-услуг
498,38
рейтинг
28 августа 2013 в 10:26

Разное → 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.

image

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

image

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

image


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


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

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

image

Для настройки 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 и помечаете соответствующий чекбокс.

image

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

Тоже самое можно сделать в 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.

image

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

image


Требования к 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.

image

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

image

либо 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-томами и пр. Чтобы реализовать подобный вариант вам нужно:
  1. Установить службу Failover Clustering
    Install-WindowsFeature Failover-Clustering
  2. Вручную подключить фильтр Shared Virtual Disk для раздела, на котором будут располагаться общие VHDX-файлы, например для диска D: это будет выглядеть как
    FLTMC.EXE attach svhdxflt D:

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

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

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

Спасибо!
Автор: @ashapo
Microsoft
рейтинг 498,38
Microsoft — мировой лидер в области ПО и ИТ-услуг

Комментарии (9)

  • 0
    Хотелось бы уточнить, это полностью поддерживаемый сценарий? У конкурентов поддерживается лишь в Cluster in a box, так что фича действительно очень крутая!
    • 0
      Две конфигурации: 1) с кластером с CSV-томом; 2) с Scale-Out File Server, полностью поддерживаемые. Конфигурация, описанная в конце поста, когда все располагается на одном хосте, не поддерживается.
  • 0
    Хочу уточнить пару моментов.
    1. Граница применимости виртуального кластера — это сервисы, который поднимаются, как роль этого самого кластера или умеют сами работать в кластере? Либо же на виртуальном кластере поднимается hyper-v «второго уровня», и на нём уже ВМ с приложением?
    2. При отказе ноды физического кластера происходит перезапуск сервиса на другой ноде, и связанный с этим кратковременный отказ приложения. Если на этой физической ноде исполнялась ВМ-нода виртуального кластера, то она тоже выпадет. А значит, опять имеем кратковременный отказ приложения, пока оно перезапустится на другой ВМ-ноде виртуального кластера?
    • 0
      1. Hyper-V не поддерживает «вложенную» виртуализацию. Соответственно, на гостевом кластере вы можете запустить любой сервис (роль), который можете запустить на физическом кластере, за исключением Hyper-V.
      2. В общем случае да, имеем кратковременный отказ приложения. Но есть исключения, например, файловый кластер с поддержкой Transparent Failover
      • 0
        1. Потому, собственно, и удивило.
        2. Понял, спасибо.
  • 0
    Немного не по теме но.
    R2 ждать тоже 18 октября как и 8.1?

    Для каких практических сценариев можно применять эту фичу имея лиц. только 2008R2? (+ Hyper-V server 2012R2)

    Имхо у многих пока еще лиц. 2008\R2
    • 0
      Да, Windows Server 2012 R2 будет доступен с 18 октября.

      Вопрос лицензирования — практически всегда вопрос индивидуальный. Если у организации есть Software Assurance (SA), новый сервер вы сможете использовать бесплатно. Если нет SA, то можно проконсультироваться у партнеров MS, какой вариант лицензирования для вас был бы наиболее выгодным.

      Наконец, вы можете протестировать Shared VHDX, используя в качестве гостевой ОС Windows Server 2008 R2. На текущий момент такой вариант не является поддерживаемым (не знаю, поменяется ли ситуация к 18 октября), но с архитектурной точки зрения ограничений на применение такой конфигурации я не вижу.
      • 0
        Главный вопрос:
        Для каких практических сценариев можно применять эту фичу? (MS рекомендует применять)

        SA вещь хорошая спору нет, особенно учитывая microsoft уже на следующий год делает не обновление, а «R2» и он как я понял в отличии от 8.1 будет стоить денег.
        • 0
          По сути, любой сценарий, в рамках которого необходима высокая доступность приложения внутри ВМ. Примеры: SQL Server или файловый сервер на основе ВМ.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное