Главная Virtualization, Windows, Новое Hyper-V R2: Cluster Shared Volumes, Direct IO, Redirected IO
  • Hyper-V R2: Cluster Shared Volumes, Direct IO, Redirected IO

    defragment-cluster-drives-200X200Cluster Shared Volume – это, по сути, надстройка над NTFS, позволяющая двум и более узлам кластера одновременно осуществлять запись в один и тот же физический LUN. Дело в том, что у каждого общего ресурса кластера всегда имеется узел-владелец (Owner). Для дисковых ресурсов, право на запись есть только у узла-владельца, и поэтому для того, чтобы запускать виртуальные машины одновременно на нескольких узлах кластера, и безболезненно мигрировать их с одного узла на другой – приходилось создавать отдельный LUN для каждой виртуальной машины. Это сильно усложняло администрирование, особенно когда виртуальными машинами и системами хранения данных управляли разные администраторы. CSV же позволяет нескольким узлам осуществлять запись в один физический LUN одновременно, так что можно хранить все VHD на одном и том же LUN’е, а виртуальные машины запускать на разных узлах. О том, как использовать CSV, я уже расказывал в своих более ранних статьях. Здесь я расскажу об особенностях работы CSV, а именно – о режиме прямого и перенаправленного ввода-вывода (Direct/Redirected IO).

    Посмотреть, в каком режиме работает CSV, можно в консоли управления кластерами:

    clip_image002

    Direct IO

    Для упрощения рассмотрим кластер из двух узлов и с одним Cluster Shared Volume. Первый узел (Node 1) является владельцем ресурса Cluster Shared Volume, или узлом-координатором (Coordinator Node).

    clip_image004

    На первом узле запущены две виртуальные машины – VM1 и VM2. Их виртуальные жесткие диски хранятся на CSV (VM1.VHD и VM2.VHD). Обращения к дисковому ресурсу идет через два потока: данные (на схеме обозначены красными стрелками) и метаданные – имена файлов, атрибуты и т.п. (обозначены синими стрелками). Поскольку сейчас обе виртуальные машины запущены на узле-координаторе, оба потока проходят внутри локальной системы через драйвер фильтра CSV.

    Теперь, допустим, мы переместили через Live Migration виртуальную машину VM2 на второй узел:

    clip_image006

    Тут уже все немного сложнее. Поток данных идет так же напрямую через драйвер фильтра CSV, затем драйвер NTFS, драйвер устройств хранения и по SAN к самой СХД. А вот метаданные от фильтра CSV уходят через SMB Redirector по обычной сети (LAN) на узел-координатор. Поэтому обращение с узла-координатора может проходить заметно быстрее.

    Redirected IO

    Помимо прямого ввода-вывода, есть так же режим перенаправленного ввода-вывода (Redirected IO). В таком режиме все обращения – как и данные, так и метаданные, идут по локальной сети через узел-координатор:

    clip_image008 

    Разумеется, из-за низкой (по сравнению с SAN) пропускной способностью сети, скорость доступа в таком режиме очень сильно упадет. Тем не менее, в некоторых случаях такой режим может понадобиться – например, при выходе из строя сегмента SAN, или при необходимости замены SAN-коммутаторов.

    Это пока все, что я хотел бы рассказать. Спасибо.

    Александр Косивченко

Комментарии

  1. «О том, как использовать CSV, я уже расказывал в своих более ранних статьях» — ссылки в студию 🙂

  2. Александр, у microsoft нет идеи обзавестись (купить, разработать) настоящей кластерной файловой системой, не в курсе?

  3. Александр,

    а режимами CSV как то можно управлять? Т.е. передавать роль координатора с одного узла на другой скриптом или командой powershell?

  4. Здравствуйте!

    В каких случаях CSV переходит в режим Redirected IO?

  5. @4

    Можно переназначить владельца ресурса. Для CSV coordinator node — это и есть владелец ресурса.

    @5

    Когда СХД с узла недоступна по FC/SAS/iSCSI, или когда необходим монопольный доступ к блочному устройству — в частности, при бэкапировании посредством VSS.

  6. @3 Мне самому бы хотелось это знать. Готов предположить, что разработки у них ведутся. В Windows 8 обещают новую версию гипервизора, так что если что-то такое и появится — то уже в Win8.

  7. @3 Андрей, а подскажите плз, что значит «настоящая кластерная система» и по каким параметрам не удовлетовряет ей использование CSV?

  8. @8 Подозреваю что имеется в виду кластерная файловая система общего назначения, не являющася узко заточенной под HV. Но могу и ошибаться.

  9. @8 Подозреваю что имеется в виду кластерная файловая система общего назначения, не являющася узко заточенной под HV. Но могу и ошибаться.

    да, это и имелось в виду. Что то типа meliofs или ocfs-будет?

  10. Достоверной информации у меня нет. Если что-то и будет — то явно не раньше выхода Windows 8. Там обещают новую версию гипервизора, так что может и CSV допилят до чего-то более интересного.

    Вообще, MS очень «заботится» о своих ISV-партнерах, и очень медленно их догоняет. Пример — Citrix. Вспомните их Metaframe, потом Presentation Server и наконец XenApp: стандартные службы терминалов Windows всегда были «на шаг позади» от актуальной на тот момент версии Citrix, догоняли ее в следующей версии Windows Server, но Citrix к тому времени был опять на шаг впереди. Другой пример — ISA Server: категоризацию URL и антивирусный движок к ней прикрутили только сейчас — через 10 лет существования продукта.

  11. Интересно, полезно и хорошо преподнесено. Есть только один вопрос, на схеме «Redirected IO» показано направление синей стрелочки только в одну сторону, в сторону координирующей ноды, я так понимаю еще нужно указать направление обратно, в сторону второй ноды. Нода два перед записью в LUN делает запрос к координирующей ноде, посылает метаданые и в ответ получает тоже какой то ответ с разрешением писать в определенные файлы(а может быть даже и блоки файловой системы.)

Опубликовать

Я не робот.