天天看點

GPFS通用并行檔案系統之Centos5.8部署gpfs叢集

       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的維護與指令說明待下一篇。。。

繼續閱讀