GPFS(General Parallel File System ,GPFS) 是 IBM 公司第一個共享文件系統(tǒng)灵妨,起源于 IBM SP 系統(tǒng)上使用的虛擬共享磁盤技術(shù)( VSD )。作為這項技術(shù)的核心, GPFS 是一個并行的磁盤文件系統(tǒng)诽表,它保證在資源組內(nèi)的 所有節(jié)點可以并行訪問整個文件系統(tǒng)猎塞;而且針對此文件系統(tǒng)的服務(wù)操作胰挑,可以同時安全地在 使用此文件系統(tǒng)的多個節(jié)點上實現(xiàn)蔓罚。 GPFS 允許客戶共享文件,而這些文件可能分布在不同節(jié)點的不同硬盤上瞻颂;它提供了許多標準的 UNIX 文件系統(tǒng)接口豺谈,允許應(yīng)用不需修改或者重新編輯就可以在其上運行≌号螅——引自百度詞條
需要安裝GPFS文件系統(tǒng)的對其好處應(yīng)該已經(jīng)了解很多了核无,在這里就不再贅述扣唱。下面開始我們的安裝過程
1 安裝環(huán)境需求
安裝GPFS文件系統(tǒng)需要很多安裝包藕坯。筆者的環(huán)境的CentOS7,內(nèi)核版本為3.10.0-693.el7.x86_64噪沙。
yum -y install make perl rsh ld-linux.so libm.so.6 libc.so.6 ksh libstdc++.so.5 rsh-server rpcbind xinetd libaio cpp gcc-c++ gcc nfs-utils kernel-headers kernel-devel compat-libstdc++ glibc-devel libXp.so.6 imake rpm-build rpm-build redhat-lsb
2 GPFS安裝
2.1 準備GPFS安裝包
linux版的GPFS軟件可以到這個地方下載https://download.csdn.net/download/lovesteed/10325141
這個軟件包里包含了GPFS軟件的所有所需要的包炼彪,而且集成了linux內(nèi)核版本為3.10.0-693.21.1.el7.x86_64
的編譯過的安裝包,如果大家的內(nèi)核與其相同的話就可以跳過蛋疼的編譯環(huán)節(jié)正歼。安裝完base包后辐马,直接安裝內(nèi)核包就行了。當(dāng)然局义,如果不是的話喜爷,那就和筆者一起來學(xué)習(xí)如何安裝配置吧。
2.2 GPFS基礎(chǔ)包安裝
這個比較簡單但是所有的服務(wù)器都要安裝萄唇。所以檩帐,先把軟件包上傳到各個服務(wù)器吧。
我們來看一下軟件包及結(jié)構(gòu)
首先打開base文件夾另萤,敲入命令
rpm -ivh gpfs.*.rpm
這個命令有可能會出錯湃密。如果出錯了诅挑,那就先用命令rpm -qa|grep gpfs
查看安裝了那些包了,然后使用命令rpm -e --nodeps 軟件名
刪除所有包泛源。重新拔妥,老老實實的一個一個按順序安裝。
rpm -ivh gpfs.base-4.1.1-0.x86_64.rpm (必要)
rpm -ivh gpfs.docs-4.1.1-0.noarch.rpm (必要)
rpm -ivh gpfs.gpl-4.1.1-0.noarch.rpm (必要)
rpm -ivh gpfs.msg.en_US-4.1.1-0.noarch.rpm (必要)
rpm -ivh gpfs.gskit-8.0.50-40.x86_64.rpm (非必要)
rpm -ivh gpfs.ext-4.1.1-0.x86_64.rpm (非必要)
使用命令rpm -qa|grep gpfs
查看是否安裝完成达箍。
2.3 GPFS升級包安裝
同樣所有的服務(wù)器都要安裝
如果你的linux內(nèi)核版本是3.10.0-693.21.1.el7.x86_64
那么恭喜你没龙,你就可以跳過這一步驟,直接用前面提到的軟件包里的已經(jīng)編譯好的rpm包缎玫。
安裝命令rpm -Uvh gpfs.*.rpm
兜畸。
你也可以一個一個的安裝。
rpm -Uvh gpfs.base-4.1.1-11.2.x86_64.update.rpm (必要)
rpm -Uvh gpfs.docs-4.1.1-11.2.noarch.rpm (必要)
rpm -Uvh gpfs.gpl-4.1.1-11.2.noarch.rpm (必要)
rpm -Uvh gpfs.msg.en_US-4.1.1-11.2.noarch.rpm (必要)
rpm -Uvh gpfs.gskit-8.0.50-47.x86_64.rpm (非必要)
rpm -Uvh gpfs.ext-4.1.1-11.2.x86_64.update.rpm (非必要)
使用命令rpm -qa|grep gpfs
查看是否安裝完成碘梢。
2.4 編譯GPFS源碼
這一步是筆者的噩夢咬摇,遇到了N多的問題,希望讀者不會像我這么苦逼煞躬。
首先肛鹏,打開GPFS的目錄
cd /usr/lpp/mmfs/src/
執(zhí)行命令 make LINUX_DISTRIBUTION=REDHAT_AS_LINUX Autoconfig
如果你的輸出和筆者一樣,不要驚慌恩沛,這不一定是問題在扰。如果你的輸出比筆者多。那么就要看看后面輸出的是什么錯誤了雷客。
接著執(zhí)行命令
make World
這里就出錯了芒珠,這種錯誤一般是因為內(nèi)核問題。我們進入出錯提示目錄cd /usr/src/kernels/
發(fā)現(xiàn)其有兩個內(nèi)核
其中
3.10.0-693.el7.x86_64
為我安裝系統(tǒng)時的內(nèi)核搅裙,3.10.0-693.21.1.el7.x86_64
為我剛開始時執(zhí)行yum -y install kernel-devel
命令時安裝的內(nèi)核皱卓,我們只需把老的內(nèi)核刪除掉,把新的內(nèi)核重命名為老內(nèi)核的名字就行部逮。
rm -rf 3.10.0-693.el7.x86_64 #刪除老內(nèi)核
mv -f 3.10.0-693.21.1.el7.x86_64 3.10.0-693.el7.x86_64 重命名新內(nèi)核
我們?nèi)?code>/usr/lpp/mmfs/src/config/目錄下的編輯
env.mcr
文件 vim env.mcr
娜汁,將末尾的/build
去掉重新執(zhí)行
make LINUX_DISTRIBUTION=REDHAT_AS_LINUX Autoconfig
接著執(zhí)行
make World
唉!又出錯了P峙蟆F!
解決方案
根據(jù)錯誤提示颅和,編輯文件
vim /usr/lpp/mmfs/src/gpl-linux/kdump.c
添加語句:
unsigned long page_offset_base;
重新執(zhí)行
make World
, 結(jié)果完美傅事!繼續(xù)執(zhí)行命令 :
make InstallImages
和 make rpm
完美生成安裝包,我們進入如圖所示的目錄峡扩,安裝該rpm包.把該安裝包發(fā)給其他服務(wù)器并安裝蹭越。
rpm -ivh gpfs.gplbin-3.10.0-693.21.1.el7.x86_64-4.1.1-11.2.x86_64.rpm
最后不要忘了添加PATH路徑
vim /etc/profile
在結(jié)尾添加一句export PATH=$PATH:/usr/lpp/mmfs/bin
執(zhí)行 source /etc/profile
3 配置ssh免秘鑰訪問集群
這一節(jié),不是重點有额,簡單說一下命令般又。也可以配置rsh免密鑰彼绷,且gpfs默認是使用rsh密鑰登陸遠端主機
首先修改hosts文件,把你的節(jié)點名和IP對應(yīng)起來
vi /etc/hosts
配置免秘鑰
cd /root/.ssh/
ssh-keygen -t rsa #在主服務(wù)器創(chuàng)建秘鑰
cp id_rsa.pub authorized_keys
scp -r /root/.ssh root@你的節(jié)點名或者IP地址:/root #超拷貝到其他所有服務(wù)器上
4 配置GPFS文件系統(tǒng)
此處建議先配置兩臺服務(wù)器茴迁,這樣即使出錯寄悯,也只用回復(fù)兩臺服務(wù)器就可以。其他服務(wù)器是可以后續(xù)添加進來了堕义。筆者這里先配置兩臺服務(wù)器猜旬。
4.1 創(chuàng)建集群
在/tmp
下創(chuàng)建集群配置文件gpfsfile
vim /tmp/gpfsfile
node57:quorum-manager
node56:quorum-manager
創(chuàng)建集群
mmcrcluster -N /tmp/gpfsfile -p node57 -s node56 -C gpfs -r /usr/bin/ssh -R /usr/bin/scp
mmcrcluster 命令其中參數(shù)含義
-C bgbcrun 設(shè)定集群名稱
-U bgbc 定義域名
-N /tmp/gpfs/nodefile 指定節(jié)點文件名
-p 指定主NSD服務(wù)器
-s 指定備NSD服務(wù)器
-r和-R都是通信協(xié)議
4.2 授權(quán)
mmchlicense server --accept -N node57,node56
4.3 配置NSD盤
查看當(dāng)前服務(wù)器分區(qū)fdisk -l /dev/sda
筆者各個節(jié)點都是一樣的分區(qū),只看一個就行倦卖,如果有不同的洒擦,就要挨個查看,以確定掛載點怕膛。
編輯NSD配置
在
/tmp
下創(chuàng)建集群配置文件nsdfile
vim /tmp/nsdfile
/dev/sda2:node57::dataAndMetadata:01:
/dev/sda2:node56::dataAndMetadata:02:
生成NSD文件
執(zhí)行命令mmcrnsd -F /tmp/nsdfile -v no
查看生成文件cat /tmp/nsdfile
# /dev/sda1:node57::dataAndMetadata:01:
gpfs1nsd:::dataAndMetadata:01::system
# /dev/sdb2:node56::dataAndMetadata:02:
gpfs2nsd:::dataAndMetadata:02::system
4.4 配置仲裁判
執(zhí)行命令mmchconfig tiebreakerDisks="gpfs1nsd;gpfs2nsd"
Verifying GPFS is stopped on all nodes ...
mmchconfig: Command successfully completed
mmchconfig: Propagating the clusterconfiguration data to all affected nodes.
This is anasynchronous process.
4.5 啟動集群
執(zhí)行命令mmstartup -a
查看集群狀態(tài)mmgetstate -a
4.5 創(chuàng)建GPFS文件系統(tǒng)
執(zhí)行命令mmcrfs gpfs -F /tmp/nsdfile -B 256K -A yes -m 2 -r 2 -j gpfs -T /gpfs -v no
參數(shù)含義如下:
gpfs 文件系統(tǒng) mount 點名
-F 指定 NSD 的文件名
-A 自動 mount 選項為 yes
-m 最大元數(shù)據(jù)副本
-r 默認的數(shù)據(jù)副本
-B 塊大小為256K
-j 集群名
-T 掛載點
-v 校驗建立磁盤是否已有文件系統(tǒng) 為否
4.5 掛載文件
執(zhí)行mmmount /gpfs -a
安裝配置完成~~熟嫩!
5 尾聲
可以設(shè)置開機自啟動 mmchconfig autoload=yes
或者在/etc/rc.local
中添加:/usr/lpp/mmfs/bin/mmstartup -a
至于添加其他節(jié)點及節(jié)點上的磁盤的方法,筆者后期會補上褐捻。不過這個很簡單掸茅,網(wǎng)上教程很多。