KVM. Создание и удаление ВМ с помощью virsh и virt-install
В этой статье сначала создадим виртуальный диск в формате qcow2 с помощью команды qemu-img, затем с помощью команды virt-install установим ВМ в режиме консоли.
После этого с помощью virsh удалим созданную ВМ.
Проверьте, что у вас установлен и запущен сервис libvirtd:
Если нет, то выполните установку KVM:
Запустите установку CentOS 7:
После запуска этой команды вы попадете в консольный режим установки CentOS 7.
Подключиться к ВМ после установки:
Если ваша ВМ в статусе Runing, то сначала её надо выключить:
Либо выключить принудительно:
Посмотреть информацию о ВМ можно с помощью команды virsh dumpxml:
Запомните, где хранится образ ВМ:
После этого удаляем ВМ:
И наконец, удалим образ уничтоженной ВМ:
Посмотреть список снапшотов:
Синтаксис удаления снапшота:
Удаляем снапшоты:
И проверяем:
Теперь можно удалить ВМ и её образ.
После этого с помощью virsh удалим созданную ВМ.
Все действия гарантированно работают на CentOS 7.
Проверьте, что у вас установлен и запущен сервис libvirtd:
[admin@kvm ~]$ sudo systemctl status libvirt
libvirtd.service libvirt-guests.service
[root@kvm ~]# systemctl status libvirt
libvirtd.service libvirt-guests.service
[root@kvm ~]# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-02-23 09:54:25 +10; 1 day 3h ago
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 3139 (libvirtd)
Tasks: 19 (limit: 32768)
CGroup: /system.slice/libvirtd.service
├─3139 /usr/sbin/libvirtd
├─3771 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/defa...
└─3772 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/defa...
Если нет, то выполните установку KVM:
sudo yum groupinstall "Virtualization Host" -y; sudo yum install virt-install -y
Создание ВМ
Создайте виртуальный диск объемом 10 Гб:sudo qemu-img create -o preallocation=metadata -f qcow2 /var/lib/libvirt/images/centos7.qcow2 10G
Запустите установку CentOS 7:
sudo virt-install --virt-type kvm --name centos7 --ram 1024 \
--disk /var/lib/libvirt/images/centos7.qcow2,format=qcow2 \
--network network=default \
--os-type=linux --os-variant=rhel7.0 \
--location=/home/admin/iso/CentOS-7-x86_64-Minimal-1908.iso \
--graphics none \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial'
После запуска этой команды вы попадете в консольный режим установки CentOS 7.
Подключиться к ВМ после установки:
virsh console VM_NAME
Удаление ВМ
Смотрим список установленных ВМ:$ sudo virsh list --all
Id Name State
----------------------------------------------------
- terraform shut off
Если ваша ВМ в статусе Runing, то сначала её надо выключить:
# virsh shutdown --domain VM_NAME
Либо выключить принудительно:
# virsh destroy --domain VM_NAME
Посмотреть информацию о ВМ можно с помощью команды virsh dumpxml:
# virsh dumpxml --domain VM_NAME
Запомните, где хранится образ ВМ:
$ sudo virsh dumpxml --domain terraform | grep 'source file'
<source file='/libvirt/terraform.qcow2'/>
После этого удаляем ВМ:
$ sudo virsh undefine --domain terraform
Domain terraform has been undefined
$ sudo virsh list --all
Id Name State
----------------------------------------------------
[admin@kvm ~]$
И наконец, удалим образ уничтоженной ВМ:
# rm -rf /libvirt/terraform.qcow2
Ошибка: "cannot delete inactive domain with snapshots"
Вы не сможете удалить ВМ, если у нее есть снапшоты. При попытке удалить ВМ появится ошибка:error: Failed to undefine domain terraform
error: Requested operation is not valid: cannot delete inactive domain with 2 snapshot
Посмотреть список снапшотов:
# virsh snapshot-list --domain VM_NAME
Name Creation Time State
------------------------------------------------------------
24feb2020 2020-02-24 13:38:18 -0500 shutoff
24feb2020u1 2020-02-24 15:04:50 -0500 shutoff
Синтаксис удаления снапшота:
# virsh snapshot-delete --domain VM_NAME --snapshotname SNAPSHOT_NAME
Удаляем снапшоты:
# virsh snapshot-delete --domain terraform --snapshotname 24feb2020
Domain snapshot 24feb2020 deleted
# virsh snapshot-delete --domain terraform--snapshotname 324feb2020u1
Domain snapshot 24feb2020u1 deleted
И проверяем:
# virsh snapshot-list --domain terraform
Name Creation Time State
------------------------------------------------------------
Теперь можно удалить ВМ и её образ.
Комментариев 2