KVM. Создание и удаление ВМ с помощью virsh и virt-install
В этой статье сначала создадим виртуальный диск в формате qcow2 с помощью команды qemu-img, затем с помощью команды virt-install установим ВМ в режиме консоли.
После этого с помощью virsh удалим созданную ВМ.
Проверьте, что у вас установлен и запущен сервис libvirtd:
sudo systemctl status libvirt
Если нет, то выполните установку 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
Если ваша ВМ в статусе 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'/>
После этого удаляем ВМ:
udo virsh undefine --domain terraform
И наконец, удалим образ уничтоженной ВМ:
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
Теперь можно удалить ВМ и её образ.