第 1 章 Red Hat虚拟化系统体系结构
红帽虚拟化系统是多层的,它由专用的红帽虚拟化组件驱动。红帽虚拟化系统可以支持多个客户机操作系统。每个客户机操作系统都运行在自己的域里。红帽虚拟化系统在虚拟机内调度虚拟 CPU 来最好地利用可用的物理 CPU。每个客户机操作系统都处理自己的应用程序。这些客户机操作系统也相应地调度每个应用程序。
你可以以两种方式来部署红帽虚拟化系统:完全虚拟化(full virtualization)或半虚拟化(paravirtualization)。完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序象往常一样运行,意识不到虚拟环境的存在)。半虚拟化需要对运行在虚拟机器上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能。完全虚拟化和半虚拟化都可以部署在你的虚拟化构架里。
第一个域,称为 domain0 (dom0),在你引导系统时自动创建。Domain0 是专用的客户机,它拥有创建新域并管理它们的虚拟设备的管理能力。Domain0 处理物理硬件,如网卡和硬盘控制器。Domain0 也处理管理性的任务,如暂停、恢复执行或移植客户机域到其他虚拟机里。
The hypervisor (Red Hat's Virtual Machine Monitor) is a virtualization platform that allows multiple operating systems to run on a single host simultaneously within a full virtualization environment. A guest is an operating system (OS) that runs on a virtual machine in addition to the host or main OS.
With Red Hat Virtualization, each guests memory comes from a slice of the host's physical memory. For paravirtual guests, you can set both the initial memory and the maximum size of the virtual machine. You can add (or remove) physical memory to the virtual machine at runtime without exceeding the maximum size you specify. This process is called ballooning.
你可以用许多虚拟 cpu(称为 vcpu)来配置每个客户机。虚拟机管理程序按照物理 CPU 的负载来调度这些 vcpu。
你可以授予某个客户机任何数量的虚拟磁盘(virtual disks)。客户机把这些磁盘视为硬盘或(对于完全虚拟化客户机而言)CD-ROM 设备。每个虚拟磁盘都以块设备或主机上的常规文件的方式供客户机使用。主机上的设备包含了客户机的完整的磁盘映像,通常也包括了分区表、多重分区和可能的 LVM 物理卷。
虚拟网络接口(Virtual networking interface)运行在客户机上。象虚拟以太网卡(VNIC)一样,其他接口可以运行在客户机上。这些网络接口用永久的虚拟 MAC 地址配置。新安装的客户机会缺省安装 VNIC,它的 MAC 地址从一个有着一千六百万地址的储备池里随机选取,所以两个客户机接受相同 MAC 地址是不太可能的。有着大量客户机的复杂站点可以手工分配 MAC 地址来确保在网络里的唯一性。
每个客户机都有一个连接至主机的虚拟文本控制台(text console)。你可以把客户登录和控制台输出重定向到这个文本控制台。
你可以配置任何客户机来使用虚拟图形控制台(graphical console),这对应于物理主机上的普通的显示控制台。对于完全和半虚拟化客户机你都可以使用它。它具有标准的图形适配器的特征,如引导信息、图形化引导、多个虚拟终端以及 X 窗口系统。你也可以使用图形化键盘来配置虚拟键盘和鼠标。
Guests can be identified in any of three identities: domain name (domain-name), identity (domain-id), or UUID. The domain-name is a text string that corresponds to a guest configuration file. The domain-name is used to launch the guests, and when the guest runs the same name is used to identify and control it. The domain-id is a unique, non-persistent number that gets assigned to an active domain and is used to identify and control it. The UUID is a persistent, unique identifier that is controlled from the guest's configuration file and ensures that the guest is identified over time by system management tools. It is visible to the guest when it runs. A new UUID is automatically assigned to each guest by the system tools when the guest first installs.