lsmod|grep kvm
启动libvirtd服务
systemctl start libvirtd
[root@harry-02 ~]# systemctl start libvirtd
[root@harry-02 ~]# ps aux | grep libvirtd
root 10473 4.4 0.4 1006832 15488 ? Ssl 13:23 0:00 /usr/sbin/libvirtd
root 10644 0.0 0.0 112724 984 pts/0 S+ 13:23 0:00 grep --color=auto libvirtd
brctl show可以看到两个网卡br0和virbr0
[root@harry-02 ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29522647 no ens33
virbr0 8000.525400367e29 yes virbr0-nic
命令行安装centos7
virt-install --name=aminglinux01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-17081.iso --disk path=/kvm_data/aminglinux01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
虚拟机管理
安全完虚拟机需要重启,要退出虚拟机使用快捷键ctrl ]
•ps aux |grep kvm //查看kvm进程
• virsh list //查看虚拟机列表,只能看到运行的虚拟机
• virsh list --all //查看虚拟机列表,包括未运行的虚拟机
• virsh console aminglinux01//进入指定虚拟机
• virsh shutdown aminglinux01 //关闭虚拟机
• virsh start aminglinux01 //开启虚拟机
• virsh destroy aminglinux01//类似stop,这个是强制停止
• virsh undefine aminglinux01//彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到了
/etc/libvirt/qmeu/ #虚拟机的配置文件
• ls /etc/libvirt/qemu/ //可以查看虚拟机配置文件
• virsh autostart aminglinux01//宿主机开机该虚拟机也开机
• virsh autostart --disable aminglinux01//解除开机启动
• virsh suspend aminglinux01//挂起
virsh resume aminglinux01//恢复
克隆虚拟机
virsh shutdown aminglinux01
virt-clone --original aminglinux01 --name aminglinux02 --file /kvm_data/aminglinux02.img
• --original指定克隆源虚拟机
• --name指定克隆后的虚拟机名字
• --file指定目标虚拟机的虚拟磁盘文件
如果aminglinux01虚拟机开机状态,则提示先关闭或者暂停虚拟机
快照管理
创建快照 virsh snapshot-create aminglinux01
raw格式的虚拟磁盘不支持做快照,qcow2支持
• qemu-img info /kvm_data/aminglinux01.img //查看aminglinux01.img信息,同时会查看到快照列表
• virsh snapshot-list aminglinux01 //列出所有快照
• virsh snapshot-current aminglinux01//查看当前快照版本
• ls /var/lib/libvirt/qemu/snapshot/aminglinux01//查看所有快照配置文件
• virsh snapshot-revert aminglinux01 1513440854//恢复指定快照
• virsh snapshot-delete aminglinux01 1513440854//删除快照
磁盘格式
虚拟磁盘常用格式raw、qcow2
• qemu-img info /kvm_data/aminglinux01.img//查看虚拟磁盘格式
• qemu-img create -f raw /kvm_data/aminglinux01_2.img 2G//创建2G的raw格式磁盘
把raw格式的磁盘转换为qcow2格式
• qemu-img convert -O qcow2 /kvm_data/aminglinux01_2.img /kvm_data/aminglinux01_2.qcow2
• 转换后用ls -lh查看磁盘文件的大小,可以看到qcow2文件比较小,raw文件大小和我们指定空间大小一样是2G
• raw格式的磁盘性能比qcow2要好,但是raw格式的磁盘无法做快照
给aminglinux02转换为raw格式的磁盘
• virsh shutdown aminglinux02
• qemu-img convert -O raw /kvm_data/aminglinux02.img /kvm_data/aminglinux02_3.raw
• virsh edit aminglinux02//更改格式和文件路径
• virsh start aminglinux02
磁盘扩容 – raw格式
qemu-img resize /kvm_data/aminglinux02_3.raw +2G
qemu-img info /kvm_data/aminglinux02_3.raw
virsh destroy aminglinux02
virsh start aminglinux02
virsh console aminglinux02
fdisk -l 查看磁盘情况,并分新的分区
除了对已有磁盘扩容外,还可以额外增加磁盘
qemu-img create -f raw /kvm_data/aminglinux02_2.raw 5G
virsh edit aminglinux02 //
增加<disk>…</disk>,注意更改source、target、slot
virsh destroy aminglinux02
virsh start aminglinux02
磁盘扩容 – qcow2格式
qemu-img resize /kvm_data/aminglinux01.img +2G
若提示qemu-img: Can't resize an image which has snapshots,需要删除快照
qemu-img info /kvm_data/aminglinux01.img
virsh destroy aminglinux01
virsh start aminglinux01
virsh console aminglinux01
fdisk -l 查看磁盘情况,并分新的分区
除了对已有磁盘扩容外,还可以额外增加磁盘
qemu-img create -f qcow2 /kvm_data/aminglinux01_2.img 5G
virsh edit aminglinux01 //增加<disk>…</disk>,注意更改source、target、slot
virsh destroy aminglinux01
virsh start aminglinux01
调整cpu、内存、网卡
virsh dominfo aminglinux01 //查看配置
•virsh edit aminglinux01//更改如下部分内容
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>524288</currentMemory>
<vcpu placement='static' current='1'>2</vcpu>
virsh shutdown aminglinux01
virsh start aminglinux01
virsh setmem aminglinux01 800m//动态调整内存
virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux01.xml//需要把配置写入到配置文件里
•
virsh setvcpus aminglinux01 2 //动态调整cpu数量
• virsh domiflist aminglinux01//查看网卡
• virsh attach-interface aminglinux01 --type bridge --source virbr0//增加一块新的网卡,并设置为nat网络模式(virbr0类似vmware的vmnet8),这里如果写--source br0,则网络模式为桥接
• virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux01.xml//需要把配置写入到配置文件里
迁移虚拟机
该方式要确保虚拟机是关机状态
• virsh shutdown aminglinux01
• virsh dumpxml aminglinux01 > /etc/libvirt/qemu/aminglinux03.xml // 如果是远程机器,需要把该配置文件拷贝到远程机器上
• virsh domblklist aminglinux01 //查看虚拟机磁盘所在目录
• rsync -av /kvm_data/aminglinux01.img /kvm_data/aminglinux03.img //如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上
• vi /etc/libvirt/qemu/aminglinux03.xml //因为是迁移到本机,配置文件用的是aminglinux01子机的配置,不改会有冲突,所以需要修改该文件,如果是
远程机器不用修改
• 修改domname: <name>aminglinux03</name>
• 修改uuid(随便改一下数字,位数不要变)
• 修改磁盘路径
• virsh define /etc/libvirt/qemu/aminglinux03.xml //定义新虚拟机
• virsh list --all //会发现新迁移的aminglinux03子机