
一、GPFS系统介绍
GPFS (General Parallel File System) 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术 ( VSD )。作为这项科技的核心, GPFS 是一个并行的磁盘文件系统,它确保在资源组内的所有结点可以并行访问整个文件系统。而且对于此文件系统的服务操作,可以同时安全地在使用此文件系统的多个节点上推动。 GPFS 允许用户共享文件,而这种文件或许分布在不同节点的不同硬盘上。它提供了许多标准的 UNIX 文件系统接口,允许应用不需修改以及再次编辑就可以在其上运行。 GPFS 也支持 UNIX 文件系统的软件,即:用户可以像使用普通文件系统一样使用基于 GPFS 的文件系统,唯一不同的在于管理 GPFS 文件系统的命令。 GPFS 提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点(这些节点属于同一个节点组)上的并行应用同时访问同一个文件以及不同的文件。
二、GPFS基本机构
GPFS文件系统基本上由三层构架组成:磁盘、网络共享磁盘(NSD)、GPFS 文件设备。如下图所示。

GPFS 文件系统最底层的是物理磁盘设备。原则上可以采取系统上任何块设施,包括硬盘,磁盘分区,逻辑卷。从物理连接上来看,GPFS 支持使用所有方法连接的磁盘。包括本地 IDE 磁盘,本地 SCSI 磁盘,光纤 SAN 磁盘,iSCSI 磁盘,等等。
NSD 是由磁盘映射出来的虚拟设备,NSD 与磁盘是一一对应的关系。NSD 被标记了不同属性来辨别其功能,我们可以将磁盘标记为 4 种用途:
1>Desc Only:只存储 GPFS 文件系统表述信息的磁盘
2>Data Only:只存储文件系统中的数据信息

3>Meta data only: 只存储文件系统中的目录结构 inode 信息
4>Meta and data: 存储所有信息(默认)。
GPFS文件设备是一个可被平台挂载的文件设备,由 NSD 创建而成,可以并行的同时挂载在多个节点上。
三、GPFS相关术语
这里指的是硬盘传输设施通过光纤交换机连接到服务器的HBA卡,为服务器提供逻辑传输LUN的方式,在GPFS集群上面,可以借助将同一个LUN同时划分给多台服务器的形式为GPFS提供共享磁盘。
磁盘指的是LUN在服务器上识别出的设备。
NSD是Network Shared Disk的缩写,最早应用在GPFS的Linux集群里面。是GPFS实现的一种通过网络共享磁盘的科技,集群结点可以借助标准以太网访问NSD,使得不需要将集群的所有的节点都连到SAN上,而是基于NSD创建GPFS文件系统。NSD使用TCP/1191端口。
VSD是Virtual Shared Disk的缩写,源自基于IBM SP、Switch2、HPS交换机的共享磁盘技术,VSD依赖于RSCT域。GPFS看待VSD就像服务器自己的内存一样,可以基于VSD来构建NSD。
文件系统,是物理内存设备和用户之间的接口,其将物理内存设备划分为数据块,并在数据块之上建立数据和元数据的数据结构,达到便捷用户(应用程序)对数据操作的目的。GPFS通过条带划技术将数据并行分布到所有共享磁盘里面,并支持如下数据块大小 :16K, 64K, 128K, 256K, 512K, 1024K(1M), 2M, 4M,其中2M和4M是3.1版新提高支持的数据块大小。

失效组,是指按照磁盘的物理特征划分的不同的组,避免两个不同的失效组在同一个时间点失效。
当GPFS的复制功能引入时,GPFS文件系统的数据和元数据将被保存两个分布在不同的失效组的副本,当其中一个副本不只用时,另一个副本将使文件系统保持可用。
集群数据服务器是集群中储存集群配置信息的结点.集群配置信息储存在集群数据服务器的/var/mmfs/etc/mmsdrfs文件中。可以配置一个主集群数据服务器和一个备份集群数据服务器。集群推进时必须起码有一个集群数据服务器可用。
配置管理器,在GPFS集群上有最长连续运行时间的节点自动被选为配置管理器,配置管理器有两个职能:1.选择文件系统管理器;2.判断quorum是否满足。
文件系统管理器,每一个GPFS文件系统被分配一个文件系统管理器,文件系统管理器有3个功能:1.文件系统配置管理,如减少磁盘,修复文件系统 ; 2.文件系统mount 和umount处理。 3.磁盘空间分配管理。
执行分布式Token管理的用途节点,由集群管理工具按照工作负载状况动态地选取那些节点、多少节点执行Token manager的用途。 Token用来维护节点间数据的一致性和完整性。
quorum机制决定了大约有多少个quorum节点可用时,集群才可以开启。Quorum的算法为:quorum = 1 + sizeof(quorum nodes)/2。
存储池,是指一组磁盘设备,可以按照磁盘的性能和其它物理的、价格的属性分为不同的存储池,从而推动层状的储存架构。存储池是GPFS3.1新增的信息生命周期管理的重要概念。例如可以将某一SAN里面的光纤硬盘和SATA磁盘分为两个存储池。
文件集,也是GPFS3.1版新增的概念,是文件系统的一个子集,粒度介于文件系统和文件(文件夹是一种特殊的文件)之间。

规则,是用类似SQL的结构化语法定义的,可以被 GPFS信息生命周期管理规则引擎解释执行的一组语句。有文件放置规则、文件迁移规则、文件删除规则等。例如可以编写一条文件放置规则,定义某个文件集里面owner为CEO的所有文件保存在名为FCstoragepool的存储池。
四、GPFS系统优势
GPFS 允许在同一节点内的多进程或者应用使用标准文件系统读取,同时访问(并发,读写)同一个文件。通过将节点内读写操作分布到多个磁盘上,大大增加了文件系统的带宽,通过整个平台的负载均衡避免了某个磁盘过大的读写。
设计GPFS 支持在一个集群内加入异构的系统。支持异构的软件环境:System p, System x。支持异构的操作系统:AIX, Linux。
GPFS 通过一套复杂的鉴权管理制度提供数据一致性。通过这套体系允许任意节点通过各自独立的模式到达同一个文件。即使节点能够正常工作, GPFS 也可以找到其他的模式。
GPFS 是一种日志文件系统,为不同节点创建各自独立的日志。日志中记录 metadata 的分布,一旦节点出现故障后,可以确保迅速恢复数据。GPFS 的 fail-over 功能借助规划,将数据分布到不同 failure group 内超过高可用性,减少单点故障的制约。为了确保数据可用性, GPFS 在多个 failure group 内为每个数据案例做备份,即使建立文件系统时没有要求复制, GPFS 也会自动在不同的 failure group 内复制恢复日志。
通过GPFS,系统资源可以动态微调,可以在文件系统挂载情况下添加以及删除硬盘。系统进入相对空闲时,用户可以在已配置的内存上再次均衡文件系统以提升吞吐量。可以在不重新启动 GPFS 服务状况下添加新节点。
GPFS 自动在各个节点间同步配置文件和文件系统信息windows并行文件系统,而且在同一个节点内,对 GPFS 的管控可以在任一个节点上进行。
五、GPFS可用性机制

GPFS 的数据完整性一方面是由以下提及的数据安全模式来确保,另外也借助一套可用性判断模式来完全确保数据完整性与平台安全。 GPFS 提供三套不同的 quorum 机制来判定系统当前的状况,其中 File Descriptor Quorum 是平台内置的,不能做配置,另外两种 node quorum 和 tiebreaker quorum 方式只能两者选其一,使用哪种方法要基于我们的平台环境与可靠性分析。
1)File system Descriptor Quorum,File system Descriptor 顾名思义即表述文件系统信息的数据。我们在几个不同的 failure-group 的磁盘上构建 GPFS 文件系统时,会把文件系统的配置信息(简写为 FD)的拷贝写到多个磁盘上,以实现冗余备份。FD quorum 的模式即借助判断带有 FD 磁盘的情况来判定当前平台能否正常,当达到半数的含有 FD 的磁盘掉线时,就判定为平台故障,将会自动关闭文件系统。
2)Node Quorum 是借助主机状态的来判定系统可用性的模式。GPFS 文件系统集群中,可以修改多个主机节点为 Quorum node。Node Quorum 的模式是借助判断 Quorum node 的状况来判定系统能否正常,当达到半数的 Quorum node 时,判断平台为正常,反之,将关闭文件系统。
3)Tiebreaker quorum 是借助磁盘的状况来判定系统的可用性。我们可以修改平台借助监视指定的一些磁盘作为 Tiebreaker Disk。当达到半数的 Tiebreaker Disk 掉线时,则判定系统告警,将手动关掉文件系统。Tiebreaker 最多只能配置两个用来监控磁盘状况的 quorum 主机,当 2 台 quorum 主机都宕机的话,GPFS 系统也即将关闭。其劣势在于节点数较少时可用性较高,但节点数众多的状况建议采取 Node quorum 模式。
根据以下三种判断模式,GPFS 自动判定系统的状况,当异常出现时自动关闭平台以保护系统和数据的完整性。
六、GPFS可靠性分析与如何设计
基于上面列举的 GPFS 可用性机制,我们可以看出 GPFS 是借助上述的三种 quorum 机制来检测资源能否达到半数状态正常来判定系统状况好坏。我们在设计 GPFS 文件系统集群的之后还要切记最好保证各类资源数都为 2N+1 个(N 是指数量),也即总数为奇数,来获取平台最大的可用性。
我们在通常的制造平台中就会使用两组不同的 failure group 的磁盘来建立一个文件系统,以推动数据的冗余保护windows并行文件系统,但是损坏一个 failure group 的磁盘实际不妨碍数据的完整性,但是因为 FD quorum 2N+1 的模式,文件系统仍将要关闭,所以我们在建立一个 GPFS 文件系统时,可以借助增加一个很小的本地的磁盘作为第三个 failure group。以实现 2N+1 的冗余设计。本地的磁盘可以修改为只储存 GPFS 文件系统信息(FD),实际不参加数据读写。(同一个 failure group 的磁盘是指有也许同时坏掉的磁盘,比如来自同一个存储的磁盘或连在同一个适配器上的磁盘)
如果采用了 2N+1 个 Quorum Node,那么这个系统能够容忍 N 个主机节点的离线,所以即使主机节点小于 5 个运用此种方法都不是很经济,此时建议采取 Tiebreaker quorum 机制。
只能配置两个 quorum 主机,但是只要 tiebreaker 磁盘,只有一个 quorum 主机状态正常,系统也能正常工作,同时也意味着必须有一台 quorum 主机。如果是主机节点数众多的状况,采用此种机制其可靠性不如 Node quorum。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-120922-1.html
马云在体制外演讲
恶意投诉