先说我的环境,在两台刀片机(blade)上体验gpfs(version 3.4)的安装过程。
1>机器配置:
9.123.100.129 (hostname gpfsbc01b08)
cat /proc/version
Linux version 2.6.18-128.el5 (
[email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Dec 17 11:41:38 EST 2008
uname -a
Linux gpfsbc01b08.gpfs.net 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
130G硬盘(系统盘sda),2G内存(查看磁盘信息命令fdisk -l)
9.123.100.224 (hostname gpfsbc01b11)
cat /proc/version
Linux version 2.6.18-128.el5 (
[email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Dec 17 11:41:38 EST 2008
uname -a
Linux gpfsbc01b11.gpfs.net 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
130G硬盘(系统盘sda),2G内存
2>安装文件:
根据官方文旦(guide),需要先从光盘拷贝出文件,其中包含各种license,此处我使用的是已经下载好的文件,列表如下:
gpfs.20110701.base-3.4.0-7.x86_64.rpm
gpfs.20110701.docs-3.4.0-7.noarch.rpm
gpfs.20110701.gpl-3.4.0-7.noarch.rpm
gpfs.20110701.msg.en_US-3.4.0-7.noarch.rpm
3>清除之前的安装痕迹:
由于我使用的机器,之前已经有人使用过,已经安装过gpfs,所以我需要做一些卸载和清理工作。
permanently uninstall gpfs:
1,卸载所有gpfs文件系统,mmumount all -a
2,删除文件系统,mmdelfs
3,删除nsd节点,mmdelnsd
4,停止gpfs系统,mmshutdown -a
5,卸载gpfs软件,先查看已经安装的软件rpm -qa|grep gpfs
rpm -e gpfs.gpl
rpm -e gpfs.msg.en_us
rpm -e gpfs.base
rpm -e gpfs.docs
6,删除目录 /var/mmfs和/usr/lpp/mmfs
7,删除/var/adm/ras目录下以mm开头的文件
8,删除/tmp/mmfs(如果存在)目录和其内容
除了以上步骤,我还需要删除之前用户建立的disk文件和nsdfile,nsddesc。
4>安装gpfs软件
直接rpm -ivh gpfs*.rpm安装即可,先安装docs,后安装其余3个,安装完成,使用
rpm -qa|grep gpfs查看安装情况。
5>在linux内核中建立gpfs可移植层(以模块的形式,make kernel modules in linux):
export SHARKCLONEROOT=/usr/lpp/mmfs/src; cd ${SHARKCLONEROOT}; make Autoconfig
export SHARKCLONEROOT=/usr/lpp/mmfs/src; cd ${SHARKCLONEROOT}; make World
export SHARKCLONEROOT=/usr/lpp/mmfs/src; cd ${SHARKCLONEROOT}; make InstallImages
6>使用mmcrcluster命令创建gpfs cluster:
首先选定一台机器129,在主目录(此处为/root)建立文件touch nodefile,并在其中写入以下内容:
gpfsbc01b08:quorum-manager
gpfsbc01b11:manager
在root目录下执行命令:
mmcrcluster -N nodefile -C ydp -p gpfsbc01b08 -s gpfsbc01b11 -r /usr/bin/ssh -R /usr/bin/scp
执行成功,可以使用mmlscluster查看所建cluster的相关信息。
此处在nodefile文件中有两行内容,每行内容的第一项为所使用机器的主机名,第二项为配置项,包括quorum节点的指定和manager节点的指定。mmcrcluster命令的各选项意义:-N指定nodefile文件,-C指定集群名称,-p指定主NSD服务器,-s指定备NSD服务器,-r指定两台机器之间的连接方式,-R指定两台机器之间文件传输的方式
由于之前没有接受license,所以此处使用命令
mmchlicense server --accept -N gpfsbc01b08
mmchlicense server --accept -N gpfsbc01b11
接受license
7>使用mmcrnsd命令创建nsd盘:
我现在有两台机器,每台机器上都已经安装了gpfs软件,但由于两台机器都只有系统盘,而gpfs需要独立分区来支持文件系统,所以我接下来要在这两台机器上使用dd命令来建立虚拟的磁盘(用文件模拟磁盘),在129的机器上:
dd if=/dev/zero of=disk1 bs=1M count=1000 # 1G
dd if=/dev/zero of=disk2 bs=1M count=1000 # 1G
dd if=/dev/zero of=disk3 bs=1M count=1000 # 1G
在244的机器上(simulate disks by empty files):
dd if=/dev/zero of=disk4 bs=1M count=1000 # 1G
dd if=/dev/zero of=disk5 bs=1M count=1000 # 1G
在root目录(也就是生成上面的disk*文件的目录)下,建立文件touch nsddesc;
在129机器上的nsddesc中写入内容:
/root/disk1:gpfsbc01b08::dataAndMetadata:1:nsd1:
/root/disk2:gpfsbc01b08::dataAndMetadata:1:nsd2:
/root/disk3:gpfsbc01b08::dataAndMetadata:1:nsd3:
在244机器上的nsddesc中写入内容:
/root/disk4:gpfsbc01b11::dataAndMetadata:1:nsd4:
/root/disk5:gpfsbc01b11::dataAndMetadata:1:nsd5:
使用mmcrnsd命令:mmcrnsd -F nsddesc -v no
此时可以发现nsddesc文件的内容发生了改变,比如129的nsddesc内容如下:
[root@gpfsbc01b08 ~]# cat nsddesc
# /root/disk1:gpfsbc01b08::dataAndMetadata:1:nsd1:
nsd1:::dataAndMetadata:1::system
# /root/disk2:gpfsbc01b08::dataAndMetadata:1:nsd2:
nsd2:::dataAndMetadata:1::system
# /root/disk3:gpfsbc01b08::dataAndMetadata:1:nsd3:
nsd3:::dataAndMetadata:1::system
同样可以使用mmlsnsd -m(或mmlsnsd -X)命令查看当前nsd盘的情况
8>启动gpfs文件系统:
mmstartup -a
此时可以使用mmgetstate -a命令查看当前gpfs文件系统状态
9>使用mmcrfs命令建立文件系统:
建立挂载点:mkdir /gpfs
mmcrfs /gpfs gpfsdev -F nsdfile -A no -B 64K -n 30 -v no
参数含义如下:
/gpfs 文件系统 mount 点名
gpfsdev 指定文件系统 lv 名
-F 指定 NSD 的文件名
-A 自动 mount 选项为 yes
-B 块大小为64K
-n 挂载文件系统的节点估计数30个
-v 校验建立磁盘是否已有文件系统 为否
此时,可以使用cat /etc/fstab命令查看当前操作系统内的文件设备
/dev/gpfsdev /gpfs gpfs
10>挂载文件系统:
mmmount gpfsdev
最后可以使用文后给出的第一个IBM技术文章中给出的示例验证gpfs文件系统的安装。
**********
中间出现的问题:
1>license接受问题
2>cluster建立时,另外连接其他机器的问题,使用-r选项开启ssh
3>nsd建立问题,使用-v no选项不检查(-v Verify the disks are not already formatted as an NSD. no就是直接覆盖原来的头部数据)
4>注意,第7和10步是需要在两台机器上都执行的,文件系统挂载后,在任何一个机器上对文件进行增删改查都可以在另外的机器上看见;mmcrfs命令的第2个参数的具体含义是所创建文件的设备名,该设备名在所有gpfs节点上均可见。
**********
参考文章链接:
http://www.ibm.com/developerworks/cn/aix/library/au-gpfs/index.html
http://wenku.baidu.com/view/a763bc4e852458fb770b56b2.html
http://www.orientsky.com.cn/_new/Read.asp?ID=1245