Использование динамической памяти в Hyper-V R2 SP1
Введение
В Windows Server 2008 R2 SP1 Microsoft предоставляет функцию динамической памяти для Hyper-V, которая обеспечивает более высокую плотность виртуальных машин на любом отдельном узле Hyper-V и динамически управляет требованиями к памяти виртуальных машин. В этой статье вы узнаете об архитектуре динамической памяти Hyper-V R2 с пакетом обновления 1 (SP1), о том, как настроить новые параметры памяти виртуальной машины и как интерпретировать новые столбцы состояния памяти в консоли диспетчера Hyper-V, которые позволяют отслеживать виртуальную память. динамическая балансировка памяти машины.
Выделение памяти в Hyper-V и Hyper-V R2
В выпусках Hyper-V и Hyper-V R2 виртуальная машина настраивается со статическим объемом памяти. Поэтому при создании виртуальной машины вы обычно задаете конфигурацию памяти, чтобы представлять максимальный объем памяти, который вы ожидаете от использования виртуальной машиной, хотя виртуальная машина может потреблять гораздо меньше памяти в течение большей части времени своего выполнения. Если Hyper-V или Hyper-V R2 не может выделить всю запрошенную память виртуальной машине при запуске, то запуск виртуальной машины завершается ошибкой, даже если при запуске требуется только часть выделенной памяти. Эта статическая модель выделения памяти оказывает прямое негативное влияние на плотность виртуальных машин, которая может быть достигнута с помощью Hyper-V и Hyper-V R2.
Динамическое выделение памяти в Hyper-V R2 SP1
В Hyper-V R2 SP1 Microsoft сохраняет вариант статического выделения памяти, но вводит новую функцию динамического выделения памяти виртуальной машины. Динамическая балансировка памяти поддерживает увеличение плотности виртуальных машин, а также регулировку памяти виртуальной машины на лету в зависимости от фактических требований к рабочей нагрузке. Динамическая память поддерживается как в Windows Server 2008 Hyper-V R2 SP1, так и в Microsoft Hyper-V Server 2008 R2 SP1. Поскольку функция динамической памяти реализована с использованием модели поставщика услуг виртуализации (VSP) и клиента службы виртуализации (VSC), она доступна только для операционных систем Windows, поддерживающих компоненты интеграции. В список поддерживаемых гостевых операционных систем входят:
- Windows Server 2003 Enterprise и Datacenter с пакетом обновления 2 (SP2) (32- и 64-разрядные версии)
- Windows Server 2003 R2 Enterprise и Datacenter с SP2 (32- и 64-разрядные версии)
- Windows Server 2008 Enterprise и Datacenter (32- и 64-разрядные версии)
- Windows Server 2008 R2 Enterprise и Datacenter (32- и 64-разрядные версии)
- Windows Vista Ultimate и Enterprise с пакетом обновления 1 (SP1) (32- и 64-разрядные версии)
- Windows 7 Максимальная и Корпоративная (32- и 64-разрядные версии)
Архитектура динамической памяти
Как показано на рис. 1, динамическая память реализована в родительском разделе с интерфейсом VSP пользовательского режима, который взаимодействует через VMBus с VSC режима ядра (синтетический драйвер) в дочернем разделе. При установке Windows Server 2008 R2 SP1 файлы Hyper-V, содержащие новые компоненты, показанные на рисунке, обновляются. Чтобы обновить поддерживаемую гостевую операционную систему, необходимо установить новые компоненты интеграции, поставляемые с Windows Server 2008 R2 с пакетом обновления 1 (SP1).
Рис. 1. Архитектура динамической памяти в Hyper-V R2 SP1
Одна из основных обязанностей динамической памяти VSC — сообщать о требованиях к памяти от гостевой операционной системы обратно в родительский раздел. В родительском разделе компонент Memory Balancer оценивает требования к выделению памяти для всего набора работающих виртуальных машин, а затем выбирает схему выделения и освобождения памяти для удовлетворения потребностей виртуальной машины.
VSC динамической памяти также взаимодействует с ядром Windows гостевой операционной системы для добавления и удаления памяти. По сути, ядро Windows гостевой операционной системы через VSC информируется о том, что для использования доступна дополнительная память. Удаление памяти из виртуальной машины осуществляется с помощью механизма «раздувания». Используя «раздувание», VSC высвобождает память из гостевой операционной системы, работая с собственными алгоритмами управления памятью, чтобы вернуть свободную память в VSC, или, если свободная память недоступна, путем подкачки на виртуальный диск, чтобы предоставить VSC запрошенную память. страницы. Очищенные страницы памяти, выделенные VSC, используются родительским разделом для увеличения объема памяти, выделяемой другим виртуальным машинам. Когда страницы памяти больше не нужны другим виртуальным машинам, VSC может освободить память для гостевой операционной системы, спустив баллон памяти.
Конфигурация динамической памяти
Даже после установки Windows Server 2008 R2 с пакетом обновления 1 (SP1) при использовании диспетчера Hyper-V для создания новой виртуальной машины по умолчанию указывается выделение статической памяти. Однако, как показано на рисунке 2, если вы откроете настройки виртуальной машины в диспетчере Hyper-V, вам будет предоставлено несколько новых параметров конфигурации памяти виртуальной машины.