레이블이 GPFS인 게시물을 표시합니다. 모든 게시물 표시
레이블이 GPFS인 게시물을 표시합니다. 모든 게시물 표시

2020년 10월 27일 화요일

IBM POWER9 (ppc64le) Redhat 7에서 Spectrum Scale (GPFS) v5 구성하기

 


여기서의 설정은 gw(2.1.1.1) 서버를 1대 뿐인 GPFS 서버로, 그리고 2대의 서버 tac1과 tac2 (각각 2.1.1.3, 2.1.1.4)를 GPFS client 노드로 등록하는 것입니다.  즉 GPFS의 물리적 disk가 직접 연결되는 것은 gw 서버이고, tac1과 tac2 서버는 gw 서버가 보내주는 GPFS filesystem을 NSD (network storage device) 형태로 network을 통해서 받게 됩니다.


먼저 모든 서버에서 firewalld를 disable합니다.  이와 함께 각 서버 간에 passwd 없이 ssh가 가능하도록 미리 설정해둡니다.


[root@gw ~]# systemctl stop firewalld


[root@gw ~]# systemctl disable firewalld


여기서는 GPFS (새이름 SpectrumScale) installer를 이용하여 설치하겠습니다.  GPFS v5부터는 ansible을 이용하여 1대에서만 설치하면 다른 cluster node들에게도 자동으로 설치가 되어 편합니다.  먼저 install 파일을 수행하면 self-extraction이 시작되며 파일들이 생성됩니다.


[root@gw SW]# ./Spectrum_Scale_Advanced-5.0.4.0-ppc64LE-Linux-install

Extracting Product RPMs to /usr/lpp/mmfs/5.0.4.0 ...

tail -n +641 ./Spectrum_Scale_Advanced-5.0.4.0-ppc64LE-Linux-install | tar -C /usr/lpp/mmfs/5.0.4.0 --wildcards -xvz  installer gpfs_rpms/rhel/rhel7 hdfs_debs/ubuntu16/hdfs_3.1.0.x hdfs_rpms/rhel7/hdfs_2.7.3.x hdfs_rpms/rhel7/hdfs_3.0.0.x hdfs_rpms/rhel7/hdfs_3.1.0.x zimon_debs/ubuntu/ubuntu16 ganesha_rpms/rhel7 ganesha_rpms/rhel8 gpfs_debs/ubuntu16 gpfs_rpms/sles12 object_rpms/rhel7 smb_rpms/rhel7 smb_rpms/rhel8 tools/repo zimon_debs/ubuntu16 zimon_rpms/rhel7 zimon_rpms/rhel8 zimon_rpms/sles12 zimon_rpms/sles15 gpfs_debs gpfs_rpms manifest 1> /dev/null

   - installer

   - gpfs_rpms/rhel/rhel7

   - hdfs_debs/ubuntu16/hdfs_3.1.0.x

   - hdfs_rpms/rhel7/hdfs_2.7.3.x

...

   - gpfs_debs

   - gpfs_rpms

   - manifest


Removing License Acceptance Process Tool from /usr/lpp/mmfs/5.0.4.0 ...

rm -rf  /usr/lpp/mmfs/5.0.4.0/LAP_HOME /usr/lpp/mmfs/5.0.4.0/LA_HOME


Removing JRE from /usr/lpp/mmfs/5.0.4.0 ...

rm -rf /usr/lpp/mmfs/5.0.4.0/ibm-java*tgz


==================================================================

Product packages successfully extracted to /usr/lpp/mmfs/5.0.4.0


   Cluster installation and protocol deployment

      To install a cluster or deploy protocols with the Spectrum Scale Install Toolkit:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale -h

      To install a cluster manually:  Use the gpfs packages located within /usr/lpp/mmfs/5.0.4.0/gpfs_<rpms/debs>


      To upgrade an existing cluster using the Spectrum Scale Install Toolkit:

      1) Copy your old clusterdefinition.txt file to the new /usr/lpp/mmfs/5.0.4.0/installer/configuration/ location

      2) Review and update the config:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale config update

      3) (Optional) Update the toolkit to reflect the current cluster config:

         /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale config populate -N <node>

      4) Run the upgrade:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale upgrade -h


      To add nodes to an existing cluster using the Spectrum Scale Install Toolkit:

      1) Add nodes to the clusterdefinition.txt file:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale node add -h

      2) Install GPFS on the new nodes:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale install -h

      3) Deploy protocols on the new nodes:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale deploy -h


      To add NSDs or file systems to an existing cluster using the Spectrum Scale Install Toolkit:

      1) Add nsds and/or filesystems with:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale nsd add -h

      2) Install the NSDs:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale install -h

      3) Deploy the new file system:  /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale deploy -h


      To update the toolkit to reflect the current cluster config examples:

         /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale config populate -N <node>

      1) Manual updates outside of the install toolkit

      2) Sync the current cluster state to the install toolkit prior to upgrade

      3) Switching from a manually managed cluster to the install toolkit


==================================================================================

To get up and running quickly, visit our wiki for an IBM Spectrum Scale Protocols Quick Overview:

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/General%20Parallel%20File%20System%20%28GPFS%29/page/Protocols%20Quick%20Overview%20for%20IBM%20Spectrum%20Scale

===================================================================================



먼저 아래와 같이 spectrumscale 명령으로 gw 서버, 즉 2.1.1.5를 installer 서버로 지정합니다.  


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale setup -s 2.1.1.5


이어서 gw 서버를 manager node이자 admin node로 지정합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale node add 2.1.1.5 -m -n -a

[ INFO  ] Adding node gw as a GPFS node.

[ INFO  ] Adding node gw as a manager node.

[ INFO  ] Adding node gw as an NSD server.

[ INFO  ] Configuration updated.

[ INFO  ] Tip :If all node designations are complete, add NSDs to your cluster definition and define required filessytems:./spectrumscale nsd add <device> -p <primary node> -s <secondary node> -fs <file system>

[ INFO  ] Setting gw as an admin node.

[ INFO  ] Configuration updated.

[ INFO  ] Tip : Designate protocol or nsd nodes in your environment to use during install:./spectrumscale node add <node> -p -n



각 node들을 quorum node로 등록합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale node add 2.1.1.3 -q


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale node add 2.1.1.4 -q


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale node add 2.1.1.5 -q

[ INFO  ] Adding node gwp as a quorum node.



node list를 확인합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale node list

[ INFO  ] List of nodes in current configuration:

[ INFO  ] [Installer Node]

[ INFO  ] 2.1.1.5

[ INFO  ]

[ INFO  ] [Cluster Details]

[ INFO  ] No cluster name configured

[ INFO  ] Setup Type: Spectrum Scale

[ INFO  ]

[ INFO  ] [Extended Features]

[ INFO  ] File Audit logging     : Disabled

[ INFO  ] Watch folder           : Disabled

[ INFO  ] Management GUI         : Disabled

[ INFO  ] Performance Monitoring : Enabled

[ INFO  ] Callhome               : Enabled

[ INFO  ]

[ INFO  ] GPFS  Admin  Quorum  Manager   NSD   Protocol  Callhome   OS   Arch

[ INFO  ] Node   Node   Node     Node   Server   Node     Server

[ INFO  ] gw      X       X       X       X                       rhel7  ppc64le

[ INFO  ] tac1p           X                                       rhel7  ppc64le

[ INFO  ] tac2p           X                                       rhel7  ppc64le

[ INFO  ]

[ INFO  ] [Export IP address]

[ INFO  ] No export IP addresses configured



sdc와 sdd를 nsd로 등록합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale nsd add /dev/sdc -p 2.1.1.5 --name data_nsd -fs data


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale nsd add /dev/sdd -p 2.1.1.5 --name backup_nsd -fs backup


nsd를 확인합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale nsd list

[ INFO  ] Name       FS     Size(GB) Usage   FG Pool    Device   Servers

[ INFO  ] data_nsd   data   400      Default 1  Default /dev/sdc [gwp]

[ INFO  ] backup_nsd backup 400      Default 1  Default /dev/sdd [gwp]


filesystem을 확인합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale filesystem list

[ INFO  ] Name   BlockSize   Mountpoint   NSDs Assigned  Default Data Replicas     Max Data Replicas     Default Metadata Replicas     Max Metadata Replicas

[ INFO  ] data   Default (4M)/ibm/data    1              1                         2                     1                             2

[ INFO  ] backup Default (4M)/ibm/backup  1              1                         2                     1                             2

[ INFO  ]



GPFS cluster를 정의합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale config gpfs -c tac_gpfs

[ INFO  ] Setting GPFS cluster name to tac_gpfs


다른 node들에게의 통신은 ssh와 scp를 이용하는 것으로 지정합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale config gpfs -r /usr/bin/ssh

[ INFO  ] Setting Remote shell command to /usr/bin/ssh


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale config gpfs -rc /usr/bin/scp

[ INFO  ] Setting Remote file copy command to /usr/bin/scp


확인합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale config gpfs --list

[ INFO  ] Current settings are as follows:

[ INFO  ] GPFS cluster name is tac_gpfs.

[ INFO  ] GPFS profile is default.

[ INFO  ] Remote shell command is /usr/bin/ssh.

[ INFO  ] Remote file copy command is /usr/bin/scp.

[ WARN  ] No value for GPFS Daemon communication port range in clusterdefinition file.



기본으로 GPFS 서버는 장애 발생시 IBM으로 연락하는 callhome 기능이 있습니다.  Internet에 연결된 노드가 아니므로 disable합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale callhome disable

[ INFO  ] Disabling the callhome.

[ INFO  ] Configuration updated.


이제 install 준비가 되었습니다.  Install 하기 전에 precheck을 수행합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale install -pr

[ INFO  ] Logging to file: /usr/lpp/mmfs/5.0.4.0/installer/logs/INSTALL-PRECHECK-23-10-2020_21:13:23.log

[ INFO  ] Validating configuration

...

[ INFO  ] The install toolkit will not configure call home as it is disabled. To enable call home, use the following CLI command: ./spectrumscale callhome enable

[ INFO  ] Pre-check successful for install.

[ INFO  ] Tip : ./spectrumscale install


이상 없으면 install을 수행합니다.  이때 gw 뿐만 아니라 tac1과 tac2에도 GPFS가 설치됩니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale install

...

[ INFO  ] GPFS active on all nodes

[ INFO  ] GPFS ACTIVE

[ INFO  ] Checking state of NSDs

[ INFO  ] NSDs ACTIVE

[ INFO  ] Checking state of Performance Monitoring

[ INFO  ] Running Performance Monitoring post-install checks

[ INFO  ] pmcollector running on all nodes

[ INFO  ] pmsensors running on all nodes

[ INFO  ] Performance Monitoring ACTIVE

[ INFO  ] SUCCESS

[ INFO  ] All services running

[ INFO  ] StanzaFile and NodeDesc file for NSD, filesystem, and cluster setup have been saved to /usr/lpp/mmfs folder on node: gwp

[ INFO  ] Installation successful. 3 GPFS nodes active in cluster tac_gpfs.tac1p. Completed in 2 minutes 52 seconds.

[ INFO  ] Tip :If all node designations and any required protocol configurations are complete, proceed to check the deploy configuration:./spectrumscale deploy --precheck



참고로 여기서 아래와 같은 error가 나는 경우는 전에 이미 GPFS NSD로 사용된 disk이기 때문입니다.  


[ FATAL ] gwp failure whilst: Creating NSDs  (SS16)

[ WARN  ] SUGGESTED ACTION(S):

[ WARN  ] Review your NSD device configuration in configuration/clusterdefinition.txt

[ WARN  ] Ensure all disks are not damaged and can be written to.

[ FATAL ] FAILURE REASON(s) for gwp:

[ FATAL ] gwp ---- Begin output of /usr/lpp/mmfs/bin/mmcrnsd -F /usr/lpp/mmfs/StanzaFile  ----

[ FATAL ] gwp STDOUT: mmcrnsd: Processing disk sdc

[ FATAL ] gwp mmcrnsd: Processing disk sdd

[ FATAL ] gwp STDERR: mmcrnsd: Disk device sdc refers to an existing NSD

[ FATAL ] gwp mmcrnsd: Disk device sdd refers to an existing NSD

[ FATAL ] gwp mmcrnsd: Command failed. Examine previous error messages to determine cause.

[ FATAL ] gwp ---- End output of /usr/lpp/mmfs/bin/mmcrnsd -F /usr/lpp/mmfs/StanzaFile  ----

[ INFO  ] Detailed error log: /usr/lpp/mmfs/5.0.4.0/installer/logs/INSTALL-23-10-2020_21:20:05.log

[ FATAL ] Installation failed on one or more nodes. Check the log for more details.


이건 다음과 같이 disk 앞부분 약간을 덮어쓰면 됩니다.


[root@gw SW]# dd if=/dev/zero of=/dev/sdc bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.0736579 s, 1.4 GB/s


[root@gw SW]# dd if=/dev/zero of=/dev/sdd bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.0737598 s, 1.4 GB/s



이제 각 node 상태를 check 합니다.  


[root@gw SW]# mmgetstate -a


 Node number  Node name        GPFS state

-------------------------------------------

       1      tac1p            active

       2      tac2p            active

       3      gwp              active


nsd 상태를 check 합니다.  그런데 GPFS filesystem 정의가 (free disk)로 빠져 있는 것을 보실 수 있습니다.


[root@gw SW]# mmlsnsd


 File system   Disk name    NSD servers

---------------------------------------------------------------------------

 (free disk)   backup_nsd   gwp

 (free disk)   data_nsd     gwp


spectrumscale filesystem list 명령으로 다시 GPFS filesystem 상태를 보면 거기엔 정보가 들어가 있습니다.  다만 mount point가 /ibm/data 이런 식으로 잘못 되어 있네요.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale filesystem list

[ INFO  ] Name   BlockSize   Mountpoint   NSDs Assigned  Default Data Replicas     Max Data Replicas     Default Metadata Replicas     Max Metadata Replicas

[ INFO  ] data   Default (4M)/ibm/data    1              1                         2                     1                             2

[ INFO  ] backup Default (4M)/ibm/backup  1              1                         2                     1                             2

[ INFO  ]


잘못된 mount point들을 제대로 수정합니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale filesystem modify data -m /data

[ INFO  ] The data filesystem will be mounted at /data on all nodes.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale filesystem modify backup -m /backup

[ INFO  ] The backup filesystem will be mounted at /backup on all nodes.


확인합니다.  그러나 여전히 mount는 되지 않습니다.


[root@gw SW]# /usr/lpp/mmfs/5.0.4.0/installer/spectrumscale filesystem list

[ INFO  ] Name   BlockSize   Mountpoint   NSDs Assigned  Default Data Replicas     Max Data Replicas     Default Metadata Replicas     Max Metadata Replicas

[ INFO  ] data   Default (4M)/data        1              1                         2                     1                             2

[ INFO  ] backup Default (4M)/backup      1              1                         2                     1                             2

[ INFO  ]


이를 수정하기 위해 GPFS fileystem 설정은 예전 방식, 즉 mmcrnsd와 mmcrfs 명령을 쓰겠습니다.  먼저 disk description 파일을 아래와 같이 만듭니다.


[root@gw ~]# vi /home/SW/gpfs/disk.desc1

/dev/sdc:gwp::dataAndMetadata:1:nsd_data


[root@gw ~]# vi /home/SW/gpfs/disk.desc2

/dev/sdd:gwp::dataAndMetadata:1:nsd_backup


그리고 예전의 NSD 포맷을 지우기 위해 sdc와 sdd에 아래와 같이 dd로 overwrite를 합니다.


[root@gw ~]# dd if=/dev/zero of=/dev/sdc bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.0130229 s, 8.1 GB/s


[root@gw ~]# dd if=/dev/zero of=/dev/sdd bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.0128207 s, 8.2 GB/s


mmcrnsd 명령과 mmcrfs 명령을 수행하여 NSD와 GPFS filesystem을 만듭니다.


[root@gw ~]# mmcrnsd -F /home/SW/gpfs/disk.desc1


[root@gw ~]# mmcrnsd -F /home/SW/gpfs/disk.desc2


[root@gw ~]# mmcrfs /data /dev/nsd_data -F /home/SW/gpfs/disk.desc1


The following disks of nsd_data will be formatted on node gw:

    nsd_data: size 409600 MB

Formatting file system ...

Disks up to size 3.18 TB can be added to storage 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/nsd_data.

mmcrfs: Propagating the cluster configuration data to all

  affected nodes.  This is an asynchronous process.



[root@gw ~]# mmcrfs /backup /dev/nsd_backup -F /home/SW/gpfs/disk.desc2


The following disks of nsd_backup will be formatted on node gw:

    nsd_backup: size 409600 MB

Formatting file system ...

Disks up to size 3.18 TB can be added to storage 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/nsd_backup.

mmcrfs: Propagating the cluster configuration data to all

  affected nodes.  This is an asynchronous process.


이제 모든 node에서 mount 해봅니다.


[root@gw ~]# mmmount all -a

Sat Oct 24 09:45:43 KST 2020: mmmount: Mounting file systems ...


[root@gw ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

devtmpfs        1.7G     0  1.7G   0% /dev

tmpfs           1.8G   18M  1.8G   1% /dev/shm

tmpfs           1.8G   96M  1.7G   6% /run

tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup

/dev/sda5        50G  5.4G   45G  11% /

/dev/sda6       345G  8.6G  337G   3% /home

/dev/sda2      1014M  178M  837M  18% /boot

tmpfs           355M     0  355M   0% /run/user/0

/dev/sr0        3.4G  3.4G     0 100% /home/cdrom

nsd_backup      400G  2.8G  398G   1% /backup

nsd_data        400G  2.8G  398G   1% /data


테스트를 위해 /data 밑에 /etc/hosts 파일을 copy해 둡니다.


[root@gw ~]# cp /etc/hosts /data


[root@gw ~]# ls -l /data

total 1

-rw-r--r--. 1 root root 298 Oct 24 09:49 hosts



Client node들에서도 잘 mount 되었는지 확인합니다.  그리고 아까 copy해둔 hosts 파일이 있는 확인합니다.


[root@gw ~]# ssh tac1

Last login: Sat Oct 24 09:33:46 2020 from gwp


[root@tac1 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

devtmpfs         28G     0   28G   0% /dev

tmpfs            28G     0   28G   0% /dev/shm

tmpfs            28G   15M   28G   1% /run

tmpfs            28G     0   28G   0% /sys/fs/cgroup

/dev/sda5        50G  3.3G   47G   7% /

/dev/sda6       321G  2.8G  319G   1% /home

/dev/sda2      1014M  178M  837M  18% /boot

tmpfs           5.5G     0  5.5G   0% /run/user/0

nsd_data        400G  2.8G  398G   1% /data

nsd_backup      400G  2.8G  398G   1% /backup


[root@tac1 ~]# ls -l /data

total 1

-rw-r--r--. 1 root root 298 Oct 24 09:49 hosts




[root@gw ~]# ssh tac2

Last login: Sat Oct 24 09:33:46 2020 from gwp


[root@tac2 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

devtmpfs         28G     0   28G   0% /dev

tmpfs            28G     0   28G   0% /dev/shm

tmpfs            28G   15M   28G   1% /run

tmpfs            28G     0   28G   0% /sys/fs/cgroup

/dev/sda5        50G  3.2G   47G   7% /

/dev/sda6       321G  3.3G  318G   2% /home

/dev/sda2      1014M  178M  837M  18% /boot

tmpfs           5.5G     0  5.5G   0% /run/user/0

nsd_backup      400G  2.8G  398G   1% /backup

nsd_data        400G  2.8G  398G   1% /data



[root@tac2 ~]# ls -l /data

total 1

-rw-r--r--. 1 root root 298 Oct 24 09:49 hosts





참고로 어떤 disk가 GPFS nsd인지는 fdisk 명령으로 아래와 같이 확인하실 수 있습니다.  fdisk -l 로 볼 때, 아래와 같이 IBM General Par GPFS라고 나오는 것이 GPFS nsd 입니다.



[root@tac1 ~]# fdisk -l | grep sd

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sda: 429.5 GB, 429496729600 bytes, 838860800 sectors

/dev/sda1   *        2048       10239        4096   41  PPC PReP Boot

/dev/sda2           10240     2107391     1048576   83  Linux

/dev/sda3         2107392    60829695    29361152   82  Linux swap / Solaris

/dev/sda4        60829696   838860799   389015552    5  Extended

/dev/sda5        60831744   165689343    52428800   83  Linux

/dev/sda6       165691392   838860799   336584704   83  Linux

Disk /dev/sdb: 429.5 GB, 429496729600 bytes, 838860800 sectors

Disk /dev/sdc: 429.5 GB, 429496729600 bytes, 838860800 sectors

Disk /dev/sdd: 429.5 GB, 429496729600 bytes, 838860800 sectors

Disk /dev/sde: 429.5 GB, 429496729600 bytes, 838860800 sectors

Disk /dev/sdf: 429.5 GB, 429496729600 bytes, 838860800 sectors

Disk /dev/sdg: 429.5 GB, 429496729600 bytes, 838860800 sectors



[root@tac1 ~]# fdisk -l /dev/sdb

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.


Disk /dev/sdb: 429.5 GB, 429496729600 bytes, 838860800 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: gpt

Disk identifier: 236CE033-C570-41CC-8D2E-E20E6F494C38



#         Start          End    Size  Type            Name

 1           48    838860751    400G  IBM General Par GPFS:



[root@tac1 ~]# fdisk -l /dev/sdc

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.


Disk /dev/sdc: 429.5 GB, 429496729600 bytes, 838860800 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: gpt

Disk identifier: 507A299C-8E96-49E2-8C25-9D051BC9B935



#         Start          End    Size  Type            Name

 1           48    838860751    400G  IBM General Par GPFS:



일반 disk는 아래와 같이 평범하게 나옵니다.


[root@tac1 ~]# fdisk -l /dev/sdd


Disk /dev/sdd: 429.5 GB, 429496729600 bytes, 838860800 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes



2019년 1월 11일 금요일

GPFS Cluster에 새로 GPFS client node를 추가하는 절차

설치 시작하기 전에, GPFS 서버와 GPFS client 간에는 root user에서 passwd를 묻지 않고 ssh가 되도록 설정이 되어 있어야 합니다.  서로의 hostname을 인식하도록 양쪽의 /etc/hosts도 업데이트가 되어 있어야 하고요.


1) GPFS Client에서 작업할 내용

필요한 Spectrum Scale (GPFS) fileset들이 다 있는지 확인하십시요.

gpfs.base-4.2.*.deb
gpfs.gpl-4.2.*all.deb
gpfs.msg.en_US-4.2.*all.deb
gpfs.gskit-8.0.50.*.deb
gpfs.ext-4.2.*.deb (IBM Spectrum Scale Standard Edition and IBM Spectrum Scale Advanced Edition only)

이 파일셋들을 아래와 같은 명령으로 설치하십시요.

# dpkg -i gpfs.base*deb gpfs.gpl*deb gpfs.gskit*deb gpfs.msg*deb gpfs.ext*deb

작업상의 편의를 위해 PATH를 아래와 같이 설정하십시요.

# export PATH=/usr/lpp/mmfs/bin:$PATH

GPFS portability layer의 build를 위해 다음 명령을 수행하십시요.   (이건 shell script이므로 필요시 약간 수정해도 됩니다만, 아마 수정하실 필요는 없을 것입니다.)

# mmbuildgpl

(이 mmbuildgpl 명령에 대해서 혹시 더 자세한 설명이나 절차가 필요하시면 이 URL 을 참조하세요.)


2) GPFS Server에서 작업할 내용

작업상의 편의를 위해 PATH를 아래와 같이 설정하십시요.

# export PATH=/usr/lpp/mmfs/bin:$PATH

GPFS client의 이름을 아래와 같이 넣어주십시요.   GPFS client의 이름은 아마 infiniband의 interface로 되어 있을 것이고, 이미 /etc/hosts에 등록이 되어 있어야 합니다.  혹시 잘 모르실 때는 "mmlsnodeclass --all" 명령으로 기존의 다른 node name들을 보고 참조하시기 바랍니다.

# mmaddnode -N 'gpfs_client_nodename'   (예: # mmaddnode -N COMPUTE-D02 )



3) GPFS Client에서 작업할 내용


그 다음에 추가된 node에서 GPFS의 SW license를 accept해야 합니다.  다음 명령을 수행하십시요.

# mmchlicense client --accept -N 'gpfs_client_nodename'   (예: # mmaddnode -N COMPUTE-D02 )

(여기서는 GPFS Server의 전체 GPFS daemon은 이미 구동된 상태라고 가정합니다.)
이제 GPFS daemon을 구동합니다.

# mmstartup

아마도 기존 GPFS client에 mount되어야 할 GPFS filesystem은 automount=Yes로 되어 있었을 것이니, 별도의 조치 없이도 해당 GPFS filesystem은 mount될 것입니다.   약 10초 지난 뒤에 다음 명령으로 mount 되었는지 확인하십시요.

# df

기존의 GPFS client node에 대해 뭔가 config를 바꾼 것이 있을 수 있습니다.   기존의 client node (여기서는 기존 COMPUTE들 중 하나)의 구성과 비교하여, 혹시 새로 추가된 node의 attribute가 다른 점이 있다면 변경해주십시요.

먼저, 다음 명령으로 기존 속성을 확인하십시요.  (이제 이 client node도 cluster에 join 했으므로 GPFS server에 가서 하지 않고 GPFS client node에서 하셔도 됩니다.)

# mmlsconfig 

이떄 나오는 속성들 중에서, 대부분은 전체 cluster node들에게 동일하게 적용된 것들에는 아무 표시가 없지만, 일부 속성들 중에는 특정 node에만 적용되는 속성들이 몇 개 있을 수 있습니다.   그런 것들에는 대괄호 [ ] 가 옆에 붙으면서 대괄호 속에 그 해당 node name이 표시될 것입니다.  그것들을 찾으시면 됩니다.

가령 아래에서, maxblocksize는 전체 node가 다 동일한l 속성이지만, pagepool은 전체적으로는 1G로, COMPUTE-D01에 대해서만 512M 로 설정되어 있는 것입니다.

maxblocksize 1M
[common]
pagepool 1G
[COMPUTE-D01]
pagepool 512M

COMPUTE-D01에만 적용된 속성들을 위와 같이 찾아서, mmchconfig 명령으로 수정하십시요.  가령 pagepool을 COMPUTE-D02에 대해 512M으로 수정하는 명령은 아래와 같습니다.

# mmchconfig pagepool=512M -i  -N COMPUTE-D02 

위에서, -i 옵션은 그 수정 효과가 당장, 그리고 rebooting 후에도 유지되도록 표시하는 것입니다.  일부 속성 중에는 -i 옵션이 안 먹는 것도 있으니 그럴 경우는 -i를 빼고 적용하시면 됩니다.

속성 수정이 다 끝나면, GPFS client node에서, 아래 명령으로 GPFS daemon을 한번 내렸다가 다시 올려주시면 됩니다.

# mmshutdown

# mmstartup

마지막으로 다 제대로 mount 되었는지 다시 df 명령으로 확인하시면 됩니다.


혹시 위에 설명되지 않은 command 옵션 등에 대한 정보가 필요하시면 아래 link를 참조하시기 바랍니다.

https://www.ibm.com/support/knowledgecenter/en/STXKQY_4.2.3/com.ibm.spectrum.scale.v4r23.doc/bl1adm_command.htm



2017년 6월 14일 수요일

Linux kernel update 이후 SpectrumScale mount가 안되는 문제의 해결 - mmbuildgpl


보안 패치 등의 적용 등으로 인해 원했든 원하지 않았든 linux kernel이 update되는 수가 있습니다.  그 뒤에 SpectrumScale (GPFS)가 mount가 되지 않는 경우가 있습니다.  좀더 정확하게 말하자면 GPFS daemon이 살아나지 못하는 경우지요.

결론부터 이야기하면 다음과 같이 해당 서버에서 root 권한으로 1줄의 명령을 수행하고 GPFS daemon을 restart 하면 해결됩니다.

# /usr/lpp/mmfs/bin/mmbuildgpl

설명은 이렇습니다.

- GPFS는 여러 node에 걸쳐 동시에 mount되고 read/write할 수 있는 병렬파일시스템이기 때문에, 일반 파일시스템과는 달리 linux kernel에 밀접히 연관되어 있습니다.
- UNIX OS인 IBM AIX에서는 위와 같은 절차가 필요없으나, Linux OS에서는 open source로 되어 있는 linux kernel이 바뀔 때마다 그와 연동하기 위해 GPFS의 일부 module(portability layer)도 새로 compile되어야 합니다.
- 원래 이 작업은 몇가지 과정을 거치는 좀더 복잡한 작업이었으나, IBM에서 위와 같이 mmbuildgpl 명령 하나만으로 그 과정들이 모두 수행되도록 shell script를 작성한 것입니다.
- 위 작업을 수행하신 뒤, 해당 node에서 mmshutdown 이후 mmstartup으로 GPFS daemon만 restart 해주시면 GPFS가 다시 잘 mount 됩니다.

이 상황의 재현 및 해결의 test를 위해 먼저, 1대의 POWER8 Ubuntu 서버(sys-87549)를 GPFS server로 삼고, 나머지 1대(sys-87576)를 network을 통해 그 GPFS를 mount하는 GPFS client로 삼겠습니다.

먼저, SpectrumScale (GPFS)을 설치합니다.  tgz 파일을 풀면 다음과 같이 self-extracting 파일이 나옵니다.

root@sys-87549:/home/u0017496# tar -zxvf SpectrumScaleStd421Pwr8le.tgz
Spectrum_Scale_Standard-4.2.1.0-ppc64LE-Linux-install
README

이걸 수행해주면 Redhat용 rpm과 Ubuntu용 deb 파일들이 /usr/lpp/mmfs/4.2.1.0에 복사됩니다.

root@sys-87549:/home/u0017496# ./Spectrum_Scale_Standard-4.2.1.0-ppc64LE-Linux-install

Extracting License Acceptance Process Tool to /usr/lpp/mmfs/4.2.1.0 ...
tail -n +563 ./Spectrum_Scale_Standard-4.2.1.0-ppc64LE-Linux-install | tar -C /usr/lpp/mmfs/4.2.1.0 -xvz --exclude=installer --exclude=*_rpms --exclude=*rpm  --exclude=*tgz --exclude=*deb 1> /dev/null

Installing JRE ...
tail -n +563 ./Spectrum_Scale_Standard-4.2.1.0-ppc64LE-Linux-install | tar -C /usr/lpp/mmfs/4.2.1.0 --wildcards -xvz  ibm-java*tgz 1> /dev/null
tar -C /usr/lpp/mmfs/4.2.1.0/ -xzf /usr/lpp/mmfs/4.2.1.0/ibm-java*tgz
Defaulting to --text-only mode.
...
Product rpms successfully extracted to /usr/lpp/mmfs/4.2.1.0

root@sys-87549:/home/u0017496# cd /usr/lpp/mmfs/4.2.1.0/
root@sys-87549:/usr/lpp/mmfs/4.2.1.0# ls
gpfs.base_4.2.1-0_ppc64el.deb     gpfs.gss.pmcollector-4.2.1-0.el7.ppc64le.rpm
gpfs.base-4.2.1-0.ppc64le.rpm     gpfs.gss.pmcollector-4.2.1-0.sles12.ppc64le.rpm
gpfs.docs_4.2.1-0_all.deb         gpfs.gss.pmsensors-4.2.1-0.el7.ppc64le.rpm
gpfs.docs-4.2.1-0.noarch.rpm      gpfs.gss.pmsensors-4.2.1-0.sles12.ppc64le.rpm
gpfs.ext_4.2.1-0_ppc64el.deb      gpfs.gui-4.2.1-0.noarch.rpm
gpfs.ext-4.2.1-0.ppc64le.rpm      gpfs.java-4.2.1-0.ppc64le.rpm
gpfs.gpl_4.2.1-0_all.deb          gpfs.msg.en-us_4.2.1-0_all.deb
gpfs.gpl-4.2.1-0.noarch.rpm       gpfs.msg.en_US-4.2.1-0.noarch.rpm
gpfs.gskit_8.0.50-57_ppc64el.deb  license
gpfs.gskit-8.0.50-57.ppc64le.rpm  manifest

먼저, GPFS 구성에는 아래 OS package들이 필요하므로 apt-get으로 설치합니다.

root@sys-87549:/usr/lpp/mmfs/4.2.1.0# apt-get install ksh gawk libaio1

그리고나서 아래 명령으로 deb 파일들을 설치합니다.

root@sys-87549:/usr/lpp/mmfs/4.2.1.0# dpkg -i gpfs.base*deb gpfs.gpl*deb gpfs.gskit*deb gpfs.msg*deb gpfs.ext*deb

위 작업을 sys-87576에서 반복합니다.

이제 GPFS cluster를 만듭니다.  Primary server node는 여기서는 sys-87549 1대 뿐이고, client도 sys-87576 1대 뿐입니다.

root@sys-87549:/usr/lpp/mmfs/bin# ./mmcrcluster -N sys-87549:manager-quorum,sys-87576:client -p sys-87549 -r /usr/bin/ssh -R /usr/bin/scp -C test1
mmcrcluster: Performing preliminary node verification ...
mmcrcluster: Processing quorum and other critical nodes ...
...
mmcrcluster: Command successfully completed
mmcrcluster: Warning: Not all nodes have proper GPFS license designations.
    Use the mmchlicense command to designate licenses as needed.
mmcrcluster: Propagating the cluster configuration data to all
  affected nodes.  This is an asynchronous process.


이제 아래와 같이 mmchlicense 명령으로 license accept를 합니다.

root@sys-87549:/usr/lpp/mmfs/bin# mmchlicense server --accept -N sys-87549

root@sys-87576:/usr/lpp/mmfs/bin# mmchlicense client --accept -N sys-87576


이제 다른 쪽 노드에서 mmlscluster를 수행해보면 이미 cluster로 구성된 것이 보입니다.

root@sys-87576:/usr/lpp/mmfs/bin# mmlscluster

GPFS cluster information
========================
  GPFS cluster name:         test1.dal-ebis.ihost.com
  GPFS cluster id:           6484364745360086160
  GPFS UID domain:           test1.dal-ebis.ihost.com
  Remote shell command:      /usr/bin/ssh
  Remote file copy command:  /usr/bin/scp
  Repository type:           CCR

 Node  Daemon node name              IP address      Admin node name               Designation
-----------------------------------------------------------------------------------------------
   1   sys-87549.dal-ebis.ihost.com  172.29.160.222  sys-87549.dal-ebis.ihost.com  quorum-manager
   2   sys-87576.dal-ebis.ihost.com  172.29.160.12   sys-87576.dal-ebis.ihost.com


이제 서버에서 GPFS daemon을 start 합니다.

root@sys-87549:/usr/lpp/mmfs/bin# mmstartup -a
Wed Jun 14 06:57:29 EDT 2017: mmstartup: Starting GPFS ...
sys-87576.dal-ebis.ihost.com:  /tmp/mmfs has been created successfully.

Daemon들이 제대로 올라왔는지 아래 명령으로 확인합니다.  보시다시피 down된 상태입니다.  즉, 뭔가 잘못된 것이지요.

root@sys-87549:/usr/lpp/mmfs/bin# mmgetstate -a

 Node number  Node name        GPFS state
------------------------------------------
       1      sys-87549        down
       2      sys-87576        down

이는 위에서 언급한 GPFS의 portability layer를 build 해주지 않았기 때문입니다.  설치 후, 그리고 향후에도 kernel update 등을 한 이후에는 꼭 아래 명령을 내려  GPFS의 portability layer를 새로 compile 해줘야 합니다.  아래 mmbuildgpl은 shell script로서, 여러 단계의 compile 과정을 자동으로 해줍니다.

root@sys-87549:~# /usr/lpp/mmfs/bin/mmbuildgpl
--------------------------------------------------------
mmbuildgpl: Building GPL module begins at Wed Jun 14 08:57:27 EDT 2017.
--------------------------------------------------------
Verifying Kernel Header...
  kernel version = 40400066 (4.4.0-66-generic, 4.4.0-66)
  module include dir = /lib/modules/4.4.0-66-generic/build/include
  module build dir   = /lib/modules/4.4.0-66-generic/build
  kernel source dir  = /usr/src/linux-4.4.0-66-generic/include
  Found valid kernel header file under /lib/modules/4.4.0-66-generic/build/include
Verifying Compiler...
  make is present at /usr/bin/make
  cpp is present at /usr/bin/cpp
  gcc is present at /usr/bin/gcc
  g++ is present at /usr/bin/g++
  ld is present at /usr/bin/ld
make World ...
make InstallImages ...
--------------------------------------------------------
mmbuildgpl: Building GPL module completed successfully at Wed Jun 14 08:58:12 EDT 2017.
--------------------------------------------------------

다시 GPFS daemon을 start 합니다.

root@sys-87549:/home/u0017496# mmstartup -a
Wed Jun 14 09:02:18 EDT 2017: mmstartup: Starting GPFS ...

잘 올라온 것을 확인할 수 있습니다.

root@sys-87549:~# mmgetstate -a

 Node number  Node name        GPFS state
------------------------------------------
       1      sys-87549        active
       2      sys-87576        active


이제 SpectrumScale server인 sys-87549의 내장 disk로 NSD를 만듭니다.  이 disk는 sys-87549에서만 access되는 내장 disk이지만, 일단 NSD로 만들어지면 네트워크를 통해 client node인 sys-87576에서도 access가 가능해집니다.

root@sys-87549:~# vi /tmp/diskdef.txt
%nsd:
device=/dev/sdb
servers=sys-87549
nsd=nsd1
usage=dataAndMetadata

root@sys-87549:~# mmcrnsd -F /tmp/diskdef.txt
mmcrnsd: Processing disk sdb
mmcrnsd: Propagating the cluster configuration data to all
  affected nodes.  This is an asynchronous process.

SpectrumScale client 노드인 sys-87576에서도 이것이 보이는지 확인합니다.

root@sys-87576:~# mmlsnsd

 File system   Disk name    NSD servers
---------------------------------------------------------------------------
 (free disk)   nsd1         sys-87549.dal-ebis.ihost.com


이제 GPFS filesystem을 만듭니다.

root@sys-87549:~# mmcrfs GPFS1 -F /tmp/diskdef.txt -A yes -T /gpfs1 --version=4.2.1.0

The following disks of GPFS1 will be formatted on node sys-87549:
    nsd1: size 4096 MB
Formatting file system ...
Disks up to size 96 GB can be added to storage pool system.
Creating Inode File
  48 % complete on Wed Jun 14 09:09:18 2017
  97 % complete on Wed Jun 14 09:09:23 2017
 100 % complete on Wed Jun 14 09:09:23 2017
Creating Allocation Maps
Creating Log Files
  78 % complete on Wed Jun 14 09:09:29 2017
 100 % complete on Wed Jun 14 09:09:29 2017
Clearing Inode Allocation Map
Clearing Block Allocation Map
Formatting Allocation Map for storage pool system
Completed creation of file system /dev/GPFS1.
mmcrfs: Propagating the cluster configuration data to all
  affected nodes.  This is an asynchronous process.


root@sys-87549:~# mmlsfs all

File system attributes for /dev/GPFS1:
======================================
flag                value                    description
------------------- ------------------------ -----------------------------------
 -f                 8192                     Minimum fragment size in bytes
 -i                 4096                     Inode size in bytes
 -I                 32768                    Indirect block size in bytes
 -m                 1                        Default number of metadata replicas
 -M                 2                        Maximum number of metadata replicas
 -r                 1                        Default number of data replicas
 -R                 2                        Maximum number of data replicas
 -j                 cluster                  Block allocation type
 -D                 nfs4                     File locking semantics in effect
 -k                 all                      ACL semantics in effect
 -n                 32                       Estimated number of nodes that will mount file system
 -B                 262144                   Block size
 -Q                 none                     Quotas accounting enabled
                    none                     Quotas enforced
                    none                     Default quotas enabled
 --perfileset-quota No                       Per-fileset quota enforcement
 --filesetdf        No                       Fileset df enabled?
 -V                 15.01 (4.2.0.0)          File system version
 --create-time      Wed Jun 14 09:09:15 2017 File system creation time
 -z                 No                       Is DMAPI enabled?
 -L                 4194304                  Logfile size
 -E                 Yes                      Exact mtime mount option
 -S                 No                       Suppress atime mount option
 -K                 whenpossible             Strict replica allocation option
 --fastea           Yes                      Fast external attributes enabled?
 --encryption       No                       Encryption enabled?
 --inode-limit      65792                    Maximum number of inodes
 --log-replicas     0                        Number of log replicas
 --is4KAligned      Yes                      is4KAligned?
 --rapid-repair     Yes                      rapidRepair enabled?
 --write-cache-threshold 0                   HAWC Threshold (max 65536)
 --subblocks-per-full-block 32               Number of subblocks per full block
 -P                 system                   Disk storage pools in file system
 -d                 nsd1                     Disks in file system
 -A                 yes                      Automatic mount option
 -o                 none                     Additional mount options
 -T                 /gpfs1                   Default mount point
 --mount-priority   0                        Mount priority

이제 mount 합니다.  -a 옵션을 쓰면 클러스터 내 모든 노드에서 다 mount 됩니다.

root@sys-87549:~# mmmount all -a
Wed Jun 14 09:11:15 EDT 2017: mmmount: Mounting file systems ...

모든 노드에서 다 mount 되었는지 확인합니다.

root@sys-87549:~# mmlsmount all
File system GPFS1 is mounted on 2 nodes.

Client 노드에 들어가서 mount 되었는지 확인합니다.

root@sys-87576:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           408M   18M  390M   5% /run
/dev/sda2        35G   18G   16G  53% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
GPFS1           4.0G  3.9G  151M  97% /gpfs1

이제 비로소 kernel update 및 GPFS mount 테스트 준비가 끝났습니다.   이제 client인 sys-87576에서 kernel을 update 해보겠습니다.  먼저, 현재 kernel 버전을 확인합니다.

root@sys-87576:~# uname -r
4.4.0-66-generic

이제 kernel update를 합니다.

root@sys-87576:~# apt-get upgrade

완료되면 reboot 합니다.

root@sys-87576:~# shutdown -r now

Reboot 된 이후 kernel 버전 확인합니다.

root@sys-87576:/home/u0017496# uname -r
4.4.0-79-generic

이제 GPFS를 mount하기 위해 GPFS daemon을 살립니다.  (여기서는 client 노드에서만 살리면 되므로 -a 옵션은 빼고 수행합니다.)

root@sys-87576:/home/u0017496# mmstartup
Wed Jun 14 09:42:08 EDT 2017: mmstartup: Starting GPFS ...
mmremote: startSubsys: The /lib/modules/4.4.0-79-generic/extra/mmfslinux.ko kernel extension does not exist.  Use mmbuildgpl command to create the needed kernel extension for your kernel or copy the binaries from another node with the identical environment.
mmremote: startSubsys: Unable to verify kernel/module configuration.
mmstartup: Command failed. Examine previous error messages to determine cause.

보시다시피 error가 나고, 당연히 GPFS 파일시스템은 마운트 되지 못합니다.  이제 mmbuildgpl 명령으로 portability layer를 compile 해줍니다.

root@sys-87576:/home/u0017496# mmbuildgpl
--------------------------------------------------------
mmbuildgpl: Building GPL module begins at Wed Jun 14 09:42:21 EDT 2017.
--------------------------------------------------------
Verifying Kernel Header...
  kernel version = 40400079 (4.4.0-79-generic, 4.4.0-79)
  module include dir = /lib/modules/4.4.0-79-generic/build/include
  module build dir   = /lib/modules/4.4.0-79-generic/build
  kernel source dir  = /usr/src/linux-4.4.0-79-generic/include
  Found valid kernel header file under /lib/modules/4.4.0-79-generic/build/include
Verifying Compiler...
  make is present at /usr/bin/make
  cpp is present at /usr/bin/cpp
  gcc is present at /usr/bin/gcc
  g++ is present at /usr/bin/g++
  ld is present at /usr/bin/ld
make World ...
make InstallImages ...
--------------------------------------------------------
mmbuildgpl: Building GPL module completed successfully at Wed Jun 14 09:43:18 EDT 2017.
--------------------------------------------------------

성공적으로 끝났습니다.  이제 GPFS daemon을 살립니다.

root@sys-87576:/home/u0017496# mmstartup
Wed Jun 14 09:45:26 EDT 2017: mmstartup: Starting GPFS ...

잘 되었습니다.  이제 mount 합니다.

root@sys-87576:/home/u0017496# mmmount all
Wed Jun 14 09:45:37 EDT 2017: mmmount: Mounting file systems ...

잘 되었습니다.  이제 눈으로 mount 상태를 확인합니다.

root@sys-87576:/home/u0017496# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           408M   12M  396M   3% /run
/dev/sda2        35G   18G   16G  53% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
GPFS1           4.0G  456M  3.6G  12% /gpfs1


** 여기서는 SpectrumScale 4.2.1로 테스트한 것으로 되어 있습니다만, 제가 해보니 4.2.1에서는 mmbuildgpl에서 다음과 같은 error가 발생합니다.  

error "struct inode has no member named i_wb_list"

이는 4.2.1에서의 bug인 모양입니다.  다시 4.2.3으로 설치하고 해보니 아무 문제없이 잘 됩니다.