GPFS on AIX

Basics

Filesets

gpfs.base - GPFS File Manager

gpfs.msg.en_US - GPFS Server Messages - U.S. English

gpfs.docs.data - GPFS Server Manpages and Documentation

Path

GPFS commands are in a separate directory.

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

Daemons, status

# ps -ef | grep mmfs
# mmlscluster
# mmlsconfig

Network

Ports 22 (ssh) and 1191 (GPFS) must be open between cluster nodes. SSH can be configured instead of the default rsh via mmchcluster.

Log

# tail -f /var/adm/ras/mmfs.log.latest

PV migration

You can consider using the mmrpldisk command for replacing a LUN with another of identical size. See Replacing disks in a GPFS file system

Collect information

Dump/Save current configuration

# gpfs.snap

List active mounts

# mmlsmount all
File system foobar is mounted on 2 nodes.

List storage pools

# mmlsfs all -P
File system attributes for /dev/foobar:
=====================================
flag value            description
---- ---------------- -----------------------------------------------------
 -P  system           Disk storage pools in file system

List disks in each filesystem

# mmlsfs all -d
File system attributes for /dev/foobar:
=====================================
flag value            description
---- ---------------- -----------------------------------------------------
 -d  mycluster00nsd    Disks in file system

List current NSDs (network shared disks)

# mmlsnsd -M
 Disk name    NSD volume ID      Device         Node name                Remarks
---------------------------------------------------------------------------------------
 mycluster00nsd 0AEC13994BFCEEF7   /dev/hdisk7    host1.mydomain.com
 mycluster00nsd 0AEC13994BFCEEF7   /dev/hdisk7    host1.mydomain.com
 mycluster00nsd 0AEC13994BFCEEF7   -              host3.mydomain.com    (not found) directly attached
mmlsnsd: 6027-1370 The following nodes could not be reached:
host3.mydomain.com

List filesystem manager node(s)

# mmlsmgr
file system      manager node
---------------- ------------------
foobar             10.111.11.111 (host2)
Cluster manager node: 10.111.11.111 (host2)

Show the state of GPFS daemons

- on the local node:

# mmgetstate
 Node number  Node name        GPFS state
------------------------------------------
       2      myhost2          active

- on all cluster members:

# mmgetstate -a
 Node number  Node name        GPFS state
------------------------------------------
       1      myhost1          active
       2      myhost2          active
       3      somexx1          unknown

Add new disk(s)

Configure new device

# lspv
# cfgmgr

Verify new disk

# lspv
# lspath -l hdiskX
# errpt | head

Edit desc file

  • Disk name: hdiskX
  • Primary/Backup server: only for NFS
  • Disk usage: almost always 'dataAndMetadata'
  • Failure group: can be -1 when there are no other disks for failover, otherwise see 'mmdf $fs' -> failure group
  • Desired name: arbitrary; 'clusternameXXnsd' is suggested
  • Storage pool(s): see 'mmlsfs all -P'

The contents of the file is similar to this before GPFS v3.5:

#DiskName:PrimaryServer:BackupServer:DiskUsage:FailureGroup:DesiredName:StoragePool
hdisk7:::dataAndMetadata:-1:foobar00nsd:system

v3.5 utilities will accept the above format, but converting to the the new stanza format is highly recommended.

Configure new disk(s) as NSD

# mmcrnsd -F /path/to/hdisk7.desc

Check NSDs

# mmlsnsd; mmlsnsd -F

Add disk to FS using the transformed desc file (mmcrnsd comments out the previous line and inserts a new one)

# mmadddisk foobar -F hdisk7.desc

Think about mmrestripefs

Remove old disk(s)

Task: Migrate data by deleting disks from GPFS

Example: 4x 100GB DS8100 => 1x 400GB XIV, 2x 4Gb adapters, net 250GB data = 27 minutes on an idle system

WARNING: high I/O!

# mmdeldisk foobar "gpfsXnsd;gpfsYnsd..." -r

Reconfigure tiebreakers

WARNING: GPFS must be shut down on all nodes!

# mmshutdown -a
# mmchconfig tiebreakerDisks="foobar00nsd"
# mmstartup -a

Remove NSD and physical LUN

# mmdelnsd -p [NSD volume ID]

Record old LUNs for the storage administrator (should they be removed from the zoning)

# pcmpath query essmap ...

Delete AIX devices

# rmdev -dl hdiskX

Delete GPFS filesystem

Where fs is the GPFS filesystem device, as seen in mmlsfs, for example, fs0:

Check for processes using the filesystem

# fuser -cux /mount/point

Umount filesystem on all cluster nodes

# mmumount fs0 -a

Delete filesystem

WARNING: Data is destroyed permanently!

# mmdelfs fs0

(Optional) Remove NSD and disk device - see above