存储架构体系发展在电信支撑系统中的应用

磁盘存储器经过多年发展,在容量、速度及体系架构方面都有很大发展,从目前电信运营商支撑系统的现状来看,主流还是SMP/NUMA存储,但在电信运营商互联网化的进程中,MPP存储应用可能会越来越广泛。

存储架构体系发展在电信支撑系统中的应用

  一、存储器发展简述

存储与主机分离的概念颠覆了传统的DAS模式,存储子系统从原来的计算系统中分离出来形成一个独立的子系统,存储和主机间通过高速网络互联。同时随着网络共享应用的持续增长和网络文件共享协议的成熟,文件服务器作为一种独立的NAS存储器也走向了市场。

  二、存储体系架构的发展

存储本质上也是计算机,影响计算机行业快速发展、频繁更新换代的最重要的部件是CPU。计算机体系架构中一个很重要的部分就是如何让多个CPU一起协同工作,而且性能能够成倍提高。

结合到存储行业来讲,主机主要负责信息的快速处理,而数据存储和数据保护等工作渐渐被转移到存储器上。归根到底存储器的功能还是储存和保护被主机处理过的信息,其主要的设计思想应该是着重于在接收到主机的信息后做到以下几点:高性能的IO响应能力、高可靠性、可管理性和其他数据保护功能(如容灾、克隆、快照等)。

存储器比较学术的一种分类方法是根据其体系架构进行分类。(1)低端的基于阵列控制卡技术的存储器。(2)中端的基于简单群集技术的模块化存储器。(3)高端存储器现在有两种方向,一种是基于统一大缓存scale-up架构多处理器(SMP)存储器;另外一种是分布式缓存多处理器scale-out架构的存储器。

  三、scale-up架构多处理器存储介绍

此类存储通常可以先只配少量的前端主机接口卡、后端磁盘接口卡或者核心控制卡,在升级扩容时在通过灵活添加相关接口卡来提升各个部分的性能从而达到存储器整体性能的提升,这种设计思路称为scale up纵向扩展大存储器的设计思路。

存储器从双控制器集群发展到高端阵列,为了满足性能需求,需要用到多个控制器,把数量超过两个以上的多控制器组合起来协同工作。这种把多路CPU组合在一起工作的设计方式在计算机体系结构里称为共享存储对称多处理机系统(SMP)架构。SMP架构的特点包括:(1)对称共享存储:系统中任何处理器均可直接访问任何存储模块中的存储单元和I/O模块联接的I/O设备,所有内存地址单元统一编址。(2)单一的操作系统映像:全系统只有一个操作系统驻留在共享存储器中。(3)局部高速缓存Cache及其数据一致性:每个处理器均配备局部Cache,但是这些数据必须保持与存储器中数据是一致的。(4)低通信延迟:各个进程通过读/写操作系统提供的共享数据缓存区来完成处理器间的通信。(5)共享总线带宽:所有处理器共享总线的带宽,完成对内存模块和I/O模块的访问。

  四、分布式缓存多处理器scale-out架构的存储器

Scale out体系架构是指基于横向扩展的体系架构的'思路,即整个系统一开始由一个节点构成,随着业务需求的增加,通过把更多的节点添加进去,把多台小计算机(节点)通过一个快速的通道技术/或外部网络连接起来,这样就形成一台可以做到线性扩展的超大型计算机设备,这种思路在服务器体系架构中叫做scale out,即横向扩展。(1)传统的存储阵列相当于老式机头牵引的火车。存储控制器:1个或2个火车头,代表性能与冗余性;每节车厢只代表容量;对于较短的火车,火车头会过度配置;添加车厢过载亦会超过功率极限。(2)新架构的Scale Out存储相当于高铁和谐号。每节车厢同时代表容量和性能;如果一节车厢的引擎出现故障,其它车厢不会受到影响;添加车厢即同时扩展性能;组合功能整体上仍是一列火车。

Scale-Out具体又可再细分成两类架构,一种是分布式缓存但统一编址的NUMA架构,另一类产品线是每个节点各自管理控制器内部缓存的MPP架构。

  五、Scale-Out架构分支一:NUMA架构

在前述SMP架构中,整个系统相当于一台大型计算机,所有的处理器P/C访问内存SM的速度和延迟都是一致的。由于总线和交叉开关工艺终将会碰到难于扩展的问题,因此其上端的处理器的数量以及下端的缓存模块的数量和容量也会碰到扩展性的问题。这些扩展性的问题在早期并不明显,因为存储器容量或者处理能力不够时,用户可以再新增购买,但在今天整个IT架构对于存储器的容量、处理能力以及扩展性都提出了更大的挑战,因此就出现了另外一种设计思路,即抛开设计一台超级大计算机的思路,而是把多个存储节点(引擎)通过一个快速的通道技术连接起来,仍然采用统一内存编址设计,这样就形成一台可以做到线性扩展的架构。

具备这种设计思想称为分布共享存储多处理机系统架构DSM,又称为CC-NUMA架构(高速缓存一致性非均匀存储访问,ccNUMA,Cache-Coherent Non-Uniform Memory Access),如图1所示。

NUMA架构的特点:

(1)每个处理器都有自己的内存LM,本质上就是1台的计算机;(2)这些处理器之间通过一个快速的定制网络互联起来;(3)各个处理器之间的内存/缓存LM统一编址,即虚拟分布共享内存体系DSM;(4)通过在定制网络范围内添加更多的处理器芯片和LM缓存等模块,从而方便的扩展整个存储系统,即scale out横向扩展。

  六、Scale-Out架构分支一:MPP架构

NUMA架构可以理解成将多个SMP进行松一点的耦合,即多个SMP之间通过快速交换通道互联,每个SMP都有各自自己的内存,一个SMP内部的CPU访问自己的内存时与之前没什么两样,但是要访问其他SMP处的内存,就需要走交换通道。所以,NUMA通过牺牲了内存访问的时延来达到更高的扩展性。SMP和NUMA架构同一台机器内都使用单一操作系统。但是由于NUMA访问远端内存时的时延问题,扩展到达一定规模时,NUMA架构下的效率也不能随着CPU数量的增加而线性增长,但是要好过SMP。   而MPP实质上是将许多独立的主机使用外部网络来组成一个集群。每个节点都有各自的CPU、内存、IO总线和操作系统。整个系统属于最松散的耦合,各个节点运行大范围并行化的程序。MPP的效率随节点数量的增长表现为线性关系。MPP相当于把内存、把操作系统强制分开,把程序架构也强制改变以保持海量计算下的效率线性增长。

MPP体系架构特点包括:(1)由数百个乃至数千个计算结点和I/O结点组成,通过高性能互联网络相互联接。(2)每个结点相对独立,并拥有一个或多个微处理器(P/C)。(3)MPP的各个结点均拥有不同的操作系统映像。(4)各个结点间的内存模块相互独立,且不存在全局内存单元的统一硬件编址。

  七、电信支撑系统对于存储架构的选择

面对同样的预算区间,电信支撑系统是选择传统scale up高端阵列,还是新型scale out架构的高端阵列,其实这是一个辩证的问题。在服务器领域,通常会根据应用系统的特点不同,选择基于scale up架构的服务器(如数据库服务器),或者基于scale out架构扩展的服务器(如应用服务器)。

特定场景下,由于单路I/O就可能导致整个MPP集群中的磁盘资源全部牵动(每磁盘同一时刻只能执行一个I/O)。然后在多路大块连续I/O并发的情况下,反而效率很差(比如多流大块连续地址I/O);而某些特定场景下,多路I/O之间牵制很少,则表现出线性增长的性能(比如小块高随机I/O)。这也可以类比为将一个程序并行分解成多个执行颗粒(类比为高随机I/O),颗粒间的关联性越少,则并行执行的效率越高。所以MPP自身为Share-Nothing架构,那么运行在它上面的程序颗粒之间最好也Share-Nothing。因此MPP架构可广泛用于互联网运营商的底层Key-Value分布式数据库,在高随机小块读访问场景下能获得巨量的性能以及线性的效率-扩展曲线。