----本文修改整理自网络,非本人原创。
查看虚拟机信息
查看正在运行的虚拟机
# virsh list Id Name State---------------------------------------------------- 2 Centos running
(可使用--all参数查看所有虚机状态)
查看虚拟机基本信息
# virsh dominfo CentosId: 2Name: CentosUUID: b7b54aa3-138d-4975-81e6-263bfbf1b929OS Type: hvmState: runningCPU(s): 1CPU time: 73.3sMax memory: 1048576 KiBUsed memory: 1048576 KiBPersistent: yesAutostart: disableManaged save: noSecurity model: noneSecurity DOI: 0
查看所有虚拟机运行状态
# virt-topvirt-top 03:37:19 - x86_64 2/2CPU 3292MHz 2047MB 0.7%1 domains, 1 active, 1 running, 0 sleeping, 0 paused, 0 inactive D:0 O:0 X:0CPU: 0.7% Mem: 1024 MB (1024 MB by guests)ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME 2 R 0 0 0 0 0.7 50.0 1:15.43 Centos
(virt-top可从宿主机查看所有VM运行状态。工具安装yum install virt-top)
查看虚拟机文件系统状态
# virt-df -h CentosFilesystem Size Used Available Use%Centos:/dev/sda1 497M 94M 402M 19%Centos:/dev/centos/root 3.1G 1.2G 1.9G 39%
(virt-df可从宿主机查看VM的文件系统状态。安装命令yum install libguestfs-tools)
启动和关闭虚拟机
# virsh shutdown CentosDomain Centos is being shutdown (关闭虚拟机) # virsh start CentosDomain Centos started (启动虚拟机) # virsh autostart CentosDomain Centos marked as autostarted (激活虚机自动启动) # virsh autostart --disable CentosDomain Centos unmarked as autostarted (取消虚机自动启动)
克隆虚拟机
# virsh suspend CentosDomain Centos suspended(挂起克隆源虚拟机。主要是为了完全关闭数据和网络I/O,保证数据的静态)# virt-clone --original Centos --name Centos01 --file /kvmdir/Centos01参数解释:--original 克隆的源主机--name 克隆的目标主机--file 克隆目标主机的文件路径# virsh resume CentosDomain Centos resumed(恢复克隆源虚拟机)# virsh start Centos01 Domain Centos01 started(启动克隆目标主机)# virsh list Id Name State---------------------------------------------------- 4 Centos running 5 Centos01 running(克隆成功,需要注意的是得登录到Centos01主机里面修改主机名和IP后才能远程访问) CentOS7会有点问题,需要修改xxx.xml文件,然后重新定义虚拟机
可以直接根据xml文件创建虚拟机 cd /etc/libvirt/qemu 复制一个现有的xml文件,修改内容, virsh create xxx.xml #启动虚拟机 需要给新的虚拟机复制img文件,把源img文件复制一份即可 virsh define xxx.xml #定义虚拟机
删除虚拟机
# virsh destroy Centos01Domain Centos01 destroyed(摧毁虚拟机)# virsh list --all Id Name State---------------------------------------------------- 4 Centos running - Centos01 shut off# virsh undefine Centos01Domain Centos01 has been undefined(取消虚拟机的定义)# virsh list --all Id Name State---------------------------------------------------- 4 Centos running# rm -f /kvmdir/Centos01(删除虚拟机在KVM宿主机的文件)
虚拟机资源管理
MEM资源修改
在设置Used Memory的最终数值小于Max Memory的情况下,可以使用setmem在线进行内存配置的修改。
# virsh dominfo Centos |grep memoryMax memory: 1048576 KiBUsed memory: 1048576 KiB(查看当前内存配置)#virsh setmem Centos 512428(需要注意的是内存数值的单位为KB)# virsh dominfo Centos |grep memoryMax memory: 1048576 KiBUsed memory: 512428 KiB(内存修改成功)
在设置Used Memory的最终数值大于Max Memory的情况下,需要关闭虚拟机并修改虚拟机定义文件。
# virsh shutdown CentosDomain Centos is being shutdown(关闭虚拟机)# virsh edit CentosDomain docker01 XML configuration edited.(编辑虚拟机的XML文件)文件变更内容:1048576 ###虚拟机支持使用的最大内存1048576 ###虚拟机当前可使用的内存# virsh create /etc/libvirt/qemu/Centos.xmlDomain Centos created from /etc/libvirt/qemu/Centos.xml(使用新的XML文件启动虚拟机)# virsh dominfo Centos |grep memoryMax memory: 2097152 KiBUsed memory: 1048576 KiB(内存修改成功)
CPU资源修改
# virsh dominfo Centos |grep -i cpuCPU(s): 1CPU time: 40.1s(查看当前CPU配置)# virsh shutdown CentosDomain Centos is being shutdown(关闭虚拟机) # virsh edit CentosDomain Centos XML configuration edited.2 (将vCPU的数量设置为需要的数值)# virsh create /etc/libvirt/qemu/Centos.xml Domain Centos created from /etc/libvirt/qemu/Centos.xml# virsh dominfo Centos |grep -i cpuCPU(s): 2CPU time: 4.1s(CPU修改成功)
DISK资源修改
DISK资源的配置只能在停止续集的情况下修改
# virsh shutdown CentosDomain Centos is being shutdown(关闭虚拟机)# dd if=/dev/zero of=/kvmdir/test-add01.qcow2 bs=1M count=40964096+0 records in4096+0 records out4294967296 bytes (4.3 GB) copied, 58.2544 s, 73.7 MB/s(在KVM宿主机创建一块裸设备)# qemu-img convert -f raw test-add01.qcow2 -O qcow2 test-add01.qcow2(将raw设备转换成KVM虚拟机识别的qcow2设备)# virsh edit CentosDomain Centos XML configuration edited.文件变更内容:(虚机本身就有一块vda的盘,按照同样的格式添加新增的vdb就行。这里需要注意的是,需要把dev参数改为vdX。另外slot参数需要检索整个XML文件,选择一个不重复的数值配置。)
# virsh create /etc/libvirt/qemu/Centos.xml
Domain Centos created from /etc/libvirt/qemu/Centos.xml(使用新的XML启动虚拟机)
# fdisk -l /dev/vdb
Disk /dev/vdb: 4294 MB, 4294967296 bytes, 8388608 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
(登录到虚机查看磁盘已经添加成功)
Kvm虚拟机创建快照
raw磁盘格式不支持快照功能,需要先转换磁盘格式
# qemu-img info centos7-node8.img 查看磁盘格式image: centos7-node8.imgfile format: rawvirtual size: 29G (31458328576 bytes)disk size: 29G# qemu-img convert -f raw -O qcow2 centos7-node8.img centos7-node8.img #修改磁盘格式# qemu-img info centos7-node8.imgimage: centos7-node8.imgfile format: qcow2virtual size: 29G (31458328576 bytes)disk size: 960Kcluster_size: 65536Format specific information: compat: 1.1 lazy refcounts: false
编辑xml文件,将磁盘类型修改为qcow2格式。
# vim centos7-node8.xml#此处修改