Введение к работе
Актуальность работы
В диссертационной работе рассматривается задача управления потреблением физической памяти группами процессов с учетом следующих требований: подсчет объема используемой процессами физической памяти, ограничение процессов в объеме используемой памяти, гарантированное выделение определенного объема памяти процессам, корректная работа в случае присутствия участков разделяемой памяти. Задача управления ресурсами и родственная ей задача обеспечения гарантированных параметров качества обслуживания на уровне операционной системы весьма актуальны для современных вычислительных систем коллективного пользования (например, для центров хранения и обработки данных). На сегодняшний день, в эпоху большой популярности систем виртуализации и изоляции компонентов вычислительных систем, задача разделения ресурсов стоит особенно остро.
Операционная система с поддержкой виртуализации дает возможность запускать на одном компьютере несколько виртуальных машин или серверов , позволяя, таким образом, более экономно и полно использовать имеющиеся вычислительные мощности.
Уже больше года компания Intel поставляет все свои настольные процессоры со встроенной технологией для аппаратной поддержки виртуализации под названием VT, которая существенно повысила производительность существующих программных реализаций этой технологии. В то же самое время уже создан огромное количество различных программных комплексов, работающих с поддержкой этой технологии, например, VMWare, Parallels, KVM и т. д. Если раньше основными пользователями этой технологии были компании с большим парком техники, то сейчас
В англоязычных источниках популярностью пользуется понятие «контейнера» для определения виртуального сервера
она доступна на каждом персональном компьютере.
Вопросы распределения ресурсов, их планирования и гарантированного выделения являются одними из самых важных в подобного рода системах, ведь от решения этих вопросов напрямую зависит не только качество обслуживания пользователей этих систем, но и вопросы безопасности. Один из основных ресурсов вычислительной системы - физическая память - не исключение.
Также следует заметить, что вопрос разделения и гарантированного выделения ресурсов возникает не только в системах виртуализации, но и в самих многопользовательских операционных системах (ОС). Например ни в Windows, ни в Linux, которые позволяют огромному количеству пользователей одновременно работать и выполнять свои приложения, до сих пор нет удовлетворительных средств для управления ресурсами: памятью, процессором, диском и др. Для отдельных ресурсов существуют средства контроля за отдельными процессами или нитями, для некоторых - на уровне отдельных пользователей, но в общем случае нет никаких средств контролировать произвольную группу процессов, которой, в конечном счете, является виртуальная машина. Тонкие различия между различными ресурсами ОС и их использованием не позволяет эффективно решить эти задачи с помощью единого подхода.
Цель работы
Целью работы является построение математических моделей, описывающих процессы потребления физической памяти в многопользовательских и виртуализационных системах, разработка новых алгоритмов и комплекса программ по управлению памятью в операционной системе, который должен обладать следующими свойствами:
обеспечивать изоляцию виртуальных сред друг от друга;
ограничивать виртуальные среды в потреблении физической памяти;
обеспечивать требуемый уровень сервиса для виртуальных машин.
Для достижения поставленных целей формулируются основные требования и исследуется соответствие им существующих моделей и подходов. Среди рассмотренных моделей выделяется одна, которая наиболее полно, по сравнению с остальными, соответствует поставленным требованиям. Затем анализируются ее недостатки и разрабатываются математические модели и алгоритмы, призванные дополнить ее и довести до полного соответствия поставленным требованиям.
Научная новизна
В работе предложена стратегия управления памятью, представляющая собой развитие нескольких ранее опубликованных подходов и ряд оригинальных решений.
Предложена новая математическая модель предоставления гарантий выделения физической памяти группе процессов, позволяющая управлять распределением памяти в современных многопользовательских операционных системах и системах с поддержкой виртуализации. Показана принципиальная применимость предложенной модели к другим типам ресурсов.
Предложена математическая модель, позволяющая существенно повысить производительность алгоритмов, обеспечивающих подсчет количества используемой физической памяти. С использованием предложенной модели разработан новый алгоритм, позволяющий ограничивать группы процессов по объему используемой памяти, который является расширением уже существующего алгоритма. Вычислительные эксперименты подтвердили более высокую производительность нового алгоритма.
3. Предложена модель «виртуальной выгрузки страниц на диск», позволяющая создавать виртуальные среды, не отличающиеся по принципам администрирования и поведению от физических.
Научная и практическая ценность работы
Известные на сегодня стратегии решения задач управления памятью в системах виртуализации обладают различными недостатками и часто вообще неудовлетворительны, поэтому в этой области ведутся интенсивные исследования.
Разработанная в работе модель гарантированного выделения ресурсов оказалась пригодной не только в подсистеме управления памятью, но и в других подсистемах разделения ресурсов ОС - например, в подсистеме планирования выполнения задач и разделения процессорного времени.
Часть реализованного программного комплекса была внедрена автором совместно со специалистами из компаний IBM и Google в основное ядро Unix-подобной операционной системы Linux , которая является одной из наиболее популярных операционных систем и установлена как на домашних компьютерах, так и на крупных серверах по всему миру.
Кроме того, реализация всех описанных моделей была внедрена в продукты компании Parallels Virtuozzo Containers3 и OpenVZ4, представляющие собой виртуализационные решения на базе ядра Linux. Их использование показало, что модели представляют не только теоретический интерес, но и успешно решают поставленные перед ними практические задачи, а именно - позволяют контролировать потребление памяти виртуальной машиной.
2Исходные тексты доступны по адресу
3. par 4
Методы исследования
Для построения моделей в работе были использованы теория алгоритмов, методы системного программирования и теории операционных систем, методы линейной алгебры и теории вероятности.
Для проведения численных исследований предложенные модели реализованы как составная часть ядра операционной системы Linux, и проведены эксперименты с использованием модельных и реальных приложений.
Аппробация результатов работы
Все модели, подходы и результаты, изложенные в работе опубликованы, в том числе в изданиях, рекомендованных ВАК РФ [1, 2, 3].
Результаты диссертации доложены на XLVII и XLIX научных конференциях Московского физико-технического института (Москва-Долгопрудный, 2004 - 2006) и на международных конференциях Linux-разработчиков «Linux Symposium» (Оттава, Канада, 2007) и «LinuxConf Europe» (Кэмбридж, Великобритания, 2007). Доложенные материалы получили одобрение специалистов, включая ключевых разработчиков ядра Linux. Так же модель предоставления гарантий в сокращенной форме опубликована в документации к проекту OpenVZ .
Реализации алгоритмов, внедренные в продукты Parallels Virtuozzo Containers и OpenVZ, установлены на тысячах серверов по всему миру и обеспечивают корректную работу и изоляцию почти полумиллиона виртуальных серверов.
Структура и объем работы