УДК 004.4
УПРОЩЕННАЯ МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ОПЕРАЦИИ ПЕРЕМЕЩЕНИЯ ВИРТУАЛЬНОЙ МАШИНЫ МЕЖДУ ХОСТАМИ ВИРТУАЛИЗАЦИИ
Лохтуров Андрей Вячеславович, аспирант; МГТУ им. Н.Э. Баумана, Москва, Российская Федерация Лохтуров Игорь Вячеславович, студент; МФ МГТУ им. Н.Э. Баумана, Москва, Российская Федерация
Аннотация: В статье рассмотрен вопрос разработки универсальной для различных платформ виртуализации упрощенной математической модели процесса миграции виртуальной машины между хостами виртуализации Данная математическая модель необходима для оценки стоимости переноса объектов и для решения задачи балансировки нагрузки и размещения в рамках ресурсов кластера виртуализации. Предложенная модель позволяет производить сравнение виртуальных машин и контейнеров с разным профилем нагрузки, что позволит приводить кластер виртуализации к состоянию сбалансированности. Предложенная модель позволяет оценить потенциальное время миграции объекта, объем передаваемых данных, а также предлагает универсальный дискретный параметр для сравнения с другими виртуальными объектами. Универсальный параметр предлагается настраивать в зависимости от ценности одного из ресурсов в текущий момент времени.
A SIMPLIFIED MATHEMATICAL MODEL OF THE OPERATION TO MOVE A VIRTUAL
MACHINE BETWEEN HOSTS VIRTUALIZATION
Lokhturov Andrey Vyacheslavovich, graduate student; BMSTU, Moscow, Russia Lokhturov Igor Vyacheslavovich, student; BMSTU (MB), Moscow, Russia
Abstract: The article deals with the development of a simplified mathematical model of the migration process of a virtual machine between virtualization hosts that is universal for various virtualization platforms. This mathematical model is necessary for estimating the cost of migrating objects and for solving the problem of load balancing and placement within the virtualization cluster resources. The proposed model allows you to compare virtual machines and containers with different load profiles, which will allow you to bring the virtualization cluster to a balanced state. The proposed model allows you to estimate the potential migration time of an object, the amount of data transmitted, and also offers a universal discrete parameter for comparison with other virtual objects. The universal parameter can be configured depending on the value of one of the resources at the current time.
Для цитирования: Лохтуров, А. В. Упрощенная математическая модель операции перемещения виртуальной машины между хостами виртуализации / А. В. Лохтуров, И. В. Лохтуров. - Текст : электронный // Наука без границ. - 2020. - № 7 (47). - С. 37-42. - URL: https://nauka-bez-granic.ru/No-7-47-2020/7-47-2020/ For citation: Lokhturov A.V., Lokhturov I.V. A simplified mathematical model of the operation to move a virtual machine between hosts virtualization // Scince without borders, 2020, no. 7 (47), pp. 37-42.
В нагруженных системах корпоративной виртуализации нагрузка на систему может меняться лавинообразно, это происходит из-за модели потребления ресурсов. Ресурсы в системах виртуализации во многом являются разделяемыми между различными виртуализированными объектами. Так несколько виртуальных машин могут использовать один и тот же дисковый ресурс, процессорное время или сетевые интерфейсы сервера. При этом оперативная память является одним из тех ресурсов, который сложно поддается коллективному использованию без проблем с производительностью. В связи с этим ОЗУ отданная одной из ВМ остается у нее вплоть до завершения ее работы или до включения специальных механизмов принудительной передачи страниц памяти другим виртуальным машинам. Из-за того, что виртуальные машины используют разделяемые ресурсы, повышение нагрузки на одной из них может косвенно или напрямую влиять на другие виртуальные машины. Рост нагрузки может быть вызнан количеством запросов пользователей, которое может резко возрастать в зависимости от времени суток или дней недели, а также регламентными работами, например, резервным копированием. Проблема размещения виртуальных машин и использования ими ресурсов в том, что в текущий момент времени их расположение может быть не оптимально и серверные ресурсы могут быть нагружены неравномерно, из-за этого необходим механизм выполнения балансировки между серверами.
Такие механизмы реализованы во всех системах серверной виртуализации, но данный класс механизмов
отсутствует в системах контейнерной виртуализации из-за использования другой концепции работы виртуального объекта - контейнера. В контейнере пользовательские или системные данные и процессы обработки физически разделены, что позволяет запускать отдельные контейнеры, предназначенные только для обработки пользовательских запросов. Эта концепция позволяет производить балансировку нагрузки путем включения нового контейнера на альтернативном хосте, отключения старого из цепочки обработки запросов, и окончательного выключения старого контейнера. После выполнения данной последовательности можно считать, что процесс балансировки выполнен.
В системах серверной виртуализации такой подход с выключением и включением виртуальных машин в большинстве случаев не подходит, так как те приложения, которые требуют полноценной операционный системы могут хранить данные локально. Из-за этого, механизм перемещения виртуальных машин обязательно поддерживает режим живой миграции между ресурсами - без выключения виртуальной машины и без остановки приложений. Такой механизм реализован во всех корпоративных системах виртуализации, например: vMotion [1] в VMware vSphere, Live migration [2] в Microsoft Hyper-V, Migration[3] в KVM. Можно выделить два варианта использования данного механизма - перемещение виртуальных машин между серверными ресурсами двух серверов в кластере, в данном случае выполняется перемещение оперативной памяти виртуальной машины, причем перемещение выполняется до полной синхронизации переданных фрагментов или до переполнения определенного счетчика и как следствие отказ от миграции. Второй вариант - перемещение дисков виртуальной машины между дисковыми ресурсами, следовательно, выполняется блочная миграция файлов виртуальной машины и их измененной, за время перемещения, части.
Сам механизм, во всех системах, реализован похожим образом - при инициализации данного процесса производится определение, какой из
ресурсов требует перемещения; далее выполняется заморозка имеющегося объема данного ресурса; все изменяемые блоки помечаются и записываются поверх замороженной части; замороженная часть по специальному интерфейсу переносится на целевой ресурс; измененные блоки замораживаются и начинают также передаваться; процесс повторяется столько раз сколько потребуется до полной синхронизации или до выхода таймера или количества повторений (рис. 1).
Рисунок 1 - Схематичный процесс живой миграции виртуальной машины
Исходя из описанного процесса, можно сделать вывод, что на время операции создается полная копия виртуальной машины с выделением соответствующих ресурсов, плюс в дополнение к замороженной части переносимых ресурсов может быть добавлена такая же по объему измененная часть. Это происходит из-за особенностей работы механизма похожего на
создание снимка состояния, когда все изменения вносятся в аналогичный по потенциальному объему файл или пространство оперативной памяти,
а операции чтения последовательно проверяют наличие информации сначала в измененном блоке, затем в замороженном (рис. 2).
Чтение происходит из дельты или из базового уппс!к
Запись происходит е новый угг^к диск, являющимся дельтой
Рисунок 2 - Схема работы механизма снимков состояния
Следовательно, в худшем случае на время миграции выделяемые ресурсы на ВМ могут быть втрое (первоначальный объем ресурсов, измененная часть и выделенный объем ресурсов на целевом хосте) больше ее первоначального объема. Дискретные параметры работы виртуальной машины позволят сравнивать между собой разные виртуальные машины с отличающимся профилем нагрузки. Информация о том, сколько ресурсов будет необходимо на период миграции нужна, для вычисления оптимальной схемы перемещения виртуальных машин. Для вычисления потенциального объема выделяемых ресурсов необходимо также понимать, сколько приблизительно времени потребуется на выполнение данной операции для виртуальной машины. Время позволит вычислить
объем измененных блоков. Точно вычислить данный параметр невозможно, так как предсказать мгновенное изменение в потреблении ресурсов не представляется возможным.
Поэтому можно вывести упрощенную формулу приблизительного времени миграции виртуальной машины между серверными ресурсами, дополнительными обобщениями является использование полной пропускной способности серверов для миграции выбранной виртуальной машины и при этом скорость изменения данных не меняется во время передачи виртуальной машины на другой сервер:
где: Яс - занятые ресурсы виртуальной машины, R - объем изменённых
блоков за последний отчетный период, N - доступная пропускная способность интерфейса для миграции.
Данная формула учитывает, что для передачи всех измененных страниц или блоков может потребоваться несколько повторов этой операции, но не учитывает то, что во время этих итераций параметр Яаш может меняться. Но даже такая формула является подходящей для оценки сравнения перспективы инициирования миграции той или иной виртуальной машины.
Выделяемый же объем памяти или дисковых ресурсов можно оценить при помощи следующей формулы:
блоков за последний отчетный период, Т - время.
Для получения универсального дискретного параметра предлагается использовать относительную ценность объема оперативной памяти в мегабайтах и некоторое отношение к нему процессорных ресурсов в мегагерцах. Соотношение может быть изменяемым и будет показывать некую универсальную сумму для последующего сравнения виртуальных машин при инициализации вычислений в задаче размещения.
им с 4 &
V = 2*R + R * T, R * T < R
Г П7П & 17711 Г
где: Яс - занятые ресурсы виртуальной машины, ^ - объем изменённых
блоков за последний отчетный период, Т - время.
Двойное выделение объема связано с тем, что некоторое время одинаковые ресурсы будут располагаться в двух местах одновременно, Яаш * Т будет верным условием до достижения значения ^ .
Также в качестве дискретного параметра для сравнения может быть использован параметр передаваемого объема, который также может быть вычислен:
V = R + R * T
где: Яс - занятые ресурсы виртуальной машины, ^ - объем изменённых
& /77 Л
где: Ум - объем оперативной памяти, п - целевое отношение задаваемое исходя из текущей ценности ресурса, Ус - объем процессорных ресурсов.
Таким образом могут быть получены дискретные параметры для сравнения разных виртуальных машин или контейнеров в любой момент их жизненного цикла. Эти дискретные данные необходимы для понимания, какой набор виртуальных объектов требуется мигрировать или пересоздать на других хостах для выполнения балансировки нагрузки. Естественно, данная модель является упрощенной и не может быть использована для точных вычислений, так как на нее будет влиять мгновенное изменение нагрузки на дисковую или сетевую подсистемы, а также выросшая или уменьшившаяся нагрузка на процессорные ресурсы и оперативную память.
СПИСОК ЛИТЕРАТУРЫ
REFERENCES
Материал поступил в редакцию 28.06.2020 © Лохтуров А.В., Лохтуров И.В., 2020