GPFS檔案系統能夠橫跨在所有主機上,分布在所有磁盤上,條帶化讀寫,高性能。信令管理機制,并發性好。可配置failgroup組,可用性高。下面是GPFS叢集的部署過程......
yum install -y compat-libstdc++-33 rpm-build kernel-headers kernel-devel imake gcc-c++ libstdc++ redhat-lsb
多台伺服器都要安裝
rpm -ivh gpfs.base-3.4.0-0.x86_64.rpm
rpm -ivh gpfs.docs-3.4.0-0.noarch.rpm
rpm -ivh gpfs.gpl-3.4.0-0.noarch.rpm
rpm -ivh gpfs.msg.en_us-3.4.0-0.noarch.rpm
[root@Web02_a base]# rpm -qa|grep gpfs
gpfs.msg.en_US-3.4.0-0
gpfs.gpl-3.4.0-0
gpfs.base-3.4.0-0
gpfs.docs-3.4.0-0
rpm -Uvhgpfs.base-3.4.0-21.x86_64.update.rpm
rpm -Uvh gpfs.docs-3.4.0-21.noarch.rpm
rpm -Uvh gpfs.gpl-3.4.0-21.noarch.rpm
rpm -Uvh gpfs.msg.en_US-3.4.0-21.noarch.rpm
[root@Web02_a update]# rpm -qa|grep gpfs
gpfs.gpl-3.4.0-21
gpfs.msg.en_US-3.4.0-21
gpfs.base-3.4.0-21
gpfs.docs-3.4.0-21
[root@Web02_a update]# cd/usr/lpp/mmfs/src/
[root@Web02_a src]# makeLINUX_DISTRIBUTION=REDHAT_AS_LINUX Autoconfig
[root@Web02_a src]# make World
[root@Web02_a src]# make InstallImages
[root@Web02_a src]# make rpm #生成rpm包,生成路徑會有提示
[root@Web02_a src]# rpm -ivh /usr/src/redhat/RPMS/x86_64/gpfs.gplbin-2.6.18-308.el5-3.4.0-21.x86_64.rpm
[root@Web02_a src]# rpm -qa|grep gpfs
gpfs.gplbin-2.6.18-308.el5-3.4.0-21
如果伺服器之間時間不同步,部署GPFS叢集時會失敗
[root@Web02_a src]# crontab -l
#time sync by yangrong at 2014-1-24
*/10 * * * * /usr/sbin/ntpdate pool.ntp.org>/dev/null 2>&1
[root@Nagios update]# crontab -l
注:也可以配置rsh免密鑰,且gpfs預設是使用rsh密鑰登陸遠端主機
[root@Web02_a src]# cd /root/.ssh/
[root@Web02_a .ssh]# ssh-keygen -t rsa
[root@Web02_a .ssh]# cp id_rsa.pubauthorized_keys
[root@Web02_a .ssh]# ssh Web02_a #登陸自己測試
[root@Web02_a .ssh]# cat /etc/hosts
10.0.0.243 Nagios
10.0.0.236 Web02_a
[root@Web02_a .ssh]# scp -r /root/.sshroot@Nagios:/root #把密鑰拷貝到其它主機
[root@Web02_a .ssh]# ssh Nagios
Last login: Fri Jan 24 13:59:19 2014 from192.168.2.53
[root@Nagios ~]# exit
[root@Nagios src]# ssh Web02_a
Warning: Permanently added the RSA host keyfor IP address '10.0.0.236' to the list of known hosts.
Last login: Fri Jan 24 15:03:44 2014 fromlocalhost.localdomain
[root@Web02_a ~]# exit
[root@Web02_a .ssh]# echo 'exportPATH=$PATH:/usr/lpp/mmfs/bin' >>/etc/profile
[root@Web02_a .ssh]# source /etc/profile
[root@Web02_a .ssh]# mmfs
mmfsadm mmfsd mmfsfuncs.Linux
mmfsck mmfsenv mmfsmnthelp
mmfsctl mmfsfuncs mmfsmount
#接下來的操作隻需要在一台伺服器上操作即可。此時已配置好互信,所有的配置檔案資訊自動同步到其它的伺服器上。
[root@Web02_a .ssh]# cat /tmp/gpfsfile
Web02_a:quorum-manager
Nagios:quorum-manager
[root@Web02_a .ssh]# mmcrcluster -N/tmp/gpfsfile -p Web02_a -s Nagios -r /usr/bin/ssh -R /usr/bin/scp
#預設GPFS使用rcp拷貝,使用rsh遠端。此處修改遠端方式和複制方式
#查詢指令:mmlscluster
[root@Web02_a ~]# mmchlicense server--accept -N Web02_a,Nagios
注:服務節點或quorum節點用server,其它節點用client,client節點隻有挂載檔案系統的權限,不能更改配置。指令如:
mmchlicense client --accept -N host_a,host_b
目前采用多個分區部署GPFS叢集
目前分區:
[root@Web02_a ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 13 104391 83 Linux
/dev/sdb2 14 26 104422+ 83 Linux
/dev/sdb3 27 39 104422+ 83 Linux
/dev/sdb4 40 130 730957+ 5 Extended
/dev/sdb5 40 52 104391 83 Linux
/dev/sdb6 53 65 104391 83 Linux
/dev/sdb7 66 78 104391 83 Linux
[root@Nagios ~]# fdisk -l /dev/sdb
編輯nsd配置
[root@Web02_a ~]# cat /tmp/nsdfile
/dev/sdb1:Web02_a::dataAndMetadata:01:
/dev/sdb2:Web02_a::dataAndMetadata:01:
/dev/sdb3:Web02_a::dataAndMetadata:01:
/dev/sdb5:Web02_a::dataAndMetadata:01:
/dev/sdb1:Nagios::dataAndMetadata:02:
/dev/sdb2:Nagios::dataAndMetadata:02:
/dev/sdb3:Nagios::dataAndMetadata:02:
#注:此時failgroup組1與組2磁盤數并不相同,但是磁盤不等是沒關系的。兩個組相當于raid1。
[root@Web02_a ~]# mmcrnsd -F /tmp/nsdfile-v no
#生成NSD檔案
[root@Web02_a ~]# cat /tmp/nsdfile
# /dev/sdb1:Web02_a::dataAndMetadata:01:
gpfs1nsd:::dataAndMetadata:01::system
# /dev/sdb2:Web02_a::dataAndMetadata:01:
gpfs2nsd:::dataAndMetadata:01::system
# /dev/sdb3:Web02_a::dataAndMetadata:01:
gpfs3nsd:::dataAndMetadata:01::system
# /dev/sdb5:Web02_a::dataAndMetadata:01:
gpfs4nsd:::dataAndMetadata:01::system
# /dev/sdb1:Nagios::dataAndMetadata:02:
gpfs5nsd:::dataAndMetadata:02::system
# /dev/sdb2:Nagios::dataAndMetadata:02:
gpfs6nsd:::dataAndMetadata:02::system
# /dev/sdb3:Nagios::dataAndMetadata:02:
gpfs7nsd:::dataAndMetadata:02::system
# /dev/sdb5:Nagios::dataAndMetadata:02:
gpfs8nsd:::dataAndMetadata:02::system
#仲裁盤作用,當定義的仲裁盤有一半的磁盤不可用時,該叢集不可用。
另:有效磁盤數小于等于整個磁盤數一半時,整個檔案系統不可用。
[root@Web02_a ~]# mmchconfig tiebreakerDisks="gpfs1nsd;gpfs2nsd;gpfs3nsd"
Verifying GPFS is stopped on all nodes ...
mmchconfig: Command successfully completed
mmchconfig: Propagating the clusterconfiguration data to all
affected nodes. This is anasynchronous process.
[root@Web02_a tmp]# mmgetstate -a
Nodenumber Node name GPFS state
------------------------------------------
1 Web02_a active
2 Nagios active
如果mmgetstate -a狀态為down,請確定:防火牆關閉,兩台伺服器時間同步(注意時區也要一緻),/etc/hosts中沒有對應127.0.0.1字段。
gpfs錯誤日志路徑:/var/adm/ras/mmfs.log.latest
#修改節點IP mmchnode --daemon-interface=10.0.0.236 -NWeb02_a
[root@Web02_a tmp]# mmcrfs vol_data -F/tmp/nsdfile -B 256K -m 2 -r 2 -j cluster -T /vol_data -v no
The following disks of vol_data will beformatted on node Web02_a:
gpfs1nsd: size 104391 KB
gpfs2nsd: size 104422 KB
gpfs3nsd: size 104422 KB
gpfs4nsd: size 104391 KB
gpfs9nsd: size 104391 KB
gpfs10nsd: size 104422 KB
gpfs11nsd: size 104422 KB
gpfs12nsd: size 104391 KB
Formatting file system ...
Disks up to size 6.4 GB can be added tostorage pool 'system'.
Creating Inode File
Creating Allocation Maps
Creating Log Files
Clearing Inode Allocation Map
Clearing Block Allocation Map
Formatting Allocation Map for storage pool'system'
Completed creation of file system/dev/vol_data.
mmcrfs: Propagating the clusterconfiguration data to all
[root@Web02_a ras]# mmmount /vol_data -a
Fri Jan 24 20:04:25 CST 2014: mmmount:Mounting file systems ...
[root@Web02_a ras]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext3 19G 11G 7.0G 60% /
/dev/sda1 ext3 190M 12M 169M 7% /boot
tmpfs tmpfs 123M 0 123M 0% /dev/shm
/dev/vol_data gpfs 814M 333M 481M 41% /vol_data
[root@Nagios ras]# df -hT
/dev/sda3 ext3 6.6G 3.5G 2.8G 56% /
tmpfs tmpfs 249M 0 249M 0% /dev/shm
安裝完成。
mmchconfig autoload=yes
或在/etc/rc.local中添加:/usr/lpp/mmfs/bin/mmstartup -a
down掉Nagiogs伺服器測試。看資料是否讀取正常
[root@Web02_a ras]# cd /vol_data/
[root@Web02_a vol_data]# cp /etc/hosts .
[root@Web02_a vol_data]# ll
total 0
-rw-r--r-- 1 root root 375 Jan 26 09:25hosts
[root@Web02_a vol_data]# cat hosts
# Do not remove the following line, orvarious programs
# that require network functionality willfail.
127.0.0.1 localhost.localdomain localhostbogon
::1 localhost6.localdomain6 localhost6
[root@Web02_a vol_data]# ssh Nagios
Last login: Sun Jan 26 09:08:28 2014 fromweb02_a
[root@Nagios ~]# /etc/init.d/networkstop #down掉Nagios伺服器網卡
Shutting down interface eth0:
[root@Web02_a vol_data]# mmgetstate -a #檢視狀态已經有一個節點down掉
2 Nagios unknown
[root@Web02_a vol_data]# cat/vol_data/hosts #還能正常讀取,保證叢集的高可用。
測試OK。
關于GPFS的維護與指令說明待下一篇。。。