分享到:
发表于 2024-09-13 14:23:25 楼主 | |
什么是虚拟化? 虚拟化是在一台物理计算机上同时运行多个虚拟操作系统实例的技术。虚拟操作系统上运行的这些实例被称为虚拟机(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来创建,确保不同虚拟机可以访问的物理内存被严格隔离。 存储隔离和网络隔离有多种实现方式。 |
|
楼主热贴
个性签名:无
|
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见