红帽虚拟化系统是多层的,它由专用的红帽虚拟化组件驱动。红帽虚拟化系统可以支持多个客户机操作系统。每个客户机操作系统都运行在自己的域里。红帽虚拟化系统在虚拟机内调度虚拟 CPU 来最好地利用可用的物理 CPU。每个客户机操作系统都处理自己的应用程序。这些客户机操作系统也相应地调度每个应用程序。
你可以以两种方式来部署红帽虚拟化系统:完全虚拟化(full virtualization)或半虚拟化(paravirtualization)。完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序象往常一样运行,意识不到虚拟环境的存在)。半虚拟化需要对运行在虚拟机器上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能。完全虚拟化和半虚拟化都可以部署在你的虚拟化构架里。
第一个域,称为 domain0 (dom0),在你引导系统时自动创建。Domain0 是专用的客户机,它拥有创建新域并管理它们的虚拟设备的管理能力。Domain0 处理物理硬件,如网卡和硬盘控制器。Domain0 也处理管理性的任务,如暂停、恢复执行或移植客户机域到其他虚拟机里。
hypervisor(红帽的虚拟机监控器)是一个虚拟化平台,它允许多个操作系统在单一的主机里的完全虚拟化环境里同时运行。客户机(guest)是主机或主操作系统之外的运行在虚拟机上的操作系统(OS)。
在红帽虚拟化系统里,每个客户机的内存(memory)都来自于一片主机的物理内存。对于半虚拟化的客户机,你可以设置初始内存和虚拟机的最大值。你也可以在运行时增加(或删除)虚拟机的物理内存,只要不超过你所指定的最大值。这个过程被称为 ballooning。
你可以用许多虚拟 cpu(称为 vcpu)来配置每个客户机。虚拟机管理程序按照物理 CPU 的负载来调度这些 vcpu。
你可以授予某个客户机任何数量的虚拟磁盘(virtual disks)。客户机把这些磁盘视为硬盘或(对于完全虚拟化客户机而言)CD-ROM 设备。每个虚拟磁盘都以块设备或主机上的常规文件的方式供客户机使用。主机上的设备包含了客户机的完整的磁盘映像,通常也包括了分区表、多重分区和可能的 LVM 物理卷。
虚拟网络接口(Virtual networking interface)运行在客户机上。象虚拟以太网卡(VNIC)一样,其他接口可以运行在客户机上。这些网络接口用永久的虚拟 MAC 地址配置。新安装的客户机会缺省安装 VNIC,它的 MAC 地址从一个有着一千六百万地址的储备池里随机选取,所以两个客户机接受相同 MAC 地址是不太可能的。有着大量客户机的复杂站点可以手工分配 MAC 地址来确保在网络里的唯一性。
每个客户机都有一个连接至主机的虚拟文本控制台(text console)。你可以把客户登录和控制台输出重定向到这个文本控制台。
你可以配置任何客户机来使用虚拟图形控制台(graphical console),这对应于物理主机上的普通的显示控制台。对于完全和半虚拟化客户机你都可以使用它。它具有标准的图形适配器的特征,如引导信息、图形化引导、多个虚拟终端以及 X 窗口系统。你也可以使用图形化键盘来配置虚拟键盘和鼠标。
客户机可以用三种身份(identity)中的任何一种来识别:域名(domain-name)、identity(domain-id)或 UUID。domain-name 是一个对应于客户机配置文件的文本串。domain-name 用来启动客户机,当客户机运行时,相同的名字被用来进行识别和控制。domain-id 是唯一的,非持久的号码,它被分配给活动的域并被用来进行识别和控制。UUID 是持久的、唯一的识别符,它在客户机的配置文件里进行控制并确保客户机可以被系统管理工具所识别。在客户机运行时,它是可见的。当客户机第一次安装时,新的 UUID 被系统工具自动分配给每个客户机。