开枝散叶 – 虚拟化的福泽及 VMware 产品生态


认识虚拟化

如何提升计算机系统硬件资源的使用效率,一直是计算机系统领域的一个备受关注的问题。

计算机操作系统的发展,使得整个系统硬件资源为单个程序服务,转变成为多道程序共享使用。共享使用必然涉及到对资源的争夺,通过操作系统对系统硬件资源的统一管控,使得每个程序都产生自己“独占”使用一个计算机系统的假象,这种由程序感知的“虚拟”,是程序对计算机占有权(使用权)的虚拟,由操作系统的调度功能来实现。每个程序对硬件的感知都是一致的,即通过计算机操作系统所管理的真实硬件。这种虚拟,可是视为一种“假虚拟”,或“弱虚拟”。


pic-1

随着硬件资源的增强(资源数量增多、资源性能提升),硬件资源集所提供的能力远远超出了单个计算机系统的资源需求,此时,最好的方式是将硬件资源池为多个计算机系统共享使用,以此产生最大的使用效率。虚拟化技术的发展,无疑为实现这一目标提供了良好的支撑手段。


pic-2

将一个优质硬件资源池进行拆分,在拆分后资源基础上,利用虚拟化技术构建多个计算机系统,这些计算机系统可以彼此独立运行,也可以通过某种协议进行通讯。每个虚拟出来的计算机系统就像真实存在的计算机系统一样,独立安装操作系统和应用程序。此时,每个程序通过所依托的操作系统调用所感受的系统硬件,都是虚拟计算机系统的硬件,而不是真实的硬件。这种虚拟,是“真虚拟”,或“强虚拟”。

hypervisor

实现一个硬件资源池服务多个更小型的计算机系统,最重要的事情毫无疑问是要能够在这个硬件资源池上,先模拟出这些小型计算机系统。这里最为关键的部分就是模拟器,它有一个专用的名称 — hypervisor。运行模拟器 hypervisor 的机器是 “host machine”,每个模拟出来的机器则称为 “guest machine”。

hypervisor 通常由软件来实现。根据 hypervisor 运行的基础不同,一般将其分为两种类型,

这个分类源自 Gerald J. Popek 和 Robert P. Goldberg 于 1974 年发表的著名论文《Formal Requirements for Virtualizable Third Generation Architectures》。

  • 1 类 hypervisor(type 1)

    这类 hypervisor 直接在硬件资源池(bare metal)上运行,本质上,可将其视为某种操作系统,直接管理硬件,并模拟创建出虚拟机。

  • 2 类 hypervisor(type 2)

    与 1 类相反,这类 hypervisor 不直接运行于硬件上,而是运行在某个既有的操作系统上,本质上,可将其视为某种操作系统平台上的应用软件。它不直接管理硬件,而是通过其基础操作系统来管理。

1 类和 2 类 hypervisor 各有应用场景,1 类 hypervisor 虚拟机离硬件更近,一般运行效率更高。

虚拟化的实现

虚拟化技术有着显著的优势及明确的应用需求,是各软件厂商关注的重点产品方向,也都纷纷给出了各自的实现。

hypervisor 类型 Vendors
type 1 ESX/ESXi (VMware)
KVM — Kernel-Based Virtual Machine (Linux)
Hyper-V 和 Xbox One system software (Microsoft)
Citrix Hypervisor (Citrix )
VM Server (Oracle)
XEN (open source)
type 2 VMware Workstation / VMware Player / VMware Fusion
VM VirtualBox
Windows Virtual PC
Parallels Desktop for Mac
QEMU

vmware 的实现及相关产品生态

作为虚拟化行业的龙头,VMware 自然不遑多让。除了提供最为核心的 hypervisor (ESXi / Workstation) 解决方案外,还以 hypervisor 软件为核心,打造了一系列生态产品,整合形成了虚拟化创建、应用、管理的全链条服务能力,VMware vSphere 套件就是一个典型代表。

VMware vShere 套件

VMware vSphere 套件是 VMware 针对虚拟数据中心需求提供的一套软件解决方案。vSphere 名曰套件,与微软的 Office 办公套件相似,它不是一个单独的软件,而是一系列可以相互配合使用的软件的集合。vSphere suite 包括了 ESXi、vCenter 和 vSphere client 等一系列软件。这一点,与 office suite 中包含 Word、Excel、PowerPoint 形式上一致。

既然采用软件套件的方式,就是为了将一个大的宏观任务进行功能分解,赋予不同软件不同的任务职责,通过软件之间相互配合,高效完成宏观任务。vSphere suite 的设计自然也不例外。在功能架构上,vSphere suite 将虚拟化的创建与虚拟化的大规模管理功能进行了解耦,采用分层架构,通过不同的软件负责不同的任务,实现虚拟化全链条服务能力。

下图清晰表明 vSphere 套件中各组成软件的关系


pic-3

ESXi

作为 hypervisor,ESXi 是 vSphere 中最重要的组件。ESXi 负责完成最重要、最核心的虚拟化创建功能,所有的虚拟机都是运行在 ESXi 服务上面。与此同时,EXSi 也为自创建的虚拟机提供了部分管理功能。

ESXi 可以单独使用,也可以与其他 vSphere 套件软件配合使用。

为了安装,管理和访问 EXSi 上的虚拟机,可以有多种方式。一种是通过 EXSi 自带的对外访问接口,如 HTML 或 SSH 方式,这种方式也是 EXSi 单独使用时的访问手段;另一种就是通过 vSphere 套件提供的专门的管理软件:vSphere Client 或 vCenter。

vCenter Server

在功能架构上,相较 EXSi,vCenter Server 处在更高一层,可将 vCenter 视为一个中心化的虚拟化资源管理服务器,它是 vSphere suite 真正的总控中心,以全局的宏观视角,统筹管理所有的虚拟机和所有的 ESXi 物理机。

所处在更高的维度,因而 vCenter 可以组织更多资源,提供比 EXSi 更为宏观、更为强大的管理能力,比如 vMotion, VMware High Availability, VMware Update Manager 和 VMware Distributed Resource Scheduler(DRS) 等。这些功能对许多企业级的需求非常有用,因此,vCenter server 在市场上也被定位为一个企业级的产品,

实际应用中,vCenter Server 可安装在单独的 Window 服务器或 Linux 服务器中,也可将 vCenter Server 安装在某个 EXSi 创建的虚拟机中。

vSphere Client

vSphere Client 是专门的虚拟管理客户端软件。作为 vCenter 的客户端,它可以远程访问 vCenter,通过 vCenter 进行虚拟机管理;此外,在没有 vCenter 的情况下,vSphere Client 也可以直接连接 ESXi 服务器并管理虚拟机和相关任务。

vSphere Client 是一个 Windows 客户端程序,也是 vSphere 环境下的日常操作常用工具。

实际应用中,通常使用 vSphere Client 在小环境中直接管理 ESXi 服务;在大规模的环境中,则通过 vCenter 服务间接管理 ESXi 服务。

Reference

  1. VMware – VMware vSphere Documentation
  2. https://www.dummies.com/programming/networking/what-is-vsphere/
  3. What is VMware vSphere – Beginners Guide to VMware Virtualization
  4. Difference between vSphere, ESXi and vCenter (chinese version)
  5. EXSi 安装
  6. vSphere 网络介绍

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注