【云计算基础知识2】计算虚拟化

这篇具有很好参考价值的文章主要介绍了【云计算基础知识2】计算虚拟化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

B站视频

虚拟化技术:计算虚拟化、存储虚拟化、网络虚拟化。

一、计算虚拟化介绍

  • 计算虚拟化的分类及作用

1、 CPU虚拟化:保障CPU资源的合理调度以及VM上的指令能够正常高效的运行。
2、 内存虚拟化:保障内存空间的合理分配、管理、隔离以及高效可靠的使用。
3、 I/O虚拟化:保障VM的IO操作隔离与正常高效地执行。

  • 常见的计算服务架构

虚拟化只是底层硬件与上层OS/app解耦,提供可灵活分配地技术资源池地底层技术。要想实现虚拟机的创建与管理,需要与其他组件(镜像、调度、存储、网络等)协同工作才能完成,并提供完整的计算服务。

  1. OpenStack Nova(开源)

开源的云平台,通过不同同组件提供计算、存储、网络、数据库等多种云服务。其中计算服务由Nova组件提供,通过nova-API与其他组件通信,通过nova-compute对接不同的虚拟层提供计算虚拟化服务

Nova架构:
【云计算基础知识2】计算虚拟化,云计算,云计算

  1. 阿里云ECS架构(厂商私有)

云服务器ECS是阿里云提供的基于KVM虚拟化(上一节提到的全虚拟化<=>混合虚拟化)的弹性计算服务,建立在阿里云飞天(Apsara)分布式操作系统上,实现计算资源的即开即用和弹性伸缩。

请求的主要调用流程:OpenAPI --> 业务层 --> 控制系统 --> 宿主机服务。
【云计算基础知识2】计算虚拟化,云计算,云计算

  1. 腾讯云CVM架构

云服务器CVM(Cloud Virtual Machine)是腾讯提供的基于KVM虚拟化的弹性计算服务,建立在腾讯云分布式资源管理调度系统vStation上(有自己的分布式系统)。

请求调用流程为:API Server --> vStation --> 服务器集群。
【云计算基础知识2】计算虚拟化,云计算,云计算

二、CPU虚拟化

在物理机(宿主机)中通过进程或线程这种纯软件的方式模拟出假的CPU。

通过CPU虚拟化可以将一个物理CPU发给不同的虚拟机使用,但物理CPU核数要大于虚拟CPU总核数,因为虚拟出来的每颗CPU实际上就是一个线程或进程,虚拟CPU过多时,需要进行线程/进程的切换,浪费时间。

  • CPU虚拟化的计算

总资源 = 服务器CPU个数 * 单个CPU的核数kernel * 线程(超线程为2,单线程为1,一般为超线程)

eg. 某个服务器有四个主频为3.0GHz的CPU,每个CPU四核,超线程。
∴ 服务器总共可以虚拟出来的VCPU = 4 * 4 * 2 = 32个;
∴ 总资源为 32 * 3.0GHz = 96GHz。

一般多个虚拟机之间可以复用一个物理CPU,因此单台服务器上的虚拟机可以使用的VCPU大于总的VCPU数量。

  • CPU Qos(服务质量)

CPU服务质量,用来控制虚拟机使用CPU资源的大小。

主要分为三类:份额、预留、限额。
(1) CPU资源限额:控制虚拟机占用物理资源使用的上限
(2) CPU资源份额:定义了多台虚拟机在竞争物理CPU资源时,需要按比例分配计算资源;
(3) CPU预留资源:定义了多台虚拟机在竞争物理CPU时,每台虚拟机最低分配的计算资源。

在分配时,最先看预留,再看份额,最后看限额。

eg. 一个2.8GHz的单物理机,三台VM:A、B、C,份额分别是:1000、2000、4000,预留为:700MHz、0MHz、0MHz。思考:满CPU运行时每台资源。

解:先看预留:A有预留700MHz,B、C没有预留
   ∴ A = 700MHz;
   再看份额,由于A有预留,已经分配,因此不看A,剩下B、C比例为2 : 4 = 1 : 2;
   ∴ B = (2.8GHz - 700MHz) * (1/3) = 700MHz;
      C = (2.8GHz - 700MHz) * (2/3) = 1.4GHz;
  • NUMA(Non Uniform Memory Access Architecture)

非统一内存访问体系结构,提高物理服务器性能的一种技术。

原理:将物理服务器的CPU和内存资源分到多个node上,由于node内部可以独立工作,node内的内存访问效率最高。NUMA则保证了一个VM上的VCPU尽量分配到同一个node中的物理CPU上,如果一台VM的VCPU跨node访问内存的话,访问的延时会增加。

【云计算基础知识2】计算虚拟化,云计算,云计算
保证VM1只占用CPU1,而不会占用CPU1的一部分再占用CPU2的一部分。

三、内存虚拟化

目标:保障内存空间合理分配、管理以及隔离、高效地运行。

内存虚拟化抽象了物理内存(32位机寻址空间2^32,64位机寻址空间2^64)。底层有机制将虚拟地址根据页表映射成相应的物理地址。

【云计算基础知识2】计算虚拟化,云计算,云计算

  • 内存虚拟化类型

1、全虚拟化 <==> 影子页表技术SPT(Shadow Page Table)
为每个VM维护一个SPT,记录虚拟化内存与物理地址内存的映射关系。VMM将SPT提交给CPU的内存管理单元MMU(地址转换单元)进行地址转换,VM的页表无需改动。
VM的页表固定,分配的物理内存也固定。

2、半虚拟化 <==> 页表写入法
为每个VM创建一个页表并向VMM注册。VM运行过程中VMM不断管理和维护该页表,确保VM能直接访问到合适的地址。
VM页表不固定,可动态修改,也可动态伸缩(物理内存不够可再分配,然后修改VM页表)。

3、硬件辅助内存虚拟化 <==> Intel扩展页表EPT(Extend Page Table) 和 AMD嵌入页表NPT(Nested Page Table)
全虚拟化和半虚拟化都增加了一个页表,相当于增加了一个中间商,效率不高
EPT/NPT是MMU的一个扩展,CPU硬件的一个特性(自带的,嵌入了CPU),通过硬件方式实现GuestOs物理内存 --> HostOS物理内存的地址转换,比上述开销低、性能高。

  • 内存复用

在服务器物理内存一定的情况下,通过综合运用内存复用单项技术(内存气泡、内存共享、内存交换)对内存进行分时复用。
通过内存复用,使得虚拟机内存规格总和大于服务器内存规格总和,提高服务器中虚拟机密度。(逻辑意义上6G --> 9G)

内存复用Qos:
(1) 内存预留:VM预留最低的物理内存;
(2) 内存份额:适用资源复用场景,按比例分配内存资源。

常见内存复用技术:

1、内存气泡

虚拟化层将较空闲的VM内存,分配给内存使用较高的虚拟机,提高物理内存利用率。但所有VM使用的分配内存总量不能超过该服务器的物理内存总量。
内存的回收和分配由虚拟化层实现,虚拟机上的应用无感知。

2、内存交换

将外部存储虚拟成内存给VM使用(其中存储的是不常用的),将VM上长时间未访问的数据存放到外部存储上,建立映射关系。VM再次访问这些数据时,通过映射关系再与内存上的数据进行交换。

3、内存共享

VM对共用的内存(共享数据内容为0的内存页)做只读操作,当有写操作时,运用写时复制(开辟另一块空间,并修改映射)。

eg. 两台VM中有1/3的信息是一样的,就用共享内存,其余2/3不一样的存放在自己的内存中。

内存复用eg. 物理内存6G,部署三台虚拟机,未开启内存复用时,每台VM只各分配了2G内存(1:1:1分配),开启内存虚拟化,通过内存复用可将物理的6G变成逻辑上的9G,这样每台虚拟内存3G(多出来的1G是通过气泡(空闲)、交换(外存)、共享(相同的)虚拟出来的)。
【云计算基础知识2】计算虚拟化,云计算,云计算

四、I/O虚拟化

目标:保障虚拟机的IO操作隔离与正常高效的运行。

假设大部分计算服务都迁移到了虚拟化环境中(好处:资源共享且减少开销),而虚拟机要访问外围设备(磁盘、网络等,且即使在非虚拟化环境中访问外围设备也需要技术–>应用程序使用系统调用),因此到达虚拟机层面,要达到硬件的访问速度很困难,如何处理虚拟化IO呢?

方法:
(1) 全虚拟化:通过软件模拟的形式模拟IO设备(性能不高);
(2) 半虚拟化:由Hypervisor提供资源调用接口。VM通过特定的调用接口与Hypervisor通信,完成获取完整IO资源控制操作(需要修改内核以及驱动程序,存在移植性和适应性问题,导致其使用受限。即只能在当前环境中运行。但性能高);
(3) 硬件辅助虚拟化(I/O直通技术):通过硬件辅助,使虚拟机不用通过VMM直接访问物理设备
–>常用SR-IOV(Single Root I/O Virtualization)单根I/O虚拟化标准。该技术可以直接虚拟出128~512个网卡,让虚拟机都拿到一块独立的网卡,直接使用I/O资源。

  • I/O环

非密集I/O:1s都的次数很少;
密集I/O:1s读的次数多但每次读的内容少(宽度小)。

I/O环适配功能主要用来提升大块(44K以上)多队列(32队列深度以上)类型的IO密集型业务中I/O的性能(就是将存储设备资源利用率提高)。

用户可以通过开启I/O环适配功能,提升I/O性能。

五、常见集群策略

集群(cluster):计算机系统,通过一组计算机或服务器的软硬件连接起来,高度紧密地协作完成计算工作。

在客户端看来只有一台设备为其提供服务,但实际上它是一群设备地集合,只不过他们提供的服务一样。

好处:集群中单个计算机称为节点,通过局域网连接,利用多个计算机进行并行计算,获得很高的计算速度;也可以用用多个计算机做备份,提高可靠性

  • 虚拟机的HA机制

HA(High Availability):高可用性。一种让服务中断尽可能少的技术。将多台主机组建成一个故障转移集群,运行在集群上的服务(or VM)不会因为单台主机的故障而停止。

好处:提升故障恢复速度(秒级),降低业务中断时间,保证业务连续性,实现一定的系统自维护。
【云计算基础知识2】计算虚拟化,云计算,云计算

  • 动态资源调度(DRS)

DRS(Dynamic Resource Scheduling)动态资源调度:根据对资源池资源负载的动态监控,合理触发均匀分配规则,实现资源池中的物理服务器之间重新分配虚拟机的目的。–> 负载均衡,削峰填谷

当前物理服务器上负载过大时,通过DRS将虚拟机迁移到其他负载较轻的物理服务器上;当虚拟机负载过大使,DRS将为资源池中的物理服务器重新分配虚拟机可使用的资源,在多个虚拟机之间智能地分配可用资源。
【云计算基础知识2】计算虚拟化,云计算,云计算

  • 分布式电源管理(DPM)

DPM(Distributed Power Management):分布式电源管理,用于业务较轻(负载较小)时,将虚拟机动态“集中”到集群中的少部分主机上,将其他主机待机,节省电力消耗,等到业务量(负载)较大时,再重新唤醒之前待机的主机。

【云计算基础知识2】计算虚拟化,云计算,云计算
执行DPM策略的前提是开启DRS策略。DMP策略依赖DRS进行虚拟机的转移。

  • 集成存储器控制器(IMC)

IMC(Intergrated Memory Controller):集成存储器控制器。设置IMC策略,使虚拟机可以在不同CPU类型的主机之间进行切换,确保主机向虚拟机提供相同的CPU功能集。即使主机的实际CPU不同,也不会因为兼容性迁移失败。

不建议开启IMC,最好将相同的CPU放在一个集群里。

六、华为FusionCompute

FusionCompute是华为云操作系统(FusionSphere)的一款基础软件,主要负责底层硬件资源(计算、存储、网络)的虚拟化。通过统一的接口,对虚拟出来的资源进行集中的调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性。

【云计算基础知识2】计算虚拟化,云计算,云计算
组成:
(1) 计算节点代理CNA(Computing Node Agent):其中包含VNA(Virtual Node Agent)虚拟节点代理,VNA主要负责计算、存储、网络虚拟化的配置以及管理。CNA相当于安装在物理服务器上的OS,主要提供虚拟计算功能,管理计算节点上的虚拟机,管理计算节点上的计算、存储、网络资源。
(2) 虚拟资源管理器VRM(Virtual Resource Manager):FC的管理单元,一般安装在虚拟机上,也可以以ISO(镜像)方式安装在物理服务器上,主要提供对资源的集中管理,并提供统一的维护操作接口。

CNA一般只有一个,VRM可以是多个。即CNA虚拟出来资源,VRM管理资源。

  • 架构

【云计算基础知识2】计算虚拟化,云计算,云计算文章来源地址https://www.toymoban.com/news/detail-763680.html

到了这里,关于【云计算基础知识2】计算虚拟化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 基础知识解析:容器与传统虚拟化对比:资源利用、启动时间、隔离性和部署效率

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(68)
  • 云计算基础-计算虚拟化-内存虚拟化

    内存在物理上是由内存卡提供的,也就是我们俗称的内存条,内存条提供了物理内存。 在物理内存之上还有虚拟内存,虚拟内存操作系统给程序分配的一段连续的内存,属于逻辑上的概念。 虚拟内存和物理内存之间会有一个映射关系,这个映射关系我们称之为页表,通过页

    2024年02月20日
    浏览(60)
  • 云计算基础-计算虚拟化-CPU虚拟化

    在CPU的工作原理中,CPU有不同的指令集,如下图,CPU有4各指令集:Ring0-3,指令集是在服务器上运行的所有命令,最终都会在CPU上执行,但是CPU并不是说所有的命令都是一视同仁的,它会把命令分为不同的指令集 Ring0指令集称之为内核态指令集,改啊指令集里面啊运行的主要

    2024年02月20日
    浏览(46)
  • 云计算基础-虚拟化概述

    虚拟化是一种资源管理技术,能够将计算机的各种实体资源(如CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来并可供分割、组合为一个或多个逻辑上的资源。这种技术通过在计算机硬件上创建一个抽象层,将单台计算机的硬件元素(处理器、内存、存储等

    2024年02月19日
    浏览(40)
  • 云计算基础-网络虚拟化

    什么是虚拟交换机 虚拟交换机是一种运行在虚拟化环境中的网络设备,其运行在宿主机的内存中,通过软件方式在宿主机内部实现了部分物理交换机的功能,如 VLAN 划分、流量控制、QoS 支持和安全功能等网络管理特性 比如有两台服务器,他们之间想要通信,需要一台物理交

    2024年02月20日
    浏览(38)
  • 云计算基础-虚拟化技术的发展和详细研究

    为了提高大型机的资源利用率和效率。在 20 世纪 60 年代,大型机是昂贵而稀缺的计算资源,为了让多种业务应用能够共享并充分利用大型机的集中化计算能力,IBM 等公司开发了虚拟化技术,将大型机划分为多个逻辑分区,每个分区可以运行一个独立的操作系统和应用。 为了

    2024年02月06日
    浏览(49)
  • 服务器虚拟化及云计算基础实验

    软件环境:Windows 10 X64 16G及以上 虚拟机环境:VMware workstation 16 Pro以上版本 or Virtual Box 6.1以上版本 ps:这是课堂老师布置的作业,觉得挺有意思,课后也花了点时间去实现,觉得挺有意义的,便记录下来。如果有做的不对的地方欢迎各位指正! 实训要求 在部分极端环境下,尽

    2023年04月08日
    浏览(48)
  • 云计算基础-存储虚拟化(深信服aSAN分布式存储)

    分布式存储是利用虚拟化技术 “池化”集群存储卷内通用X86服务器中的本地硬盘,实现服务器存储资源的统一整合、管理及调度,最终向上层提供NFS、ISCSI存储接口,供虚拟机根据自身的存储需求自由分配使用资源池中的存储空间。 每秒钟的IOPS数,该指标主要用于评价小块

    2024年02月19日
    浏览(40)
  • 云计算:从基础架构原理到最佳实践之:虚拟化技术与容器化

    作者:禅与计算机程序设计艺术 作为一名资深软件工程师、架构师、CTO或者云计算相关技术人员,如果想要提升自己对于云计算的理解和掌握能力,那么文章将会非常有帮助。文章将从云计算的最底层——基础架构开始介绍,向高级用户展示如何利用云服务提供商提供的基础

    2024年02月08日
    浏览(48)
  • 【虚拟化安全】虚拟化安全知识全攻略:保障云端数据安全

    通过虚拟化技术使不同用户的数据可以存储在物理存储上。这种方式不但可以节约存储空间,还可以进行统一管理,降低管理费用。随着虚拟化技术的大规模使用,组织机构数据中心的基础架构、运维管理等都发生重大变化,面临的安全风险也随之增加,变得更加复杂。 1.虚

    2024年03月24日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包