Kvm
Содержание
Установка
На Ubuntu 20.04 устанавливаем ряд пакетов:
где:
- qemu -- базовое ПО для эмуляции аппаратного обеспечения
- qemu-kvm -- модуль qemu для гипервизора KVM
- libvirt-clients -- ПО для управления виртуализацией
- libvirt-daemon-system -- файлы конфигурации для демона libvirtd
- bridge-utils -- инструменты командной строки для настройки Ethernet мостов
- virtinst -- инструменты командной строки для создания виртуальных машин
- virt-manager -- графический интерфейс для управления виртуальными машинами
Управление из графического интерфейса (GUI)
Графический интерфейс предоставляет virt-manager, причём он может управлять как локальными ВМ, если установлен на гипервизор, так и удалёнными, если установлен на ПК администратора. Для удалённого подключения нужно в меню выбрать: Файл -- Добавить соединение... -- и указать к какому серверу (гипервизору) и каким пользователем нужно подключаться. Для быстрого подключения можно настроить SSH доступ без пароля.
Установка в Ubuntu:
Управление из консоли
Управление виртуальной машиной из консоли можно осуществлять с помощью команды virsh:
virsh list --all | список всех виртуальных машин |
virsh dominfo vm1 | информация о машине vm1 |
virsh start vm1 | включить |
virsh shutdown vm1 | послать сигнал завершения |
virsh destroy vm1 | принудительно завершить работу |
virsh save vm1 file_name | сохранить состояние в файл |
virsh restore file_name | восстановить состояние из файла (откатить изменения) |
- Список всех виртуальных машин и их дисков, то есть где располагаются реальные файлы виртуалок:
Если нужен список только работающих на данный момент виртуалок, то убираем параметр --all:
Проброс жёского диска (хранилища, носителя)
В графической среде
- Открываем виртуальную машину: в Менеджере виртуальных машин щёлкаем правой клавишей на названию ВМ и в контекстном меню выбираем "Открыть".
- Переходим к виртуальному оборудованию: синяя кнопка с восклицательным знаком на панели инструментов.
- Добавляем оборудование: через правый щелчёк в списке оборудования
- Выбираем тип: Хранилище -- Выбрать или создать... -- Настроить
- Добавляем пул: слева внизу зелёный плюс
- Тип: disk
- Путь к источнику: /dev/md127 (указать нужное устройство или выбрать через Обзор)
В командной строке
Проброс реального жёсткого диска, массива (RAID) или любого носителя информации вообще из гипервизора в виртуальную машину (гостевую ОС) делается следующей командой:
где
- vm_name -- имя гостевой ОС в гипервизоре; весь список видно по команде: virsh list --all
- /dev/disk -- имя устройства (hdc, sdb, md0 и т.п.) в ОС гипервизора; весь список: ls /dev
- vdX -- имя устройства в гостевой ОС; текущий список: ls /dev | grep vd
Например, чтобы пробросить из гипервизора массив[1] md127 и присвоить ему в виртальной машине ubuntu20-cloud имя vdb, выполняем:
Проброс можно делать на лету, не выключая гостевую ОС. Проверить можно командой fdisk в гостевой ОС:
Далее в гостевой ОС нужно смонтировать диск с помощью mount или добавить в fstab для автоматического подключения при старте системы. Если диск был с данными, то они будут сразу доступны, если же он ещё не отформатирован, то его можно разбивать и форматировать в гостевой ОС как обычный диск.
Создание дополнительного диска
На гипервизоре в графической среде создаём новый диск аналогично пробросу существующего (см. выше), только вместо добавления пула можем выбрать уже имеющийся (но можно и создать новый), где будем хранить файл с виртуальным жёским диском, затем
- Создаём диск, нажимая на зелёный плюс в "Списке томов"
- Указываем название диска, его формат и размер и жмём Готово. Большие диски (больше терабайта) могут создаваться довольно долго (десятки секунд, а то и несколько минут).
На виртуальной машине проверяем, что диск появился:
vda 40G disk ├─vda1 512M vfat part /boot/efi ├─vda2 1K part └─vda5 39,5G ext4 part /
vdb 3T diskТак как мы создали новый диск (vdb), то его нужно отформатировать. Команда для файловой системы ext4:
Узнаём его UUID:
/dev/vda5: UUID="77d3f8bf-d366-4c36-b992-445c8451536b" TYPE="ext4" PARTUUID="09b1ab8e-05" /dev/vda1: UUID="DA46-6D03" TYPE="vfat" PARTUUID="09b1ab8e-01"
/dev/vdb: UUID="7885f1cf-5ed1-4405-bbf1-1708c14b986e" TYPE="ext4"Создаём каталог, куда будем подключать (монтировать) диск:
В автозагрузку (fstab) подключение диска при запуске ОС с помощью mcedit или любого другого редактора, но с правами администратора:
добавляем следующую строку (заменив UUID и каталог подключения на свои):
UUID=7885f1cf-5ed1-4405-bbf1-1708c14b986e /mnt/NextCloudData ext4 rw,users 0 0
Проверяем список текущих подключений:
/dev/vda5 on / type ext4 (rw,relatime,errors=remount-ro)
/dev/vda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)Подключаем заново устройства из fstab:
и смотрим список ещё раз:
/dev/vda5 on / type ext4 (rw,relatime,errors=remount-ro) /dev/vda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/vdb on /mnt/NextCloudData type ext4 (rw,nosuid,nodev,noexec,relatime)или
/dev/vda5 39G 9,6G 28G 27% / /dev/vda1 511M 4,0K 511M 1% /boot/efi
/dev/vdb 2,9T 89M 2,8T 1% /mnt/NextCloudDataСноски