centos7搭建kvm虚拟环境,IP是10.10.10.10
#关闭firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
#关闭selinux
sed -i 's:SELINUX=enforcing:SELINUX=disabled:g' /etc/selinux/config
#重新启动电脑,使用setenforce 0无效
reboot
#安装依赖软件
yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install bridge-utils -y
#判断是否支持虚拟化(需要开启VT)
grep -E '(vmx|svm)' /proc/cpuinfo
#挂在然后使用dd命令合成。或者你也可以上传一个centos7.iso文件
dd if=/dev/cdrom of=/opt/CentOS-7-x86_64.iso
#创建硬盘
qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G
#创建虚拟机
virt-install --name vm01 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7-x86_64.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
#使用vnc进行连接 10.10.10.10:5900
#输入tab键,然后输入 net.ifnames=0 biosdevname=0,可以使用eth0,默认centos的网卡是随机命名
#设置libvirtd启动和自启
systemctl enable libvirtd.service
systemctl start libvirtd.service
#查看全部虚拟机
virsh list --all
#启动虚拟机
virsh start vm01
#关机
virsh shudown vm01
virsh destroy vm01
#编辑虚拟机
virsh edit vm01
#挂起
virsh suspended vm01
#恢复
virsh resume vm01
#删除虚拟机
virsh undefine vm01
#克隆虚拟机
virt-clone -o vm01 -n vm02 -f /data/vm02.img
#备份xml(如果删除虚拟机,则用就找不回来,我们可以提前备份xml,这样就可以保证找得回来)
virtsh dumpxml vm01
#路径
/etc/libvirt/qemu/vm01.xml
#kvm虚拟机的网段分配
cat /var/lib/libvirt/dnsmasq/default.conf
dhcp-range=192.168.122.2,192.168.122.254
#cup编辑(只允许增加,不允许减少)
#cup热添加
virsh shutdown vm01
virsh edit vm01
<vcpu palcement='auto' current="1">4</vcpu>
virsh satrt vm01
#命令行添加cup
virsh setvcpus vm01 1 --live
#进入虚拟机查看
ls /sys/devices/system/cpu/cpuX
cat /proc/interrupts
free -m
#内存(可增可减)
#内存热添加
virsh shutdown vm01
virsh edit vm01
<memory unit='KiB'>4048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
virsh satrt vm01
#命令行修改内存
virsh qemu-monitor-command vm01 --hmp --cmd info balloon
virsh qemu-monitor-command vm01 --hmp --cmd balloon 600
#硬盘:
#全镜像模式 稀疏模式
raw qcow2
qemu-img
#KVM优化
#虚拟化分为两种全虚拟化和半虚拟机
#以前虚拟化的实现方式
虚拟机的虚拟内存===>虚拟机的物理内存
宿主机的虚拟内存===>宿主机的物理内存
#现在虚拟机的实现方式:EPT(inter)
虚拟机的虚拟内存=====EPT=====宿主机的物理内存
#内存的优化
内存寻址:EPT
内存合并:KSM
大页内存: khugepaged 把连续的4K内存合并成为2M ps aux |grep ksmd
内存的合并
cat /sys/kernel/mm/transparent_hugepage/enabled
ps aux |grep khugepaged
#I/O优化:
#Virtio 半虚拟化
#I/O调度算法:
#CentOS7上默认有三种:noop deadline cfq
dmesg |grep scheduler
cat /sys/block/sda/queue/scheduler 默认为deadline
echo noop > /sys/block/sda/queue/scheduler noop的性能是最好的
#永久优化
echo "elevator=noop" >> /etc/sysctl.conf