What is a hypervisor?
hypervisor,又叫做虚拟机监视器(virtual machine monitor,VMM),是一套可以用来创建和运行虚拟机的软件。hypervisor通过虚拟化物理机的资源(内存、处理器等)从而支持多个虚拟机的运行。
Why use a hypervisor?
hypervisor使得系统的可用资源得到充分利用成为了可能,并且由于虚拟机不依赖于物理机硬件,所以hypervisor还提供了更大的IT流动性(原文:IT mobility)。这意味着我们可以很容易地将虚拟机从一台物理机移动到另一台物理机。由于多个虚拟机可以通过hypervisor运行在同一台物理机上,因此hypervisor减少了:
- 存储空间(Space)
- 能耗(Energy)
- 维护需求
Types of hypervisors
hypervisor的类型主要有两种:
- Type1,或者称作bare-metal
- Type2,或者称作hosted
Type1相当于一个轻量级的操作系统,直接跑在宿主机的硬件上;而Type2相当于一个应用软件,运行在宿主机的操作系统之上。
最常见的部署类型是Type1,因为Type1的hypervisor与容易受到攻击的宿主机操作系统是隔离开的,因此这种部署类型更为安全。另外,Type1类型的hypervisors通常在性能上比Type2表现的更好。基于以上的原因,大多数企业一般选择Type1类型的hypervisor用于数据中心的计算需求。
hosted hypervisors相较于bare-metal hypervisors的缺点就是延迟太高,这是因为hypervisor与硬件之间的交流还需要穿过操作系统这一层。hosted hypervisors最多的应用场景是作为client hypervisors运行在终端用户的电脑上,而这种场景下一般是不需要关心延迟问题的。
这两种类型的hypervisors都可以应用在云计算场景下,它们使得在同一台物理机可以运行多个承租者的虚拟服务器。公有云服务提供商给不同虚拟服务器的租赁者出租服务器空间,一台服务器可以承载多个虚拟服务器,而这些虚拟服务器可能正在为不同的公司处理工作负载。这种资源共享的模式可能导致"noisy heighbor"现象:当某个承租者的虚拟机运行了大量的工作负载,可能直接影响到这台服务器上其它承租者虚拟机的性能。与使用专用的物理服务器相比,它会带来更大的安全风险。
由单个公司完全掌控的物理服务器,总是会比与其它虚拟机共享资源的虚拟服务器在性能上表现的更好。物理服务器上的硬件可以通过优化来提升性能,而共享的公共服务器却不能这样做。想要其服务器使用的资源在物理上隔离的企业应该选择物理服务器,而不是选择云服务商提供的与其它租户共享资源的虚拟服务器。
What is a cloud hypervisor?
随着云计算的普及,hypervisor已然成为了在云计算环境中运行虚拟机和推进创新的重要工具。hypervisor使得云环境中的用户可以访问基于云的应用,同时IT在hypervisor的帮助下可以得到云环境中基础设施、应用以及敏感数据的控制权。
数字化转型和增长的客户期望,正在推动加大对创新应用的依赖。相应地,许多企业正在把它们的虚拟机迁移到云上。但是,这样需要为云环境重新rewrite(这个词不知道怎样翻译比较准确)应用程序,这会耗费大量地IT资源以及可能导致"infrastructure silos"。幸运地是,作为虚拟化平台不可分割的一部分,hypervisor可以帮助应用更快地迁移到云上。因此,企业从云技术上获得非常的好处,如减少硬件开销、提高可访问性和可扩展性,从而获得更快的投资回报。
How does a hypervisor work?
supervisor通过将软件与硬件进行解耦,从而支持虚拟机的创建与管理;通过在物理资源与虚拟资源之间转换请求来实现虚拟化。bare-metal hypervisors有时候会被嵌入到与主板上输入输出系统(BIOS)相同级别的固件上,从而让计算机上的操作系统能够访问和使用虚拟软件。
Benefits of hypervisors
使用可以托管多个虚拟机的hypervisor有以下好处:
- Speed:与物理服务器不同,hypervisor可以快速的创建虚拟机,这为动态工作负载提供所需的资源变得更加容易。
- Efficiency:hypervisor使得物理机的资源能够得到更充分的利用。在虚拟服务器上运行任务比在物服务器上运行相同的任务更省钱、更节能。
- Flexibility:因为bare-metal hypervisor将上层的操作系统以及之上的应用软件从底层硬件中抽离了出来(解耦),这就使得它们可以跑在不同类型的硬件上面,因此软件可以不再依赖于特定的硬件设备或者驱动。
- Portability:因为虚拟机不依赖于底层硬件,因此不同的操作系统可以驻留在同一台物理机,也就是说虚拟机是可移植的。团队可以根据需求跨多个服务器迁移任务,和跨服务器分配网络、内存、存储和处理器等资源。也就说,只要应用程序有需要,它可以访问另外一台物理机上面的资源。
Container vs hypervisor
容器技术和hypervisor都致力于是应用程序运行的更快、更高效,但是它们却有着不同的实现。
Hypervisor:
- 操作系统不依赖底层硬件。
- 共享虚拟的计算、存储和内存资源。
- 多个操作系统可以直接在物理机上运行(bare-metal hypervisor),也可以在一个标准的操作系统之上运行(hosted hypervisor)。
container:
- 允许应用独立运行于操作系统。
- 可以运行在任何操作系统之上,它只需要一个容器引擎就可以运行起来。
- 具有极强的可移植性,因为在容器中,应用所依赖的环境都具备了。
hypervisor和container有着各自的应用场景。hypervisor用于创建和运行虚拟机,每一个虚拟机有它自己完整的操作系统,虚拟机之间是相关隔离的。与虚拟机相比,容器只需要打包应用和其依赖的环境即可,这也使得它们比虚拟机更轻量和可移植性更高,所以,它们经常用于快速灵活的应用程序开发和迁移。