kvm管理命令

查看运行的虚拟机

[root@103 kvm]# virsh list
 Id    名称                         状态
----------------------------------------------------
 1     db                             running
 5     test                           running

查看所有的虚拟机

[root@103 kvm]# virsh list --all
[root@103 kvm]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 1     db                             running
 5     test                           running
 -     centos                         关闭

开启虚拟机

[root@103 kvm]# virsh  start centos
域 centos 已开始

关闭虚拟机

[root@103 kvm]# virsh shutdown  centos
域 centos 被关闭

重启虚拟机

[root@103 kvm]# virsh reboot centos
域 centos 正在被重新启动

摧毁虚拟机(摧毁是等于直接拔电源)

[root@103 kvm]# virsh destroy centos
域 centos 被删除

挂起虚拟机

[root@103 kvm]# virsh suspend centos
域 centos 被挂起

恢复虚拟机

[root@103 kvm]# virsh resume centos
域 centos 被重新恢复

删除虚拟机(危险操作)

[root@103 kvm]# virsh undefine  centos
域 centos 已经被取消定义

# 开机状态下的虚拟机刚删除还能查到虚拟机状态,但是将虚拟机关机之后就查不到了

查看配置文件

[root@103 kvm]# virsh dumpxml centos > centos-kvm.xml

查看虚拟机端口

[root@103 kvm]# virsh list 
 Id    名称                         状态
----------------------------------------------------
 1     db                             running
 5     test                           running
 9     centos                         running

[root@103 kvm]# virsh vncdisplay db
:0

[root@103 kvm]# virsh vncdisplay test
:1

# :0 即 为 5900 端口,以此类推 :1为5901

设置虚拟机开机自启

[root@103 kvm]# virsh autostart test
域 test标记为自动开始

# 其实这条命令是设置了软连接
[root@103 kvm]# ll /etc/libvirt/qemu/autostart/test.xml 
lrwxrwxrwx 1 root root 26 1月  16 11:32 /etc/libvirt/qemu/autostart/test.xml -> /etc/libvirt/qemu/test.xml


# 取消开机自启,软连接自动删除
virsh  autostart --disable test

查看kvm虚拟机网络信息

查看虚拟机IP
[root@103 ~]# virsh domifaddr centos7
 名称     MAC 地址           Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:c5:45:16    ipv4         192.168.122.78/24


[root@103 ~]# virsh net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是


[root@103 ~]# virsh net-dhcp-leases default
 Expiry Time          MAC 地址         Protocol  IP address                Hostname        Client ID or DUID
-------------------------------------------------------------------------------------------------------------------
 2024-01-16 15:04:07  52:54:00:c5:45:16  ipv4      192.168.122.78/24         -               -

console链接虚拟机

常规情况下,安装完 KVM 之后,可能都会通过 VNC 连接到 KVM 虚拟机里面去设置相应的 IP 等信息。但是这样子,一方面可能会因为打开过多的端口造成安全问题,另一方面也不是会便捷。
针对此种情况,我们可以使用 KVM 为我们提供的 console 接口功能,它可以采用字符界面进行 linux虚拟机控制台连接。
这样子,即使 KVM 虚拟机没有 IP 地址,又或者 KVM 虚拟机出现了问题通过 IP 连接不进去了,都可以很便捷的快速进入到 KVM 虚拟机里面去排查问题。

通过为内核传递参数 console=ttyS0,来让内核把输出定向至 ttyS0
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot重启虚拟机

宿主机上登陆
[root@103 ~]# virsh console db
连接到域 db
换码符为 ^]


CentOS Linux 7 (Core)
Kernel 3.10.0-1160.el7.x86_64 on an x86_64

db login: root
Password: 
Last login: Tue Jan 16 01:50:22 on ttyS0

虚拟机添加磁盘

先创建一个空的磁盘文件
[root@103 kvm]# qemu-img create -f  qcow2 /opt/kvm/disk.qcow2 5G

[root@103 kvm]# ls /opt/kvm
centos7.qcow2   disk.qcow2

查看虚拟磁盘文件
[root@103 kvm]# qemu-img info disk.qcow2 
image: disk.qcow2
file format: qcow2
virtual size: 5.0G (5368709120 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

给虚拟机添加磁盘,支持热添加硬盘,无须关机
[root@103 kvm]# virsh attach-disk centos7 /opt/kvm/disk.qcow2 vdb --live --cache=none --subdriver=qcow2
成功附加磁盘

参数解释
virsh attach-disk 虚拟机名 磁盘文件位置 虚拟设备名 --live(激活) --cache=none(不要缓存) --subdriver=qcow2(使用qcow2这个类型驱动)

虚拟机上挂载磁盘
mkfs.xfs /dev/vdb
mount /dev/vdb /data/
xfs_growfs /new_vdb/   更新xfs文件系统

也可以删除虚拟磁盘,例如要更换虚拟磁盘路径
[root@103 kvm]# virsh detach-disk centos7 vdb
成功分离磁盘
posted @ 2024-01-17 15:58  村尚chun叔  阅读(8)  评论(0编辑  收藏  举报