Вы все, наверное, уже читали о первом в индустрии виртуализации клиентском bare-metal гипервизоре Citrix XenClient. Постараемся в этой статье разъяснить технические детали работы данного продукта, который, безусловно, найдет свое применение у корпоративных пользователей для повышения гибкости работы со своими ноутбуками и персональными компьютерами.
Чтобы установить Citrix XenClient на своем ПК вам понадобится:
На данный момент сертифицированы следующие платформы (но вы можете попробовать свой ПК):
HP EliteBook 6930p, 2530p, 8440p
Dell Latitude E4300, E6400, E6410, E6500, E6510
Dell Optiplex 780
Lenovo ThinkPad X200, T400, T500
При этом поддерживаются следующие гостевые ОС:
Microsoft Windows 7 32bit
Microsoft Windows Vista 32bit SP2
Microsoft Windows XP 32bit SP3
Сам клиентский гипервизор Citrix XenClient исполняет не только виртуальные машины пользователя с гостевой ОС и приложениями, но и выполняет сервисную виртуальную машину Service VM, которая содержит в себе компоненты управления и обслуживания. Она включает также контрольную панель, интерфейс переключения между виртуальными ПК, а также агенты Citrix Receiver и Synchronizer.
Надо отметить, что XenClient может исполнять не одну сервисную ВМ, которая может работать ниже уровня гостевых операционных систем. Например, можно установить виртуальную машину с антивирусом, который будет мониторить активность всех виртуальных машин, гостевых систем и приложений.
Помимо Service VM, есть также компонент Control Domain, который отвечает за прямой доступ к аппаратному обеспечению и использование возможностей чипсета (например, технология Intel vPro). Часть физического "железа" может быть предоставлена для прямого доступа виртуальному ПК посредством технологии Intel VT-d (например, GPU - Graphics Processing Unit, попросту говоря, видеокарта). Но здесь есть ограничение: только одна виртуальная машина в один момент времени может напрямую использовать GPU (Nominated VM). Это означает, что только у одной ВМ производительность графики будет близка к нативной, а все остальные будут использовать паравиртуализованные драйверы.
Control Domain будет управлять процессом вывода пикселей на экран, чтобы предотвратить атаки типа screen scraping и pixel injection. Протокол PortICA используется для показа приложений одной виртуальной машины в другой ВМ в бесшовном окне (то есть, как обычные приложения). Данный трафик не идет через внешний сетевой стек компьютера, видимо, используется внутренний виртуальный коммутатор, который никак не представлен в интерфейсе.
Также XenClient имеет возможность под названием Secure Keyboard. Она позволяет отслеживать активности, обращенные к Control Domain, и исполняет вызовы к клавиатуре только от активного виртуального ПК, предотвращая таким образом возможные атаки от кейлоггеров, key injection и т.п.
Control Domain также контролирует USB хост контроллер, а виртуальные машины имеют паравиртуализованные устройства USB, посредством которых они и получают доступ к контроллеру. Control Domain контролирует политики безопасности для виртуальных машин и процессит команды гостевых систем к конечным устройствам.
XenClient использует функции Intel Trusted Execution Technology (TXT), которые являются частью Intel vPro, для контроля целостности данных и проверки изменений в конфигурации виртуальных машин. Состояние виртуальной машины хранится в зашифрованном виде в соответствии с требованиями Trusted Computing Platform.
Компонент Citrix Synchronizer поставляется в виде виртуального модуля (Virtual Appliance) для сервера XenCenter. Он имеет веб-интерфейс управления, доступ к которому может производиться с локальными аккаунтами либо с учетными записями из Active Directory. Если что-то меняется на ПК с установленным XenClient, то делается снапшот виртуальной машины (без ее остановки), после чего изменившиеся данным посылаются на Citrix Synchronizer, который поддерживает виртуальную машину в формате VHD (изменения склеиваются в VHD в фоне). Чтобы минимизировать трафик, используется технология отслеживания изменившихся блоков, а также компрессия данных.