为什么需要虚拟化,虚拟化技术原理?

用户投稿
信Bm00751
虚拟化技术提供了更灵活、高效和可管理的计算环境,适应了现代计算需求的变化和复杂性。其必要性体现在以下几个方面。提升资源利用率、屏蔽硬件差异、提供资源隔离能力、部署的灵活性。

为什么需要虚拟化?

虚拟化技术提供了更灵活、高效和可管理的计算环境,适应了现代计算需求的变化和复杂性。其必要性体现在以下几个方面。提升资源利用率、屏蔽硬件差异、提供资源隔离能力、部署的灵活性。

实际应用中,虚拟化和容器化可以互相为正交关系。即客户可以购买虚拟机并在虚拟机上部署自己的容器化业务,也可以直接购买弹性容器实例 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的隔离性。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论