Управление пулами виртуальных машин с использованием свободного ПО в университете::Журнал СА
www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

 Читать далее...

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

 Читать далее...

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

 Читать далее...

Работа с Debian  

О Linux с любовью или Debian: через знание к любви

Конечно, одним лишь перечислением замечательных качеств любовь к Linux не возникнет. Для

 Читать далее...

Опрос  

Защита личных и клиентских данных: как мошенники используют ИИ и как защититься?

По данным RED Security, общее число кибератак на российские компании в 2024

 Читать далее...

Опрос  

Облачные инструменты для разработчиков

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Как с помощью облака сделать

 Читать далее...

Опрос  

Рынок мобильных приложений: что будет актуальным в 2025 году?

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Ваши прогнозы: чего ожидать от

 Читать далее...

Рынок труда  

Как успешно пройти все этапы собеседования на ИТ-должность?

По оценкам государства, дефицит ИТ-специалистов составляет от 740 тысяч до 1 миллиона

 Читать далее...

Спецпроект «Базальт СПО». Развитие Open Source в России  

Алексей Смирнов: «Сейчас трудно найти программный продукт, в котором нет свободного кода»

Какое будущее ждет свободное ПО? Влияет ли свободная или несвободная разработка на

 Читать далее...

Спецпроект «Базальт СПО». Развитие Open Source в России  

Николай Костригин: «Мы создали Hantis, конвейер автоматизации. Проекты, исследуемые разными инструментами, переходят от одного исполнителя к другому, развиваются, возвращаются к автору, и так по кругу»

О том, как идет работа по повышению безопасности отечественного программного обеспечения, рассказывает

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 7691
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7951
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 5297
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3387
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 4177
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 4186
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6700
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3531
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3803
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7690
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 11048
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12773
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14550
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9488
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7455
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5733
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4936
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3797
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3472
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3702
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Управление пулами виртуальных машин с использованием свободного ПО в университете

Архив номеров / 2025 / Выпуск №3 (268) / Управление пулами виртуальных машин с использованием свободного ПО в университете

Рубрика: Спецпроект «Базальт СПО». Развитие Open Source в России

 ВИЗИТКА 


Арина Захарова,
лаборант-исследователь
РУНЦ «Безопасность»

 

Управление пулами виртуальных машин
с использованием свободного ПО в университете

В статье рассмотрен процесс разработки решения для импортозамещения продуктов VMware в сфере управления рабочими местами, а именно пулами виртуальных машинами.

 


Рисунок 1. Схема взаимодействия компонентов

В МГТУ им. Баумана для управления виртуальными машинами применялось решение VMware Horizon. Оно успешно выполняло все функции, но было довольно сложным в администрировании. Студенты, работающие на кафедре, не всегда справлялись с управлением, теряли интерес и увольнялись.

В 2022 году возникли сложности с дальнейшим использованием VMware Horizon. Тогда работники кафедры создали собственное решение, систему управления (СУ) на основе свободного ПО, которая:

  • обеспечивает создание пула виртуальных машин размером от 10 до 30 экземпляров,
  • позволяет проводить мониторинг состояния пула,
  • обеспечивает минимально необходимые функции управления: развертывание, остановку, запуск, удаление пула.

Новое решение гораздо проще администрировать. Студенты легко справляются с задачами начального уровня, а затем постепенно втягиваются в работу.

Решение не может расцениваться как промышленный аналог Horizon, но успешно используется как стенд для обучения и практики студентов в сфере администрирования виртуальной инфраструктуры. В отличие от зарубежного аналога, СУ поддерживает любые операционные системы и дистрибутивы Linux (в случае Horizon это были только ОС Windows и Ubuntu до версии 20.04), с возможностью подключения к ним по протоколу SSH, RDP или любому иному, сконфигурированному на золотом образе.

Расскажем подробно о реализации.


Структура проекта

СУ состоит из трех основных блоков:

  1. База данных, хранящая информацию о пользователях.
  2. API – основной координационный элемент системы.
  3. WEB-интерфейс – панель управления и мониторинга существующих ПВМ.


База данных

В базе данных хранится информация о пулах виртуальных машин (ПВМ) и о разграничении доступа к ним.

Для инфраструктуры учебного класса мы выбрали операционную систему «Альт Виртуализация» и СУБД SQLite. SQLite удобна для нашего относительно небольшого проекта, но она подходит не всем.

Чтобы дать пользователям нашего решения возможность использовать другие СУБД, применяется обертка для баз данных, реализуемая при помощи библиотеки sqlalchemy. Она позволяет не зависеть от разных диалектов SQL и унифицировать способы создания соединения с БД. Для подключения к новой СУБД пользователю нужно поменять значения в conn_str. При дальнейшей работе СУ не формулирует SQL-запросы напрямую, а обращается к полям классов, описывающих эти сущности.


Рисунок 2. Функция подключения к БД
 

СУ оперирует четырьмя основными сущностями:

  1. Пользователь – администратор системы, создающий пулы.
  2. Узел – сервер с развернутым гипервизором.
  3. Виртуальная машина – управляемая единица.
  4. Пул – совокупность одинаковых виртуальных машин, развернутых по примеру золотого образа.

Первые три сущности заложены в логике работы Proxmox (входит в ОС «Альт Виртуализация»), последнюю мы определили при помощи БД.

Для работы с ПВМ необходимо объявить:

  • имя пула (title),
  • количество ВМ, которые будут в нем содержаться (count),
  • золотой образ – ВМ для клонировния (golden_image),
  • паттерн именования клонов (naming).

Помимо этого, чтобы реализовать управление, необходимо хранить служебную информацию:

  • узел, на котором развернут пул (node),
  • id клонов (vmids),
  • а также id пользователя (user_id), который правомерно может управлять пулом.


Рисунок 3. Объявление пула
 

Объявим сущность пользователя, чтобы реализовать разделение доступа к пулам. Проинициализируем её с помощью трех параметров: имя пользователя, пароль, адрес узла (ip).


Рисунок 4. Объявление пользователя

 

Графическая оболочка

Для управления пулами мы создали web-приложение. Так как одна из целей СУ – вовлечение студентов в процесс разработки, был выбран один из самых простых фреймворков – Flask. Он позволяет быстро добавлять новые функции в графическую оболочку даже неопытным администраторам.

Страница авторизации принимает на вход IP-адрес гипервизора, имя пользователя и пароль.


Рисунок 5. Авторизация

 


Рисунок 6. Главная страница

 

После авторизации пользователь попадает на главную страницу, содержащую описание состояния узлов. Также ему становятся доступны кнопки «Список пулов» и «Создать пул».

Кнопка «Список пулов» переводит на страницу, содержащую перечень пулов. Здесь можно просмотреть их параметры, удалить, отправить на редактирование кнопкой «Редактировать» или же, нажав на имя пула, перейти к более подробной информации о нем.

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

В режиме редактирования можно поменять имя пула и количество виртуальных машин, которые его составляют.


Рисунок 7. Список пулов

 


Рисунок 8. Страница пула

 


Рисунок 9. Редактирование пула

 

При создании пула пользователь вводит его название, выбирает из списков узел, на котором он должен быть развернут, золотой образ и количество ВМ, вводит паттерн именования ВМ (смена имени ВМ находится в разработке).


Рисунок 10. Создание пула

 

API

Основным элементом СУ является API, выполняющий роль координационного центра между графической оболочкой, базой данных и гипервизором. Приняв пользовательский запрос, API получает информацию из БД, после чего, используя Proxmox API, выполняет задачу.

Всего минимальный необходимый для функционирования пула набор команд включает:

  • создание ПВМ,
  • удаление ПВМ,
  • остановку ПВМ,
  • запуск ПВМ,
  • перезагрузку ПВМ.

Рассмотрим реализацию процесса создания и запуска пула. Функция создания пула позволяет инициализировать объект пула конкретными значениями и создать заданное количество клонов ВМ, которые и будут составлять пул. Всю процедуру можно разделить на несколько этапов:

  1. Установление соединения с гипервизором (строки 2-4).
  2. Предварительная обработка информации: определение свободных id виртуальных машин (строка 6) и получение золотого образа (строка 7).
  3. Создание пула: многоразовое клонирование золотого образа и добавление id новой ВМ в БД.


Рисунок 11. Функция создания пула

 

Запуск пула реализуется функцией start, включающей в себя соединение с пулом при помощи функции connect (строка 2) и последующее обращение к API Proxmox для каждой ВМ, принадлежащей пулу (3-7).

 


Рисунок 12. Функция запуска пула

 

Отдельного внимания заслуживает функция connect, так как она является необходимым элементом всех остальных функций и выполняет следующие действия:

  • принимает на вход все параметры, которые нужны для установления соединения с узлом посредством API Proxmox (строки 3-5),
  • определяет нужный узел (строка 7),
  • формирует список id виртуальных машин, принадлежащих пулу, на основании переданного параметра vmids, после чего из общего перечня на основании id выбираются только те ВМ узла, которые принадлежат пулу.

После получения списка всех ВМ узла, они передаются обратно в функцию, которая вызвала connect().


Рисунок 13. Функция взаимодействия API и БД

 

Функции остановки, запуска, перезагрузки и удаления похожи в реализации: в них после установления соединения вызывается соответствующий метод API Proxmox.

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

 

Ключевые слова: виртуальная машина, пул, система управления, репозиторий проекта, управление рабочими местами, свободное ПО, университет


Подпишитесь на журнал

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru