Hyper-V и производительность. Часть 7 — Сравниваем производительность виртуальных дисков. Fixed/Dynamic/Pass-through


Прошло уже более года с публикации моей предыдущей заметки из цикла об измерении производительности Hyper-V. С тех пор вышла новая ОС Windows Server 2008 R2, которая принесла с собой вторую версию Hyper-V. Одним из заявляемых улучшений гипервизора является существенное повышение производительности в работе динамических виртуальных жёстких дисков дисков (Dynamic VHD). Сегодня мы сравним три основных способа подключения виртуальных дисков к виртуальной машине: pass-through — предоставление физического диска (или LUN) напрямую виртуальной машине; VHD Fixed — создание файла с виртуальным диском фиксированного размера; VHD Dynamic — создание файла с виртуальным диском с постепенным увеличением размера диска по необходимости.


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


В Windows Server 2008 Microsoft категорически не рекомендовала использовать динамические виртуальные диски в производственных средах из соображений производительности. С выходом Windows Server 2008 R2 заявлено, что все проблемы с производительностью динамических VHD дисков остались в прошлом, и теперь их можно использовать на промышленных нагрузках. Давайте сравним производительность сами и вынесем свой вердикт.


В нашем тесте сервер Dell PowerEdge 1950 подключен к хранилищу Dell AX150. Созданы три LUN по 10 гигабайт. Вирутальной машине с Windows Server 2008 R2 отданы три диска: динамический VHD диск G:; фиксированный VHD диск F:; pass-through диск E:. Производительность измеряется программой IOMeter.





Глядя на результаты можно заметить — pass-through диск всегда выигрывает в производительности. Задержка меньше, скорость выше. В среднем преимущество по сравнению с виртуальными дисками — 0.5-1%.


Глядя на преимущества динамических виртуальных дисков — такие как экономия дискового пространства, простота выделения, удобство резервного копирования, возможность создания дифференциальных дисков, возможность использования снимков (snapshots) в виртуальных машинах — по сравнению с совсем незначительными потерями в производительности, я для себя решил, что в абсолютном большинстве случаев я буду использовать теперь именно динамические виртуальные диски. Гнаться за 1% дисковой производительности, достигаемом выделением отдельного LUN определенного размера на каждый диск виртуальной машины, я не вижу смысла. Тем более, что этот 1% дисковой производительности в реальных задачах размоется в еще менее заметное значение, ибо большинство задач упирается совсем не в недостаток производительности дисков.


В качестве вывода этой заметки я бы рекомендовал всем — используйте динамические виртуальные диски с Windows Server 2008 R2 и Hyper-V. Это удобно, быстро и надёжно.

Comments (15)

  1. Alex A says:

    Размер блока приращивания динамического VHD диска равен 10МБ. Выделяется целиком, к фрагментации не ведёт.

    Отдельно есть тонкость с динамическими дисками и allignment размеров их секторов с размерами физических секторов на SAN – в некоторых специфических ситуациях с SAN, использующий thin provisioning с размером блока в 4КБ может появиться misallignment (динамический VHD к каждому своему блоку данных дописывает 512байт футер) – обычно разница производительности не превышеает нескольких процентов.

    Спецификация VHD доступна для вас тут: technet.microsoft.com/…/bb676673.aspx

  2. Anonymous says:

    Спасибо за статью.

  3. Alex A says:

    Давайте смотреть на конфигурацию.

    У вас есть узел с Hyper-V R2. Узел подключен к EVA.

    На узле установлен свежий драйвер HBA адаптера (Emulex, QLogic или OEM драйвер от HP)

    Вы создали виртуальную машину и презентовали ей напрямую диск – pass-through на виртуальный SCSI. В виртуальной машине установили свежие компоненты интеграции Hyper-V (R2 а не оставили старые).

    Как вы проводите тесты? Можно ли тот же тест провести на хосте с тем же диском, пока ВМ выключена?

  4. Alex A says:

    Не уберу, ибо это официальная рекомендация Microsoft. Существенной разницы в производительности нет.

    Мой опыт нескольких десятков проектов позволяет мне делать выводы и рекомендовать что-то на основе этого опыта, что я и делаю. Ваше право следовать этим рекомендациям или нет.

    Если у вас тормозят диски, значит вы сильно экономите и используете локальные хранилища (или NAS, что вообще undupported). Для промышленных решений с дисками на HP EVA или HP XP (и других аналогичного класса устройствах от разных вендоров) дисковая производительность не ограничивает виртуальные машины.

    Воспользуйтеся MAP 4.0 и HP Sizer (статья готова, будет на неделе) и посчитайте в своей ситуации. Вам дадут рекомендации какое хранилище вам нужно для *промышленной* эксплуатации консолидированных виртуальных решений.

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

  5. Alex A says:

    Можно и нужно.

    Вопросы со свободным местом следует решать другим способом.

    Первый (рекомендованный) способ, это грамотно настроенный мониторинг на хосте, который предупреждает администратора в случае наличия лишь 20% свободного места и инициирующий VMM PRO Tip при достижении более жестких значений (например 10% для warning и 5% для critical уровня). PRO Tip может делать разное – от простого переноса дисков (Quick Storage Migration) до временного выключения и сжатия (Disk Compact) виртуальных машин

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

  6. Vramin says:

    Тут не проверялась фрагментация vhd-файла. В рабочих условиях, если много файлов в одном хранилище, ситуация может отличаться.

    А вообще спасибо за обзор, у самого руки не успевают 🙂

  7. Olegk says:

    Согласен с Vramin. На вновь созданном динамическом диске производительность будет естественно соизмерима с фикседом.

    Попробуйте установить 5 ОС на динамические диски одновременно, а потом посмотрите производительность одного из них в сравнении с фиксированным.

  8. Sacode says:

    > ибо большинство задач упирается совсем не в недостаток производительности дисков.

    Жжете, товарищь! :)))

    Я наверное не в одном с вами мире живу. Или вы c HPC работаете? У меня, в основном, OLTP нагрузка (Exchange, SQL), а тут как раз диски и тормозят. 🙁

  9. Sacode says:

    P.S. Уберите, пожалуйста, последний обзац. Как уже заметили выше – тестирование недостаточное для таких утверждений, а люди у нас доверчивые.

  10. Denis Abramenko says:

    Коллеги ! В теории использование динамических дисков может привести к ситуации, когда место может закончиться на выделенном LUN.

    В Hyper-V Security Guide написано

    Microsoft recommends using fixed-sized VHD files for best performance, and to prevent virtual machines from unexpectedly running out of storage space.

    Или не успели поправить ? 🙂 В итоге можно ли использовать при проектировании среды, динамические диски  в промышленном решении?

  11. Sacode says:

    Ok. Раз это рекомендует МС, то, конечно.

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

    С DAS, дешевыми SAN, да и с некоторыми средними SAN’ами могу ожидать более существенную просадку по производительности в случае использования динамических VHD дисков.

    В общем-то этим и вызвано мое беспокойство по поводу однозначной рекомендации использовать динамические VHD.

  12. Sacode says:

    Кстати, у дорогих хранилищ есть такая штука как thin provisioning, которая позволяет добиться экономии места средствами самого хранилища при любой конфигурации dynamic/fixed/passthrough. Эта возможность в большой степени нивелирует преимущества динамических дисков. Так, мысли вслух…

  13. Sacode says:

    Гм. Вот собирались, как раз, использовать тонкую инициализацию для экономии места (динамические диски не рассматривались исходя из предыдущих рекомендаций МС), теперь, после статьи, встал вопрос – может использовать динамические диски?

    Можете описать преимущества которые мы можем получить по сравнению с использованием thin provisioning’а?

    В любом случае, спасибо за статью. 🙂

  14. Roman says:

    Есть вопрос про производительность Path Through дисков (c HP EVA 8100) в Hyper-V версии R2 (без R2 не пробовал).

    Виртуальная машина с дисками работает медленнее, чем сервер с локальными SAS дисками.

    Медленнее работают именно дисковые операции.

    Не может это упираться в VMBUS?

    Как такое можно объяснить?

  15. Андрей says:

    Какая фрагментация? =)

    Там блоки размером несколько мегабайтов выделяются, фрагментирование смешное. Я уже не помню цифр, сейчас (с выходом R2) вряд ли меньше 10 мегабайтов выделяется за раз, а скорее всего ещё больше.

Skip to main content