Виртуализация - Memory Ballooning в VMware ESX1. Реклама: Пост: Многим пользователям платформы виртуализации VMware v. Sphere / ESX известен такой механизм оптимизации работы виртуальных машин с оперативной памятью как Memory Ballooning (о нем хорошо написано в документе "Understanding Memory Resource Management in VMware ESX Server"). Если вкратце - то это техника гипервизора по работе с оперативной памятью, которая позволяет запустить на хосте ESX виртуальные машины, совокупная выделенная память которых больше суммарной памяти хоста. Достигается это за счет использования драйвера vmmemctl. VMware Tools. Он позволяет "надуть" шар внутри гостевой ОС (balloon), который захватывает физическую память, выделенную этой ОС, и отдает ее другим гостевым операционным системам, которые в ней нуждаются.
• поддержка индустриальных стандартов обесечивается благодаря ядру RHEL и высокопроизводительным драйверам VirtIO. CONFIG_VIRTIO_PCI=y (поддержка PCI устройств) CONFIG_VIRTIO_BALLOON=y (поддержка динамической подкачки для оперативной памяти) Включив эти опции в ядре виртуальной машины, можно использовать Virtio.. Попробовал запустить virsh start WebServer - balloon virtio и получил Но вот Google и Yandex молчат как партизаны как это сделать. I was looking into virtio and tried writing a virtio-blk driver for MINIX3. It's far from being stable, clean, fully functional etc, but I might continue working on it to get it there at some point in the future. It works, kind of.
Этот balloon не позволяет гостевой ОС производить работу приложений с данной областью памяти, поэтому если им потребуется дополнительная память - она будет уходить в гостевой своп. Это более правильный подход, чем свопировать гостевую ОС в файл подкачки vswp на томе VMFS, поскольку операционная система сама лучше разбирается, что и когда ей класть и доставать из свопа (соответственно, быстродействие выше). Недавно у известного блоггера Дункана Эппинга спросили вот про такой интересный случай.
Пользователь запустил команду esxtop на странице с показателями памяти для виртуальных машин и получил вот такой результат: Собственно, какова ситуация, если смотреть по счетчикам на картинке: Глобальные статистики: 1. Free - > Сейчас 1. МБ физической памяти хоста доступно. High State - > Состояние, в котором считается, что хост не испытывает проблем с памятью.
Сбор гостевой статистики и оценка размера рабочего набора вставлялась в агент фиктивного занятия памяти (VirtIO balloon для Windows и Linux). Сбор виртуализационной статистики осуществлялся в KVM. . HDB — это пустой образ диска, созданный через " kvm-img create -f. После этого устройство переименуется в «VirtIO Balloon Driver». 27 секунд: это оно я так понял?,необходим модуль ядра virtio? pci0: < serial bus, USB> at device 1.2 (no driver attached) pci0: <bridge> at. device virtio_balloon # VirtIO Memory Balloon device # HyperV drivers.
SWAP /MB 1. 46 Cur - > 1. МБ находится в свопе. SWAP /MB 8. 3 Target - > Целевой объем памяти, который должен быть в свопе - 8. МБ0. 0. 0 r/s - > Из свопа ничего не читается. В своп ничего не пишется. Статистики виртуальной машины (обведено красным): MCTLSZ 1. Объем физической памяти гостевой системы, заполненной balloon- драйвером - 1.
VirtIO Drivers are paravirtualized drivers for kvm/Linux (see http:// />Virtio). In short, they enable direct (paravirtualized) access to device and peripherals to virtual machines using them, instead of slower, emulated, ones..
МБMCTLTGT 1. 30. 7. Объем физической памяти гостевой системы, который будет сохарнен balloon- драйвером - 1. МБSWCUR 1. 46. 6. В свопе находится 1.
МБ данных. SWTGT 8. Целевой объем памяти, который который должен быть в свопе - 8. МБС одной стороны хост ESX выглядит типично overcommited, то есть balloon- драйвер раздулся. С другой же стороны, сервер VMware ESX находится в состоянии High State, что означает, что свободно более 6% памяти и проблем с ней нет (кроме того, ничего не пишется и не читается из файла подкачки). Казалось бы, здесь есть некоторое противоречие - если у хоста нет проблем с памятью, то почему balloon до сих пор надут и не сдувается? Посмотрим на соотношение свободной памяти хоста ESX и размер области, занятой balloon'ом: 1. МБ и 1. 30. 7. 2.
МБ, соответственно. Они приблизительно равны. Это означает, что при сдутии balloon'а гостевая ОС, в которой он был надут, начнет отъедать физическую память хоста ESX (да и еще выгружать своп). Это приведет к тому, что объем доступной памяти хоста ESX упадет и он снова окажется в ситуации, когда необходимо снова надувать balloon. То есть VMware ESX (и драйвер vmmemctl) не делают резких движений, растут и сдуваются постепенно, делая оглядку на то, какая ситуация может получиться.