NVMe has already established as storage choice for modern workloads requiring low latency and high performance. On cloud it is available as NVMe ephemeral resources that can be easily attached to computing instances. Though this option is within reach it comes with other challenges
- Storage is ephemeral in nature and cannot be used when persistence is required as the contents do not survive stop
- Compute instances cannot be stopped and it requires removal and recreating of instance if one does. Now your applications need to consider this unnecessarily.
- Only certain storage optimized instances i3,i2 have these direct NVMe SSD
- The minimum capacity is 475Gib even if the application will use only 1/10 of that capacity.
- Hinder any solution that require separation of storage and compute.
- The Elastic Block Storage for a single compute instance will peak at 40K IOPS.
MayaScale provides Elastic NVMe using NVMe Fabric over TCP on AWS Cloud for high-performance shared storage and its performance is compared against running locally using the ephemeral local NVMe SSDs.
MayaScale works better when configured with multiple cores to provide same parallelism seen with NVMe hardware queues and also the compute instance network and storage performance is also tied to the number of provisioned CPU cores. The software has very low memory requirement only. The following i3 instances can be used for MayaScale server.
|Instance Type||vCPU||Memory (GiB)||Network||Capacity||Total HW Queues|
- server node of instance type from above running MayaScale software
- client node of machine type m5a.2xlarge
FIO Performance Report
The FIO benchmark ran with options numthreads=4, iodepth=32, bs=4k
|Instance Type||IO pattern||Block Size|
The output shows that NVME over Fabrics is a power technology that can match the local NVMe performance with little added latency for read operations only limited by the network bandwidth of 10Gbps that was used in the testing.