RedHat GFS 存储解决方案介绍
2009-11-22 17:02:53 阿炯

随着IT应用的广泛及数据共享访问的需求的增加,Linux的集群技术越来越重要,很多情况下会有多个服务器去同时访问共享数据的需要,一般来说,传统的解决方法都是通过NFS/CIFS等方式来实现,或者是通过数据复制的方法来保证数据的一致性。但是通常情况下随着数据海量的增加及客户端数量的增加,NFS/CIFS的性能会很差,而通过数据复制方式又不能保证数据的实时一致性。

为了克服这种弱点,Red Hat 公司提供了自己的解决方案,它通过GFS来共享存储上的同一分区,使服务的各个节点就像访问自己本地文件系统一样,由于采用的是直接的I/O连接和访问方式,大大提升了共享访问同一分区数据的性能。

Red Hat Global File System (GFS)是一个开放源代码的,POSIX兼容的Cluster文件系统和卷管理系统,它运行在Red Hat企业Linux上,支持SAN (Storage Area Netowrk)。GFS支持Red Hat 企业Linux支持所有主要服务器和存储设备。它是Linux上的领先的第一个Cluster文件系统,和其它Cluster文件系统相比,GFS有着最强大的功能,广泛的支持和最好的性价比。

Red Hat GFS使运行Red Hat 企业Linux的多台服务器可以同时读写在SAN/ISCSI上的同一个共享文件,提供了更高的文件访问性能,降低了系统的复杂性和数据冗余备份的成本,保证了系统的数据完整性和统一性。Red Hat GFS具有防止单点失效的高可用功能,可以提供从一台到几百台运行Red Hat 企业Linux的服务器提供服务,同时可以很好地和Linux上的各种应用程序保持兼容,共同工作。

Red Hat GFS和Red Hat企业Linux紧密地结合在一起,可以通过Red Hat Network来进行安装、升级和管理。各种应用程序如Oracle 9i RAC、在Cluster计算环境中的workloads 、文件服务、web和邮件服务都可以和Red Hat GFS完美的结合工作并达到更好的性能。

通过GFS可以:
● 简单布署你的数据架构:只需安装应用程序一次,而服务于整个集群系统,减少数据冗余复制需求 简单实现备份和恢复任务
● 最大限度使用存储资源,最小存储把投资费用管理整个存储系统做为一个整体 减少数据复制
● 可以无缝地扩展集群系统,可以在线增加存储或服务节点 不需要复杂的技术来管理多个分区增加服务节点只需要一条mount命令就可以完成
● 最大提升应用程序的高可用性 Red Hat Cluster Suite 服务组件包含在GFS内
● 运行在多种平台架构 GFS可以支持x86, AMD64/EM64T, and Itanium平台架构
● 最大扩展Linux集群文件系统 可以最大支持到300个节点
● 紧紧结合Red Hat Enterprise Linux Server 不需要任何补丁
● 是目前唯一的遵循GPL协议的集群文件系统
● 完全Posix兼容 确保应用程序不需要重新编译就可以运行在GFS环境中

GFS文件系统通过一个或多个存储单元来构建一个存储池,集群中的节点通过SAN可以连接到指定的存储池,这样每个集群节点就可以通过一个或多个路径把存储池连接到网络应用中,由于存储池连接方式是通过直接I/O连接方式,所以可以大大提升I/O性能。

由于多个集群节点通时访问/读写同一分区/数据,就必顺通过一个或多个管理服务器来保证数据的一致性,在GFS中,管理服务器叫DLM (distributed lock manager),通过DLM可以与每个集群节点心跳通讯,以确保数据完整性,及节点健康性,一旦发现某个节点通讯有问题,它会把该节点从集群中隔离出来,直到该节点重新恢复,才能再加入集群节点中。

考虑到DLM服务器的高可用性,GFS可以通多设置多个DLM的备份,一旦主DLM发生故障,备份的DLM就可以接管作为主DLM来管理整个GFS。所以从节点到DLM,都可以实现HA的功能 ,就不存在单点故障的问题,可以确保GFS最高程度的高可用性。

红帽GFS是Linux操作系统上唯一针对企业应用的Native64位集群文件系统,支持x86、AMD64/EM64T和Itanium等处理器平台。它还是Linux系统上扩展能力最强的企业集群文件系统,支持多达300个结点。GFS与红帽企业版Linux紧密集成,并且兼容POSIX,这意味着客户不必为了使用GFS而重新编写应用。红帽GFS获得Oracle、EMC和NetApp的支持,包括Oracle解决方案在内的广泛业界支持标志着开源集群文件系统的成熟以及企业对此类系统的强劲需求。

Red Hat GFS实施方式

Red Hat GFS软件同时包含Red Hat Cluster Suite套件,通过与Red Hat Cluster Suite结合使用,便产生两种实施方式。

GFS和Cluster Suite共同组建的HA方式

由于Red Hat Cluster Suite最大可以支持16个节点,所以如果构基于Cluster Suite的GFS实施方式,其可实施的最大节点也为16个。GFS做为服务中的资源。通过在Cluster Suite中设置相应的GFS节点,可以实现GFS的高可用性特征,这时一组节点内的服务只能在一个节点上运行,一旦该节点出现故障,其余的节点可以根据 Cluster Suite的配置策略来接口故障的节点。

HA+GFS解决方案

GFS独立运行方式 此种方式把GFS单独配置,不受Cluster Suite中的Service控制,故其不受Cluster Suite的影响,最大可扩充支持到300个节点。从而体现其广泛的可扩展性。

SAN GFS技术特征
● 主要应用于大文件和文件系统
● 支持最大300个节点
● 支持CLVM,实现卷管理
● 支持多种锁管理机制
● 每个节点都具有数据和元数据日志
● 支持x86/EM64T/AMD64/IA64
● POSIX兼容
● 在线文件系统管理 可以动态扩充 可以动态调整inodes
● 完全的读/写缓存
● 直接I/O能力
● CDPN支持(Context Dependent Path Names)
● 支持磁盘配额
● ACL支持
● 连贯的共享mmap()支持
● 避免中心数据结构存储
● 支持SAN/GNBD/ISCSI

锁管理器
GFS支持三种锁管理机制DLM、GULM、nolock。DLM是默认最优的锁管理器。

● DLM锁管理器
DLM(Distributed Lock Manager)是最优的锁管理器,它避免了GULM锁管理方式中必须提供GULM 锁管理服务器的缺点,不再需要设定锁管理服务器,而是采用对等的锁管理方式,大大提供处理性能,DLM避免了当单个节点失败需要整个恢复的性能瓶颈,DLM的请求是本地的,不需要网络请求,立即生效,通锁分层机制,DLM实现多个锁空间,并行锁模式。

● GULM锁管理器
GULM是GFS6.1以前的锁管理器,它必须要设置一个锁管理服务器,是一种client/Server的锁管理方式,显示易见,所有的锁请求必须要与锁管理服务器通讯。而且当节点增大的一定数量的时候,可能会出现磁盘的交换,降低了整个GFS系统的性能。

● nolock锁管理器 nolock实际并不是一个集群管理锁机制,它只能用于单个节点的GFS系统。一般用来测试和实验用。

GFS 6.1与GFS 6.0对比

GFS 6.1是一个成熟的、高可扩展的、高性能的集群文件系统,支持分布式锁管理,成熟的LVM2卷管理系统,而且与Red Hat Enterprise Linux紧密集成的系统。GFS 6.1与GFS 6.0相比尤其在性能上得到很大提升,包括快速的磁盘扫描、避免Kernel Panic,并且与Red Hat Cluster Suite紧密结合,而且其DLM的锁管理技术已经被Linux Kernel社区接纳。

Red Hat GFS 6.0     Red Hat GFS 6.1
Red Hat Enterprise Linux 3 support     Yes     No
Red Hat Enterprise Linux 4 support     No     Yes
LVM2 support     No     Yes
Pool support     Yes     No
Improved fsck     No     Yes
DLM support     No     Yes
GULM support     Yes     Yes
Cluster Suite infrastructure     No     Yes
Mount point withdraw     No (panic instead)     Yes

Red Hat GFS和Red Hat Cluster Suite的比较

Red Hat Cluster Suite和Red Hat GFS最大的区别在于它们的数据访问功能。Cluster Suite在同一时间只能有一台服务器访问共享磁盘上的一个磁盘分区。GFS却可以在同一时间内多台服务器同时访问共享磁盘上的同一个磁盘分区,甚至同一个文件。

Cluster Suite通过失败切换功能提供了HA功能,GFS不仅提供了HA功能,还同时允许多台服务器同时访问同一个磁盘分区和文件。GFS同时包含了Cluster Suite功能在内,这样可以为那些不支持并发访问功能的应用软件提供HA功能。

Red Hat GFS和Red Hat Cluster Suite运行在Red Hat 企业Linux AS或ES上,支持Intel X86/Itanium2/EM64T和AMD AMD64平台。Red Hat Cluster Suite提供了简单的、低成本的高可用方案,Red Hat GFS提供了更加灵活的、更强大的数据访问功能。