- Libvirt (Qemu+KVM+Virt-manager)
- Запуск службы
- Делаем пользователю доступ в SSH (для удаленного управления)
- Графическое управление
- Создание виртуальной машины
- BIOS или UEFI
- Некоторые настройки
- Настройка дисплея через SSH
- Настройка жесткого диска
- Параметры загрузки
- Подключение ISO
- Сеть
- Графики
- Снимки машины
- Веб-интерфейс
- Файлы Virt
- Удаленное управление
- Настройка SSH
- Удаленное GUI-управление из-под Windows
- Удаленное GUI-управление из-под Linux
- Удаленное пополнение iso-образов
- Вывод видео через SSH
- После установки virt-manager невозможно создать образ HDD ВМ
- Заметки при использовании
- Проброс USB в виртуальную машину через графический интерфейс Virt-Manager
- Некоторые особенности использования Virt-Manager на системе aarch64
Libvirt (Qemu+KVM+Virt-manager)
Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.
Libvirt — набор инструментов для управления виртуализацией. В данной статье будет описано его использование.
# apt-get install libvirt libvirt-kvm
Добавляем пользователя в группу:
- 1 Запуск службы
- 2 Делаем пользователю доступ в SSH (для удаленного управления)
- 3 Графическое управление
- 3.1 Создание виртуальной машины
- 3.2 BIOS или UEFI
- 3.3 Некоторые настройки
- 3.3.1 Настройка дисплея через SSH
- 3.3.2 Настройка жесткого диска
- 3.3.3 Параметры загрузки
- 3.3.4 Подключение ISO
- 3.3.5 Сеть
- 3.3.5.1 NAT
- 3.3.5.2 Мост
- 3.3.5.3 Проброс портов
- 6.1 Настройка SSH
- 6.2 Удаленное GUI-управление из-под Windows
- 6.3 Удаленное GUI-управление из-под Linux
- 6.4 Удаленное пополнение iso-образов
- 6.5 Вывод видео через SSH
- 6.6 После установки virt-manager невозможно создать образ HDD ВМ
- 7.1 Проброс USB в виртуальную машину через графический интерфейс Virt-Manager
- 7.2 Некоторые особенности использования Virt-Manager на системе aarch64
Запуск службы
# systemctl enable libvirtd # systemctl start libvirtd
Делаем пользователю доступ в SSH (для удаленного управления)
На сервере переключаемся в режим суперпользователя:
# cd /etc/openssh # mcedit sshd_config
Match User petr #имя вашего пользователя на сервере X11Forwarding no AllowTcpForwarding no PermitTTY no ForceCommand internal-sftp ChrootDirectory /home/files #корневой каталог при доступе через SSH
После настройки на сервере SSH для доступа к файлам, на клиенте заработает и SSH для libvirt-manager для подключения к libvirt.
Кроме того разрешаем в брандмауэре: Alterator Web-Брадмауэр-Внешние сети-Дополнительные порты TCP/UDP-Добавляем порт 5900
Графическое управление
Чтобы сделать некое подобие «Диспетчера Hyper-V» (Графическую консоль для управления виртуальными машинами) устанавливаем следующий пакет:
# apt-get install virt-manager
Открываем Virt-Manager. Файл>Добавить соединение>
- Локальная машина
- Гипервизор QEMU/KVM (подключаться автоматически).
- QEMU/KVM-Connect to remove host over SSH
- вводим имя пользователя
- вводим IP
- ставим галочку подключаться автоматически
Создание виртуальной машины
- Нажимаем на кнопку «Создать виртуальную машину»
- Выбираем метод установки — локальный/ISO
- Выбираем ISO/CD и тип ОС (с помощью автодополнения)
- Выбираем количество ОЗУ и процессоров
- Создаем виртуальный жесткий диск
- Вводим название и выбираем сеть
BIOS или UEFI
До первого запуска откройте настройки виртуальной машины, во вкладке Обзор> Свойства гипервизора у вас будет возможность сменить тип прошивки — BIOS или UEFI. До первого запуска![1]
Некоторые настройки
Выберите машину, нажмите на лампу.
Настройка дисплея через SSH
- Дисплей:
- тип:VNC
- listen type:address
- адрес:IP
- порт:авто
- пароль:пользователя в группе
Настройка жесткого диска
. Диск-1> Дополнительные параметры>Шина диска
- IDE — рекомендуется для Windows XP и младше
- SATA — для 7 и старше
- VirtIO для Linux [2]
Параметры загрузки
Иначе вы просто не загрузитесь с CD/ISO.
Подключение ISO
. Выберите IDE CDROM> Browse.
В окне «Выберите том хранилища» нажмите на плюс (добавить пул), выберите тип dir-каталог в файловой системе и укажите папку с iso-образами.
Выберите образ из пула и нажмите на кнопку «Выбор тома».
Примечание: В качестве каталога можно указать папку прописанную в /etc/openssh — так вы легко сможете закидывать и подключать ISO-образы
Сеть
Важно обратить внимание, во избежание ошибки при запуске виртуальной машины «сеть «default» не активна» на настройку:
После создания виртуальной машины в virt-manager Правка — Свойства подключения — вкладка Виртуальные сети — на сети default поставить галочку «Автозапуск: При загрузке», применитьNAT
NAT — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса одной сети, в адрес другой сети.
Т.е. у вас в локальной сети сеть 192.168.0.x., а у виртуальных машин будет 192.168.1.x. И NAT позволит вам общатся между сетью 0.x и 1.x.
По-умолчанию в virt-manager уже есть NAT-интерфейс, но если вы его случайно удалили или хотите создать новый, то это делается так:
- откройте Правка>Свойства подключения>Виртуальные сети>+
- введите название сети
- режим: NAT
- Forward to: любое физическое устройство
Можете так же настроить адресацию IPv4 и DHCP-сервер (они настраиваются автоматически).
И в настройках виртуальной машины выберите данный интерфейс.
Мост
Чтобы напрямую общаться между реальной сетью и виртуальными машинами напрямую нужно создать сетевой мост.
Примечание: При этом управление сетью перейдет к etcnet и NetworkManager уже будет не нужен, его и его апплет можно удалить: apt-get remove NetworkManager NetworkManager-applet-gtk . В трее, соответственно, иконка статуса сети исчезнет.
Если простым языком, то задачу можно разделить на две:
- создать бридж
- в virt-manager в свойствах виртуальной машины, в свойствах сетевого интерфейса выбираем
- устройство моста
- вручную вводим имя нашего моста — vmbr0
Примечание: Попробуйте запустить LiveCD — система должна получить по DHCP IP адрес и иметь доступ в LAN и интернет
Проброс портов
Настроил тут проброс порта в QEMU-виртуалку. Казалось бы, в чём проблема-то?
cmd|qemu -netdev user,id=user0,hostfwd=tcp::2222-:22 -device e1000,netdev=user0" …
как-то так (можно вместо e1000 паравиртуальный драйвер, это побыстрее будет).
Но. Я это сделал через libvirt! И оказалось, что штатными средствами (не только тыкая в менюшки virt-manager, но и, кажется, вообще прямой настройкой сети) нельзя. Не знаю, почему. Может быть, можно, но я не нашёл как. А я искал. То, что в libvirt называется NAT, в действительности садится на tun/tap, лезет в iptables и т. д. Наверное, для совместимости с другими платформами виртуализации, не знаю.
- В настройках virt-manager разрешаем «Редактирование XML»
- Удаляем все сетевые устройства.
- Добавляем в конец общего XML-я виртуалки (например, во вкладке «Обзор»), перед закрывающим , такие строки:
Если неймспейс qemu не загружен, то такие:
И qemu преспокойненько само всё как надо делает. Фишка — не забыть про xmlns иначе просто не заработает, а вам ничего не скажет)
Графики
Откройте «Правка> Параметры», вкладка «Статистика», отметьте галочками, какие графики вы хотите сделать доступными.
Вкл./выкл. график вы можете через «Вид> График».
Снимки машины
Снимок машины можно создать только если виртуальный жесткий диск у вас в формате *.qcow2.
Веб-интерфейс
Управлять виртуальными машинами libvirt можно через веб-интерфейс Cockpit. Но, пока в Альте нужный модуль для этой системы не собран. Если Вам интересна ситуация со сборкой, можете подписаться на отчет — altbug #44671.
Файлы Virt
(Для резервного копирования-восстановления)
Файлы Libvirt хранятся в следующих директориях:
Удаленное управление
В случае, если Вы планируете использовать Libvirt на сервере в продакшине, предполагается, что у Вас он будет установлен на «консольную» серверную систему, а управлять им Вы будете с рабочей станции через Virt-manager.
Настройка SSH
Для начала настройте SSH-сервер на сервере с Libvirt. В Match User пропишите пользователя, под которым будете подключаться.
Удаленное GUI-управление из-под Windows
- Основной парк компьютеров на Windows
- Планируется миграция
- На одном сервере без графики изучается Linux и на нем установлен Libvirt
- Необходимо GUI-управление
1. Устанавливаем Cygwin и CygwinX
3. Переходим в режим суперпользователя
# apt-get install xauth virt-manager
5. Открываем в пуске из меню Cygwin-X ярлычок CygwinXServer
6. В трее из черно-зеленого значка Cygwin RCM-Системные выбираем «Менеджер виртуальных машин».
Все, можно управлять виртуальными машинами из-под Windows пока мы полностью не перейдем под Linux.
Удаленное GUI-управление из-под Linux
1. Устанавливаем virt-manager
# apt-get install virt-manager filezilla libvirt
# systemctl enable libvirtd # systemctl start libvirtd
3.Добавляем пользователя в группу
5. Файл-Добавить соединение (QEMU/KVM, Подключаться к удаленному узлу с помощью SSH)
7. Управляем удаленным сервером!
Удаленное пополнение iso-образов
В группе vmusers пользователь admin.
# mkdir /var/lib/libvirt/images/iso
# chown -R admin:vmusers /var/lib/libvirt/images/iso/
Подключаемся через Filezilla на sftp://IP под тем пользователем, которому разрешен доступ через SSH и к данному каталогу. В правой колонке открываем «удаленный сайт» /var/lib/libvirt/images/iso, в левой каталог с ISO. И копируем файл на удаленный сервер.
Вывод видео через SSH
Чтобы на удаленном сервере выводилось видео, нужно в настройках виртуальной машины, в разделе «Дисплей SPICE», в выпадающем списке «Адрес» выбрать «Все интерфейсы».
После установки virt-manager невозможно создать образ HDD ВМ
Выдается сообщение типа «нет доступа к /var/lib/libvirt/images» или «нет каталога /var/lib/libvirt/images». (Скриншот показать не могу, после того как я исправил ошибку, даже после удаления каталогов она не появляется)
Необходимо просто создать нужные каталоги:
# mkdir /var/lib/libvirt/ # mkdir /var/lib/libvirt/images
Заметки при использовании
Проброс USB в виртуальную машину через графический интерфейс Virt-Manager
# rpm -ql libspice-glib | grep -i usb
/usr/libexec/spice-gtk/spice-client-glib-usb-acl-helper
Необходимо в файл /usr/share/polkit-1/actions/org.spice-space.lowlevelusbaccess.policy,
После модификации файл выглядит так:
The Spice Project http://spice-space.org/ spice Low level USB device access Privileges are required for low level USB device access (for usb device pass through). yes no yes Поправить права на файл(по необходимости):
chmod 4755 /usr/libexec/spice-gtk/spice-client-glib-usb-acl-helper
Некоторые особенности использования Virt-Manager на системе aarch64
И хост система и VM имеют архитектуру aarch64.
Для работы графики VM нужно установить в хост систему пакет seavgabios
При создании VM aarch64 в неё не добавляются автоматически графика, клавиатура, мышь. Их нужно добавить вручную.
Для этого в диалоге «Создание новой виртуальной машины» на шаге 5 поставил флаг «Проверить конфигурацию перед установкой».
В открывшемся окне конфигурации нажать «Добавить оборудование» и добавить:
Ввод/Virtio клавиатура, Virtio планшет.
При установке текстовые сообщения выводятся на «Вид/Consoles/Последовательное 1», а графика на «Вид/Consoles/Графическая консоль SPICE». Между этими устройствами нужно переключаться вручную.