存储 频道

专家博客:单片架构和模块化架构的选择

  以上讨论了共享存储模式架构,即我们有时所认为的企业阵列,不过我称之为单片架构。这个名词可以追溯到大型机时代(见Wiki的定义),因此它用于描述配置单个大型高速缓存的存储阵列。在过去10年中,我们看到存储技术从单个共享高速缓存向分布式高速缓存架构转变。这种分布式架构采用多个存储引擎或节点,每个引擎或节点都有独立的处理能力,但是它们共享一个快速的网络互联。这种技术最知名的部署可能是3PAR(InServ)、IBM(XIV)和EMC(VMAX)。现在让我们仔细看看这些架构。

  EMC VMAX

  VMAX架构包含1个到8个VMAX引擎(存储节点)。这些引擎相互连接在一起,被称为虚拟Matrix架构。每个引擎都可以当作存储阵列,拥有自己的前端主机端口连接、后端磁盘导向器、高速缓存(内部镜像化)和处理器。VMAX引擎使用Matrix接口主板封装器(MIBE)连接在一起。MIBE有副本以备冗余。虚拟Matrix可以进行引擎之间的记忆体访问。当主机访问端口和数据不在同一个引擎上的时候需要虚拟Matrix提供连接性。在这篇文章后面有两幅图,一张显示引擎互联的逻辑视图,一张显示后端磁盘机箱如何分配给每个引擎。

  不过我们还不太清楚虚拟Matrix架构是如何运作的。我不确定VMAX引擎是否可以直接访问其他引擎上的高速缓存,以及引擎的互联是否需要处理器。此外,一个引擎是否可以单纯为了管理逻辑主机和磁盘连接上的吞吐量而访问另一个引擎上的高速缓存?我不是很肯定。

  3Par InServ

  3Par由多个存储节点组成。这些存储节点汇集到一个高速连接上。3Par称之为InSpire架构。2到8个节点(按对配置)连接到一个被动背板,每个节点之间的带宽可高达1.6Gb/秒。3Par如图所示展示他们的8节点架构,连接的数量很容易就能看清楚。我还看到2节点、4节点、6节点和8节点部署下的连接是如何增加的。InServ阵列按对写入高速缓存数据,因此每个节点都有一个伴点。如果一个节点发生故障,伴点上的高速缓存可以马上写入另一个节点,从而保护高速缓存数据。

  InServ和VMAX架构非常相似,但是它们之间有一个隐晦但非常重要的区别。3Par InServ LUN(逻辑单元号)分割成一个个小盘(Chunklet,磁盘的256KB部分),这些小盘分散在复合体内的所有磁盘上。因此如果一个阵列得到部署和创建,阵列中的所有节点都参与到数据服务。VMAX使用Symmetrix架构,利用Hyper--磁盘的一大块--来创建LUN。例如,4个Hyper创建一个3+1 RAID(独立磁盘冗余阵列)-5 LUN。随着新的引擎加入VMAX阵列,数据不是分布到新的物理磁盘,因此VMAX引擎和物理磁盘上的数据访问是非均匀的。从这个角度来说,InServ有更好的机会来优化节点的使用,不过在VMAX内部,虚拟配置的使用可以帮助将工作负荷更均匀地分布到磁盘上。此外,一个完全设置的VMAX阵列的VMA带宽可以达到128Gb/秒,超过InServ的带宽。

  在我看来,VMAX是通过专有节点来提高可扩展性,但是如果数据不在本地节点上,那么延迟性会增加。在3Par模式下,数据始终是跨节点访问的。在EMC模式下,只有当LUN的物理磁盘不在本地节点上的时候,节点之间才交换数据。这带来了两个问题。首先,随着节点的增加,节点<->节点之间的连接数会指数性增加。一个8节点的阵列至少有28个节点到节点的连接(还不包括为冗余所设的连接)。16节点阵列内的连接数量有120个(节点数量增加一倍而节点-节点连接数量增加近6倍),32节点阵列的连接数量将近500个--32节点是VMAX理论上可以扩展到的节点数量。其次是投资回报率递减。随着节点的增多,需要用更多的资源来处理非本地节点上的数据。因此,额外增加的节点所得到的好处有可能不足以弥补因此而增加的成本。

0
相关文章