`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Игорь Шаститко

Windows Server 2008 R2 SP1 Beta: Динамическое распределение памяти виртуальных машин Hyper-V

+66
голосов

Итак, то, о чем так долго говорили большевики, и еще больше – чем постоянно интересовались пользователи виртуализации от Microsoft – свершилось. Очень ожидаемый механизм динамического распределения физической памяти сервера-хоста между несколькими виртуальными машинами согласно их “потребностям текущего момента” стал доступен в бета-версии пакета обновлений Windows Server 2008 R2 Service Pack 1.

Теперь можно будет не так тщательно “вымеривать” требуемые объемы памяти на физических хостах, и, самое главное, теперь “лишняя” память, которая распределена для одной виртуальной машины и не используемая в данный момент ею, будет отдаваться другой виртуальной машине, если та нуждается в дополнительной памяти для работы своих приложений. Удобно и полезно? – вполне...

Остается только вопрос – “как настраивается и работает динамическое распределение памяти в Windows Server 2008 R2 SP1”? Все очень просто:

Технические требования? – в качестве физического хоста Hyper-V должен обязательно выступать сервер под управлением Windows Server 2008 R2 SP1. В качестве гостевых виртуальных машин могут выступать как ОС с Service Pack 1, так и без него. В случае, если вы планируете использовать в качестве гостевой ОС предыдущие версии Windows Server 2008 или Windows 7 – вам обязательно надо будет обновить ОС до новой версии Integration Services, поставляющихся с клиентом Hyper-V Virtual Machine Connection. Это можно сделать из меню клиента Actions->Insert Integration Services Setup Disk и далее следовать предложениям мастера установки в обновляемой гостевой ОС. Кстати, поддержка динамического распределения памяти для гостевых ВМ под управлением Windows Server 2003 в Integration Services тоже присутствует.

Windows Server 2008 R2 SP1 Beta Динамическое распределение памяти виртуальных машин Hyper-V

 Как это работает? – очень просто! И, как понятно по названию, непосредственного участия ИТ-администратора, кроме, собственно, начальной настройки параметров памяти ВМ, не требуется. :) В механизме динамического распределения памяти сочетаются 2 технологии – уже хорошо зарекомендовавшая себя в работе на “реальном железе” технология горячего добавления памяти, поддерживаемая ОС Windows и технология вытеснения “лишней” памяти по принципу “пузырей-баллонов” (balloon  memory). Суть работы крайне прост – при старте виртуальной машине устанавливается минимальный, указанный вами, объем ОЗУ (например, 1024МБ). При этом есть второй параметр управления объемом памяти – максимальное значение памяти (пусть 8192МБ), а также предел свободной памяти в процентах у гостевой ОС в текущий момент, после которого система виртуализации Hyper-V будет стараться добавить память виртуальной машине “на ходу”. Гостевая ОС стартует и “видит” ровно столько памяти, сколько ей назначили по минимуму, т.е. 1024МБ. Как только ее процессы, подгребая под себя память, займут ее больше, чем указано в пределе по процентам – начинается динамическое добавление памяти.

Процесс добавления памяти ВМ крайне прост, если у физического хоста Hyper-V есть свободная ОЗУ – просто “откусывается” часть физической памяти “по потребностям” ВМ (т.е. может быть добавлено и 10МБ, и 500МБ) и добавляется механизмом горячего добавления памяти гостевой ОС.

Если же у физического хоста нет свободной памяти – то здесь вступает в работу вторая часть механизма динамического распределения памяти SP1 – драйвер баллоного вытеснения памяти у других, уже работающих, виртуальных машин. Здесь процесс тоже достаточно прост – используя, в дополнение к параметру процентного отношения свободной памяти у гостевых ОС, еще один параметр настройки памяти каждой виртуальной машины – а именно – приоритет использования памяти этой машиной относительно других работающих ВМ – Hyper-V определяет будущие “жертвы”, у которых имеется неиспользуемая в данный момент память и запускает в них процесс “надувания пузыря”. Фактически – это означает, что системный balloon-процесс выполняет заполнение памяти сверху до указанного предела и после Hyper-V просто передает освободившееся адрессное пространство той виртуальной машине, которая запросила расширение памяти.

Есть еще несколько нюансов в работе механизма динамического распределения памяти в Windows Server 2008 R2 Service Pack 1 – во-первых, при добавлении гостевая ОС “видит” именно столько памяти, сколько ей добавлено “на ходу”, но при освобождении памяти – эта цифра не уменьшается, поскольку ОС имеет механизмы только горячего добавления, но не удаления памяти. Т.е. допустим, в процессе работы наша гостевая ОС успела “захомячить” 6975МБ памяти из обещанных ей 8192МБ и все утилиты мониторинга будут показывать именно эту цифру. Но вдруг пришла пора делиться награбленным – и гостевую ОС через баллоный метод заставят “отдать” часть свободной памяти, пусть 2400МБ – но это не означает “снять ее физически”, а значит, все утилиты самой ОС будут показывать всё теже 6974МБ и только оснастка управления Hyper-V будет отображать реальное состояние дел в гостевой ОС и показывать 6975-2400=4575МБ используемой ОС ОЗУ.

Во-вторых – такие вот метания памяти туда-сюда делают не очень удобным параметр указания оставшейся свободной памяти в процентах – 25% от 2ГБ – это не совсем то, что 25% от 6ГБ и реакция на “окончание” памяти у гостевой ОС может быть несколько преждевременной.

И, в-третьих, самая главная нагрузка при работе динамического распределения памяти ляжет на физический хост, которому снова, как в старые добрые времена Hyper-V версии 1, придется заниматься обсчетом всего этого добра на физических процах, отбирая некоторые, пусть и в пределах десятка процентов, процессорные ресурсы на работу этих механизмов в Hyper-V. Хотя, если честно, последние Xeon x56xx своей производительностью просто пугают. ;)

А сценарии использования и рекомендации от Microsoft по использованию динамического распределения памяти в виртуальных машинах, думаю, мы увидим в ближайшее время. Мое личное мнение – на 20-30% уплотнить серверы получится, особенно – те из ВМ, которые обеспечивают функции работы инфраструктуры.

И, в завершение всего выше сказанного – небольшая демонстрация того, как в жизни ведет себя Windows Server 2008 R2 Service Pack 1 и та его часть, которая обеспечивает механизм Dynamic Memory:

+66
голосов

Напечатать Отправить другу

Читайте также

Интересно, но как то страшно на боеввых серверах такое чудить. Лучше уж старым дедовским методом при потушенных VM менять объём.

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT