Ниже описано использование KVM. Это не руководство по установке. Установка описана в https://v.perm.ru/index.php/instrumenty-devops/win-lin-kvm.
Дано:
- "Сервер" - Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, RAM 12 Gb, LinuxMint
- "Клиент" - Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz, RAM 16 Gb, LinuxMint
Запуск службы на сервере:
Запуск службы:
vasi@v:~$ sudo systemctl start libvirtd.service
Либо запустить службу вручную:
vasi@v:~$ sudo libvirtd 13:06:20.819+0000: 6429: info : libvirt version: 10.0.0, package: 10.0.0-2ubuntu8.4 (Ubuntu) 13:06:20.819+0000: 6429: info : hostname: v.perm.ru 13:06:20.819+0000: 6429: warning : virSecurityManagerNew:194 : Configured security driver "none" disables default policy to create confined guests 13:10:20.635+0000: 7733: info : libvirt version: 10.0.0, package: 10.0.0-2ubuntu8.4 (Ubuntu) 13:10:20.635+0000: 7733: info : hostname: v.perm.ru 13:10:20.635+0000: 7733: warning : virSecurityValidateTimestamp:205 : Invalid XATTR timestamp detected on /var/lib/libvirt/images/win10.qcow2 secdriver=dac 16:44:02.597+0000: 7734: error : qemuMonitorIORead:419 : Unable to read from monitor: Connection reset by peer 16:44:06.018+0000: 6414: warning : virProcessGetStatInfo:1788 : cannot parse process status data 16:45:22.764+0000: 13236: info : libvirt version: 10.0.0, package: 10.0.0-2ubuntu8.4 (Ubuntu) 16:45:22.764+0000: 13236: info : hostname: v.perm.ru 16:45:22.764+0000: 13236: warning : virSecurityValidateTimestamp:205 : Invalid XATTR timestamp detected on /var/lib/libvirt/qemu/domain-3-win10/master-key.aes secdriver=dac 16:55:41.305+0000: 13248: error : qemuMonitorIORead:419 : Unable to read from monitor: Connection reset by peer
Подключение из ноутбука:
Способ 1 (из меню)
В ноуте запустить "Администрирование/Менеджер виртуальных машин" Будет запрошен пароль для vasi на v.perm.ru (B..67) Откроется окно:
На сервере устаовлено 2 виртуальные машины, одна с Linux, вторая с Windows 10.
Запустить win10 на v.perm.ru (B..67)
Поключиться с vasi/b..o.
Способ 2 (из ком.строки)
vasi@vasi-note:$ virt-manager -c 'qemu+ssh://Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. :22/system?keyfile=id_rsa'
После ввода пароля от ssh 192.168.1.20 откроется окно
Подключаться с vasi/b..o.
Virsh
Virsh - инструмент управления виртуальными машинами из коммандной строки.
Получение общей информации:
$ sudo virsh nodeinfo CPU model: x86_64 CPU(s): 4 CPU frequency: 3399 MHz CPU socket(s): 1 Core(s) per socket: 4 Thread(s) per core: 1 NUMA cell(s): 1 Memory size: 11924680 KiB
Показать все виртуальные машины:
$ sudo virsh list --all Id Name State ------------------------------ 2 win10 running - linux2022 shut off - win10-clone shut off
Старт машины:
$ sudo virsh start win10 Domain 'win10' started
Показать только запущенные виртуальные машины:
$ sudo virsh list Id Name State ----------------------- 2 win10 running
Остановка машины:
$ sudo virsh shutdown win10 Domain 'win10' started
Перезагрузка машины:
$ sudo virsh reboot win10
Переименование машины:
$ virsh domrename currentname newname
Изменение конфигурации:
$ sudo virsh edit win10
Есть еще создание и удаление машины.
Сохранение текущего состояния:
$ sudo virsh save win10 win10.saved
Восстановление из сохраненного состояния:
$ sudo restore win10.saved Domain restored from win10
Список volume:
$ sudo virsh vol-list --pool default Name Path ---------------------------------------------------------------- linux2022.qcow2 /var/lib/libvirt/images/linux2022.qcow2 linux_iso /var/lib/libvirt/images/linux_iso win10-clone.qcow2 /var/lib/libvirt/images/win10-clone.qcow2 win10.qcow2 /var/lib/libvirt/images/win10.qcow2
Создание снимков:
sudo virsh snapshot-create-as \ --domain test \ --name "test_vm_snapshot1" \ --description "test vm snapshot 1-working"
Другие команды, которые пригодятся:
Из linux полезная команда (аналог df -h):
$ lsblk --output NAME,SIZE,TYPE NAME SIZE TYPE sda 372,6G disk ├─sda1 1M part ├─sda2 513M part └─sda3 372,1G part sdb 232,9G disk └─sdb1 232,9G part $ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 1,2G 3,0M 1,2G 1% /run /dev/sda3 366G 122G 226G 35% / tmpfs 5,7G 96M 5,6G 2% /dev/shm tmpfs 5,0M 8,0K 5,0M 1% /run/lock tmpfs 5,7G 0 5,7G 0% /run/qemu /dev/sda2 512M 6,2M 506M 2% /boot/efi tmpfs 1,2G 196K 1,2G 1% /run/user/1000
Есть команды создания и удаления дисков, изменения размера. На пример, увеличить размер диска на 1Gb:
sudo qemu-img resize /var/lib/libvirt/images/test.qcow2 +1G
Клонирование:
$ sudo virt-clone --connect qemu:///system \ --original linux2022 \ --name linux2022_clone \ --file /var/lib/libvirt/images/linux2022_clone.qcow2 Allocating 'linux2022_clone' | 10 GB 00:00:06 Clone 'linux2022_clone' created successfully.
Примечания:
- Памяти для запуска ДВУХ виртуальных машин на моем сервере маловато. Запущено 2 машины - linux (выделено RAM 2GB) и Windows 10 Стандартная (выделено RAM 4GB). Из команды top на хостовой машине:
- К Win10 можно было бы подключиться используя "Удаленный рабочий стол", а не через возню с KVM, но в версии Windows Домашняя эта служба не предусмотрена. Почему "Домашняя"? Потому что на нее у меня есть лицензия. В версиях Prof и выше есть сервис "Удаленный рабочий стол". "Удаленный помощник", если не ошибаюсь, использует сервисы компании Microsoft.
- Зачем весь этот гемор? При трудоустройстве разработчиком Kotlin в одну из компаний, оказалось ОБЯЗАТЕЛЬНО НУЖНО работать из Windows, т.к. на аппаратный ключ шифрования были только Windows драйвера.
- Для работы с гостевыми файловыми системами нужно установить:
sudo apt install libguestfs-tools
Use libguestfs to manage virtual machine disk images - Для обмена файлами между гостевой машиной с Windows 10, На основной Linux машине развернут сервис Samba.