АППАРАТНО-ВЫЧИЛИСТЕЛЬНЫЙ КОМПЛЕКС ВИРТУАЛИЗАЦИИ И УПРАВЛЕНИЯ РЕСУРСАМИ В СРЕДЕ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ
HARDWARE-COMPUTER SYSTEM FOR VIRTUALISATION AND MANAGEMENT OF RESOURCES IN CLOUD COMPUTING ENVIRONMENT

Заявленное изобретение, в общем, относится к области облачных вычислительных систем, предназначенных для обработки данных.
Развитие и модернизация ИТ-инфраструктуры (ИТ - информационные технологии) организаций государственного сектора, стратегических промышленных предприятий и компаний также, как и в целом в коммерческом секторе, идут по пути централизации вычислений, строительства высокопроизводительных ЦОД (центров обработки данных) или аренды вычислительных ресурсов и сервисов. Для крупных компаний и организаций это предполагает построение/аренду распределенных вычислительных сред.
В качестве ключевых недостатков существующего в настоящее время ИТ-ландшафта систем, построенных на базе классической архитектуры, обозначены: низкий коэффициент использования ресурсов, неоднородная нагрузка, избыточное дублирование, сложность и непрозрачность управления, низкая мобильность ресурса, что препятствует его оперативному перераспределению между различными функциями.
Из уровня техники ([1], с.44) известно построение вычислительных систем в виде кластеров (многомашинных систем), которые представляют собой вычислительный комплекс, состоящий из нескольких компьютеров (узлов), а также программные и аппаратные средства связи компьютеров, которые обеспечивают работу всех компьютеров комплекса как единого целого.
Кластеры применяют для повышения надежности и производительности вычислительной системы. Надежность повышается за счет того, что при отказе одного из узлов кластера вычислительная нагрузка (или часть ее) переносится на другой узел.
Для обмена служебной информацией узлами используются межпроцессорные связи. С помощью этих связей каждый узел кластера периодически проверяет состояние других узлов и выполняемых ими вычислительных задач. Если какой-либо узел или одна из его задач (входящая в набор защищаемых от отказов задач) изменили свое состояние на неработоспособное, то начинается процедура перемещения (реконфигурации) нагрузки на один из работоспособных узлов. При этом защищаемая задача должна хранить свои данные на одном из разделяемых дисков, чтобы новый узел смог продолжать их использовать после отказа основного.
Однако такое решение имеет все перечисленные выше недостатки, поскольку отсутствует механизм управления ресурсами таким образом, чтобы обеспечивалось оптимальное распределение нагрузки в системе.
Сложность и непрозрачность управления кластером обусловлена тем, что каждый из компьютеров, входящих в его состав, может работать под управлением собственной, отличной от других, операционной системы.
Кроме того, указанное решение имеет большое время реконфигурации, поскольку оно связано с активацией новой копии программного процесса на другом узле.
При этом также возможна потеря части данных, находившихся в оперативной памяти отказавшего узла.
Наиболее близким аналогом настоящего изобретения является аппаратно-вычислительный комплекс для предоставления доступа к программному обеспечению в концепции облачных вычислений, включающий связанные между собой и соединенные с Интернет группу ЭВМ, группу ЭВМ для хранения программных сессий, файловые хранилища и высокопроизводительные вычислительные ресурсы, при этом аппаратно-вычислительный комплекс дополнительно снабжен ЭВМ учета ресурсов, через которую связаны группа ЭВМ для хранения программных сессий и высокопроизводительные вычислительные ресурсы ([2]).
Указанный комплекс, как следует из описания, обеспечивает достижение технического результата в виде расширения класса программных продуктов, которые могут быть установлены в инфраструктуру хаба (платформы, на которую можно установить программный продукт). При этом система учета ресурсов (управления), которую предусматривает такой комплекс, обеспечивает лишь ограничение доступа к ресурсам лицам, не прошедшим проверку (см. [2], с.3, стр.41-43).
Таким образом, комплекс, принятый в качестве наиболее близкого аналога настоящего изобретения, также имеет все перечисленные выше недостатки, поскольку использованная в нем система учета ресурсов не обеспечивает их оптимальное распределение с учетом вычислительных мощностей узлов.
Кроме того, в указанном комплексе отсутствует какое-либо техническое решение проблемы длительного времени реконфигурации узлов.
Указанные выше недостатки решаются заявленным изобретением, которое позволяет обеспечить эффективное распределение нагрузки в системе путем управления ресурсами, а также снизить время реконфигурации узлов.
Предложен аппаратно-вычислительный комплекс виртуализации и управления ресурсами в среде облачных вычислений.
Предпочтительная реализация предлагаемого аппаратно-вычислительного комплекса виртуализации и управления ресурсами в среде облачных вычислений включает в себя связанные между собой и соединенные посредством сети первую группу рабочих ЭВМ и вторую группу ЭВМ для хранения программных сессий, а также ЭВМ управления, через которую связаны вторая группа ЭВМ для хранения программных сессий, высокопроизводительные вычислительные ресурсы и разделяемые файловые хранилища.
При этом комплекс отличается тем, что в него дополнительно введены модуль виртуализации, модуль диспетчеризации и средство управления графиком, при этом модуль виртуализации связан со второй группой ЭВМ для хранения программных сессий и с ЭВМ управления, модуль диспетчеризации связан со второй группой ЭВМ для хранения программных сессий и с ЭВМ управления, средство управления графиком связано со второй группой ЭВМ для хранения программных сессий и с ЭВМ управления, причем модуль виртуализации выполнен с возможностью создания виртуальной машины (ВМ) посредством эмуляции, по меньшей мере, одного аппаратного ресурса, выбранного из: высокопроизводительных вычислительных ресурсов, разделяемых файловых хранилищ, памяти и создания однозначных связей между, по меньшей мере, одним выбранным аппаратным ресурсом и его эмуляцией; модуль диспетчеризации выполнен с возможностью управления процессами выделения/возврата аппаратных ресурсов для ВМ и назначения для каждой ВМ параметров вес и лимит, где параметр вес определяет величину реального доступного процессорного времени, а параметр лимит определяет величину максимального доступного процессорного времени; средство управления графиком выполнено с возможностью распределения сетевых ресурсов между ВМ на основании информации, полученной от ЭВМ управления.
Технический результат, достигаемый заявляемым изобретением, заключается в существенном снижении времени перевода нагрузки между узлами за счет представленной технологии виртуализации, поскольку она не зависит от типа установленной операционной системы на компьютере пользователя (рабочей ЭВМ) и не требует активизации новой копии программного процесса. Кроме того, введение модуля диспетчеризации с объявленными функциями позволяет обеспечить эффективное распределение нагрузки в системе, учитывая запросы от ЭВМ пользователей и доступные вычислительные мощности реальных устройств.
Указанные выше и другие преимущества заявленного изобретения станут ясными специалисту из приведенного ниже подробного описания существа заявленного изобретения.
Необходимо отметить, что изложенные ниже сведения не следует принимать как ограничивающие объем правовой охраны заявленного изобретения, определенный формулой, поскольку они приведены лишь в качестве примера осуществления изобретения. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.
Под сетью в данном случае может пониматься как сеть Интернет, так и другие виды сетей (например, LAN, WLAN и т.п.).
Для преодоления указанных выше недостатков, существующих в уровне техники решений, в предлагаемый аппаратно-вычислительный комплекс дополнительно вводится система виртуализации аппаратных ресурсов.
Технология виртуализации в данном случае представлена гипервизорной виртуализацией аппаратных ресурсов. В основе гипервизорной виртуализации лежит гипервизор (монитор виртуальных машин). Он выполняет роль посредника между физическими устройствами сервера и их представлением в гостевой операционной системе. Отличается гибкостью и поддержкой практически любых операционные систем в качестве гостевых операционных систем.
Система виртуализации и управления ресурсами позволяет обеспечить выполнение следующих функций.
Обеспечение возможности виртуализации и разделения между отдельными виртуальными машинами следующих типов аппаратных (физических) ресурсов хоста: физические процессоры, оперативная память, ресурсы хранения данных, внешние аппаратные интерфейсы (USB, IEEE 1394, RS-232, FC, SAS, SCSI, IDE, LPT, СОМ). Монопольное предоставление доступа виртуальной машины к конкретному интерфейсу является частным случаем виртуализации. Виртуализация данных интерфейсов осуществляется как выборочно, в соответствии с потребностями в данных интерфейсах создаваемых виртуальных машин, так и одновременно.
Обеспечение возможности запуска и выполнения (в режиме разделения ресурсов) в рамках виртуальных машин следующих типов гостевых операционных систем (далее ОС): а) ОС семейства MS Windows, сертифицированные по требованиям безопасности информации, с возможностью использования в автоматизированных системах с классом защищенности не ниже 1Г; б) ОС семейства Linux, сертифицированные по требованиям безопасности информации, с возможностью использования в автоматизированных системах с классом защищенности не ниже 1Г.
Обеспечение возможности дискретного изменения количества выделенных виртуальным машинам ресурсов (квоты процессорного времени, размеров ресурсов дискового хранения, размеров оперативной памяти).
Обеспечение диспетчеризации выполнения виртуальных машин на физических серверах (вторая группа ЭВМ) с учетом приоритетов, назначаемых отдельным виртуальным машинам в момент их запуска.
Обеспечение управления запущенными виртуальными машинами, в том числе: изменение приоритета выполнения, изменение квот выделенных ресурсов, перемещение виртуальных машин между хостами.
Обеспечение мониторинга состояния виртуальных машин (загружена/работает/остановлена), количество назначенных ресурсов.
Поддержание не менее 64 виртуальных процессоров на гостевую ОС, с возможностью последующего увеличения до 128.
Поддержание не менее 64 Гб виртуальной оперативной памяти на гостевую ОС, с возможностью увеличения до 128 Гб.
Поддержание не менее 2-х виртуальных сетевых интерфейсов на виртуальную машину, с возможностью последующего увеличения количества в процессе эксплуатации до 8.
Обеспечение возможности виртуализации физических сетевых интерфейсов между виртуальными системами. Монопольное предоставление сетевых ресурсов выделенному виртуальному серверу является частным случаем виртуализации.
Обеспечение создания снимков состояния виртуальных машин по расписанию.
Обеспечение возможности архивирования снимков состояния виртуальных машин.
Обеспечение увеличения размера дискового пространства для гостевых ОС без перезагрузки/выключения до 10 Тб.
Предлагаемый аппаратно-вычислительный комплекс работает следующим образом.
В составе введенного в комплекс гипервизора входит модуль виртуализации, который предназначен для виртуализации аппаратных ресурсов. Под виртуализацией подразумевают маскировку аппаратных ресурсов, поскольку невозможно разделить физические ресурсы между разными вычислительными машинами.
Процесс виртуализации состоит из эмуляции устройства (аппаратного ресурса), созданием связей между устройством и его эмуляцией, назначением (при необходимости) политик доступа виртуальных машин (ВМ) к виртуализированному ресурсу.
Совокупность ВМ может быть реализована посредством второй группы ЭВМ для хранения программных сессий.
За создание виртуальных устройств отвечает модуль виртуализации, за распределение виртуальных ресурсов - модуль диспетчеризации.
Виртуализация памяти определяется как трансляция адресного пространства физической памяти в виртуальное адресное пространство.
Виртуализация сети определяется как процесс объединения аппаратных и программных сетевых ресурсов в единую виртуальную сеть. Виртуализация сети разделяется на внешнюю, то есть соединяющую несколько аппаратных сетей в одну виртуальную, и внутреннюю, создающую виртуальную сеть между ВМ, выполняющихся на одном хосте.
Виртуализация дисковых устройств (файловых хранилищ) определяется как прозрачное представление системы хранения на уровне блоков, когда логический адрес блока никак не привязан к его реальному, физическому адресу. Виртуализация разделяемых дисковых устройств позволяет объединять физические устройства хранения в виртуальные пулы дисков. Из пулов могут выделяться отдельные виртуальные диски, подключаемые при необходимости к ВМ.
Информацией, используемой при реализации алгоритма создания ВМ, являются: уникальные идентификаторы всех аппаратных ресурсов; сведения о доступности аппаратных ресурсов (ОЗУ, процессоры, хранилище); сведения о создаваемой ВМ (ОЗУ, процессоры, размер виртуального диска, сетевые параметры).
Результатом реализации алгоритма создания ВМ является создание уникального идентификатора ВМ и регистрация параметров ВМ (в ЭВМ управления или в модуле виртуализации).
Информацией, используемой при реализации алгоритма удаления ВМ, являются: уникальный идентификатор удаляемой ВМ; информация о состоянии удаляемой ВМ (запущена/не запущена).
Результатом реализации алгоритма удаления ВМ является остановка ВМ, если она запущена, и удаление метаданных ВМ и образа жесткого диска. При этом должен происходить запрос состояния ВМ - если ВМ запущена, перед удалением ее необходимо корректно завершить и освободить ресурсы.
Миграция ВМ производится в случае необходимости технического обслуживания аппаратного узла, при уплотнении малонагруженных ВМ с целью экономии ресурсов. Информацией, используемой при реализации алгоритма миграции ВМ, являются: уникальный идентификатор переносимой ВМ; метаданные переносимой ВМ; уникальные идентификаторы всех аппаратных ресурсов; сведения о доступности аппаратных ресурсов (ОЗУ, процессоры, хранилище); уникальный идентификатор узла, на который будет произведена миграция;
Результатом реализации алгоритма миграции ВМ является перенос ВМ на другой аппаратный узел.
При холодной миграции происходит остановка ВМ и запуск ее на другом узле. Согласно требованиям по отказоустойчивости все ресурсы пула равнозначны и располагают информацией о всех ВМ и доступом к единому хранилищу, следовательно переноса информации не требуется, необходимо просто дать команду на запуск ВМ модулю управления другого аппаратного узла.
При горячей миграции происходит перенос в фоновом режиме образа оперативной памяти запущенной ВМ на другой аппаратный узел, таким образом остановки ВМ не происходит. Под понятием «живая миграция» подразумевается процесс переключения контекста исполнения ВМ с одного хоста пула на другой.
Модуль виртуализации состоит из нескольких компонентов: компонента предоставления аппаратных ресурсов, предназначенного для выделения аппаратных ресурсов, их виртуализации и предоставления для использования виртуальными машинами; компонента управления, предназначенного для управления компонентой предоставления аппаратных ресурсов и предоставления внешнего интерфейса приложений (API) для ЭВМ управления; компонента регистрации событий, предназначенного для регистрации событий в процессе виртуализации и управления.
Указанные компоненты в составе модуля могут быть выполнены в виде агентов, размещенных на машиночитаемом носителе или в памяти, при выполнении которых компьютером обеспечивается реализация описанных функций. Кроме того, такие компоненты могут быть выполнены в виде устройств, размещенных на общей шине данных, функционирующих под управлением соответствующего программного обеспечения.
Модуль диспетчеризации (в составе гипервизора) предназначен для управления процессами выделения/возврата аппаратных ресурсов для ВМ.
В частности, распределение ресурсов процессора происходит по следующему алгоритму.
Все виртуальные процессоры (vCPU) виртуальных машин выстраиваются в очередь модуля диспетчеризации (например, в его оперативной памяти). Модуль диспетчеризации обрабатывает очередь vCPU, распределяя vCPU между доступными физическими процессорами в соответствии с политиками. Политики распределения описываются параметрами ВМ - параметрами вес и лимит. Значение веса определяет, сколько получит ВМ реального процессорного времени. Например, ВМ с весом 512 получит на хосте в два раза больше процессорного времени физического процессора, чем ВМ со значением веса 256. Значение параметра вес может изменяться в диапазоне от 1 до 65535, по умолчанию равен 256.
Значение лимита может использоваться для того, чтобы указать максимальную величину процессорного времени, которую может получить ВМ, даже в случае, если хост-система простаивает. Значение выражается в процентах: 100 - это 1 физический процессор, 50 - это половина процессора, 400 - 4 процессора. При этом значение лимита не может быть большим чем VCPU*100, т.е. одному виртуальному процессору не может соответствовать больше чем один реальный процессор.
Ресурсы процессора могут быть выбраны из состава высокопроизводительных вычислительных ресурсов (которые могут представлять собой, например, пул процессоров).
Распределение памяти происходит по следующему алгоритму.
Модуль диспетчеризации выделяет память виртуальной машине в монопольное пользование. Выделение памяти ВМ больше, чем имеется физической памяти, невозможно. Доступная для ВМ память определяется как объем физической памяти хоста, входящего в пул, за минусом объема памяти, необходимой для работы служебных ВМ. Максимальное количество памяти, выделяемой ВМ, определяется параметрами ВМ при запуске ВМ на исполнение. В случае, если объема доступной виртуальной памяти недостаточно для запуска ВМ с указанным объемом памяти, запуск ВМ невозможен.
Ресурсы физической памяти могут быть выбраны из состава второй группы ЭВМ для хранения программных сессий.
Распределение сетевых ресурсов между виртуальными машинами выполняется средствами управления графиком.
Приоритизация обращений ВМ к дисковой подсистеме может выполняться с помощью механизма планировщика CFQ (Completely Fair Queuing) Linux.
Алгоритм распределения дискового пространства между ВМ аналогичен алгоритму распределения памяти.
Модуль диспетчеризации состоит из нескольких компонентов: компонента выделения/возврата аппаратных ресурсов, предназначенного для управления процессами выделения/возврата аппаратных ресурсов для виртуальных машин и управляющими структурами, контролирующими распределение оперативной памяти между процессами комплекса и виртуальными машинами; компонента управления, предназначенного для управления программной компонентой выделения/возврата аппаратных ресурсов и предоставления внешнего API для ЭВМ управления; компонента регистрации событий, предназначенного для регистрации событий в процессе диспетчеризации и управления.
Указанные компоненты в составе модуля могут быть выполнены в виде агентов, размещенных на машиночитаемом носителе или в памяти, при выполнении которых компьютером обеспечивается реализация описанных функций. Кроме того, такие компоненты могут быть выполнены в виде устройств, размещенных на общей шине данных, функционирующих под управлением соответствующего программного обеспечения.
ЭВМ управления обеспечивает ведение мониторинга и учета выделенных и потребленных отдельными виртуальными машинами ресурсов и обменивается полученной информацией и соответствующими командами с модулем виртуализации, модулем диспетчеризации и средством управления графиком.
Это позволяет обеспечить гибкость распределения нагрузки в сети, а также позволяет своевременно обеспечивать создание необходимого количества ВМ для обработки поступающих запросов от рабочих ЭВМ.
Модули виртуализации, диспетчеризации и средства управления графиком могут быть выполнены в виде аппаратно-программного комплекса на базе существующих ЭВМ под управлением соответствующего программного обеспечения.
Использованная литература
[1] В.Г. Олифер, Н.А. Олифер. Компьютерные сети, учебник для вузов, СПб., 2005.
[2] RU 122505 U1, 27.11.2012, Бюл. №33.