


点击上方蓝字关注我们



计算虚拟化基本概念
计算虚拟化是一种通过软件来实现多个虚拟机(VM)能够共享同一个物理硬件资源,从而提高资源的利用率和灵活性的技术。虚拟化技术的基本目标是通过将物理资源抽象成多个逻辑资源,提供更灵活、高效的资源管理和分配。
CPU 虚拟化
CPU虚拟化的基本原理是通过软件层(称为虚拟机管理程序或hypervisor)在物理CPU和虚拟机(VM)之间进行调度和管理,使多个虚拟机能够共享同一个物理CPU。
CPU虚拟化的工作机制


虚拟机管理程序(Hypervisor):Hypervisor是管理虚拟机的核心软件,它运行在物理硬件之上,负责将物理CPU的计算资源分配给多个虚拟机。Hypervisor有两种类型:
类型1(裸金属Hypervisor):直接运行在硬件上,没有底层操作系统。例如:VMware ESXi、Microsoft Hyper-V。
类型2(托管Hypervisor):运行在操作系统之上,通过操作系统管理硬件资源。例如:VMware Workstation、Oracle VirtualBox。
虚拟CPU(vCPU):每个虚拟机被分配一个或多个虚拟CPU(vCPU),这些vCPU由Hypervisor映射到物理CPU上。当虚拟机需要执行指令时,Hypervisor将这些指令翻译并调度到物理CPU上执行。
CPU管理:Hypervisor管理多个虚拟机对物理CPU的访问。当一个虚拟机运行时,Hypervisor会保存该虚拟机的CPU状态,并在切换到另一个虚拟机时恢复该虚拟机的状态。
比如一台物理服务器有两个物理CPU,可以运行四个虚拟机(VM1、VM2、VM3、VM4),每个虚拟机有一个vCPU。Hypervisor会调度这四个vCPU在两个物理CPU上运行,通过Hypervisor确保每个虚拟机都有机会执行其指令。这样,物理CPU的资源被高效利用,同时虚拟机之间相互隔离,不会干扰彼此的操作。
内存虚拟化
内存虚拟化的基本原理是通过虚拟机管理程序(Hypervisor)对物理内存进行抽象和管理,使多个虚拟机能够共享同一个物理内存池,同时每个虚拟机认为自己拥有独立的内存空间。
内存虚拟化的工作机制


虚拟内存(Virtual Memory):每个虚拟机都拥有自己的虚拟内存空间,Hypervisor将这些虚拟内存映射到物理内存。虚拟机操作系统通过其虚拟内存空间进行内存操作,而实际的物理内存由Hypervisor管理。
内存页表(Page Tables):虚拟机操作系统维护自己的页表,将虚拟地址映射到物理地址。Hypervisor也维护一个二级页表,将虚拟机的物理地址映射到实际的物理内存地址。这种双层映射确保了内存的隔离和共享。
内存超额认购(Overcommitment):Hypervisor可以分配给虚拟机的虚拟内存总和超过物理内存总量,这是基于多数虚拟机不会同时使用其全部分配的内存。Hypervisor通过内存交换(swapping)和压缩等技术来管理这种超额认购。
比如一台物理服务器有16 GB的物理内存,运行四个虚拟机(VM1、VM2、VM3、VM4),每个虚拟机分配了8 GB的虚拟内存。尽管分配的总虚拟内存为32 GB(超出物理内存),Hypervisor通过管理和优化确保所有虚拟机能够运行。Hypervisor监控每个虚拟机的内存使用情况,使用内存交换技术将不活跃的内存页移出到磁盘,从而在物理内存中腾出空间给活跃的虚拟机使用。
CPU虚拟化和内存虚拟化是计算虚拟化的核心技术,它们通过Hypervisor将物理资源抽象成虚拟资源,提供高效的资源利用和管理。CPU虚拟化通过调度和Hypervisor管理多个虚拟机对物理CPU的使用,而内存虚拟化通过页表映射和内存管理技术实现虚拟机对物理内存的共享和隔离。
存储虚拟化
存储虚拟化是一种将多个物理存储设备抽象为一个单一的逻辑存储资源的技术。它通过软件来管理和呈现存储资源,使用户可以方便地访问和管理存储设备,而无需关心底层物理设备的细节。
存储虚拟化的工作机制


抽象层:存储虚拟化通过在物理存储设备和用户之间引入一个抽象层,隐藏物理存储设备的复杂性。这使得不同类型和品牌的存储设备可以统一管理和使用。
逻辑卷管理:存储虚拟化系统将物理存储设备划分成多个逻辑卷(Logical Volume)。用户和应用程序访问这些逻辑卷,而实际的存储数据则分布在多个物理设备上。
数据分布:虚拟化层管理数据在物理设备上的分布,提供数据的冗余、镜像和快照功能,以提高数据的可用性和安全性。
动态资源分配:存储虚拟化允许动态调整存储资源的分配,按需扩展或缩减存储容量,提高资源利用率。
比如一个企业拥有多种品牌和类型的存储设备,包括硬盘阵列、SSD、SAN(存储区域网络)等。通过存储虚拟化,这些不同设备可以被整合成一个统一的存储池。管理员可以创建逻辑卷并分配给不同的应用程序,而不需要关心底层存储设备的具体情况。存储虚拟化系统会自动管理数据的分布、镜像和备份,提高存储系统的可靠性和灵活性。
网络虚拟化
网络虚拟化是通过软件将物理网络资源抽象为多个逻辑网络的技术。它使得网络资源可以按需配置和管理,提供更高的灵活性和效率。
网络虚拟化的工作机制


虚拟网络:网络虚拟化将物理网络设备(如交换机、路由器等)和传输介质抽象为多个虚拟网络,每个虚拟网络可以独立配置和管理。
网络功能虚拟化(NFV):网络虚拟化包含将传统网络设备的功能(如防火墙、负载均衡器等)以软件形式实现,并运行在通用硬件上。这减少了对专用网络硬件的依赖,提高了网络灵活性和可扩展性。
软件定义网络(SDN):SDN通过将网络控制层与转发层分离,使网络管理员可以通过集中控制器以编程方式管理网络流量。这种集中管理方式简化了网络配置和管理,提高了网络资源的利用率。
虚拟交换机和路由器:在虚拟化环境中,虚拟交换机和路由器用于连接和管理虚拟机之间的网络流量。这些虚拟网络设备可以像物理设备一样配置和管理,但它们运行在物理主机的虚拟化层中。
比如一个数据中心通过网络虚拟化技术,将其物理网络设备虚拟化,创建多个虚拟网络。每个虚拟网络可以服务于不同的部门或应用程序,独立配置和管理。通过NFV,数据中心可以使用通用硬件实现网络功能,如防火墙和负载均衡器,而不需要购买昂贵的专用设备。通过SDN,网络管理员可以集中控制和优化整个数据中心的网络流量,提高网络性能和资源利用率。
存储虚拟化和网络虚拟化是现代数据中心和云计算环境中的关键技术。存储虚拟化通过抽象物理存储设备,提高了存储资源的管理效率和灵活性。网络虚拟化通过将物理网络资源抽象和软件化,提高了网络配置的灵活性和管理效率。这些虚拟化技术共同构建了一个高效、灵活的IT基础架构,支持现代企业的各种应用需求。
非常感谢您读到这里!如果您觉得这篇文章对您有帮助,请不要忘记关注公众号。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库)技术,以及更多实用的技能干货。
点击页面右上角的“关注”按钮,不错过任何精彩内容!

扫码获取联系方式







