как удалить гостя после его создания с помощью virt-install

19

Я создал гостевую KVM из командной строки, virt-installгде я использовал параметры командной строки --disk pool=vg0,size=20и --name virt1.example.com.

Как я могу удалить этого гостя KVM из командной строки? Мне это больше не нужно.

Просто для записи вся командная строка была

virt-install --debug --hvm --vnc --name virt1.example.com --os-type=linux --os-variant=rhel6 --pxe --network network=default,model=e1000,mac=02:54:00:13:be:e4 --disk pool=vg0,size=20 --ram 1024 --vcpus=1 

и вот некоторая дополнительная информация

[root@server ~]# virsh vol-list vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh list
 Id Name                 State
----------------------------------
  3 virt1.example.com running

Обновить

Запуск этих трех команд, кажется, удаляет установленный KVM

virsh destroy virt1.example.com
virsh undefine virt1.example.com
virsh vol-delete --pool vg0 virt1.example.com.img

Для более подробной информации смотрите сеанс терминала:

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
 3 virt1.example.com running

[root@server ~]# virsh undefine virt1.example.com
error: Failed to undefine domain virt1.example.com
error: Requested operation is not valid: cannot delete active domain

[root@server ~]# virsh destroy virt1.example.com
Domain virt1.example.com destroyed

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
  - virt1.example.com shut off

[root@server ~]# virsh undefine virt1.example.com
Domain virt1.example.com has been undefined

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh vol-delete --pool vg0 virt1.example.com.img
Vol virt1.example.com.img deleted

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        

[root@server ~]# cat /etc/issue
CentOS Linux release 6.0 (Final)
Kernel \r on an \m

[root@server ~]# virsh --version
0.8.1
Эрик Шёлунд
источник
1
Для тех, кто ищет этот ответ, если ваша ошибка на этапе virsh undefine virt1.example.com (с ошибкой типа «Отказ от отмены определения при сохранении образа, управляемого доменом»). Тогда вам может понадобиться дополнительная команда, например: virsh managedsave-remove virt1.example.com.
nmtoken

Ответы:

26

Согласно руководству virsh это:

virsh destroy _domain-id_
virsh undefine _domain-id_
virsh vol-delete --pool vg0 _domain-id_.img

И далее говорится: «Отменить (уничтожить) конфигурацию для неактивного домена. Так как в домене нет имени домена или UUID должен использоваться в качестве идентификатора домена».

mailq
источник
Спасибо @mailq Я думаю, что мне удалось удалить KVM. Может быть, вы могли бы обновить свой ответ соответственно?
Эрик Шёлунд
Теперь это отражает решение
mailq
5
Для тех, кому интересно, вот что делают эти команды: virsh destroyвыполняет принудительное отключение виртуальной машины, virsh undefineудаляет конфигурацию из KVM и virsh vol-deleteудаляет фактический образ диска. Если вам нужно получить _domain-id_тип, virsh list --allчтобы получить список ваших виртуальных машин.
Рик Чатем
3
Этот рецепт был написан в virt-delete из virt-utils , в котором также есть несколько других полезных скриптов.
imz - Иван
Вы можете сделать virsh undefine yourdomainname --storage vdaза один шаг. Будьте осторожны, чтобы не использовать --remove-all-storage, если вы не знаете, что делаете.
ILMostro_7