响水凹

欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki

用户工具

站点工具


computer:env:kvm

CentOS 6下KVM环境的安装和配置

KVM是Kernel-based Virtual Machine的缩写,是虚拟化的一种实现方案。本文主要参考RedHat虚拟化方面的官方文档:

更多信息均可以从官网获得,下面只简要说明处理步骤。

安装软件包

除了基本的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

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支持多种虚拟网络模式:

  • NAT模式(缺省),虚拟机通过IP伪装与外界通信,外界无法访问虚拟机;
  • Routed模式,虚拟网络如同一台路由器,路由设置正确后,内外可互访;
  • Isolated模式,虚拟机只能与宿主机以及同一个虚拟网络上的其他虚拟机通信。

有关虚拟网络的详细说明,可参阅: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

应用

computer/env/kvm.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1