1. 查看硬件是否支持虚拟化
KVM需要CPU支持虚拟化,执行以下命令查看是否支持虚拟化:
# egrep '(vmx|svm)'-color=always /proc/cpuinfo
如果含有vmx或者svm字样,则表示支持CPU虚拟化,Intel是vmx,AMD是svm。
2. 启用SELinux
安装KVM之前需要启用SELinux,执行:
# system-config-securitylevel-tui
3. 安装KVM
直接在线安装KVM:
# yum install -y kvm kmod-kvm kvm-qemu-img libvirt Python-virtinst virt-manager virt-viewer bridge-utils
安装完成后重启主机:
# reboot
重启完成后,检查kvm模块是否加载:
# lsmod | grep kvm
显示结果如下表示kvm模块已经加载,如果没有输出信息,则表示没有加载成功:
kvm_amd 50452 0
kvm 109264 1 kvm_amd
4. 配置网络
chkconfig NetworkManager off
service NetworkManager stop
必须执行以上两步,否则restart network 会报错 :
Master connection not found or invalid
配置桥接
安装tunctl:
# yum install -y tunctl
桥接网络配置文件,从ifcfg-eth0复制现有网卡的配置文件,改名为ifcfg-br0:
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
修改ifcfg-br0,注意红色的两行,其他部分基本上不用改。
# vim /etc/sysconfig/network-scripts/ifcfg-br0
ONBOOT="yes" DEVICE="br0" TYPE="Bridge" BOOTPROTO=static #BROADCAST=192.168.1.255 IPADDR=192.168.1.12 NETMASK=255.255.255.0 #NETWORK=192.168.1.0 GATEWAY=192.168.1.1 DEFROUTE=yes
修改ifcfg-br0,注意红色的行,其他部分基本上不用改。
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=B8:2A:72:E0:68:E2 DEVICE="em1" NM_CONTROLLED="no" TYPE=Ethernet BOOTPROTO=none #BROADCAST=192.168.1.255 #IPADDR=192.168.1.12 #NETMASK=255.255.255.0 #NETWORK=192.168.1.0 #GATEWAY=192.168.1.1 ONBOOT="yes" BRIDGE="br0" NAME="system em1"
重启network服务
# service network restart
这里需要注意,如果启用了NetworkManager,最好关闭该服务,因为该服务与network有冲突。
配置转发
执行以下命令:
# echo 1 > /proc/sys/net/ipv4/ip_forward
这一步虽然只有简单的一条命令,但却很关键。如果不执行这一步,所有的虚拟机将无法上网。另外,上一步配置完桥接之后重启network,会自动将ip_forward改为0,所以重新配置网络后,不要忘了执行该命令。发现虚拟机无法上网的时候,也可以检查一下ip_forward值。