Install and configure GPFS 4.1 filesystem on Linux Centos 6.6
The General Parallel File System (GPFS) is a high-performance clustered file system developed by IBM. It can be deployed in shared-disk infrastructure or in shared-nothing architecture. It’s used by many large company and in serveral supercomputers on the Top 500 List.
GPFS allows to configure a high available filesystem allowing concurrent access from a cluster of nodes.
Cluster nodes can be server using AIX, Linux or Windows operatng system.
GPFS provides high performance allowing striping blocks of data over multiple disk reading and writing this blocks in parallel. It offers also block replication over different disks in order to guarantee the availability of the filesystem also during disk failures.
The following list contains some of the most interesting features of GPFS:
Provide a POSIX compliant interface
Allow filesystem mounting to client accessing data though LAN connection
Many filesystem maintenance tasks can be performed while the filesystem is mounted
Support quota
Distributes metadata over different disks
Have really high scalability limits
This post describes the step required to implement a basic configuration of GPFS filesystem on a cluster composed by two Centos 6.6 servers.
The server architectures showed in the images is composed by two server gpfs01 and gpfs02 sharing two disk device (sdb and sdc) each one of 10 GB size. Each server has an ethernet connection on subnet 172.17.0.0/16 allowing the communication between gpfs cluster nodes. The gpfs version used for installation is 4.1.0-5.
The following sequence of tasks show how install and configure GPFS on this couple of servers.
1. Install GPFS rpm
Install gpfs rpm on both nodes
2. Configure /etc/hosts
Configure hosts file on both nodes in order to allow name resolution.
3. Exchange root ssh key between nodes
GPFS requires that each gpfs cluster nodes can execute ssh commands on all other nodes using root user in order to allow remote administration of other nodes. In order to allow it you have to exchange ssh root keys between each cluster node.
4. Test ssh password-less connection
Verify the previous step executing a ssh connection between each couple of nodes.
5. Compile GPFS portability layer rpm
The GPFS portability layer is a loadable kernel module that allows the GPFS daemon to interact with the operating system.
IBM provides the source code of this module. It must be compiled for the kernel version used by your servers. This step can be executed on a single node then the rpm containing the kernel module can be distributed and installed over all the other gpfs nodes. In this example this module will be compiled on server gpfs01.
In order to avoid the error “Cannot determine the distribution type. /etc/redhat-release is present, but the release name is not recognized. Specify the distribution type explicitly.” during module compiling replace content of /etc/redhat-release with the string “Red Hat Enterprise Linux Server release 6.6 (Santiago)”.
In order to avoid the error “Cannot find a valid kernel include directory” during module compiling install the rpm required for compile module for your kernel version (kernel source, rpmbuild, …).
6. Install GPFS portability layer rpm
Distribute GPFS portability layer rpm on each node and install it.
7. Create GPFS cluster
In this step the cluster is created adding the node gpfs01 with the role of cluster manager and quorum manager. In the next steps the gpfs02 node will be added to the cluster.
You need to accept the GPFS server license for node gpfs01.
8. Start gpfs cluster on node gpfs01
Start gpfs cluster on node gpfs01
Verify the node status
9. Add the second node to GPFS
In this step the second server gpfs02 will be added to the gpfs cluster.
10. Start GPFS on gpfs02 node
11. Create NSD configuration
Now you have to create a file containing the configuration of the disk that will be used by gpfs. The disk used by GPFS are called Network Shared Disk (NSD) using GPFS terminology.
The file diskdef.txt showed below contain the NSD configuration used by GPFS.
Two NSD disk has been defined, their name are mynsd1 and mynsd2 and the device files of these disks are respectively /dev/sdb and /dev/sdc. Both disks will be used to store data and metadata.
Configure the NSD using this configuration file
Show the NSD configuration
13. Create GPFS filesystem
The following command create a gpfs filesystem called fs_gpfs01 using the NSD defined in diskdef.txt file that will be mounted on /fs_gpfs01 mount point
14. Mount/Unmount gpfs
This step shows some useful command to mount and unmount the gpfs filesystem
Mount on all nodes
Unmount on all nodes
Mount on local node
Unmount on local node
15. Verify mount gpfs filesystem
You can verify that gpfs filesystem is mounted using the command mmlsmount or using df
16. Log location
GPFS filesystem are located in the directory gpfs /var/adm/ras
GPFS records also system and disk failure using syslog, gpfs error log can be retrieved using the command:
17. Add /usr/lpp/mmfs/bin/ to PATH environment variable
In order to avoid to use the full path for gpfs command the directory /usr/lpp/mmfs/bin/ can be added to the environment PATH variable of root
Add the line “PATH=$PATH:/usr/lpp/mmfs/bin/” in /root/.bash_profile before the line “export PATH”
This post describe how generate the “System currency” report in Red Hat Satellite 6.
System currency report is a report existing in Satellite 5 but it isn’t ...
This post describe a GitHub Actions workflow that allow to create new post on a Jekyll web site contained in a GitHub repository using the issue editor of Gi...