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.aspxAnonymous
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 мегабайтов выделяется за раз, а скорее всего ещё больше.