kvm入门

egrep "svm|vmx" /proc/cpuinfo  #查看系统是否支持虚拟化
yum install -y qemu-kvm qemu-kvm-tools libvirt  #安装kvm相关软件
systemctl start libvirtd  #开启libvirtd,管理kvm用
systemctl enable libvirtd  #开机启动libvirtd
ifconfig   #启动了一个虚拟网卡
ps -aux | grep dns  #同时启动了一个dnsmasq

创建虚拟机

whereis qemu-img
rpm -qf /usr/bin/qemu-img
qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G   #创建镜像,-f指定文件格式
yum install -y virt-install    #可以安装虚拟机命令
virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 2048 --cdrom=/opt/CentOS-7-x86_64-DVD-1708.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole #创建虚拟机
virsh list --all #查看所有的虚拟机
virsh start CentOS-7-x86_64 #启动虚拟机
ps aux | grep kvm #查看kvm进程
cd /etc/libvirt/qemu/
virsh dumpxml CentOS-7-x86_64 > backup.xml #备份xml文件,libvirt通过xml文件定义虚拟机
virsh shutdown CentOS-7-x86_64 #关闭虚拟机
virsh undefine CentOS-7-x86_64 #删除虚拟机
virsh define backup.xml #恢复虚拟机
virsh suspend CentOS-7-x86_64 #挂起虚拟机
virsh resume CentOS-7-x86_64 #恢复挂起虚拟机
virsh --help|grep snapshot #查看生成快照命令

动态添加cpu数量

virsh edit CentOS-7-x86_64 #使用此命令编辑xml文件

修改前:

<vcpu placement='static'>1</vcpu>

修改后:

<vcpu placement='auto' current="1">4</vcpu>

源文件cpu设置为静态无法改变,这里改成动态,默认为1个,最大可扩容4个,注意修改后必须重启才能生效,然后执行下面命令动态修改

virsh --help |grep cpu #查看cpu相关命令
virsh setvcups CentOS-7-x86_64 2 --live #使用此命令动态添加cpu个数为2个

动态修改内存大小

virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd balloon 1024 #修改内存为1024m
virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon #查看当前内存

注意:修改的内存不能大于xml文件中定义的大小,如下所示

<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
qemu-img convert -f raw -O qcow2 CentOS-7-x86_64.raw test.qcow

brctl show
brctl addbr br0
brctl addif br0 ens33
ip addr del dev ens33 192.168.195.133/24
ifconfig br0 192.168.195.133/24 up
ip ro li
route add default gw 192.168.195.2
virsh edit CentOS-7-x86_64

修改前:

<interface type='network'>
<mac address='52:54:00:a8:4f:0c'/>
<source network='default'/>

修改后:

<interface type='bridge'>
<mac address='52:54:00:a8:4f:0c'/>
<source bridge='br0'/>

优化

taskset -cp 0 7536 #绑定到0号cpu
bios#打开EPT功能
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise nevercat /sys/block/sda/queue/scheduler #修改磁盘的调度算法,理解下面三种调度算法
noop [deadline] cfq