GPFS文件系統可以橫跨在全部主機上,分佈在全部磁盤上,條帶化讀寫,高性能。信令管理機制,併發性好。可配置failgroup組,可用性高。下面是GPFS集羣的部署過程......node
yum install -y compat-libstdc++-33 rpm-build kernel-headers kernel-devel imake gcc-c++ libstdc++ redhat-lsbios
多臺服務器都要安裝c++
rpm -ivh gpfs.base-3.4.0-0.x86_64.rpmweb
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.rpmdom
[root@Web02_a base]# rpm -qa|grep gpfsssh
gpfs.msg.en_US-3.4.0-0async
gpfs.gpl-3.4.0-0ide
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.gpl-3.4.0-21
gpfs.msg.en_US-3.4.0-21
gpfs.gplbin-2.6.18-308.el5-3.4.0-21
gpfs.base-3.4.0-21
gpfs.docs-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
#time sync by yangrong at 2014-1-24
*/10 * * * * /usr/sbin/ntpdate pool.ntp.org>/dev/null 2>&1
注:也能夠配置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
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
編輯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
[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
affected nodes. This is anasynchronous process.
[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
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext3 6.6G 3.5G 2.8G 56% /
/dev/sda1 ext3 190M 12M 169M 7% /boot
tmpfs tmpfs 249M 0 249M 0% /dev/shm
/dev/vol_data gpfs 814M 333M 481M 41% /vol_data
安裝完成。
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
10.0.0.236 Web02_a
10.0.0.243 Nagios
[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掉
Nodenumber Node name GPFS state
------------------------------------------
1 Web02_a active
2 Nagios unknown
[root@Web02_a vol_data]# cat/vol_data/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
10.0.0.236 Web02_a
10.0.0.243 Nagios
測試OK。
關於GPFS的維護與命令說明待下一篇。。。