CentOS/Redhat:安装KVM虚拟化软件
KVM(基于内核的虚拟机)是针对x86硬件上Linux的完整虚拟化解决方案,其中包含虚拟化扩展Intel VT或AMD-V。
如何在CentOS或Red Hat Enterprise Linux 5.5版下安装KVM?
Linux内核2.6.20及更高版本包含KVM。
RHEL 5.5(以及即将发布的RHEL 6)开箱即用地支持KVM,它也已作为可加载的内核模块移植到FreeBSD。
但是,本教程在仅运行64位Intel Xeon CPU(带有Intel VT)和64位内核以及SELinux以强制模式运行的CentOS和RHEL 5.5上进行了测试。
为什么选择KVM?
XEN允许多个来宾操作系统在同一计算机硬件上执行,并且RHEL 5.5也包含XEN。
但是,为什么在XEN上使用KVM?
KVM是官方Linux内核的一部分,并由Novell和Redhat完全支持。
Xen从GRUB引导,并将经过修改的主机操作系统(例如RHEL)加载到dom0(主机域)中。
KVM没有dom0和domU的概念。
它使用/dev/kvm接口设置来宾操作系统,并提供所需的驱动程序。
有关更多信息,请参见官方Wiki。
必需的软件包
您必须安装以下软件包:
kmod-kvm
:kvm内核模块kvm
:基于内核的虚拟机kvm-qemu-img
:Qemu磁盘镜像实用程序kvm-tools
:KVM调试和诊断工具python-virtinst
:用于安装虚拟机的Python模块和实用程序virt-manager
:虚拟机管理器(GUI应用程序,用于安装和配置VM)virt-viewer
:虚拟机查看器(另一个轻量级应用程序,用于查看VM控制台和/或安装VM)bridge-utils
:用于配置Linux以太网桥的实用程序(推荐用于KVM网络)
KVM软件包组
RHEL随附KVM软件组,其中包括KVM的完全虚拟化支持。
您可以如下列出组中的所有软件包:
# yum groupinfo KVM
输出示例:
Loaded plugins: rhnplugin, security Setting up Group Process Group: KVM Description: Virtualization Support with KVM Mandatory Packages: celt051 etherboot-zroms etherboot-zroms-kvm kmod-kvm kvm kvm-qemu-img qcairo qffmpeg-libs qpixman qspice-libs Default Packages: Virtualization-en-US libvirt virt-manager virt-viewer Optional Packages: celt051-devel etherboot-pxes etherboot-roms etherboot-roms-kvm gpxe-roms-qemu iasl kvm-tools libcmpiutil libvirt-cim qcairo-devel qffmpeg-devel qpixman-devel qspice qspice-libs-devel
关于libvirt的注释
libvirt是用于管理平台虚拟化的开源API和管理工具。
它用于通过图形界面(例如Virtual Machine Manager)和高级工具(例如oVirt)来管理Linux KVM和Xen虚拟机。
有关更多信息,请参见官方网站。
关于QEMU的注释
QEMU是一种处理器仿真器,它依靠动态二进制转换来实现合理的速度,同时又易于移植到新的主机CPU架构上。
当用作虚拟器时,QEMU通过直接在主机CPU上执行客户代码来达到接近本机的性能。
在Xen虚拟机管理程序下执行或在Linux中使用KVM内核模块时,QEMU支持虚拟化。
使用KVM时,QEMU可以虚拟化x86,服务器和嵌入式PowerPC以及S390 guest虚拟机。
有关更多信息,请参见官方网站。
关于Virtio驱动程序的注意事项
Virtio是用于kvm/Linux的半虚拟化驱动程序。
这样,您可以运行运行未修改的Linux或Windows VM的多个虚拟机。
每个虚拟机都有专用的虚拟化硬件,网卡,磁盘,图形适配器等。
据Redhat称:
半虚拟化驱动程序可增强完全虚拟化来宾的性能。
使用半虚拟化驱动程序,来宾I/O延迟减少,吞吐量增加到接近裸机水平。
建议对运行I/O繁重任务和应用程序的完全虚拟化来宾使用半虚拟化驱动程序。
主机操作系统
您的主要操作系统(例如CentOS或RHEL)被称为主机操作系统。
KVM是Linux内核模块,使经过修改的QEMU程序可以使用硬件虚拟化。
您只需要在主机操作系统下安装KVM。
KVM域
它只不过是在主机操作系统下运行的来宾操作系统。
每个kvm域必须具有唯一的名称和ID(由系统分配)。
来宾操作系统
KVM支持各种来宾操作系统,例如
- MS-Windows 2008/2000/2003服务器
- MS-Windows 7/Vista/XP
- FreeBSD
- OpenBSD的
- Sun Solaris
- 各种Linux发行版。
- NetBSD
- MINIX
- QNX
- 微软DOS
- 自由DOS
- ku句
- Amiga Research操作系统
安装KVM
键入以下命令以在RHEL或CentOS下安装KVM:
# yum install kvm virt-viewer virt-manager libvirt libvirt-python python-virtinst
或者
# yum groupinstall KVM
重要配置和日志文件(目录)位置
需要以下文件来管理和调试KVM问题:
- /etc/libvirt /主配置目录。
- /etc/libvirt/qemu /虚拟机配置目录。有关VM的所有xml文件都存储在这里。您可以手动或通过virt-manager编辑它们。
/etc/libvirt/qemu/networks /
您的KVM的网络连接,包括默认NAT。仅建议将NAT用于小型安装程序或台式机。我强烈建议您使用基于桥接的网络来提高性能。/etc/libvirt/qemu/networks/default.xml
NAT设备virbr0使用的默认NAT配置。- /var/log/libvirt /默认的日志文件目录。所有特定于VM的日志文件都存储在此处。
/etc/libvirt/libvirtd.conf
主libvirtd配置文件。/etc/libvirt/qemu.conf
QEMU驱动程序的主配置文件。
TCP/UDP端口
默认情况下,libvirt不会打开任何TCP或UDP端口。
但是,您可以通过编辑/etc/libvirt/libvirtd.conf文件来进行配置。
此外,默认情况下,VNC配置为侦听127.0.0.1。
要使其在所有公共接口上侦听,请编辑/etc/libvirt/qemu.conf文件。
我们的样品设置
+-------------> vm#1 ( 10.10.21.71 / 123.1.2.4, CentOS MySQL Server) | +-------------> vm#2 ( 10.10.21.72 / 123.1.2.5, FreeBSD 7 Web Server) LAN --> Switch --> eth0 --> -+ 10.10.21.70 | | ---> br0 -+ +----------------+ +-------------> vm#3 ( 10.10.21.73 / 123.1.2.6, OpenBSD 4.x Firewall ) | | ===> | RHEL Server | -----+ | | | KVM | +-------------> vm#4 ( 10.10.21.74 / 123.1.2.7, Solaris 10 Testing Server ) | ---> br1 -+ +----------------+ | Wan --> ISP Router --> eth1 --> -+ 123.1.2.3 +-------------> vm#5 ( 10.10.21.71 / 123.1.2.8, Windows Server Testing Server ) | +-------------> vm#6 ( 10.10.21.71 / 123.1.2.9, RHEL Mail Server )
(
您需要滚动的示例服务器设置,以查看完整的图)
其中:
主机配置
- OS RHEL/CentOS v5.5是我们的主机操作系统。
- 主机有两个接口eth0和eth1
- 带有私有IP的LAN eth0
- 具有公共IPv4/IPv6地址的Internet eth1。
- 磁盘734 15k SAS磁盘处于RAID 10硬件模式。所有VM都存储在同一服务器上(稍后我将通过实时迁移介绍SAN/NFS/NAS配置)。
- 内存16GB ECC
- CPU双核双Intel Xeon CPU L5320 @ 1.86GHz,在BIOS中启用了VT。
虚拟机配置
- 桥接模式网络(eth0 == br0和eth1 == br1)具有对LAN和Internet的完全访问权限。
- 用于网络的Accelerator virtio驱动程序(型号= virtio)
- 磁盘(if = virtio)和磁盘的Accelerator virtio驱动程序将在VM中显示为/dev/vd [a-z] [1-9]。
- 各种虚拟机根据要求运行不同的来宾操作系统。