В новой версии платформы виртуализации VMware vSphere 5 появилась интересная возможность - Host Cache. Это механизм, который позволяет пользователю vSphere 5 выделить определенное место на локальных дисков хост-сервера ESXi (лучше всего, если это будут SSD-диски) для хранения свопируемых страниц памяти виртуальных машин. Это позволяет существенно увеличить скорость работы файлов подкачки виртуальных машин (vswp), так как они находятся на локальных высокопроизводительных дисках, и, соответственно, увеличить общее быстродействие инфраструктуры виртуализации.
Хорошая и развернутая статья о Swap to Host cache в VMware vSphere 5 есть у Duncan'а Epping'а, а здесь мы приведем основные ее выдержки.
Прежде всего, после установки VMware ESXi 5 хост может не увидеть локальные SSD-хранилища как пригодные для хранения кэша виртуальных машин. Для этого есть вот такой хак от Вильяма Лама. Далее мы идем на вкладку Configuration в vSphere Client и выбираем секцию Host Cache Configuration:
Тут мы можем задать объем дискового пространства на локальном томе VMFS, который мы можем использовать для файлов подкачки виртуальных машин, работающих на этом хосте. После включения этой возможности на этом локальном томе VMFS появится куча vswp-файлов, в которые гостевые ОС виртуальных машин этого хоста будут складывать свои свопируемые страницы памяти.
Поскольку эти своп-файлы находятся только на этом хосте, то при миграции vMotion содержимое страниц памяти из этих файлов надо скопировать на другой хост в его Host Cache или в vswp-файл в папке с виртуальной машиной на общем хранилище. Это, само собой, увеличивает время на миграцию vMotion, и это надо учитывать.
Что касается надежности при отказе хост-сервера, то тут нет проблем - так как при отказе хоста все равно его виртуальные машины перезапускаются на других хостах, то данные из файлов подкачки для ВМ уже не будут нужны.
Наблюдать за использованием Host Cache можно из VMware vCenter 5 с помощью метрик "Swap in from host cache" и "Swap out to host cache" (а также "rate..."). В результатах вывода консольной утилиты esxtop это метрики LLSWR/s и LLSWW/s.
Что будет когда место на локальном свопе Host Cache закончится? Сервер ESXi начнет копировать страницы в обычный vswp-файл, который находится в папке с виртуальной машиной, что само собой повлияет на производительность. Кстати, размер Host Cache можно изменять при работающем хосте и виртуальных машинах, поэтому лучше увеличивать его вовремя, да и в целом не доводить до большого свопа виртуальных машин (то есть, правильно сайзить хосты по памяти для ВМ). К примеру, Duncan рекомендует 128 ГБ SSD-диски в RAID-1 для 128 ГБ оперативной памяти хоста.
Альтернатива Host Cache - это задать параметр VM swapfile location для виртуальной машины в ее настройках, указав, например, локальный SATA или SSD-диск (можно использовать и быстрые общие хранилища).