Cluster Shared Volumes (CSV) — установка, использование, отключение


Многое уже было сказано о виртуализации в Windows Server 2008 R2, о новой технологии Cluster Shared Volumes (CSV), позволяющей всем узлам кластера одновременно работать с общим диском, о Live Migration, отчасти ставшей возможной как раз с появлением CSV.


Технология Cluster Shared Volumes позволяет вам размещать на общем кластерном диске виртуальные машины, запускаемые на разных узлах кластера. Это очень удобно, так как позволяет вам переносить виртуальные машины с узла на узел, не смотря на то, какие еще виртуальные машины на данном диске расположены.


Сегодня я не буду рассказывать теорию работы Cluster Shared Volumes — если интерес будет проявлен, опишу её в отдельной статье. Сейчас же мы рассмотрим практическую сторону — как задействовать функционал Cluster Shared Volumes, как включить его для общих дисков, как отключить данный функционал, если потребуется и такой шаг.


Я исхожу из того, что вы уже установили Windows Server 2008 R2 или Hyper-V Server 2008 R2 на один или несколько серверов и создали кластер. Сразу после создания кластера вы не видите в консоли Failover Cluster Manager раздела Cluster Shared Volumes, так как данных функционал отключен по умолчанию.


Как задействовать Cluster Shared Volumes?


Ответ на вопрос будет таким же простым, как его формулировка, — в консоли Failover Cluster Manager выберите корневой элемент созданного кластера. В списке действий увидите команду Enable Cluster Shared Volumes.



Выбрав эту команду, согласитесь с предупреждением системы о том, что CSV поддерживается лишь для отказоустойчивых виртуальных машин, — и вы заметите, что в консоли Failover Cluster Manager появился новый раздел.



Как задействовать Cluster Shared Volumes из PowerShell?


Вы можете включить поддержку CSV на вашем кластере и из PowerShell. Делается это при помощи следующей команды: Get-Cluster | %{$_.EnableSharedVolumes = “Enabled”}


Обратите внимание на то, что по умолчанию в PowerShell не загружаются все возможные модули — и поэтому при обычном запуске Windows PowerShell коммандлет Get-Cluster недоступен. Чтобы воспользоваться специализированным набором коммандлетов, вам потребуется импортировать модуль поддержки технологий кластеризации. Для этого выполните команду import-module failoverclusters или же запустите «Windows PowerShell Modules» из меню «Administrative Tools», что загрузит разом все модули, входящие в стандартный пакет администрирования.


Как отключить поддержку Cluster Shared Volumes?


Интересный момент — включение поддержки CSV возможно из консоли Failover Cluster Manager, а вот возможность отключения там отсутствует. Единственный способ отключить поддержку CSV в кластере — выполнить команду Get-Cluster | %{$_.EnableSharedVolumes = “Disabled”}


Помните о том, что следует импортировать модуль failoverclusters или запускать «Windows PowerShell Modules» из «Administrative Tools».


Включение Cluster Shared Volumes для общих дисков


Задействовав поддержку CSV на кластере, вы еще не сделали ваши общие диски доступными на всех узлах сразу. Это потребуется выолнить для каждого из дисков отдельно. В консоли Failover Cluster Manager в графе Cluster Shared Volumes вы видите, какие диски в данный момент используют технологию CSV.



Если вы хотите включить Cluster Shared Volumes для нового диска, выполните действие «Add Storage» и выберите этот диск.



Добавленный диск также отобразится в списке дисков, использующих CSV.



Создание виртуальных машин на Cluster Shared Volumes


Каждый диск, для которого вы задействовали CSV, будет доступен на всех узлах в виде каталога «C:\ClusterStorage\Volume, где X — номер диска в очерёдности включения CSV (что вовсе не обязательно может совпадать с нумерацией дисков в представлении оснасток Failover Cluster Manager и/или Disk Management).



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


Дополнительные соображения


Помните о том, что диски CSV не поддерживают технологию Pass-Through. То есть у вас не получится подключить общий диск кластера напрямую к виртуальной машине. Вместо этого на общих дисках следует создавать виртуальные диски (VHD) и уже их подключать к виртуальным машинам. Впрочем, любая виртуальная машина может одновременно сочетать в себе виртуальные диски (расположенные на CSV) и диски, подключенные как Pass-Though (не задействованные в кластере каким-либо другим способом).


Если вы копируете файлы (например, виртуальные диски) на диск CSV — запускайте процесс копирования на узле-координаторе. Подробнее об этом я расскажу в следующей заметке.

Comments (22)

  1. Alex A says:

    RuStn – что касается того что лишь координатор имеет доступ к ТАБЛИЦЕ – согласен. Остальные, действительно в режиме DirectIO пишут/читают в файлы (сами, напрямую, не через координатор.) Что тут некрасиво не понимаю. Рожать принципиально новую файловую систему, несовместимую со всеми решениями резервного копирования, репликации, VSS было бы много некрасивее. Отсутствие сторонних решений резервного копирования на пару лет было бы ужасно. Microsoft за требование использовать “родной для виртулизации метод резервного копирования”, чтобы потом его результат бэкапить другими решениями – просто бы с землёй сравняли громко-кричащие энтузиасты. При том что известен ряд конкретных вендоров, поступающих именно так на своих файловых системах.. и все молчат при кислой мине ))

    Остальное в вашем посте – скажем так.. бред, соверщенно не вытекающий из здравого первого рассуждения.

    Если вы, в нарушение явных требований и явного предупреждения системы при включении CSV пробуете хранить на ней что-то кроме кластеризованных виртуальных машин – сами виноваты, комментировать это бессмысленно. Ни разу не видел CSV сломавшуюся при использовании её лишь для задач виртуализации (и хранении на ней лишь кластеризованных ВМ, ибо только Cluster API, а никак не Hyper-V API отвечает за общение с координатором).

    Если у вас есть проблемы с библиотекой и размещением ВМ с неё на CSV, и вы готовы работать над этой проблемой, напишите мне, соберём логи, проанализируем. Либо найдём причину сбоя в ваших настройках, либо выпустим хотфикс к VMM (а не к CSV).

    Михаил – про Passthrough диски.. Passthrough диск, это ВЕСЬ ФИЗИЧЕСКИЙ ДИСК (LUN),отданный ВМ. Весь, а не его часть. Именно поэтому нельзя отдать часть диска CSV (папку) виртуальной машине как Passthrough.

    Если вы даете виртуальной машине отдельный диск (LUN) как Passthrough, то там нет CSV (у вас же нет кластера Hyper-V внутри ВМ) – и если данный LUN доступен всем узлам кластера, то Live Migration с такими дисками работать будет.

  2. Pronichkin says:

    Михаил — у меня прекрасно работает Live Migration с виртуальными машинами, использующими диски PassThrough 🙂

  3. Pronichkin says:

    Информация о том, как указать DPM, что  производить резервное копирование следует строго последовательно, была приведена в документации к продукту — ещё начиная с Beta-версии. Фактически, там требуется ограничить количество одновременно выполняемых операций единицей.

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

  4. Alex A says:

    Замечу, что это не связано с CSV, а с Hyper-V VSS Writer. Ранее DPM бэкапил ВСЕ виртуалки с диска разом. Теперь делает это последовательно.

    Если есть аппаратный VSS Provider, то возможна параллельная операция

  5. Alex A says:

    Андрей, не совсем.

    Это особенности бэкапа Hyper-V. Точнее особенности ограничений встроенного в ОС Hyper-V VSS Writer. У аппаратных VSS провайдеров таких ограничений нет.

    Если вас устроит бэкап выключенных ВМ (без VSS, или бэкап ОС не имеющих поддержки VSS – Linux, Windows 2000,..) то там нет таких ограничений, т.к. испольузется другой VSS провайдер.

    CSV тут ни при чем, DPM тоже.

  6. Pronichkin says:

    RuStn — вы можете привести критерии «нормальности» решения?

    Критерий «красиво/не красиво» — вообще несерьёзен. Во-первых, потому что «красота» решения меньше всего волнует заказчиков. Их волнует «выполняет поставленные задачи/не выполняет», «надёжно/не надёжно», «дорого/дёшево» и так далее.

    Во-вторых, потому, что в сравнении с VMware — там совершенно так же, работу с метаданными тома (например, создание файла, удаление файла, изменение размеров файла) может производить только один узел в кластере. Остальные работают только с данными внутри файлов.

    Отличия технологий VMware от CSV, конечно, существуют, но они — в реализации, а не в самой концепции на высоком уровне. Поэтому вы можете абсолютно с теми же основаниями обозвать реализацию VMware «некрасивой».

    По поводу ваших проблем с нестабильно работающим кластером — это гораздо более интересный вопрос. Но поверьте, это не связано с архитектурой CSV, потому что продукт одинаков у всех заказчиков, и в абсолютном большинстве случаев CSV всё-таки работает корректно. Вы можете не верить мне на слово а пройтись по форумам и посмотреть, какие именно проблемы в основном возникают у пользователей. Почему-то так получается, что обычно это не проблемы с CSV.

    К сожалению, данных для того, чтобы полностью решить вашу проблему, у нас сейчас недостаточно. Я могу лишь предложить пару идей.

    а) обновить все компоненты решения до текущех версий, рекомендованных производителем (например, последние Firmware для SAN и контроллеров, последние DSM в случае использования MPIO и так далее).

    б) провести повторную проверку (Validation) кластера — и убедиться в том, что не возникает ни предупреждений, ни ошибок.

    в) проверить журналы событий кластера и всех его узлов на предмет ошибок или подозрительных сообщений. То же касается серверов VMM и библиотеки.

    г) убедиться, что хватает производительности (как SAN, так и обычной сети, по которой идёт передача образа из библиотеки; равно как и серверам библиотеки и VMM).

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

  7. Alex A says:

    Нет не имеет. Равно как и бэкап любыми сторонними средствами, в которых CSV официально завялена.

    Поддержка CSV решением нужна на деле не для бэкапа, а для восстановления. Чтобы процесс копирования восстанавливаемых файлов на том инициировался через Cluster API, через узел-координатор, а не простым копированием файлов на LUN с импортом.

    DPM2010 восстанавливает на CSV корректно. Для вас визуально нет разницы, лежит ВМ на CSV или на выделенном LUN.

  8. Alex A says:

    Эти статьи уже несколько месяцев как написаны и лежат в загашнике. Артём повесит как-нибудь )))

  9. Alex A says:

    Смягчил акцент в первом комментарии. Лучше?

    Могу спрятать наше обсуждение его если устроит.

  10. Alex A says:

    Я не говорил “плохо”. Закрытость означает невозможность сторонним разработчикам писать свои решения по резервному копированию, например. Микрософт бы дерьмом закидали, предложи он такую систему, которая бы не позволяла себя бэкапить веритасами, тиволями,.. или требовала бы для начала использовать DPM, а лишь потом передавать это сторонним решениям.

    Выпусти мы новую систему, было бы пара лет пустоты на рынке стороннего ПО, а в нашей ситуации это некстати. Вот года через два за 50% рынка перевалим, тогда и представим новую систему. Наработки уже есть.

  11. Pronichkin says:

    Верно. Для резервного копирования (вообще, а не только CSV) может применяться два способа: просто копирование файлов и VSS. Очевидно, что первый способ не подходит для запущенных виртуальных машин, остаётся второй. Далее, для VSS можно использовать аппаратные провайдеры или программный. В случае использования программного провайдера требуется копировать виртуальные машины строго последовательно, а не одновременно. Подробности об этом есть в документации по DPM.

  12. Anonymous says:

    Интересует вопрос о совместимости CSVFS с FSRM

    У меня щас запущен 4х нодовый SO файловый кластер на котором я разместил при помощи политики Folder Redirection

    пользовательские данные, когда пытаюсь прикрутить  контроль FSRM выдаёт ошибку о несовместимости файловой системы.

    Что делать ?

    Будет ли поддержка CSVFS с FSRM ?

  13. RuStn says:

    И всё же необходимо было больше пояснений, да и статью бы пораньше…

    Начнём с того, что CSV это не решение (в смысле нормального решения как у VMware), а просто на скорую руку хакнутая NTFS.

    Ну давайте по порядку:

    NTFS может работать только с одним провайдером (точнее к ней может обращаться только один сервер, или же объект).

    В режиме доступа к NTFS таблице только один сервер (как тут написали узел-координатор).

    Другие сервера в кластере спрашивают у этого координатора, куда писать или где читать, и потом уже в режиме DirectIO работают с томом.

    НЕ КРАСИВО ПРЕЖДЕ ВСЕГО.

    Второе, это вытекуающее из первого, в этом режиме становиться не стабильно работающий кластер, всё время наровящий сломаться, а точнее делать всё, чтоб было плохо виртуальным машинам.

    При этом узел координатор иногда просто не хочет нормально работать с другими серверами, точнее не стабильно работать.

    По не понятным причинам, виртуальные сервера, которые разворачиваются с библиотеки например, не могут разместиться на этом томе. Обрыв с ничем не связанной ошибкой, а точнее тупо, ресурс назначения не доступен. Всё, просто так, повторное пинание задания, может продолжить копировать  на том, а может снова начать с начала.

  14. Михаил says:

    не совсем понял про paththrough диски – ВМ с таким диском живую миграцию может делать?

  15. Михаил says:

    2Alex – пассаж в сторону закрытости VMFS и того что это плохо как-то некрасиво прозвучал.

    Это не плохо, это по другому – и сторонние разработчики могут пользоваться соответствующими API.

  16. Михаил says:

    >>Я не говорил "плохо". Закрытость означает невозможность сторонним разработчикам писать свои решения по резервному копированию, например.

    хмммм….

    я не буду тут уводить в сторону от темы поста, скажу лишь что считаю данное утверждение неправильным. В контексте такого упоминания о конкуренте это как-то некрасиво.

  17. Andrew says:

    А по поводу бекапа CSV будет обещанная статья?

  18. Andrew says:

    Я так понимаю все же есть некоторые особенности бекапа CSV связанные с аппаратными провайдерами VSS. Если они не настроены, то при бекапе нескольких виртуальных машин в одной группе возникает ошибка одновременного множественного доступа к CSV.

  19. Andrew says:

    Как минимум DPM2010RC последовательно ничего не делает (без дополнительного "тюнинга"), только если вручную все виртуалки настроить на разные группы и поставить разное время резервного копирования.

    Возможно в DPM2010RTM он все-таки начнет делать бекапы последовательно, но проверить пока не успел.

  20. Andrew says:

    Мне кажется это все и является особенностями бекапа CSV с помощью DPM2010, пусть и не в явном виде.

  21. Andrew says:

    Алексей, с вашими доводами невозможно не согласиться, если смотреть на ситуацию со стороны человека знающего все нюансы настройки Hyper-V, SAN и DPM. И различающего тонкости реализации бекапа в разных случаях.

    Но, знаете как по-разному вам будут описывать разницу между ручной и автоматической коробкой передач в автомобиле люди, которые умеют ездить на механике и которые не умеют? (оффтоп)

    Алексей, я все-таки предложил бы (или попросил бы) написать на эту тему отдельную статью: с описанием этого "нюанса", о том как "донастраивать" DPM2010 на последовательное копирование (актуально не только для CSV) и про программные и аппаратные реализации VSS и VDS с примерами настройки. Мне кажется это все вполне кореллирует с темой вашего блога.

    Заранее спасибо.

  22. Дмитрий says:

    Добавлю насчет "красивости" реализации VMFS.

    Начнем с того, что ESX блокирует ВЕСЬ!!! LUN, во время множества операций (включение, выключение ВМ, вмоушн, создание выключение ВМ, расширение раздела, расширение тонких дисков! и т.п., таких операций много), в это время остальные хосты судорожно делают ретраи к целому тому. Красиво? Конечно 🙂 потенциально если у вас 32 узловой кластер и куча машин, это может привести к интересным ситуациям. (конечно в реальной жизни это редкость 🙂 )

    ESX использует резервации, которые могут по той же причине привести к потере производительности (http://www.vmware.com/pdf/vsphere4/r40/vsp_40_san_cfg.pdf – тут так и написано)

    Можно привести еще несколько примеров, но не холивара же ради 🙂

    Так что красота она красотой…

Skip to main content