CentOS/Redhat:安装KVM虚拟化软件

时间:2020-01-09 10:34:16  来源:igfitidea点击:

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.xmlNAT设备virbr0使用的默认NAT配置。
  • /var/log/libvirt /默认的日志文件目录。所有特定于VM的日志文件都存储在此处。
  • /etc/libvirt/libvirtd.conf主libvirtd配置文件。
  • /etc/libvirt/qemu.confQEMU驱动程序的主配置文件。

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]。
  • 各种虚拟机根据要求运行不同的来宾操作系统。