超融合解决方案完整版本.docx
- 文档编号:7179483
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:45
- 大小:1.31MB
超融合解决方案完整版本.docx
《超融合解决方案完整版本.docx》由会员分享,可在线阅读,更多相关《超融合解决方案完整版本.docx(45页珍藏版)》请在冰豆网上搜索。
超融合解决方案完整版本
超融合解决方案
第1章、前言
1.1IT时代的变革
20世纪90年代,随着Windows的广泛使用及Linux服务器操作系统的出现奠定了x86服务器的行业标准地位,然而x86服务器部署的增长带来了新的IT基础架构和运作难题,包括:
基础架构利用率低、物理基础架构成本日益攀升、IT管理成本不断提高以及对关键应用故障和灾难保护不足等问题。
X86服务器虚拟化技术的出现,通过将x86系统转变成通用的共享硬件基础架构,充分挖掘硬件的潜力,提高硬件的利用效率,降低硬件和运营成本,并且简化运维降低管理成本,最终帮助用户把更多的时间和成本转移到对业务的投入上。
随着云计算和虚拟化技术向构建新一代数据中心方向发展,关键以虚拟化为基础,实现管理以及业务的集中,对数据中心资源进行动态调整和分配,重点满足企业关键应用向X86系统迁移对于资源高性能、高可靠、安全性和高可适应性上的要求,同时提高基础架构的自动化管理水平,确保满足基础设施快速适应业务的商业诉求,支持企业应用云化部署。
云计算并不是一种新的技术,而是在一个新理念的驱动下产生的技术组合。
在云计算之前,企业部署一套服务,需要经历组网规划,容量规划,设备选型,下单,付款,发货,运输,安装,部署,调试的整个完整过程。
这个周期在大型项目中需要以周甚至月来计算。
在引入云计算后,这整个周期缩短到以分钟来计算。
IT业有一条摩尔定律,芯片速度容量每18个月提升一倍。
同时,IT行业还有一条反摩尔定律,所有无法追随摩尔定律的厂家将被淘汰。
IT行业是快鱼吃慢鱼的行业,使用云计算可以提升IT设施供给效率,不使用则会拖慢产品或服务的扩张脚步,一步慢步步慢。
云计算当然还会带来别的好处,比如提升复用率缩减成本,降低能源消耗,缩减维护人力成本等方面的优势,但在反摩尔定律面前,已经显得不是那么重要。
业界关于云计算技术的定义,是通过虚拟化技术,将不同的基础设施标准化为相同的业务部件,然后利用这些业务部件,依据用户需求自动化组合来满足各种个性化的诉求。
云着重于虚拟化,标准化,和自动化。
的超融合架构是一款成熟的Iaas层的云计算解决方案,除满足上面所述的虚拟化,标准化和自动化诉求外,秉承公司产品的优秀基因,向您提供简单易用,安全可靠的产品。
本文档向您讲述超融合架构解决方案中所用到的相关技术,通过阅读本文档,您能够了解到:
云的虚拟化,标准化,易用性,易管理这些关键技术是如何在的超融合架构解决方案中体现的;超融合架构解决方案是如何做到简单,安全可靠的;超融合解决方案所包含的部件,所涉及的主要技术领域,使用的主要的一些技术;针对超融合架构提供的各种技术选择,您怎样使用它们来满足您的业务诉求。
1.2白皮书总览
本书介绍的内容大致如下:
第一章、在前言部分,给您对云计算,云平台有一个概括性的认识,并对本文档的阅读给出指导。
第二章、讲述超融合架构中的主要功能模块,各个功能模块的技术细节介绍。
第三章、向您介绍超融合架构中的技术在为客户带来的核心价值。
第四章、分享超融合架构在客户中的实际应用场景,并给出超融合架构产品的体验途径,非常欢迎您来试用。
第2章、超融合技术架构
1.3超融合架构概述
1.3.1超融合架构的定义
超融合基础架构,这是一种将计算、网络和存储等资源作为基本组成元素,根据系统需求进行选择和预定义的一种技术架构,具体实现方式上一般是指在同一套单元节点(x86服务器)中融入软件虚拟化技术(包括计算、网络、存储、安全等虚拟化),而每一套单元节点可以通过网络聚合起来,实现模块化的无缝横向扩展(scale-out),构建统一的资源池。
1.4超融合架构组成模块
1.4.1.1系统总体架构
超融合架构图
超融合架构在基于底层基础架构(标准的X86硬件)上将计算、存储、网络、安全软件化,通过这种软件化的方式,即计算虚拟化aSV、存储虚拟化aSAN、网络虚拟化aNet,构建了数据中心里所需的最小资源单元,通过资源池中的最小单元,提供了数据中心IT基础架构中所需的全部资源。
1.4.1.2aSV计算虚拟化平台
1.4.1.2.1概述
计算资源虚拟化技术就是将通用的x86服务器经过虚拟化软件,对最终用户呈现标准的虚拟机。
这些虚拟机就像同一个厂家生产的系列化的产品一样,具备系列化的硬件配置,使用相同的驱动程序。
虚拟化技术起源于大型机,最早可以追溯到上世纪六、七十年代大型机上的虚拟分区技术,即允许在一台主机上运行多个操作系统,让用户尽可能充分地利用昂贵的大型机资源。
随着技术的发展和市场竞争的需要,虚拟化技术向小型机或UNIX服务器上移植,只是由于真正使用大型机和小型机的用户还是少数,加上各厂商产品和技术之间的不兼容,使得虚拟化技术不太被公众所关注。
(注:
由于X86架构在设计之初并没有考虑支持虚拟化技术,它本身的结构和复杂性使得在其之上进行虚拟化非常困难,早期的X86架构并没有成为虚拟化技术的受益者)
20世纪90年代,虚拟化软件厂商采用一种软件解决方案,以VMM(VirtualMachineMonitor,VMM虚拟机监视器)为中心使X86服务器平台实现虚拟化。
然而这种纯软件的“全虚拟化”模式,每个GuestOS(客户操作系统)获得的关键平台资源都要由VMM控制和分配,需要利用二进制转换,而二进制转换带来的开销使得“完全虚拟化”的性能大打折扣。
为解决性能问题,出现了一种新的虚拟化技术“半虚拟化”,即不需要二进制转换,而是通过对客户操作系统进行代码级修改,使定制的GuestOS获得额外的性能和高扩展性,但是修改GuestOS也带来了系统指令级的冲突及运行效率问题,需要投入大量优化的工作。
当前,虚拟化技术已经发展到了硬件支持的阶段,“硬件虚拟化”技术就是把纯软件虚拟化技术的各项功能用硬件电路来实现,可减少VMM运行的系统开销,可同时满足CPU半虚拟化和二进制转换技术的需求,
的超融合架构解决方案中的计算虚拟化采用aSV虚拟化系统,通过将服务器资源虚拟化为多台虚拟机。
最终用户可以在这些虚拟机上安装各种软件,挂载磁盘,调整配置,调整网络,就像普通的x86服务器一样使用它。
计算虚拟化是超融合的架构中必不可少的关键因素,对于最终用户,虚拟机比物理机的优势在于它可以很快速的发放,很方便的调整配置和组网。
对于维护人员来讲,虚拟机复用了硬件,这样硬件更少,加上云平台的自动维护能力,这样整个IT系统的成本显著降低。
1.4.1.2.2aSV技术原理
服务器务器虚拟化前后的巨大差异,源于虚拟机与物理服务器的本质区别上:
虚拟机的定义:
虚拟机(VirtualMachine)是由虚拟化层提供的高效、独立的虚拟计算机系统,每台虚拟机都是一个完整的系统,它具有处理器、内存、网络设备、存储设备和BIOS,因此操作系统和应用程序在虚拟机中的运行方式与它们在物理服务器上的运行方式没有什么区别。
虚拟机的本质区别:
与物理服务器相比,虚拟机不是由真实的电子元件组成,而是由一组虚拟组件(文件)组成,这些虚拟组件与物理服务器的硬件配置无关,关键与物理服务器相比,虚拟机具有以下优势:
抽象解耦:
1.可在任何X86架构的服务器上运行;
2.上层应用操作系统不需修改即可运行;
分区隔离:
1.可与其他虚拟机同时运行;
2.实现数据处理、网络连接和数据存储的安全隔离;
封装移动:
1.可封装于文件之中,通过简单的文件复制实现快速部署、备份及还原;
2.可便捷地将整个系统(包括虚拟硬件、操作系统和配置好的应用程序)在不同的物理服务器之间进行迁移,甚至可以在虚拟机正在运行的情况下进行迁移;
1.4.1.2.2.1aSV的Hypervisor架构
Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(VirtualMachineMonitor)。
Hypervisor是所有虚拟化技术的核心。
非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。
当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。
虚拟化技术架构
Hypervisor,常见的Hypervisor分两类:
Type-I(裸金属型)
指VMM直接运作在裸机上,使用和管理底层的硬件资源,GuestOS对真实硬件资源的访问都要通过VMM来完成,作为底层硬件的直接操作者,VMM拥有硬件的驱动程序。
裸金属虚拟化中Hypervisor直接管理调用硬件资源,不需要底层操作系统,也可以理解为Hypervisor被做成了一个很薄的操作系统。
这种方案的性能处于主机虚拟化与操作系统虚拟化之间。
代表是VMwareESXServer、CitrixXenServer和MicrosoftHyper-V,Linux KVM。
Type-II型(宿主型)
指VMM之下还有一层宿主操作系统,由于GuestOS对硬件的访问必须经过宿主操作系统,因而带来了额外的性能开销,但可充分利用宿主操作系统提供的设备驱动和底层服务来进行内存管理、进程调度和资源管理等。
主机虚拟化中VM的应用程序调用硬件资源时需要经过:
VM内核->Hypervisor->主机内核,导致性能是三种虚拟化技术中最差的。
主机虚拟化技术代表是VMware Server(GSX)、Workstation和Microsoft Virtual PC、Virtual Server等。
由于主机型Hypervisor的效率问题,的aSV采用了裸机型Hypervisor中的LinuxKVM虚拟化,即为Type-I(裸金属型)。
KVM(Kenerl-basedVirtualMachine)是基于linux内核虚拟化技术,自linux2.6.20之后就集成在linux的各个主要发行版本中。
它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。
KVM是基于硬件虚拟化扩展(Intel VT- X 和 AMD-V)和 QEMU 的修改版,KVM属于Linuxkernel的一个模块,可以用命令modprobe去加载KVM模块。
加载了该模块后,才能进一步通过工具创建虚拟机。
但是仅有KVM模块是不够的。
因为用户无法直接控制内核去做事情,还必须有一个运行在用户空间的工具才行。
这个用户空间的工具,我们选择了已经成型的开源虚拟化软件QEMU。
QEMU也是一个虚拟化软件,它的特点是可虚拟不同的CPU,比如说在x86的CPU上可虚拟一个power的CPU,并可利用它编译出可运行在power上的CPU,并可利用它编译出可运行在power上的程序。
KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。
这就是KVM和QEMU的关系。
如下图:
KVM的实现模块有两个,分别是:
kvm.ko是提供核心虚拟化的基础架构;特定于处理器的模块kvm-intel.ko和kvm-amd.ko。
其设计目标是在需要引导多个未改动的PC操作系统时支持完整的硬件模拟。
一个普通的linux进程有两种运行模式:
内核和用户。
而KVM增加了第三种模式:
客户模式(有自己的内核和用户模式)。
在kvm模型中,每一个虚拟机都是由linux调度程序管理的标准进程。
总体来说,kvm由两个部分组成:
一个是管理虚拟硬件的设备驱动,该驱动使用字符设备/dev/kvm作为管理接口;另一个是模拟PC硬件的用户空间组件,这是一个稍作修改的qemu进程。
同时,aSV采用KVM优势有:
●嵌入到Linux正式Kernel(提高兼容性)
●代码级资源调用(提高性能)
●虚拟机就是一个进程(内存易于管理)
●直接支持NUMA技术(提高扩展性)
●保持开源发展模式(强大的社区支持)
1.4.1.2.2.2Hypervisor虚拟化实现
VMM(VirtualMachineMonitor)对物理资源的虚拟可以划分为三个部分:
CPU虚拟化、内存虚拟化和I/O设备虚拟化,其中以CPU的虚拟化最为关键。
经典的虚拟化方法:
现代计算机体系结构一般至少有两个特权级(即用户态和核心态,x86有四个特权级Ring0~Ring3)用来分隔系统软件和应用软件。
那些只能在处理器的最高特权级(内核态)执行的指令称之为特权指令,一般可读写系统关键资源的指令(即敏感指令)决大多数都是特权指令(X86存在若干敏感指令是非特权指令的情况)。
如果执行特权指令时处理器的状态不在内核态,通常会引发一个异常而交由系统软件来处理这个非法访问(陷入)。
经典的虚拟化方法就是使用“特权解除”和“陷入-模拟”的方式,即将GuestOS运行在非特权级,而将VMM运行于最高特权级(完全控制系统资源)。
解除了GuestOS的特权级后,GuestOS的大部分指令仍可以在硬件上直接运行,只有执行到特权指令时,才会陷入到VMM模拟执行(陷入-模拟)。
“陷入-模拟”的本质是保证可能影响VMM正确运行的指令由VMM模拟执行,大部分的非敏感指令还是照常运行。
因为X86指令集中有若干条指令是需要被VMM捕获的敏感指令,但是却不是特权指令(称为临界指令),因此“特权解除”并不能导致他们发生陷入模拟,执行它们不会发生自动的“陷入”而被VMM捕获,从而阻碍了指令的虚拟化,这也称之为X86的虚拟化漏洞。
X86架构虚拟化的实现方式可分为:
1、X86“全虚拟化”(指所抽象的VM具有完全的物理机特性,OS在其上运行不需要任何修改)Full派秉承无需修改直接运行的理念,对“运行时监测,捕捉后模拟”的过程进行优化。
该派内部之实现又有些差别,其中以VMWare为代表的基于二进制翻译(BT)的全虚拟化为代表,其主要思想是在执行时将VM上执行的GuestOS指令,翻译成x86指令集的一个子集,其中的敏感指令被替换成陷入指令。
翻译过程与指令执行交叉进行,不含敏感指令的用户态程序可以不经翻译直接执行。
2、X86“半虚拟化”(指需OS协助的虚拟化,在其上运行的OS需要修改)
Para派的基本思想是通过修改GuestOS的代码,将含有敏感指令的操作,替换为对VMM的超调用Hypercall,类似OS的系统调用,将控制权转移到VMM,该技术因VMM项目而广为人知。
该技术的优势在于VM的性能能接近于物理机,缺点在于需要修改GuestOS(如:
Windows不支持修改)及增加的维护成本,关键修改GuestOS会导致操作系统对特定hypervisor的依赖性,因此很多虚拟化厂商基于VMM开发的虚拟化产品部分已经放弃了Linux半虚拟化,而专注基于硬件辅助的全虚拟化开发,来支持未经修改的操作系统。
3、X86“硬件辅助虚拟化”:
其基本思想就是引入新的处理器运行模式和新的指令,使得VMM和GuestOS运行于不同的模式下,GuestOS运行于受控模式,原来的一些敏感指令在受控模式下全部会陷入VMM,这样就解决了部分非特权的敏感指令的“陷入-模拟”难题,而且模式切换时上下文的保存恢复由硬件来完成,这样就大大提高了“陷入-模拟”时上下文切换的效率。
以IntelVT-x硬件辅助虚拟化技术为例,该技术增加了在虚拟状态下的两种处理器工作模式:
根(Root)操作模式和非根(Non-root)操作模式。
VMM运作在Root操作模式下,而GuestOS运行在Non-root操作模式下。
这两个操作模式分别拥有自己的特权级环,VMM和虚拟机的GuestOS分别运行在这两个操作模式的0环。
这样,既能使VMM运行在0环,也能使GuestOS运行在0环,避免了修改GuestOS。
Root操作模式和Non-root操作模式的切换是通过新增的CPU指令(VMXON,VMXOFF等)来完成。
硬件辅助虚拟化技术消除了操作系统的ring转换问题,降低了虚拟化门槛,支持任何操作系统的虚拟化而无须修改OS内核,得到了虚拟化软件厂商的支持。
硬件辅助虚拟化技术已经逐渐消除软件虚拟化技术之间的差别,并成为未来的发展趋势。
1.4.1.2.2.2.1vCPU机制
vCPU调度机制
对虚拟机来说,不直接感知物理CPU,虚拟机的计算单元通过vCPU对象来呈现。
虚拟机只看到VMM呈现给它的vCPU。
在VMM中,每个vCPU对应一个VMCS(Virtual-MachineControlStructure)结构,当vcpu被从物理CPU上切换下来的时候,其运行上下文会被保存在其对应的VMCS结构中;当vcpu被切换到pcpu上运行时,其运行上下文会从对应的VMCS结构中导入到物理CPU上。
通过这种方式,实现各vCPU之间的独立运行。
从虚拟机系统的结构与功能划分可以看出,客户操作系统与虚拟机监视器共同构成了虚拟机系统的两级调度框架,如图所示是一个多核环境下虚拟机系统的两级调度框架。
客户操作系统负责第2级调度,即线程或进程在vCPU上的调度(将核心线程映射到相应的虚拟CPU上)。
虚拟机监视器负责第1级调度,即vCPU在物理处理单元上的调度。
两级调度的调度策略和机制不存在依赖关系。
vCPU调度器负责物理处理器资源在各个虚拟机之间的分配与调度,本质上即把各个虚拟机中的vCPU按照一定的策略和机制调度在物理处理单元上可以采用任意的策略来分配物理资源,满足虚拟机的不同需求。
vCPU可以调度在一个或多个物理处理单元执行(分时复用或空间复用物理处理单元),也可以与物理处理单元建立一对一固定的映射关系(限制访问指定的物理处理单元)。
1.4.1.2.2.2.2内存虚拟化
图3-6内存虚拟化三层模型
因为VMM(VirtualMachineMonitor)掌控所有系统资源,因此VMM握有整个内存资源,其负责页式内存管理,维护虚拟地址到机器地址的映射关系。
因GuestOS本身亦有页式内存管理机制,则有VMM的整个系统就比正常系统多了一层映射:
A.虚拟地址(VA),指GuestOS提供给其应用程序使用的线性地址空间;
B.物理地址(PA),经VMM抽象的、虚拟机看到的伪物理地址;
C.机器地址(MA),真实的机器地址,即地址总线上出现的地址信号;
映射关系如下:
GuestOS:
PA=f(VA)、VMM:
MA=g(PA)VMM维护一套页表,负责PA到MA的映射。
GuestOS维护一套页表,负责VA到PA的映射。
实际运行时,用户程序访问VA1,经GuestOS的页表转换得到PA1,再由VMM介入,使用VMM的页表将PA1转换为MA1。
页表虚拟化技术
普通MMU只能完成一次虚拟地址到物理地址的映射,在虚拟机环境下,经过MMU转换所得到的“物理地址”并不是真正的机器地址。
若需得到真正的机器地址,必须由VMM介入,再经过一次映射才能得到总线上使用的机器地址。
如果虚拟机的每个内存访问都需要VMM介入,并由软件模拟地址转换的效率是很低下的,几乎不具有实际可用性,为实现虚拟地址到机器地址的高效转换,现普遍采用的思想是:
由VMM根据映射f和g生成复合的映射fg,并直接将这个映射关系写入MMU。
当前采用的页表虚拟化方法主要是MMU类虚拟化(MMUParavirtualization)和影子页表,后者已被内存的硬件辅助虚拟化技术所替代。
1、MMUParavirtualization
其基本原理是:
当GuestOS创建一个新的页表时,会从它所维护的空闲内存中分配一个页面,并向VMM注册该页面,VMM会剥夺GuestOS对该页表的写权限,之后GuestOS对该页表的写操作都会陷入到VMM加以验证和转换。
VMM会检查页表中的每一项,确保他们只映射了属于该虚拟机的机器页面,而且不得包含对页表页面的可写映射。
后VMM会根据自己所维护的映射关系,将页表项中的物理地址替换为相应的机器地址,最后再把修改过的页表载入MMU。
如此,MMU就可以根据修改过页表直接完成虚拟地址到机器地址的转换。
2、内存硬件辅助虚拟化
内存硬件辅助虚拟化技术原理图
内存的硬件辅助虚拟化技术是用于替代虚拟化技术中软件实现的“影子页表”的一种硬件辅助虚拟化技术,其基本原理是:
GVA(客户操作系统的虚拟地址)->GPA(客户操作系统的物理地址)->HPA(宿主操作系统的物理地址)两次地址转换都由CPU硬件自动完成(软件实现内存开销大、性能差)。
以VT-x技术的页表扩充技术ExtendedPageTable(EPT)为例,首先VMM预先把客户机物理地址转换到机器地址的EPT页表设置到CPU中;其次客户机修改客户机页表无需VMM干预;最后,地址转换时,CPU自动查找两张页表完成客户机虚拟地址到机器地址的转换。
使用内存的硬件辅助虚拟化技术,客户机运行过程中无需VMM干预,去除了大量软件开销,内存访问性能接近物理机。
1.4.1.2.2.2.3I/O设备虚拟化
VMM通过I/O虚拟化来复用有限的外设资源,其通过截获GuestOS对I/O设备的访问请求,然后通过软件模拟真实的硬件,目前I/O设备的虚拟化方式主要有三种:
设备接口完全模拟、前端/后端模拟、直接划分。
1、设备接口完全模拟:
即软件精确模拟与物理设备完全一样的接口,GuestOS驱动无须修改就能驱动这个虚拟设备,Vmware即使用该方法。
优点:
没有额外的硬件开销,可重用现有驱动程序;
缺点:
为完成一次操作要涉及到多个寄存器的操作,使得VMM要截获每个寄存器访
问并进行相应的模拟,这就导致多次上下文切换;由于是软件模拟,性能较低。
2、前端/后端模拟:
VMM提供一个简化的驱动程序(后端,Back-End),GuestOS中的驱动程序为前端(Front-End,FE),前端驱动将来自其他模块的请求通过与GuestOS间的特殊通信机制直接发送给GuestOS的后端驱动,后端驱动在处理完请求后再发回通知给前端,VMM即采用该方法。
优点:
基于事务的通信机制,能在很大程度上减少上下文切换开销,没有额外的硬件开销;
缺点:
需要GuestOS实现前端驱动,后端驱动可能成为瓶颈。
3、直接划分:
即直接将物理设备分配给某个GuestOS,由GuestOS直接访问I/O设备(不经VMM),目前与此相关的技术有IOMMU(IntelVT-d,PCI-SIG之SR-IOV等),旨在建立高效的I/O虚拟化直通道。
优点:
可重用已有驱动,直接访问减少了虚拟化开销;
缺点:
需要购买较多额外的硬件。
1.4.1.2.3aSV的技术特性
1.4.1.2.3.1内存NUMA技术
功能描述
非统一内存访问(NUMA)是服务器CPU和内存设计的新架构。
传统的服务器架构下把内存放到单一的存储池中,这对于单处理器或单核心的系统工作良好。
但是这种传统的统一访问方式,在多核心同时访问内存空间时会导致资源争用和性能问题。
毕竟,CPU应该可以访问所有的服务器内存,但是不需要总是保持占用。
实际上,CPU仅需要访问工作负载实际运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 融合 解决方案 完整 版本