Freigeben über


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

  • Anonymous
    January 01, 2003
    Размер блока приращивания динамического VHD диска равен 10МБ. Выделяется целиком, к фрагментации не ведёт. Отдельно есть тонкость с динамическими дисками и allignment размеров их секторов с размерами физических секторов на SAN - в некоторых специфических ситуациях с SAN, использующий thin provisioning с размером блока в 4КБ может появиться misallignment (динамический VHD к каждому своему блоку данных дописывает 512байт футер) - обычно разница производительности не превышеает нескольких процентов. Спецификация VHD доступна для вас тут: technet.microsoft.com/.../bb676673.aspx

  • Anonymous
    January 01, 2003
    Спасибо за статью.

  • Anonymous
    January 01, 2003
    Давайте смотреть на конфигурацию. У вас есть узел с Hyper-V R2. Узел подключен к EVA. На узле установлен свежий драйвер HBA адаптера (Emulex, QLogic или OEM драйвер от HP) Вы создали виртуальную машину и презентовали ей напрямую диск - pass-through на виртуальный SCSI. В виртуальной машине установили свежие компоненты интеграции Hyper-V (R2 а не оставили старые). Как вы проводите тесты? Можно ли тот же тест провести на хосте с тем же диском, пока ВМ выключена?

  • Anonymous
    January 01, 2003
    Не уберу, ибо это официальная рекомендация Microsoft. Существенной разницы в производительности нет. Мой опыт нескольких десятков проектов позволяет мне делать выводы и рекомендовать что-то на основе этого опыта, что я и делаю. Ваше право следовать этим рекомендациям или нет. Если у вас тормозят диски, значит вы сильно экономите и используете локальные хранилища (или NAS, что вообще undupported). Для промышленных решений с дисками на HP EVA или HP XP (и других аналогичного класса устройствах от разных вендоров) дисковая производительность не ограничивает виртуальные машины. Воспользуйтеся MAP 4.0 и HP Sizer (статья готова, будет на неделе) и посчитайте в своей ситуации. Вам дадут рекомендации какое хранилище вам нужно для промышленной эксплуатации консолидированных виртуальных решений. Тестовые стенды с локальными дисками я не рассматриваю, виртуализация выросла из этой песочницы.

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

  • Anonymous
    December 14, 2009
    Тут не проверялась фрагментация vhd-файла. В рабочих условиях, если много файлов в одном хранилище, ситуация может отличаться. А вообще спасибо за обзор, у самого руки не успевают :-)

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

  • Anonymous
    December 16, 2009
    > ибо большинство задач упирается совсем не в недостаток производительности дисков. Жжете, товарищь! :))) Я наверное не в одном с вами мире живу. Или вы c HPC работаете? У меня, в основном, OLTP нагрузка (Exchange, SQL), а тут как раз диски и тормозят. :(

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

  • Anonymous
    December 16, 2009
    Коллеги ! В теории использование динамических дисков может привести к ситуации, когда место может закончиться на выделенном 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. Или не успели поправить ? :-) В итоге можно ли использовать при проектировании среды, динамические диски  в промышленном решении?

  • Anonymous
    December 17, 2009
    Ok. Раз это рекомендует МС, то, конечно. Только Вы бы упомянули, что ориентируетесь только на SAN хранилища высшего ценового диапазона. Если у хранилища непрямая адресация, то там и так будет фрагментация и фрагментация VHD особо ситуации не изменит, да и рассчитано такое решение на большую консолидацию и отлично сравляется с нагрузкой со случайным доступом. С DAS, дешевыми SAN, да и с некоторыми средними SAN'ами могу ожидать более существенную просадку по производительности в случае использования динамических VHD дисков. В общем-то этим и вызвано мое беспокойство по поводу однозначной рекомендации использовать динамические VHD.

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

  • Anonymous
    December 17, 2009
    Гм. Вот собирались, как раз, использовать тонкую инициализацию для экономии места (динамические диски не рассматривались исходя из предыдущих рекомендаций МС), теперь, после статьи, встал вопрос - может использовать динамические диски? Можете описать преимущества которые мы можем получить по сравнению с использованием thin provisioning'а? В любом случае, спасибо за статью. :)

  • Anonymous
    January 12, 2010
    Есть вопрос про производительность Path Through дисков (c HP EVA 8100) в Hyper-V версии R2 (без R2 не пробовал). Виртуальная машина с дисками работает медленнее, чем сервер с локальными SAS дисками. Медленнее работают именно дисковые операции. Не может это упираться в VMBUS? Как такое можно объяснить?

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