Использование технологии виртуализации при создании информационных систем

В.Н. Квасницкий, Т.Б. Журавлева

ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ ВИРТУАЛИЗАЦИИ ПРИ СОЗДАНИИ ИНФОРМАЦИОННЫХ СИСТЕМ

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

Ключевые слова: виртуализация, информационные ресурсы, 1Т-техно-логии, программные средства виртуализации.

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

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

© Квасницкий В.Н., Журавлева Т.Б., 2012 162

Использование технологии виртуализации...

развития систем в части комплексов технических средств, увеличения количества серверов, наращивания рабочих станций и т. п.

Как правило, автоматизированные информационные системы (ИС) для управления предприятиями имеют однотипную структуру и стандартные подсистемы: комплекс технических средств, программное обеспечение (ПО), информационное и организационное обеспечение.

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

Сам термин «виртуализация» в компьютерных технологиях появился в 60-х годах прошлого века вместе с термином «виртуальная машина», означающим продукт виртуализации программно-аппаратной платформы. В то время виртуализация была, скорее, интересной технической находкой. Разработки в сфере виртуализации в 60-70-х годах проводились только компанией IBM. С появлением в компьютере IBM M44/44X экспериментальной системы пэйджинга, впервые был употреблен термин «виртуальная машина», который заменил более ранний термин «псевдомашина». Затем в мэйнфреймах IBM серии System 360/370 появилась возможность использования виртуальных машин для сохранения предыдущих версий операционных систем. До конца 1990-х годов никто кроме IBM так и не решился реализовать эту оригинальную технологию всерьез. Однако в 90-х годах стали очевидны перспективы идеи виртуализации: с ростом аппаратных мощностей, как персональных компьютеров, так и серверных решений, представится возможность использовать несколько виртуальных машин на одной физической платформе. На одной физической сети возможность реализации нескольких логических ИС.

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

В.Н. Квасницкий, Т.Б. Журавлева

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

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

Что же вызвало бурный интерес к технологиям виртуализации сегодня? В первую очередь это стремительное развитие 1Т, сопровождающееся следующими проблемными ситуациями:

- нехватка полезных площадей и электропитания для расширяющейся инфраструктуры;

- низкая загрузка серверных мощностей: по данным многих аналитиков, типичная загрузка серверов составляет 10-15%;

- переход к гетерогенным средам - необходимость работы различных операционных систем на одной аппаратной базе;

- низкая управляемость большими центрами обработки данных;

- необходимость иметь «дополнительное» оборудование без его приобретения.

Использование технологий виртуализации позволяет решить многие из этих проблем, обеспечивая:

- распределение полезной нагрузки многих не полностью загруженных серверов между меньшим их количеством;

- выполнение устаревших приложений в рамках отдельной, специально выделенной виртуальной машины;

- создание изолированной безопасной среды для запуска «ненадежных» приложений;

- гарантированное выделение ресурсов для особенно важных приложений;

- динамическое перераспределение ресурсов между приложениями;

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

Использование технологии виртуализации...

- миграция приложений между различными физическими серверами.

Различаются три основных метода виртуализации.

1. Полная виртуализация (full или native virtualization) - представление реальных аппаратных средств для «гостевой» ОС (guest OS) таким образом, что она может работать без изменений.

2. Паравиртуализация (paravirtualization) - предоставление виртуальных аппаратных средств «гостевой» ОС, требующее внесения в нее некоторых изменений.

3. Виртуализация на уровне ОС (operating system-level virtual-ization) - в отличие от двух других методов обеспечивает работу нескольких изолированных виртуальных серверов под управлением одной операционной системы.

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

Преимущество первого метода - отсутствие необходимости модификации ядра гостевой ОС.

Интересный подход к виртуализации - использование одной операционной системы для работы нескольких виртуальных серверов. Однако в этом случае запуск на одном компьютере виртуальных машин с приложениями, работающими под управлением различных ОС (например, Linux и Windows), становится невозможным. Как достоинство такого решения можно отметить менее жесткие требования к ресурсам со стороны виртуальных машин (поскольку в них не происходит запуск ядра ОС) и, как следствие, большее число одновременно работающих виртуальных машин.

Виды виртуализации

Виртуализация платформ. Под виртуализацией платформ понимают создание программных средств на основе существующих аппаратно-программных комплексов, зависящих или не зависящих от них. Система, предоставляющая аппаратные ресурсы и программное обеспечение, называется хостовой (host), а симулируемые ей системы - гостевыми (guest). Чтобы гостевые системы могли стабильно функционировать на платформе хостовой

В.Н. Квасницкий, Т.Б. Журавлева

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

Полная эмуляция (симуляция). При таком виде виртуализации виртуальная машина полностью виртуализует все аппаратное обеспечение при сохранении гостевой операционной системы в неизменном виде. Такой подход позволяет эмулировать различные аппаратные архитектуры. Например, можно запускать виртуальные машины с гостевыми системами для х86-процессо-ров на платформах с другой архитектурой (например, на RISC-серверах компании Sun). Долгое время такой вид виртуализации использовался, чтобы разрабатывать программное обеспечение для новых процессоров еще до того, как они были физически доступными. Такие эмуляторы также применяют для низкоуровневой отладки операционных систем. Основной минус данного подхода заключается в том, что эмулируемое аппаратное обеспечение весьма и весьма существенно замедляет быстродействие гостевой системы, что делает работу с ней очень неудобной, поэтому, кроме как для разработки системного программного обеспечения, а также образовательных целей, такой подход малоэффективен.

Частичная эмуляция.В этом случае виртуальная машина виртуализует лишь необходимое количество аппаратного обеспечения так, чтобы она могла быть запущена изолированно. Такой подход позволяет запускать гостевые операционные системы, разработанные только для той же архитектуры, что и у хоста. Таким образом несколько экземпляров гостевых систем могут быть запущены одновременно. Этот вид виртуализации позволяет существенно увеличить быстродействие гостевых систем по сравнению с полной эмуляцией и широко используется в настоящее время. Также в целях повышения быстродействия в платформах виртуализации, использующих данный подход, применяется специальная «прослойка» между гостевой операционной системой и оборудованием (гиперви-зор), позволяющая гостевой системе напрямую обращаться

Использование технологии виртуализации.

к ресурсам аппаратного обеспечения. Гипервизор, называемый также «Монитор виртуальных машин» (Virtual Machine Monitor), -одно из ключевых понятий в мире виртуализации. Применение гипервизора, являющегося связующим звеном между гостевыми системами и аппаратурой, существенно увеличивает быстродействие платформы, приближая его к быстродействию физической платформы.

К минусам данного вида виртуализации можно отнести зависимость виртуальных машин от архитектуры аппаратной платформы.

Частичная виртуализация. При таком подходе виртуальная машина симулирует несколько экземпляров аппаратного окружения (но не всего), в частности, пространства адресов. Такой вид виртуализации позволяет совместно использовать ресурсы и изолировать процессы, но не позволяет разделять экземпляры гостевых операционных систем. Строго говоря, при таком виде виртуализации пользователем не создаются виртуальные машины, а происходит изоляция каких-либо процессов на уровне операционной системы. В данный момент многие из известных операционных систем используют такой подход. Примером может послужить использование UML (User-mode Linux), в котором «гостевое» ядро запускается в пользовательском пространстве базового ядра (в его контексте).

Паравиртуализация. При применении паравиртуализации нет необходимости симулировать аппаратное обеспечение, однако вместо этого (или в дополнение к этому) используется специальный программный интерфейс (API) для взаимодействия с гостевой операционной системой. Такой подход требует модификации кода гостевой системы, что, с точки зрения сообщества Open Source, не так и критично. Системы для паравиртуализации также имеют свой гипервизор, а API-вызовы к гостевой системе называются «hypercalls» (гипервызовы). Многие сомневаются в перспективах этого подхода виртуализации, поскольку в данный момент все решения производителей аппаратного обеспечения в отношении виртуализации приходится искать у производителей операционных систем, которые слабо верят в возможности предлагаемого им средства. В настоящее время провайдерами паравир-туализации являются XenSource и Virtual Iron, утверждающие, что быстродействие паравиртуализации выше.

Виртуализация уровня операционной системы. Сутью данного вида виртуализации является виртуализация физического сервера

В.Н. Квасницкий, Т.Б. Журавлева

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

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

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

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

Использование технологии виртуализации...

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