Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

虚拟化入门指南

Red Hat Enterprise Linux 7

虚拟化概念简介

作者:Dayle Parker

红帽公司・工程部出版中心

作者:Laura Novich

红帽公司・工程部出版中心

作者:Jacquelynn East

红帽公司・工程部出版中心

作者:Scott Radvan          

红帽公司・工程部出版中心

翻译、校对:顾瑞 - Gu (Veronica) Rui

澳大利亚昆士兰大学・笔译暨口译研究生院

翻译、校对:薛景晨 - Jingchen (Jojo) Xue

澳大利亚昆士兰大学・笔译暨口译研究生院

校对、编辑:傅同杰 - Tongjie (Tony) Fu

红帽公司・全球服务部

校对、责任编辑:鄭中 - Chester Cheng

红帽公司・全球服务部 & 澳大利亚昆士兰大学・笔译暨口译研究生院

摘要

《Red Hat Enterprise Linux 虚拟化入门指南》描述了 Red Hat Enterprise Linux 提供的虚拟化要素、虚拟化产品和技术。

第 1 章 什么是虚拟化和迁移?

本章节讨论与虚拟化和迁移相关的术语。

1.1. 什么是虚拟化?

虚拟化 ”是一个描述运行软件的广义计算机术语,通常体现为在单一系统上运行多个操作系统,这些操作系统同时运行,而每个操作系统又是相互独立的。大多数现行的虚拟化实现使用一个“虚拟机管理程序 ”(hypervisor),即一个软件层或子系统,该子系统控制硬件并向“客机操作系统 ”提供访问底层硬件的途径。通过向客机操作系统提供虚拟化的硬件虚拟机管理程序允许多种操作系统在相同的物理系统中运行,该虚拟机管理系统称为“客机 ”(guest),虚拟化操作系统有多种方式:

虚拟化方式

全虚拟化
全虚拟化利用处理器的硬件特性,向客机提供底层实体系统的总抽象。这创建了新的虚拟系统,被称为一个“虚拟机 ”(virtual machine),它允许客机操作系统在无需修改的情况下运行。客机操作系统和任何在客机虚拟机器中的应用并不会察觉出虚拟化环境并正常运作。硬件支持虚拟化这项技术,用于实现在 Red Hat Enterprise Linux 中 KVM 的全面虚拟化。
半虚拟化
半虚拟化应用一系列呈现给虚拟机的软件和数据结构,需要客机中的软件修改以使用半虚拟环境。半虚拟化包含整个内核,就像 Xen 准虚拟机,或者虚拟化 I/O 设备的驱动程序一样。
软件虚拟化(或仿真)
软件虚拟化利用更慢的二进制转换和其他仿真技术运行未更改的操作系统。Red Hat Enterprise Linux 不支持软件虚拟化。

注意

欲了解更多信息和客户端安装的详细说明,请参阅《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。

1.2. 什么是迁移?

迁移 ”(migration)描述了一个客体虚拟机从一个主机迁移到另一个主机的过程。鉴于虚拟机在虚拟化环境下运行,而非直接在硬件上运行,该迁移是可以实现的。迁移一个虚拟机有两种途径:即时迁移和离线迁移。

迁移类型

离线迁移
离线迁移暂停或关闭虚拟机,接着移动一个虚拟机的内存镜像到目标主机。虚拟机在目标主机上恢复,在源主机上被虚拟机使用的内存得以释放。
即时迁移
即时迁移是将一个活跃虚拟机从一个实体主机迁移到另一个实体主机的过程。
了解这两点很重要,即迁移过程移动虚拟化机器的内存,与虚拟机器相关的磁盘空间同样也会被迁移,了解这点很重要。这一过程通过即时块迁移实现 — 相关信息可以在《Red Hat Enterprise Linux 7 虚拟化部署和管理指南 》中找到。

1.2.1. 迁移虚拟机器的益处

迁移对以下情况有帮助:
负载均衡
一台主机超载时,其虚拟机的一个或多个可以即时迁移到其他主机上。
针对主机升级或进行更改
需要升级、添加或卸下一台主机的硬件设备时,虚拟机可以安全地转移到其他主机。这也就是说客机不会由于任何一个主机的更改而停机。
节能
虚拟机器可以重新分配至其他主机,空载主机系统可以在使用率低的时段关机以节省能源和开支。
地理迁移
为实现更低的延迟或其他特殊情况,虚拟化机器可以转移到另一个物理位置。

第 2 章 虚拟化的优势及误解

虚拟化有许多优势,相应地对它也有诸多误解。本章将涉及这些要点。

2.1. 虚拟化的成本

一个常见的误区是改用虚拟化的花费过高。引进虚拟化可能花费昂贵,但从长远看是省钱的。为了更好地在您的环境中应用虚拟化,做一个投资回报分析(ROI)是十分重要的。在规划您的环境时,可考虑到以下优势:
能耗更少
使用虚拟化可以减少对实体平台的需求。这等同于机器运行和冷却时减少了能耗,使能源费用降低。通过使用虚拟化技术,可以减少用于购置多个实体平台的初始费用,以及相应的能耗费用和冷却费用。
更少的维护任务
如果在实体系统转移至虚拟系统前做好充分的规划,那么用于维护系统的时间将变少。这意味着用于零部件和人工的花费将变少。
延长已安装软件的寿命
旧版本软件也许不能在最新的裸机上直接运行。然而,通过在更大更快的系统上虚拟地运行旧版本软件,利用新型系统性能,使软件寿命得以延长。
可预计成本
Red Hat Enterprise Linux 订阅服务为虚拟化提供了一个价格固定的支持模式,使成本易于估算。
节省空间
把服务器整合到更少机器上意味着所需的物理空间减少。这些节省下来的空间可作它用。

2.2. 虚拟化学习曲线

目前对虚拟化有个误解,即它学起来十分困难。实际上,学习虚拟化的难易程度和学习其它任何新技术一样。您在管理和支持物理环境时所积累的技能可以很容易地应用到虚拟环境中。虚拟环境运行过程与其对应的物理环境相似,这就保证了虚拟化技术的学习曲线相对比较平缓。

2.3. 性能

过去由于旧的虚拟化版本只支持单 CPU,使得虚拟机存在显著的性能局限。这产生了一个长期的误解,即虚拟化处理速度慢。
然而情况不再如此:现代虚拟化技术已经大大提高了虚拟机的速度。相关的基准数据显示,虚拟机几乎能和传统的裸机系统一样有效运行典型的服务器应用程序。
  • 业界标准的 SAP 销售与分配(SD)标准应用基准数据显示,使用 Red Hat Enterprise Linux 6.2 和 KVM ,与运行在相同硬件配置的裸机系统相比,虚拟化的效率为 85% 。
  • Red Hat Enterprise Linux 6.1 和 KVM 达到了由标准性能评估机构 ( SPEC ) 制定的 SPECvirt_sc2010 基准中创记录的虚拟化性能标准,它的虚拟性能指标在所公布的所有 SPECvirt 结果中是最佳的。SPECvirt_sc2010 标准衡量了系统部件在虚拟化数据中心服务器中,终端至终端的性能。

注意

关于这些虚拟化基准的更多信息,请访问:

2.4. 灾难修复

当系统被虚拟化后,灾难修复的过程变得更加快捷和简单。在物理系统中,若一些严重问题发生,通常需要完整地重装操作系统,导致数小时的恢复时间。然而,在虚拟化的系统中,因为可以进行迁移,所以这个恢复过程将非常快速。若启用了实时迁移功能,虚拟机可以在另一台主机上进行重启,因此可能出现的最长停机时间只取决于客机数据恢复的时间。同时,由于虚拟化系统相互间完全独立,一个系统的故障不会影响到其他系统。

2.5. 安全性

虚拟机使用 SELinux 和 sVirt 以改进虚拟化中的安全性。这一章节是对可供使用的安全选择的一个回顾。

2.5.1. 虚拟化安全性特点

SELinux

SELinux 由美国国家安全局及其他机构开发,向 Linux 提供强制访问控制(MAC,Mandatory Access Control)。在 SELinux 的控制下,所有程序和文件被命名为一种“类型 ”,并可以精确控制对这些资源的访问。SELinux 限制攻击者的能力,致力于防止许多常见的安全问题,如缓冲溢出攻击和特权升级。

SELinux 强化了Red Hat Enterprise Linux 主机和虚拟化 Red Hat Enterprise Linux 客机的安全模式。在默认情况下,Red Hat Enterprise Linux 7 所提供的虚拟化工具都配置了 SELinux,并经过相关测试。
sVirt

sVirt 是包含在 Red Hat Enterprise Linux 7 中的一个技术,它把 SELinux 和虚拟化技术整合在一起。sVirt 用强制访问控制来提高虚拟机使用过程中的安全性,它强化了系统,以应对虚拟机监控程序中可能被利用来攻击主机或其它虚拟机载体的故障。

注意

有关虚拟化安全性的更多信息,请参照《Red Hat EnterpriseLinux 7 虚拟化安全指南 》。

2.6. 服务器和个体机的虚拟化

虚拟化不仅为服务器工作;它也可以为个体服务。桌面端虚拟化提供集中管理,一种改进的桌面处理方案,和更好的灾难修复。通过使用连接软件,使得远程连接桌面变为可能。
对服务器而言,虚拟化不仅适用于较大的网络服务,也适用于任何带有两个以上服务器的情况服务。它提供实时迁移、高可用性、容错和顺畅型备份。

2.6.1. 虚拟化部署方案

以下是常见的虚拟化部署方案的例子,和用于部署这些方案的工具。
具有多达 3 个物理主机和 10 个客机的小型部署:virt-manager
像 virt-manager 这样的工具,对那些运行多个没有严格运行时间要求,或服务等级协议(SLA)的服务器的小型商务用户非常有用。在这种环境下,一个管理员可能就负责整个基础设施,若其中一个部件需要改变,维持程序的灵活性会十分重要。这一环境可能包含一些应用程序,如网络服务器、文件及打印服务器和应用服务器。
大的部署或关键应用系统:Red Hat Enterprise 虚拟化(RHEV)
像 Red Hat Enterprise Virtualization(RHEV)这样的完全虚拟化平台,可能适合企业实施大型部署或运行关键应用系统。在这种环境下,物理基础设施大到需要信息技术部门和商业要求根据新需求做出准确回应。一些适合 Red Hat Enterprise Virtualization 的大型部署案例可能包含数据库、贸易平台或必须无故障持续运行的信息系统。
软件开发者开发管理应用程序:libvirt
virt-manager 和 Red Hat Enterprise Virtualization(RHEV)都使用 libvirt 管理虚拟机。libvirt 一个是虚拟化 API,软件开发者可以使用它来开发和改变管理应用。

第 3 章 红帽虚拟化产品介绍

本章介绍了 Red Hat Enterprise Linux 现有的多种虚拟化产品。

3.1. Red Hat Enterprise Linux 的 KVM 和虚拟化

何谓 KVM ?
KVM(基于内核的虚拟机,Kernel-based Virtual Machine)是为 AMD64 和 Intel 64 硬件上的 Linux 提供的完全虚拟化的解决方案,它包括在标准 Red Hat Enterprise Linux 7 内核中。KVM 可运行多种无需修改的 Windows 和 Linux 客机操作系统。 Red Hat Enterprise Linux 的 KVM 虚拟机监控程序使用 libvirt API 和 libvirt 的工具程序(如 virt-managervirsh)进行管理。虚拟机以多线程的 Linux 进程形式运行,并通过上面提到的工具程序进行管理。
过度分配
KVM 监控程序支持系统资源“过度分配 ”(overcommitting)功能。过度分配意味着可以分配比系统中实际拥有的资源更多的虚拟化 CPU 或内存。过度分配内存允许主机充分利用物理内存来分配更多虚拟内存,从而达到提升客机密度的目的。

重要

过度分配功能可能对系统稳定性造成风险。更多关于 KVM 过度分配功能的信息和应采取的预防措施,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。
精简配置
精简配置 ”(thin provisioning)允许灵活分配内存,并且为每个客机虚拟机优化可用空间。它产生一种现象,即客机物理内存比实际可用内存更多。这与过度分配功能不同,因为它只适用于存储,而不适用于 CPU 或内存分配。但是,过度分配功能所存在的风险同样适用于这个功能。

重要

精简配置可能对系统稳定性造成风险。更多关于 KVM 精简配置的信息,和应采取的预防措施,请参照《Red Hat Enterprise Linux  7 虚拟化部署与管理指南 》。
KSM
KVM hypervisor 使用的 “Kernel SamePage Merging ”(KSM)允许 KVM 客机共享相同内存页面。这些共享页一般是通用的库或其他相同的、高频使用的数据。KSM 通过避免重复的内存,使具有相同或相似客机操作系统的客机密度更大。

注意

更多关于 KSM 的信息,请参照《Red Hat Enterprise Linux  7 虚拟化部署与管理指南 》。
QEMU 客机代理
QEMU 客机代理 ”(QEMU Guest Agent)在客机操作系统上运行,通过它,主机可以向客机操作系统发出命令。

注意

更多关于 QEMU 客机代理的信息,请参照《Red Hat Enterprise Linux  7 虚拟化部署与管理指南 》。
Hyper-V 入门知识
Red Hat Enterprise Linux  7 的 KVM 实现了几个 Hyper-V 兼容功能,Windows 客机通过使用它们可以提高性能和稳定性,从而使得 Windows 客机如在微软 Hyper-V 虚拟机监控程序上运行一般。

注意

更多关于Hyper-V 功能性的信息,请参照《Red Hat Enterprise Linux  7 虚拟化部署与管理指南 》。
磁盘 I/O 节流
当几个虚拟机同时运行,可能会因为使用过多磁盘 I/O 对系统性能形成干扰。KVM 中的“磁盘 I/O 节流 ”(Disk I/O throttling)对从虚拟机器向主机发出的磁盘 I/O请求作出限定 。这可以防止虚拟机过度使用共享资源,并影响其他虚拟机的性能。

注意

关于使用磁盘 I/O 节流的指示,请参照《Red Hat Enterprise Linux  7 虚拟化调试和优化指南 》。
自动化 NUMA 平衡
自动化 NUMA 平衡 ”功能在不需要对 Red Hat Enterprise Linux7 虚拟机进行手工性能优化的情况下,提高 NUMA 硬件系统上运行的应用程序的性能。自动化 NUMA 平衡功能会把所执行的任务(线程或进程)移到和所需要访问的内存更接近的地方。

注意

更多关于自动化 NUMA 平衡的信息,请参照《Red Hat Enterprise Linux 7 虚拟化调试和优化指南 》。
虚拟 CPU 热添加
虚拟 CPU (vCPU) 热添加功能可以在无需要停机的情况下,根据需要为运行的虚拟机增加处理能力。分配到虚拟机的 vCPU 可能会被添加到运行的客机上,来满足工作量需求,或维持与工作负载相关的服务等级协议 (SLA)。

注意

更多关于虚拟 CPU 热添加的信息,请参照《Red Hat Enterprise Linux 7 虚拟化调试和优化指南 》。
KVM 客机虚拟机的兼容性
Red Hat Enterprise Linux 7 服务器有特定的支持限定。
以下 的 URL 解释了 Red Hat Enterprise Linux 对处理器和内存容量的限制:
有关支持的操作系统及主客机组合的完整表格,请参照 https://access.redhat.com/site/supported-hypervisors

注意

要验证处理器是否支持虚拟化扩展程序,以及如何启用虚拟化扩展的信息,请参照《 Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。

3.2. libvirt 和 libvirt 工具程序

libvirt 程序包是一个与虚拟机监控程序相独立的虚拟化应用程序接口,它可以与操作系统的一系列虚拟化性能进行交互。
libvirt 程序包提供:
  • 一个稳定的通用层来安全地管理主机上的虚拟机。
  • 一个管理本地系统和连网主机的通用接口。
  • 在虚拟机监控程序支持的情况下,部署、创建、修改、监测、控制、迁移以及停止虚拟机操作都需要这些 API。尽管 libvirt 可同时访问多个主机,但 API 只限于单节点操作。
libvirt 程序包被设计为用来构建高级管理工具和应用程序,例如 virt-managervirsh 命令行管理工具。libvirt 主要的功能是管理单节点主机,并提供 API 来列举、监测和使用管理节点上的可用资源,其中包括 CPU、内存、储存、网络和非一致性内存访问(NUMA)分区。管理工具可以位于独立于主机的物理机上,并通过安全协议和主机进行交流。
Red Hat Enterprise Linux 7 支持 libvirt 以及其包括的基于 libvirt 的工具作为默认虚拟化管理(如 Red Hat Enterprise Virtualization 管理)。
libvirt 程序包在 GNU 较宽松公共许可证下,可作为免费软件使用。libvirt 项目旨在为运行在不同虚拟机管理程序技术上的虚拟管理工具提供长期稳定的 C API。libvirt 程序包支持 Red Hat Enterprise Linux 5上的 Xen,它还支持 Red Hat Enterprise Linux 5、Red Hat Enterprise Linu 6 及 Red Hat Enterprise Linux 7上的 KVM。
virsh
virsh 命令行工具是基于 libvirt API 创建的命令行工具,它可以作为图形化的 virt-manager 应用的备选工具。没有相关权利的用户可以使用只读的模式运行 virsh 命令,而具有 root 权限的用户可以使用所有的管理功能。virsh 命令可以被用来创建虚拟化任务管理脚本,如安装、启动和停止虚拟机。
virt-manager
virt-manager 是一个管理虚拟机的图形化桌面工具。它允许访问图形化的客机控制台,并可以执行虚拟化管理、虚拟机创建、迁移和配置等任务。它也提供了查看虚拟机、主机数据、设备信息和性能图形的功能。本地的虚拟机监控程序可以通过单一接口进行管理。

注意

更多关于 virshvirt-manager 的信息,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。

3.3. 虚拟化硬件设备

Red Hat Enterprise Linux 7 的虚拟化功能为虚拟机提供了三种不同形式的系统设备。这三种形式包括:
  • 虚拟和仿真设备
  • 半虚拟化设备
  • 物理共享设备
这些硬件设备都被显示为物理连接到虚拟机,但设备的驱动以不同方式工作。

3.3.1. 虚拟和仿真设备

KVM 在软件中实现了虚拟机的多个核心设备。这些仿真硬件设备对虚拟化操作系统至关重要。
仿真设备即完全使用软件实现的虚拟化设备。
仿真驱动可能使用物理设备,或虚拟化软件设备。仿真驱动是虚拟机和 Linux 内核(管理源设备)间的“翻译层”。设备层的指示会由 KVM 虚拟机监控程序进行完全转换。任何可以被 Linux 内核识别的同类设备(储存、网络、键盘和鼠标),都可以作为仿真驱动的后端源设备。
虚拟化 CPU (vCPU)
无论主机 CPU 的数量有多少,主机系统都可以为客机提供多达 160 个虚拟化 CPU (vCPU)。
仿真图形设备
有两种仿真图形设备可供选择。这类设备可以使用 SPICE (Simple Protocol for Independent Computing Environments)协议或 VNC 进行连接:
  • Cirrus CLGD 5446 PCI VGA 卡(使用 cirrus 设备)
  • 标准 VGA 图形卡,带有 Bochs VESA 扩展程序(硬件等级,包括所有非标准模式)
仿真系统组件
仿真以下核心系统组件来提供基本系统功能:
  • Intel i440FX 主机 PCI 网桥
  • PIIX3 PCI 到 ISA 的网桥
  • PS/2 鼠标和键盘
  • EvTouch USB 图形平板设备
  • PCI UHCI USB 控制器与虚拟化 USB 集线器
  • 仿真串口
  • EHCI 控制器,虚拟化 USB 存储和 USB 鼠标
  • USB 3.0 xHCI 主机控制器(Red Hat Enterprise Linux 7.1 技术预览)
仿真声音设备
Red Hat Enterprise Linux 6.1 以上版本提供了仿真(Intel) HDA 声音设备, intel-hda 。此设备由以下客机运行系统进行支持:
  • Red Hat Enterprise Linux 7,用于 x86_64 架构
  • Red Hat Enterprise Linux 6,用于 i386 和 x86_64 架构
  • Red Hat Enterprise Linux 5,用于 i386 和 x86_64 架构
  • Red Hat Enterprise Linux 4,用于 i386 和 x86_64 架构
  • Windows 7,用于 i386 和 x86_64 架构
  • Windows 2008 R2,用于 x86_64 架构
以下仿真声音系统同样可供选择,但鉴于与固定客机运行系统兼容性问题,不推荐使用:
  • ac97,仿真 Intel 82801AA AC97 音频兼容声卡
仿真监视器设备
Red Hat Enterprise Linux 6.0 及以上版本提供了两种仿真监视器设备。监视器可以在虚拟机超载或未响应时,自动重启虚拟机。
watchdog 程序包务必安装在客机上。
两种可供选择的设备为:
  • i6300esb,仿真 Intel 6300 ESB PCI 监视器设备。它支持客机操作系统 Red Hat Enterprise Linux 版本 6.0 以上,为推荐使用设备。
  • ib700,仿真 iBase 700 ISA 监视器设备。ib700 监视器仅支持使用 Red Hat Enterprise Linux  6.2 以上版本的客机。
两种监视器设备均支持客机操作系统 Red Hat Enterprise Linux 6.2 以上版本的 i386 与 x86_64 架构。
仿真网络设备
两种仿真网络设备可供选择:
  • e1000 设备仿真了 Intel E1000 网络适配器(Intel 82540EM、82573L、82544GC)。
  • rtl8139 设备仿真了 Realtek 8139 网络适配器。
仿真储存驱动
储存驱动与储存池可以使用这些仿真设备,将储存设备与虚拟机相连。客机使用仿真储存驱动可访问储存池。
注意,同所有虚拟设备一样,储存驱动不是储存设备。对于虚拟机器,该驱动作为备用储存设备、文件或储存池容量进行使用。备用储存设备可为任何支持的储存设备、文件、或储存池容量形式。
仿真 IDE 驱动
KVM 提供两种仿真 PCI IDE 接口。仿真 IDE 驱动可以用于将多达四个虚拟化 IDE 硬盘或虚拟化 IDE 光盘驱动组合与每台虚拟机相连接。仿真 IDE 驱动同样可用于虚拟化 CD-ROM 和 DVD-ROM 驱动。
仿真软盘驱动
仿真软盘驱动用于创造虚拟化软驱。
仿真 AHCI 控制器
仿真 Advanced Host Controller Interface(AHCI)是 IDE 的一种替代产品。它包括在 Red Hat Enterprise Linux 7.1 中作为技术预览。

注意

如需了解更多与 KVM 存储相关的信息,请参阅第 3.4 节 “储存”

3.3.2. 半虚拟化设备

半虚拟化为客机使用主机上的设备提供了快速且高效的通讯方式。KVM 为虚拟机提供准虚拟化设备,它使用 Virtio API 作为虚拟机监控程序和客机的中间层。
一些半虚拟化设备可以减少 I/O 的延迟,并把 I/O 的吞吐量提高至近裸机水平,而其它准虚拟化设备可以把本来无法使用的功能添加到虚拟机上。当虚拟机运行大小需要密集 I/O 操作的应用程序时,推荐使用半虚拟化设备,而不是使用仿真设备。
所有 virtio 设备都有两部分:主机设备和客机驱动。半虚拟化设备驱动允许客机操作系统访问主机系统上的物理设备。
半虚拟化设备的驱动必须安装在客机操作系统上。默认情况下,半虚拟化设备驱动包含在 Red Hat Enterprise Linux 4.7 以上版本、Red Hat Enterprise Linux 5.4 以上版本、以及 Red Hat Enterprise Linux6.0 以上版本中。半虚拟化设备驱动须在 Windows 客机上手动安装。

注意

关于使用半虚拟化设备和驱动的更多信息,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。
半虚拟化网络设备(virtio-net)
半虚拟化网络设备是虚拟化网络设备,它为虚拟机提供了网络访问能力,并可以提供网络性能及减少网络延迟。
半虚拟化块设备(virtio-blk)
半虚拟化块设备是高性能虚拟化储存设备,它可以为虚拟机提供高性能、低延迟的 I/O 存储。半虚拟化块设备由虚拟机监控程序支持,与虚拟机相连(软盘驱动除外,它只能被仿真)。
半虚拟化控制器设备(virtio-scsi)
半虚拟化 SCSI 控制器设备是一种更为灵活且可扩展的 virtio-blk 替代品。virtio-scsi 客机能继承目标设备的各种特征,并且能操作几百个设备,相比之下,virtio-blk 仅能处理 28 台设备。
virtio-scsi 完全支持以下客机操作系统:
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 6.4 以上版本。
  • Windows Server 2008(32/64 比特)
  • Windows Server 2008 R2
  • Windows 7(32/64 比特)
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows 8(32/64 比特)
  • Windows 8.1(32/64 比特)
半虚拟化时钟
使用时间戳计数器(TSC,Time Stamp Counter)作为时钟源的客机可能会出现与时间相关的问题。KVM 在主机外围工作,这些主机在向客机提供半虚拟化时间时没有固定的 TSC。此外,半虚拟化时钟会在客机运行 S3 或挂起 RAM 时帮助调整所需时间。半虚拟化时钟不支持 Windows 客机。
半虚拟化串口设备 (virtio-serial)
半虚拟化串口设备是面向比特流的字符流设备,它为主机用户空间与客机用户空间之间提供了一个简单的交流接口。
气球设备(virtio-balloon)
气球(ballon)设备可以指定虚拟机的部分内存为没有被使用(这个过程被称为气球“充气 ” — inflation),从而使这部分内存可以被主机(或主机上的其它虚拟机)使用。当虚拟机这部分内存时,气球可以进行“放气 ”(deflated),主机就会把这部分内存重新分配给虚拟机。
半虚拟化随机数字生成器 (virtio-rng)
半虚拟化随机数字生成器使虚拟机可以直接从主机收集熵或随意值来使用,以进行数据加密和安全。因为典型的输入数据(如硬件使用情况)不可用,虚拟机常常急需熵。取得熵很耗时;virtio-rng 通过直接把熵从主机注入客机虚拟机从而使这个过程加快 。
半虚拟化图形卡(QXL)
半虚拟化图形卡与 QXL 驱动一同提供了一个有效地显示来自远程主机的虚拟机图形界面。SPICE 需要 QXL 驱动。

3.3.3. 物理主机设备

特定硬件平台允许虚拟机直接访问多种硬件设备及组件。在虚拟化中,此操作被称为 “设备分配 ”(device assignment)。设备分配又被称作 “传递 ”(passthrough)。
VFIO 设备分配
虚拟功能 I/O(VFIO)是 Red Hat Enterprise Linux 7 中一个新的内核驱动,它为虚拟机提供了访问物理硬件的高性能。
VFIO 把主机系统上的 PCI 设备与虚拟机直接相连,允许客机在执行特定任务时有独自访问 PCI 设备的权限。这就象 PCI 设备物理地连接到客机虚拟机上一样。
通过把设备分配从 KVM 虚拟机监控系统中移出,并在内核级中强制进行设备隔离,VFIO 比以前的 PCI 设备分配有了很大的改进。VFIO 安全性更高且与安全启动兼容。在 Red Hat Enterprise Linux 7 中,它是默认的设备分配机制。
Red Hat Enterprise Linux 7 中 VFIO 把分配设备的数量从 Red Hat Enterprise Linux 6 中最多 8 个增加到 32 个。VFIO 也支持对 NVIDIA GPU 的分配。

注意

关于 VFIO 设备分配的更多信息,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。
USB 传递
KVM hyperviso 支持把主机系统上的 USB 设备连接到虚拟机。USB 设备分配允许客机拥有在执行特定任务时有专有访问 USB 设备的权利。这就象 USB 设备物理地连接到虚拟机上一样。

注意

关于 USB 传递的更多信息,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。
SR-IOV
SR-IOV (Single Root I/O Virtualization)是一个 PCI 快捷标准,把单一物理 PCI 功能扩展到同分散的虚拟化功能(VF)一样共享 PCI 资源。通过 PCI 设备分配,每个功能可以被不同虚拟机使用。
支持 SR-IOV 的 PCI-e 设备提供一个单一根功能(如单一以太网接口),并把多个各自分离的虚拟设备作为独特 PCI 设备功能。每个虚拟化设备都可能有自身独特的 PCI 配置空间、内存映射的寄存器以及单独的基于 MSI 的中断系统。

注意

关于 SR-IOV 更多信息,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。
NPIV
N_Port ID Virtualization(NPIV)是对光纤通道设备有效的功能。NPIV 共享单一物理 N_Port 作为多个 N_Port ID。NPIV 为 HBA(光纤通道主机总线适配器,Fibre Channel Host Bus Adapter)提供和 SR-IOV 为 PCIe 接口提供的功能相似的功能。有了 NPIV,可以为 SAN(存储区域网络,Storage Area Network)提供带有虚拟光纤通道发起程序的虚拟机。
NPIV 可以提供带有企业级存储解决方案的高密度虚拟环境。

3.3.4. 客机 CPU 型号

CPU 型号 ”(CPU model)规定了哪些主机 CPU 功能对客机操作系统有效。 qemu-kvmlibvirt 包含了几种当前处理器型号的定义,允许用户启用仅在新型 CPU 型号中可用的 CPU 功能。 对客机有效的的 CPU 功能取决于主机 CPU 的支持、内核以及 qemu-kvm 代码。
为了使虚拟机可以在具有不同 CPU 功能集的主机间安全地进行迁移,qemu-kvm 在默认状态下不会把主机 CPU 的所有功能都提供给客机操作系统,而是根据所选的 CPU 型号来为虚拟机提供相关的 CPU 功能。如果虚拟机启用了某个 CPU 功能,则此虚拟机无法迁移到不支持向客机提供此功能的主机上。

注意

关于客机 CPU 型号的更多信息,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。

3.4. 储存

虚拟机的储存从虚拟机使用的物理储存中提取。它通过使用半虚拟化或仿真块设备驱动与虚拟机相连。

3.4.1. 储存池

储存池 ”(storage pool)即一个由 “libvirt” 管理的文件、目录或储存设备,其目的是为虚拟机提供储存空间。储存池被分隔为存储 “ ”(volume),可以用来存储虚拟机镜像或附加到虚拟机作为额外额存储。多个客机可共享同一储存池,允许储存资源得到更好分配。更多信息请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。
本地储存池
本地储存池直接连接到主机服务器。它们包括本地目录、直接连接的磁盘、物理分区和本地设备上的 LVM 卷组。本地储存池对开发、测试及不需要迁移或具有大量虚拟机的小型部署十分有用。因为本地储存池不支持实时迁移,所有它可能不适用于某些生产环境。
网络(共享)储存池
网络储存池包括在网络上使用标准协议共享的储存设备。使用 virt-manager 在主机间进行虚拟机的迁移需要网络储存,但是当使用 virsh 迁移时,它是可选的。网络储存池由 libvirt 进行管理。

3.4.2. 储存卷

储存池进一步划分为“储存卷 ”(storage volume)。储存卷是物理分区、LVM 逻辑卷、基于文件的磁盘镜像及其它由 libvirt 控制的储存形式的抽象层。不论基于何种硬件,储存卷会作为本地储存设备呈现给虚拟机。

3.4.3. 仿真储存设备

虚拟机可以被提供一系列经主机仿真的储存设备。每种储存设备都适用于特定的使用情况。具有可以选择不同种类储存设备的功能,可以使灵活性以及与客机操作系统的兼容性达到最大化。
virtio-scsi
virtio-scsi 是为使用大量磁盘或高级储功能(如 TRIM)的客机推荐使用的半虚拟化设备。使用除 Red Hat Enterprise Linux 7 以外操作系统的客机可能需要安装相应的客机驱动。
virtio-blk
virtio-blk 是适用于向客机提供镜像文件的半虚拟化储存设备。virtio-blk 可以为虚拟机提供最好的磁盘 I/O 性能,但比 virtio-scsi 的功能少。
IDE
IDE 是推荐给不支持 virtio 驱动的旧客机用的。IDE 性能不如 virtio-scsi 或 virtio-blk,但它与不同系统广泛兼容。
CD-ROM
ATAPI CD-ROM 与 virtio-scsi CD-ROM 都能向客机提供 ISO 文件或主机 CD-ROM 驱动。virtio-scsi CD-ROM 可以与安装了 virtio-scsi 驱动的客机一同使用。ATAPI CD-ROM 兼容性广泛但性能较低。
USB 存储设备和软盘
如需要可移动介质,可使用 USB 存储设备和软盘。USB 存储设备由于其较大的容量比软盘更受欢迎。
AHCI
仿真 AHCI(高级主机控制器接口,Advanced Host Controller Interface)总线是 IDE 的一种替代品,它的特征增多、性能提高,包括与串行 ATA(SATA)设备交流。
AHCI 作为一种技术预览包括在 Red Hat Enterprise Linux 7.1 中。

3.4.4. 主机存储

磁盘镜像可以储存在一系列和主机相连的本地或远程存储中。
镜像文件
镜像文件储存在主机文件系统中。它可以储存在本地文件系统中,如 ext4 或 xfs;或网络文件系统中,如 NFS 。
例如 libguestfs 这样的工具,能管理、备份及监控文件。KVM 上的磁盘镜像格式包括:
raw
raw 镜像文件指不包含附加元数据的磁盘内容。
假如主机文件系统允许,raw 文件可以是预分配(pre-allocated)或稀疏(sparse)。稀疏文件根据需求分配主机磁盘空间,因此它是一种精简配置形式(thin provisioning)。预分配文件的所有空间需要被预先分配,但它比稀疏文件性能好。
当对磁盘 I/O 性能要求非常高,而且通常不需要通过网络传输镜像文件时,可以使用 raw 文件。
qcow2
qcow2 镜像文件提供许多高级磁盘镜像特征,如快照、压缩及加密。它们可以用来代表通过模板镜像创建的虚拟机。
因为只有虚拟机写入的扇区部分才会分配在镜像中,所以 qcow2 文件的网络传输效率较高。
Red Hat Enterprise Linux 7.0 及更新版本支持 qcow2 v3 镜像文件格式。
LVM 卷
逻辑卷可用于磁盘镜像,并使用系统的 LVM 工具进行管理。 由于它使用更简单的块储存模式,LVM 比文件系统的性能更高。
LVM 精简配置为 LVM 卷提供快照和高效的空间使用,它可以作为 qcow2 的一种替代选择。
主机设备
主机设备如物理 CD-ROM、原始磁盘或 LUN 都可以提供给客机。这使得 SAN 或 iSCSI LUN 还有本地 CD-ROM 都可以提供给客机所用。
在 SAN 而不是主机上进行储存管理时,可以使用主机设备。
分布式存储系统
Gluster 卷可用作磁盘镜像。它提供了高效的、使用网络的集群存储。
Red Hat Enterprise Linux 7 包括在 GlusterFS 上对磁盘镜像的原生支援。这使 KVM 主机可以直接从 GlusterFS 卷引导虚拟机镜像,并使用 GlusterFS 卷中的镜像作为虚拟机的数据磁盘。与 GlusterFS FUSE 相比,KVM 原生支持性能更好。

注意

关于存储和虚拟化的更多信息,请参照《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》。

第 4 章 虚拟化工具

本章介绍了可以用来帮助实现虚拟化的多个工具。

4.1. virsh

virsh 是一个用于监控系统程序和客户机虚拟机器的命令行接口(CLI)工具。virsh 命令行工具建立在 libvirt 管理 API,并作为可选择的一个运行方式来替代 qemu-kvm 命令和图形界面的 virt-manager 应用。无特权的用户以只读的方式使用 virsh 命令;有根用户权限的用户可以使用该命令的所有功能。virsh 是一个对虚拟环境的管理任务进行脚本化的理想工具。另外,virsh 工具是 virsh 客机域的一个主要管理接口,可以用于创造、暂停和关闭“域”,或罗列现有域。这一工具作为 libvirt-client 软件包中的一部分被安装。

注意

请参阅《Red Hat Enterprise Linux 7 虚拟化部署与管理指南 》来获取更多关于用 virsh 管理虚拟机器的信息。

4.2. virt-manager

virt-manager 是一个用于管理虚拟机器的简单的图形工具。它所提供的功能用以控制现有机器寿命周期、储备新机器、管理虚拟网络、访问虚拟机器的图形控制台并查看性能数据。这个工具包括在同名的软件包中,称为 virt-manager

注意

请参阅《红帽企业版Linux 7 虚拟化部署与管理指南 》 来获取更多关于使用 virt-manager 管理虚拟机的信息。

4.3. virt-install

virt-install 是一个用来配置新的虚拟机器的命令行工具。它通过使用连续的控制台、SPICE 或 VNC 客户/服务器成对图形,支持基于文本和图形的安装。安装介质可以是本地的,或已有的远程 NFS、HTTP 或 FTP 服务器。考虑到便捷的自动化安装,还可以通过配置此工具实现在无需人工参与的情况下运行,并在安装完成时快速启动客机。此工具以 python-virtinst 软件包的一部分进行安装。

注意

请参阅《Red Hat Enterprise Linux 7 虚拟化管理和管理指南 》来获取关于使用 virt-install 的更多信息。

4.4. guestfish

guestfish 是一个命令行工具,用来检验和修改客机的文件系统。此工具使用 libguestfs,并显示所有 guestfs API 所提供的功能。这个工具包括在同名的软件包中,称为 guestfish

警告

在运行中的虚拟机上使用 guestfish 会引起磁盘镜像损坏。若一个正在运行中的虚拟机正在使用磁盘镜像,则需搭配 --ro(只读)共同使用 guestfish 命令。

注意

请参阅《Red Hat Enterprise Linux 7 虚拟化部署和管理指南 》来获取更多关于 guestfish 的信息。

4.5. GNOME Boxes

Boxes 是一个简单的图形桌面虚拟化工具,用来查看和访问虚拟机和远程系统。Boxes 提供了一种方法,即以最小的配置来测试桌面上的不同操作系统和应用。虚拟系统可以手动也可使用快速安装功能,快速安装功能可以通过优化设置来自动预配置虚拟机。这个工具包括在同名的软件包中,被称作 gnome-boxes

注意

请参阅《Red Hat Enterprise Linux 7 虚拟化部署和管理指南 》来获取更多关于 GNOME Boxes 的相关信息。

4.6. 其他有用工具

使用下列工具通过主机访问虚拟机的磁盘。通过位于主机的 disk-image 文件可以直接访问客机磁盘。然而有时通过进入 libvirt 域也可以实现访问。后续命令属于 libvirt 的一部分“域”,并用以访问客机磁盘镜像。
guestmount
一个用于挂载虚拟机文件系统和主机上磁盘镜像的命令行工具。此工具作为 libguestfs-tools 软件包的一部分进行安装。

警告

使用 --r/w(读/写)模式中的 guestmount 以访问正被一个访客使用的磁盘,将导致磁盘崩溃。请勿对实时虚拟机使用 --r/w(读/写)模式的 guestmount。若磁盘镜像正被使用,则需 --ro(读/写)选项共同使用 guestmount 命令。
virt-builder
一个用于快速构建和定制的新虚拟机的命令行工具。该工具安装在 Red Hat Enterprise Linux 7.1 并作为软件包 libguestfs 的一部分。
virt-cat
有以下用途的命令行工具:快速浏览特定虚拟机器的磁盘或磁盘镜像中,一个或多个文件的内容。此工具作为 libguestfs-tools 软件包中的一部分进行安装。
virt-customize
用于定制虚拟机磁盘镜像的命令行工具。virt-customize 可以用来安装软件包、编辑配置文件、运行脚本并设置密码。该工具安装于 Red Hat Enterprise Linux 7.1 并作为 libguestfs 软件包的一部分。
virt-df
用于显示虚拟机的实际物理磁盘使用的命令行工具,同命令行工具 df 类似。请注意此工具不能在远程连接下工作。它作为 libguestfs-tools 软件包的一部分进行安装。
virt-diff
用于显示两个虚拟机文件系统不同的命令行工具,例如,发现快照中哪些发生了变化。该工具安装在 Red Hat Enterprise Linux 7.1 并作为 libguestfs 软件包的一部分。
virt-edit
用于编辑已存在于特定虚拟机器中的文件的命令行工具。此工具作为 libguestfs-tools 软件包的一部分进行安装。

警告

在实时虚拟机器上使用 virt-edit 会引起虚拟机器磁盘崩溃。尽管 virt-edit 命令会尽量防止用户编辑实时虚拟机器的文件,但并不能保证涵盖所有情况。请勿在实时虚拟机器上使用 virt-edit
virt-filesystems
用于发现磁盘映像或虚拟机其中的文件系统、分区、逻辑卷和其大小的命令行工具。常见用法是在命令过程中,迭代磁盘镜像中的所有文件系统。此工具作为 libguestfs-tools 软件包中的部分进行安装。
此工具替代 virt-list-filesystemsvirt-list-partitions
virt-inspector
具有如下用途的命令行工具:检测一个虚拟机或磁盘镜像,以决定其运行系统版本和其他信息。它同样可以产生 XML 输出,该输出可以输入到其他程序中。请注意 virt-inspector 一次只能检查一个域。此工具作为 libguestfs-tools 软件包的一部分进行安装。
virt-ls
罗列了虚拟化机器中的文件和目录的命令行工具。此工具作为 libguestfs-tools 软件包的一部分进行安装。
virt-log
用于列出 Linux 和 Windows 虚拟机日志文件的命令行工具。该工具安装在 Red Hat Enterprise Linux 7.1 以上,并作为 libguestfs 软件包的一部分。
virt-make-fs
用于创建文件系统的命令行工具,该文件系统基于命令中 tar 存档或文件。这同 mkisofsmksquashfs 工具相似,但它可以产生普通文件系统类型,如 ext2、ext3、NTFS。其文件系统的大小可以等同或大于基础文件大小。此工具作为 libguestfs-tools 软件包的一部分进行装备。
virt-rescue
命令行工具为不可启动的虚拟机和磁盘镜像提供救援 shell 和一些简单的恢复工具。它可以在任何 libvirt 可识别的虚拟机,或直接在磁盘映像上运行。此工具作为 libguestfs-tools 软件包的一部分进行安装。

警告

在正运行的虚拟机器上使用 virt-rescue 会引起虚拟机器的磁盘崩溃。virt-rescue设法阻止其自身在虚拟机器上运行,但不能涵盖所有情况。使用 --ro(只读) 命令选项不会引发磁盘崩溃,但可能导致不正常及不稳定的结果。
避免在运行中的虚拟机器上使用 virt-rescue
virt-resize
用以调整虚拟机磁盘大小的命令行工具,该工具同时也用来调整或删除虚拟机器上的任意分区。它依靠复制客机映像进行工作,并使原始磁盘映像不被修改。此工具作为 libguestfs-tools 软件包的一部分进行安装。

重要

在正运行的虚拟机上使用 virt-resize 可导致不稳定结果。最好在尝试调整其大小前,关闭虚拟机器。
virt-sparsify
使虚拟机磁盘(或磁盘镜像)自动精简配置的命令行工具。使用该工具可以将磁盘镜像里的可用空间转换为主机中的可用空间。
virt-sysprep
有如下用途的命令行工具:重置、定制、或取消虚拟机器配置以为建立复制做准备。该工具作为 libguestfs-tools 软件包的一部分进行安装。

重要

虚拟机必须在运行 virt-sysprep 前关闭。为保护虚拟机的已有文件,在运行 virt-sysprep 前进行快照、复制或克隆磁盘。
virt-tar-in
命令行存档工具,用来将未压缩的 tarball 拆解到虚拟机的磁盘映像,或指定的 libvirt 的域。该工具作为 libguestfs-tools 软件包的一部分安装。

警告

在即时虚拟机上使用 virt-tar-in 命令会造成虚拟机的磁盘损毁。虚拟机必须在使用该命令之前关闭。
virt-tar-out
命令行存档工具,用来将虚拟机磁盘镜像目录打包到一个 tarball。该工具作为 libguestfs-tools 软件包的一部分安装.
virt-top
top 相似的命令行工具程序,显示与虚拟化域相关的数据。这个工具包括在同名的软件包 virt-top 之中。
virt-v2v
具有如下用途的命令行工具:将虚拟机由外部管理程序转换,用以在由 libvirt 管理的 KVM、Red Hat Enterprise Linux OpenStack 平台以及 Red Hat Enterprise Virtualization 运行。目前,virt-v2v 可以转换运行在 Xen 和 VMware ESX 上的 Red Hat Enterprise Linux 和 Windows 客机。该 virt-v2v 工具安装在 Red Hat Enterprise Linux 7.1 以上版本中,并作为 libguestfs 软件包的一部分。
virt-viewer
通过 VNC 和 SPICE 协议显示虚拟机器图形控制台的最小工具。该工具在其同名软件包中:virt-viewer
virt-what
外壳脚本检测程序是否在虚拟机器上运行。该工具包括在其同名的软件包中:virt-what
virt-who
virt-who 软件包是 Red Hat Enterprise Linux 主机代理,用以查询客机 UUID 的 libvirt。它将数据传到本地授权服务器以发放证书。该工具包括在其同名软件包中:virt-who
virt-win-reg
具有如下用途的命令行工具:将 Windows 注册表项从一个 Windows 虚拟机中导出并合并,并且执行简单注册表操作。该工具作为 libguestfs-tools 软件包的一部分进行安装。

警告

在正运行的虚拟机器上使用 virt-win-reg,会导致虚拟机器不可逆转的磁盘崩溃。virt-win-reg 尝试阻止其在工作虚拟机器上运行,但不能涵盖所有情况。

警告

修改 Windows 注册表这一操作的风险与生俱来,因为其格式刻意模糊且未被文件记录。更改注册表可以使系统无法启动,所以要保证您在使用 --merge 选项之前有一个可靠的备份。
virt-xml-validate
验证 libvirt XML 文件与已发布 schema 相对应的命令行工具。该工具作为 libvirt-client 软件包的一部分进行安装。

第 5 章 Red Hat Enterprise Linux 7 虚拟化的快速指南

本章指出如何在 Red Hat Enterprise Linux 7 中进行虚拟化。
本章首先讲述最小系统规范和虚拟化所需软件包的概要。 基本程序包安装完成之后,按照第 5.2.2 节 “使用虚拟机管理器创建一个虚拟机”中的步骤,来在虚拟机管理器(Virtual Machine Manager)上建立基本虚拟机。

注意

本教程使用虚拟机管理器来快速建立虚拟机,用于使用 KVM 虚拟化。为了创建可以满足生产环境所需能力的虚拟机,请参阅《Red Hat Enterprise Linux 7 虚拟化部署和管理指南 》来获取关于运行虚拟机的系统要求和推荐的配置。

5.1. 基本要求和安装

虚拟化可在 Intel 64 和 AMD 64架构的 Red Hat Enterprise Linux 7 上使用,Red Hat Enterprise Linux 7 包括了 KVM 虚拟机监控程序。
在 Red Hat Enterprise Linux 7 系统上安装虚拟机之前,系统必须已经安装特定的软件包。
系统要求
在系统中实现虚拟化的最低配置要求是:
  • 6 GB 可用磁盘空间;
  • 2GB 内存。
虚拟化所需软件包
在使用虚拟化之前,电脑必须已经安装了虚拟化软件包。虚拟化软件包可以在主机安装进程中安装,或者在主机安装之后使用 yum 命令和红帽客户门户。该部分讲述在可以正常工作的 Red Hat Enterprise Linux 7 系统中安装 KVM 虚拟机安装程序的步骤。
注册后方能安装软件包。通过红帽订阅管理器注册,运行 subscription-manager register 命令并按提示操作。
如果您还没有有效的红帽订阅,请访问红帽网上商店来获取。

过程 5.1. 使用 yum 安装虚拟软件包

在 Red Hat Enterprise Linux上使用虚拟化,您需要至少 qemu-kvmqemu-img 软件包。 这些软件包在红帽企业 Linux 主机系统上提供用户级 KVM 仿真器和磁盘映像管理器。
  1. 用下列指令安装 qemu-kvmqemu-img 软件包:
    # yum install qemu-kvm qemu-img
  2. 用下列指令安装 virt-manager 软件包:
    # yum install virt-manager
  3. 此外,按照本教程,下载 Red Hat Enterprise Linux 7 ISO 镜像到您的系统,来创建虚拟机操作系统。
    Red Hat Enterprise Linux ISO 文件可以在红帽客户门户上找到:https://access.redhat.com/downloads/

5.2. 用虚拟机管理器部署虚拟机

虚拟机管理器,同时也称 virt-machine,是一个在 Red Hat Enterprise Linux 上快速部署虚拟机的图形工具。按照本教程,您将了解基本的功能,并学会使用虚拟机管理器来创建虚拟机。

5.2.1. 虚拟机管理器介绍

从 “应用” 菜单和 “系统工具 ”子菜单中打开“ 虚拟机管理器” 应用。
下列图像显示虚拟机管理器界面。该界面可以让用户从一个中心位置控制所有的虚拟机:
虚拟机管理器界面

图 5.1. 虚拟机管理器界面

通用功能包括:
  • 创建新的虚拟机:从此处开始创建一个新的虚拟机。
  • 虚拟机:所有虚拟机(或客机)的清单。在创建一个虚拟机后,它就会在此列出。客机运行时,CPU 使用下的动态图像会显示客机 CPU 的使用情况。
    从清单上选定虚拟机后,使用下列按钮来控制已选定虚拟机的状态:
    • 打开:在新的窗口中打开客机虚拟机控制台和明细。
    • 运行:启动虚拟机。
    • 暂停:暂停虚拟机。
    • 关闭虚拟机:关闭虚拟机。点击箭头显示一个下拉菜单,其中有几个关闭虚拟机的选项,包括重新启动、关机、强制重置、强制关闭并保存。
虚拟机上单击鼠标右键能显示更多的功能,包括的菜单有:
  • 克隆:克隆虚拟机
  • 迁移:把虚拟机迁移到另外一个主机。
  • 删除:删除虚拟机。

5.2.2. 使用虚拟机管理器创建一个虚拟机

虚拟管理器上按这些步骤创建 Red Hat Enterprise Linux 7 虚拟机。

过程 5.2. 用虚拟管理器创建客机虚拟机

  1. 打开虚拟机管理器

    从“应用”菜单和“系统工具”子菜单中启动“虚拟机管理器”应用。
  2. 创建新虚拟机

    点击创建新的虚拟机键 (图 5.2 “创建新虚拟机键”) 打开新 VM 向导。
    创建新虚拟机键

    图 5.2. 创建新虚拟机键

  3. 指定名称和安装方式

    输入虚拟机名并选定安装类型,安装虚拟机操作系统。
    虚拟机创建步骤第一步是选定名称和安装方式。虚拟机名可以包含下划线(_)、英文句号(.)和连字符(-)。
    命名虚拟机和选定安装方式

    图 5.3. 命名虚拟机和选定安装方式

    根据本教程,选定本地安装媒体(ISO 镜像)。该安装方式使用安装盘图像(例如 .iso 文檔)。 点击前进键继续。
  4. 查找安装媒体

    提供 ISO 的位置,客机虚拟机将从该 ISO 安装操作系统安装。
    例如, 在过程 5.1, “使用 yum 安装虚拟软件包”中查找已下载 ISO,通过使用浏览提供现行存储路径。
    选定安装“OS 类型”以及“版本”,确保选定 OS 类型与虚拟机相匹配。例如,在“OS 类型”中从下拉中选定 Linux ,并在“版本”中从下拉中选定 Red Hat Enterprise Linux 7,点击前进键。
    本地 ISO 镜像安装

    图 5.4. 本地 ISO 镜像安装

  5. 配置内存和 CPU

    选定分配给虚拟机的内存数量和 CPU 数。向导显示可用于分配的 CPU 数和内存。
    按照本教程,选定默认设置并点击前进键。
    配置 CPU 及内存

    图 5.5. 配置 CPU 及内存

  6. 配置存储设备

    为客机虚拟机分配存储空间。向导会显示存储选项,包括将虚拟机存储在主机的什么位置。按照本教程,选定默认设置并点击前进键。
    配置存储

    图 5.6. 配置存储

  7. 最终配置

    验证虚拟机设置并点击完成键。虚拟机管理器将会用选定硬件设置创建虚拟机 。
    验证配置

    图 5.7. 验证配置

虚拟机管理器创建 Red Hat Enterprise Linux 7 虚拟机之后,按照 Red Hat Enterprise Linux 7 安装程序完成虚拟机操作系统安装。

注意

如需关于安装 Red Hat Enterprise Linux 7 的帮助,请参阅《Red Hat Enterprise Linux 7 安装指南 》。

5.2.3. 浏览虚拟机

您可以通过在虚拟机管理器窗口中选定虚拟机,并点击打开,查看虚拟机配置。您可以使用和实体系统相同的方式,从控制台上操作 Red Hat Enterprise Linux 7 虚拟机。
客机虚拟机控制台

图 5.8. 客机虚拟机控制台

  • 显示图形控制台:这显示了虚拟机显示器上的内容。虚拟机从控制台上可以和实体机用相同方式操作。
  • 显示虚拟硬件细节:该窗口显示客机正在使用的虚拟硬件细节,提供基本系统细节、性能、处理器、内存和引导设置,以及系统虚拟设备细节的概述。
  • 下列键控制虚拟机的状态:
    • 执行:打开虚拟机。
    • 暂停:暂停虚拟机。
    • 关闭虚拟机:关闭虚拟机。点击箭头会出现一个下拉菜单,其中有几个选项可用于关闭虚拟机,包括重新启动、关机、强制复位、强制关闭、并保存。
  • 全屏:转换虚拟机至全屏显示。
  • 发送键:向虚拟机发送组合键如 Ctrl+Alt+Backspace、Ctrl+Alt+Delete、 Ctrl+Alt+F1、PrintScreen 等。

注意

请参阅《Red Hat Enterprise Linux 7 虚拟部署与管理指南 》,以获取更多关于使用虚拟机管理器的信息以创建并运行虚拟机。

附录 A. 修订历史

修订历史
修订 1.0-35.2Sat Feb 20 2016Chester Cheng
说明:7.1 版翻译、校对完成。
翻译、校对:顾瑞。
翻译、校对:薛景晨。
校对、编辑:傅同杰。
校对、责任编辑:鄭中。
附注:本简体中文版来自「红帽公司・全球服务部」与「澳大利亚昆士兰大学・笔译暨口译研究生院」之产学合作计划。若有疏漏之处,盼各方先进透过以下网址,给予支持指正:https://bugzilla.redhat.com/
修订 1.0-35Wed Feb 25 2015Dayle Parker
7.1 GA 更新版本发布
更新 7.1 技术预览的状态:BZ#1064610
修订 1.0-34Wed Feb 18 2015Dayle Parker
7.1 GA 版本发布
修订 1.0-33Tue Feb 17 2015Dayle Parker
增加新的 libguestfs 工具(virt-builder、virt-customize、virt-diff、virt-log、virt-v2v)的描述:BZ#1134630
修订 1.0-31Tue Jan 13 2015Scott Radvan
发布指南的更新版本
修订 1.0-30Mon Jan 12 2015Scott Radvan
添加虚拟 sparsify 到工具部分
修订 1.0-29Mon Dec 08 2014Scott Radvan
在初始页更新到实施新排序
修订 1.0-27Fri Dec 05 2014Scott Radvan
发布 7.1 测试版本
修订 1.0-25Tue Nov 25 2014Scott Radvan
添加新出现的产品部分
修订 1.0-24Wed July 16 2014Dayle Parker
根据 SME 的反馈编辑 QXL 驱动的描述:BZ#1097974
修订 1.0-22Tues June 3 2014Dayle Parker
7.0 GA 发行版本
修订 1.0-21Tues June 3 2014Dayle Parker
更新“KVM 客端虚拟机相容性”的支援限制 URL:BZ#1064610
更新 guestmount 工具下的警告:BZ#1064611
修订 1.0-20Tues May 20 2014Dayle Parker
更新“KVM 客端虚拟机相容性”的支援限制 URL:BZ#1064610
修订 1.0-19Mon May 19 2014Dayle Parker
根据 QE 的反馈,将“关机”加入离线迁移的描述中:BZ#1064608
根据 QE 的反馈,小幅修正〈产品〉一章:BZ#1064610
根据 QE 的反馈,编辑工具清单:BZ#1064611
除去简介和引言材料
修订 1.0-18Fri May 9 2014Dayle Parker
为风格变化重建
修订 1.0-14Tues May 6 2014Dayle Parker
在〈产品〉一章中编辑虚拟 CPU 热添加描述。
修订 1.0-12Mon April 28 2014Dayle Parker
在〈Red Hat Enterprise Linux 7 虚拟化的快速指南〉一章中,加入说明文字框:BZ#919320
修订 1.0-10Tues April 16 2014Dayle Parker
编辑〈virsh〉一节:BZ#1056848
修订 1.0-09Mon April 14 2014Dayle Parker
编辑〈libvirt〉一节:BZ#1056848
编辑〈客机 CPU 型号〉一节:BZ#952964
修订 1.0-08Wed April 9 2014Dayle Parker
版本公测刷新
修订 1.0-07Mon April 7 2014Dayle Parker
更新连往其它虚拟化指南的参考:BZ#872060
根据 SME 的反馈,编辑〈虚拟 CPU 热添加〉一节的描述:BZ#953006
修订 1.0-06Thurs April 3 2014Dayle Parker
根据 QE 的反馈,编辑〈Red Hat Enterprise Linux 7 虚拟化的快速指南〉一节:BZ#919320
在 KVM 产品清单中加入“虚拟 CPU 热添加”的描述:BZ#953006
修订 1.0-04Wed April 2 2014Dayle Parker
编辑〈Red Hat Enterprise Linux 7 虚拟化的快速指南〉一节:BZ#1056848
在仿真系统元件清单中,加入 PCI Express 总线:BZ#952442
修订 1.0-03Wed April 2 2014Dayle Parker
在〈libvirt〉一节中加入 ACL 的描述:BZ#1056848
将 KVM 相容性信息移到〈Red Hat Ent erprise Linux 的 KVM 和虚拟化〉的最后:BZ#895819
修订 1.0-02Mon March 31 2014Dayle Parker
新增〈Red Hat Enterprise Linux 7 虚拟化的快速指南〉一章:BZ#919320BZ#919282
为纠错指南更新更多磁盘 I/O 限制信息参考。
根据 QE 的反馈,编辑〈半虚拟化设备〉:BZ#1056429
修订 0.1-23Mon March 17 2014Dayle Parker
更新虚拟化文档套件列表,用以包括新的 Red Hat Enterprise Virtualization 文档。
新增〈自动化 NUMA 平衡〉的描述:BZ#1071730
编辑〈性能〉一节:BZ#1056535
修订 0.1-22Wed March 12 2014Dayle Parker
更新其它 Red Hat Enterprise Linux 7 的指南:BZ#872060
新增 QXL 驱动的描述:BZ#1056429
编辑〈储存〉一节的概念:BZ#1010806
编辑〈仿真储存驱动〉一节:BZ#1056424
修订 0.1-21Thurs Feb 27 2014Dayle Parker
编辑〈虚拟和仿真设备〉一节:BZ#1056424
添加 AHCI 描述。
编辑〈储存〉一节的概念:BZ#1010806
修订 0.1-20Fri Feb 7 2014Dayle Parker
编辑〈virt-install〉一节:BZ#1056896
编辑〈GNOME Boxes〉的描述:BZ#921813
修订 0.1-19Mon Jan 13 2014Dayle Parker
新增储存概念的描述:BZ#1010806
编辑〈GNOME Boxes〉的描述:BZ#921813
在指南中运用 QE 反馈。
修订 0.1-18Thurs Dec 12 2013Dayle Parker
根据 SME 的反馈,编辑关于 VFIO 的描述:BZ#952004
修订 0.1-17Fri Dec 6 2013Dayle Parker
根据 SME 的反馈,编辑关于 VFIO 的描述:BZ#952004
beta 测试版
修订 0.1-16Wed Dec 4 2013Dayle Parker
新增 VFIO 的描述:BZ#952004
新增 KVM 差异性的附注:BZ#1036456
修订 0.1-15Thurs Nov 28 2013Dayle Parker
新增 GlusterFS 的描述:BZ#1010826
修订 0.1-14Wed Nov 27 2013Dayle Parker
7.0 测试版早期版本
修订 0.1-13Thurs Oct 17 2013Dayle Parker
新增即时快照的描述:BZ#952008
修订 0.1-12Wed Oct 2 2013Dayle Parker
新增词盘 I/O 节流的描述:BZ#1010821
编辑〈半虚拟化设备〉一节中的名词:BZ#928129
更新连往其它虚拟化指南的参考:BZ#872060
修订 0.1-11Mon June 10, 2013Dayle Parker
在〈半虚拟化设备〉一节中加入 virtio-rng 的描述:BZ#923008
添加 GNOME Boxes 描述到〈虚拟化工具〉一节中。
修订 0.1-10Mon May 6, 2013Dayle Parker
重新组织〈什么是迁移?〉一节,纳入即时迁移的描述:BZ#953341
添加新 xHCI 主机控制器到仿真系统组件列表。
修订 0.1-7Mon Apr 29 2013Dayle Parker
添加作者名到作者群列表。
修订 0.1-6Fri Apr 26 2013Dayle Parker
为第一章添加的文件套件列表。
修订 0.1-3Thurs Jan 31 2013Dayle Parker
更新 4.4.1 存储池。
修订 0.1-2Wed Jan 23 2013Dayle Parker
更新 Red Hat Enterprise Linux 6 引用到 Red Hat Enterprise Linux 7 以生成首稿。

法律通告

Copyright © 2011-2015 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。