云计算主题 什么是虚拟化?

什么是虚拟化?

更新时间: 2024-02-06 11:18:55

虚拟化是在一台物理计算机上同时运行多个虚拟操作系统实例的技术。虚拟操作系统上运行的这些实例被称为虚拟机(Virtual Machine)或者客户机(Guest Machine)。每个虚拟机都具备完整的硬件抽象,包括CPU、内存、网络适配器和磁盘等,它们可以独立运行在自己的操作系统和应用程序,互不干扰。

为什么需要虚拟化?

虚拟化技术提供了更灵活、高效和可管理的计算环境,适应了现代计算需求的变化和复杂性。其必要性体现在以下几个方面。

  • 提升资源利用率:虚拟化通过在一台物理计算机上同时运行多个虚拟机,每个虚拟机运行独立的应用负载,可以有效地提升硬件资源的利用率,进而降低成本。

  • 屏蔽硬件差异: 凭借虚拟化对底层硬件的抽象,使得虚拟机可以在不同的硬件平台上运行而无需修改,从而使得在不同环境中轻松部署和管理应用负载成为可能。

  • 提供资源隔离能力: 虚拟化技术确保每个虚拟机都被隔离开来,互不干扰。这种资源隔离性使得在同一台物理机上运行的不同应用或服务可以相互独立地操作,提高了系统的稳定性和安全性,在多个租户共享同一台物理机的情况下这个能力尤为重要。

  • 部署的灵活性:虚拟化允许快速创建、复制和部署虚拟机,大大减少了新系统或应用程序的部署时间。这对于应对业务需求的变化或快速扩展计算能力至关重要。

虚拟化和容器化的区别是什么?

从整体来看:

  • 虚拟化提供给客户的是一个完整的虚拟计算环境,客户指定虚拟机的规格和操作系统镜像,在此基础上部署自己的业务应用程序和模块。

  • 容器化是应用程序级别的虚拟化,通过将应用程序及其部署、运行所依赖的库、配置整体打包成容器镜像,可以实现应用程序的跨平台部署和运行。

从资源隔离的视角来看:

  • 虚拟化提供操作系统级别的硬件隔离,从CPU到内存再到操作系统,不同虚拟机之间完全隔离。

  • 容器化提供了进程级别的软件隔离,容器之间共享操作系统的内核和系统资源,通过命名空间和控制组实现了逻辑上的互相独立。

但在实际应用中,虚拟化和容器化可以互相为正交关系。即客户可以购买虚拟机并在虚拟机上部署自己的容器化业务,也可以直接购买弹性容器实例 ECI(Elastic Container Instance)等虚拟机容器实例(一台虚拟机上只运行一个容器),兼容容器化运维体验的同时拥有硬件级别隔离的安全能力。

虚拟化有哪些实际应用?

一个简单的场景,客户A需要一个g7i.2xlarge的suse系统来运行它的Java类在线应用,客户B需要一个g7i.4xlarge的Windows Server来运行Sqlserver,我们可以将这两个实例装箱到一台宿主机上运行,A和B客户因为运行了两套完全独立的操作系统和应用,他们之间的底层资源在硬件层面也是通过虚拟化达到完全隔离,所以两个业务不会互相干扰。另一方面,他们按需做了业务的部署和算力容量的分配,从而使得各自以及整体的资源利用率能够尽可能的最大化。

虚拟化的技术原理是什么?

本质上,虚拟化技术通过了硬件或者软件提供了资源模拟资源隔离两个最基础的能力,在此基础上可以构建丰富的功能,并不断优化性能与稳定性体验。

  • 资源模拟

    宿主机的某些硬件资源具有全局性和唯一性,因此虚拟机不能直接访问,否则会影响宿主机的稳定性。当虚拟机执行访问该资源的指令时,Hypervisor会通过截获模拟的方式完成虚拟机的指令执行。设备模拟的实现机制可以从两个维度分类。

    • 从实现主体来看,分为软件虚拟化和硬件辅助虚拟化。前者完全由软件模拟设备行为,存在一定的性能损耗,后者将功能部分卸载或者完全卸载到硬件,因此有更好的性能。

    • 从Guest是否感知的视角来看,分为全虚拟化和半虚拟化。前者无需客户感知底层是物理机和虚拟机,后者可以让Guest明确感知底层的虚拟化架构和能力,因此可以对设备模拟的实现进行优化或者模拟现实不存在的设备,带来更好的虚拟化性能。

  • 资源隔离

    资源隔离是云计算提供多租能力的基础,利用虚拟化技术可以提供CPU隔离、内存隔离、存储隔离和网络隔离的能力,确保客户的业务数据安全。

    • CPU和内存隔离一般基于CPU厂商提供的硬件辅助虚拟化能力来实现。以Intel平台为例,通过VT-x技术为每个vCPU构建独立的运行状态集,不同虚拟机之间无法获取对方的vCPU状态,也无法影响宿主机的运行。通过EPT(Extended Page Tables)技术为每个虚拟机构建两级页表翻译机制,第二级页表只能由Hypervisor来创建,确保不同虚拟机可以访问的物理内存被严格隔离。

    • 存储隔离和网络隔离有多种实现方式。阿里云基于CIPU芯片实现了云盘和弹性网卡的硬件卸载,通过IOMMU保证了云盘、网卡的IO请求只能访问所属虚拟机的内存。存储虚拟化系统提供虚拟机粒度的IO通道、存储协议栈、存储介质全链路的数据和QoS隔离能力。网络虚拟化系统支持虚拟机粒度的网络带宽、PPS(Packets Per Second)的QoS(Quality of Service)隔离。不同虚拟网络(VPC)内的虚拟机实例处于不同的路由平面无法直接进行通信,从而保证了VPC的隔离性。

阿里云如何帮助您实现虚拟化?

阿里云以CIPU为底座:

  • 通过软硬件协同设计,打造自研的Dragonfly Hypervisor,提供硬件级安全隔离和接近物理机的算力性能。

  • 通过对存算分离架构的存储硬件加速,提供高性能云盘和存储服务。

  • 通过对高带宽物理网络进行硬件加速,为客户提供大规模高性能虚拟网络。

阿里云在计算、存储、网络虚拟化方向持续投入与创新,努力为客户提供安全、稳定、极具性价比的产品与解决方案。

相关产品

无论是轻量化的云服务还是大规模的分布式业务,阿里云都提供了丰富的产品谱系来满足广泛行业客户的多样化负载需求,您可以从资源类型、容量规划、弹性管理、成本控制等维度选择适合自己的计算、存储、网络产品。

  • 云服务器 ECS,帮助您实现基础架构、CPU、内存、存储、网络的灵活资源配置。

  • 弹性容器实例 ECI,帮助您以Serverless的方式安全运行自定义的容器业务。