Анализ подходов организации динамической миграции виртуальных машин
Конференция: XI Международная научно-практическая конференция «Научный форум: технические и физико-математические науки»
Секция: Информатика, вычислительная техника и управление
XI Международная научно-практическая конференция «Научный форум: технические и физико-математические науки»
Анализ подходов организации динамической миграции виртуальных машин
Analysis of approaches to the organization of dynamic migrating virtual machines
Aleksandr Bloshkin
student of Penza State University, Russia, Penza
Viktor Knyazev
Candidate of Engineering Sciences, assistant professor in Penza State University, Russia, Penza
Аннотация. В настоящий момент большое количество информационных технологий включают в себя технологию виртуализации. Эта достаточно новая технология еще не полностью изучена и не решены некоторые проблемы ее применения. Одна из таких проблем это проблема выбора корректного алгоритма динамической миграции. В данной статье рассматриваются возможные варианты решения этой проблемы.
Abstract. At the moment, a large number of information technologies include virtualization technology. This fairly new technology has not yet been fully studied and some problems of its application have not been solved. One of these problems is the problem of choosing the correct algorithm for dynamic migration. This article looks at possible solutions to this problem.
Ключевые слова: виртуализация; виртуальные машины; динамическая миграция; системы управления виртуальными машинами.
Keywords: virtualization; virtual machines; dynamic migration; virtual machine management systems.
Виртуальные машины в настоящее время демонстрируют интенсивное развитие и широкое применение, что объясняется двумя основными причинами: появлением большого числа разных операционных систем (ОС), предъявляющих специфические требования к параметрам используемых аппаратных компонентов компьютера и большими затратами на администрирование и сложностью обслуживания компьютеров, на которых установлено несколько различных операционных систем (в том числе в плане обеспечения требуемой надежности и безопасности работы). [1]
Виртуализация представляет собой набор вычислительных ресурсов, который отделен от аппаратной реализации и который предоставляет возможность логически изолировать друг от друга вычислительные процессы, выполняемые на одном физическом ресурсе. Чаще всего виртуализация встречается в виде виртуальных машин, которые позволяют осуществить параллельный запуск нескольких операционных систем на одной физической машине в рамках одной родительский операционной системы, называемой гипервизором [2]. Применение такого рода виртуализации позволяет решать задачи различного рода. Виртуальные машины могут использоваться для защиты или разделения информации, исследования производительности программного обеспечения, оптимизации использования ресурсов мейнфреймов или для упрощения управления кластерами [3].
При виртуализации операционная система внутри виртуальной среды, – гостевая ОС (рис. 1) – будет полагать, что в ее распоряжении имеется вся полнота назначенного ресурса. Но прозрачно для нее виртуализационное программное обеспечение – монитор виртуальной машины или гипервизор (рис. 1) - может изменять объем выделенного ресурса. Этот процесс называется мультиплексированием или виртуализацией ресурса. Хорошей аналогией здесь являются процессы, исполняющиеся в системе. Прозрачно для них ОС распределяет память, вычислительную мощность и пропускную способности сети в соответствии с квотами и фактическими потребностями. Так и гипервизор управляет виртуальными машинами (под виртуальной машиной подразумевается комплекс из гостевой ОС, виртуальной среды исполнения и монитора виртуальной машины, рис. 1), перераспределяя ресурсы в соответствии с их реальным потреблением. [4]
Рисунок 1. Виртуальная машина
Существует ряд программных средств для управления виртуальными машинами. [1]
Один из самых популярных продуктов – набор программных средств для виртуализации от компании VMware. Эти средства позволяют осуществлять серверную виртуализацию при помощи различных компонентов, таких как: VMware vSphere - платформа для виртуализации ИТ-инфраструктуры предприятия, VMware Server – это программное обеспечение, позволяющее не только создавать и запускать виртуальные машины, а также использовать возможности создания снимков (snapshot), но и удалённо управлять ими. Также существует набор приложений для персональных компьютеров, в их числе: VMware Workstation - позволяет создавать и запускать одновременно несколько виртуальных машин (x86-архитектуры), в каждой из которых работает своя гостевая операционная система, VMware Player - бесплатный (для личного некоммерческого использования) программный продукт, предназначенный для создания (начиная с версии 3.0) и запуска готовых виртуальных машин.
Virtual Box – программный продукт виртуализации, имеющий ряд существенных отличий от продуктов компании Vmware. В число этих отличий можно отнести возможность поддержки USB 2.0, что позволяет устройствам хост-машины быть доступными для гостевых операционных систем, а также поддержка 64-битных гостевых систем даже на 32-битных системах. Базовая версия программного продукта полностью открыта по лицензии GNU GPL, что позволяет использовать данное ПО без каких-либо ограничений.
Первая версия продукта Microsoft Hyper-V была выпущена в 2008 году на замену устаревшему на тот момент Virtual PC. Данный продукт представлял из себя модуль операционной системы Windows Server. Архитектура системы выглядела следующим образом: между операционной системой и оборудованием вводится слой гипервизора, так же имеется отдельная операционная система, предназначенная для управления гипервизором и имеющая больше привилегий по сравнению со всеми остальными [5].
Одним из самых перспективных направлений развития виртуализации является направление так называемой динамической миграции виртуальных машин. Динамическая миграция позволяет в реальном времени осуществить перемещение виртуальной машины между различными физическими машинами, соединенными между собой по сети. Динамическая миграция становится заметной технологией для эффективной балансировки загрузки и оптимизации развертывания виртуальных машин на физических узлах в центрах обработки данных. До появления динамической миграции использовалась так называемая сетевая миграция, которая требовала для перемещения виртуальной машины полной её остановки во время копирования на другой физический сервер, что приводило к временной недоступности сервиса. Динамическая миграция позволяет решить эту проблему за счет создания снимка виртуальной машины и передачи его на другую физическую машину в фоновом режиме. Благодаря такому способу работы, задержка работы сервиса составляет несколько секунд, требуемых для развертывания снимка [6].
Для эффективного использования метода динамической миграции необходимо решить основные проблемы, связанные с динамической миграцией.
Существуют ситуации, когда текущее местоположение виртуальной машины перестает удовлетворять необходимым требованиям для его использования. При этом необходимо учитывать несколько параметров, таких как физическая топология, потребляемый трафик, продолжительность миграции, непрерывность работы сервиса и т. д.
Процесс динамической миграции потребляет различные виды ресурсов, такие как процессорное время, диск, а так же трафик на пути от исходной до целевой машины.
Основная задача миграции – позволить виртуальным машинам быть перенесенными в соответствии со спросом на их услуги. Одна из главных проблем заключается в том, как обеспечить постоянную доступность услуг, которые предлагает виртуальная машина. Основным параметром является время миграции, которое в первую очередь зависит от размера виртуальной машины и производительности глобальной сети. Производительность является постоянно меняющимся параметром, ухудшение которого вызывает серьезные опасения относительно возможности осуществления быстрой и надежной динамической миграции на другой узел. Решением в данном случае может являться выделенная линия для динамической миграции. Тем не менее, не всегда можно гарантировать такие линии между удаленными узлами. Считается, что методы динамической миграции должны быть приспособлены для глобальной сети.
Другой вопрос, который возникает из-за миграции – это новые уязвимости безопасности, которые могут использоваться злоумышленниками, что особенно актуально для операционной системы специального назначения. Уязвимости могут быть выявлены на трех различных уровнях: уровень модуля данных, который должен быть защищен от возможности пользователям получать полный доступ к мигрирующей виртуальной машине; уровень планирования данных, когда миграция требует перенос памяти и содержимого дисков через несколько машин и сетей; уровень планирования управления, когда злоумышленники используют ложные команды, которые вызывают перенос виртуальной машины в нежелательные места.
В ближайшем будущем количество виртуальных машин, размещенных в центрах обработки данных, значительно возрастет, что приведет к увеличению сложности управления. Должны быть учтены многие противоречивые задачи и требования, связанные с производительностью и потреблением энергии. Поиск масштабируемого решения, которое позволит определять эффективные стратегии управления решениями о миграции является проблемой, которая требует дальнейшего изучения. Необходимы автоматизированные методы управления миграцией для устранения сложности и проблем масштабируемости. Кроме того, схемы управления должны также учитывать вопрос о реорганизации элементов сети (например, межсетевые экраны, таблицы маршрутизации) после миграции виртуальных машин [7].
Проблематика динамической миграции виртуальных машин также заключается в выборе подхода к определению необходимости осуществления миграции какой-либо виртуальной машины. Рассмотрим несколько подходов к решению данной проблемы.
Первый подход заключается в том, что управление кластером виртуальных машин и их распределение между машинами-хостами осуществляется администратором кластера, обладающим уникальным правом на осуществление миграции. К преимуществам такого подхода можно отнести централизованность всей системы, а так же её относительная безопасность, так как управление всей системой сосредоточено в руках одного человека. Минусами такого подхода можно назвать неполную информированность о состоянии системы всех её узлов. Вероятна ситуация, когда динамическая миграция между узлами будет осуществлена в момент осуществления какого-либо действия с виртуальной машиной оператором или иным участником системы. В таком случае управление системой становится неэффективным.
Второй способ подразумевает отказ от роли администратора при принятии решения о динамической миграции. Решение в данном случае принимают только источник и приемник миграции. В случае необходимости источник миграции при помощи пользователя или в автоматическом режиме подает запрос на миграцию потенциальному приемнику. Миграция в таком случае будет осуществлена только при согласии обоих участников операции на ее осуществление. Такой подход позволяет устранить минусы предыдущего подхода, так как миграция будет осуществляться только при подтверждении каждого из участников. Однако подобная децентрализация является также и минусом данного подхода, так как не всегда является необходимым участие в принятии решения о миграции источника и приемника миграции, например, в случаях, когда виртуальные машины работают в автономном режиме, выполняя задачи сервера или подобные.
Одним из вариантов устранения минусов данных подходов является применение комбинированного подхода, который собирает в себе признаки первого и второго подходов. Динамическая миграция при таком подходе осуществляется за счет «голосования» каждого из участников системы о необходимости миграции. Источник миграции может подать запрос на осуществление миграции приемнику, приемник может либо дать согласие, либо отказать в миграции. «Решающим голосом» в данной цепочке обладает администратор кластера виртуальных машин, который может принудительно осуществить динамическую миграцию или дать отказ на ее осуществление. Данный подход может быть широко применим для решения различных задач, в которых используется динамическая миграция, в числе которых как управляемые пользователем системы, так и системы, работающие в полностью автоматическом режиме.