То, что виртуализировать сервера, — не только модно, но и зачастую выгодно, поняли, кажется, уже все. Что же, пришла пора взяться за клиентскую часть? Среди всех этих бесконечных *aaS затесалось такое понятие, как DaaS — Desktop as a Service. Фактически — полноценные рабочие места, запущенные где-то на удалённом сервере, с доступом к ним посредством тонких клиентов. Налицо явное преимущество такого решения перед теми грудами машин, которые установлены у каждого пользователя. Тут вам и свободный доступ к родному окружению практически из любой точки мира, и централизованное управление, и повышенные контроль с безопасностью, и стандартизация рабочего места, и множество прочих приятных дополнений. Конечно, использование DaaS оправдано далеко не всегда и везде, но для типичного офисного решения такой подход вполне годится. Однако панацеей оно не является, да и недостатков у него немало. Взять хотя бы повышенные требования к пропускной способности сетевого подключения, без которых комфортная работа просто невозможна.
Идея DaaS далеко не нова, как и многие подобные технологии. Но в последнее время крупные компании всё активнее продвигают эту идеологию у своих клиентов. Для разработчиков систем виртуализации это одно из очевидных направлений развития (Citrix XenDesktop и VMWare View), крупные софтверные компании в накладе тоже не остались (Windows RDS, Oracle VDI), а уж такие поставщики всего и вся для корпораций, как HP, Dell или IBM, давно имеют в своём арсенале DaaS-продукты. Очевидно, что подавляющее большинство таких решений далеко не бесплатно. Тем не менее существует парочка бесплатных продуктов, о которых мы и поговорим. Пусть они не такие «красивые», как у «больших дядей», но вполне имеют право на существование.
⇡#Ulteo Open Virtual Desktop (OVD)
Это, пожалуй, одно из самых простых в установке решений. Ulteo OVD умеет предоставлять доступ к полноценному виртуальному рабочему столу или же к отдельным приложениям. Сервера приложений могут быть запущены на Windows Server или Ubuntu/RHEL/SLES. Естественно, разработчики хотят зарабатывать на своём продукте, поэтому различные дополнительные функции вроде stand-alone-приложений для Windows и iOS/Android или шлюза для безопасного доступа к системе поставляются только в комплекте с подпиской на поддержку и обслуживание. Впрочем, базовой функциональности будет более чем достаточно для большинства задач и организаций. Ulteo OVD состоит из нескольких частей: менеджер сессий для управления доступом, сервера приложений, файловое хранилище и шлюз.
Для тестирования можно воспользоваться готовыми образами виртуальных машин. На пробу поднимем два виртуальных хоста: один оставим без изменений, на втором можно удалить менеджер сессий (ulteo-ovd-session-manager) и переконфигурировать OVD (dpkg-reconfigure ulteo-ovd-subsystem) с указанием адреса мастер-машины с менеджером. Управление OVD происходит через веб-интерфейс по адресу http://IP-адрес-сервера/ovd/admin/. Логин-пароль по умолчанию для веб-интерфейса admin, для консоли — ulteo.
Теперь можно управлять приложениями — устанавливать их или удалять из готового списка ПО, инсталлировать по имени пакета, вручную прописывать ссылки на любые другие утилиты и так далее. Не забудьте после установки «опубликовать» приложение, то есть добавить в одну или несколько групп и связать группы программ с группами пользователей. Для аутентификации пользователей используется либо внутренняя база, либо серверы LDAP/AD или CAS. Имеется возможность в один клик завести готовый набор учетных записей для тестовых целей.
Разработчики рекомендуют разносить компоненты системы по разным физическим машинам. Для менеджера сессий рекомендуется использовать не менее двух гигабайт памяти и двух CPU, для серверов приложений — от четырёх гигабайт RAM и минимум два процессорных ядра. Очевидно, что реальная конфигурация системы зависит от нагрузки, которая на неё ляжет. Для каждой физической машины можно назначить приоритеты выделяемых ресурсов.
Удалённый доступ работает с использованием HTTPS и RDP. По умолчанию предлагается веб-клиент, для работы которого требуется современный браузер с Java-плагином. Для нормальной работы необходимо иметь от 512 Мбайт RAM и достаточную для RDP пропускную способность сетевого подключения. Весь интерфейс переведён на несколько языков, в том числе и на русский. Поддерживается и русский ввод, правда, не совсем корректно. Клиентская часть может работать в нескольких режимах — в виде привычного рабочего стола (в том числе полноэкранного) или в виде так называемого портала для запуска отдельных приложений. Причём в последнем случае окна приложений будут интегрированы в ту ОС, где запущен клиент.
Быстродействие веб-клиента более чем достаточное для комфортной работы. Клиент также имеет прозрачный доступ к локальным файлам и папкам на машине, где он запущен. В общем, не так уж плохо для бесплатного решения, тем более такого простого в настройке. Конечно, не помешало бы иметь более гибкую систему распределения прав и ресурсов между пользователями, расширенные возможности мониторинга, чуть более высокую стабильность (Java на клиентах не переваривает некоторые приложения) и многое другое.
⇡#Quality Virtual Desktop (QVD)
Ещё один интересный проект называется QVD. Для запуска виртуальных хостов используется KVM, а доступ осуществляется через NX. Фактически QVD является набором из Housekeeping Daemon, Layer-7 Router и ряда других компонентов с обвязкой из Perl-скриптов (здесь был грустный смайлик) и веб-интерфейса для удобного управления всем этим добром. Да, на серверах всё это хозяйство придётся настраивать вручную. Проект имеет репозитории для Ubuntu 10.04 и SLES 11, но для любителей свежего и нестабильного софта есть PPA-хранилище. На практике стабильная версия с некоторым скрипом заработала и на Ubuntu 11.10. Чтобы самому вкусить все прелести (и не только) QVD, пользователю достаточно выполнить несколько простых команд для развёртывания тестовой среды.
sudo apt-get install python-software-properties sudo apt-add-repository 'deb http://theqvd.com/debian lucid main' sudo apt-get update sudo apt-get install qvd-demo-single-instance-nosupport qvd-admin
Пока устанавливается и автоматически настраивается базовая система, не помешает сходить на страницу загрузок, скачать с неё готовые образы ОС (OSI) и установить их для Windows или Linux (в новой версии появится Android-приложение). Проект QVD рассчитан на максимально полное использование имеющихся аппаратных ресурсов для обслуживания как можно большего числа одновременно подключённых пользователей. Поэтому, в частности, рекомендуется создавать базовые образы ОС с набором нужного ПО, с которых запускаются пользовательские ВМ. При этом домашние каталоги пользователей и опционально сессии сохраняются отдельно. В отличие от Ulteo, QVD всё же ориентирован на Linux-системы.
После завершения установки веб-интерфейс будет доступен по адресу http://IP-адрес-сервера:3000/, а логин и пароль для него, как обычно, admin. Веб-интерфейс не сказать, чтобы богат опциями, но всё основные функции в нём есть. Конечно, набор утилит QVD для командной строки позволяет намного больше, но для первого знакомства хватит и веб-морды. Итак, первым делом необходимо создать нового пользователя и задать для него пароль. В дальнейшем можно будет подключить авторизацию через LDAP или OpenSSO/OpenAM. Также надо убедиться, что служба qvd-node работает, и если это не так — запустить её. Скачанный демообраз ОС придётся распаковать и поместить в/var/lib/qvd/storage/staging. Вообще в /var/lib/qvd/storage лежат образы OSI, образы виртуальных машин, домашние каталоги пользователей и временные файлы сессий, поэтому вполне резонно поместить его в быстрое внешнее хранилище.
sudo /etc/init.d/qvd-node start gunzip имя_образа.img.gz sudo mv имя_образа.img /var/lib/qvd/storage/staging
Теперь надо создать образ ВМ на основе имеющегося OSI-образа и указать ограничения по памяти и пространству на диске.
Осталось создать ВМ в настройках пользователя и запустить её. Если имеется несколько физических узлов, то QVD автоматически выберет наименее загруженный и запустит ВМ именно на нём.
Пора запустить клиентскую программу для доступа к только что созданному рабочему окружению. В настройках надо указать имя пользователя и пароль, адрес сервера, а также выбрать скорость сетевого соединения. Дополнительные параметры можно поправить вручную в файле конфигурации. Субъективно клиент QVD ничуть не менее отзывчив, чем в Ulteo.
Недостатки у QVD примерно те же, что и у Ulteo OVD: не лучшая система распределения прав, отсутствие достойной системы мониторинга, некоторая сложность в установке и настройке, необходимость создания OSI-образов, отсутствие вменяемой поддержки Windows-систем и так далее. Как и в первом случае, за отдельную плату разработчики готовы решить большинство ваших проблем. Как говорится — любой каприз за ваши деньги. Кстати, QVD предоставляет ещё и готовые хосты со своей системой в облаке.
Понятно, что на полноту описания Ulteo OVD и QVD в рамках данной заметки рассчитывать не стоит. Тем не менее оба продукта достаточно хороши для практического использования, что неоднократно подтверждалось не самыми маленькими внедрениями. Напоследок хочется хотя бы вскользь упомянуть о проекте SPICE — открытом решении Red Hat. Это протокол и его реализация, которые были специально созданы для удалённого управления виртуальными машинами. Он умеет гибко подстраиваться под текущее окружение и, например, реагировать на резкое ухудшение канала связи или смену адреса сервера. SPICE позволяет получить двусторонний доступ не только к экрану, но и к буферу обмена, звуковой карте и прочим устройствам. При этом работает он очень быстро — нередко взаимодействие с удалённым хостом ничем не отличается от работы на локальной машине. Увы, протокол всё ещё находится в стадии активной разработки и существует пока лишь в черновом варианте, а потому нестабилен. Поиграться с последней версией SPICE всегда можно в свежем релизе Fedora. Мы обязательно вернёмся к этому замечательному протоколу, а на сегодня всё. Удачи!