Hammerspace Performance Lab
Hammerspace · Hammerspace Performance Storage · Fully Reproducible
System Purpose
Question asked
Please describe the purpose and general usage of the submitted system. This would include the types of typical applications it supports (e.g., defense applications, molecular dynamics, benchmarking, system test, systems research), and the general use and purpose of the data generated by the applications running on it.
The system used for this benchmark is our HPC/AI Performance testbed. We run many different workloads and benchmarks and optimize and tune for best pNFS performance.
Availability
Question asked
Please provide the deployment timeframe of the submitted system, or for on-demand cloud systems, the general period over which it is deployed and destroyed.
Please describe the availability of the system to users and who are its set of most regular users.
This system is use for weeks to months at a time to meet project demands like the io500. Most users of this system work at Hammerspace.
Storage System Software
Question asked
How is this storage software available? (e.g., commercially, open-source, not publicly available) Note that if the storage software is not open-source or commercially available, then a general description would be requested, but this would limit the submission’s reproducibility score.
Can anyone download/purchase this software?
List either product webpage or open-source repo of the exact software used in IO500.
Give any and all additional details of this specific storage deployment: (e.g., type of storage server product such IBM ESS or DDN SFA400X2, use of Ext4 or some other file system on each storage node, dual connected storage media to storage servers).
The Hyperscale NAS parallel filesystem is the fundamental technology behind the Hammerspace global filesystem and data orchestration layer. It is a general-purpose high-performance enterprise NAS filesystem suitable for HPC, A.I. Training and Enterprise applications.
This software defined storage solution is commercially available from Hammerspace. The software stack it relies heavily on the open standard of NFS and Hammerspace is a leading contributor in upstream NFS improvements.
This software can be purchased for use on prem or in the cloud from Hammerspace. https://hammerspace.com/hyperscale-nas/ has more information about our products.
This benchmark configuration used 1x Anvil Metadata Servers, 8x Linux Storage Servers (Rocky 9.5 with Upstream Kernel) and 10 Clients (Rocky 9.5 stock without any custom client) , Usable capacity reported by Linux is 444TB. All configured servers are configured with 2x400GbE RoCE fabric and optimized for optimal pNFS performance. Please review our system configuration for more details about the hardware.
Runtime Environment
Question asked
State here that you provided all scripts/documentation that would allow someone else to reproduce your environment and attempt to achieve a similar IO500 score as the submitted system.
NOTE: provide all files/documentation/scripts that would enable a user to build your environment and deploy the custom scripts, software, or config files once they have obtained the appropriate storage system hardware and software. These may be included into the io500.tgz or into the extraCodes upload on the submission form.
Several examples include:
- Commands used to set striping information (either for the entire system or for particular directories)
- File system config and tuning information (or a reason why this is not available due to lack of root access, etc) on each node type (e.g., non-default config parameters on all three types of Lustre nodes: MDS, OSS, and client)
- Any additional scripts utilized that impact IO500 execution beyond the io500 config file. For example, with IBM Spectrum Scale, the output of mmlsconfig, mmlscluster, mmlsfs, and mmlsfileset commands (and possibly even a dump of the configuration if possible). Each file system probably has similar type of config/tuning information that would need to be shared for a user to fully reproduce the environment.
On our Linux Storage Servers running NFS we apply a few straightforward optimizations.
- In the SunRPC layer we use the "pernode" pool configuration as the base of NUMA alignment. We then use a basic script further pin nfds threads on a 2 socket NUMA alignment.
- We set the block device readahead to 1M to match the NFS native transport size.
- Upstream kernels give advantage around Memory Management with XFS and the Page cache. Folio Memory in Linux 6.x is real boost for XFS and NFS.
On the Clients our only optimization is to use the “nconnect=16” mount for increased parallelization for improved performance.
Metadata and data orchestration including automated tiering from online to nearline to archive as well as multi-site global filesystem is provided by the Hammerspace Anvil server.
Fault Tolerance Mechanisms
Question asked
Does your system have a single point of failure as defined by “Definition 7” of a Production System? Please describe all mechanisms that provide fault tolerance for the submitted storage system. Be specific to your submission, not general storage system capabilities.
- Power (For example, can power failure of a node or rack bring down the storage system?)
- Networking (For example, can failure of a single NIC bring down the storage system? Remember that any networking failure that brings down multiple nodes is acceptable)
- Inter storage data and metadata server (For example, what type of data protection mechanism does the storage system use to keep operating during node failures, e.g., active-active servers, client-directed RAID, declustered RAID, erasure-coding, 3-way replication)
- Intra storage data and metadata server storage media (For example, how does the storage eysstem protect against fiailure of a single storage device within a node, e.g., raid5)
Please list any additional information needed to determine whether this system has a single point of failure.
As this system is configured for as a highly dynamic performance lab is it not configured for full HA. The Hammerspace solution provides both N-Copy replication and multi-server erasure encoding for data durability and availability but this io500 run was configured as HPC scratch space for checkpoints with no data protection requirements.
Our Anvil Metadata server is configured with raid10 for all metadata storage and can handle at least a single drive failure without any data loss.
Each, server and client has 2x network adapters that are used in a multi-rail configuration for both performance and high viability. The system can continue to operate if one of the networks fails for any reason.
Each Server can connect to 2 different power rails as needed.
Execution
Question asked
Please provide a description of how the IO500 benchmark was executed, e.g., via system scheduler (e.g., SLURM) to run a job on the compute cluster, which initially ran a setup process to configure the client and file system, and then started the full benchmark.
During the IO500 benchmark execution was the system entirely dedicated to running the benchmark or were there other jobs running in the same cluster and storage system?
We ran the io500 on a dedicated system that we lauched via a basic bash script using NVIDA HPC-X openmpi with DOCA ucx. During the io500 run not other jobs were running on the system.
Caching
Question asked
Please describe all caching mechanisms in client/server that were utilized during the IO500 run. This could include caching in any storage medium (e.g., SSD, RAM).
A few examples would include:
- Client data/metadata caching (in Linux page cache or in other memory cache)
- Client side NVMe read-only data cache
- Storage server metadata/data caching in RAM
- Storage controller caching
- RAID card caching
On the Client O_DIRECT was used for all IO.
In pNFS with NFSv4.2, the metadata server (MDS) maintains authoritative control over file metadata, such as layout information and file attributes, while clients can cache metadata locally to reduce round trips. Clients use delegations and stateids to determine cache validity, but any conflicting access (e.g., from another client) causes the MDS to recall those delegations, forcing clients to revalidate or purge stale entries. NFSv4.2 adds enhancements like READ_PLUS and SEEK to optimize data and metadata access, but strict coherency is still enforced through callback mechanisms and lease expiration.
On the Linux storage server page cache was used for all unalined IO (IOR_HARD, MDTEST_HARD). pNFS does not acknowledge writes until data is made persistent on disk.
Data Source
Question asked
Is the submitted system a stand-alone storage system or an acceleration layer in front of another storage system that is the source of truth for all application data? This question relates to whether the submitted system is a burst buffer layered on primary storage or primary storage itself.
This type of deployment is used as primary storage by our customers usually labeled as Teir 1 with replication or EC setup as needed for durability. Full data orchestration allows for transparent data movement form one storage area in a global environment while also maintaining a single unified namespace acoss a wide range of storage.
Trust
Question asked
Please describe any steps taken to ensure that the results are trustworthy.
- Did you run the benchmark multiple times and get similar scores?
- Did you validate the score is below the physical capabilities of the deployed hardware?
- How did you validate that the storage system follows the IO500 rules regarding persistence, which states, "All data must be written to persistent storage within the measured time for the individual benchmark, e.g. if a file system caches data, it must ensure that data is persistently stored before acknowledging the close"?
The io500 run provided is an accurate sample of the many tests that were ran on this system. We have found a run-to-run variation in identical configuration to be less then ½ of an IO500 point.
The 8x nvme in each Linux storage server is capable of 112 GB/s of Read and 88 GB/s of write throughput while the configured network allows for up to 100GB/s. Our io500s results are less then 800GB/s ior_easy we still have room to improve with this hardware.
pNFS requires all writes to be persisted before being acknowledged. Cache behavior greately affects write latency and was closely monitored during the buildup for this io500 benchmark using prometheus and grafana monitoring tools.