作者:禅与计算机程序设计艺术

1.简介

虚拟化技术(virtualization technology)是将一个物理实体变为多个逻辑实体的方法。它使得多种不同的计算机资源在同一台机器上运行成为可能。虚拟机(virtual machine)或称之为guest,是一种在本地系统上运行的完整操作系统,可以安装任意的软件,并拥有自己独立的文件系统、网络接口、磁盘空间及处理器等资源。

虚拟化技术主要通过两种方式实现,分别是宿主机虚拟化和全栈虚拟化。宿主机虚拟化由虚拟化主机管理器(hypervisor)提供,它负责分配资源给虚拟机,同时还提供虚拟机之间的隔离,防止虚拟机对宿主机造成损害。全栈虚拟化则是指虚拟机本身直接运行于硬件平台上,因此无需额外的管理程序支持。

虚拟化技术在数据中心、云计算、大规模集群计算、超级计算中得到广泛应用。目前市面上流行的虚拟化技术有 VMware、Xen、KVM、Microsoft Hyper-V、OpenStack、Docker等,不同虚拟化技术有各自的特点和优缺点,有些技术仍然处于蓬勃发展阶段,需要持续跟进。

本文将介绍虚拟化技术的一些基本架构和具体实现方法。首先,介绍一下传统的裸金属服务器的虚拟化架构。然后,阐述其中的工作原理;接着介绍下最主要的虚拟机监视器VMware vSphere;最后,介绍最流行的容器编排引擎Kubernetes。

2.传统的裸金属服务器的虚拟化架构

2.1.物理层次结构

图1:传统裸金属服务器的物理层次结构。

2.2.虚拟机监视器VMM

虚拟机监视器(Virtual Mac