Унификация системного программного обеспечения на основе технологии виртуализации

УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

УДК 004.452; 004.946

Д.Г. Дьяченко, соискатель,

УНИФИКАЦИЯ СИСТЕМНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ ТЕХНОЛОГИИ ВИРТУАЛИЗАЦИИ

Рассмотрен один из подходов к унификации системного программного обеспечения на основе технологии виртуализации. Приведена классификация способов виртуализации.

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

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

Усложнение управления информационно-телекоммуникационной инфраструктурой (ИТ-инфраструктурой) предприятия приводит к еще

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

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

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

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

внешним миром, то для неё единственным способом определить наличие и состояние какого-либо объекта остаются стандартные действия, описываемые обычно производителем "железа" — начиная от детектирования подключения этого устройства (сейчас это обычно выполняется за счет специального протокола «Plug-and-Play»), до возможности «пощупать» оборудование путем выполнения каких-то конфигурационных действий (например, можно отправить на последовательный порт, к которому, как предполагается, подключен модем, текстовую строку «AT» и ожидать, что, если модем работает, обратно придет текстовая строка «ОК»). В таких условиях появляется возможность создать своего рода «виртуальную реальность» для «органов чувств» ОС. Если сымитировать ответы физических устройств программным способом, то как раз и получится «виртуальная реальность», состоящая из виртуальных моделей физических устройств, которые дают вполне осмысленные ответы на запросы ОС и поведение которых максимально приближено к оригиналу. Иными словами, получится некий эмулируемый компьютер - (виртуальная среда + набор виртуального оборудования), который практически полностью эквивалентен такому же набору физического оборудования - «ящику с компьютерным железом». Естественный следующий шаг — установка самой обычной ОС внутрь такого «виртуального ящика» и использование его для предоставления какого-либо сервиса. Эмулятор компьютера представляет собой некий процесс, внутри которого осуществляется моделирование набора стандартных устройств компьютера — памяти, сетевой платы, графической платы, клавиатуры, мыши и т. д. Особо стоит отметить, что кроме устройств эмулируется и BIOS, поэтому в этот процесс можно ставить полнофункциональную операционную систему, которая будет работать, «не зная» о том, что она находится внутри эмулятора. Такая низкоуровневая виртуализация широко распространена на данный момент, поскольку позволяет гибко разнести вопросы поддержки железа до уровня виртуальной машины и поддержки операционной системы. Именно в связи с появлением низкоуровневой виртуализации возник бум «облачных технологий». В частности, предоставление типовой «облачной» услуги IAAS (Infrastructure as a service) основано на абстрагировании уровня операционной системы от уровня hardware.

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

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

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

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

Рис. 1. Уровни виртуализации сервисов в операционной системе

С помощью унификации систем хранения эффективно решаются типовые задачи администрирования в гетерогенной (разнородной) среде:

1. Подключение новых серверов - унификация драйверов системы хранения. Для подключения нового сервера к СХД необходимо добавить новую зону в настройки коммутаторов; создать новую RAID-группу или выбрать уже созданную; выделить на ней место (LUN) данному серверу; установить драйверы на сервер, которые соответствуют выбранной дисковой системе. Если мы захотим подключить к серверу различные дисковые системы, то с драйвером могут возникнуть существенные затруднения из-за проблем с совместимостью. Система виртуализации заметно упрощает картину. Зонирование достаточно настроить для каждого сервера однократно. При этом выделение дополнительного пространства не потребует перенастройки зон, так как весь трафик идет «от лица» системы виртуализации. Выделение дискового пространства не требует знаний по администрированию конкретной СХД — достаточно уметь управлять системой виртуализации. Проблем с драйверами также не возникает, нужен только один драйвер, независимо от того, на какой (каких) СХД физически находятся данные. А это значительно упрощает не только первоначальную инсталляцию, но и дальнейшее сопровождение.

2. Выделение дополнительного дискового пространства серверу — унификация интерфейса взаимодействия СХД с операционной системой. Практически все основные системы виртуализации сейчас поддерживают систему thin provisioning (выделение дискового пространства по мере необходимости), которая появилась в системах виртуализации не так давно. Данная технология позволяет выделить серверу заведомо больший объем дискового пространства, чем требуется, но реальное дисковое пространство будет выделяться по мере записи новых данных. Это позволяет оптимизировать использование дискового пространства, при этом наблюдается существенная экономя на закупке новых дисков.

3. Миграция данных между системами хранения. Миграция данных между системами является одной из основных проблем в больших ИТ-инфраструктурах. Причинами для миграции могут быт: перенос данных на новую, более быструю систему; временный вывод системы из обслуживания (например, для модернизации). Даже миграция внутри одной системы хранения (например, для переноса тома с дисков FC на диски SATA) может быть довольно сложным процессом, который потребует остановки серверов на длительное время. Многие производители предлагают специальные решения, которые способны упросить эту задачу, но они не универсальны и довольно сложны. Так как в первую очередь необходимо обеспечить консистентность данных, то после начала переноса данных они не должны изменяться, следовательно, сервисы, которые обращаются к ним, должны быть остановлены все время, пока осуществляется перенос. Если объем данных велик, то не всегда есть возможность уложиться в выделенный промежуток времени. И вот, уже стоит выбор между дополнительными затратами на решение по миграции и потерями от длительного простоя. Но есть и третий вариант — в случае, когда внедрена система вир-

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

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

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

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

Список литературы

1. Сабадаш Д. Виртуализация - теория и практика [Электронный ресурс] // Компьютерный портал F1CD №15, раздел «Программное обеспе-чение».2008. - Режим доступа: http: //www.f1cd.ru/soft/reviews/ virtualiza-tion_technology_page_1/, свободный. - Загл. с экрана.

2. Тормасов А.Г. Виртуализация ОС// Открытые системы.№1.2002.-Режим доступа: http://www.osp.ru/os/2002/01/180946/, свободный. - Загл с экрана.

3. Зверев В. Комплексная виртуализация СХД в мультипротоколь-ном кластере непрерывной защиты данных масштаба предприятия // Проектирование ИТ инфраструктуры. - М: Группа компаний TRINITY, 2012. -Режим доступа: http://www.trinitygroup.ru/articles/virtualization, свободный. - Загл. с экрана.

D.E. Dyachenko

UNIFICATION OF SYSTEM SOFTWARE IN TERMS OF VIRTUALIZATION TECHNOLOGY

One of the approaches to unification of system software in terms of virtualization technology is considered. Classification of virtualization methods is adduced.

Key words: system software, unification, virtualization technology.

Получено 17.05.12

УДК 004.413.5; 004.942

В.Н. Изотов, д-р техн. наук, проф., зав. кафедрой,

АНАЛИЗ МОДЕЛЕЙ ОЦЕНКИ ЭФФЕКТИВНОСТИ УНИФИКАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРНЫХ СЕТЕЙ

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

Ключевые слова: компьютерные сети, программное обеспечение, принципы унификации, имитационное моделирование.

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

- функциональностью, т.е. полнотой удовлетворения потребностей пользователя;

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