【存储】GPFS简介及搭建
第一章 GPFS简介
1.1 GPFS 文件系统介绍
IBM的GPFS(General Parallel File System,通用并行文件系统)可以让用户共享文件系统,这些文件系统可以跨多个节点,多个硬盘。GPFS文件系统提供了许多标准的Unix文件系统接口,大多数应用不需要修改或重新编译就可运行在GPFS文件系统上。UNIX文件系统上的实用程序也为GPFS所支持。也就是用户可以继续使用他们所熟悉的UNIX命令来进行常规的文件操作。但是用户需要使用GPFS文件系统的特有的管理命令来管理GPFS文件系统。
GPFS提供的文件系统服务既适用于并行应用也可用于串行应用。GPFS使得并行应用可同时访问文件系统上同一个文件或不同的文件。GPFS特别适合于集中对数据的访问超过了分布式文件服务器的处理能力的应用环境。它不适用于以热备份为主应用环境或数据很容易按照节点划分区的应用环境。
通用并行文件系统(General Parallel File System–GPFS)for AIX是一种高性能共享磁盘文件系统.它可以在一个AIX集群环境中为各节点提供数据存取.并行和串行应用程序可以容易地通过标准UNIX文件系统界面访问共享的文件,并且同一个文件可以被多个节点并发地访问.GPFS的设计通过登录机制和复制机制,提供了高可用性特性,可以配置为在磁盘及服务器发生故障时实现接管.GPFS现在已经被IBM RS/6000 SP集群系统广泛兼容,扩展文件系统I/O,帮助满足广泛的应用需求,如地震数据处理,数字图书馆文件服务器,商务智能中的数据挖掘,等.GPFS for AIX支持IBM eServer Cluster 1600,以及用相应技术将IBM eServer p系列节点组成的集群环境.
1.2 GPFS文件系统的特点
1. 增强系统的性能
使用GPFS文件系统存储和检索文件可以提高系统的性能。
l 使得运行在同一节点集中的多个节点上的进程和应用,使用标准的文件系统调用就可同时访问同一个文件。
l 通过将读写操作分布到多个此盘上提高了文件系统的总体带宽。
l 允许从多节点上进行并发的读/写操作。
2. 保证文件的一致性
GPFS中使用了成熟的令牌管理技术来保证数据的一致性,同时又允许群集中的节点通过不同的途经以相同的名字访问相同的文件。
3. 较强的恢复能力以提高数据的有效性
GPFS是一个日志文件系统,每个节点都有单独的日志,在这些日志中记录了对元数据(metadata)的修改和配置,在节点发生故障时便于快速恢复,保证数据的一致性。
4. 增强了系统的灵活性
使用GPFS,系统资源是可变的,可在文件系统加载时,就进行磁盘的添加与删除操作。如果系统不是很繁忙,还可在文件系统中重新分布数据,以提高文件系统的读写性能。
5. 统一的文件系统管理
GPFS管理命令被设计成,保证群集中节点上GPFS群集数据(有关群集和GPFS文件系统的配置信息)的同步性,GPFS文件系统的管理命令只需在一节点上执行,相关操作就会同步到其他相关节点上。
1.3 GPFS的基本结构
GPFS是一种定义在多个节点上的集群文件系统。运行GPFS的全部节点集称之为GPFS群集。在GPFS群集中,所有节点又被分成多个GPFS节点集,在同一个节点集的节点可共享其所属的GPFS文件系统,而其他节点集中的节点是无法访问它的。GPFS支持lc、rpd、hacmp和sp等多种群集类型。
GPFS群集中的每一节点,都由以下几方面构成:
1. GPFS管理命令
2. 扩展核心
3. 多线程的后台监控程序
GPFS的扩展核心
GPFS的扩展核心为操作系统的vnode提供了一个接口,为增加文件系统提供了虚拟文件系统接口。在结构上,应用程序向操作系统发出一文件系统调用请求,操作系统系统会将此请求转给GPFS文件系统扩展核心。从应用的角度,GPFS只是一个文件系统。GPFS的扩展核心将完成这些请求 -- 通过使用系统中已有的资源 或发送消息给GPFS后台监控程序来完成此请求。
GPFS后台监控程序
GPFS后台监控程序为GPFS完成所有的I/O操作和缓存的管理。 这包括预读(read-ahead)和延迟写(write-behind)。 所有的I/O操作是由令牌(token)来控制的,这确保了建立在多节点上的文件系统中数据的一致性。
后台监控程序是一多线程的进程,有些线程只处理某些特定的功能。忙于日常事务的线程只进行日常事务处理,有专用的线程来响应服务请求。后台监控进程也与运行在其他节点上运行GPFS的实例进行通信,来协调配置的改变、文件系统的恢复和并行修改相同的数据结构。这些具体的功能包括:
·为新文件和新扩大的文件分配空间,这通过与文件系统管理器(file system manager)协商完成。
·目录的管理,包括创建新目录、插入和删除目录中的条目、因I/O的请求而检索相关的目录
·为保证数据和元数据的完整性分配适当的锁。涉及到会从多个节点访问的数据
·磁盘的I/O 是由后台进程中的线程发起的。
·文件系统的安全与配额管理也是由进程协同文件系统管理器共同管理的
1.4 GPFS集群类型
GPFS集群的类型有哪些, 它们各由什么样的环境支持?
网络连接, 磁盘连接, 操作系统和服务器平台与GPFS集群类型的关系如下:
GPFS 集群类型 |
网络连接类型 |
磁盘连接 |
操作系统和服务器硬件 |
存储区域网 (SAN)- 连接于集群的所有节点 |
|||
网络共享磁盘(NSD) 服务器 |
|||
lc(GPFS 2.2) |
具有以下带宽的网络: - 最少100 Mb/秒 - 建议1 Gb/秒 或更高带宽 |
结合 SAN-连接和一个NSD服务器的环境 |
一个由AIX 5L (pSeries)和 Linux (仅在xSeries上)组成的具有协同操作功能的集群 |
存储区域网 (SAN)- 连接于集群的所有节点 |
|||
网络共享磁盘(NSD) 服务器 |
|||
lc(GPFS 2.2) |
具有以下带宽的网络: - 最少100 Mb/秒 - 建议1 Gb/秒 或更高带宽 |
结合 SAN-连接和一个NSD服务器的环境 |
一个由AIX 5L (pSeries)和 Linux (仅在xSeries上)组成的具有协同操作功能的集群 |
存储区域网 (SAN)- 连接于集群的所有节点 |
|||
网络共享磁盘(NSD) 服务器 |
|||
lc(GPFS 2.2) |
具有以下带宽的网络: - 最少100 Mb/秒 - 建议1 Gb/秒 或更高带宽 |
结合 SAN-连接和一个NSD服务器的环境 |
一个由AIX 5L (pSeries)和 Linux (仅在xSeries上)组成的具有协同操作功能的集群 |
Myrinet |
网络共享磁盘(NSD) 服务器 |
||
lc (GPFS 1.3) |
GigE |
存储区域网 (SAN)- 连接于集群的所有节点 |
Linux (仅在 xSeries 上) |
sp |
SP Switch 交换机或 SP Switch2交换机 |
VSD(virtual shared disk) 服务器 |
AIX (pSeries) |
具有以下带宽的网络: - 最少100 Mb/秒 - 建议1 Gb/秒 或更高带宽 |
存储区域网 (SAN)- 连接于集群的所有节点 |
||
rpd |
高性能交换机 (High Performance Switch - HPS) |
VSD(virtual shared disk) 服务器 |
AIX (pSeries) |
hacmp |
具有以下带宽的网络: - 最少100 Mb/秒 - 建议1 Gb/秒 或更高带宽 |
存储区域网 (SAN)- 连接于集群的所有节点 |
AIX (pSeries) |
1.5 GPFS 集群大小
GPFS经过测试的最大的集群大小是多少?
下表列举了经过测试的最大GPFS集群大小. 超过最大限制的集群实施需要通过你的IBM业务代表提请special bid 业务流程.
GPFS 集群类型 |
GPFS 版本 |
操作系统 |
最大集群大小 |
GPFS v2.2 |
Linux only |
512 节点 |
|
GPFS v2.2 |
AIX only |
128节点 |
|
lc |
GPFS v2.2 |
Linux (仅xSeries)和 AIX |
512节点, 其中最多128个AIX节点 |
rpd |
GPFS v2.2和v2.1 |
AIX |
128 节点 |
hacmp |
GPFS v2.2和v2.1 |
AIX |
128 节点 |
sp |
GPFS v2.2和v2.1 |
AIX |
128 节点 |
1.6 什么是lc类型的集群
lc集群是最灵活的GPFS集群, 支持的环境存在最少限制. 它同时支持AIX和Linux操作系统下的GPFS, 并且可以将所有早期版本的GPFS集群集成起来. 所有新的GPFS集群的实施应首先考虑采用lc类型的集群. 所有已有的GPFS集群也应在软硬件环境允许的情况下考虑转移到lc集群上来.
lc集群支持的节点如下(可同时包含AIX和Linux的节点):
AIX 5.2 节点 |
Linux 节点 |
安装了GPFS2.2的单独的p系列节点或RSCT中的节点, 未从属于已有的GPFS集群 |
|
将GPFS2.2 sp集群节点迁移到新的lc集群 |
|
将GPFS2.2 rpd集群节点迁移到新的lc集群 |
x系列节点 -- 安装最新的Linux发布版本及内核版本, 安装GPFS2.2
运行GPFS早于2.2版本, 或者运行GPFS2.2但使用了旧的lc集群类型, 必须迁移到GPFS 2.2并使用新lc类型. |
1.6.1 lc集群支持何种磁盘子系统?
GPFS的网络共享磁盘(The Network Shared Disk–NSD)部件,是用于在lc集群中实现全局设备命名和远程数据访问的.NSD是使用命令mmcrnsd建立于逻辑磁盘设备的上端.在GPFS2.2版本中,一个逻辑磁盘设备可能是一个物理盘(AIX中的搣hdisk攠或搣vpath攠,或Linux中的块磁盘设备或磁盘分区),或一个VSD(无论是一个PSSP的VSD或一个RSCT对等域VSD).此外,位于逻辑卷之上的NSD允许被加入从rpd类型迁移而来的集群(lc集群不允许使用新建NSD中的逻辑卷).如果本地磁盘设备能够被多个节点看到,GPFS 2.2将从这些节点直接访问,并从集群的其它部分使用NSD远程访问路径(将I/O请求路由到网络).如果磁盘设备只能被某一个节点看到,其它节点将通过远程数据访问路径访问;如果这个磁盘设备能被所有节点看到,则所有节点将直接访问它.注意:在后一种情况,不需要为这个NSD严格分配主/从服务器,只是强烈建议为每个NSD指定一个服务器节点,以便预防当一个存储子系统路径失效时引起相关节点的数据访问失败.当本地访问路径失效时,则将转由NSD经远程数据访问路径实现数据访问,以此保持数据访问路径的可用性.
1.7 什么是sp类型的集群?
sp型GPFS集群,基于IBM PSSP(Parallel System Support Programs)软件及PSSP的VSD(Virtual Shared Disk)共享磁盘的概念.在GPFS集群类型SP中(在PSSP环境中),GPFS集群的成员节点依赖于所使用的网络交换机的类型.在使用SP交换机的系统中,GPFS集群等同于在sp相应分区中所有安装GPFS的节点.在安装SP Switch2交换机的系统中,GPFS集群等同于此系统中所有安装GPFS的节点.换句话说,集群的定义是默认的,而不需要专门运行GPFS集群命令.在GPFS集群中,你可以在你的文件系统操作中定义一个或多个nodesets.GPFS SP类型集群对磁盘的需要是---所有磁盘必须是:
1) 附属于一个位于此nodeset中的VSD服务器.
2) 建立GPFS使用的VSD磁盘时,必须使用mmcrvsd命令,或者遵循Parallel System Support Programs for AIX:Managing Shared Disks文档.
3) 遵循本文中对于磁盘支持的准则.
当GPFS运行于一个SP类型的集群环境中时, 软件需求是什么?
在一个SP类型的集群中, GPFS需要PSSP软件和其中的IBM VSD及IBM RVSD(Recoverable Virtual Shared disk)部件来统一磁盘存取及恢复.
表: 支持sp类型集群的软件版本需求:
GPFS 版本 |
AIX 版本 |
PSSP 版本 |
GPFS 服务终止日期 |
GPFS v2.2 |
AIX 5L? v5.2 |
PSSP v3.5 |
|
GPFS v2.1 |
AIX 5L v5.1 或 AIX 5L v5.2 |
PSSP v3.5 |
30-Apr-06 |
当在SP集群环境中运行GPFS时, 磁盘规划必须遵循的原则是什么?
在一个SP类型的集群中, 一个标准的GPFS集群配置使用RVSD. 违反此原则的一个例子是GPFS集群使用了CVSD(concurrent virtual shared disks). 使用CVSD可能在所支持的磁盘类型中引起冲突. 这一点在集群属性小节的第4页表2, 第4页表3, 第5页表4, 和第5页表5中指出. 但对于2节点的SP集群运行单一节点quorum的情况则没有特殊的磁盘限制 (参见问题: 搣2节点的节点组(nodesets)注意事项?攠). 对于更多的磁盘配置信息和举例, 请参见ftp.software.ibm.com/storage/fastt/fastt500/PSSP-GPFS_config_info.pdf.
第二章 GPFS维护命令
2.1 GPFS进程
root@ZFALHRDB2:/#ps -ef|grep mmfs
root 3342490 2163018 0 20:07:22 - 0:00 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/mmccrmonitor 15
root 2163018 1 0 19:00:41 - 0:00 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/mmccrmonitor 15
root 3539338 1 0 19:18:32 - 0:00 /usr/lpp/mmfs/bin/mmksh /usr/lpp/mmfs/bin/runmmfs
root 3670322 3539338 0 19:18:33 - 0:02 /usr/lpp/mmfs/bin/mmfsd
root@ZFALHRDB2:/#
2.2 查看GPFS配置
[ZFXDLHRDB1:root]:/>mmlsconfig
Configuration data for cluster gpfs1.ZFXDLHRDB1:
------------------------------------------------
clusterName gpfs1.ZFXDLHRDB1 (gpfs集群名)
clusterId 16532570700016402553
autoload no
dmapiFileHandleSize 32
minReleaseLevel 4.1.0.4
ccrEnabled yes
pagepool 512M
maxFilesToCache 10000
tiebreakerDisks gpfs1nsd
adminMode central
File systems in cluster gpfs1.ZFXDLHRDB1:
-----------------------------------------
/dev/Tlv_arch (gpfs集群中已有的文件系统)
[ZFXDLHRDB1:root]:/>
2.3 查看GPFS成员
[ZFXDLHRDB1:root]:/>which mmlscluster
/usr/lpp/mmfs/bin/mmlscluster
[ZFXDLHRDB1:root]:/>mmlscluster
GPFS cluster information
========================
GPFS cluster name: gpfs1.ZFXDLHRDB1
GPFS cluster id: 16532570700016402553
GPFS UID domain: gpfs1.ZFXDLHRDB1
Remote shell command: /usr/bin/rsh
Remote file copy command: /usr/bin/rcp
Repository type: CCR
Node Daemon node name IP address Admin node name Designation
---------------------------------------------------------------------
1 ZFXDLHRDB1 22.188.194.64 ZFXDLHRDB1 quorum-manager
2 ZFXDLHRDB2 22.188.194.66 ZFXDLHRDB2 quorum-manager
[ZFXDLHRDB1:root]:/>
#mmlscluster
GPFS cluster information
========================
GPFS cluster name: GCMS.ZTXSTRX17
GPFS cluster id: 1638332116932102717
GPFS UID domain: GCMS.ZTXSTRX17
Remote shell command: /usr/bin/rsh
Remote file copy command: /usr/bin/rcp
GPFS cluster configuration servers:
-----------------------------------
Primary server: ZTXSTRX17
Secondary server: ZTYSTRY17
Node Daemon node name IP address Admin node name Designation
-----------------------------------------------------------------------------------------------
1 ZTXSTRX17 22.188.134.97 ZTXSTRX17 quorum-manager
2 ZTYSTRY17 22.188.134.98 ZTYSTRY17 quorum-manager
3 ZTTSTRT26 22.188.134.66 ZTTSTRT26 quorum
4 ZTUSTRU26 22.188.134.46 ZTUSTRU26 quorum
5 ZTTSTRT30 22.188.134.70 ZTTSTRT30 quorum
2.4 查看GPFS集群各节点状态
[ZFXDLHRDB1:root]:/>mmgetstate -a
Node number Node name GPFS state
------------------------------------------
1 ZFXDLHRDB1 active
2 ZFXDLHRDB2 active
[ZFXDLHRDB1:root]:/>
[ZFXDLHRDB1:root]:/>mmgetstate -Las
Node number Node name Quorum Nodes up Total nodes GPFS state Remarks
------------------------------------------------------------------------------------
1 ZFXDLHRDB1 1 2 2 active quorum node
2 ZFXDLHRDB2 1 2 2 active quorum node
Summary information
---------------------
Number of nodes defined in the cluster: 2
Number of local nodes active in the cluster: 2
Number of remote nodes joined in this cluster: 0
Number of quorum nodes defined in the cluster: 2
Number of quorum nodes active in the cluster: 2
Quorum = 1*, Quorum achieved
#mmgetstate -a
Node number Node name GPFS state
------------------------------------------
1 ZTXSTRX17 active
2 ZTYSTRY17 active
3 ZTTSTRT26 active
4 ZTUSTRU26 active
5 ZTTSTRT30 active
2.5 NSD servers
[ZFXDLHRDB1:root]:/>mmlsnsd
File system Disk name NSD servers
---------------------------------------------------------------------------
Tlv_arch gpfs1nsd ZFXDLHRDB1,ZFXDLHRDB2
[ZFXDLHRDB1:root]:/>
2.6 GPFS的日常维护
2.6.1 GPFS的安装路径和日志
2.6.1.1 GPFS的安装路径
/usr/lpp/mmfs
2.6.1.2 GPFS的命令路径
/usr/lpp/mmfs/bin
2.6.1.3 GPFS的日志
/var/adm/ras/mmfs.log.latest
snap.gpfs 收集最全的日志信息以便技术中心对复杂的故障进行分析
[ZFXDLHRDB1:root]:/usr/lpp/mmfs>more /var/adm/ras/mmfs.log.latest
Tue Dec 29 16:24:52 BEIST 2015: runmmfs starting
Removing old /var/adm/ras/mmfs.log.* files:
Loading kernel extension from /usr/lpp/mmfs/bin . . .
GPFS: 6027-500 /usr/lpp/mmfs/bin/mmfs loaded and configured.
Tue Dec 29 16:24:53.960 2015: GPFS: 6027-310 [I] mmfsd initializing. {Version: 4.1.0.7 Built: Mar 11 2015 18:00:02} ...
Tue Dec 29 16:24:53.962 2015: [I] Cleaning old shared memory ...
Tue Dec 29 16:24:53.963 2015: [I] First pass parsing mmfs.cfg ...
Tue Dec 29 16:24:53.965 2015: [I] Enabled automated deadlock detection.
Tue Dec 29 16:24:53.966 2015: [I] Enabled automated deadlock debug data collection.
Tue Dec 29 16:24:53.967 2015: [I] Initializing the main process ...
Tue Dec 29 16:24:53.969 2015: [I] Second pass parsing mmfs.cfg ...
Tue Dec 29 16:24:53.970 2015: [I] Initializing the page pool ...
Tue Dec 29 16:24:54.094 2015: [I] Initializing the mailbox message system ...
Tue Dec 29 16:24:54.110 2015: [I] Initializing encryption ...
Tue Dec 29 16:24:54.112 2015: [I] Encryption: loaded crypto library: IBM CryptoLite for C v4.10.1.5600 (c4T3/GPFSAIX64).
Tue Dec 29 16:24:54.113 2015: [I] Initializing the thread system ...
Tue Dec 29 16:24:54.114 2015: [I] Creating threads ...
Tue Dec 29 16:24:54.125 2015: [I] Initializing inter-node communication ...
Tue Dec 29 16:24:54.132 2015: [I] Creating the main SDR server object ...
Tue Dec 29 16:24:54.133 2015: [I] Initializing the sdrServ library ...
Tue Dec 29 16:24:54.135 2015: [I] Initializing the ccrServ library ...
Tue Dec 29 16:24:54.149 2015: [I] Initializing the cluster manager ...
Tue Dec 29 16:24:55.197 2015: [I] Initializing the token manager ...
Tue Dec 29 16:24:55.205 2015: [I] Initializing network shared disks ...
Tue Dec 29 16:24:57.478 2015: [I] Start the ccrServ ...
Tue Dec 29 16:24:57.670 2015: GPFS: 6027-1750 [N] The client side TLS handshake with node 22.188.194.66 was cancelled: connection reset by peer (return code 420).
Tue Dec 29 16:24:58.213 2015: GPFS: 6027-1710 [N] Connecting to 22.188.194.66 ZFXDLHRDB2
Tue Dec 29 16:24:58.215 2015: GPFS: 6027-1711 [I] Connected to 22.188.194.66 ZFXDLHRDB2
Tue Dec 29 16:24:58.218 2015: GPFS: 6027-755 [I] Waiting for challenge 0 (node -1, sequence 27) to be responded during disk election
Tue Dec 29 16:25:29.236 2015: GPFS: 6027-2752 [I] This node got elected. Sequence: 1
Tue Dec 29 16:25:29.237 2015: GPFS: 6027-2750 [I] Node 22.188.194.64 (ZFXDLHRDB1) is now the Group Leader.
Tue Dec 29 16:25:29.241 2015: GPFS: 6027-2723 [N] This node (22.188.194.64 (ZFXDLHRDB1)) is now Cluster Manager for gpfs1.ZFXDLHRDB1.
Tue Dec 29 16:25:29.553 2015: GPFS: 6027-300 [N] mmfsd ready
Tue Dec 29 16:25:29 BEIST 2015: mmcommon mmfsup invoked. Parameters: 22.188.194.64 22.188.194.64 all
Tue Dec 29 16:26:26.025 2015: GPFS: 6027-630 [N] Node 22.188.194.64 (ZFXDLHRDB1) appointed as manager for Tlv_arch.
Tue Dec 29 16:26:26.201 2015: [I] Command: tscrfs /dev/Tlv_arch -F /var/mmfs/tmp/tsddFile.mmcrfs.12517586 -I 16384 -i 4096 -M 2 -n 32 -R 2 -w 0 --inode-limit 8192000
Tue Dec 29 16:26:30.466 2015: GPFS: 6027-643 [I] Node 22.188.194.64 (ZFXDLHRDB1) completed take over for Tlv_arch.
Tue Dec 29 16:26:30.807 2015: [I] Command: successful tscrfs /dev/Tlv_arch -F /var/mmfs/tmp/tsddFile.mmcrfs.12517586 -I 16384 -i 4096 -M 2 -n 32 -R 2 -w 0 --inode-limit
8192000
Tue Dec 29 16:27:02.250 2015: [I] Command: mount Tlv_arch 17957008
Tue Dec 29 16:27:03.069 2015: [I] Command: successful mount Tlv_arch 17957008
[ZFXDLHRDB1:root]:/usr/lpp/mmfs>
2.6.2 主机应用的启动顺序
启动GPFS
mmstartup –a
df –g /gpfs1
启动HACMP
smitty clstart
启动ORACLE数据库
#su – oracle
$>sqlplus “/ as sysdba”
SQL>startup
三、 主机应用的关闭顺序
关闭ORACLE数据库
#su – oracle
$>sqlplus “/ as sysdba”
SQL>shutdown immediate
关闭HACMP
smitty clstop
关闭GPFS
Mmshutdown
四、 GPFS的启动和关闭
GPFS的启动
mmstartup –a
GPFS的关闭
mmshutdown –a
单个节点gpfs的启动和关闭
mmstartup/mmshutdown
GPFS的进程监控
ps –ef|grep mmfsd
mmgetstate -a
五、 GPFS 的文件系统管理
Mount文件系统
mount /dev/gpfs1
Umount 文件系统
umount /dev/gpfs1
删除文件系统
mmdelfs
mmdelfs gpfs1
mmchfs
mmlsfs
mmlsfs gpfs1
mmdf
mmdf gpfs1
六、 GPFS 的集群管理
创建gpfs cluster
mmcrcluster
察看gpfs cluster配置信息
mmlscluster
mmlsconfig
增加节点到cluster
mmaddnode nodename
删除节点从cluster
mmdelnode nodename
注:不能是config server和NSD server
显示节点信息
mmlsnode -a
改变cluster配置信息
mmchcluster
改变primary和secondary config server到其他节点
mmchcluster -p nodename
mmchconfig
mmchconfig tiebreakerDisks="nsdName;nsdName;nsdName"
七、 GPFS 的磁盘管理
mmcrnsd
mmlsnsd
mmadddisk
mmdeldisk
mmchdisk
mmchdisk fs1 change -d "gpfs2nsd:::dataOnly"
mmchnsd
mmchnsd "gpfs47nsd:nodename1:nodename2"
mmlsdisk
mmlsdisk fs1 -d gpfs2nsd
mmlsdisk fs1 –L
八、 GPFS 的复制
Single replicated GPFS file system:
mmcrfs /gpfs/fs0 fs0 –F diskDescList -r 2 -R 2 -m 2 -M 2
The cluster configuration data is stored in the file /var/mmfs/gen/mmsdrfs
Backed up using user exit /var/mmfs/etc/mmsdrbackup
You can use a mmsdrbackup.sample as a sample script.
2.6.3 GPFS配置文件地址
/var/mmfs/gen
mmsdrfs 文件
----- 修改 :/var/mmfs/gen/mmsdrfs
%%9999%%:00_VERSION_LINE::1404:3:9::lc:ZFCASSDB1:ZFCASSDB2:96:::11685852384557034205:lc2:1462528738::gpfs.cass:1:0:1:3:A:::central:0.0:
这里的96代表gpfs起始地址,若重新安装gpfs需要修改这个值为0或删除。
2.7 查看GPFS集群状态
root@ZT3DD5TEST:/# mmgetstate -a
Node number Node name GPFS state --------------------- ------------- -------- 1 ZT3DB6TEST active 2 ZT3DD5TEST active |
2.8 启动与关闭
1.1 启动GPFS集群
1.1.1 启动单节点
root@ZT3DD5TEST:/var/mmfs/tmp# mmstartup |
1.1.2 启动所有节点
root@ZT3DD5TEST:/var/mmfs/tmp# mmstartup -a |
1.2 关闭GPFS集群
1.2.1 关闭单节点
卸载该节点所有GPFS文件系统 root@ZT3DD5TEST:/var/mmfs/tmp# mmumount Tlv_test |
关闭该节点GPFS root@ZT3DD5TEST:/var/mmfs/tmp# mmshutdown |
1.2.2 关闭所有节点
卸载所有节点上的GPFS文件系统 root@ZT3DD5TEST:/var/mmfs/tmp# mmumount all -a |
关闭GPFS集群 root@ZT3DD5TEST:/var/mmfs/tmp# mmshutdown -a |
2.9 添加磁盘
GPFS集群中添加新的磁盘
1.1 查看系统中空闲磁盘
root@ZT3DD5TEST:/# lspv hdisk0 00c06c0e9ee49d3a rootvg active hdisk1 00c37d655da46ca8 None active hdisk2 00c8c6f077a1b909 gpfs1nsd |
1.2 格式化磁盘到GPFS格式
echo "hdisk1:ZT3DD5TEST:ZT3DB6TEST:dataAndMetadata:1">>/tmp/gpfs/nsd2.list |
root@ZT3DD5TEST:/# mmcrnsd -F /tmp/gpfs/nsd2.list |
查看磁盘是否格式化成功,以下格式说明添加成功 root@ZT3DD5TEST:/# mmlsnsd File system Disk name NSD servers --------------------------------------------------------------------------- Tlv_test gpfs1nsd ZT3DB6TEST,ZT3DD5TEST (freedisk) gpfs2nsd ZT3DB6TEST,ZT3DD5TEST |
2.10 创建文件系统
root@ZT3DD5TEST:/# mmcrfs Tlv_testgpfs -F /tmp/gpfs/nsd2.list -Ayes -T /testgpfs |
说明:
Tlv_gpfs:新建GPFS文件系统所属lv的名字
/testgpfs:GPFS文件系统挂载点
2.11 文件系统扩容
将系统处于freedisk状态的磁盘,加入文件系统,如:
(freedisk) gpfs2nsd ZT3DB6TEST,ZT3DD5TEST
root@ZT3DD5TEST:/# mmadddisk Tlv_testgpfs gpfs2nsd |
2.12 删除文件系统
1.1 卸载集群文件系统
root@ZT3DD5TEST:/# mmumount all -a |
1.2 删除集群文件系统
root@ZT3DD5TEST:/# mmdelfs_testgpfs |
2.13 更改inode节点限制
root@ZT3DD5TEST:/# mmchfs Tlv_testgpfs --inode-limit 8192000 |
2.14 添加节点
按前文所述,在新添加的节点及已有节点上修改相关文件之后,执行以下命令:
root@ZT3DD5TEST:/usr/lpp/mmfs/bin# mmaddnode -N ZBSDB |
2.15 迁移步骤
#/usr/lpp/mmfs/bin/mmlscluster;
#/usr/lpp/mmfs/bin/mmgetstate -a;
#sleep 5;
#/usr/lpp/mmfs/bin/mmumount all -a;
#sleep 5;
#/usr/lpp/mmfs/bin/mmshutdown -a;
#sleep 5;
#/usr/lpp/mmfs/bin/mmchconfig tiebreakerDisks=gpfs1nsd;
#/usr/lpp/mmfs/bin/mmlsconfig all |grep tie;
#/usr/lpp/mmfs/bin/mmstartup -a;
#sleep 5;
#/usr/lpp/mmfs/bin/mmmount all -a;
#/usr/lpp/mmfs/bin/mmgetstate -a;
1) umount gpfs文件系统
#lsfs
/dev/Tlv_gcms - /gcms mmfs -- rw,mtime,atime,dev=Tlv_gcms no no
#mmumount /gcms (下单节点)
#mmumount /gcms –a (下所有节点)
Umount后使用df –g确认
2) 确认NSD server
#mmlsnsd
File system Disk name NSD servers
---------------------------------------------------------------------------
Tlv_gcms gpfs1nsd ZTXSTRX17,ZTYSTRY17 gpfs磁盘有2个NSD server
Tlv_gcms gpfs2nsd ZTXSTRX17,ZTYSTRY17
Tlv_gcms gpfs3nsd ZTXSTRX17,ZTYSTRY17
Tlv_gcms gpfs4nsd ZTXSTRX17,ZTYSTRY17
Tlv_gcms gpfs5nsd ZTXSTRX17,ZTYSTRY17
Tlv_gcms gpfs6nsd ZTXSTRX17,ZTYSTRY17
Tlv_gcms gpfs7nsd ZTXSTRX17,ZTYSTRY17
Tlv_gcms gpfs8nsd ZTXSTRX17,ZTYSTRY17
3) 停gpfs集群
#mmshutdown (下单节点) 仅迁移quorum节点
#mmshutdown –a (下所有节点) 如迁移quorum-manager节点或迁移系统为唯一的NSD server
Shutdown 后可以用mmgetstate –a确认节点状态
第三章 GPFS搭建
以两节点GPFS搭建为例
3.1 查看系统资源
3.1.1 查看系统上空闲磁盘
root@ZT3DD5TEST:/# lspv hdisk0 00c06c0e9ee49d3a rootvg active hdisk1 00c37d655da46ca8 appvg active hdisk2 00c8c6f077a1b909 None |
3.1.2 查看系统版本
root@ZT3DD5TEST:/# oslevel -s 5300-11-03-1013 |
3.2 在所有节点安装GPFS软件
3.2.1 挂载网络文件系统/nfs
root@ZT3DD5TEST:/# mount /nfs |
3.2.2 进入GPFS软件所在的目录,安装软件
3.2.2.1 安装基础版本
root@ZT3DD5TEST:/# cd /nfs/software/midware/gpfs/gpfs.3400.base root@ZT3DD5TEST:/# /usr/lib/instl/sm_inst installp_cmd -a -Q -d './' -f '_all_latest' '-N' '-g' '-X' '-G' '-Y' |
3.2.2.2 升级GPFS
root@ZT3DD5TEST:/# cd /nfs/software/midware/gpfs/gpfs.34010.ptf root@ZT3DD5TEST:/# /usr/lib/instl/sm_inst installp_cmd -a -d './' -f '_update_all' '-c' '-N' '-g' '-X' root@ZT3DD5TEST:/# /usr/lib/instl/sm_inst installp_cmd -c -f'all' '-g' '-X' |
以下状态说明软件安装成功
root@ZT3DD5TEST:/# lslpp -l|grep gpfs gpfs.base 3.4.0.10 COMMITTED GPFS File Manager gpfs.base 3.4.0.10 COMMITTED GPFS File Manager gpfs.docs.data 3.4.0.3 COMMITTED GPFS Server Manpages and |
3.3 配置GPFS
3.3.1 编辑/etc/hosts文件
编辑两个节点 /etc/hosts文件,添加以下内容:
22.188.133.138 ZT3DD5TEST 22.188.133.100 ZT3DB6TEST |
3.3.2 编辑两个节点/.rhosts文件,添加以下内容
编辑两个节点的/.rhosts文件,添加以下内容:
ZT3DD5TEST root ZT3DB6TEST root |
3.3.3 编辑两个节点/etc/environment文件
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin:/usr/vac/bin 修改为: PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin:/usr/vac/bin:/usr/lpp/mmfs/bin |
3.3.4 在节点1上添加以下文件
root@ZT3DB6TEST:/# mkdir -p /tmp/gpfs root@ZT3DB6TEST:/# cd /tmp/gpfs root@ZT3DB6TEST:/tmp/gpfs# echo "ZT3DB6TEST:quorum-manager">>node.list root@ZT3DB6TEST:/tmp/gpfs# echo "ZT3DD5TEST:quorum-manager">>node.list |
3.4 创建GPFS集群
以下操作都在节点一执行。
3.4.1 新建GPFS集群
在节点1执行,即使有多个节点命令不变:
root@ZT3DB6TEST:/# . /etc/environment root@ZT3DB6TEST:/# mmcrcluster -N /tmp/gpfs/node.list -p ZT3DB6TEST -s ZT3DD5TEST -C gpfs.test -A |
说明:gpfs.test是创建的GPFS名称,根据需要命名。
节点1,若有多个节点则在-N参数后以逗号分开:
root@ZT3DB6TEST:/# mmchlicense server --accept -N ZT3DB6TEST,ZT3DD5TEST |
3.4.2 格式化磁盘为GPFS格式
----- 修改 :/var/mmfs/gen/mmsdrfs
%%9999%%:00_VERSION_LINE::1404:3:9::lc:ZFCASSDB1:ZFCASSDB2:96:::11685852384557034205:lc2:1462528738::gpfs.cass:1:0:1:3:A:::central:0.0:
这里的96代表gpfs起始地址,若重新安装gpfs需要修改这个值为0或删除。
root@ZT3DB6TEST:/#echo "hdisk2:ZT3DB6TEST,ZT3DD5TEST::dataAndMetadata:1:">>/tmp/gpfs/nsd.list |
root@ZT3DB6TEST:/# mmcrnsd -F /tmp/gpfs/nsd.list |
查看GPFS格式磁盘是否成功
root@ZT3DB6TEST:/# mmlsnsd
File system Disk name NSD servers --------------------------------------------------------------------------- (free disk) gpfs1nsd ZT3DB6TEST,ZT3DD5TEST
root@ZT3DB6TEST:/# lspv hdisk0 00c37d655da4686a rootvg active hdisk1 00c8c6f0e5c0e66a appvg active hdisk2 00c8c6f077a1b909 gpfs1nsd |
3.4.3 更改GPFS文件系统属性
root@ZT3DB6TEST:/# mmchconfig pagepool=512M root@ZT3DB6TEST:/# mmchconfig maxFilesToCache=10000 root@ZT3DB6TEST:/# mmchconfig tiebreakerDisks=gpfs1nsd |
3.4.4 创建GPFS文件系统
3.4.4.1 启动GPFS
root@ZT3DB6TEST:/# mmstartup -a Wed Jul 4 14:09:45 BEIST 2012: mmstartup: Starting GPFS ... root@ZT3DB6TEST:/# mmgetstate -a
Node number Node name GPFS state ------------------------------------------ 1 ZT3DB6TEST_boot active 2 ZT3DD5TEST_boot active |
3.4.4.2 创建GPFS文件系统
root@ZT3DB6TEST:/# mmcrfs Tlv_test -F /tmp/gpfs/nsd.list -Ayes -T /testgpfs --inode-limit 8192000 或 mmcrfs Tlv_test -F "gpfs1nsd;gpfs2nsd" –A yes -T /testgpfs --inode-limit 81920000 |
--------- 从/tmp/gpfs/nsd.list文件中拷贝得到:
cat /tmp/gpfs/nsd1.list
# hdisk1:ZFCASSDB1,ZFCASSDB2,ZFALHRDB1,ZFALHRDB2::dataAndMetadata:1:
gpfs1nsd:::dataAndMetadata:1::system
# hdisk2:ZFCASSDB1,ZFCASSDB2,ZFALHRDB1,ZFALHRDB2::dataAndMetadata:1:
gpfs2nsd:::dataAndMetadata:1::system
# hdisk3:ZFCASSDB1,ZFCASSDB2,ZFALHRDB1,ZFALHRDB2::dataAndMetadata:1:
gpfs3nsd:::dataAndMetadata:1::system
# hdisk4:ZFCASSDB1,ZFCASSDB2,ZFALHRDB1,ZFALHRDB2::dataAndMetadata:1:
gpfs4nsd:::dataAndMetadata:1::system
# hdisk5:ZFCASSDB1,ZFCASSDB2,ZFALHRDB1,ZFALHRDB2::dataAndMetadata:1:
gpfs5nsd:::dataAndMetadata:1::system
# hdisk6:ZFCASSDB1,ZFCASSDB2,ZFALHRDB1,ZFALHRDB2::dataAndMetadata:1:
gpfs6nsd:::dataAndMetadata:1::system
# hdisk7:ZFCASSDB1,ZFCASSDB2,ZFALHRDB1,ZFALHRDB2::dataAndMetadata:1:
gpfs7nsd:::dataAndMetadata:1::system
mmcrfs Tlv_arch -F /tmp/gpfs/nsd1.list -Ayes -T /arch --inode-limit 81920000
mmcrfs Tlv_cassdata -F /tmp/gpfs/nsd2.list -Ayes -T /cassdata
mmcrfs Tlv_cass1_share -F /tmp/gpfs/nsd3.list -Ayes -T /cass1_share
3.4.4.3 挂载GPFS文件系统
root@ZT3DB6TEST:/# mmmount all -a |
3.4.4.4 查看GPFS文件系统挂载成功
root@ZT3DB6TEST:/# df -g Filesystem GB blocks Free %Used Iused %Iused Mounted on /dev/hd4 2.00 1.92 4% 5676 2% / /dev/hd2 10.00 7.62 24% 52886 3% /usr /dev/hd9var 5.00 4.53 10% 2868 1% /var /dev/hd3 2.00 1.68 16% 979 1% /tmp /dev/hd1 2.00 2.00 1% 11 1% /home /proc - - - - - /proc /dev/hd10opt 2.00 1.82 9% 9915 3% /opt /dev/Tlv_software 15.00 5.45 64% 12681 1% /software /dev/Tlv_oracle 50.00 40.48 20% 34202 1% /oracle ZTDNETAP3:/nfs 544.88 1.28 100% 323010 47% /nfs /dev/Tlv_test 109.25 108.85 1% 4038 1% /testgpfs |
第四章 GPFS卸载
4.1 卸载集群文件系统
root@ZT3DD5TEST:/# mmumount all -a |
4.2 关闭集群
root@ZT3DD5TEST:/# mmshutdown -a root@ZT3DD5TEST:/# mmgetstate -Las |
4.3 删除投票盘
root@ZT3DD5TEST:/# mmchconfig tiebreakerdisks="" root@ZT3DD5TEST:/# mmlsconfig |
4.4 启动集群
root@ZT3DD5TEST:/# mmstartup -a |
4.5 卸载集群文件系统
root@ZT3DD5TEST:/# mmumount all -a |
4.6 删除集群文件系统
root@ZT3DD5TEST:/# mmdelfs Tlv_testgpfs |
4.7 删除集群磁盘
root@ZT3DD5TEST:/# mmdelnsd gpfs1nsd;gpfs2nsd 或 root@ZT3DD5TEST:/# mmdelnsd -F /tmp/gpfs/nsd2.list |
4.8 关闭集群
root@ZT3DD5TEST:/# mmshutdown -a |
4.9 删除集群
root@ZT3DD5TEST:/ # mmdelnode -a |
4.10 删除GPFS软件
rm -rf /var/mmfs
rm -rf /usr/lpp/mmfs
rm -rf /usr/lpp/gpfs*
rm -rf /var/adm/ras/mmfs.log*
第一章 附录:GPFS介绍
GPFS (General ParallelFile System) 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术 ( VSD )。作为这项技术的核心, GPFS 是一个并行的磁盘文件系统,它保证在资源组内的所有节点可以并行访问整个文件系统。而且针对此文件系统的服务操作,可以同时安全地在使用此文件系统的多个节点上实现。 GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上。它提供了许多标准的 UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。 GPFS 也支持 UNIX 文件系统的工具,即:用户可以像使用普通文件系统一样使用基于 GPFS 的文件系统,唯一不同的在于管理 GPFS 文件系统的命令。 GPFS 提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点(这些节点属于同一个节点组)上的并行应用同时访问同一个文件或者不同的文件。
一.1 GPFS系统基本结构
? 磁盘
GPFS 文件系统最底层的是物理磁盘设备。原则上可以采用系统上任何块设备,包括磁盘,磁盘分区,逻辑卷。从物理连接上来看,GPFS 支持使用所有方式连接的磁盘。包括本地 IDE 磁盘,本地 SCSI 磁盘,光纤 SAN 磁盘,iSCSI 磁盘,等等。
? 网络共享磁盘(NSD)
NSD 是由磁盘映射出来的虚拟设备,NSD 与磁盘是一一对应的关系。NSD 被标记了不同属性来区分其用途,我们可以将磁盘标记为 4 种用途:
ü Desc Only:只存储 GPFS 文件系统描述信息的磁盘。
ü Data Only:只存储文件系统中的数据信息。
ü Meta data only: 只存储文件系统中的目录结构 inode 信息。
ü Meta and data: 存储所有信息(默认)。
? GPFS 文件设备
GPFS 设备是一个可被系统挂载的文件设备,由 NSD 创建而成,可以并行的同时挂载在多个节点上。
一.2 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 自动在各个节点间同步配置文件和文件系统信息,而且在同一个节点内,对 GPFS 的管理可以在任一个节点上进行。
第一章 GPFS存储平台构建方案
摘要:当前金融行业的快速发展都离不开信息系统所提供的智能、快捷、灵活的服务。但信息加速膨胀的压力、纷繁复杂的 IT 网络、难以为继的管理、不断发展的应用类别、快速扩充的客户规模、越来越苛刻的服务水平要求, 都让银行企业面临着越来越多的挑战。建立面向服务的“存储平台”环境在金融行业已经从遥不可及的奢望变成一种迫切的现实需求。
第二章 1. 需求分析
当前金融行业的快速发展都离不开信息系统所提供的智能、快捷、灵活的服务。但信息加速膨胀的压力、纷繁复杂的 IT 网络、难以为继的管理、不断发展的应用类别、快速扩充的客户规模、越来越苛刻的服务水平要求, 都让银行企业面临着越来越多的挑战。建立面向服务的“存储平台”环境在金融行业已经从遥不可及的奢望变成一种迫切的现实需求。
存储平台是一种新的存储资源交付模式。它使传统的存储基础架构转变为一项服务平台,根据用户请求实现存储资源的按需部署,快速访问,弹性扩展。存储平台的最大优势在于它能帮助用户实现存储资源的高效灵活管理与总体拥有成本降低。
从业务需求的角度,企业数据中心内部的私有云存储在构建高效率的信息基础架构前提下需要为前端应用提供如下存储服务:
? 存储容器服务,提供基于 LUN 或文件的存储空间服务;
? 数据保护服务,提供数据备份,异地容灾等存储服务;
? 数据归档服务,提供符合行业法规的数据归档与长期保存服务;
而无论是提供以上一种或多种云存储服务,客户构建企业内部私有云存储时都面临着如下挑战:
1) 如何构建高效率存储池
在存储系统中集成更多的效率优化功能, 以降低存储的总体拥有成本, 比如对共享的存储池提供精简资源配置,对文件存储池提供实时在线压缩,为备份数据提供重复数据删除等。
2) 如何实现存储资源快速部署与快速访问
云存储环境下,不管是老用户需要扩展存储空间,还是新用户要求分配空间,均可以随时随地进行,可以最快速地响应用户和业务的需求。具备池化存储管理能力的云存储,意味着可以按需扩展和管理存储容量。除了容量可以弹性扩展,性能也可以得到弹性调整和灵活地优化。更换和调整设备均允许在业务不中断的前提下进行,可无缝地满足 SLA 要求。
3) 如何实现高效简便管理
云存储需具备高度便捷的管理监控能力,它通过对存储服务的可用性、性能和容量的全面监控既可以跟踪 SLA 的执行情况,让管理员的工作负荷大大减轻。
第三章 2. 架构方案
GPFS存储平台的构建方案如下图所示,该方案可以满足应用对存储的不同的需求场景,具体说明如下:
(1) 关于后端存储
GPFS Server通过SAN存储光纤网络连接至底层盘阵存储,GPFS对底层存储的型号没有固定要求,根据应用的对存储及性能的要求不一样,可以选型高、中、低不同级别;
(2) 关于GPFSServer集群
从架构上GPFS Server是底层通过光纤网络连接识别了后端SAN存储的服务器,在这些服务器上创建了GPFS集群,并构建了不同的GPFS文件系统,形成了统一的GPFS存储平台,他们可以为前端应用提供统一的并行共享的文件系统空间,实现数据的共享访问;因为GPFS Server统一为前端所有应用提供I/O数据访问,在设备选型上建议使用计算能力较好的Unix Power服务器,是因为GPFS与AIX操作系统的集成度相比较对其他系统平台更好,同时也可以充分利用Power小机的计算能力;
(3) 关于GPFSClient
GPFS Client是需要访问GPFS存储平台的前端应用,他们与后端的GPFS Server处于一个集群中,但是可以根据策略挂载不同的文件系统目录,实现文件系统数据空间在不同应用之间的安全隔离;GPFS Client支持AIX,Linux,Windows不同系统平台;
(4) 关于GPFSI/O网络
从架构上来看,GPFS的I/O网络包括 GPFS Server与底层存储之间以及GPFS Client与GPFS Server之间两部分;其中GPFS Server与底层存储之间的连接主要是通过SAN光纤连接,而GPFS Client与GPFS Server之间的数据传输主要是通过TCP/IP网络;针对那些对I/O性能要求比较高的应用,为了保证I/O带宽,建议假设万兆传输能力的网络环境;
(5) 关于其他GPFS应用
针对使用GPFS文件系统的独立应用,为了满足数据共享并行访问的需求,如OracleRAC等;可以独立在SAN存储上假设GPFS文件系统;
IBM GPFS架构特点浅析
2016-03-29 Hardy 架构师技术联盟
GPFS (General Parallel File System) 是 IBM 公司第一个共享文件系统,GPFS 是一个并行的磁盘文件系统,它保证在资源组内的所有节点可以并行访问整个文件系统。 GPFS 提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点上的并行应用同时访问同一个文件或者不同的文件,提供统一命名接口。
请点击此处输入图片描述
GPFS文件系统架构
GPFS物理架构会分为三个层面:存储层、GPFS服务器层以及客户端层。存储层将存储通过SAN环境划分给服务器节点,服务器节点将这些存储磁盘进行配置并格式化形成最终的GPFS并行文件系统格式,客户端通过以太网与所有的服务器节点联通,他们通过私有文件系统协议来共享这个并行文件系统,实现IO的并发读写。
请点击此处输入图片描述
如图最下层是GPFS的物理磁盘层,存储设备通过SAN环境将存储LUN划分给GPFS的服务提供层,也就是NSD服务器,它是一个集群式的服务提供组件。服务层将其识别到的磁盘格式化为NSD磁盘,这些NSD磁盘再经过GPFS服务层创建为GPFS文件系统,这个文件系统通过网络层的私有协议共享给所有的GPFS客户端,客户端就可以将其作为一个普通文件系统挂载到某一个目录下来存储文件。
GPFS的架构设计并非此一种。我们也可以将GPFS的服务层和客户端层整合为一层,也就是每一个NSD服务器既是服务提供者,同时也是客户端。这样做的好处在于整个架构趋于扁平化,IO深度会浅一些,性能会好。但是它需要更多的SAN资源来支持整个扁而长的集群架构。
GPFS文件系统逻辑架构
关于GPFS文件系统如何实现并行读写,具体原理如下图所示,GPFS的核心Deamon是mmfsd,它会通过子进程调用方式实现对GPFS配置、文件系统以及文件系统头信息的管理。应用程序的读写,通过层层调用实现最终的数据落盘。
请点击此处输入图片描述
其中应用程序不需要任何定制操作,只需要正常调用操作系统文件读写就可以,操作系统在后台调用文件读写的时候会跟GPFS所管理的文件系统I节点进行映射最终实现GPFS文件系统读写的调用。每一个GPFS客户端有自己的局部I节点MAP,GPFS有一个统一的全局I节点MAP表。最终可以实现文件系统读写的一致性。也就是说,普通文件系统的I节点管理,在GPFS架构中是经过了操作系统和GPFS内核配合的虚拟映射之后形成的文件系统管理体系。
GPFS文件系统所涉及到的逻辑对象
- 网络共享磁盘NSD
所谓NSD,就是GPFS将存储设备划给服务器的物理磁盘转化为具备GPFS自己的物理磁盘。GPFS文件系统就是要在其基础之上来实现。每一个NSD磁盘需要共享给所有的NSD服务集群节点。
- GPFS文件系统
GPFS文件系统就是在NSD磁盘基础之上创建的共享文件系统。文件系统创建会像其他文件系统一样创建文件系统管理信息及文件系统的地址空间表。
- GPFS服务集群节点及客户端节点
所谓GPFS服务集群节点,就是要提供GPFS文件系统服务的集群节点。服务节点和客户端节点在软件的安装上没有任何区别,他们的区别需要在集群配置时来具体定义。
- Quarum Node 和Tiebreaker Disk
它是GPFS集群为了避免在发生集群节点发生通讯故障,而通过本身资源数目无法判断集群状态,从而辅助判断集群状态的逻辑对象。节点本身可以作为仲裁资源,另外NSD也可以作为仲裁资源。
GPFS集群仲裁机制
GPFS 的数据完整性一方面是由以上提到的数据安全机制来保证,另外也通过一套可用性判断机制来完全保证数据完整性与系统安全。GPFS 提供三套不同的quorum 机制来判断系统当前的状态,其中File Descriptor Quorum 是系统内置的,不能做配置,另外两种 Node quorum(仲裁节点机制)和Tiebreaker Diskquorum(仲裁磁盘机制)方式只能二者选其一,使用那种方式要基于我们的系统环境与可靠性分析。
- 仲裁节点机制:
通过主机状态的来判断系统可用性的机制。GPFS 文件系统集群中,可以设置多个主机节点为仲裁节点。当超过半数的中袋节点在线时,判断系统为正常,反之,将关闭文件系统。仲裁节点数目最多可以128个。如果采用这种机制,而我们的仲裁节点为2N+1,意味着我们只能容忍N台机器宕机。所以当机器数目越少,这种机制的故障容忍程度就越差。
- 仲裁磁盘机制:
通过磁盘的状态来判断系统的可用性。我们可以设置系统通过监视指定的一些磁盘作为仲裁磁盘。当超过半数的 Tiebreaker Disk掉线时,则判断系统故障,将自动关闭文件系统。Tiebreaker最多只能配置两个用来监控磁盘状态的仲裁主机,当 2 台仲裁主机都宕机的话,GPFS 系统也将会关闭。
比如我们有5个服务节点,那么任取两个节点作为仲裁主机,取2N+1个磁盘来作为仲裁盘,那么系统可以容忍的故障就是N个仲裁盘离线和1个仲裁节点离线。其优势在于节点数较少时可用性较高,但节点数较多的情况建议采用仲裁节点模式。
GPFS Failure Group失效组
一系列具有相同物理路径的网络共享磁盘组成一个Failure Group,Failure Group之间可以实施数据复制或日志复制来保证同一份数据可以有多分数据或者日志拷贝,以保证物理磁盘故障不会导致数据丢失。比如,在做NSD设计的时候,我们可以将来自同一个物理存储的卷作为一个Failure Group。这样每一份数据相当于在不同的存储设备上都可以做数据副本或者是日志的副本。
GPFS文件系统伸缩性
首先GPFS集群中的节点具备很好的伸缩性。我们可以在线增加或者删除GPFS节点,而其中的并发任务并不会受到影响。其次GPFS文件系统具备很好的伸缩性,我们可以在线对文件系统扩容或者缩减,都不会影响到并发业务。
GPFS文件系统负载均衡
所谓负载均衡也就是说我们在设计GPFS集群的时候,希望所有的客户端能将IO负载近似平均地分担到每一个集群服务节点。
请点击此处输入图片描述
每一个NSD磁盘会有相应配置来决定服务节点服务的先后顺序,比如NSD1和NSD2会定义为“节点1、节点2、节点3、节点4”的顺序;而NSD3和NSD4会定义为“节点4、节点3、节点2、节点1”的顺序。
那么客户端发起IO写入的时候,要写入NSD1和NSD2的数据就会从服务节点1写入,而要写入NSD3和NSD4的数据就会从服务节点2写入。也就是说NSD配置的服务节点顺序决定了正常情况下的服务层节点的IO流向及负载。
About Me
...............................................................................................................................● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新
● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/
● 本文博客园地址:http://www.cnblogs.com/lhrbest
● 本文pdf版及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/
● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/
● QQ群:230161599 微信群:私聊
● 联系我请加QQ好友(646634621),注明添加缘由
● 于 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成
● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
...............................................................................................................................
拿起手机使用微信客户端扫描下边的左边图片来关注小麦苗的微信公众号:xiaomaimiaolhr,扫描右边的二维码加入小麦苗的QQ群,学习最实用的数据库技术。
About Me
.............................................................................................................................................● 本文整理自网络
● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新
● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/
● 本文博客园地址:http://www.cnblogs.com/lhrbest
● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/
● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/
● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826
.............................................................................................................................................
● QQ群号:230161599(满)、618766405
● 微信群:可加我微信,我拉大家进群,非诚勿扰
● 联系我请加QQ好友(646634621),注明添加缘由
● 于 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成
● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
.............................................................................................................................................
● 小麦苗的微店:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail
● 小麦苗出版的数据库类丛书:http://blog.itpub.net/26736162/viewspace-2142121/
.............................................................................................................................................
使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。
小麦苗的微信公众号 小麦苗的DBA宝典QQ群1 小麦苗的DBA宝典QQ群2 小麦苗的微店
.............................................................................................................................................