虚拟机管理
启动虚拟机
virsh start <虚拟机名称>
关闭虚拟机
virsh shutdown <虚拟机名称>
重启虚拟机
virsh reboot <虚拟机名称>
查看kvm虚拟机状态
virsh list
查看所有虚拟机状态
virsh list --all
强制关闭虚拟机
virsh destroy <虚拟机名称>
挂起虚拟机
virsh suspend <虚拟机名称>
恢复虚拟机挂起状态
virsh resume <虚拟机名称>
删除虚拟机(不删除文件)
virsh undefine <虚拟机名称>
删除虚拟机并删除磁盘文件
virsh undefine <虚拟机名称> --storage 目标文件(用逗号分开的目标或者源路径
列表)(查看 domblklist)
删除虚拟机并删除所有磁盘文件
virsh undefine <虚拟机名称> --remove-all-storage
查看系统类型
osinfo-query os
安装
安装centos
virt-install --os-variant rhel7 \
--name rhel7_back \
--memory 4096,maxmemory=4096 \
--vcpus 4,maxvcpus=4 \
--network bridge=br1,model=virtio \
--disk device=disk,path=/home/lib/libvirt/images/rhel7_back.disk01,format=qcow2,size=20,bus=virtio,cache=writeback,io=threads \
--location /data/rhel-server-7.4-x86_64-boot.iso \
--graphics vnc,port=-1 \
--autostart
安装windows
virt-install --virt-type kvm \
--os-variant=win2k12r2 \
--name win2012-test \
--memory 8192,maxmemory=8192 \
--vcpus 4,maxvcpus=4 \
--cpu core2duo,+require,disable=vmx \
--network bridge=br1,model=rtl8139 \
--disk device=disk,path=/home/lib/libvirt/images/win2012-test.disk01,format=qcow2,size=40,bus=ide,cache=writeback,io=threads \
--disk device=disk,path=/mnt/images/win2012-test.disk01,format=qcow2,size=100,bus=ide,cache=writeback,io=threads \
--cdrom /data/cn_windows_server_2012_r2_with_update_x64_dvd_6052725.iso \
--graphics vnc,port=-1 \
--autostart
kvm 虚拟机 重命名
强制关闭虚拟机<原虚拟机名为back><修改后名称为rhel6>
virsh destroy back
导出虚拟机xml配置文件
cd /etc/libvirt/qemu/
virsh dumpxml back > rhel6.xml
修改rhel6.xml
vim rhel6.xml
修改开头的back
删除虚拟机,不删除文件
virsh undefine back
注册新的虚拟机
virsh define rhel6.xml
kvm虚拟机随物理机开机启动
virsh autostart <虚拟机名称>
#禁止开机启动
virsh autostart <虚拟机名称> --disable
快照管理
克隆虚拟机
virt-clone -o <虚拟机名称> -n <新虚拟机名称> -f /var/lib/libvirt/images/test4.qcow2
#命令帮助信息
virt-clone --help
#克隆完成后需要修改IP、HOSTNAME、centos6需要删除/etc/udev/rule.d/70-*-net文件并重启
#virt-clone -f指定的文件不要事先创建,如果有多个磁盘文件就用多个-f选项 如
virt-clone -o <虚拟机名称> -n <新虚拟机名称> -f /home/lib/libvirt/images/test4.qcow2 -f /mnt/images/test4-add1.qcow2
创建快照
virsh snapshot-create-as <虚拟机名称> --name <快照名称> --description "this is a test snapshot"
#查看帮助信息
virsh snapshot-create-as --help
使用xml生成快照
#创建快照,以随机数字密码
virsh snapshot-create test1
查看快照列表
virsh snapshot-list <虚拟机名称>
查看当前快照的上一级快照
virsh snapshot-parent <虚拟机名称> --current
编辑快照
virsh snapshot-edit <虚拟机名称> --snapshotname <快照名>
查看镜像文件信息
qemu-img info <虚拟机镜像>
恢复快照
virsh snapshot-revert <虚拟机名称> --snapshotname <快照名>
删除快照
virsh snapshot-delete <虚拟机名称> --snapshotname <快照名>
vcpu管理
#建议关机情况下设置(--live设置运行的域)
设置最大vcpu数(只能用--config,下次运行生效)
virsh setvcpus <虚拟机名称> 4 --maximum --config
使用vcpu数
virsh setvcpus <虚拟机名称> 4 --config
#查看vcpu信息
virsh vcpuinfo <虚拟机名称>
#查询域 vcpu 亲和性
virsh vcpupin <虚拟机名称>
#显示本机vcpu最大值
virsh maxvcpus
###减少vcpu
virsh setvcpus <虚拟机名称> 1 --config
virsh setvcpus <虚拟机名称> 1 --maximum --config
内存管理
#建议关机情况下设置(--live设置运行的域)
设置最大内存限制值
virsh setmaxmem <虚拟机名称> [--size] 2G --current
设置内存分配
virsh setmem <虚拟机名称> [--size] 2G --current
#减少内存
virsh setmem <虚拟机名称> [--size] 512M --current
virsh setmaxmem <虚拟机名称> [--size] 512M --current
硬盘管理
创建磁盘文件
#qcow2是文件类型,test1-add1.qcow2是磁盘文件,5G是大小
qemu-img create -f qcow2 /var/lib/libvirt/images/test1-add1.qcow2 5G
创建磁盘XML文件(注意,不要和现有文件重名)
virsh attach-disk <虚拟机名称> \
--source /var/lib/libvirt/images/test1-add2.qcow2 \
--target vdd \
--sourcetype file \
--type disk \
--driver qemu \
--subdriver qcow2 \
--cache none \
--targetbus virtio \
--print-xml > /etc/libvirt/qemu/test2-add.xml
从XML文件附加设备
#--persistent持久生效
virsh attach-device <虚拟机名称> /etc/libvirt/qemu/test2-add.xml --persistent
卸载磁盘设备
分离XML配置设备
virsh detach-device <虚拟机名称> /etc/libvirt/qemu/test2-add.xml --persistent
删除文件
rm -f /etc/libvirt/qemu/test2-add.xml
rm -f /var/lib/libvirt/images/test1-add1.qcow2