联系我们
苏州东元信息技术有限公司 | |
| 0512-66362750 | |
| 19962189169 (David) | |
| David@szdongyuan.cn | |
| 江苏省苏州市旺吴路44-46号 | |
深信服超融合架构技术方案
深信服超融合架构技术方案
超融合基础架构,是一种将计算、网络和存储等资源作为基本组成元素,根据系统需求进行选择和预定义的一种技术架构,具体实现方式上一般是指在同一套单元节点(x86服务器)中融入软件虚拟化技术(包括计算、网络、存储、安全等虚拟化),而每一套单元节点可以通过网络聚合起来,实现模块化的无缝横向扩展(scale-out),构建统一的资源池。
超融合架构概述
超融合架构的定义
超融合基础架构,是一种将计算、网络和存储等资源作为基本组成元素,根据系统需求进行选择和预定义的一种技术架构,具体实现方式上一般是指在同一套单元节点(x86服务器)中融入软件虚拟化技术(包括计算、网络、存储、安全等虚拟化),而每一套单元节点可以通过网络聚合起来,实现模块化的无缝横向扩展(scale-out),构建统一的资源池。
深信服超融合架构组成模块
系统总体架构

深信服超融合架构图
深信服超融合架构在基于底层基础架构(标准的X86硬件)上将计算、存储、网络、安全软件化,通过这种软件化的方式,即计算虚拟化aSV、存储虚拟化aSAN、网络虚拟化aNet,构建了数据中心里所需的小资源单元,通过资源池中的小单元,提供了数据中心IT基础架构中所需的全部资源。
后续章节,会针对超融合架构中的三大功能模块:aSV、aSAN、aNet所涵盖的产品技术来做详细说明。
aSV计算虚拟化平台
计算资源虚拟化技术就是将通用的 x86 服务器经过虚拟化软件,对终用户呈现标准的虚拟机。这些虚拟机就像同一个厂家生产的系列化的产品一样,具备系列化的硬件配置,使用相同的驱动程序。
虚拟机的定义: 虚拟机 (Virtual Machine) 是由虚拟化层提供的高效、独自的虚拟计算机系统,每台虚拟机都是一个完整的系统,它具有处理器、内存、网络设备、存储设备和BIOS,因此操作系统和应用程序在虚拟机中的运行方式与它们在物理服务器上的运行方式没有什么区别。
虚拟机与物理服务器相比:虚拟机不是由真实的电子元件组成,而是由一组虚拟组件(文件)组成,这些虚拟组件与物理服务器的硬件配置无关,关键与物理服务器相比,虚拟机具有以下优势:
抽象解耦
1.可在任何 X86 架构的服务器上运行;
2.上层应用操作系统不需修改即可运行;
分区隔离
1.可与其他虚拟机同时运行;
2.实现数据处理、网络连接和数据存储的安全隔离;
封装移动
1.可封装于文件之中,通过简单的文件复制实现快速部署、备份及还原;
2.可便捷地将整个系统(包括虚拟硬件、操作系统和配置好的应用程序)在不同的物理服务器之间进行迁移,甚至可以在虚拟机正在运行的情况下进行迁移;
深信服的超融合架构解决方案中的计算虚拟化采用aSV虚拟化系统,通过将服务器资源虚拟化为多台虚拟机。终用户可以在这些虚拟机上安装各种软件,挂载磁盘,调整配置,调整网络,就像普通的 x86 服务器一样使用它。
计算虚拟化是超融合的架构中必不可少的关键因素,对于终用户,虚拟机比物理机的优势在于它可以很快速的发放,很方便的调整配置和组网。对于维护人员来讲,虚拟机复用了硬件,这样硬件更少加上云平台的自动维护能力,这样整个IT系统的成本明显降低。

Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor)。
Hypervisor是所有虚拟化技术的中心。非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。
虚拟化技术架构
Hypervisor,常见的 Hypervisor 分两类:
Type-I(裸金属型)
指 VMM 直接运作在裸机上,使用和管理底层的硬件资源,GuestOS 对真实硬件资源的访问都要通过 VMM 来完成,作为底层硬件的直接操作者,VMM 拥有硬件的驱动程序。裸金属虚拟化中Hypervisor直接管理调用硬件资源,不需要底层操作系统,也可以理解为Hypervisor被做成了一个很薄的操作系统。这种方案的性能处于主机虚拟化与操作系统虚拟化之间。表示是VMware ESX Server、Citrix XenServer和Microsoft Hyper-V,Linux KVM。
Type-II 型(宿主型)
指 VMM 之下还有一层宿主操作系统,由于 Guest OS 对硬件的访问必须经过宿主操作系统,因而带来了额外的性能开销,但可充分利用宿主操作系统提供的设备驱动和底层服务来进行内存管理、进程调度和资源管理等。主机虚拟化中VM的应用程序调用硬件资源时需要经过:VM内核->Hypervisor->主机内核,导致性能是三种虚拟化技术中差的。主机虚拟化技术表示是VMware Server(GSX)、Workstation和Microsoft Virtual PC、Virtual Server等。
同时,aSV采用KVM优势有:
嵌入到Linux正式Kernel(提高兼容性)
代码级资源调用(提高性能)
虚拟机就是一个进程(内存易于管理)
直接支持NUMA技术(提高扩展性)
保持开源发展模式(强大的社区支持)
硬件辅助虚拟化技术消除了操作系统的 ring 转换问题,降低了虚拟化门槛,支持任何操作系统的虚拟化而无须修改 OS 内核,得到了虚拟化软件厂商的支持。硬件辅助虚拟化技术已经逐渐消除软件虚拟化技术之间的差别,并成为未来的发展趋势。
vCPU 机制
对虚拟机来说,不直接感知物理 CPU,虚拟机的计算单元通过 vCPU 对象来呈现。虚拟机只看到 VMM 呈现给它的 vCPU。在 VMM 中,每个 vCPU 对应一个 VMCS(Virtual-MachineControl Structure)结构,当 vcpu 被从物理 CPU 上切换下来的时候,其运行上下文会被保存在其对应的 VMCS 结构中;当 vcpu 被切换到 pcpu 上运行时,其运行上下文会从对应的 VMCS 结构中导入到物理 CPU 上。通过这种方式,实现各 vCPU 之间的独自运行。
内存虚拟化
因为 VMM (Virtual Machine Monitor) 掌控所有系统资源,因此 VMM 握有整个内存资源,其负责页式内存管理,维护虚拟地址到机器地址的映射关系。因 Guest OS 本身亦有页式内存管理机制,则有 VMM 的整个系统就比正常系统多了一层映射:
A. 虚拟地址(VA),指 Guest OS 提供给其应用程序使用的线性地址空间;
B. 物理地址(PA),经 VMM 抽象的、虚拟机看到的伪物理地址;
C. 机器地址(MA),真实的机器地址,即地址总线上出现的地址信号;
内存的硬件辅助虚拟化技术是用于替代虚拟化技术中软件实现的“影子页表”的一种硬件辅助虚拟化技术,其基本原理是:GVA(客户操作系统的虚拟地址)-> GPA(客户操作系统的物理地址)-> HPA(宿主操作系统的物理地址)两次地址转换都由 CPU 硬件自动完成(软件实现内存开销大、性能差)。以 VT-x 技术的页表扩充技术 Extended PageTable(EPT)为例,首先 VMM 预先把客户机物理地址转换到机器地址的 EPT 页表设置到 CPU 中;其次客户机修改客户机页表无需 VMM 干预;然后,地址转换时,CPU 自动查找两张页表完成客户机虚拟地址到机器地址的转换。使用内存的硬件辅助虚拟化技术,客户机运行过程中无需 VMM 干预,去除了大量软件开销,内存访问性能接近物理机。
I/O 设备虚拟化
VMM 通过 I/O 虚拟化来复用有限的外设资源,其通过截获 Guest OS 对 I/O 设备的访问请求,然后通过软件模拟真实的硬件,目前 I/O 设备的虚拟化方式主要有三种:设备接口完全模拟、前端/后端模拟、直接划分。
优点:没有额外的硬件开销,可重用现有驱动程序;
缺点:为完成一次操作要涉及到多个寄存器的操作,使得 VMM 要截获每个寄存器访
问并进行相应的模拟,这就导致多次上下文切换;由于是软件模拟,性能较低。
aSAN存储虚拟化
采用计算虚拟化技术给服务器带来更高的资源利用率、给业务带来更便捷的部署,降低了TCO,与此同时,服务器虚拟化的部署给存储带来以下挑战:
相比传统的物理服务器方式,单个存储系统承载了更多的业务,存储系统需要更强劲的性能来支撑;
采用共享存储方式部署虚拟机,单个卷上可能承载几十或上百的虚拟机,导致卷IO呈现更多的随机特征,这对传统的Cache技术提出挑战;
单个卷承载多个虚拟机业务,要求存储系统具备协调虚拟机访问竞争,保证对IO吞吐要求高的虚拟机获取到资源实现性能目标;
单个卷上承载较多的虚拟机,需要卷具有很高的IO性能,这对传统受限于固定硬盘的RAID技术提出挑战。
深信服aSAN概述
aSAN是深信服在充分掌握了用户对虚拟化环境存储方面的需求基础上,推出以aSAN分布式存储软件为中心的解决方案, aSAN是基于分布式文件系统Glusterfs开发的面对存储虚拟化的一款产品, 并作为超融合架构中的重要组成部分,为云计算环境而设计,融合了分布式缓存、SSD读写缓存加速、多副本机制保障、故障自动重构机制等诸多存储技术,能够满足关键业务的存储需求,保证客户业务高效稳定可靠的运行。
aSAN技术原理
aSAN基于底层Hypervisor之上,通过主机管理、磁盘管理、缓存技术、存储网络、冗余副本等技术,管理集群内所有硬盘,“池化”集群所有硬盘存储的空间,通过向VMP提供访问接口,使得虚拟机可以进行业务数据的保存、管理和读写等整个存储过程中的操作。
深信服aSAN功能特性
存储自动精简配置
自动精简配置(Thin Provisioning)是一种先进的、智能的、高效的容量分配和管理技术,它扩展了存储管理功能,可以用小的物理容量为操作系统提供超大容量的虚拟存储空间。并且随着应用的数据量增长,实际存储空间也可以及时扩展,而无须手动扩展。一句话而言,自动精简配置提供的是“运行时空间”,可以明显减少已分配但是未使用的存储空间。
如果采用传统的磁盘分配方法,需要用户对当前和未来业务发展规模进行正确的预判,提前做好空间资源的规划。在实际中,由于对应用系统规模的估计不准确,往往会造成容量分配的浪费,比如为一个应用系统预分配了5TB的空间,但该应用却只需要1TB的容量,这就造成了4TB的容量浪费,而且这4TB容量被分配了之后,很难再被别的应用系统使用。即使是出色的系统管理员,也不可能恰如其分的为应用分配好存储资源,而没有任何的浪费。根据业界的统计,由于预分配了太大的存储空间而导致的资源浪费,大约占总存储空间的30%左右。
aSAN采用了自动精简配置技术有效的解决了存储资源的空间分配难题,提高了资源利用率。采用自动精简配置技术的数据卷分配给用户的是一个逻辑的虚拟容量,而不是一个固定的物理空间,只有当用户向该逻辑资源真正写数据时,才按照预先设定好的策略从物理空间分配实际容量。
aSAN私网链路聚合
aSAN的私网链路聚合是为了提高网络可靠性和性能设置而提出的。使用aSAN私网链路聚合不需要交换机上配置链路聚合,由存储私网负责链路聚合的功能,使用普通的二层交换机,保证正确的连接即可。
传统的链路聚合是按主机IP进行均分,即每两台主机间只能用一条物理链路。而aSAN私网链路聚合采用按照TCP连接进行均分,两台主机间的不同TCP连接可使用不同物理链路。在保障可靠性的同时,还达到了更加充分的利用所有链路资源的能力。
数据一致性检查
aSAN采用一致性复制协议来保证多个副本数据的一致性,即只有当所有副本都写成功,才返回写入磁盘成功。 正常情况下aSAN保证每个副本上的数据都是完全一致,从任一副本读到的数据都是相同的。如果某个副本中的某个磁盘短暂故障, aSAN会暂时不写这个副本,等恢复后再恢复该副本上的数据;如果磁盘长时间或者长久故障, aSAN会把这个磁盘从群集中移除掉,并为副本寻找新的副本磁盘,再通过重建机制使得数据在各个磁盘上的分布均匀。
aNet网络虚拟化
网络虚拟化概述
网络虚拟化也是构建超融合架构中非常重要的一部分,如果在云计算、虚拟化的环境中,我们的网络如果继续采用传统It架构中硬件方式定义网络的话,就会存在诸多问题:
一、如何保障虚拟机在保持相应的网络策略不变的情况下进行虚机迁移,
二、虚拟化后的数据中心涉及业务众多,对外部提供云接入服务时,传统的Vlan技术已经无法满足业务隔离的需求,解决大规模租户和租户之间、业务和业务之间的安全隔离也是面临的首要问题。
三、虚拟化后的数据中心的业务系统的构建和上线对网络功能的快速部署、灵活弹性甚至成本,提出了更高的要求。
四、在传统网络中,不论底层的IT基础设施还是上层的应用,都由专属设备来完成。这些设备成本高昂,能力和位置僵化,难以快速响应新业务对网络快速、灵活自动化部署的需求。
基于上述问题,深信服采用了业界成熟的Overlay+NFV的解决方案,我们称之为aNet,通过Overlay的方式来构建大二层和实现业务系统之间的租户隔离,通过NFV实现网络中的所需各类网络功能资源(包括基础的路由交换、安全以及应用交付等)按需分配和灵活调度,从而实现超融合架构中的网络虚拟化。
aNet底层的实现-构建高性能平台
数据平面
Linux 等通用操作系统,必须公平地对待网络应用程序和非网络应用程序,导致设计上达不到高IO吞吐,深信服的aNet数据面设计上,借鉴了netmap和dpdk的方案,针对数据IO密集型网络应用程序设计。
1.支持专有网卡和通用网卡
对于Intel和Broadcom的e1000e,igb,ixgbe,bnx2,tg3,bnx2x等可编程网卡,支持高性能方案,对e1000等网卡,支持通用方案。保证硬件兼容性。
2.跨内核跨进程的全局内存池
深信服设计并实现了零拷贝的数据面环境,一个跨内核跨进程的全局内存引用机制,真正做到网卡收包一次拷贝,所有进程共享引用的方式,数据可以从网卡传送到内核、应用层、虚拟机而无需再次拷贝。内存池自动增长,自动回收。
3.避免中断处理和上下文切换
单数据线程亲和锁定到硬件线程,避免内核和用户空间之间的上下文切换、线程切换和中断处理,同时每个线程有直接的高速缓冲,避免了缓冲区争用。
在理想情况下,当数据包到达系统时,所有处理该数据包所需的信息好都已经在内核的本地高速缓存中。我们可以设想一下,如果当数据包到达时,查找表项目、数据流上下文、以及连接控制块都已经在高速缓存中的话,那么就可以直接对数据包进行处理,而无需“挂起”并等待外部顺序内存访问完成。
4.应用层数据面更稳定
内核态的小BUG,可能导致系统宕机,而应用层进程,糟糕的情况是进程死掉,我们设计了检测监控机制,在极端的情况,即使进程意外死亡,也能秒级别做到虚拟机无感知的网络恢复。
数据平面负责报文的转发,是整个系统的中心,数据平面由多个数据转发线程和一个控制线程组成,控制线程负责接收控制进程配置的消息,数据线程是实现报文的处理。
在数据线程中实现快速路径与慢速路径分离的报文处理方式,报文的转发是基于session的,一条流匹配到一个session,该条流的个报文负责查找各种表项,创建session,并将查找表项的结果记录到session中,该条流的后续的报文只需查找session,并根据session中记录的信息对报文进行处理和转发的。
系统中所有的报文都是由数据线程接收的,需要做转发的报文,不需要送到linux协议栈,直接在数据线程中处理后从网卡发出,对于到设备本身的报文(如ssh,telnet,ospf, bgp, dhcp等等),数据线程无法直接处理,通过TUN接口将报文重新送到linux协议栈处理,从linux协议栈的发出的报文需经过数据线程中转后才可从折本发出。
aNet数据层面,在六核 2.0 GHz 英特尔至强处理器 L5638 上使用长前缀匹配(LPM)时,对于使用六个中心中的四个中心、每个核一个线程、四个 10G 以太网端口的情况,64 字节数据包的 IP 第三层转发性能达到了900万pps。这比原始 Linux 的性能差不多提高了九倍(原始 Linux 在双处理器六核 2.4GHz 模式下的性能为 100 万pps)。
数据面为底层处理和数据包IO提供了与硬件打交道的功能,而应用层协议栈在上方提供了一个优化的网络堆栈实现。与 Linux SMP 解决方案相比,降低了对 Linux 内核的依赖性,从而具有更好的扩展性和稳定性。
控制平面
有了数据面和协议栈做支持,控制面就可以实现丰富的应用功能。控制面实现了本地配套服务,一些基础功能例如DHCP服务,RSTP服务,DNS代理功能。这些内置服务可以直接提供给虚拟机,用户无需安装第三方类似软件。

