GPFS 檔案系統部署步驟

2023-04-11 12:01:02

GPFS 檔案系統部署步驟

  參考檔案:
  簡書網友提供: 
    https://www.jianshu.com/p/a0ecc0838b3b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
  程式設計圈網友提供:
    https://www.bianchengquan.com/article/131965.html
  官方網站提供:
    https://www.ibm.com/docs/en/spectrum-scale/5.0.3?topic=installing-spectrum-scale-linux-nodes-deploying-protocols
  新增GPFS Client操作
    https://www.sohu.com/a/213249408_151779/

一、GPFS介紹

  IBM Spectrum Scale是一個叢集檔案系統,它提供從多個節點對單個檔案系統或一組檔案系統的並行存取。節點可以是 SAN 連線的、網路連線的、SAN 連線和網路連線的混合,或者在無共用叢集設定中。這可以實現對這組通用資料的高效能存取,以支援橫向擴充套件解決方案或提供高可用性平臺。
  IBM Spectrum Scale具有許多常見資料存取之外的功能,包括資料複製、基於策略的儲存管理和多站點操作。您可以建立由 AIX® 節點、Linux 節點、Windows 伺服器節點或三者混合組成的叢集。IBM Spectrum Scale可以在虛擬化範例上執行,提供環境中的通用資料存取、利用邏輯分割區或其他管理程式。多個IBM Spectrum Scale叢集可以在一個位置內或跨廣域網 (WAN) 連線共用資料。
IBM Spectrum Scale 的優勢
  IBM Spectrum Scale提供了一個全域性名稱空間、 IBM Spectrum Scale 叢集之間的共用檔案系統存取、多個節點的同步檔案存取、通過複製實現的高可恢復性和資料可用性、在安裝檔案系統時進行更改的能力,即使在大型環境中也能簡化管理。
IBM Spectrum Scale 的基本結構
  IBM Spectrum Scale是一個定義在一個或多個節點上的叢集檔案系統。在叢集中的每個節點上, IBM Spectrum Scale由三個基本元件組成:管理命令、核心擴充套件和多執行緒守護行程。
IBM頻譜的比例的群集設定
  IBM頻譜的比例簇可以以各種方式來設定。叢集可以是硬體平臺和作業系統的異構組合。
 

二、環境介紹

節點名 節點IP 節點作用
 gpfsnode1  192.168.27.61  gpfs主節點
 gpfsnode2  192.168.27.62  gpfs從節點
 gpfsclient  192.168.27.63  gpfs使用者端
 timeserver  192.168.0.7  時間同步伺服器

三、安裝前準備

  • 設定yum源
  • 設定/etc/hosts
  • 設定ssh免密登入
  • 關閉防火牆,selinux
  • 設定時間同步
  • 安裝依賴包

3.1 設定yum源。

  使用安裝系統時的映象作為yum的本地源來設定yum源。

3.2 設定/etc/hosts

  將兩臺節點的資訊分別寫入各自機器的/etc/hosts檔案下
[root@gpfsnode1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.27.61 gpfsnode1
192.168.27.62 gpfsnode2
192.168.27.63 gpfsclient

3.3 設定ssh免密登入

  分別設定三臺機器之間root使用者的免密登入
[root@gpfsnode1 ~ ]# ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[root@gpfsnode1 ~ ]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@gpfsnode2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
Are you sure you want to continue connecting (yes/no)? yes
root@gpfsnode2's password:  這裡輸入gpfsnode2的密碼

3.4 關閉防火牆、selinux

  防火牆
關閉防火牆
[root@gpfsnode1 ~] systemctl stop firewalld
設定防火牆不開機自動啟動
[root@gpfsnode1 ~] systemctl disable firewalld
  SELinux
[root@gpfsnode1 ~] vim /etc/selinux/config SELINUX=disabled
  注意:SELinux修改後需要重新啟動機器

3.5 設定時間同步

[root@gpfsnode1 ~] crontab -e
*/5 * * * * /usr/sbin/ntpdate 192.168.0.7;/usr/sbin/hwclock -w

3.6 安裝依賴包

  對照如下表格安裝所需依賴包
 包名  功能 安裝命令
 Gcc 程式碼編譯包 yum install gcc
 Cpp 計算機程式語言 yum install cpp
 Automake Makefile檔案編輯器 yum install automake
 Kernel-devel 核心檔案開發包 yum install kernel-devel
Kernel-headers 系統核心標頭檔案包 yum install kernel-headers
binutils 一組開發工具包 yum install binutils
Python Python主安裝檔案 yum install python
Make Linux系統的編譯工具 yum install make
Ksh 互動式的命令直譯器和命令變成語言 yum install ksh
Gcc-c++ 針對C++的程式碼編譯包 yum install gcc-c++
rpm-build rpm安裝包編譯工具 yum install rpm-build

四、安裝GPFS檔案系統

  依賴包安裝完成後,將 Spectrum Scale 軟體包 Spectrum_Scale_Advanced-5.0.3.0-x86_64-Linux-install 上傳到所有的節點伺服器,通過 chmod+x 賦予執行許可權。

4.1 解壓安裝包

  解壓安裝檔案 ./ Spectrum_Scale_Advanced-5.0.3.0-x86_64-Linux-install --text-only,根據提示按"1",並接受 license 協定繼續,預設安裝檔案會被解壓到 /usr/lpp/mmfs/5.0.3.0目錄下。
[root@gpfsnode1 ~]# ./Spectrum_Scale_Advanced-5.0.3.0-x86_64-Linux-install --text-only
  預設情況下,RPM 軟體包將被解壓到以下位置:/usr/lpp/mmfs/5.0.3.0,一般redhat的rpm包在gpfsf_rpm目錄裡
[root@gpfsnode1 ~]# cd /usr/lpp/mmfs/5.0.3.0/gpfs_rpms
  在Redhat Linux安裝gpfs檔案系統所需要的軟體包如下:
gpfs.base-5.0.3-1.*.rpm
gpfs.gpl-5.0.3-1.noarch.rpm
gpfs.compression-5.0.3-1.*.rpm
gpfs.gskit-8.0.50-86.*.rpm
gpfs.msg.en_US-5.0.3-1.noarch.rpm
gpfs.license.xxx-5.0.3-1.*.rpm(其中 xxx 是許可證型別)
gpfs.adv-5.0.3-1.*.rpm(僅限 IBM Spectrum Scale Advanced 或 Data Management Edition)
gpfs.crypto-5.0.3-1.*.rpm(僅限 IBM Spectrum Scale Advanced 或 Data Management Edition)
  按照如下順序安裝rpm包:
rpm -ivh gpfs.base-5.0.3-0.x86_64.rpm
rpm -ivh gpfs.gpl-5.0.3-0.noarch.rpm
rpm -ivh gpfs.adv-5.0.3-0.x86_64.rpm
rpm -ivh gpfs.license.adv-5.0.3-0.x86_64.rpm
rpm -ivh gpfs.gskit-8.0.50-86.x86_64.rpm
rpm -ivh gpfs.msg.en_US-5.0.3-0.noarch.rpm
rpm -ivh gpfs.crypto-5.0.3-0.x86_64.rpm
rpm -ivh gpfs.docs-5.0.3-0.noarch.rpm

  安裝完成後,在啟動 GPFS 之前,必須構建並安裝 GPFS 可移植層。
  GPFS 可移植層是一個可載入的核心模組,它允許 GPFS 守護行程與作業系統互動。

4.2 設定環境變數

  開啟root使用者的.bash_profile檔案,新增如下內容。
  vim /root/.bash_profile
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/lpp/mmfs/bin
export PATH

4.3 構建 GPFS 可移植層

[root@gpfsnode1 ~]# /usr/lpp/mmfs/bin/mmbuildgpl --build-package
注意:
  • GPFS 可移植性層特定於當前核心和 GPFS 版本。如果核心或 GPFS 版本發生變化,則需要構建新的 GPFS 可移植層。
  • 儘管作業系統核心可能會升級到新版本,但它們在重新啟動後才處於活動狀態。因此,必須在重新啟動作業系統後為這個新核心構建一個 GPFS 可移植層。
  • 在安裝新的 GPFS 可移植層之前,請確保先解除安裝先前版本的 GPFS 可移植層。
 
  命令完成後,它會顯示生成的包的位置,如下例所示:
Wrote: /root/rpmbuild/RPMS/x86_64/gpfs.gplbin-3.10.0-229.el7.x86_64-5.0.3-x.x86_64.rpm
  然後,將生成的包複製到其他機器進行部署。預設情況下,生成的包只能部署到架構、分發級別、Linux 核心和IBM Spectrum Scale維護級別與構建gpfs.gplbin包的機器相同的機器上。但是,可以通過設定將生成的包安裝在具有不同 Linux 核心的機器上MM_INSTALL_ONLY安裝生成的包之前的環境變數。如果安裝 gpfs.gplbin包,則不需要安裝 gpfs.gpl包

4.4 建立叢集

[root@gpfsnode1 ~]# mmcrcluster -N /tmp/mmfs/nodefile -p gpfsnode1 -s gpfsnode2 -C gpfscluster -A -r /usr/bin/ssh -R /usr/bin/scp
  引數說明:
    -N表示節點的組態檔
    -p表示主節點
    -s表示第二節點
    -C叢集名稱
    -A表示當一個節點重啟的時候GPFS守護行程不會關閉。
    -r和-R都是通訊協定。
    nodefile是一個檔案,其中包含要新增到叢集中的節點和節點名稱的列表,其內容如下:
gpfsnode1:quorum-manager:
gpfsnode2:quorum-manager:
  注意:GPFS的仲裁機制和ZooKeeper的仲裁機制類似,當有一半以上的節點是quorum時,叢集才可以啟動,即:quorum >= 1+sizeof(all nodes)/2
  
  設定完成後,就可以通過 Spectrum Scale 內建指令建立叢集,所有角色將自動按照事先定義的伺服器自動推播與設定。
  接受適用節點許可證。
[root@gpfsnode1 ~]# mmchlicense server --accept -N all

  從節點使用以下命令啟動 GPFS 守護行程和叢集。

[root@gpfsnode1 ~]# /usr/lpp/mmfs/bin/mmstartup -N Nodename

4.5 建立NSD

  建立要與mmcrnsd命令一起使用的 NSD 組態檔。
  組態檔內容如下,放在任意位置即可。
%nsd:device=/dev/sdb nsd=data01 servers=gpfsnode1 usage=dataAndMetadata failureGroup=-1 pool=system
%nsd:device=/dev/sdb nsd=data02 servers=gpfsnode2 usage=dataAndMetadata failureGroup=-1 pool=system
  引數說明:
    nsd (網路共用磁碟)表示網路共用磁碟的名稱
    device 表示真正的裝置
    servers 表示節點
    usage 表示用途,metadataOnly(用於存放後設資料)
    failureGroup 失敗組
    pool 儲存池
  注意: NSD 組態檔中使用的伺服器名稱必須可由系統解析。
  
  使用以下命令建立 NSD:
[root@gpfsnode1 ~]# mmcrnsd -F /gpfsfile/NSDfile

  檢視nsd:

[root@gpfsnode1 ~]# mmlsnsd -m
  啟動叢集:
[root@gpfsnode1 ~]# mmstartup -a
  檢視叢集狀態:
[root@gpfsnode1 ~]# mmgetstate -Las

4.6 建立gpfs檔案系統

  使用以下命令建立 GPFS 檔案系統。
[root@gpfsnode1 ~]# mmcrfs gpfs -F /tmp/mmfs/nsdfile -A yes -B 1M -j hcluster -m 2 -r 2 -M 3 -R 3 -T /gpfs --metadata-block-size 256K
  官方給出的命令如下(一般用這個建立):
[root@gpfsnode1 ~]# mmcrfs gpfs -F /tmp/mmfs/nsdfile -k nfs4
  引數說明:
    gpfs:表示檔案系統的名稱
    -F:指定NSD組態檔
    -A:當系統守護行程啟動時該項設定為yes
    -B:指定資料塊的大小,其值必須是16k,64k,128k,256k,512k,1M,2M,4M,8M,16M.
    -j:指定對映型別
    -m:後設資料副本數的預設值
    -M:後設資料副本數的最大值
    -r:資料副本數的預設值
    -R:資料副本數的最大值
    -T:掛載點
    --metadata-block-size:後設資料節點塊的大小

4.7 掛載檔案系統

  使用如下命令掛載gpfs檔案系統,掛載成功後使用df命令可以查詢到。
[root@gpfsnode1 ~]# mmmount gpfs /gpfs -N all

  查詢掛載是否成功,看見檔案系統為gpfs的表示掛載成功。

[root@gpfsnode1 ~]# df -hT
檔案系統              型別      容量  已用  可用 已用% 掛載點
/dev/mapper/rhel-root xfs        92G   14G   78G   15% /
devtmpfs              devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                 tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                 tmpfs     1.9G  9.0M  1.9G    1% /run
tmpfs                 tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1             xfs      1014M  143M  872M   15% /boot
tmpfs                 tmpfs     378M     0  378M    0% /run/user/0
gpfs                  gpfs      600G  6.7G  594G    2% /gpfs
  查詢檔案系統
[root@gpfsnode1 ~]# mmgetstate -Las

 Node number  Node name       Quorum  Nodes up  Total nodes  GPFS state   Remarks    
-------------------------------------------------------------------------------------
       1      gpfsnode1          2        2          3       active       quorum node
       2      gpfsnode2          2        2          3       active       quorum node
       3      gpfsclient         2        2          3       active       

 Summary information 
---------------------
Number of nodes defined in the cluster:            3
Number of local nodes active in the cluster:       3
Number of remote nodes joined in this cluster:     0
Number of quorum nodes defined in the cluster:     2
Number of quorum nodes active in the cluster:      2
Quorum = 2, Quorum achieved

4.8 建立檔案集

[root@gpfsnode1 ~]# mmcrfileset gpfs sqdb
[root@gpfsnode1 ~]# mmlinkfileset gpfs sqdb -J /gpfs/sqdbfolder
[root@gpfsnode1 ~]# mmlsfileset gpfs

4.9 其他操作

檢視節點
# mmlsnode

檢視叢集
# mmlscluster -Lsa

增加節點(如下為增加伺服器端,也可以修改server的引數後增加使用者端)
# mmaddnode -N gpfs04:quorum
# mmchlicense server --accept -N gpfs04

關閉所有節點
# mmshutdown -a
# mmshutdown -N nodename

檢視設定
# mmlsconfig all

修改設定
# mmchconfig

使用以下命令解除安裝 GPFS 檔案系統並停止所有節點上的 GPFS。
# mmshutdown -a

解除安裝gpfs分割區
# mmumount gpfs

使用以下命令在可用檔案系統之一上設定 CES 共用根檔案系統。
# mmchconfig cesSharedRoot=/gpfs/fs0

使用以下命令在叢集中的所有節點上啟動 GPFS。
# mmstartup -a
# mmstartup -N nodename

使用以下命令在所需節點上啟用 CES。
# mmchnode --ces-enable -N prnode1,prnode2,prnode3

使用以下命令將協定節點的 IP 地址新增到 CES。
# mmces address add --ces-ip 198.51.100.2
# mmces address add --node prnode1 --ces-ip 198.51.100.2

使用以下命令驗證 CES 設定。
# mmlscluster --ces
# mmces address list
更改自動掛載點
  官方解釋:
    每個 GPFS 檔案系統都有一個與之關聯的預設掛載點。可以使用mmcrfsmmchfs命令的-T選項指定和更改此掛載點。
  如果您在建立檔案系統時沒有指定掛載點,GPFS 會將預設掛載點設定為/gpfs/ DeviceName
mmcrfs -T 
mmchfs -T
  具體使用方式和其他命令使用方式可以參考官方網址:https://www.ibm.com/docs/en/spectrum-scale/5.0.3?topic=reference-mmchfs-command
 

五、新增GPFS 使用者端操作

   通過上述操作,已經將GPFS群集搭建完成,並且已經生成檔案系統和共用磁碟供使用者端呼叫。之前已經介紹過GPFS是C/S結構的,為了讓OpenStack中的nova、glance和cinder可以使用共用磁碟,本章將通過在OpenStack中安裝GPFS使用者端的方式,將共用磁碟掛載到雲環境中的計算節點、映象節點以及塊儲存節點。

 5.1 安裝GPFS軟體

  安裝軟體可以參考文章開頭的操作過程,GPFS伺服器端的安裝和使用者端的安裝沒有任何區別,軟體的依賴關係也是一樣的。

 5.2 修改Host檔案

  在使用者端修改/etc/hosts,加入GPFS的三臺伺服器,同時確保所有伺服器和使用者端可以免密碼登陸,具體設定方法可以參考本章GPFS安裝與設定。

 5.3 建立使用者端Nodefile

  前面已經介紹,GPFS的使用者端和伺服器的區別主要是靠組態檔中的角色定義所決定。為了批次安裝和設定好使用者端,本專案將採用Nodefile方式對使用者端進行單獨安裝。編輯addnodefile檔案:
gpfsclient:client

5.4 新增使用者端節點

  在GPFS叢集的任意節點上執行mmaddnode命令,將使用者端節點加入到現有叢集中,-N指定前面建立addnodefile檔案。
[root@gpfsclient ~]# mmaddnonde -N addnodefile
  同樣,安裝完成後,需要通過mmchlicense命令同意使用者端的許可,並通過mmstartup啟動使用者端服務,通過mmgetstate命令檢視群集狀態:
[root@gpfsclient ~]# mmchlicense client --accept -N gpfsclient
[root@gpfsclient ~]# mmstartup -N gpfsclient
[root@gpfsclient ~]# mmmount gpfs /gpfs -N gpfsclient

  節點服務啟動後,GPFS檔案系統會自動掛載,可以通過df -h命令檢視。

5.5  其他操作

重新掛載
  如果需要對gpfs檔案重新掛載,那麼先使用mmumount gpfs解除安裝後,重新執行mmmount 進行掛載。
[root@gpfsclient ~]# mmumount gpfs
[root@gpfsclient ~]# mmmount gpfs /gpfs -N ${CLIENT_NODE_NAME}
關於環境重啟後恢復環境的操作:
  如果需要重新啟動環境,需要執行如下步驟才能恢復環境到正常情況
  1.重啟Server端的服務。
[root@gpfnode1 ~]# mmstartup -a 

  2.掛載Server端的gpfs目錄。

[root@gpfnode1 ~]# mmmount gpfs /gpfs -N all
  3.重啟Client端的服務,如果gpfs自動掛載的路徑不對,需要手動解除安裝gpfs的目錄重新掛載。
[root@gpfsclient ~]# mmstartup -N gpfsclient
解除安裝:mmumount gpfs
[root@gpfsclient ~]# mmmount gpfs /gpfs -N gpfsclient

結束語

  通過在 Redhat 上實現GPFS群集的部署與在雲端計算方面的應用,可以更多的瞭解其優秀的特性,提高儲存效能及雲端計算的靈活性、擴充套件性。同時通過本文,可以讓讀者對GPFS有一個直觀的瞭解和認識,不僅在Linux平臺,在AIX和Windows平臺上,GPFS也有不俗的表現。
 
  gpfs 高階設定、升級等其他操作請檢視官網手冊
  gpfs相關命令使用方式查詢連結
  https://www.ibm.com/docs/en/spectrum-scale/5.0.3?topic=command-reference

 

搭建步驟到此結束

如果有什麼建議或者不明白的地方,歡迎留言或者私信我,看見第一時間回覆。

本篇檔案中存在的已知問題歡迎各路大牛指出。