WEB开发网
开发学院操作系统Linux/Unix GPFS 3.1 for AIX 安装配置完全手册 阅读

GPFS 3.1 for AIX 安装配置完全手册

 2008-11-10 08:28:41 来源:WEB开发网   
核心提示:前言GPFS 的简介GPFS 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术( VSD ),GPFS 3.1 for AIX 安装配置完全手册,作为这项技术的核心, GPFS 是一个并行的磁盘文件系统,并实现快速配置,进行简单维护的读者,它保证在资源组内的 所有节点可以并行访问整

前言

GPFS 的简介

GPFS 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术( VSD )。作为这项技术的核心, GPFS 是一个并行的磁盘文件系统,它保证在资源组内的 所有节点可以并行访问整个文件系统;而且针对此文件系统的服务操作,可以同时安全地在使用此文件系统的多个节点上实现。 GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上。与 NFS 相比,GPFS 在 SAN 环境下可以提供更好的性能。

实验环境说明

实验室示意图

图1.实验环境

GPFS 3.1 for AIX 安装配置完全手册

机器配置表

表 1. 机器配置表

序号主机名用途IP 地址用户系统环境
1NSD1主 NSD 服务器10.66.3.982 CPU/4 G/AIX 5305
2NSD2备用 NSD 服务器10.66.3.992 CPU/4 G/AIX 5305
3App1应用服务器10.66.5.51user1(501)2 CPU/4 G/AIX 5305
4App2应用服务器10.66.5.52user2(502)2 CPU/4 G/AIX 5305
5App3应用服务器10.66.5.53user3(503)2 CPU/4 G/AIX 5305
6App4应用服务器10.66.5.54user4(504)2 CPU/4 G/AIX 5305

实验目的

由于应用软件有对共享文件系统读写的要求,需要建立一个/share 的共享文件系统,在上面建立不同目录供不同的用户读写使用。

实现方法

安装 GPFS 系统,并利用用户id的不同建立目录,区分权限。举例来说:

1. /share/user1work 我们希望只有 App1 的 user1 用户能读写,那么我们在 App1 机器上设置所有者为 user1,权限为700,完成后其他机器上没有该用户 id,也就没有权限对该目录读写。

2./share/user1temp 我们希望其他用户 userx 可读进入该目录,则设置所有者为 user1,权限可设为750,由于 userx 的用户都是 bea 组的,所以该设置使得在其他机器上 bea 组的 userx 用户有权限进入并读取这个目录的文件。

准备工作

SAN 配置

1.在阵列端配置磁盘阵列盘,建立 gpfs 的 volume group

2.在光纤交换机配置所有服务器和阵列 host 口划分在一个 zone。

3.利用 DSCLI 将 volume group 设置和服务器做 hostconnect。

这个工作先用 mkgrou p建立一个 volume group v3,然后用 chvolgrp 将 fbvol 的 volume 磁盘加入该 group。最后用 hostconnect 将服务器的 wwn 号命令逐一通过指定的 IOPORT 和该 group 以及勾连起来。确认安装结果:

Date/Time: August 13, 2007 7:40:05 PM GMT+08:00 IBM DSCLI Version: 5.2.400.426 DS:
IBM.2107-75L3351
Name   ID          WWPN   HostType Profile    portgrp volgrpID
ESSIOport
App1 IBM.2107-75L3351/0020 210000E08B9B4D48 pSeries IBM pSeries-AIX 0 IBM.2107-75L3351/V6
I0232,I0032,I0302,I0102
App1 IBM.2107-75L3351/0021 210100E08BBB4D48 pSeries IBM pSeries-AIX 0 IBM.2107-75L3351/V6
I0232,I0032,I0302,I0102
……

4.所有服务器安装 sddpcm 多通道软件

sddpcm 是IBM的高端存储的多路径软件,可以比 AIX 缺省的 MPIO 软件实现自动负载均衡和零时间 failover,性能也得到提高。试验中安装了 sddpcm 的软件包

devices.fcp.disk.ibm.mpio.rte 1.0.0.7 # IBM MPIO FCP Disk Device

devices.sddpcm.53.rte 2.1.2.5 # IBM SDD PCM for AIX V53

确认安装结果,有4条通路连接主机和存储的逻辑盘。

[App1][root][/]>pcmpath query essmap
Disk Path P  Location adapter LUN SN Type Size LSS Vol Rank C/A S Connection
port RaidMode
hdisk3 path0  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5
hdisk3 path1  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5
hdisk3 path2  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5
hdisk3 path3  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5

5.cfgmgr 最终扫描确认

结果:在所有服务器都可看到该磁盘。

以 App3 举例

[App3][root][/home/scripts]>lspv
hdisk3     none                None
[App3][root][/]>pcmpath query essmap
Disk Path P  Location adapter LUN SN Type Size LSS Vol Rank C/A S Connection
port RaidMode
hdisk3 path0  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5
hdisk3 path1  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5
hdisk3 path2  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5
hdisk3 path3  01-10-01[FC] fscsi0 75L33510125 IBM 2107-900 65.5GB 1 37  fffb 17 
Y R1-B1-H3-ZC  32  RAID5

访问配置

修改所有机器的/etc/hosts,将以下行加入,使得机器之间互相能解析主机名。

/etc/hosts
#gpfs start
10.66.3.98   NSD1
10.66.3.99   NSD2
10.66.5.51    App1
10.66.5.52    App2
10.66.5.53    App3
10.66.5.54    App4
#gpfs end

修改所有服务器的/.rhosts,将2个NSD服务器主机名加入

NSD1 root NSD2 root

编写几个 shell 脚本,方便以后安装

1.run_cmd.sh #该脚本可在所以服务器上运行同一条命令。

cat machines.list|awk '{print "rsh "$1" "hostname;$1 $2 $3 $4 $5""}'>/tmp/test.sh
cat /tmp/test.sh
sh /tmp/test.sh $1 $2 $3  $4  $5
rm /tmp/test.sh

2.machines.list #该文件为机器列表,供其他脚本使用,注意不能有空行。

10.66.5.51   App1
10.66.5.52   App2
10.66.5.53   App3
10.66.5.54   App4
10.66.3.98   NSD1
10.66.3.99   NSD2

3.rcp_file.sh #该脚本用来从 NSD 服务器上分发文件给各服务器做安装等用途。

cat machines.list|awk '{print "rcp $1 "$1":$1"}'>/tmp/test.sh
cat /tmp/test.sh
sh /tmp/test.sh $1
rm /tmp/test.sh

4.install_gpfs.sh #安装 GPFS 软件的脚本。实验中 GPFS 安装软件放在/soft_ins/gpfs3.1下

cd /soft_ins/gpfs3.1
installp -acYd . all

5.change_profile.sh 修改各服务器.proifle 的脚本,增加路径

echo "export PATH=$PATH:/usr/lpp/mmfs/bin:." >> /.profile

确认从2个 NSD 服务器rsh,rcp访问各个服务器设置 ok。

[NSD1][root][/home/scripts/gpfs]>run_cmd.sh date
App1
Thu Aug 2 19:37:00 BEIST 2007
App2
Thu Aug 2 19:37:00 BEIST 2007 NSD1
........
[NSD1][root][/home/scripts/gpfs]>run_cmd.sh mkdir /home/scripts/gpfs
[NSD1][root][ /home/scripts/gpfs]>rcp_file.sh /home/scripts/gpfs/change_profile.sh
[NSD1][root][/home/scripts/gpfs]>run_cmd.sh ls -l /home/scripts/gpfs
App1
-rw-r--r--  1 root   system      37 Jun 28 14:08 change_profile.sh
……

安装 GPFS 及配置准备

将 install_gpfs.sh 和 GPFS 安装文件拷贝到所有服务器安装

实验中放在/soft_ins下,当然也可以建一个 NFS 服务器共享安装。

[NSD1][root][/home/scripts/gpfs]>rcp_file.sh /home/scripts/gpfs/install_gpfs.sh
[NSD1][root][/home/scripts/gpfs]> run_cmd.sh /home/scripts/gpfs/install_gpfs.sh

确认每台服务器安装显示 ok

添加所有.profile 的执行路径

[NSD1][root][/home/scripts/gpfs]>run_cmd.sh /home/scripts/gpfs/chang_profile.sh

目录准备

[NSD1][root][/home/scripts/gpfs]>run_cmd.sh mkdir /share 
[NSD1][root][/home/scripts/gpfs]>run_cmd.sh ln -s /share /tmp/mmfs
[NSD1][root][/home/scripts/gpfs]>run_cmd.sh mkdir /tmp/gpfs

配置 GPFS 集群

配置节点文件

[NSD1][root][/]>vi /tmp/gpfs/nodefile
NSD1:quorum
NSD2:quorum
App1:client
App2:client
App3:client
App4:client

建立 GPFS 集群

先确保清理干净原先 GPFS 集群

[NSD1][root][/tmp/gpfs]>mmdelnode -f

建立集群

[NSD1][root][/tmp/gpfs]>mmcrcluster -C bgbcrun -U bgbc
-N /tmp/gpfs/nodefile -p NSD1 -s NSD2
Thu Jun 28 15:42:57 BEIST 2007: 6027-1664 mmcrcluster: Processing node NSD1
Thu Jun 28 15:42:57 BEIST 2007: 6027-1664 mmcrcluster: Processing node NSD2
…..
mmcrcluster: Command successfully completed
mmcrcluster: 6027-1371 Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.
其中参数含义
-C bgbcrun 设定集群名称
-U bgbc  定义域名
-N /tmp/gpfs/nodefile 指定节点文件名
-p NSD1 指定主NSD服务器为 NSD1
-s NSD1 指定备NSD服务器为 NSD1

确认查看

[NSD1][root][/tmp/gpfs]>mmlscluster
GPFS cluster information
========================
 GPFS cluster name:     bgbcrun.NSD1
 GPFS cluster id:      739157013761844865
 GPFS UID domain:      bgbc
 Remote shell command:   /usr/bin/rsh
 Remote file copy command: /usr/bin/rcp
GPFS cluster configuration servers:
-----------------------------------
 Primary server:  NSD1
 Secondary server: NSD2
Node Daemon node name      IP address    Admin node name     Designation  
|-------10--------20--------30--------40--------50--------60--------70--------80--------9|
|-------- XML error: The previous line is longer than the max of 90 characters ---------|
-----------------------------------------------------------------------------------------
  1  NSD1           10.66.3.98    NSD1            quorum
  2  NSD2           10.66.3.99    NSD2            quorum
  3  App1           10.66.5.51    App1          
  4  App2           10.66.5.52    App2          
  5  App3           10.66.5.53    App3          
  6  App4           10.66.5.54    App4    

配置 GPFS 的共享盘

建立 NSD(Network Shared Disk)文件

[NSD1][root][/tmp/gpfs]>vi /tmp/gpfs/nsdfile
添加
hdisk2:NSD1:NSD2: dataAndMetadata:4

生成 NSD 盘

[NSD1][root][/tmp/gpfs]>mmcrnsd -F /tmp/gpfs/nsdfile
mmcrnsd: Processing disk hdisk2
mmcrnsd: 6027-1371 Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.

此时,该文件作了转换

[NSD1][root][/tmp/gpfs]>cat nsdfile
# hdisk2:NSD2:NSD1: dataAndMetadata:4
gpfs1nsd:::dataAndMetadata:4:

确认结果

[NSD1][root][/tmp/gpfs]>lspv
hdisk3     00003e846ffa7a6e          gpfs1nsd    

启动 GPFS 系统

[NSD2][root][/tmp/gpfs]>mmstartup -a
Thu Jun 28 15:52:12 BEIST 2007: 6027-1642 mmstartup: Starting GPFS ...
NSD2: 6027-2114 The GPFS subsystem is already active.

App4: 6027-2114 The GPFS subsystem is already active.

配置 GPFS 的共享文件系统

建立 GPFS 文件系统

[NSD2][root][/]>mmcrfs /share sharelv -F /tmp/gpfs/nsdfile -A yes -B 64K -n 30 -v no
GPFS: 6027-531 The following disks of sharelv will be formatted on node NSD1:
  gpfs1nsd: size 67108864 KB
GPFS: 6027-540 Formatting file system ...
GPFS: 6027-535 Disks up to size 140 GB can be added to storage pool 'system'.
Creating Inode File
Creating Allocation Maps
Clearing Inode Allocation Map
Clearing Block Allocation Map
GPFS: 6027-572 Completed creation of file system /dev/sharelv.
mmcrfs: 6027-1371 Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.
参数含义如下:
/share 文件系统 mount 点名
sharelv 指定文件系统 lv 名
-F  指定 NSD 的文件名
-A  自动 mount 选项为 yes
-B  块大小为64K
-n  挂载文件系统的节点估计数30个
-v  校验建立磁盘是否已有文件系统 为否

装载文件系统

[NSD2][root][/home/scripts/gpfs]>run_cmd.sh mount /share

建立目录

[App1][root][/]>mkdir /share/user1work
[App1][root][/]>chown user1:bea /share/user1work
[App1][root][/]>chmod 700 /share/user1work
[App1][root][/]>mkdir /share/user1temp
[App1][root][/]>chown user1:bea /share/user1temp
[App1][root][/]> chmod 750 /share/user1temp

同样在另3台机器建立其他目录并修改相应所有者即权限,即 work 目录只有所有者可操作,temp 目录可读可进入。

配置 GPFS 的属性

配置 GPFS 选项属性

在节点开机后自动启动 GPFS

[NSD1][root][/]>mmchconfig autoload=yes
mmchconfig: Command successfully completed
mmchconfig: 6027-1371 Propagating the cluster configuration data to all
affected nodes. This is an asynchronous process.

采用多个 Quorum 盘

[NSD1][root][/]> mmchconfig singleNodeQuorum=no
mmchconfig: 6027-1119 Obsolete option: singleNodeQuorum

显示 GPFS 选项属性

[NSD1][root][/]>mmlsconfig
Configuration data for cluster bgbcrun.NSD2:
-----------------------------------------------
clusterName bgbcrun.NSD2
clusterId 739157013761844865
clusterType lc
autoload no
useDiskLease yes
uidDomain bgbc
maxFeatureLevelAllowed 912

至此 GPFS 的安装配置完成

[NSD1][root][/]>mmgetstate -a
Node number Node name    GPFS state
------------------------------------------
    1   NSD1     active
    2   NSD2     active
    3   App1     active
    4   App2     active
    5   App3     active
   10   App4     active

实施结果

最终,通过 userid 的不同,在 App1 的共享目录 /share下,user1 只能读写自己文件夹的文件,对其它用户的 temp 目录可读,对其它用户的 work 目录不能读写。

[App1][/share]>ls -latr
drwx------  2 user1   bea     2048 Jun 28 17:21 user1work
drwxr--x-- 2 user1   bea     2048 Jun 28 17:21 user1temp
drwx------  2 502   bea      2048 Jun 28 17:22 user2work
drwxr--x---  2 502   bea      2048 Jun 28 17:22 user2temp
drwx------  2 503   bea     2048 Jun 28 17:22 user3work
drwxr-x--  2 503   bea     2048 Jun 28 17:22 user3temp
drwxr----  2 504   bea     2048 Jun 28 17:22 user4work
drwxr-x---  2 504   bea     2048 Jun 28 17:23 user4temp
[App1][user1][/share]>cd user2work
ksh: user2temp : Permission denied.
[App1][user1][/share]>cd user2temp
[App1][user1][/share]>>a
The file access permissions do not allow the specified action.
ksh[2]: a: 0403-005 Cannot create the specified file.
[App1][user1][/share]>cd /user1temp
[App1][user1][/share/user1temp]>>a
[App1][user1][/share/user1temp]>ls -l
-rw-r-----  1 user1  bea        0 Aug 13 18:47 a
[App1][user1][/share/xhtemp]>rm a
[App1][user1][/share/xhtemp]>ls -l
[App1][/share]>ls -latr
drwxr------  2 user1   bea     2048 Jun 28 17:21 user1work
drwxr------  2 user1   bea     2048 Jun 28 17:21 user1temp
drwxr------  2 502   bea      2048 Jun 28 17:22 user2work
drwxr------  2 502   bea      2048 Jun 28 17:22 user2temp
drwxr------  2 503   bea     2048 Jun 28 17:22 user3work
drwxr------  2 503   bea     2048 Jun 28 17:22 user3temp
drwxr------  2 504   bea     2048 Jun 28 17:22 user4work
drwxr------  2 504   bea     2048 Jun 28 17:23 user4temp

同样,在其它3台机器也有类似我们希望的结果。

其他有用的 GPFS 操作

增加1个节点

1.新增一个节点

除所有准备和安装工作外,还需完成以下操作:

[NSD1][root][/home/scripts/gpfs]>mmaddnode -N bgbcw14:client
Thu Jun 28 16:28:21 BEIST 2007: 6027-1664 mmaddnode: Processing node App3
mmaddnode: Command successfully completed
mmaddnode: 6027-1371 Propagating the cluster configuration data to all
 affected nodes. This is an asynchronous process.

2.停掉节点

停掉所有节点

[NSD2][root][/home/scripts/gpfs]>mmshutdown -a
Mon Jul 30 09:56:02 BEIST 2007: 6027-1341 mmshutdown: Starting force unmount of
GPFS file systems
NSD1: forced unmount of /share

App4: forced unmount of /share
Mon Jul 30 09:56:07 BEIST 2007: 6027-1344 mmshutdown: Shutting down GPFS daemons
NSD1: Shutting down!

App3: Shutting down!
NSD1: 'shutdown' command about to kill process 368890
….
App4: 'shutdown' command about to kill process 474040
Mon Jul 30 09:56:13 BEIST 2007: 6027-1345 mmshutdown: Finished

也可以用 mmshutdown -N 只停某个节点

清除 GPFS

1.  fuser –kcu /share
2.  unmount /share #在所有节点
3.  mmdelfs sharelv, 
4.  mmlsfs sharelv #检查结果
5.  mmdelnsd –F /tmp/gpfs/nsdfile
6.  mmshutdown –a
7.  mmdelnode –n /tmp/gpfs/nodefile
8.  mdelnode –f   #最后清除集群

总结

总的来说,如果一步步参照本文的步骤,GPFS 的安装配置包括日常管理并不复杂。对于用户对 GPFS 的使用权限的划分,提供了一个利用 userid 实现的简单易行的方法。当然如果希望配置大型的超过50节点以上的 GPFS,建议还是需要参考相关的 GPFS 的红皮书。本文对于想快速入门 GPFS,并实现快速配置,进行简单维护的读者,相信应该具有非常大的帮助。

Tags:GPFS for AIX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接