Виртуализация: шаблоны виртуальных машин


Компьютерные технологии каждый день предлагают все новые и новые варианты использования персональных компьютеров и серверов. Среди множества появившихся технологий, виртуализация занимает особое место. За последние несколько лет платформы виртуализации получили стремительное развитие, которое во многом было обусловлено совершенствованием аппаратного обеспечения, позволившего запускать несколько экземпляров операционных систем на одной физической машине одновременно. Технологии виртуализации, наконец-то, завоевали доверие пользователей и стали применяться как в корпоративной среде, так и на домашних компьютерах. В данный момент, довольно большое число организаций различного уровня используют их для повышения гибкости, управляемости и надежности информационной инфраструктуры. Пользователи настольных компьютеров также увидели преимущества виртуальных машин, как для домашнего использования в целях обучения и создания удобных и безопасных пользовательских окружений, так и для работы в производственной среде, где виртуальные машины интегрированы в общую инфраструктуру предприятия.

Развитие программных и аппаратных техник виртуализации позволило существенно снизить потери производительности на поддержку хостовой платформы и виртуальных машин, а совершенствование средств управления позволило эффективно использовать виртуальные машины даже самым неискушенным пользователям. На данный момент, множество вендоров платформ виртуализации предлагают использовать виртуальные машины в самых разных контекстах и масштабах. Лидирующие компании на рынке технологий виртуализации, такие как VMware, Microsoft, Parallels, Xen и InnoTek, предлагают дружественный пользовательский интерфейс, позволяющий контролировать запущенные виртуальные машины на уровне «видеопроигрывателя» (Stop, Play, Pause). При этом пользователям доступен также широкий набор возможностей по настройке различных параметров виртуальной машины и оптимизации ее быстродействия. Такая модель использования гостевых систем позволяет создавать виртуальные машины с минимумом усилий, устанавливая в них различные операционные системы и приложения, которые полностью готовы к переносу на другую физическую машину — достаточно лишь скопировать папку с файлами. Приложения, установленные в гостевой операционной системе виртуальной машины, при ее запуске на другом компьютере, не требуют установки и настройки. Эта особенность виртуальных систем позволила применять еще один интереснейший вариант использования технологий виртуализации — изготовление полностью готовых к работе приложений и сервисов, «зашитых» внутри виртуальной машины и выполняющих определенную функцию. Такие пакеты на основе виртуальных систем получили название «шаблоны виртуальных машин» (Virtual Appliances), которые также иногда называют виртуальными шаблонами или виртуальными приложениями, в связи с тем, что еще не сформировалось четкого определения термина Virtual Appliance в русском эквиваленте.

Что такое шаблоны виртуальных машин (Virtual Appliances)

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

Документация, которая прилагается к виртуальному шаблону, описывает его с точки зрения использования и нередко бывает Wiki-ориентированной, в целях представления пользователю наиболее полной информации о шаблоне. Помимо этого, виртуальная машина, гостевая система и приложения, установленные в ней, оптимизируются по быстродействию в отношении выполняемой задачи, а также максимально урезаются ненужные компоненты гостевой ОС и приложений для экономии занимаемого шаблоном места на диске. В подавляющем большинстве случаев, установленная гостевая ОС и все приложения являются бесплатными и распространяются свободно, в то время как сам шаблон виртуальной машины может быть платным, защищен специальными средствами, такими как VMware ACE, и распространяться как Shareware с ограниченным периодом действия.

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

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

ВендорПлатформа виртуализацииПоддерживаемые хостовые платформыПримечание
VMwareVMware Player 2.0Windows, LinuxНе позволяет создавать виртуальные машины, имеет ограниченные средства управления. Предназначен для использования на десктопах.
VMware Server 1.0.3Windows, LinuxПолноценная платформа виртуализации, направленная на поддержание инфраструктуры виртуальных серверов малых предприятий.
MicrosoftMicrosoft Virtual PC 2007WindowsПолная поддержка Windows Vista в качестве хостовой и гостевой системы.
Microsoft Virtual Server 2005 R2 SP1 BetaWindowsПоддержка аппаратной виртуализации, серверная платформа, тонкий и толстый клиент.
InnoTekVirtualBoxWindows, Linux, Mac OS X (Beta), OS/2 (экспериментально)Большое количество поддерживаемых гостевых систем, высокая производительность, открытый исходный код.
XenSourceXenExpressLinuxПоддержка Windows в качестве гостевой системы
Таблица 1. Бесплатные платформы виртуализации, подходящие для запуска виртуальных шаблонов

Отличие шаблонов виртуальных машин от переносных пользовательских сред

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

Несмотря на сходство с применением виртуальных шаблонов, такой вариант использования существенно отличается от него. Прежде всего, виртуальный шаблон, в отличие от переносной пользовательской среды, выполняет строго определенную функцию и используется, в основном, как некий неизменяемый компонент, предоставляющий определенные сервисы внешним приложениям. Такая модель использования шаблонов виртуальных машин напоминает концепцию Software as a Service (SaaS), которая предполагает доставку программного обеспечения конечным пользователям в качестве сервиса с помощью тонкого или толстого клиента, где вся бизнес-логика вынесена на сторону сервера, при этом пользователь платит не за владение программным продуктом, а за пользование услугами сервиса. Так обстоят дела и с виртуальными шаблонами: шаблон виртуальной машины представляет собой некий «черный ящик», предоставляющий пользователю некоторый набор функций. При этом, этот ящик может быть закрытым, когда пользователю предоставляется только возможность работы с сервисами виртуальной машины (Purpose-Built Virtual Appliance), а вход в саму гостевую ОС закрыт, или открытым, когда пользователю предоставляется возможность изменять внутреннюю конфигурацию ОС и приложений (Reference Implementation Virtual Appliance).

Кроме того, виртуальный шаблон, в отличие от переносной пользовательской среды, максимально оптимизирован по быстродействию и объему занимаемого места на диске и полностью готов к использованию как компонент общей ИТ-инфраструктуры. Шаблоны виртуальных машин решают одну из самых важных проблем распределенных вычислений (Grid Computing), которая заключается в необходимости развертывания приложений и сервисов в гетерогенной среде инфраструктуры предприятия. С помощью виртуальных шаблонов возможно развертывание приложений, работающих в различных операционных системах и требующих сопряжения с другими компонентами инфраструктуры. Виртуальная инфраструктура на базе таких шаблонов обладает высокой гибкостью и управляемостью.

Типичные применения шаблонов виртуальных машин

Виртуальные шаблоны давно использовались многими энтузиастами для решения различных задач и повышения эффективности работы, однако, лишь сравнительно недавно, в основном за счет усилий компаний VMware и Microsoft, шаблоны виртуальных машин приобрели большую популярность. В данный момент на рынке присутствует множество как бесплатных, так и коммерческих виртуальных шаблонов, доступных для скачивания на сайтах производителей платформ. Условно их можно разделить на несколько категорий по сферам использования:

  • Администрирование
    В эту категорию входят виртуальные шаблоны, обеспечивающие поддержку сетевого взаимодействия в инфраструктуре компании, управление рабочими станциями и серверами, а также различные утилиты для мониторинга сетевой активности.
  • Сервера приложений
    Эта сфера применения виртуальных шаблонов одна из самых широких: предустановленные сервера приложений различных производителей могут быть подходящим образом настроены и оптимизированы, а пользователям остается лишь запустить виртуальную машину загрузить на нее контент.
  • Коммуникация и управление контентом
    В данной области виртуальные шаблоны могут предоставлять различные сервисы систем управления контентом (Content Management System, CMS), систем управления отношений с клиентами (Client Relationship Management, CRM), «движки» для создания различных хранилищ знаний (Wiki) и репозитории. Кроме того, в данную категорию входят различные корпоративные порталы наподобие IBM Web Sphere или Microsoft Sharepoint Server, конечно менее мощные по своим функциям в силу их бесплатности, но предоставляющие необходимый набор возможностей по поддержке и управлению проектами и поддержке корпоративной коммуникации.
  • Серверы баз данных и почтовые серверы
    В эту группу входят в основном бесплатные серверы баз данных и почтовые серверы, готовые к использованию внешними приложениями и защищенные средствами безопасности. Они могут распространяться со всеми необходимыми настройками и готовы к использованию в производственной среде. Такая модель использования очень удобна в отношении простоты развертывания, тестирования и гибкости в отношении аппаратного обеспечения.
  • Безопасность и сетевое взаимодействие
    В эту категорию входят виртуальные шаблоны, предоставляющие различные средства по защите сетевых соединений (брандмауэры), виртуальные машины с предустановленными антиспамовыми фильтрами и антивирусами, которые очень удобно использовать для проверки потенциально опасных приложений.
  • Операционные системы
    Конечно, сами по себе гостевые системы в виртуальных машинах тоже могут являться виртуальными шаблонами, поскольку некоторые экзотические системы для неискушенного пользователя сложно установить, не говоря о том, чтобы их правильно сконфигурировать. Шаблоны виртуальных машин дарят отличную возможность для обучения работе с различными ОС и их модификациями.

Кроме того, можно выделить такой вариант использования виртуальных шаблонов, как распространение пробных версий операционных систем и приложений, которые могут быть свободно загружены с сайта производителя со всеми необходимыми настройками, и, в случае, если программное обеспечение подойдет под нужды пользователей, его можно приобрести. Такую модель распространения программного обеспечения использует компания Microsoft, распространяющая продукты в рамках программы VHD (Virtual Hard Drive) Test Program.

Основные производители и распространители шаблонов виртуальных машин

На данный момент множество компаний и отдельных энтузиастов занимаются производством шаблонов виртуальных машин. Компания VMware проводила конкурсы на построение лучшего шаблона на базе своих продуктов. Между тем, очевидно, что распространяемое таким образом программное обеспечение и сервисы «завязаны» на платформы виртуализации, производители которых являются конечными распространителями виртуальных шаблонов. На сегодняшний день существуют два основных ресурса, где можно выбрать и скачать подходящий шаблон виртуальной машины — Virtual Appliance Marketplace компании VMware и VHD Test Drive Program компании Microsoft. Помимо этого, есть такие ресурсы, как VMFinfd — специализированный поисковик по виртуальным шаблонам, проект VirtualAppliances.net, распространяющий различные предустановленные шаблоны, а также ресурсы вендоров других платформ, такие как Parallels Virtual Appliances Directory. Кроме того, стоит выделить отдельно компанию rPath, занимающуюся преимущественно распространением программного обеспечения на основе шаблонов с помощью продукта rBuilder по следующей схеме:

Распространение программного обеспечения компанией rPath
Распространение программного обеспечения компанией rPath

Virtual Appliance Marketplace

Компания VMware в 2006 году объявила о доступности ресурса по распространению виртуальных машин, «Рынок виртуальных шаблонов» (Virtual Appliance Marketplace). В различных разделах этого ресурса можно найти как предложения шаблонов виртуальных машин крупными компаниями, так и множество виртуальных машин, изготовленных и оптимизированных энтузиастами:

Виртуальные шаблоны на Virtual Appliance Marketplace
Виртуальные шаблоны на Virtual Appliance Marketplace

При этом компания VMware разделяет виртуальные шаблоны на сертифицированные, то есть прошедшие проверку инженерами компании VMware, и не сертифицированные, которые распространяются по принципу «как есть». По каждому из шаблонов можно посмотреть детализированное описание и объем занимаемого места на диске. Также можно ранжировать шаблоны виртуальных машин по категориям, в каждой из которых предлагается набор шаблонов для решения определенного класса задач. В данный момент база Virtual Appliance Marketplace насчитывает более 150 различных шаблонов и постоянно пополняется. При этом, компанией VMware проводится VMware Ultimate Virtual Appliance Challenge — конкурс, позволяющий присылать свои виртуальные шаблоны и получить не только известность «лучшего шаблоностроителя», но и призы от компании VMware. Виртуальные шаблоны от VMware могут быть построены с помощью продуктов VMware Workstation, VMware Server, VMware ESX Server и VMware ACE и запущены на них же, а так же с помощью VMware Player. К сожалению, VMware не имеет права распространять виртуальные шаблоны на основе гостевых систем Windows, поскольку это противоречит условиям лицензионного соглашения.

Microsoft VHD Test Drive Program

Заметив огромную популярность проекта Virtual Appliance Marketplace, компания Microsoft также увидела большие перспективы в новом способе распространения программного обеспечения в качестве предустановленных виртуальных шаблонов. Но в отличие от компании VMware, Microsoft решила сделать ставку на распространение, таким образом, программного обеспечения. Как результат этого решения, общественности была представлена программа VHD Test Drive Program, предоставляющая возможность попробовать серверные продукты Microsoft, которые установлены в виртуальных машинах и могут быть запущены на платформах Virtual PC и Microsoft Virtual Server.

В данный момент, компания Microsoft предлагает попробовать следующие продукты на платформах виртуализации:

  • Exchange Server 2007
  • ISA Server 2006
  • SQL Server 2005
  • SQL Server 2005/Exchange 2007
  • System Center Essentials 2007
  • System Center Virtual Machine Manager 2007 Beta 2
  • Visual Studio 2005 Team Suite
  • Windows Server 2003 R2
  • Windows Vista

Как построить свой шаблон виртуальной машины

Если вам понравилась идея изготовления собственного виртуального шаблона, не только ради интереса, но который также можно и продать, для начала вы должны определиться с его назначением и платформой виртуализации, на которой будет запускаться данный шаблон. При выборе варианта использования шаблона необходимо изучить рынок Virtual Appliances на предмет наличия подобного шаблона. Если вы все-таки решили, что ваша идея еще никому не приходила в голову, то нужно определиться с платформой виртуализации, на которой будет запускаться шаблон виртуальной машины. Нужно учитывать, что самый большой сегмент пользователей систем виртуализации является сторонником платформ от VMware и Microsoft, и именно на него надо ориентироваться при изготовлении шаблона. Затем операция по созданию шаблона виртуальной машины производится в несколько шагов:

  1. Загрузка платформы виртуализации с сайта производителя.
  2. Создание виртуальной машины и установка в ней гостевой системы. При создании виртуальной машины необходимо выделить гостевой системе достаточно памяти для выполнения необходимых задач, а также располагать все ресурсы виртуальной машины в одной папке, архив которой будет виртуальным шаблоном. Необходимо также помнить о правилах лицензионного соглашения при установке гостевой ОС.
  3. Оптимизация устройств. В настройках виртуальной машины нужно отключить все неиспользуемые устройства и правильно настроить нужные (наибольшее значение имеют виртуальные диски и сетевые адаптеры).
  4. Установка средств поддержки. Большинство вендоров платформ виртуализации предоставляют специальные утилиты для оптимизации гостевой системы (VMware Tools, Guest VM Additions и т.п.), которые обязательно необходимо установить в целях увеличения быстродействия виртуальной машины и повышения удобства взаимодействия с пользователем.
  5. Установка необходимого программного обеспечения, которое будет предоставлять сервисы виртуального шаблона.
  6. Удаление ненужных компонентов и модулей гостевой операционной системы и приложений, которые могут замедлить работу виртуального шаблона.
  7. Настройка гостевой ОС и приложения на максимальное быстродействие, используя документацию производителя операционной системы и платформы виртуализации.
  8. Документирование методики работы с виртуальным шаблоном, создание файла “Getting Started”, в котором будут описаны все необходимые операции по работе с виртуальным шаблоном, а также вся нужная пользователю информация о запуске и его использовании (пароли, пути к приложениям, инструкции по настройке).
  9. Удаление всех настроек, зависящих от конкретного окружения (отключение ISO-файлов в качестве CD-ROM, адреса прокси-серверов и т. п.).
  10. Упаковка папки с виртуальной машиной архиватором.
  11. Тестирование шаблона на различных платформах.

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

Как оптимизировать гостевую систему виртуального шаблона

Компания VMware недавно выпустила документ, в котором описываются действия по оптимизации гостевых систем на платформе VMware Workstation 6. Если вам необходимо построить шаблон виртуальной машины на основе этой системы, то прочтение этого документа настоятельно рекомендуется. Кроме того, при использовании виртуальных шаблонов для быстрого развертывания виртуальных серверов на любой платформе, рекомендации VMware, приведенные в этом документе, также помогут вам при оптимизации гостевых систем. Основные действия, которые необходимо предпринять для повышения быстродействия гостевой ОС:

  1. Если виртуальная машина была создана на однопроцессорной или одноядерной физической машине, а используется на многопроцессорной или многоядерной системе, может потребоваться обновление HAL (Hardware Abstraction Layer) или ядра для гостевой системы при использовании виртуального SMP (Symmetric Multi Processing). Большинство операционных систем сами определяют наличие нескольких процессоров и заменяют HAL на мультипроцессорный. Однако если вы создавали виртуальную машину на многопроцессорной платформе, то может потребоваться замена HAL или ядра при использовании шаблона в однопроцессорной системе.
  2. Определите, правильно ли вы выделили гостевой системе количество используемой оперативной памяти хостовой платформы и достаточен ли размер файла подкачки. Для этого, в гостевой ОС Windows используйте Perfmon и счетчик Pages/sec, в Linux воспользуйтесь командой vmstat и счетчиками si и so.
  3. Используйте эмуляцию SCSI дисков, если это позволяет платформа виртуализации, поскольку это обеспечивает наилучшее быстродействие. Убедитесь, что в старых операционных системах включен DMA-режим для дисков.
  4. Регулярно дефрагментируйте диски в следующей последовательности:
    • диски внутри гостевой ОС, используя встроенные средства ОС или утилиты сторонних производителей,
    • файлы дисков виртуальной машины, используя, например, VMware Workstation Defragmentation tool,
    • диски хостовой системы.
  5. Отключите все ненужные сервисы в гостевой системе, которые не понадобятся при использовании виртуального шаблона.

Помимо этого, необходимо постоянно следить за производительностью гостевой системы и, в случае если показатели не удовлетворяют требуемым, увеличивать количество ресурсов, выделяемых гостевой системе или перемещать ее на другой, более мощный, хост.

Преимущества и недостатки виртуальных шаблонов

Шаблоны виртуальных машин являются принципиально новым способом доставки программного обеспечения пользователю, который, безусловно, займет свою нишу на рынке ПО. Простота использования и развертывания виртуальных шаблонов открывают неограниченные возможности по обеспечению гибкости ИТ-инфраструктуры компании, упрощению миграции серверов и рабочих станций на другое оборудование, созданию резервных копий и восстановлению после сбоев. Похоже, все идет к тому, когда часть программного обеспечения будет распространяться с помощью виртуальных шаблонов, при этом пользователь будет работать с ними как с обычными программами в неком плеере виртуальных машин наподобие VMware Player. При этом не понадобится дополнительных знаний, поскольку системы для проигрывания виртуальных машин интуитивно просты в использовании и ведут себя так как и терминальная консоль средств удаленного доступа. Такое поведение будет значительно способствовать развитию концепции Software-as-a-Service с помощью виртуальных машин, которые являются черными ящиками, предоставляющими пользователю необходимые сервисы и скрывающие подробности реализации.

Многие эксперты предсказывают также появление таких комплексных систем на основе виртуальных машин, как Server-Farm-in-a-Box, в которых установлено сразу несколько серверов (DHCP, DNS, сервера приложений и терминальные сервера), выполняющих различные функции в производственной среде. При этом обслуживание такой системы может быть чрезвычайно простым: если стало сбоить аппаратное обеспечение сервера, то можно нажать на «паузу», скопировать файлы с виртуальными машинами на другой сервер и нажать на «play» или сразу запустить гостевые системы на другом сервере, если используется Shared Storage на основе SAN.

Безусловно, у виртуальных машин есть недостатки. Главный недостаток - в необходимости поддерживать хостовую платформу для виртуальных машин, которая либо стоит достаточно больших денег (как, например, VMware ESX Server), либо теряет на производительности. Однако с приходом аппаратных техник виртуализации, увеличения качества платформ и технологии Windows Virtualization, виртуальные шаблоны, безусловно, займут достойное место среди способов распространения и развертывания программного обеспечения. Сейчас доступны для скачивания сотни различных шаблонов, служащих для поддержания серверных и клиентских приложений, а различные компании предлагают новые способы их использования. Но все вопросы лицензирования закрытых платформ, таких как Windows, препятствуют распространению по-настоящему эффективных продуктов на основе шаблонов и в этой сфере есть просторы для сотрудничества различных вендоров программного обеспечения. И, возможно, когда-нибудь мы увидим специальную версию операционной системы от Microsoft, которую можно будет свободно использовать для построения виртуальных шаблонов в качестве гостевой системы.






Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.