除了基本的KVM软件包,也同时安装一些管理工具:
yum install kvm yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client
各个软件包的详细说明,可参阅:Installing virtualization packages on an existing Red Hat Enterprise Linux system。
KVM包含全套的命令行工具,如果在图形界面下,使用virt-manager是最简单的方式。
SELinux是无法回避的一套安全机制,详细信息可参考官方文档Security-Enhanced Linux。很多人图省事,简单的禁用了它。个人不建议这么做,相反,还安装如下的一些软件包,方便管理:
yum install policycoreutils-python yum install setroubleshoot yum install setroubleshoot-server yum install setools-console
同时,启用auditd服务,记录安全日志,以便能更容易找到解决方案:
chkconfig auditd on
KVM支持本地和网络的存储,每种又支持很多模式。详细说明可参阅:Storage concepts。
最简单的本地存储模式就是文件系统目录,本地存储缺省目录在/var/lib/libvirt/images/下。在虚拟机学习平台的搭建一文中已准备好了一个文件系统/raid0,通过virt-manager将其添加到存储池里,以后就可以利用这块存储空间来建立虚拟机了。
对于比较简单的NFS网络模式,需要注意的是,要让虚拟机能利用远端服务器的NFS存储,需要设置SELinux:
/usr/sbin/setsebool -P virt_use_nfs=1
NFS对网络要求很高,这也是在虚拟机学习平台的搭建一文中提到至少千兆网卡的原因,百兆网络的速度还不如一些本地移动设备。
每个虚拟网络就好比是一台交换机(switch),使用同一个虚拟网络的虚拟机就如同接在同一台交换机上,彼此可以互相通信。
KVM支持多种虚拟网络模式:
有关虚拟网络的详细说明,可参阅:Virtual Networking。
还有一种模式称为桥接(bridge)模式,此模式下,虚拟机就如同一台真实的物理机器展现在外界。
要配置桥接模式,需要禁用NetworkManager,恢复传统的网络配置模式:
chkconfig NetworkManager off chkconfig network on service NetworkManager stop
编辑桥接对应的物理网卡配置文件(以eth0为例)/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE="eth0" ONBOOT=yes HWADDR=8C:89:A5:56:2C:B2 BRIDGE=br0
这里只需指定物理地址和桥接设备名称br0,详细的网络参数下面设置。
新建桥接设备配置文件/etc/sysconfig/network-scripts/ifcfg-br0:
DEVICE="br0" TYPE=Bridge BOOTPROTO=none ONBOOT=yes DELAY=0 IPADDR=192.168.176.20 PREFIX=24 GATEWAY=192.168.176.1 DNS1=192.168.176.1 DEFROUTE=yes
注意“TYPE=Bridge”的大小写,其余都是传统的网络参数了。
完毕启动网络:
service network start
针对桥接,需要修改防火墙设置,让所有桥接数据都forward通过:
iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT service iptables save service iptables restart
显示桥接状态:
brctl show
有关桥接网络的详细说明,可参阅:Bridged networking with libvirt。