kvm管理工具-virsh

KVM(Kernel-based Virtual Machine)是一种基于 Linux 内核的虚拟化技术,允许在一个物理主机上运行多个虚拟机。KVM 提供了一组命令行工具来管理虚拟机的创建、启动、停止、管理和监控等操作。openstack默认使用kvm作为底层虚拟化技术

查看全部虚拟机列表

包含关闭和运行的

root@controller:~# virsh list --all
 Id   Name                State
-----------------------------------
 3    instance-00000004   running

停止虚拟机列表

指定id或者虚拟机名称

root@controller:~# virsh shutdown 3
Domain '3' is being shutdown

root@controller:~# virsh list --all
 Id   Name                State
------------------------------------
 -    instance-00000004   shut off

启动虚拟机

注意启动虚拟机则必须要指定名称,此时没有id

root@controller:~# virsh start instance-00000004
Domain 'instance-00000004' started

root@controller:~# virsh list --all
 Id   Name                State
-----------------------------------
 4    instance-00000004   running

强制关闭虚拟机

类似断电关机,此时可以指定id或者名称

root@controller:~# virsh list --all
 Id   Name                State
-----------------------------------
 4    instance-00000004   running

root@controller:~# virsh destroy 4
error: failed to get domain '4'

root@controller:~# virsh list --all
 Id   Name                State
------------------------------------
 -    instance-00000004   shut off

连接虚拟机控制台

ctrl+】可退出

root@controller:~# virsh list --all
 Id   Name                State
-----------------------------------
 7    instance-00000004   running

root@controller:~# virsh console 7
Connected to domain 'instance-00000004'
Escape character is ^] (Ctrl + ])

login as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.
test login: cirros
Password:
$ sudo su -
# exit
$ exit

login as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.
test login:
root@controller:~#

查看虚拟机的详细信息

此时可以查看到虚拟机的内存,cpu等

root@controller:~# virsh list --all
 Id   Name                State
-----------------------------------
 7    instance-00000004   running

root@controller:~# virsh dominfo 7
Id:             7
Name:           instance-00000004
UUID:           0b910f75-3c81-4919-a01a-b70a314a3a3e
OS Type:        hvm
State:          running
CPU(s):         1
CPU time:       12.9s
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: apparmor
Security DOI:   0
Security label: libvirt-0b910f75-3c81-4919-a01a-b70a314a3a3e (enforcing)

查看虚拟机接口信息

查看接口和mac地址

root@controller:~# virsh list --all
 Id   Name                State
-----------------------------------
 7    instance-00000004   running

root@controller:~# virsh domiflist 7
 Interface        Type       Source   Model    MAC
------------------------------------------------------------------
 tapacf8cea4-33   ethernet   -        virtio   fa:16:3e:33:d6:52

root@controller:~#

查看虚拟机xml文件配置

会列出有关虚拟机的所有信息,需要过滤一下,例如查看虚拟机的ip信息

root@controller:~# virsh dumpxml instance-00000004 | grep address
          <nova:ip type="fixed" address="10.0.0.11" ipVersion="4"/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
      <mac address='fa:16:3e:33:d6:52'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      <address type='usb' bus='0' port='1'/>
      <address type='usb' bus='0' port='2'/>
      <listen type='address' address='192.168.200.195'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
root@controller:~#

查看虚拟机的名称,在openstack中创建名称为test

root@controller:~# virsh dumpxml 8|grep nova:name
      <nova:name>test</nova:name>

删除虚拟机

首先关闭虚拟机,如果关闭不了则强行关机,然后删除虚拟机。

root@controller:~# virsh list --all
 Id   Name                State
-----------------------------------
 7    instance-00000004   running

root@controller:~# virsh shutdown 7
Domain '7' is being shutdown

root@controller:~# virsh undefine instance-00000004
Domain 'instance-00000004' has been undefined

root@controller:~# virsh list --all
 Id   Name   State
--------------------

root@controller:~#

但是需要注意的是,不会实际删除openstack中的实例,实例重启后,virsh list又会出现

因为在 OpenStack 中,虚拟机实例的生命周期和 hypervisor 中的虚拟机的生命周期是分开管理的。当使用 virsh undefine 命令删除 hypervisor 中的虚拟机时,并不会影响 OpenStack 数据库中对应虚拟机实例的记录。

在 OpenStack 中,虚拟机的状态和其他元数据被存储在数据库中。即使 hypervisor 中的虚拟机被删除,OpenStack 数据库中的虚拟机记录仍然存在。因此,当重启实例时,OpenStack 会检查数据库中的记录,发现虚拟机实例丢失,并尝试重新创建它。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huhy~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值