Blue Vela Storage Scale System 6000 - shared
IBM · IBM ess6000-1 · 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 IBM Blue Vela system is an advanced, on-premises solution tailored for training large language models (LLMs) and other foundational models designed and run by IBM Research for internal workloads.
This system is particularly well-suited for a range of AI and HPC workloads, including but not limited to training and fine-tuning models across numerous modalities, such as language, speech, time series, document understanding, and multimodal workloads; developing agentic capabilities; benchmarking; system testing; and systems research. By providing a robust infrastructure, Blue Vela facilitates the development and training of large, complex models, enabling researchers and organizations to derive insights across various domains.
IBM can leverage data generated by workloads running on Blue Vela for real-time analysis, model refinement, and performance benchmarking. This data is crucial for advancing research initiatives, optimizing operational processes, and supporting strategic decision-making across diverse fields. Ultimately, the system empowers Researchers and Developers to harness cutting-edge computational capabilities for innovative and impactful applications.
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.
Blue Vela is a production system run by IBM Research for internal workloads, comprising 768 H100-based Dell xe9680s. The primary workload for Blue Vela is internal AI model development and testing, along with a growing quantum HPC workload used by Researchers, AI and Data Engineers, and Software Developers. . Compute is accessed via an LSF job scheduler for mission-critical AI workloads. While the system is comprised of 768 compute nodes, the io500 run was performed on an allocation of 20 nodes made available for MPI job access outside LSF, and additional tuning was performed in collaboration between IBM Storage Scale Development and IBM Research. During the io500 runs, which occupied 2.6% of the cluster's compute capacity, the remaining 97% was fully occupied by various IBM Research workloads. Overall, the system serves a diverse Research user base, which is critical to driving innovation and efficiency in AI and HPC projects.
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).
IBM Storage Scale (the file system software) and Red Hat (the operating system) are generally commercially available.
Anyone can purchase the software or download a limited use version (it is available commercially).
The product webpage is https://www.ibm.com/products/storage-scale
Regarding the specific storage deployment, this submission uses two building blocks of the IBM Storage Scale 3500 solution, which is described here:
https://www.ibm.com/downloads/documents/us-en/10a99803f5afd8d6
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.
1. The mmlsconfig info is below
Configuration data for cluster dfw_ess6000.bluevela.rmf.ibm.com:
----------------------------------------------------------------
clusterName dfw_ess6000.bluevela.rmf.ibm.com
clusterId 9941035806433427289
dmapiFileHandleSize 32
tscCmdAllowRemoteConnections no
ccrEnabled yes
sdrNotifyAuthEnabled yes
maxblocksize 16m
[s6k_ess6000io1_ib_ess6000io2_ib,s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
nsdRAIDTracks 320K
nspdQueues 240
[ess3500_ess3500a1_ib_ess3500b1_ib,s6k_ess6000io1_ib_ess6000io2_ib,s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
nspdBufferMemPerQueue 24m
nspdThreadsPerQueue 2
nsdMinWorkerThreads 3842
nsdMaxWorkerThreads 3842
nsdSmallThreadRatio 1
nsdRAIDEventLogToConsole all
nsdRAIDBlockDeviceMaxSectorsKB 0
nsdRAIDBlockDeviceNrRequests 0
nsdRAIDBlockDeviceQueueDepth 0
nsdRAIDBlockDeviceScheduler off
nsdRAIDSmallThreadRatio 2
nsdRAIDDefaultGeneratedFD no
nsdRAIDMasterBufferPoolSize 2G
nsdRAIDReconstructAggressiveness 0
nsdRAIDThreadsPerQueue 16
nsdRAIDSSDPerformanceShortTimeConstant 2500000
nsdRAIDDiskDiagTimeout 130
[common]
numaMemoryInterleave no
[ess3500_ess3500a1_ib_ess3500b1_ib,s6k_ess6000io1_ib_ess6000io2_ib,s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
numaMemoryInterleave yes
panicOnIOHang yes
pitWorkerThreadsPerNode 32
prefetchPct 50
maxFilesToCache 128k
maxStatCache 128k
nsdRAIDClientOnlyChecksum yes
pagepoolMaxPhysMemPct 90
[common]
mmhealth-events-ignore ccr_comm_dir_warn
pagepool 1G
[s6k_ess6000io1_ib_ess6000io2_ib]
pagepool 486294451814
[ems2-vm1-ib,utility]
pagepool 32G
[common]
workerThreads 48
[ess3500_ess3500a1_ib_ess3500b1_ib,s6k_ess6000io1_ib_ess6000io2_ib,s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
workerThreads 1024
[utility]
workerThreads 256
[common]
ignorePrefetchLUNCount no
[ess3500_ess3500a1_ib_ess3500b1_ib,s6k_ess6000io1_ib_ess6000io2_ib,s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
ignorePrefetchLUNCount yes
[utility]
ignorePrefetchLUNCount no
[s6k_ess6000io5_ib_ess6000io6_ib]
pagepool 486357658828
[ess3500_ess3500a1_ib_ess3500b1_ib,s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
nsdRAIDEnableSpaceMonitor 1
[s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
nsdRAIDFastWriteFSMetadataLimit 256k
[s6k_ess6000io3_ib_ess6000io4_ib]
pagepool 486351438643
[s6k_ess6000io3_ib_ess6000io4_ib,s6k_ess6000io5_ib_ess6000io6_ib,s6k_ess6000io7_ib_ess6000io8_ib]
nsdRAIDMaxPdiskQueueDepth default:0;hdd:128;ssd:0;nvme:0;nvdimm:0;nvram:0
[s6k_ess6000io3_ib_ess6000io4_ib]
nsdRAIDPagepoolBaseline 486351438643
[common]
autoload no
[ems2-vm1-ib]
autoload yes
[CALLHOME_SERVERS,GUI_MGMT_SERVERS,GUI_SERVERS,s6k_x86_64,utility]
autoBuildGPL yes
[s6k_ess6000io5_ib_ess6000io6_ib]
nsdRAIDPagepoolBaseline 486357658828
[s6k_ess6000io7_ib_ess6000io8_ib]
pagepool 486351443558
nsdRAIDPagepoolBaseline 486351443558
[common]
cipherList AUTHONLY
[ess3500a1-ib,ess3500b1-ib,ess6000io1-ib,ess6000io2-ib,ess6000io3-ib,ess6000io4-ib,ess6000io5-ib,ess6000io6-ib,ess6000io7-ib,ess6000io8-ib,utility]
verbsRdma enable
[common]
verbsRdmaCm disable
[ess3500a1-ib,ess3500b1-ib,ess6000io1-ib,ess6000io2-ib,ess6000io3-ib,ess6000io4-ib,ess6000io5-ib,ess6000io6-ib,ess6000io7-ib,ess6000io8-ib,utility]
verbsRdmaSend yes
[utility]
verbsPorts mlx5_0/1 mlx5_1/1
[ess6000io1-ib,ess6000io2-ib,ess6000io3-ib,ess6000io4-ib]
verbsPorts mlx5_0/1 mlx5_1/1 mlx5_2/1 mlx5_3/1
[ess6000io5-ib,ess6000io6-ib]
verbsPorts mlx5_0/1 mlx5_1/1 mlx5_2/1 mlx5_3/1
[ess6000io7-ib]
verbsPorts mlx5_0 mlx5_1 mlx5_2 mlx5_3 mlx5_4 mlx5_5 mlx5_6 mlx5_7
[ess3500a1-ib,ess3500b1-ib,ess6000io8-ib]
verbsPorts mlx5_0 mlx5_1 mlx5_2 mlx5_3
[ess3500_ess3500a1_ib_ess3500b1_ib]
pagepool 324215793254
nsdRAIDTracks 128K
nspdQueues 120
nsdRAIDEnableRGCMRebalanceWeight yes
backgroundSpaceReclaim Good: 1 10% 60 1% Info: 0 6% 30 1% Warning: 0 3% 10 0% Critical: 0 2% 5 0% OOS: 0 1% 1 0%
nsdRAIDPagepoolBaseline 324215793254
[common]
minReleaseLevel 5.2.2.0
maxMBpS 100000
autoCompactDir no
dataShipServerBufferPct 50
fsyncIsGlobal no
maxBufferDescs 10000000
nBucketGroups 1024
preferDesignatedMnode yes
proactiveReconnect no
adminMode central
File systems in cluster dfw_ess6000.bluevela.rmf.ibm.com:
---------------------------------------------------------
/dev/ess6000-1
Client cluster:
(base) [jlewars@login4 io500]$ mmlsconfig
Configuration data for cluster dfw.bluevela.rmf.ibm.com:
--------------------------------------------------------
clusterName dfw.bluevela.rmf.ibm.com
clusterId 14605646151343901334
dmapiFileHandleSize 32
minReleaseLevel 5.1.9.0
tscCmdAllowRemoteConnections no
ccrEnabled yes
sdrNotifyAuthEnabled yes
[compute,utility]
verbsRdma enable
verbsRdmaSend yes
[common]
numaMemoryInterleave yes
ignorePrefetchLUNCount yes
workerThreads 1024
maxFilesToCache 128K
maxStatCache 128K
maxblocksize 16M
verbsRdmaCm disable
proactiveReconnect no
cipherList AUTHONLY
maxMBpS 100000
prefetchLargeBlockThreshold 4M
[io500]
dataShipClientBufferPct 50
dataShipClientBuffersPerServer 50
fsyncIsGlobal no
maxBufferDescs 10000000
nBucketGroups 1024
preferDesignatedMnode yes
prefetchPct 50
autoCompactDir no
disablePrefetchThreadRebalance yes
[common]
autoload no
verbsPorts mlx5_1/1 mlx5_6/1
pagepool 32G
[io500]
pagepool 1024G
[common]
adminMode central
File systems in cluster dfw.bluevela.rmf.ibm.com:
-------------------------------------------------
(none)
2.Using the ‘mmchnode’ all nodes in the storage cluster have been defined as ‘manager’ role nodes as shown in ‘mmlscluster’ data.
Storage cluster mmlscluster below:
GPFS cluster information
========================
GPFS cluster name: dfw_ess6000.bluevela.rmf.ibm.com
GPFS cluster id: 9941035806433427289
GPFS UID domain: dfw_ess6000.bluevela.rmf.ibm.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 ess6000io1-ib.bluevela.rmf.ibm.com 10.127.100.5 ess6000io1-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
2 ess6000io2-ib.bluevela.rmf.ibm.com 10.127.100.6 ess6000io2-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
3 ess6000io3-ib.bluevela.rmf.ibm.com 10.127.100.7 ess6000io3-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
4 ess6000io4-ib.bluevela.rmf.ibm.com 10.127.100.8 ess6000io4-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
5 ems2-vm1-ib.bluevela.rmf.ibm.com 10.127.100.2 ems2-vm1-ib.bluevela.rmf.ibm.com quorum-perfmon
6 mgmt-r03-m3-ib1.bluevela.rmf.ibm.com 10.127.50.3 mgmt-r03-m3-ib1.bluevela.rmf.ibm.com perfmon
7 mgmt-r04-m3-ib1.bluevela.rmf.ibm.com 10.127.50.9 mgmt-r04-m3-ib1.bluevela.rmf.ibm.com perfmon
8 ess6000io5-ib.bluevela.rmf.ibm.com 10.127.100.9 ess6000io5-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
9 ess6000io6-ib.bluevela.rmf.ibm.com 10.127.100.10 ess6000io6-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
10 ess6000io7-ib.bluevela.rmf.ibm.com 10.127.100.11 ess6000io7-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
11 ess6000io8-ib.bluevela.rmf.ibm.com 10.127.100.12 ess6000io8-ib.bluevela.rmf.ibm.com quorum-manager-perfmon
12 mgmt-r02-m1-ib1.bluevela.rmf.ibm.com 10.127.49.1 mgmt-r02-m1-ib1.bluevela.rmf.ibm.com perfmon
13 ess3500a1-ib.bluevela.rmf.ibm.com 10.127.100.3 ess3500a1-ib.bluevela.rmf.ibm.com manager
14 ess3500b1-ib.bluevela.rmf.ibm.com 10.127.100.4 ess3500b1-ib.bluevela.rmf.ibm.com manager
15 mgmt-r02-m4-ib1.bluevela.rmf.ibm.com 10.127.49.4 mgmt-r02-m4-ib1.bluevela.rmf.ibm.com perfmon
16 mgmt-r02-m5-ib1.bluevela.rmf.ibm.com 10.127.49.5 mgmt-r02-m5-ib1.bluevela.rmf.ibm.com perfmon
3. The PCI tuning option PCI_WR_ORDERING has been enabled on all nodes as follows:
Find the MST device name of each adapter, e.g.:
mst start
mst status
/dev/mst/mt4123_pciconf0
Enable PC_WR_ORDERING for each such device, e.g.:
mlxconfig -d /dev/mst/mt4123_pciconf0 s PCI_WR_ORDERING=1
<reboot for the change to take effect>
4. The file system block is 16 MB (file system block size is a choice based on the use case)
5. The GNR erasure encoded pool uses 8+2P encoding, which is a choice based on the use case (8+2P is the most common erasure encoding option used for the storage configuration).
6. The file system created for the io500 run preallocates 500M inodes (--mmcrfs --inode-limit 500M:500M) out of spare NVMe drive space that was not in use for the production file system. There are no dedicated resources (e.g. servers, or IB adapter links) used on the servers – all resources are shared with production workloads running under LSF.
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.
IBM Storage Scale servers are designed with power redundancy in mind.
The network switch is a single point of failure (not-dual redundant switches).
We currently don’t have additional suggestions or comments on this reproducibility questionnaire.
The storage subsystem employs IBM Storage Scale RAID to use 8+2 erasure encoding and, for some metadata, replication to protect file system data from hardware component failures.
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?
The io500 run ran concurrently with production workloads on the system, using the same production file system for logging, system libraries, mounted on all the storage cluster nodes and all of the available 768 H100-based Dell XE9680 clients.
A SLURM reservation was placed for 32 Dell XE9680 clients so they were drained from the regular LSF production workloads. Only 20 of the Dell XE9680 clients are used for the io500 run.
Additional configuration options were applied (the above Runtime Environment section captures the mmlsconfig output for the io500 node class client nodes). The clients ran io500's dataset against a newly created file system that was dedicated for this work, but using IBM Storage Scale System 6000 NVMe drives used for the production file system, using spare space on the NVMe drives that was not allocated to the production file system. The purpose of using a separate file system for io500's datasets was to allow us to experiment with file system configuration options. There are no dedicated resources on the servers and the only file system level tuning that was done for io500 was to preallocate 500M inodes before running io500.
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 server side, a portion of the servers’ Storage Scale pagepool (RAM) is also available for caching. The effect of this caching provides similar caching to that obtained using solid state drive caching systems, and the NVMe drives on the servers also provide solid state caching.
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.
There is no burst buffer. Caching on the server-side page pool is analogous to how disk drive caching works.
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"?
Very similar scores have been achieved in other runs of the benchmark on the same system.
We have validated that the scores achieved are within the physical capabilities of the system.