kvm
kvm是什么
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
一、虚拟机管理
启动虚拟机
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
三、安装
1、安装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=/data8/zhangdong,format=qcow2,size=20,bus=virtio,cache=writeback,io=threads
–location /opt/CentOS-7-x86_64-Minimal-1804 (1).iso
–graphics vnc,port=-1
–autostart
2、安装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 虚拟机 重命名
1、强制关闭虚拟机<原虚拟机名为back><修改后名称为rhel6>
virsh destroy back
2、导出虚拟机xml配置文件
cd /etc/libvirt/qemu/
virsh dumpxml back > rhel6.xml
修改rhel6.xml
vim rhel6.xml
3、修改开头的back
4、删除虚拟机,不删除文件
virsh undefine back
5、注册新的虚拟机
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