IBM Storage Scale with TRIM-supporting NVMe SSDs

IBM Storage Scale provides features that address the performance issues of flash memory.

File systems that create and remove files and directories often reuse storage blocks by overwriting the same storage blocks with new data contents. However, an NVMe or a general solid-state drive (SSD) device cannot overwrite a page of flash storage without first erasing the entire block of storage in which the page is located. This behavior creates a performance issue for I/O writes to previously used blocks of data when compared with I/O writes to unused or erased blocks. Also, write amplification occurs when the drive must save a copy of existing pages that are unaffected by the I/O write operation, then erase the entire block, and then restore the unaffected pages to the block after the erase.

To improve performance, the file system can issue a TRIM operation to an NVMe SSD notifying it about which blocks of data are no longer in use and can therefore be erased. The NVMe SSD erases the unused blocks before the blocks are required for the next reuse, which improves the performance of future I/O writes to the device. The TRIM operation also reduces fragmentation, because unused blocks are erased.

For more information about write amplification, garbage collection, and performance issues, see the vendor specifications for the flash memory devices that you are using.

Deployment recommendation

In the IBM Storage Scale stanza file, specify the thinDiskType=nvme line in each nsd stanza that describes an NVMe device:
%nsd:
  nsd=gpfs1nsd
  usage=metadataOnly
  pool=system
  thinDiskType=nvme
This line indicates to IBM Storage Scale that the disk is trim-capable.

Enhancement in IBM Storage Scale

IBM Storage Scale provides the mmreclaimspace command, which calls the TRIM command to notify the specified SSD device as to which blocks are no longer in use and can be erased. For more information, see the topic mmreclaimspace command.
Note: Because the space-reclaiming operation consumes a great deal of CPU, memory, network, and I/O system resources, it is a good idea to run the mmreclaimspace command at a time when the system is not heavily loaded.

Support matrix

The following conditions must be met for thin provisioning support to be activated:
  • The file system must be upgraded to file system format version 5.0.4 or later.
  • The stanza file must include the following line to add thin disks or NVMe SSDs into the file system. See the example nsd stanza in the preceding subtopic, Deployment recommendation:
    thinDiskType={scsi | nvme}
  • Both thin provisioned disks and NVMe SSDs must be connected to nodes that are running the Linux® operating system.
Table 1. Supported operating systems and device connections
Operating system A node can act as an NSD server or as a node with a disk directly attached A node can act as a client
Linux (RHEL 7.3 and later SLES 11 and later, Ubuntu 16 and later) Yes Yes
Linux on Z No Yes
AIX® No Yes
Windows No Yes
Table 2. Supported devices
Supported devices
The following storage devices are supported:
  • IBM® A9000/R
  • IBM v7K
  • Intel NVMe SSDs
The following devices are believed to operate correctly with IBM Storage Scale but support has not been fully verified:
  • IBM FS9100
  • General SSDs