Назад | Перейти на главную страницу

Угроза утечки памяти на vmware esx, работающем на сервере 2003

Я запускаю ESX на сервере 2003 с двумя виртуальными машинами (A и B).
Предположим, что «А» использует кусок физической памяти. После выключения виртуальной машины «A», что происходит с данными «A» в ОЗУ сервера?
Я знаю, что ОС помечает это пространство как «доступное для использования», но меня беспокоит то, что процесс в «B» запросит некоторое пространство в памяти, получит фрагмент, который был освобожден «A», и сможет прочитать данные, которые оставил там «А» («А» оставил конфиденциальные данные).
Законны ли мои опасения?
Как бы вы порекомендовали решить эту проблему?

В соответствии с Общие сведения об управлении ресурсами памяти в VMWare ESX Server, и цитирую -

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

Я бы не советовал ничего делать, так как для ESX это не проблема.

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

Заметьте, это все на уровне ESX. Все, что видит машина B, - это страницы, выделенные ей VMM уровня ESX, она никогда ничего не увидит с машины A.