我爱普洱茶 发表于 2024-7-16 00:42:26

【云盘算基础知识2】盘算假造化

B站视频


假造化技术:盘算假造化、存储假造化、网络假造化。
一、盘算假造化介绍



[*]盘算假造化的分类及作用
1、 CPU假造化:保障CPU资源的合理调度以及VM上的指令能够正常高效的运行。
2、 内存假造化:保障内存空间的合理分配、管理、隔离以及高效可靠的利用。
3、 I/O假造化:保障VM的IO操作隔离与正常高效地实行。


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

[*]OpenStack Nova(开源)
   开源的云平台,通过差别同组件提供盘算、存储、网络、数据库等多种云服务。此中盘算服务由Nova组件提供,通过nova-API与其他组件通讯,通过nova-compute对接差别的假造层提供盘算假造化服务
Nova架构:
https://img-blog.csdnimg.cn/direct/092481dc842b4011a24e16bf59a8cf3a.png

[*]阿里云ECS架构(厂商私有)
   云服务器ECS是阿里云提供的基于KVM假造化(上一节提到的全假造化<=>混合假造化)的弹性盘算服务,创建在阿里云飞天(Apsara)分布式操作系统上,实现盘算资源的即开即用和弹性伸缩。
请求的重要调用流程:OpenAPI --> 业务层 --> 控制系统 --> 宿主机服务。
https://img-blog.csdnimg.cn/direct/7c809775466c4459865c05ba48964035.png

[*]腾讯云CVM架构
   云服务器CVM(Cloud Virtual Machine)是腾讯提供的基于KVM假造化的弹性盘算服务,创建在腾讯云分布式资源管理调度系统vStation上(有本身的分布式系统)。
请求调用流程为:API Server --> vStation --> 服务器集群。
https://img-blog.csdnimg.cn/direct/a8758effad224b44911208d753e8d835.png
二、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访问内存的话,访问的延时会增长。
https://img-blog.csdnimg.cn/direct/cf4c9c749f174350ad892226943c27da.png
包管VM1只占用CPU1,而不会占用CPU1的一部分再占用CPU2的一部分。
三、内存假造化

目的:保障内存空间合理分配、管理以及隔离、高效地运行。
   内存假造化抽象了物理内存(32位机寻址空间2^32,64位机寻址空间2^64)。底层有机制将假造地址根据页表映射成相应的物理地址。
https://img-blog.csdnimg.cn/direct/fb073f5ebb7a4a9b832bea26afc50719.png


[*]内存假造化范例
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是通过气泡(空闲)、交换(外存)、共享(雷同的)假造出来的)。
https://img-blog.csdnimg.cn/direct/736276d7ce884f46b9d53d95fa1988b0.png
四、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)不会因为单台主机的故障而制止。
好处:提升故障恢复速度(秒级),降低业务中断时间,包管业务连续性,实现一定的系统自维护。
https://img-blog.csdnimg.cn/direct/c3066f9e6d2d484ab2c4fa7b75385e80.png


[*]动态资源调度(DRS)
   DRS(Dynamic Resource Scheduling)动态资源调度:根据对资源池资源负载的动态监控,合理触发均匀分配规则,实现资源池中的物理服务器之间重新分配假造机的目的。–> 负载均衡,削峰填谷
当前物理服务器上负载过大时,通过DRS将假造机迁移到其他负载较轻的物理服务器上;当假造机负载过大使,DRS将为资源池中的物理服务器重新分配假造机可利用的资源,在多个假造机之间智能地分配可用资源。
https://img-blog.csdnimg.cn/direct/db6c237ec715473fad481071f1cb035e.png


[*]分布式电源管理(DPM)
   DPM(Distributed Power Management):分布式电源管理,用于业务较轻(负载较小)时,将假造机动态“集中”到集群中的少部分主机上,将其他主机待机,节流电力斲丧,比及业务量(负载)较大时,再重新唤醒之前待机的主机。
https://img-blog.csdnimg.cn/direct/5822f37180004a349c23c35e55da8ecf.png
实行DPM策略的条件是开启DRS策略。DMP策略依赖DRS进行假造机的转移。


[*]集成存储器控制器(IMC)
   IMC(Intergrated Memory Controller):集成存储器控制器。设置IMC策略,使假造机可以在差别CPU范例的主机之间进行切换,确保主机向假造机提供雷同的CPU功能集。即使主机的实际CPU差别,也不会因为兼容性迁移失败。
不建议开启IMC,最好将雷同的CPU放在一个集群里。
六、华为FusionCompute

   FusionCompute是华为云操作系统(FusionSphere)的一款基础软件,重要负责底层硬件资源(盘算、存储、网络)的假造化。通过统一的接口,对假造出来的资源进行集中的调度和管理,从而降低业务的运行成本,包管系统的安全性和可靠性。
https://img-blog.csdnimg.cn/direct/5540037013614a668270fa3755bb195b.png
组成:
(1) 盘算节点代理CNA(Computing Node Agent):此中包罗VNA(Virtual Node Agent)假造节点代理,VNA重要负责盘算、存储、网络假造化的设置以及管理。CNA相称于安装在物理服务器上的OS,重要提供假造盘算功能,管理盘算节点上的假造机,管理盘算节点上的盘算、存储、网络资源。
(2) 假造资源管理器VRM(Virtual Resource Manager):FC的管理单元,一样平常安装在假造机上,也可以以ISO(镜像)方式安装在物理服务器上,重要提供对资源的集中管理,并提供统一的维护操作接口。
CNA一样平常只有一个,VRM可以是多个。即CNA假造出来资源,VRM管理资源。


[*]架构
https://img-blog.csdnimg.cn/direct/9eae91004e354f16b58f7fbd7ad23141.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【云盘算基础知识2】盘算假造化