Виртуальные машины на Linux можно создавать через консоль или с помощью панелей. Сравним, какой способ удобнее.
Обычно консолью пользуются сисадмины частных компаний, а панелями — хостинг-провайдеры.
Админы выбирают консоль, потому что задач по управлению VPS немного, и их проще решить вручную, чем использовать еще один инструмент. А ещё «потому что могут». Провайдеры выбирают панель, потому что с ней большую часть процессов можно автоматизировать, а выполнение остальных сильно ускорить.
Но если в частной компании появится больше задач, связанных с виртуализацией, — понадобятся VPS для тестирования, отладки ПО, новых сайтов, — то и админам работать в консоли станет неудобно.
Чтобы оценить, насколько панель ускоряет работу, сравним решение самых базовых задач: создание ВМ, миграцию, управление.
Создание виртуальных серверов
Разберем первый и самый базовый вопрос — как создать виртуальную машину. Сначала создадим её в консоли, а потом в VMmanager.
В консоли
Будем использовать ОС Ubuntu, она официально поддерживает только гипервизор KVM. Для управления гипервизором применим библиотеку libvirt, а для настройки и управления системой — утилиту virsh.
Сначала подготовим инструменты для виртуализации, а потом приступим к созданию первой виртуальной машины. Через консоль нужно установить KVM, проверить поддержку аппаратной виртуализации в Ubuntu, установить пакеты для работы с KVM и libvirt.
После этого можно приступать к созданию первой виртуальной машины — 64-битной Ubuntu 18.04.3 LTS (Bionic Beaver).
Сначала скачиваем ISO-образ:
cd /var/lib/libvirt/boot
sudo wget http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso
Запускаем установку с нужной конфигурацией сервера:
sudo virt-install \
--virt-type=kvm \
--name testvps\
--ram 2048 \
--vcpus=2 \
--os-variant=ubuntu16.04 \
--hvm \
--cdrom=/var/lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \
--network network=default,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/ubuntu1604.img,size=50,bus=virt
В результате получим виртуальный сервер с ОС Ubuntu, 2 ГБ RAM, 2 CPU, стандартной сетевой картой и 50 ГБ HDD.
С помощью VMmanager 6
Теперь создадим виртуальную машину с помощью VMmanager 5. VMmanager поддерживает виртуализацию KVM, для управления использует библиотеку libvirt. За эмуляцию сервера отвечает гипервизор QEMU, благодаря чему каждая ВМ получает в распоряжение виртуальное оборудование — сетевые и видеокарты.
В VMmanager процесс создания виртуальной машины максимально автоматизирован. Пользователю надо сделать всего три шага, и всё это в простом интерфейсе:
- На главной странице нажать кнопку Создать VM.
- Выбрать параметры VPS.
- Запустить установку.
- Готово!
При создании виртуальной машины VMmanager 6 разворачивает копию образа, поэтому весь процесс занимает от 1 минуты 20 секунд до 2 минут. Можно использовать скрипты для автоматической установки программного обеспечения.
Управление виртуальными машинами
Когда виртуальный сервер готов, им надо управлять.
В консоли
Для управления виртуальными машинами через консоль будем использовать всё ту же утилиту virsh.
Список основных команд:
|help | Краткая справка.|
|list | Просмотр всех виртуальных машин.|
|start | Запустить неактивную виртуальную машину.|
|destroy | Принудительно остановить работу виртуальной машины.|
|reboot | Перезагрузить виртуальную машину.|
|restore | Восстановить сохраненную в файле виртуальную машину.|
|resume | Возобновить работу приостановленной виртуальной машины.|
|save | Сохранить состояние виртуальной машины в файл.|
|shutdown | Корректно завершить работу виртуальной машины.|
|suspend | Приостановить работу виртуальной машины.|
|undefine | Удалить все файлы виртуальной машины.|
Например, для перезагрузки виртуальной машины надо ввести команду: sudo virsh reboot testvps
С помощью VMmanager 6
При помощи VMmanager можно управлять виртуальными машинами, переустанавливать ОС, управлять виртуальными дисками, сетевыми интерфейсами и выполнять множество других операций прямо из интерфейса.
Даже если у вас множество виртуальных серверов, вы легко найдете активные, отключенные или приостановленные машины. По каждому серверу доступна информация о владельце, IP-адресе, установленной ОС, характеристиках.
Операции по запуску, отключению, перезагрузке можно проводить по целой группе серверов. Это ускоряет работу администратора, если серверов больше двух.
Миграция виртуальной машины
В консоли
При создании кластера с большим количеством серверов часто возникает необходимость перенести диски виртуальных машин между узлами кластера. Этот процесс называется миграцией.
Чтобы перенести ВМ на другой узел через консоль, надо соблюсти несколько условий:
- Должен быть создан диск для виртуальной машины и его размер должен быть не меньше диска той машины, которую переносим.
- На обоих узлах должны быть идентичные настройки сети и название бриджа.
- Оба узла должны ходить друг на друга через ssh без запроса пароля.
- Узлы должны друг друга резолвить по именам.
- Все образы дисков, которые использовались виртуальной машиной, должны быть перенесены на новую ноду и путь должен быть такой же.
Если условия соблюдены, то перенести виртуальную машину можно при помощи одной команды. В ней должно быть указано название ВМ и узла, параметры переноса.
sudo virsh migrate –live testvps qemu+ssh://root@node2/system –copy-storage-all
Так мы мигрировали ВМ testvps на узел node2 с полным переносом диска.
С помощью VMmanager 6
В VMmanager механизм миграции реализован полностью средствами libvirt. Чтобы мигрировать сервер через VMmanager, достаточно указать новый узел и, при необходимости, выбрать опцию живой миграции:
Консоль или VMmanager 5
VMmanager помогает упростить процесс создания, администрирования, продажи виртуальных машин. А при увеличении вашей инфраструктуры VMmanager позволит управлять всеми серверами из одной точки и предоставит гибкие инструменты для статистики и мониторинга системы.
Больше о VMmanager 6 читайте в других статьях блога: