Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25833549
  • 博文数量: 271
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 3358
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-12 15:28
文章分类

全部博文(271)

文章存档

2010年(71)

2009年(164)

2008年(36)

我的朋友

分类:

2010-06-11 17:59:26

本文详细描述了 AIX 5.3环境下安装配置 GPFS 3.1的步骤,对于第一次安装 GPFS 的同仁可以快速入门,对于有安装过的同仁,有一定的参考意义。





回页首


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





回页首


实验室示意图



topology.jpg

机器配置表



序号 主机名 用途 IP 地址 用户 系统环境
1 NSD1 主 NSD 服务器 10.66.3.98 2 CPU/4 G/AIX 5305
2 NSD2 备用 NSD 服务器 10.66.3.99 2 CPU/4 G/AIX 5305
3 App1 应用服务器 10.66.5.51 user1(501) 2 CPU/4 G/AIX 5305
4 App2 应用服务器 10.66.5.52 user2(502) 2 CPU/4 G/AIX 5305
5 App3 应用服务器 10.66.5.53 user3(503) 2 CPU/4 G/AIX 5305
6 App4 应用服务器 10.66.5.54 user4(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 用户有权限进入并读取这个目录的文件。





回页首


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
……





回页首


实验中放在/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

[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





回页首


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

先确保清理干净原先 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         





回页首


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

[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        

[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.





回页首


[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

[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

[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台机器也有类似我们希望的结果。





回页首


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,并实现快速配置,进行简单维护的读者,相信应该具有非常大的帮助。

阅读(4565) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~