Виртуальные машины — это логические контейнеры, в которых работают приложения и гостевые операционные системы. Устройство виртуальных машин VMware таково, что все они изолированы друг от друга. Эта изоляция позволяет множеству виртуальных машин безопасно работать на совместно используемом оборудовании и обеспечивает их доступ к оборудованию и непрерывную работу.
Даже пользователь с правами системного администратора в гостевой операционной системе виртуальной машины не сможет преодолеть этот уровень изоляции, чтобы получить доступ к другой виртуальной машине, не имея прав, явно предоставленных системным администратором ESXi. Если в гостевой операционной системе, работающей на виртуальной машине, произойдет сбой, благодаря изоляции виртуальной машины другие виртуальные машины на том же узле продолжат работу. Пользователи смогут и дальше получать доступ к другим виртуальным машинам, и работа этих виртуальных машин не будет нарушена.
Каждая виртуальная машина изолирована от других виртуальных машин, работающих на том же оборудовании. Хотя виртуальные машины совместно используют физические ресурсы, например ЦП, память и устройства ввода-вывода, гостевая операционная система на отдельной виртуальной машине может обнаруживать только виртуальные устройства, к которым вы предоставите ей доступ.
Ядро VMkernel является посредником для всех физических ресурсов. Доступ ко всему физическому оборудованию осуществляется через ядро VMkernel, и виртуальные машины не могут обойти этот уровень изоляции.
Точно так же как физический компьютер обменивается данными с другими компьютерами в сети через сетевую карту, виртуальная машина обменивается данными с другими виртуальными машинами, работающими на том же узле, через виртуальный коммутатор. Кроме того, виртуальная машина обменивается данными с физической сетью, включая виртуальные машины на других узлах ESXi, через физический сетевой адаптер.
На подключения в виртуальной сети также влияет изоляция виртуальных машин.
Если виртуальная машина не использует виртуальный коммутатор совместно с другими виртуальными машинами, она полностью изолирована от виртуальных машин, расположенных на узле.
Если для виртуальной машины не настроен физический сетевой адаптер, она полностью изолирована. Это подразумевает также изоляцию от физических и виртуальных сетей.
Виртуальные машины безопасны, как и физические компьютеры, если они защищены от сети с помощью брандмауэров, антивирусного программного обеспечения и т. п.
Виртуальные машины можно дополнительно защитить, настроив резервирование и ограничения для ресурсов на узле. Например, с помощью выделения ресурсов можно настроить виртуальную машину таким образом, чтобы она всегда получала не менее 10 % ресурсов ЦП на узле, но не более 20 %.
Резервирование и ограничения ресурсов защищают виртуальные машины от снижения производительности, которое может возникнуть, если другая виртуальная машина потребляет слишком много общих аппаратных ресурсов. Например, если одна из виртуальных машин на узле выйдет из строя в результате атаки типа «отказ в обслуживании» (DoS-атаки), благодаря ограничению ресурсов на этой машине атака не сможет распространиться на достаточное количество аппаратных ресурсов и поэтому не повлияет на другие виртуальные машины. Аналогичным образом резервирование ресурсов на каждой из виртуальных машин гарантирует, что в случае повышенной потребности виртуальной машины в ресурсах вследствие DoS-атаки все остальные виртуальные машины будут иметь достаточно ресурсов для работы.
По умолчанию решение ESXi в обязательном порядке применяет форму резервирования ресурсов, используя алгоритм распределения, который разделяет все доступные на узле ресурсы поровну между виртуальными машинами, оставляя определенный процент ресурсов для использования другими компонентами системы. Это поведение, используемое по умолчанию, обеспечивает определенную степень естественной защиты от DoS-атак и распределенных атак типа «отказ в обслуживании» (DDoS). Определенные ограничения и резервирование ресурсов устанавливаются в каждом конкретном случае. Это позволяет настроить поведение по умолчанию, чтобы распределение в конфигурации виртуальных машин не было равномерным.