存储作为数据中心的重要组成部分之一,由于相关硬件组件与存储操作系统的多样性和复杂性,如何在保证存储稳定、安全、可靠的同时,实现灵活扩展和自服务,一直是困扰数据中心全面云化的难题。
如下图所示,常见的存储系统通常可分为直连存储系统(DAS)、网络连接存储系统(NAS)与存储网络系统(SAN)三大类。
图: 存储系统的三大类
针对这三类存储系统去实现扩展的方式各不相同,我们在下文中分别讨论一下如何对它们实现可扩展性。
(1)DAS系统的扩展性
DAS系统的扩展性通常通过软件的方式来实现,确切地说是应用逻辑在控制数据的分布式存储访问。最典型的例子是Hadoop HDFS,Hadoop类系统并不追求硬件的低故障率,甚至在每个节点上(计算+存储一体化)的硬盘接口连RAID硬件都不需要。见下图,因为在软件逻辑层面,HDFS系统负责在出现硬盘故障(或增加新的节点)时对数据进行自动重新平衡。
类似的DCA(Digital Computing Appliance)或HCI(Hyper-Converged Infrastructure,超融合架构)解决方案中也主要是通过软件系统来实现基于DAS的可扩展存储系统,最典型的两个例子是VMware的Virtual SAN与EMC的ScaleIO。
图:Hadoop原生系统架构(DAS存储架构)
Virtual SAN与ScaleIO都是在DAS硬件架构上提供的可扩展的软件定义存储服务,无独有偶,它们的存储服务接口都是块存储(Block)。不同的是,Virtual SAN与VMware的虚拟化平台vSphere高度绑定(内置于vSphere内核中),而且它的扩展性只能支持到64台主机(在Virtual SAN的早期版本只能支持到32节点)。下图是Virtual SAN的逻辑架构示意图。
图:VMware Virtual SAN
ScaleIO的特点则是几乎可以在任何Linux类型操作系统或虚拟化平台上运行,而且它的水平可扩展性达到了上千节点,在性能上系统吞吐率(IOPS)随节点数增加呈线性增长。在下一章,我们会对ScaleIO系统深入剖析。
(2)NAS系统的扩展性
NAS系统是基于IP协议的高性能文件共享存储系统。专用的NAS存储设备通常由NAS机头与底层存储阵列构成,如下图所示。NAS机头(或者称作控制器)主要提供与客户端网络连接、NAS管理功能。例如,可将文件级请求转换为数据块存储请求,以及将数据块级提供的数据进一步转换为文件数据。存储阵列则可以独立于NAS机头,并可与其他主机共享(例如服务其他存储接口类型)。
图:NAS存储系统构成组件示意图
NAS系统扩展最典型的例子是EMC公司的Isilon产品,除了为业界所熟知的OneFS文件系统,在一个逻辑文件系统内可以管理超过50PB的巨大容量以及支持高达375万的IOPS,它对Hadoop系统的优化也值得业界借鉴。Isilon对Hadoop系统的优化主要集中在两点上,见下图。
· 把计算与存储节点分离(解耦),这样计算能力(MapReduce)与存储能力(HDFS over Isilon节点)可以独立地根据需要自由扩展,并且通过强化NameNode来避免SPOF。 ·相比于原生的Hadoop默认的3倍镜像(3份拷贝),在OneFS之上只需要1.3倍镜像7。因此Isilon系统反而实现了比基于COTS搭建的Hadoop系统更高的ROI。
图:EMC Isilon强化的Hadoop架构(NAS)
Isilon是如何实现高度可扩展性的呢?这里要引入一个概念:横向扩展的NAS。横向扩展 NAS集群使用独立的内部和外部网络分别进行前端和后端连接。内部网络提供用于群集内通信的连接,而外部网络连接使客户端能够访问和共享文件数据。群集中的每个节点均连接到内部网络。内部网络可提供高吞吐量和低延迟,且使用高速网络技术,例如InfiniBand或千兆乃至万兆以太网。若要使客户端能够访问某节点,则该节点必须连接到外部以太网网络。可以使用冗余的内部或外部网络以获得高可用性。
InfiniBand可提供主机与外围设备之间低延迟、高带宽的通信链路。它可提供串行连接,且常用于高性能计算环境中服务器间的通信。InfiniBand支持远程直接内存访问(RDMA),使设备(主机或外围设备)能够直接从远程设备的内存中访问数据。InfiniBand还支持单一物理链路使用多路复用技术同时传输多个通道的数据。
由以上描述可知,NAS存储系统的可扩展性以及高可用性在很大程度上是依赖于网络设备的,特别是高带宽路由器解决方案来确保分布式的存储系统中的各节点间的高速数据吞吐。以Hadoop over Isilon为例,OneFS的并发数据吞吐率可高达100GB/s7。
图: NAS系统的横向扩展
上图中列出了多个Isilon节点间如何通过InfiniBand交换机实现高速、高可用的内部通信,以及如何通过外部交换机与NAS用户接口。
·本节未完待续·