KVM虚拟机部署
1、kvm介绍
KVM kernel-based virtual machine基于内核的虚拟机是x86架构下硬件辅助的全虚拟化的首选解决方案, KVM需要经过修改的QEMU软件(qemu-kvm)来实现虚拟机的管理,KVM就是内核的一个模块,用户空间通过QEMU模拟硬件提供给虚拟机使用,一台虚拟机就是一个普通的Linux进程,虚拟机中的VCPU就是该进程中的线程。
在QEMU-KVM中,KVM运行在内核空间,QEMU运行在用户空间,实际模拟创建,管理各种虚拟硬件,QEMU将 KVM整合了进来,通过/ioctl调用 /dev/kvm,从而将CPU指令的部分交给内核模块来做,KVM实现了CPU和内存的虚拟化,但kvm不能虚拟其他硬件设备,因此qemu还有模拟IO设备(磁盘,网卡,显卡等)的作用,KVM加上QEMU后就是完整意义上的服务器虚拟化。当然,由于qemu模拟io设备效率不高的原因,现在常常采用半虚拟化的 virtio方式来虚拟IO设备。
2、kvm安装需求
- 物理机BIOS开启虚拟化支持
- 检查CPU flags是否包含vmx/smx
# lscpu
# egrep 'svm|vmx' /proc/cpuinfo
3、部署虚拟机
系统为centos7
# yum grouplist
# yum -y groupinstall "虚拟化*"
验证虚拟化主机
# systemctl status libvirtd
# lsmod | grep kvm
虚拟机网络连接状态
# firewall-cmd --permanent --zone=external --list-all
启动libvirtd
# systemctl start libvirtd
查看主机列表
# virsh list --all
使用virt-manager安装虚拟机
# virt-manager
3、网络配置
查看虚拟网络
# virsh net-list --all
NET 模式
配置虚拟机网卡
1、使用virt-manager配置
2、使用virsh命令修改配置
# virsh edit centos7.5-1
<interface type='network'>
<mac address='52:54:00:xx:xx:xx'/>
<source network='smartgonet1'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
桥接模式
所有虚拟机和宿主机在同一个子网
首先停用NetworkManager
# systemctl stop NetworkManager
# systemctl disable NetworkManager
创建桥
1、使用virt-manager图形界面
虚拟机配置
# virsh edit centos7.5
<interface type='bridge'>
<source bridge='br1'/>
</interface>
查看
# brctl show
2、手动配置
创建桥
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.0.230
PREFIX=24
GATEWAY=192.168.1.254
DNS1=8.8.8.8
ONBOOT=yes
DELAY=0
STP=on
将物理接口桥接到br0
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0