Новости Статьи VMware Veeam StarWind Microsoft ИТ-ГРАД Citrix Symantec 5nine События Релизы Видео Контакты Авторы RSS
Виртуализация и виртуальные машины

Виртуализация vSphere, Hyper-V, XenServer и Red Hat

Более 4680 заметок о виртуализации и виртуальных машинах VMware, Microsoft, Citrix, Red Hat

VM Guru | Ссылка дня: PowerCLI Extensions теперь поддерживает PowerCLI 11.0

Память Persistent memory (PMEM) в VMware vSphere - что это такое, как работает и насколько быстро?


В последней версии платформы виртуализации VMware vSphere 6.7 появилась новая возможность - поддержка Persistent Memory (PMEM). Это новый вид памяти, который покрывает разрыв между оперативной памятью (RAM) и дисковой памятью (Flash/SSD) с точки зрения быстродействия и энергонезависимости.

PMEM имеет 3 ключевые характеристики:

  • Параметры задержки (latency) и пропускной способности (bandwidth) как у памяти DRAM (то есть примерно в 100 быстрее, чем SSD).
  • Процессор может использовать стандартные байт-адресуемые инструкции для сохранения данных и их подгрузки.
  • Сохранение значений в памяти при перезагрузках и неожиданных падениях устройства хранения.

Таким образом, память PMEM находится в следующем положении относительно других видов памяти:

А ее характеристики соотносятся с SSD и DRAM памятью следующим образом:

Такие характеристики памяти очень подойдут для приложений, которым требуется сверхбыстродействие, при этом есть большая необходимость сохранять данные в случае сбоя. Это могут быть, например, высоконагруженные базы данных, системы тяжелой аналитики, приложения реального времени и т.п.

На данный момент vSphere 6.7 поддерживает 2 типа решений PMEM, присутствующих на рынке:

  • NVDIMM-N от компаний DELL EMC и HPE - это тип устройств DIMM, которые содержат как DRAM, так и модули NAND-flash на одной планке. Данные передаются между двумя модулями при загрузке, выключении или любом событии, связанном с потерей питания. Эти димы поддерживаются питанием с материнской платы на случай отказа. Сейчас обе компании HPE и DELL EMC поставлют модули 16 GB NVDIMM-N.
  • Модули Scalable PMEM от компании HPE (доступно, например, в серверах DL380 Gen10) - они позволяют комбинировать модули HPE SmartMemory DIMM с устройствами хранения NVMe (интерфейс Non-volatile Memory дисков SSD) и батареями, что позволяет создавать логические устройства хранения NVDIMM. Данные передаются между DIMMs и дисками NVMe. Эта технология может быть использована для создания систем с большим объемом памяти PMEM на борту.

При этом накладные затраты на использование виртуализации с устройствами PMEM не превышают 3%. Вот так выглядят примерные численные характеристики производительности памяти NVMe SSD и NVDIMM-N по сравнению с традиционными дисками:

С точки зрения предоставления памяти PMEM виртуальной машине, есть 2 способа в vSphere 6.7:

  • vPMEMDisk - vSphere представляет PMEM как обычный диск, подключенный к виртуальной машине через контроллер SCSI. В этом случае ничего не нужно менять для гостевой ОС или приложений. В таком режиме работают любые системы, включая старые ОС и приложения.
  • vPMEM - vSphere представляет PMEM как устройство NVDIMM для виртуальной машины. Большинство последних версий операционных систем (например, Windows Server 2016 и CentOS 7.4) поддерживают устройства NVDIMM и могут предоставлять их приложениям как блочные или байт-адресуемые устройства. Приложения могут использовать vPMEM как устройство хранения через тонкий слой файловой системы direct-access (DAX), либо замапить регион с устройства и получать к нему прямой доступ через байтовую адресацию. Такой режим может быть использован старыми или новыми приложениями, но работающими в новых версиях ОС, при этом версия Virtual Hardware должна быть не ниже 14.

Вот так это выглядит с точки зрения логики работы:

Если у вас хост VMware ESXi имеет на борту устройства с поддержкой PMEM, вы можете увидеть это в его свойствах в разделе Persistent Memory:

При создании новой виртуальной машины вы сможете выбрать, какое хранилище использовать для нее - стандартное или PMem:

Параметры диска на базе PMEM можно установить в разделе Customize hardware:

Также в свойствах виртуальной машины можно добавить новый жесткий диск в режиме vPMEMDisk:

Если же вы хотите добавить хранилище в режиме vPMEM, то надо указать соответствующий объем использования устройства в разделе New NVDIMM:

Надо отметить, что хранилище PMEM может быть на хосте ESXi только одно и содержит только устройства NVDIMM и виртуальные диски машин (то есть вы не сможете хранить там файлы vmx, log, iso и прочие). Для такого датастора единственное доступное действие - это просмотр статистик (при этом в vSphere Client на базе HTML5 датасторы PMEM вообще не видны). Вывести статистику по устройствам PMEM можно командой:

# esxcli storage filesystem list

Пример результатов вывода:

При включении ВМ, использующей PMEM, создается резервация этого устройства, которая сохраняется вне зависимости от состояния виртуальной машины (включена она или выключена). Резервация очищается при миграции или удалении ВМ.

Что касается миграции ВМ с устройством PMEM, то особенности этой миграции зависят от режима использования машиной устройства. Для миграции между хостами ESXi машины с PMEM включается не только vMotion, но и Storage vMotion, а на целевом хосте должно быть достаточно места для создания резервации от мигрируемой машины. При этом машину с хранилищем в режиме vPMEMDisk можно перенести на хост без устройства PMEM, а вот машину с vPMEM - уже нет.

В самом плохом случае при миграции ВМ с хранилищем NVMe SSD ее простой составит всего полсекунды:

Технологии VMware DRS и DPM (Distributed Power Management) полностью поддерживают память PMEM, при этом механизм DRS никогда не смигрирует машину, использующую PMEM на хосте, на сервер без устройства PMEM.

VMware недавно провела тестирование памяти PMEM с помощью различных бенчмарков и описала результаты в документе "Persistent Memory Performance on vSphere 6.7 - Performance Study". Приведем некоторые графики из него:

1. Бенчмарк FIO для latency:

vPMEM-aware - это использование устройства PMEM гостевой ОС, которая умеет работать с модулем PMEM на хосте через прямой доступ к постоянной памяти устройства.

2. Бенчмарк FIO для пропускной способности (Throughput):

3. Бенчмарк HammerDB для Oracle, тестирование числа операций в секунду:

4. Тест Sysbench для базы данных MySQL, тестирование пропускной способности в транзакциях в секунду:

Еще несколько интересных графиков и тестовых кейсов вы можете найти в документе, ссылка на который приведена выше. Ну а больше технической информации о PMEM вы можете почерпнуть из этого видео:

Документация на тему использования Persistent Memory в VMware vSphere 6.7 доступна тут и тут.


Таги: VMware, vSphere, Memory, Performance, Storage, Machines

Ошибка при обновлении VMware ESXi - No space left on device.


У некоторых пользователей VMware vSphere при обновлении серверов VMware ESXi возникает проблема - при выполнении команды "esxcli software vib update" в ответ возникает ошибка "No space left on device", хотя с дисками все в порядке, и на них много свободного места, в чем можно убедиться с помощью команды df -h.

Например, появляется вот такой вывод при попытке обновления:

[InstallationError]
[Errno 28] No space left on device
vibs = VMware_bootbank_esx-base_6.5.0-1.41.7967591
Please refer to the log file for more details.

В то же время вывод df -h говорит, что места на всех разделах достаточно:

Очень редко причина такого поведения оказывается проста - на хосте не хватает файловых объектов inodes, как описано в KB 1007638. Это объекты файловой системы, которых может быть до 640 тысяч на одном томе VMFS. Их используемое количество зависит от числа файлов в файловой системе в данный момент.

Проверить наличие свободных inodes можно командой stat -f /:

На картинке мы видим, что запас их еще весьма большой - они почти не израсходованы. Как правило, указанного лимита достичь очень и очень сложно, поэтому чаще всего упомянутое выше сообщение об ошибке связано совсем с другим. Но если вы все же достигли этого лимита, решение тут несложное - удалить какое-то число файлов с ESXi.

Например, можно найти лог-файлы и прочие файлы на хосте ESXi размером более 50 МБ, которые находятся НЕ на томах VMFS (чтобы не задеть логи ВМ), можно следующей командой:

find / -path "/vmfs" -prune -o -type f -size +50000k -exec ls -l '{}' \;

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

Между тем, в случае появления приведенной в начале статьи ошибки о недостатке свободного места очень вероятно, что хост ESXi не может аллоцировать достаточно оперативной памяти (RAM) для проведения обновления. В этом случае вам просто надо включить ESXi system swap, который будет размещен на одном из датасторов, куда будут сбрасываться страницы оперативной памяти при недостатке памяти во время обновления.

Сделать это можно, зайдя в раздел Manage > Settings > System Swap, после чего нажав Edit...:

Выберите датастор и нажмите Ok. Также это можно сделать с помощью функционала Host Profiles:

После выбора датастора для системного свопа обновите хост ESXi и перезагрузите его.


Таги: VMware, vSphere, ESXi, Troubleshooting, Memory, Storage, Update

Как VMware DRS работает с памятью при балансировке кластера - Active, Consumed и Configured Memory.


Как вы знаете, механизм динамической балансировки нагрузки VMware DRS используется для того, чтобы в условиях неравномерной нагрузки на хост-серверы VMware ESXi выравнивать ее за счет дачи рекомендаций по миграции виртуальных машин средствами vMotion на другие хосты, либо автоматического выполнения этих рекомендаций.

Давайте посмотрим как Distributed Resource Scheduler работает с оперативной памятью. В кластере DRS есть такая настройка "Memory Metric for Load Balancing", которая отключена по умолчанию, и если почитать к ней описание, то становится понятно, что DRS по умолчанию руководствуется параметром Active memory для балансировки.

У машины есть три основных параметра памяти, учитываемых DRS - это Active, Consumed и Configured Memory:

  • Configured - это память, указанная в настройках виртуальной машины, то есть ее максимальное значение.
  • Consumed - это память, которая использовалась виртуальной машиной с момента ее загрузки (а вы знаете, что при загрузке операционная система обращается к большему объему памяти, чем затем ее использует).
  • Active - это активные страницы памяти (RAM), которые сейчас используются гостевой ОС.

На картинке ниже показан пример - у машины 16 ГБ памяти, при этом при загрузке она наинициализировала страниц памяти на 12 ГБ, а активно использует только 5734 МБ.

Для того чтобы подчитывать используемую память, планировщик DRS подсчитывает working set из страниц Active Memory и прибавляет к нему 25% от разницы между Consumed и Active (это называется Idle Consumed Memory) на незапланированные резкие изменения нагрузки - и это число использует в своих вычислениях балансировки кластера:

В данном случае будет использоваться значение 5734+0,25*(12288-5734) = 7372,5 МБ (на картинке 7373 МБ). Кстати, это еще не все - к машине с памятью в 16 ГБ прибавляются накладные расходы (Overhead) в размере 90 МБ, поэтому DRS в своих вычислениях будет использовать значение 7373+90 = 7463 МБ.

Если же включить настройку DRS-кластера, упомянутую выше, то DRS в своих вычислениях будет использовать Consumed Memory и также прибавлять Memory Overhead:

В обновлении vSphere 6.5 update 1d клиент позволяет вам просматривать как метрику Active Memory, так и Consumed Memory.

Вот так выглядит картинка для сбалансированного кластера DRS (рекомендаций и ошибок нет):

Кстати, если вы посмотрите на Active Memory сбалансированного кластера, то там вполне может быть дисбаланс:

В этом нет ничего страшного, так как машины используют менее 20% active memory от памяти хоста, всем памяти хватает, и DRS решает, что балансировать машины в таком случае - это только тратить ресурсы CPU и сети на vMotion.

Переключимся теперь на Consumed memory:

Тут мы видим большой дисбаланс и разница между хостами более 20% от значений Consumed memory на них. Поэтому если мы включим настройку "Memory Metric for Load Balancing", то кластер DRS начнет работу по миграции виртуальных машин между хост-серверами. Итогом будет вот такая картина:

Вывод тут вот какой. Если у вас кластер работает без оверкомита (non-overcommitted) и есть большой запас по RAM на хостах, то, возможно, вам и следует поставить настройку "Memory Metric for Load Balancing", чтобы DRS балансировал хосты по consumed memory, а сами рекомендации по миграциям, например, можно применять в ручном режиме, чтобы контролировать ситуацию.


Таги: VMware, vSphere, DRS, Memory

Бесплатная книга "vSphere 6.5 Host Resources Deep Dive" (570 страниц!).


Автор известного технического блога о платформе VMware vSphere, Frank Denneman, совместно с одним из коллег выпустил весьма интересную книгу "vSphere 6.5 Host Resources Deep Dive".

В рамках 570-страничного талмуда авторы рассказывают все технические детали управления ресурсами на уровне хоста ESXi, такими как память, процессор, стек работы с хранилищами и сетевая архитектура. Довольно много содержимого книги посвящено архитектуре NUMA-узлов и оперативной памяти, механикам работы CPU и ядра VMkernel, а также прочим самым глубоким моментам программных и аппаратных компонентов хоста ESXi.

По уверению авторов книга покрывает, например, следующие технические вопросы:

  • Оптимизация рабочих нагрузок для систем Non-Uniform Memory Access (NUMA).
  • Объяснение того, как именно работает механика vSphere Balanced Power Management, чтобы получить преимущества функциональности CPU Turbo Boost.
  • Как настроить компоненты VMkernel для оптимизации производительности трафика VXLAN и окружений NFV.

В общем, книга очень крутая и мудрая. Скачать ее можно по этой ссылке.


Таги: VMware, Book, ESXi, Blogs, Storage, CPU, Memory

Как уменьшить объем потребляемой памяти VMware vCenter Server Appliance 6.5.


Как вы знаете, VMware vCenter Server Appliance 6.5 (vCSA) постепенно становится главным инструментом управления виртуальной инфраструктурой, но пока еще не так распространился, как vCenter под Windows. В версии vCSA 6.5 произошло увеличение требований к оперативной памяти с 8 ГБ до 10 ГБ, что достаточно много, если говорить о тестовых окружениях, где, например, вы испытываете модуль vCSA.

Поэтому на сайте virten.net появилась небольшая инструкция по тому, как отключить ненужное на сервере vCSA, чтобы он стал потреблять меньше памяти.

В vCSA реализован динамический механизм управления памятью, который позволяет, исходя из текущей конфигурации модуля, производить выделение или урезание памяти его компонентам. С помощью команды cloudvm-ram-size можно посмотреть, сколько каждый компонент потребляет от текущей RAM сервера:

# cloudvm-ram-size  -l
vmcad = 224
vmafdd = 22
vmware-rbd-watchdog = 100
applmgmt = 200
vmware-vsan-health = 100
vmware-vsm = 160
vmware-sps = 478
vmware-stsd = 538
vmware-vpostgres = 699
vmware-psc-client = 288 vmware-eam = 168
vmware-sts-idmd = 328
vmware-mbcs = 128
vcha = 46
vmware-vmon = 5
vmware-statsmonitor = 10
vmware-perfcharts = 357
vsphere-client = 853
vmonapi = 15
vmware-cm = 228
vmware-rhttpproxy = 31
vmdird = 22
vmware-imagebuilder = 50
vmware-sca = 128
vmware-vpxd = 1024
vsphere-ui = 853
vmware-vapi-endpoint = 256
vmware-content-library = 473
vmdnsd = 20
vmware-cis-license = 192
vmware-updatemgr = 164
vmware-vpxd-svcs = 1045
OS = 775
vmware-netdumper = 20 TOTAL(MB) = 10000

Нюанс здесь таков, что сервисы динамически масштабируются вверх и вниз по потреблению памяти, но нижней планкой всегда является отметка в 10 ГБ. Кстати, значения, до которых могут расти или падать потребления памяти сервисами vCSA, можно узнать в файле /etc/vmware/service-layout.mfx.

В итоге, единственный выход - это отключить ненужные в данный момент сервисы в тестовой среде. Вот эти вот сервисы позволят сэкономить вам 300 МБ памяти (напомним, что речь идет исключительно о небольшой тестовой среде, где они не будут востребованы):

Название сервиса Размер в МБ Назначение сервиса
vmware-rbd-watchdog 100 VMware vSphere Auto Deploy Waiter
vmware-mbcs 128 VMware Message Bus Configuration Service
vcha 46 VMware vCenter High Availability
vmware-netdumper 20 VMware vSphere ESXi Dump Collector

Вот эти сервисы можно отключить, если они вам не нужны, и они уже сэкономят больше памяти:

Название сервиса Размер в МБ Назначение сервиса
vmware-vsan-health 100 VMware VSAN Health Service
vmware-sps 478 VMware vSphere Profile-Driven Storage Service
vmware-perfcharts 357 VMware Performance Charts
vmware-content-library 473 VMware Content Library Service
vmware-updatemgr 164 VMware Update Manager
vsphere-ui 853 VMware vSphere Client (HTML5)

Обратите внимание, сколько памяти отъедает vSphere Client. Отключать вы его можете спокойно, если пользуетесь vSphere Web Client для управления виртуальной инфраструктурой.

Несколько пояснений к отключаемым сервисам:

  • VMware vSAN Health Service

Если вы не используете Virtual SAN, эту службу можно спокойно отключать. Об этом, кстати, написано в KB 2145308.

  • VMware vSphere Profile-Driven Storage Service

Этот сервис нужен только когда вы используете Virtual SAN, Virtual Volumes или другие сценарии управления хранилищем на базе политик. Соответственно, тоже идет под нож.

  • VMware Performance Charts

Фича отображения графиков производительности будет отключена, как на картинке ниже, ведь зачем вам отслеживать производительность тестовой системы? В графиках производительности будет выводиться ошибка:

Кстати, графики в режиме Advanced продолжат работать.

  • VMware Content Library Service

Если вы не будете использовать библиотеку с контентом для VMware vSphere, то ее тоже нужно отключать. Также вы получите предупреждение на вкладке Summary для этого компонента:

  • VMware Update Manager

Ну и обновления вам, скорее всего, не пригодятся для тестовой системы. Сам VUM выдаст вот такую ошибку:

  • VMware vSphere Client (HTML5)

Это самый жирный сервис. Если вы предпочитаете управлять инфраструктурой через Web Client - отключайте HTML5-модуль смело.

  • Как отключить ненужные сервисы?

Делается это в Administration > Deployment > System Configuration > Services. Там нужно выбрать нужный (а точнее ненужный) вам сервис и нажать "Stop":

Далее необходимо отключить автостарт этой службы в меню Actions > Edit Startup Type:

Ставим его в режим Manual (если нужно будет для каких-то целей - запустите руками):

Таким вот нехитрым образом можно освободить 3 ГБ памяти и продолжать "оптимизировать" ваш vCSA:

Название сервиса Размер в МБ Назначение сервиса
vmware-vsan-health 100 VMware VSAN Health Service
vmware-sps 478 VMware vSphere Profile-Driven Storage Service
vmware-perfcharts 357 VMware Performance Charts
vmware-content-library 473 VMware Content Library Service
vmware-updatemgr 164 VMware Update Manager
vsphere-ui 853 VMware vSphere Client (HTML5)
vmware-rbd-watchdog 100 VMware vSphere Auto Deploy Waiter
vmware-mbcs 128 VMware Message Bus Configuration Service
vcha 46 VMware vCenter High Availability
vmware-netdumper 20 VMware vSphere ESXi Dump Collector
TOTAL 2719

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

Название сервиса Размер в МБ Назначение сервиса
vmcad 224 VMware Certificate Service
vmafdd 22 VMware Authentication Framework
vmware-rbd-watchdog 100 VMware vSphere Auto Deploy Waiter
applmgmt 200 VMware Appliance Management Service
vmware-vsan-health 100 VMware VSAN Health Service
vmware-vsm 160 VMware vService Manager
vmware-sps 478 VMware vSphere Profile-Driven Storage Service
vmware-stsd 538 VMware Security Token Service
vmware-vpostgres 699 VMware Postgres
vmware-psc-client 288 VMware Platform Services Controller Client
vmware-eam 168 VMware ESX Agent Manager
vmware-sts-idmd 328 VMware Identity Management Service
vmware-mbcs 128 VMware Message Bus Configuration Service
vcha 46 VMware vCenter High Availability
vmware-vmon 5 VMware Service Lifecycle Manager
vmware-statsmonitor 10 VMware Appliance Monitoring Service
vmware-perfcharts 357 VMware Performance Charts
vsphere-client 853 VMware vSphere Web Client
vmonapi 15 VMware Service Lifecycle Manager API
vmware-cm 228 VMware Component Manager
vmware-rhttpproxy 31 VMware HTTP Reverse Proxy
vmdird 22 VMware Directory Service
vmware-imagebuilder 50 VMware Image Builder Manager
vmware-sca 128 VMware Service Control Agent
vmware-vpxd 1024 VMware vCenter Server
vsphere-ui 853 VMware vSphere Client (HTML5)
vmware-vapi-endpoint 256 VMware vAPI Endpoint
vmware-content-library 473 VMware Content Library Service
vmdnsd 20 VMware Domain Name Service
vmware-cis-license 192 VMware License Service
vmware-updatemgr 164 VMware Update Manager
vmware-vpxd-svcs 1045 VMware vCenter-Services
vmware-netdumper 20 VMware vSphere ESXi Dump Collector
OS 775  Operating System

Таги: VMware, vCSA, Memory

Как теперь работает технология дедупликации страниц памяти Transparent Page Sharing в vSphere 6.0.


Какое-то время назад мы писали о том, что технология дедупликации страниц памяти Transparent Page Sharing (TPS) с приходом больших страниц памяти становится ненужной (а в последних версиях vSphere и вовсе она отключена). Но это не значит, что сейчас TPS нигде не используется совсем - ведь большие страницы, при условии недостатка ресурсов памяти на хост-сервере, гипервизор ESXi может разламывать на маленькие, после чего дедуплицировать их.

Между тем, в последних релизах VMware vSphere, включая ESXi 6.0, появилась более гранулярная модель управления механизмом TPS, который можно задействовать для отдельных групп виртуальных машин (например, серверы обрабатывающие одни и те же данные, где вероятность дубликатов страниц высока). Называется этот механизм Salting (хэширование с солью).

Как известно, TPS производит хэширование страниц памяти виртуальных машин, после чего происходит сравнение хэшей на предмет их совпадения. Если они совпадают, то начинается побитовое сравнение этих страниц памяти, чтобы исключить ложное срабатывание дедупликации страниц (потому что, как известно, у двух разных исходных строчек теоретически может быть один хэш).

Если страницы полностью совпадают - вносятся изменения в таблицу страниц памяти, где для второй копии ставится просто ссылка на первую, а физически вторая копия страницы уничтожается.

При любой попытке записи в такую страницу со стороны виртуальной машины - мгновенно создается ее физическая копия с помощью механизма copy-on-write (CoW), и она уже перестает быть шаренной (каждая машина начинает использовать свою копию).

Так вот в последних версиях VMware vSphere механизм TPS работает не так просто. По умолчанию используется Salting, а в качестве этой самой соли используется UDID виртуальной машины, который всегда уникален для данного сервера vCenter. То есть перед снятием хэша со страницы памяти происходит добавление соли к исходным данным, а поскольку соль одинакова только для конкретной ВМ, то и дедупликация страниц со стороны TPS происходит только на уровне отдельной виртуальной машины (Intra-VM TPS).

Механизм Salting используется по умолчанию, начиная со следующих версий гипервизоров:

  • ESXi 5.0 Patch ESXi500-201502001
  • ESXi 5.1 Update 3
  • ESXi 5.5, Patch ESXi550-201501001
  • ESXi 6.0

Управлять этим механизмом можно из расширенных настроек хоста VMware ESXi (Advanced Settings, раздел Mem). По умолчанию используется расширенная настройка Mem.ShareForceSalting в значении 2. Это означает, что salting включен и работает Intra-VM TPS.

Если же мы поставим эту настройку в значение 0, как на рисунке выше, то соль перестанет добавляться к хэшу при работе алгоритма TPS, а значит он будет работать для всех виртуальных машин на хосте (Inter-VM TPS).

Ну и, как становится понятным, TPS можно включить для отдельной группы виртуальных машин на хосте ESXi, для чего нужно использовать одинаковую соль для этих виртуальных машин. Для этого в расширенных настройках виртуальной машины нужно добавить параметр sched.mem.pshare.salt с одинаковым значением у всех нужных вам ВМ (это также можно сделать и в vmx-файле).

В этом случае значением настройки Mem.ShareForceSalting должно быть 1 или 2 (разницы тут особой нет, кроме того, что если у вас используется значение 1, то при отсутствии соли включится Inter-VM sharing).

Ну и в таблице ниже приведем различия в работе алгоритма TPS для различных значений Mem.ShareForceSalting и в зависимости от заполненности sched.mem.pshare.salt для виртуальных машин.

Значение Mem. ShareForceSalting (настройка уровня хоста)

Значение sched.mem.pshare.salt (настройка уровня ВМ)

vc.uuid (свойство ВМ)

Значение соли в настройках ВМ

TPS между виртуальными машинами (Inter-VM)

TPS внутри каждой из ВМ (Intra-VM)

0

Игнорируется

Игнорируется

0

Да, между всеми машинами на хосте

Да

1

Установлено

Игнорируется

Используется sched.mem.pshare.salt

Только между ВМ с одинаковой солью

Да

1

Не установлено

Игнорируется

0

Да, между всеми машинами на хосте

Да

2

Установлено

Игнорируется

sched.mem.pshare.salt

Только между ВМ с одинаковой солью

Да


(по умолчанию)

Не установлено (по умолчанию)

Используется

Используется vc.uuid

No inter-VM TPS

Да

2

Не установлено

Отсутствует по какой-либо причине

Используется случайный номер для каждой ВМ

No inter-VM TPS

Да

Для более детальной информации вы можете обратиться к статье KB 2097593.


Таги: VMware, vSphere, Memory, Обучение, TPS, Performance, ESXi, VMachines

Transparent Page Sharing в VMware vSphere 6.0: разламывание больших страниц памяти.


Мы уже немало писали про технологию Transparent Page Sharing (TPS) в VMware vSphere, которая позволяет дедуплицировать страницы оперативной памяти на хост-сервере ESXi при недостатке физической памяти для виртуальных машин. Как мы уже писали тут и тут, в VMware vSphere 5.5 Update 3 и более поздних версиях технология TPS отключена (при дедупликации страниц между машинами), чтобы не нагружать хост понапрасну, поскольку в современных ОС используются большие страницы памяти (Large Memory Pages), вероятность дедупликации которых мала. В то же время, технологию TPS никто из vSphere не убирал, и ее можно в любой момент включить.

Как пишет знаменитый Дункан, В VMware vSphere 5.x есть 4 состояния памяти для хост-сервера относительно параметра minFree:

  • High (100% от minFree)
  • Soft (64% от minFree)
  • Hard (32% от minFree)
  • Low (16% от minFree)

Эти состояния определяют срабатывание определенных триггеров (об этом ниже). Например, если minFree для вашей конфигурации сервера равно 10 ГБ, то при переходе в состояние, когда занято 6,4 ГБ (Soft), произойдет определенное действие с точки зрения техник оптимизации памяти.

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

Например, при переходе из состояния High в Soft, большие страницы памяти "разламываются" на обычные, чтобы TPS мог их тут же дедуплицировать. Однако, это может сказаться не лучшим образом на производительности - у хоста и так возникает недостаток памяти, а тут еще его нагружают дедупликацией.

Поэтому в VMware vSphere 6.0 ввели новое состояние Clear (100% от minFree), а состояние High переопределили до значения 400% от minFree. Для чего это сделано? А вот для чего.

При недостатке памяти, хостом ESXi используется техника разламывания больших страниц памяти на обычные страницы, которые затем могут быть дедуплицированы с помощью TPS. Это делается затем, чтобы предотвратить свопирование страниц на диск, что является самым тормозным способом освобождения ресурсов. Так вот эта штука начинает активно работать при наличии свободной памяти в промежутке от High (400%) до Clear (100%), чтобы начать работать на еще не испытывающем острого недостатка ресурсов хосте. Но при этом TPS сразу не запускается.

Давайте посмотрим на таблицу:

Состояние памяти (State) Пороговое значение (% от minFree) Эффект при переходе в диапазон
High 400% Большие страницы разламываются на обычные, но TPS не запускается и ждет следующего цикла прохода дедупликации (по умолчанию 60 минут, минимально настраиваемое в расширенном параметре Mem.ShareScanTime время равно 10 минут)
Clear 100% Разламывание больших страниц и мгновенный запуск TPS
Soft 64% Включение TPS и техники Memory Ballooning
Hard 32% Включение TPS, Memory Compression и свопирования на диск
Low 16% Memory Compression + свопирование на диск + блокировка использования памяти

Это красивое решение - начать разламывать страницы заранее и не нагружать теряющий свободную память хост.

Но все что касается TPS, актуально только тогда, когда TPS включено. По умолчанию же эта техника выключена, а о том, как включить ее, написано вот тут.


Таги: VMware, vSphere, Memory, Performance, Обучение, ESXi

Что будет, если изменять Memory Reservation работающей виртуальной машины?


Как вы знаете, после запуска виртуальной машины на платформе VMware vSphere, в папке с машиной создается файл *.vswp, который предназначен для свопирования памяти ВМ в критической ситуации. Если у машины проявляется нехватка памяти на хосте VMware ESXi, и она не получает ее через механизм Memory Ballooning, то страницы памяти начинают сбрасываться в этот vswp-файл. Это самая плохая ситуация, так как структурная организация этого файла и то, как понимает своп операционная система, две большие разницы, а значит скорость работы существенно замедляется не только из-за того, что работа идет с диском вместо RAM, но еще и уходит время на поиск нужных страниц.

Соответственно, если у машины 4 ГБ оперативной памяти, то размер vswp-файла также 4 ГБ:

Если мы меняем Memory Reservation для виртуальной машины, то ее файл подкачки уменьшается на величину этого резерва - так как физическая память закрепляется за машиной и не возникнет условий, когда эту часть потребуется свопировать.

Но если сделать Memory Reservation для работающей ВМ (в данном случае 2 ГБ), то размер файла подкачки останется прежним:

Для того, чтобы vswp-файл уменьшился на величину Memory Reservation, надо перезагрузить ВМ - тогда он станет размером 2 ГБ:

Напомним, что у выключенной машины vswp-файла нет.

Но что если у включенной машины убрать (или изменить) Memory Reservation? Все просто - он автоматически увеличится до размера незарезервированной памяти ВМ. Убираем резерв в 2 ГБ и файл вырастает до 4 ГБ:

Ну и напомним формулу:

Swap (.vswp) file size = VM Configured Memory – VM reserved memory


Таги: VMware, vSphere, Memory, VMachines, Blogs

Отключенный Transparent Page Sharing на хосте VMware ESXi - сколько можно сэкономить, если включить его?


Осенью мы писали о том, что компания VMware планирует отключить технологию Transparent Page Sharing (TPS) в новых релизах платформы виртуализации VMware vSphere. Напомним, что TPS - это механизм поиска и удаления дубликатов страниц памяти в целях экономии физического пространства RAM (вместо самой дублирующейся страницы хранится только ссылка на нее).

Технологию TPS было решено прекратить использовать по двум причинам:

  • Использование в современных ОС больших страниц памяти (large memory pages) размером в 2 МБ делает намного менее вероятным появление дубликатов.
  • Использование одной копии страницы памяти несколькими ВМ создает потенциальные проблемы безопасности.

На данный момент статус отключенности TPS по умолчанию на хостах VMware ESXi таков:

  • В ESXi 5.5 U2d, запланированном на первый квартал 2015 года, TPS будет отключен.
  • В ESXi 5.1 U3, выпущенном 4 декабря 2014 года, TPS уже отключен.
  • В ESXi 5.0 U3d, запланированном на первый квартал 2015 года, TPS будет отключен.

Однако не стоит сбрасывать TPS со счетов - возможно, если вы используете старые ОС (Windows 2003) и инфраструктуру VDI на базе старых клиентских ОС, TPS сможет сэкономить вам какое-то количество памяти (если безопасность TPS вас не особенно заботит). Ну и напомним, что TPS отключена только для межмашинного взаимодействия и продолжает работать для внутримашинного.

Для этого в VMware сделали скрипт Host Memory Assessment Tool.ps1, который показывает количество памяти на хостах, которую можно сэкономить с помощью TPS.

Вот что он делает:

  • Соединяется с vCenter и определяет хосты ESXi
  • Позволяет включить SSH на хостах
  • Генерирует отчет об обследовании на экономию по TPS
  • Можно экспортировать результаты в CSV
  • Можно снова включить SSH, если нужно

Пока скрипт позволяет указать только одну пару логин-пароль на хостах ESXi, но надеемся это будет исправлено в следующих версиях.

Здесь вот какие значения в колонках:

  • Total Host Memory – объем физической памяти хоста (доступной vmkernel).
  • Host Mem Saved via TPS – объем памяти, которая сэкономлена TPS.
  • Host Mem Saved via TPS Zero Pages – объем памяти, которая экономится на нулевых страницах. Фактически такая экономия не актуальна для большинства случаев, так как сэкономленные нули означают, что недостатка ресурсов не наблюдается.
  • Potential Host Mem Savings Lost – а вот эта экономия уже на реально используемых страницах. Объем, указанный тут, показывает сколько можно потерять, отключив TPS на хосте.
  • Host Free Mem – объем свободной оперативной памяти (по данным vmkernel). Если свободной памяти меньше, чем значение в предыдущей колонке, то при отключении TPS будет своппинг.

Вот такая штука, можно проводить эксперименты (особенно полезно это будет для крупной инфраструктуры). Скрипт безопасен для памяти хостов, так как использует режим доступа к памяти только для чтения.

После запуска скрипта вам может потребоваться отключить или включить Transparent Page Sharing на хосте ESXi. В этом случае вам пригодится KB 2097593.


Таги: VMware, TPS, Memory, ESXi, vSphere

Еще одна причина не создавать снапшоты на VMware vSphere - число одновременно запущенных виртуальных машин.


Некоторое время назад мы писали заметку о том, "Почему снапшоты виртуальных машин в VMware vSphere - это плохо", да и вообще часто затрагиваем эту тему.

Ниже мы приведем еще один аргумент в пользу того, чтобы не создавать снапшоты виртуальных машин на постоянной основе (во временном их использовании нет ничего плохого).

Итак, в одной из статей мы писали про расширенную настройку VMFS Heap Size (размер кучи), которая косвенно определяет максимально доступный объем хранилищ на хосте.

Также мы писали о том, что параметр VMFS3.MaxHeapSizeMB еще в VMware vSphere 5.1 был увеличен до 640 МБ.

Однако есть и куча для механизма "Copy-on-Write" (COW), которая определяется расширенной настройкой COW.COWMaxHeapSizeMB - она ограничивает число одновременно запущенных на хосте виртуальных машин. Механизм COW работает на хосте, когда у машины есть снапшоты (дельта-диски).

По умолчанию это значение равно 192 МБ, но может быть увеличено до 256 МБ:

Также этот параметр можно узнать из командной строки:

~ # esxcfg-advcfg -g /COW/COWMaxHeapSizeMB
Value of COWMaxHeapSizeMB is 192

И установить его в максимальное значение:

~ # esxcfg-advcfg -s 256 /COW/COWMaxHeapSizeMB
Value of COWMaxHeapSizeMB is 256MB

Давайте посмотрим, как расходуется пространство этой кучи на хосте, в зависимости от параметров виртуальных машин на нем. Вот тут есть такая интересная формула:

X = (75 / 100 * COW_HEAP_SIZE) / ((B / (2 * 1048576) * 4 * S) * Y)

где:

X - это максимальное число запущенных виртуальных машин на хосте,
COW_HEAP_SIZE - размер кучи в байтах,
B - размер виртуального диска в байтах,
2 * 1048576 - это GDE Coverage (хз, что такое),
4 - это число байт на Root Entry,
S - число снапшотов каждого из виртуальных дисков,
Y - число дисков у машин.

Возьмем для примера машину с 5 дисками размером в 80 ГБ по 6 снапшотов у каждого при максимальном размере кучи в 256 МБ. Получим, что таких машин может быть запущено на хосте:

= (75 / 100 * 268435456) / ((85899345920 / (2 * 1048576) * 4 * 6) * 5)

Это примерно около 40 машин (всего лишь) - при максимально доступном размере кучи на VMware ESXi. Понятно дело, что мало где можно найти машины с 5 дисками, у каждого из которых по 6 снапшотов, но я видел подобные конфигурации пару раз.

Нетрудно понять, как в этой формуле влияют снапшоты на максимальное число запущенных виртуальных машин. Поэтому повторим еще раз: постоянные снапшоты - зло.


Таги: VMware, ESXi, Snapshots, vSphere, Memory

Технология Transparent Page Sharng (TPS) будет отключена по умолчанию в следующих релизах и обновлениях VMware vSphere.


Четыре с половиной года назад мы писали про то, что у технологии Transparent Page Sharing (TPS), которая по-умолчанию используется в VMware vSphere, нет будущего. Напомним, что TPS - это механизм поиска и удаления дубликатов страниц памяти в целях экономии физического пространства RAM (вместо самой дублирующейся страницы хранится ссылка на нее).

Технолония потеряла актуальность, когда вовсю стали применяться большие страницы памяти (Large Memory Pages), для которых размер страницы равен 2 МБ, а значит вероятность появления двух полностью одинаковых страниц очень низка.

Ну вот и пришло время эту технологию отключать. На днях компания VMware выпустила статью базы знаний "Security considerations and disallowing inter-Virtual Machine Transparent Page Sharing", в которой заявляется о том, что в будущих релизах платформы виртуализации VMware vSphere функции TPS будут по умолчанию отключены (хотя и доступны).

Это во многом связано с тем, что TPS (помимо негативного влияния на производительность хоста) - это еще и потенциальный источник проблем, связанных с неавторизованным доступом к данным оперативной памяти. Эти моменты основаны на аналитическом исследовании, выводы из которого опубликованы в статье базы знаний "Additional Transparent Page Sharing management capabilities in ESXi 5.5 patch October 16, 2014 and ESXi 5.1 and 5.0 patches in Q4, 2014 (2091682)".

Вот когда TPS будет отключен в VMware vSphere:

  • ESXi 5.5 Update release – Q1 2015
  • ESXi 5.1 Update release – Q4 2014
  • ESXi 5.0 Update release – Q1 2015
  • VMware ESX 6.x и более поздние версии

Более подробно о проблемах с TPS написано вот в этой статье на блогах VMware.

Если же вы хотите отключить этот механизм уже прямо сейчас, то нужно сделать следующее:

  1. Залогиниться на ESX\ESXi или vCenter Server через vSphere Client.
  2. Выбрать нужный хост и зайти на вкладку Configuration, затем перейти в Advanced Settings в секции Software.
  3. Выбираем раздел Mem и в нем устанавливаем значение параметра Mem.ShareScanGHz в 0.

После патча и обновлений ESXi механизм TPS можно будет включить следующим образом (Advanced Settings в секции Software):

  • Параметр Mem.ShareForceSalting (включение TPS на уровне всего хоста ESXi). Если значение стоит 0 - то значит TPS по-прежнему работает на хосте, если 1 - механизм отключен.
  • Параметр sched.mem.pshare.salt (ставится на уровне ВМ) позволяет включать/отключать TPS для отдельных виртуальных машин (например, старые Windows или линуксы - для них можно было бы включить). Когда параметр ShareForceSalting установлен в значение 1, то для нуждающихся в TPS машин в их Advanced Configuration нужно установить одинаковые значения "соли". Без этого TPS не работает - соответственно, он отключен.

Таги: VMware, vSphere, TPS, Memory, Performance, Security, Update

Число ядер на виртуальный процессор виртуальной машины в VMware vSphere - производительность.


Как многие знают, еще в прошлых версиях VMware vSphere появилась такая возможность, как задание нескольких виртуальных ядер для vCPU виртуальных машин (cores per socket), которое требуется, в основном, для случаев хитростей с лицензированием. То есть, например, для случаев, когда требуется покрыть лицензиями только виртуальные сокеты, а производительности нужно больше (как вариант - так можно поступать с лицензиями Windows Server не Datacenter Edition).

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

Рекомендации тут просты:

  • Оставлять по одному ядру на виртуальный процессор машин.
  • Если все-таки приходится изменять число ядер на vCPU, то нужно знать особенности организации архитектуры сервера.

Про второй пункт и идет речь ниже. Дело в том, что в VMware vSphere есть такая технология как vNUMA, которая работает при количестве vCPU равном 8 и больше для одной виртуальной машины и позволяет самым оптимальным образом отображать физическую архитектуру сервера на топологию NUMA-узлов виртуальной машины (по количеству и размеру).

Например, для процессора AMD Opteron 6174, который имеет два 6-ядерных процессора, объединенных в единый сокет - такая архитектура представляет собой 8 NUMA-узлов (две пары на один процессор). Таким образом для конфигурации без изменения cores per cpu для виртуальной машины технологией vNUMA будет поддерживаться 8 vNUMA узлов, что отлично отражает физическую архитектуру:

Это для случая, когда мы не изменяем количество ядер на vCPU. В VMware прогнали тест в гостевой ОС (какая-то внутренняя утилита) и получили базовое время исполнения этого бенчмарка для указанной конфигурации:

Если же в ВМ ядер на виртуальный сокет больше одного, то размер vNUMA будет равен количеству процессоров ВМ. Выставляем 2 сокета с 12 ядрами на сокет:

Получаем 2 vNUMA-узла, что не совпадает с конфигурацией оборудования:

Поэтому тест выполняется подольше:

А вот если сделаем целых 24 ядра на один сокет:

То получим всего один узел vNUMA:

И как следствие, самую низкую производительность ВМ:

65 секунд против 45 в первом тесте, что означает падение производительности на 31% для данного случая. Поэтому не меняйте просто так число ядер на процессор. Само же количество процессоров можно менять смело.

Дополнительную информацию по этому вопросу можно найти тут:


Таги: VMware, ESXi, vNUMA, Memory, VMachines, vSphere, Performance

Почти бесполезно, но интересно - параметр Mem.MinFreePct в конфигурации VMware vSphere и оптимизация памяти.


Недавно Duncan Epping опубликовал интересную статью о параметре Mem.MinFreePct, который есть в настройках сервера VMware ESXi из состава vSphere. По-сути, этот параметр определяет, какое количество оперативной памяти VMkernel должен держать свободным на хосте, чтобы всегда были доступные ресурсы под нужды системы, и хост не вывалился в PSOD.

В VMware vSphere 4.1 параметр Mem.MinFreePct составлял 6% и его можно было изменять с помощью следующей команды:

vsish -e set /sched/freeMemoryState/minFreePct <Percentage>

Например, вот так можно было установить Mem.MinFreePct в значение 2%:

vsish -e set /sched/freeMemoryState/minFreePct 2

Этак команда, кстати, не требует перезагрузки, но зато после перезагрузки значение Mem.MinFreePct не сохраняется. Поэтому данную команду, если требуется, нужно занести в /etc/rc.local (подробнее в KB 1033687).

Параметр этот очень важный, поскольку от него зависят пороги использования различных механизмов оптимизации памяти хоста ESXi. При этом, если памяти на хосте много (например, десятки гигабайт), то держать постоянно 6% свободной памяти может быть для кого-то расточительством. Поэтому, начиная с VMware vSphere 5.0, параметр Mem.MinFreePct является "плавающим" и устанавливается в зависимости от объема физической памяти на хосте ESXi.

Вот какие значения принимает Mem.MinFreePct в зависимости от того, сколько RAM есть на вашем физическом хост-сервере:

Процент необходимой свободной памяти
Объем памяти хоста ESXi
6% 0-4 ГБ
4% 4-12 ГБ
2% 12-28 ГБ
1% Больше 28 ГБ

А вот какие механизмы оптимизации памяти на хосте работают, если свободной памяти становится все меньше и меньше:

Состояние свободной памяти хоста Пороговое значение Какие механизмы оптимизации памяти используются
High 6% -
Soft 64% от значения MinFreePct Balloon, Compress
Hard 32% от значения MinFreePct Balloon, compress,swap
Low 16% от значения MinFreePct Swap

Интересно, конечно, но как-то бесполезно. Зачем загонять хост в такие лимиты? Лучше как минимум процентов 10 всегда держать свободными и своевременно покупать новые серверы.


Таги: VMware, vSphere, Memory, ESXi, Blogs

Memory Overhead виртуальных ПК на платформе VMware Horizon View 5.2.


Не так давно мы уже писали о накладных расходах на виртуализацию по памяти для виртуальных машин на платформе VMware vSphere, а сегодня поговорим о виртуальных ПК, которые предъявляют дополнительные требования к объему памяти сверх выделенного на обеспечение работы различных графических режимов в гостевой ОС.

Для начала отметим, что на платформе VMware Horizon View 5.2 появились следующие изменения по сравнению с предыдущими версиями в плане графических режимов виртуальных ПК:

  • Horizon View 5.2 не позволяет установить 24-битную цветовую палитру, теперь используется только 32-битная.
  • Horizon View 5.2 позволяет устанавливать разрешения только 1680×1050, 1920×1200 и 2560×1600. Дефолтным является 1920×1200.

Теперь о накладных расходах по памяти для виртуальных машин.

3D Software Rendering отключен

В этом случае расходы дополнительной памяти сервера на виртуальный ПК зависят от используемого разрешения и количества мониторов для виртуальной машины (значения приведены в мегабайтах):

Затраты памяти Число мониторов
Разрешение/Мониторы 1 2 3 4
1680×1050 6.73 21.54 32.30 43.07
1920×1200 8.79 28.13 42.19 56.25
2560×1600 31.25 62.5 93.75 125

Как вы знаете, в ESXi 5.0 появились возможности VMX Swap, которые позволяют создать swap-файл для сегментов данных процесса vmx, куда сбрасываются страницы памяти, но только в случае нехватки физической оперативной памяти на хосте. Он в разы уменьшает использование физической памяти на Overhead виртуальных машин в случае недостатка ресурсов.

Затраты хранилищ (в мегабайтах) на создание второго *.vswp файла для механизма VMX Swap рассчитываются следующим образом:

VMX SWAP Число мониторов
Разрешение/Мониторы 1 2 3 4
1680×1050 107 163 207 252
1920×1200 111 190 248 306
2560×1600 203 203 461 589

Как мы видим, для некоторых виртуальных ПК может потребоваться более полугигабайта дополнительного дискового пространства.

3D Software Rendering включен

Для виртуальных ПК отдельно или в пределах пула можно установить объем видеопамяти (VRAM, не путать с vRAM) доступный гостевой системе, что влияет на накладные расходы на виртуализацию.

В этом случае дополнительно требуемая физическая память будет рассчитываться как 64 МБ + 16 дополнительных МБ на каждый монитор.

Что касается SWAP-файла, то требуемый для него объем существенно выше, чем в первом случае. Он зависит от выделенной видеопамяти:

VRAM .vswp (МБ)
64 MB 1076
128MB 1468
256MB 1468
512MB 1916

То есть, в некоторых случаях дополнительные затраты на хранилище отдельной виртуальной машины могут достигать 2 ГБ. Чтобы это все учитывать при планировании инфраструктуры виртуальных ПК, можно воспользоваться калькулятором от Andre Leibovici, по материалам которого и написана эта заметка.


Таги: VMware, View, Memory, Enterprise, Blogs, vSphere, ESXi, VMachines

Memory Overhead виртуальных машин в VMware vSphere и возможности VMX Swap.


Как известно, виртуализация требует дополнительных ресурсов сверх тех, которые потребляет непосредственно виртуальная машина. Это называют накладными расходами на виртуализацию (так называемый virtualization overhead). Оверхэд есть как для процессора (примерно 3-5 процентов на хост-сервере), так и для оперативной памяти.

При этом для оперативной памяти накладные расходы гипервизора зависят от количества виртуальных процессоров (vCPU) и объема оперативной памяти, выделенных виртуальной машине. Мы уже писали о накладных расходах по RAM для виртуальных машин в VMware vSphere 4, где использовались следующие средние значения:

Информация эта взята из vSphere 4.0 Online Library.

В VMware vSphere 5 есть новая возможность, которая называется VMX Swap. При включении виртуальной машины гипервизор ESXi создает для нее vmx-процесс, управляющий различными структурами данных, под которые требуется физическая оперативная память. Ее объем, как было сказано, зависит от конфигурации ВМ - количества vCPU и RAM. Для снижения потребления этой памяти в ESXi 5.0 механизм VMX Swap создает swap-файл для сегментов данных процесса vmx, куда сбрасываются страницы памяти, но только в случае нехватки физической оперативной памяти на хосте.

VMX Swap создает файлы подкачки в директории с виртуальной машиной, через который и происходит загрузка и выгрузка страниц процесса vmx. Размещение этих файлов можно переопределить, добавив следующий параметр в расширенные настройки виртуальной машины:

sched.swap.vmxSwapDir

По умолчанию механизм VMX Swap включен и в критических ситуациях позволяет уменьшить overhead типичной виртуальной машины с 50 МБ до 10 МБ. Для виртуализации серверов такие порядки цифр может и не очень важны, зато для виртуализации настольных ПК (например, VMware View), где на одном сервере могут находиться десятки и даже сотни виртуальных машин, эта возможность может оказаться весьма кстати в условиях нехватки вычислительных ресурсов.

Если вы считаете, что ресурсов у вас достаточно и VMX Swap вам не нужен, можно его отключить, добавив значение FALSE в следующу расширенную настройку виртуальной машины:

sched.swap.vmxSwapEnabled

Ну а теперь посмотрим сколько оверхэда по памяти потребляет виртуальная машина уже в VMware vSphere 5 с включенным по умолчанию VMX Swap:

20.29 24.28 32.23 48.16
25.90 29.91 37.86 53.82
48.64 52.72 60.67 76.78
139.62 143.98 151.93 168.60

Эта информация уже из vSphere 5 Documentation Center. Как мы видим из таблицы, накладные расходы по памяти с учетом VMX Swap уже значительно меньше (в некоторых случаях до 8-9 раз). Как уверяют коллеги из VMware, в условиях недостатка ресурсов VMX Swap почти не влияет на производительность хост-сервера ESXi, ну а в условиях достатка - не влияет совсем.


Таги: VMware, vSphere, Memory, Performance, ESXi

Плакат VMware vSphere 5 Memory Management and Monitoring diagram.


Компания VMware в базе знаний опубликовала интересный плакат "VMware vSphere 5 Memory Management and Monitoring diagram", раскрывающий детали работы платформы VMware vSphere 5 с оперативной памятью серверов. Плакат доступен как PDF из KB 2017642:

Основные техники оптимизации памяти хостов ESXi, объясняемые на плакате:

Есть также интересная картинка с объяснением параметров вывода esxtop, касающихся памяти (кликабельно):

Пишут, что администраторы VMware vSphere скачивают его, распечатывают в формате A2 и смотрят на него время от времени, как на новые ворота. Таги: VMware, vSphere, Memory, ESX, esxtop, VMachines, Whitepaper, Diagram

Компания Microsoft официально подтвердила наличие клиентского гипервизора Hyper-V третьего поколения в Windows 8.


Мы уже писали о том, что блоггер Robert McLaws, заведующий веб-ресурсом windows-now.com, нашел в одном из билдов новой ОС Windows 8 несколько возможностей, относящихся к виртуализации на базе Hyper-V, вероятно, версии 3.0.

Теперь один из сотрудников компании Microsoft, Matthew John, занимающий должность Principal Lead Program Manager, сообщил о том, что действительно в Windows 8 появится клиентский гипервизор (3.0?). Его комментарий на эту тему можно прочитать здесь.

В этой записи приводится также ссылка на необольшое видео об особенностях использования Hyper-V в Windows 8 (если видео не открывается в вашем браузере, попробуйте Google Chrome)


Скачать видео:
High quality MP4 | Lower quality MP4

Коммуникация между виртуальными машинами на разных хостах будет поддерживаться (в том числе) и через Wi-Fi-адаперы:

С виртуальной машиной на хосте Windows 8 можно будет соединиться двумя способами: прямой доступ к VM Console или удаленный, с помощью Remote Desktop Connection.


Таги: Microsoft, Hyper-V, Windows 8, Memory

Что почитать? Несколько интересных открытых документов (Whitepapers).


Не так давно появилось несколько интересных открытых документов по продуктам Veeam, Microsoft и VMware, о которых стоит рассказать.

Первый - детальное описание техник оптимизации памяти Dynamic Memory от Aidan Finn, пишущего о продуктах компании Microsoft. Документ "Understanding, enabling, and configuring Windows Server 2008 R2 Hyper-V Dynamic Memory for virtualised workloads".

В документе детально описана концепция Dynamic Memory, технологии, появившейся в Microsoft Windows Server 2008 R2 SP1, рассмотрены варианты ее применения и настройки, а также даны лучшие практики по ее использованию в производственной среде. Документ весьма понятный и очень нужный для администраторов Hyper-V.

Второе - несколько интересных документов от Veeam Software, выпускающей продукт номер один Veeam Backup and Replication 5 для создания систем резервного копирования VMware vSphere. Документы написаны известными блоггерами, давно пишущими о виртуализации на базе VMware.

Третье - очередной документ "Project Virtual Reality Check Phase IV" от Login Consultants. Вы их уже знаете по заметкам у нас тут и тут. Коллеги сравнивают производительность различных продуктов и технологий в сфере виртуализации и выкладывают результаты в открытый доступ. На этот раз сравнивались продукты для виртуализации приложений в инфраструктуре VDI: Citrix Application Streaming (XenApp), Microsoft App-V и VMware ThinApp.

Интересно, что VMware ThinApp бьет почти все остальные варианты:

Ну и четвертое - три новых whitepapers от VMware по семейству продуктов vShield:

На этом пока все. Кстати, интересна ли будет вам рубрика "Что почитать?" или вы сами найдете что?


Таги: VMware, Veeam, Microsoft, Hyper-V, vSphere, vShield, Backup, Dynamic Memory, One, Security, ThinApp, XenApp, App-V

Бесплатный RAM Disk Emulator от StarWind.


Вы уже знаете компанию StarWind Software, которая делает продукт StarWind Enterprise для создания отказоустойчивых хранилищ iSCSI под VMware и Hyper-V, как нашего спонсора. У них, кстати, есть бесплатная версия, с которой очень удобно начать знакомство с продуктом.

Кстати, не тупите - участвуйте в конкурсе, чтобы выиграть Amazon Kindle. Всего-то нужно кинуть пару слов в комментарии.

А сегодня мы расскажем вам еще об одной бесплатной утилите StarWind под названием RAM Disk Emulator (Virtual RAM Drive). Это средство для создания RAM-дисков, то есть виртуальных дисков, выглядящих как локальные в системе, но созданные на основе участка оперативной памяти. Само собой, такие диски на порядок быстрее обычных.

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

RAM Disk Emulator прост в использовании. Устанавливаете, создаете новый диск с заданным объемом (максимум 1024 МБ для одного диска, дисков может быть несколько) и все. Можно поставить настройки форматирования RAM-диска и параметры его монтирования в ОС.

Скачать бесплатный StarWind RAM Disk Emulator можно по прямой ссылке: http://www.starwindsoftware.com/anonymous/download/RAMDiskSetup.exe.

И напоследок. Костян, мой добрый товарищ из StarWind, завел блог о технических вопросах, касающихся StarWind Enterprise. Заходим: http://constantinv.posterous.com.


Таги: StarWind, iSCSI, Бесплатно, Memory, RAM, Storage, Performance

Различия ESX и ESXi - Scratch partition.


Как вы знаете, VMware vSphere 5 будет построена только на базе гипервизора VMware ESXi (а ESX больше не будет) и выйдет уже в этом году, поэтому мы публикуем серию заметок о том, как перейти на ESXi с ESX (вот тут - раз и два).

Сегодня мы поговорим о таком различии, как Scratch Partition в ESXi. Scratch Partition - это специальный раздел на хранилище для хост-сервера, который не обязательно, но рекомендуется создавать. Он хранит в себе различную временную информацию для ESXi, как то: логи Syslog'а, вывод команды vm-support (для отправки данных в службу поддержки VMware) и userworld swapfile (когда он включен). Он создается, начиная с vSphere 4.1 Update 1 автоматически, и, если есть возможность, на локальном диске.

Так как данный раздел является необязательным, то в случае его отсутствия вся перечисленная информация хранится на ramdisk хост-сервера (который, кстати, отъедает память - 512 MB). И, так как это ramsidk, после перезагрузки эта информация (если у вас нет scratch partition) очищается. Поэтому неплохо бы этот раздел, все-таки, создать.

По умолчанию, этот раздел создается в системе vfat и составляет 4 ГБ. Это много. Почему так много? Объяснение такое, что местечко оставлено под будущие версии ESXi. Этот раздел может размещаться локально или на SAN-хранилище. При этом его могут использовать несколько хостов ESXi одновременно, поэтому рекомендуется сделать его гигов 20. Но для каждого должна быть своя locker-директория на этом разделе.

Через vSphere Client scratch partition настраивается так:

  1. Соединяемся с хостом ESXi из vSphere Client.
  2. Переходим на вкладку Configuration.
  3. Переходим в категорию Storage.
  4. Нажимаем правой кнопкой на datastore и выбираем Browse.
  5. Создаем уникальную директорию для хоста ESXi (например, .locker-ESXiHostname)
  6. Закрываем Datastore Browser.
  7. Переходим в категорию Software.
  8. Нажимаем Advanced Settings.
  9. Переходим в раздел ScratchConfig.
  10. Устанавливаем в качестве значения ScratchConfig.ConfiguredScratchLocation директорию, которую только что создали, например:

    /vmfs/volumes/DatastoreName/.locker-ESXiHostname

  11. Нажимаем OK.
  12. Перезагружаем ESXi.

Все это можно настроить и при автоматизированном развертывании VMware ESXi через kickstart. А можно и через vCLI и PowerCLI. О том, как это сделать, читайте в KB 1033696.


Таги: VMware, ESX, ESXi, Enterprise, Storage, Logs, Performance, Memory

Настройка Dynamic Memory в Windows Server 2008 R2 SP1 с ролью Hyper-V.


Вы уже знаете, что не так давно вышли окончательные версии платформы Microsoft Windows Server 2008 R2 SP1 и бесплатной ее версии Hyper-V Server 2008 R2 SP1, ориентированной только на задачи виртуализации. Одно из основных нововведений - функции Dynamic Memory для виртуальных машин, позволяющие динамически выделять и распределять оперативную память между ними.


Таги: Microsoft, Hyper-V, Memory, Blogs, Enterprise, Dynamic Memory, Performance

Вышел бесплатный Microsoft Hyper-V Server 2008 R2 SP1.


Как вы знаете, в феврале этого года компания Microsoft выпустила версию платформы Microsoft Windows Server 2008 R2 SP1, в которой было несколько нововведений в области виртуализации, а именно:

  • Возможность Dynamic Memory, которая позволяет перераспределять свободную память между гостевыми ОС виртуальных машин (у каждой машины есть гарантированный минимум, а используемая память может динамически расти до определенного предела). Для VDI сценариев, по словам Microsoft, плотность размещения виртуальных машин вырастает до 40% по сравнению с предыдущей версией Windows Server как раз за счет Dynamic Memory.
  • Remote FX - эти возможности позволяют пользователям работать с виртуальным ПК на базе Hyper-V с включенными функциями Windows Aero, смотреть full-motion видео, работать с приложениями Silverlight и запускать 3D-приложения с небольшими потерями производительности (технологии купленной компании Calista). Эти функции интегрированы с Remote Desktop Services (RDS).
  • Новый пакет New Linux Integration Services, включающий в себя все необходимые компоненты для оптимизации работы гостевой ОС.
  • Symmetric Multi-Processing (SMP) Support - для поддерживаемых ОС Linux виртуальная машина может иметь до 4 виртуальных процессоров (VP)
  • Возможность использовать до 12 виртуальных процессоров на 1 логический процессор хост-сервера
  • До 384 ВМ на хост и до 1000 ВМ на кластер Hyper-V

12 апреля вышла бесплатная версия платформы виртуализации Microsoft Hyper-V Server 2008 R2 SP1. Этот продукт представляет собой версию Windows Server, ориентированную только на исполнение задач виртуализации. Она полностью бесплатна - придется платить только за лицензии гостевых ОС. Удаленное управление таким сервером можно производить с помощью Windows 7 SP1 RSAT tool (поддерживаются только издания Enterprise, Professional или Ultimate Windows 7 для рабочей станции администратора).

Сравнение изданий Windows Server 2008 представлено на картинке ниже (для SP 1 ситуация аналогичная):

Скачать Microsoft Hyper-V Server 2008 R2 SP1 можно по этой ссылке.


Таги: Microsoft, Hyper-V, Бесплатно, Server, RemoteFX, Dynamic Memory, Blogs, Update

Управление ресурсами процессора (CPU) в Microsoft Hyper-V.


Ben Armstrong, занимающий позицию Virtualization Program Manager в компании Microsoft, опубликовал несколько статей о том, как работает распределение ресурсов процессора в платформе виртуализации Microsoft Hyper-V R2 (кстати, не так давно вышел RTM-билд SP1 для Windows Server 2008 R2).

Приводим краткую выжимку. В настройках виртуальной машины на сервере Hyper-V вы можете увидеть вот такие опции:

Virtual machine reserve

Эта настройка определяет процентную долю процессорных ресурсов хост-сервера, которые должны быть гарантированы виртуальной машине. Если хост на момент запуска виртуальной машины не может гарантировать эти ресусры - виртуальная машина не запустится. То есть вы можете запустить 5 машин с Virtual machine reserve в 20%, а 6-я уже не запустится. При этом неважно, используют ли эти 5 машин какие-либо ресурсы, или они вовсе простаивают.

Однако, данная настройка имеет значение только когда ощущается нехватка процессорных ресурсов. Если 4 из этих 5 машин используют по 4% процента CPU хост-сервера, а пятая хочет 70% - она их получит, но до того момента, пока остальным не потребуются ресурсы процессора. То есть, настройка Virtual machine reserve гарантирует, что машина будет иметь в своем распоряжении ресурсов не меньше, чем заданный процент ресурсов CPU - в условиях борьбы за ресурсы процессора между машинами хоста.

По умолчанию в качестве Virtual machine reserve стоит настройка 0. Это означает, что вы можете запускать виртуальных машин столько, сколько позволяют физически доступные ресурсы хост-сервера Hyper-V.

Virtual machine limit

Эта настройка также задается в процентах. Она показывает какой максимально возможный процент процессорных ресурсов виртуальная машина может использовать от мощности своих виртуальных процессоров (в зависимости от их количества). Используется эта настройка в двух случаях - когда на хосте запущены тестовые виртуальные машины, которые могут при определенных условиях "съесть" все ресурсы, а также, когда приложение в виртуальной машине написано криво и может вызвать нагрузку на процессор, затормозив таким образом остальные машины.

Эта настройка активна всегда, что означает, что машина никогда не возьмет ресурсов больше чем Virtual machine limit, даже если свободных ресурсов очень много. Поэтому выставлять ее нужно в исключительных случаях, а для контроля ресурсов лучше использовать Virtual machine reserve. Кроме того, надо помнить, что Virtual machine limit применяется сразу к нескольким виртуальным CPU - поэтому, если приложение в виртуальной будет давать нагрузку только на один виртуальный процессор - он будет ограничен 50% доступных для него ресурсов, в то время как остальные будут простаивать.

CPU relative weight

Эта настройка позволяет выставить относительный вес виртуальных процессоров машины относительно других виртуальных машин. CPU relative weight - это просто число в диапазоне от 1 до 10000, которое определяет пропорциональный вес машины относительно других (по умолчанию выставлено 100 для всех). Если для одной из машин поставить значение 200 - то в случае нехватки процессорных ресурсов на хосте Hyper-V она получит в два раза больше ресурсов CPU, чем какая-либо из других. Обратите внимание - настройка начинает работать только в случае нехватки процессорных ресурсов на хосте и не раньше.

Смысл этой настройки - разделение виртуальных машин по категориям приоритета использования ресурсов в случае их нехватки (например, 300 - высокий приоритет, 200 - обычный, 100 - низкий). Так как это все относительные величины - имейте в виду, что здесь нет гарантий точного количества ресурсов CPU, получаемых машиной. И еще один момент - если в вашей виртуальной инфраструктуре Hyper-V работают несколько администраторов, то каждый из них может пользоваться своей классификацией весов. Например, у одного это 100, 200 и 300, а у другого - 500, 1000 и 2000. Если каждый из них для своего хоста установит эти значения, а потом за счет Live Migration какая-либо из машин динамически переместится на другой хост - распределение весов сильно изменится, что может повлиять на работу систем в условиях ограниченности ресурсов CPU хост-сервера.

В четвертой части заметок Бен рассматривает вопрос - почему эти значения задаются в процентах, а не в мегагерцах как у VMware. Ответ таков - 1 GHz обладает разной производительностью на разных поколениях CPU, а также хосты могут обладать разной мощностью процессоров, что делает предпочтительным использование относительных значений вместо абсолютных.


Таги: Microsoft, Hyper-V, CPU, Windows, Memory, VMachines

Информация об использовании памяти виртуальными машинами VMware vSphere.


Как обычно, Duncan Epping написал отличный пост об использовании памяти виртуальными машинами на хостах VMware ESX. Постараемся объяснить это на русском языке. Итак, если открыть вкладку Summary в vSphere Client для виртуальной машины, мы увидим вот такую картину:

Здесь есть 2 главных параметра:

  • Memory - это то количество оперативной памяти, которое вы выделили виртуальной машине при создании. За это количество гостевая ОС не выйдет при ее использовании. Это же количество памяти вы увидите в гостевой ОС.
  • Memory Overhead - это количество памяти, которое может потребоваться гипервизору на поддержание работы виртуальной машины сверх используемой памяти (т.е. расчетные накладные расходы на виртуализацию, но не текущие).

Далее мы видим панель Resources, здесь есть такие показатели:

  • Consumed Host Memory - это количество физической памяти хоста ESX, выделенной виртуальной машине. Обычно это значение не больше значения Memory на предыдущей картинке. Но может быть и больше, поскольку Consumed Host Memory включает в себя и Memory Overhead, но не с картинки выше, а реально используемый гипервизором Overhead (о котором будет идти речь ниже). И важный момент - счетчик Consumed для Memory на вкладке "Performance" не включает в себя Overhead.
  • Active Guest Memory - это количество памяти, которое по мнению гипервизора VMkernel активно используется гостевой операционной системой. Вычисляется этот параметр на базе статистических показателей. То есть, если ОС не очень активно использует память, то можно ей ее немного подрезать в условиях нехватки ресурсов.

Теперь идем на вкладку "Resource Allocation". Здесь все немного сложнее:

Появляются вот такие показатели:

Для Host Memory (видим, что это 2187 МБ = сконфигурированная память 2048 МБ + Overhead):

  • Consumed - это, опять-таки, объем потребляемой виртуальной машиной физической памяти хоста ESX (постоянно меняется). И он включает в себя накладные расходы гипервизора по памяти.
  • Overhead Consumption - это текущий объем затрат памяти на поддержание виртуальной машины (здесь 42 МБ в отличие от расчетного в 110 МБ)

А формула такова: Consumed = Private + Overhead Comsumption

Для Guest Memory (2048 МБ сконфигурировано в настройках):

  • Private - это объем памяти физически хранимый хостом для виртуальной машины (см. формулу выше).
  • Shared - это объем памяти, который отдается другим виртуальным машинам от разницы между сконфигурированным объемом (Configured Memory) и потребляемым (Consumed). Суть в том, что ОС Windows при загрузке очищает всю память виртуальной машины, но потом эти пустые страницы приложениями не используются. Поэтому гипервизор отдает их другим ВМ, пока ВМ, владеющая памятью не потребует их. Эти страницы и есть Shared. Как мы видим, Private + Shared = Guest Memory.
  • Swapped - это объем памяти, ушедший в файл подкачки vswp. То есть это не файл подкачки Windows, а файл подкачки в папке с виртуальной машиной. Само собой этот показатель должен быть нулевым или совсем небольшим, поскольку своппинг, который делает ESX (а точнее VMkernel) - это плохо, т.к. он не знает (в отличие от Windows), какие страницы нужно складывать в своп, поэтому кладет все подряд.
  • Compressed - это объем памяти, который получен после сжатия страниц с помощью механизма Memory Compression (то есть, хранимый в VM Compression Cache).
  • Ballooned - это объем памяти, который забрал balloon-драйвер (vmmemctl), чтобы отдать ее другим нуждающимся виртуальным машинам.
  • Unaccessed - это память, к которой гостевая ОС ни разу не обращалась (у Windows - это близко к нулю, так как она обнуляет память при загрузке, у Linux должно быть как-то иначе).
  • Active - опять-таки, активно используемая память на основе статистики гипервизора.

На хорошем и производительном хосте VMware ESX метрики Compressed, Ballooned, Unaccessed - должны быть около нуля, так как это означает что машины не борются за ресурсы (то есть не сжимают страницы и не перераспределяют память между собой). Ну и, конечно, если показатель Active маленький, стоит задуматься об урезании памяти (но сначала посмотрите в гостевую ОС, она лучше знает, чем гипервизор, все-таки).

Ну и последняя секция Resource Settings:

  • Reservation, Limit, Shares, Configured - смотрим сюда.
  • Worst Case Allocation - это сколько будет выделено виртуальной машине при самом плохом раскладе (максимальное использование ресурсов), то есть вся память будет использоваться, да еще и накладные расходы будут (т.е., Configured + максимальный Overhead).
  • Overhead Reservation - это сколько зарезервировано памяти под Overhead гипервизором.

Ну и в заключение очень рекомендую документ "The Yin and Yang of Memory Overcommitment in Virtualization" - как раз для VMware vSphere.


Таги: VMware, vSphere, Memory, ESX, vCenter, Performance, Производительность, Blogs

Вышел Windows Server 2008 R2 SP1 Release Candidate - возможности.


Компания Microsoft объявила о доступности релиза-кандидата первого пакета обновлений (SP1) к серверной платформе Windows Server 2008 R2. Наиболее ожидаемые новые возможности продукта в плане виртуализации на базе Hyper-V - это техника Dynamic Memory и технология RemoteFX для оптимизации отображения пользовательских окружений (является частью семейства служб Remote Desktop Services, RDS - соответственно, версия RDP продвигается от 7.0 к 7.1).

Возможность Dynamic Memory позволяет перераспределять свободную память между гостевыми ОС виртуальных машин (у каждой машины есть гарантированный минимум, а используемая память может динамически расти до определенного предела). О Dynamic Memory в Hyper-V можно почитать вот в этих документах компании Microsoft:

Функции Microsoft RemoteFX позволят пользователям работать с виртуальным ПК на базе Hyper-V с включенными функциями Windows Aero, смотреть full-motion видео, работать с приложениями Silverlight и запускать 3D-приложения с небольшими потерями производительности (технологии купленной компании Calista). Рендеринг картинки происходит на стороне сервера, а клиенту посылаются сжатые битмапы (что-то подобное протоколу PCoIP от Teradici в VMware View 4.5). Соответственно, RemoteFX можно будет использовать для VDI-сценариев и терминальных серверов (кстати, обещают интеграцию RemoteFX в семейство технологий Citrix HDX в XenDesktop).

Подробнее о RemoteFX можно узнать из этого документа:

Delivering Business Value with Remote Desktop Services

А также из этой записи Брайана: Microsoft RemoteFX is now available via public beta. Here's our in-depth guide to how it works.

Скачать пробную версию Windows Server 2008 R2 SP1 RC можно по этой ссылке. Список новых возможностей представлен в документе "Windows Server 2008 R2 SP1 Reviewers Guide".


Таги: Microsoft, Server, Update, Dynamic Memory, RemoteFX, VDI, Citrix, VMware, Hyper-V

Резервирование памяти для хостовой ОС Windows для Microsoft Hyper-V.


Как вы знаете, новый релиз платформы виртуализации Microsoft Hyper-V R2 SP1 несет нам новую возможность Dynamic Memory, которая позволяет перераспределять свободную память между гостевыми ОС виртуальных машин (у каждой машины есть гарантированный минимум, а используемая память может динамически расти до определенного предела).

Но вот чтобы Dynamic Memory красиво работала при больших нагрузках на Parent Partition хоста (например, Hyper-V у вас установлен на рабочем ноутбуке), нужно гарантировать память основной хостовой системе. Делается это просто:

  • создаем в ветке реестра HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization ключ типа DWORD с именем memoryreserve
  • в качестве значения указываем число в мегабайтах для резервирования памяти для родительского раздела

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


Таги: Microsoft, Hyper-V, Dynamic Memory, Memory

Как работают техники оптимизации памяти в VMware vSphere 4.1.


Компания VMware выпустила очень интересный и рекомендуемый к прочтению администраторами VMware vSphere документ "Understanding Memory Resource Management in VMware ESX 4.1". В данном документе описывается, как гипервизор ESX / ESXi обращается с оперативной памятью хост-сервера виртуализации при исполнении виртуальных машин.

Подобный документ существовал у VMware и ранее, но теперь в нем добавилось описание техники Memory Compression, которая позволяет существенно экономить физическую память хост-сервера за счет сжатия страниц, которые должны были попасть в своп.

Также в этом документе указано, как можно управлять кэшем (Compression Cache), где лежат эти сжатые страницы памяти для виртуальной машины:


Таги: VMware, ESX, Memory, ESXi, vSphere, Memory Compression, TMC, Whitepaper

Memory Ballooning в VMware ESX - некоторые аспекты работы техник Overcommit.


Многим пользователям платформы виртуализации VMware vSphere / ESX известен такой механизм оптимизации работы виртуальных машин с оперативной памятью как Memory Ballooning (о нем хорошо написано в документе "Understanding Memory Resource Management in VMware ESX Server"). Если вкратце - то это техника гипервизора по работе с оперативной памятью, которая позволяет запустить на хосте ESX виртуальные машины, совокупная выделенная память которых больше суммарной памяти хоста.

Достигается это за счет использования драйвера vmmemctl.sys, поставляемого вместе с VMware Tools. Он позволяет "надуть" шар внутри гостевой ОС (balloon), который захватывает физическую память, выделенную этой ОС, и отдает ее другим гостевым операционным системам, которые в ней нуждаются. Этот balloon не позволяет гостевой ОС производить работу приложений с данной областью памяти, поэтому если им потребуется дополнительная память - она будет уходить в гостевой своп. Это более правильный подход, чем свопировать гостевую ОС в файл подкачки vswp на томе VMFS, поскольку операционная система сама лучше разбирается, что и когда ей класть и доставать из свопа (соответственно, быстродействие выше).

Недавно у известного блоггера Дункана Эппинга спросили вот про такой интересный случай. Пользователь запустил команду esxtop на странице с показателями памяти для виртуальных машин и получил вот такой результат:

Собственно, какова ситуация, если смотреть по счетчикам на картинке:

Глобальные статистики:

  • 1393 Free -> Сейчас 1393 МБ физической памяти хоста доступно
  • High State -> Состояние, в котором считается, что хост не испытывает проблем с памятью
  • SWAP /MB 146 Cur -> 146 МБ находится в свопе
  • SWAP /MB 83 Target -> Целевой объем памяти, который должен быть в свопе - 83 МБ
  • 0.00 r/s -> Из свопа ничего не читается
  • 0.00 w/s -> В своп ничего не пишется

Статистики виртуальной машины (обведено красным):

  • MCTLSZ 1307.27 -> Объем физической памяти гостевой системы, заполненной balloon-драйвером - 1307.27 МБ
  • MCTLTGT 1307.27 -> Объем физической памяти гостевой системы, который будет сохарнен balloon-драйвером - 1307.27 МБ
  • SWCUR 146.61 -> В свопе находится 146.61 МБ данных.
  • SWTGT 83.75 -> Целевой объем памяти, который который должен быть в свопе - 83.75 МБ

С одной стороны хост ESX выглядит типично overcommited, то есть balloon-драйвер раздулся. С другой же стороны, сервер VMware ESX находится в состоянии High State, что означает, что свободно более 6% памяти и проблем с ней нет (кроме того, ничего не пишется и не читается из файла подкачки). Казалось бы, здесь есть некоторое противоречие - если у хоста нет проблем с памятью, то почему balloon до сих пор надут и не сдувается?

Посмотрим на соотношение свободной памяти хоста ESX и размер области, занятой balloon'ом: 1393 МБ и 1307.27 МБ, соответственно. Они приблизительно равны. Это означает, что при сдутии balloon'а гостевая ОС, в которой он был надут, начнет отъедать физическую память хоста ESX (да и еще выгружать своп). Это приведет к тому, что объем доступной памяти хоста ESX упадет и он снова окажется в ситуации, когда необходимо снова надувать balloon.

То есть VMware ESX (и драйвер vmmemctl) не делают резких движений, растут и сдуваются постепенно, делая оглядку на то, какая ситуация может получиться.

 


Таги: VMware, ESX, Memory, vSphere, VMachines

Возможности Dynamic Memory в Microsoft Hyper-V.


Мы уже писали о том, какими возможностями будет обладать технология Dynamic Memory в гипервизоре Hyper-V и почему в ней будет отсутствовать аналог Transparent Page Sharing (TPS) от VMware. Совсем недавно компания Microsoft раскрыла подробности работы техник Dynamic Memory, которые теперь доступны в виде презентации, которую можно скачать с сайта TechEd:


Таги: Microsoft, Hyper-V, Dymanic Memory, VMachines, Server, VDI, TPS

Memory Overhead для виртуальных машин VMware vSphere / ESX.


Как вы знаете, любая платформа виртуализации требует накладных расходов на содержание виртуальных машин на хост-сервере. Это называется virtualization overhead. Обычно он находится в пределах нескольких процентов и не сильно влияет на производительность и потребление ресурсов сервера виртуализации.

У серверов VMware ESX также есть overhead по памяти для виртуальных машин, которую использует гипервизор для задач поддержки и обслуживания вычислительных ресурсов ВМ (там хранятся структуры данных, объем которых зависит от кофигурации машины). Overhead непосредственно зависит от числа vCPU виртуальной машины и, естественно, от выделенной оперативной памяти ВМ. Размер накладных расходов в мегабайтах представлен в таблице ниже:

Информация отсюда.


Таги: VMware, ESX, Memory, vSphere, Performance, Производительность, ESXi

1 | 2    >   >>
Реклама







Зал Славы Рекламодателя
Ближайшие события в области виртуализации:

31/01/2019:  Бизнес и ИТ. Вокруг ЦОД (Ростов-на-Дону)
14/02/2019:  Облака 2019: бурный рост в цифровую эпоху
14/03/2019:  Информационная безопасность бизнеса и госструктур

Быстрый переход:
VMware Gartner Citrix VSAN StarWind IT-Grad Veeam 5nine Hardware VeeamON Nutanix vSphere RVTools Enterprise Security Code Offtopic Cisco vGate Microsoft Cloud SDRS Parallels IaaS HP VMFS PowerCLI VM Guru Oracle Red Hat Azure KVM VeeamOn 1cloud Docker Storage NVIDIA Partnership Dell Virtual SAN Virtualization VMTurbo vRealize VirtualBox Symantec Softline EMC Login VSI Xen Teradici Amazon NetApp VDI Linux Hyper-V IBM Google VSI Security Windows vCenter VMachines Webinar View VKernel Events Windows 7 Caravan Apple TPS Hyper9 Nicira Blogs Sun VMC Xtravirt Novell IntelVT Сравнение VirtualIron XenServer CitrixXen ESXi ESX ThinApp Books P2V vCloud Labs vSAN Cache DR Storage DRS VMworld HA Workspace Tools UEM Backup vROPs DRS Fusion Workstation Lifecycle Visio SRM Horizon vRNI Log Insight Operations Manager VVols SDDC Virtual Appliance Update App Volumes OpenStack Forum PowerShell LSFS Client vCSA Datacenter Workspace ONE NSX Intel Agent Networking esxtop Book Photon Cloud Computing SSD Comparison Blast Performance Nested AWS XenDesktop VSA vNetwork SSO Host Client VMDK VTL iSCSI Whitepaper Appliance VUM V2V Support Обучение Web Client Mobile Automation Replication Desktop Fault Tolerance Vanguard SaaS Connector Event Free SQL Sponsorship Finance FT Converter XenApp Snapshots VCP vGPU Auto Deploy SMB RDM Mirage XenClient MP Video SC VMM Certification VDP Partners PCoIP RHEV vMA Award Network USB Licensing Logs Server Demo vCHS Calculator Бесплатно vExpert Beta SAN Exchange MAP ONE DaaS Monitoring VPLEX UCS SDK Poster VSPP Receiver vMotion VDI-in-a-Box Deduplication Reporter vShield ACE Go nworks iPad XCP Data Recovery Sizing Pricing VMotion Snapshot FlexPod VMsafe Enteprise Monitor vStorage Essentials Live Migration SCVMM TCO Studio AMD-V VirtualCenter NFS ThinPrint VDS Bug Upgrade Migration Director Stencils Memory Troubleshooting API Android Graphics Diagram Air CLI Plugin DPM SIOC Flex Mac Open Source SSH VAAI Chargeback Heartbeat MSCS Ports SVMotion Bugs Composer
Интересные плакаты:

Постер VMware vSphere PowerCLI 6.3:

Постер VMware ESXi 5.1:

Постер VMware Hands-on Labs 2015:

Постер VMware Platform Services Controller 6.0:

Постер VMware vCloud Networking:

Постер VMware NSX (референсный):

Постер VMware vCloud SDK:

Постер VMware vCloud Suite:

Постер VMware vCenter Server Appliance:

Порты и соединения VMware vSphere 6:

Порты и соединения VMware Horizon 7:

Порты и соединения VMware NSX:

Управление памятью в VMware vSphere 5:

Как работает кластер VMware High Availability:

Постер VMware vSphere 5.5 ESXTOP (обзорный):

Постер Veeam Backup & Replication v8 for VMware:

Постер Microsoft Windows Server 2012 Hyper-V R2:

 

Популярные статьи:
Как установить VMware ESXi. Инструкция по установке сервера ESXi 4 из состава vSphere.

Включение поддержки технологии Intel VT на ноутбуках Sony VAIO, Toshiba, Lenovo и других.

Как настроить запуск виртуальных машин VMware Workstation и Server при старте Windows

Как работают виртуальные сети VLAN на хостах VMware ESX / ESXi.

Что такое и как работает виртуальная машина Windows XP Mode в Windows 7.

Типы виртуальных дисков vmdk виртуальных машин на VMware vSphere / ESX 4.

Инфраструктура виртуальных десктопов VMware View 3 (VDI)

Сравнение Oracle VirtualBox и VMware Workstation.

Бесплатные утилиты для виртуальных машин на базе VMware ESX / ESXi.

Как использовать возможности VMware vSphere Management Assistant (vMA).

Проектирование инфраструктуры виртуализации VMware vSphere 4.

Как поднять программный iSCSI Target на Windows 2003 Server для ESX

Бесплатные программы для VMware ESX / ESXi в среде Virtual Infrastructure / vSphere (часть 2).

Новые возможности VMware vSphere 5.0 - официально.

Отличия VMware ESXi 4 free (бесплатного), ESXi 4 и ESX 4 в составе VMware vSphere.

Все ресурсы о виртуализации:
Интервью:

Alessandro Perilli
virtualization.info
Основатель

Ратмир Тимашев
Veeam Software
Президент


Купить:

VMware vSphere 6.5


Veeam Backup 9.5


Полезные ресурсы:


Видео компании VMware

Видео про Citrix Xen

Видео о виртуализации Microsoft

Утилиты для виртуальных машин Microsoft.

Книги на английском языке

Блоги на английском языке

Блоги на русском языке

Агрегация статей в твиттере VMC:


Copyright VM Guru 2006 - 2018, Александр Самойленко. Правила перепечатки материалов.