在高性能专用存储网络需求的驱使下,SAN存储区域网络系统大量应用于高性能计算网络系统、大型网站系统、非线性编辑系统等网络系统中,存储设备与计算机主机系统之间一对一的关系,被可供多个系统共享同一个存储设备网络的关系所取代。为确保多大量客户端主机对同一存储设备的共享访问权限和和管理权限的统一,就需要安装专门的存储共享管理软件或采用专门的共享文件系统。SANergy、ImageSAN、StorNext、GPFS、CXFS等软件或文件系统就是为了实现存储设备共享而开发的。
一、典型SAN共享系统
在说到SAN网络存储共享管理软件之前(假设你对SAN、NAS、DAS和ISCSI技术的特点和区别已经很熟悉),我们先来看一看常用的、或典型的FC-SAN存储网络和IP-SAN存储网络架构的特点。
FC-SAN共享存储系统结构图:
(图1)
大型FC-SAN存储共享系统经常被称“FC+LAN”双网结构,这是指在本该系统由FC光纤通道网络和LAN以太网络两个网络共同构成,其中以太网络负责工作站与MDC(MetaData Controller)服务器与工作站之间的元数据信息传输和交换,FC光纤通道网络只负责实际数据的高带宽传输。这种网络结构可充分利用两种网络的特点,发挥两个网络的最大效率。
IP-SAN共享存储系统结构图:
以iSCSI设备为核心存储的IP-SAN采用了与FC-SAN类似的结构,典型的ISCSI存储网络系统结构如下所示:
(图2)
IP-SAN一般被称为单网结构,是指MDC服务器与工作站之间的元数据和实际数据都是通过以太网络来进行传输和交换。单网结构具有网络结构简单,可充分利用现在设备,系统建设时对现在系统修改较小,管理维护方便等特点。
一、SANergy
SANergy可以理解为一个文件系统的扩展,它能提升嵌入Windows NT、Windows 2000®、Unix和Machintosh操作系统内部的分布式数据共享能力。SANergy可以将标准网络文件输入/输出,由LAN重新指向SAN。普通的网络协议(CIF或NFS)在标准的LAN上建立连接以共享文件,而数据本身通过更高效的SAN以高得多的带宽传输。与SAN连接的存储介质可被格式化成NTFS、UFS或EXT FS格式或支持SANergy open API的任何其它文件系统。
SANergy将标准的Windows NT、Windows 2000、SUN Soloris™或Red Hat Linux®文件服务器扩展后,充当共享式存储器的元数据控制器(MDC)。这个MDC通过运行SANergy客户端软件的计算机,管理对SAN存储器的访问。通过提供重要的文件系统元数据,MDC在客户计算机提出请求时,管理对公用存储器的访问。然后,客户机可以通过SAN的连接直接访问该存储器。
SANergy对大部分系统服务或应用程序提供透明支持,使用户能够通过实施存储区域网络(SAN)透明地共享公用存储器、卷和文件的存取;可以使UNIX®、Windows NT®和 Apple Macintosh系统在卷、文件和字节级上跨平台共享存储资源,从而比基于服务器共享的方式大大增加吞吐量,降低管理费。
SANergy不是一个独立的文件系统,而只是一个文件I/O 重定向程序。它截取文件I/O 重定向到MDC 文件系统管理的磁盘,所以它只是一个SAN 文件系统外壳软件。MDC对磁盘及文件系统的管理视主机平台而定,如是Windows就是NTFS、Solaris,就是UFS、Linux就是EXT2等。在异构操作系统平台之间共享数据需要采用NFS 协议处理,性能表现不佳,实现可用性不高,不能满足混合平台、大量主机并发工作环境中的性能要求。
工作站以网络文件系统方式安装共享磁盘,而SANergy不是独立的文件系统,它必须以网络文件系统的形式安装在主机上(Windows就是网络盘符、UNIX和Linux就是NFS文件系统),那些不能在网络文件系统上处理数据的应用就无法运行,或运行效率和很低。除了MDC 外,所有SANergy主机都无法为其他LAN主机提供数据共享,因为它本身就是网络文件系统,不能再次共享。
Metadata传输占用LAN带宽高,占用MDC主机资源多,不能支持大量主机并发访问。SANergy使用NFS/CIFS文件传输协议传输Metadata信息,不仅占用很大的LAN带宽,而且由于MDC必须运行NFS/CIFS服务器处理连接,所以消耗资源很大,在高负载环境中效率低下依赖其它文件系统技术处理硬件,在高负载环境中数据处理性能低下SANergy MDC只有在Windows或AIX环境下才可以双机切换,而且需要机群软件支持。如果MDC 主机是其它UNIX或Linux,就无切换功能。这个约束极大降低了SANergy系统的可靠性和可用性。
笔者注:
SANergy软件安装和使用简单方便,需要进行设置的参数项少,任何人只需要进行简单地培训就可以使用。虽然SANergy软件的官方价格仍然很高,但实际上其它盗版到处都有,不需要注册码且可以长期使用,与从官方购买到的软件完全相同。因此对于一些存储需要共享但又不想花买正版软件的人来讲,应该是一个不错的选择。
然而,经本人长期亲自使用后发现,SANergy软件的稳定性和安全不足。虽然官方一直声称主机数没有限制,但实际上当网络中的主机数量到达100-150时,MDC服务器性能会大幅度降低,经常出现一些莫名其妙的问题,可能会引起数据丢失或文件系统损坏,系统运行和维护管理要求严格,必须在对共享网络存储有深入了解的技术人员指导下来进行日常维护。目前官方已不再对SANergy的后期开发和升级,改去开发新的共享软件,但不知道还提供SANergy软件的后期技术支持。
另外,SANergy软件在异构操作系统平台下表现不佳,实际性能只相当于同构性的1/4-1/5,这个性能远不能满足系统正常运行的需要。
二、ImageSAN
ImageSAN是Rorke Data公司专门针对广电行业音视频(AV)SAN网络存储应用而研发的,是Windows NT/2000/XP及Macintosh OSX环境及混合环境的SAN解决方案,并提供广泛的应用支持和高适应性的容错能力。基于ImageSAN的存储共享解决方案通过速度、协作和多任务提高了视频、音频及图形编辑系统的网络化处理能力。
MDC设置:ImageSAN可以保证卷Master的动态切换,确保高可用性。在对等网中,每一台主机都有可能成为卷Master。从成本考虑,用户根本不必花费额外的MDC费用。而从安全性等方面考虑,当网络中主机数量大于10时,用户往往使用域模式(并不是必须如此,取决于用户以太网的设置),单独设置了一台域服务器,ImageSAN就可以指定该服务器为Master。同类其它产品则完全依赖MDC,MDC一旦出故障,将导致整个网络瘫痪。
二次共享:在每一台ImageSAN工作站上,SAN共享卷都直接显示为本地硬盘。由于具有所有本地硬盘的特性,SAN存储卷可以再映射到以太网以便共享。这样,SAN以外的以太网工作站也可以访问SAN中的资料。更重要的是,SAN中的每一台主机都可以面向以太网共享同一SAN分区(用户权限支持)。整个网络的处理能力分担了原来单台服务器的负载,大大减小了网络瘫痪的可能性。这一点特别适合无卡网络编辑的要求。
动态高可用冗余标准:ImageSAN网络中的Master如果出故障,同一网络中的工作站都可以接管成为Master。而且,SAN中的每个卷都可以单独指定自己的Master,也可让网络选举产生Master,非常灵活。如果通过其他软件管理SAN,Master的MDC出故障,就要靠Slave的MDC接管。如果Slave的MDC也出故障,将导致整个网络瘫痪。
笔者注:
ImageSAN软件在视频共享网络环境中性能表现良好,但在非视频共享环境中表现一般。感觉上ImageSAN实际使用的案例比较少,特别是大型网络系统中很少用到ImageSAN,非视频共享行业用户对ImageSAN更少听闻。
三、StorNext
StorNext FS是完全为SAN网络环境设计的文件系统,不依赖于任何现有操作系统中附带的、独立的、跨平台SAN文件系统。
StorNext FS是真正的64位文件系统,可以保证管理巨大的磁盘空间和文件数量,不同类型的主机可以同时以FC Direct I/O方式访问数据,中间不需要任何协议转换。因此,StorNext FS 可以充分利用和发挥SAN 体系结构的所有优点,完全摆脱现有文件系统产品的结构束缚,特别是在混合平台、大量主机并发工作环境中优势非常突出。采用日志型文件系统的设计保证系统的可靠性、健壮性和快速恢复能力。
StorNext FS直接通过TCP/IP协议传输Metadata,MDC采用优化算法处理Metadata,Metadata传输占用LAN带宽低,占用MDC主机资源少,可以支持大量主机并发访问,因此传输和处理效率非常高,可以满足大量主机在高负载环境下并行工作的要求。
StorNext FS具有自己的磁盘逻辑卷管理功能,可以优化组合SAN中的磁盘资源,并且可以对SAN网络链路进行多通道并发处理、保证带宽质量和实现负载均衡。加上StorNext SM 管理模块,可以管理多种磁带库和磁带介质具备多种SAN网络和磁盘优化功能,可充分发挥硬件性能,在高负载环境中数据处理性能突出。
StorNext FS的Metadata控制器可以在任何类型的主机(多达7 台)中进行切换,因此可以最大限度地保证系统的连续、可靠运行。
由于StorNext FS 是独立的文件系统,工作站以本地文件系统方式安装共享磁盘,共享磁盘直接显示为本地磁盘,可进行二次网络共享,所有应用软件都可以以本地磁盘和文件系统方式处理StorNext FS 中的数据。
具有原始集成的HSM数据归档、迁移、备份和容灾功能(StorNext Storage Manager),StorNext FS是符合XDSM数据管理标准的文件系统,具备内置的数据迁移、保护、容灾等管理模块 ?C StorNext Storage Manager 实现跨存储介质的、长期的数据存储和保护解决方案。
笔者注:
StorNext软件是目前最热门的存储共享管理软件,因此软件价格也居高不下,当网络规模较大时,可能StorNext软件的购置费用就会占用非常大的一部分成本。
StorNext设置参数较多,技术人员要求较高。听说朋友说StorNext的问题与SANergy相比并不少,且出了问题难以排查。
四、CXFS
CXFS是可扩展的日志性群集文件系统,具高可扩展性。单一文件大小可以达到九百万TB,文件系统可以达到1800万TB。动态分配算法使得一个文件系统可以存储数百万个文件而不浪费磁盘空间,单一目录管理百万个文件而不影响性能。
CXFS通过使用先进的XVM卷管理工具,一个磁盘卷可以有几千个磁盘构成,当现有磁盘卷容量不能满足用户需求时,可以在线增加新的磁盘,确保CXFS能满足日见增长的存储需要。
网络的速度、服务器的能力和协议本身都是NFS性能的障碍。NFS协议是同步操作,每一数据块请求都需要两次网络I/O;CXFS只通过网络请求少量的Metadata信息,大量的数据I/O是直接通过读写磁盘实现的。另外CXFS还可以在单一系统I/O路径使用多块FC卡增加I/O带宽。因为CXFS服务器只在数据传输之初将文件信息和文件控制权限赋予CXFS客户机,而不参与每一次的数据传输,所以CXFS服务器并不需要很大即可支持大量的客户机。
CXFS被设计成能自动识别并恢复单点失败,单点失败包括:主Metadata服务器失败、SAN失败、TCP/IP网络失败等。在CXFS配置中,一台主机是Metadata服务器,所有其他主机都可以设计成备份Metadata 服务器,一个备份服务器探测到主Metadata服务器失败后将自动变成主Metadata服务器。
笔者注:
据官方工程师讲,为了有效地利用CXFS文件系统,建议除了普通的以太网络和SAN网络之间,再建立一个“第三网”,该网络只负责CXFS管理服务器和客户端工作站之间的元数据信息和指今的管理和传输。
笔者曾在2004年测试过CXFS文件系统,测试网络采用双网结构,未建立所谓的第三网。测试发现以太网的流量会随CXFS文件系统使用时间的延续而不断增加,网络的效率也会不断降低,直至最终网络堵塞。先后共三个时间三个不同网络环境测试的结果相同。后听说官方就此问题进行了再次开发仍然未解决该问题。后来怎么样就不是很清楚了。
五、GPFS
通用并行文件系统 (General Parallel File System ?C GPFS)将所有的物理资源(包括服务器和磁盘阵列)都视为虚拟文件系统的对象,允许使用者共享分布在多个节点和多个磁盘上的文件。它允许并行的应用程序同时从GPFS 节点组(nodeset)中的任何节点访问相同或不同的文件(节点组 nodeset 被定义为一组运行相同版本GPFS的节点)。
一个GPFS文件系统可以横跨在群集内的所有主机上,分布在所有磁盘上。GPFS文件系统在读写文件时采用条带化技术,将数据分成条带并行写入到该GPFS下的所有NSD中。在有高速数据通道的GPFS配置下,读写文件时可以通过所有主机的光纤通道访问所有的磁盘。
GPFS文件系统的设计目标是使数据分布在一个集群中的所有节点上,允许应用程序通过标准的UNIX文件系统接口来访问数据。大多数的UNIX文件系统被设计在单一服务器环境下使用,在这一环境下, 增加文件服务器也不会提高特定的文件存取的性能。
GPFS通过将I/O分布在多个硬盘提高性能,通过日志和复制的方式提高数据的可靠性,通过增加节点和在节点之间由SP Switch互联提高系统的可扩展性。
通过将文件分布在多个节点和磁盘上,GPFS可以超越单一节点和单一文件系统的性能极限。文件系统能够跨越多个节点和多组磁盘,这些磁盘可以是使用 SSA 技术在HACMP群集里面直接地连接到每个节点上进行物理共享,也可以是由IBM的VSD(Virtual Shared Disk)和SP Switch技术使经过软件进行共享。
GPFS的系统资源可以动态调整,可以在文件系统挂载情况下添加或者删除硬盘。当处于相对空闲时,用户可以在已配置的硬盘上重新均衡文件系统以提高吞吐量。可以在不重新启动GPFS服务情况下添加新节点。
GPFS还通过用户端的数据缓存,大的文件页的支持 (16 kB- 1024 kB),文件预读和延迟写的功能等技术提高性能,其性能超过网络性文件系统 (NFS),分布式文件系统(DFS)和日志文件系统 (JFS)。与这些文件系统不同,GPFS文件系统可以通过在群集或SP系统中增加节点的方式提高性能。
GPFS是一种日志文件系统,为不同节点建立各自独立的日志。日志种记录Metadata的分布,一旦节点发生故障后,可以保证快速恢复数据。GPFS fail-over功能通过规划,将数据分布到不同failure group内达到高可用性,减少单点故障的影响。为了保证数据可用性,GPFS在多个failure group内为每个数据实例做备份,即使创建文件系统时没有要求复制,GPFS也会自动在不同的failure group内复制恢复日志。
除了已有的AIX管理文件系统的命令, GPFS还提供简化多节点管理的功能。一个GPFS多节点命令能作用于集群中所有的节点,并且可以从群集中的任何节点上操作。这些命令以现有的AIX文件系统命令为基础, 并进行了扩充。GPFS支持X/Open 4.0的文件系统标准,大多数的AIX和 UNIX操作系统的应用程序不需要修改,就可以访问GPFS文件系统上的数据。这些特性使得GPFS文件系统可以替代其他的UNIX文件系统。
笔者注:据朋友说,GPFS目前只能有IBM服务器和存储平台上正常运行,其它的平台运行效率不佳。未经证实,也不知道是否正确。
六、GFS
Global 文件系统(Global File System, GFS)是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。每一台linux主机都可以将网络共享磁盘看作是本地磁盘,且GFS也以本地文件系统的形式出现。
采用GFS的存储共享系统由一个master和大量的chunkserver构成。只要资源和可靠性允许,chunkserver和client可以运行在同一个机器上。
文件被分成固定大小的块。每个块由一个不变的、全局唯一的64位的chunk-handle标识,chunk-handle是在块创建时由 master分配的。ChunkServer将块当作Linux文件存储在本地磁盘并可以读和写由chunk-handle和位区间指定的数据。出于可靠性考虑,每一个块被复制到多个chunkserver上。默认情况下,保存3个副本,但这可以由用户指定。
Master维护文件系统所以的元数据(metadata),包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,chunkserver间的块迁移。Master定期通过HeartBeat消息与每一个 chunkserver通信,给chunkserver传递指令并收集它的状态。
与每个应用相联的GFS客户代码实现了文件系统的API并与master和chunkserver通信以代表应用程序读和写数据。客户与master的交换只限于对元数据(metadata)的操作,所有数据方面的通信都直接和chunkserver联系。
客户和chunkserver都不缓存文件数据。因为用户缓存的益处微乎其微,这是由于数据太多或工作集太大而无法缓存。不缓存数据简化了客户程序和整个系统,因为不必考虑缓存的一致性问题。但用户缓存元数据(metadata)。Chunkserver也不必缓存文件,因为块时作为本地文件存储的。
元数据(metadata):master存储了三种类型的metadata:文件的名字空间和块的名字空间,从文件到块的映射,块的副本的位置。所有的metadata都放在内存中。前两种类型的metadata通过向操作日志登记修改而保持不变,操作日志存储在master的本地磁盘并在几个远程机器上留有副本。使用日志使得我们可以很简单地、可靠地更新master的状态,即使在master崩溃的情况下也不会有不一致的问题。相反,mater在每次启动以及当有 chuankserver加入的时候询问每个chunkserver的所拥有的块的情况。
以上所论述的都是目前常用的SAN网络存储共享管理软件,实际上还有一些不常用或新开发的存储共享管理软件,如SANFS。国内广电行业两大集成商也在开发自己的存储共享管理软件,目前第一个版本正准备在一个大规模网络系统中进行测试。我期待其有良好的测试结果。
在本文的编写过程中,我参考了一些公司官方资料或网友的文章,特些声明并表示感谢。