欢迎关注下方公众号阿宝1990,本公众号专注于自动驾驶和智能座舱,每天给你一篇汽车干货,我们始于车,但不止于车。
跟一些行业内朋友聊天,大家经常提到裸金属机的概念,实际上指的是物理机。与我理解的,如AWS等云厂商提到的,裸金属(Bare Metal)机,其实不是一回事。
那什么是裸金属机?以及物理机、虚拟机及裸金属机的优势劣势、区别和联系到底是什么?今天这篇文章,我们一起探讨。
物理机,顾名思义,是把物理的服务器完全交付给客户。
物理机唯一的优势在于,所有的资源完全交付给客户。算力服务提供商不占用此服务器的硬件计算资源。
物理机的劣势,主要总结如下:
虚拟机,是公有云最常见的产品形态,没有之一。通过虚拟化技术,实现基于宿主机(Host)的虚拟机器,为客户提供更灵活更低成本的云主机服务。
大体上,物理机的劣势,就是虚拟机的优势;反过来,物理机的优势,也即虚拟机的劣势。
虚拟(云)机的优势主要总结如下:
而虚拟机的劣势,则主要是性能的问题。虚拟机性能的额外损耗主要来源于两点:
(注:为了简化问题,这里仅涉及CPU,没有涉及GPU等业务加速处理器,下同。)
既然物理机和虚拟机都不完美,都存在这样或那样的问题。那么,能不能把两者的优势结合起来?使得物理机像虚拟机一样功能强大;同样的,虚拟机也能像物理机一样,没有额外的资源消耗,实现裸机级别的性能。
答案是肯定的。
虚拟机的优势,如资源弹性、高可用等,主要是虚拟化系统提供的。要想物理机也实现这样的能力,则需要物理机也“支持”虚拟化。虚拟化系统主要分为两层:宿主机(Host)侧和客户机侧(Guest VM)。通过DPU,可以实现虚拟化系统宿主机侧所有任务的完全卸载。在传统虚拟机模式下,这部分工作是在CPU中完成,而在裸金属机的模式下,这部分工作卸载到了DPU中,并把性能敏感的任务进行了加速优化。
前面我们分析过,虚拟机的性能损耗主要来自于非硬件虚拟化的CPU资源消耗,以及网络、存储两个主要I/O的后台工作任务(网络主要是VPC处理,存储主要存储虚拟化映射)的CPU资源消耗。
通过DPU,可以实现整个宿主机侧计算任务的卸载,这样就可以实现:
需要注意的是,在此种方案下,在CPU侧仍存在Hypervisor。这个Hypervisor比较轻量,主要是实现虚拟机的创建、销毁和迁移等操作。Hypervisor几乎不干扰虚拟机的稳定运行,也就几乎不会从Guest Mode切换到Host Mode,也就没有了额外的CPU资源消耗,从而实现虚拟机“独占”CPU。
既然可以实现物理机像虚拟机一样功能强大,虚拟机像物理机一样性能极致,那么接下来就会有一个新的问题:站在客户的视角,为什么要区分虚拟机和物理机?两者不可以统一吗?
答案同样是肯定的。
系统可以自由的在虚拟机和裸金属机之间切换:
统一虚拟机和裸金属机,可以实现客户业务使用和技术实现之间的隔离:从技术角度,实现底层实现和上层呈现之间的隔离,便利客户使用;l对客户来说,客户需要的是一个性能强劲、功能强大的云主机,用户不需要关心到底是物理机或虚拟机。
物理机和虚拟机是两套独立的体系,独立的运维,物理机实例和虚拟机实例之间无法切换。这和我们一直讲的算力资源池化是相悖的。
因此,除了优化性能和优化功能之外,还需要统一平台,统一资源,简化运维,简化用户的使用。这样,我们可以简单划分云主机发展的三个阶段:
五种类型主机的特性总结,见下面表格。