Data Sharding
Incoming data is partitioned into smaller, fixed-size blocks known as shards. This sharding process allows large I/O operations to be parallelized across multiple disks and nodes simultaneously. By distributing the workload, aSAN prevents any single disk from becoming a bottleneck, thereby maximizing aggregate storage throughput and IOPS for demanding applications like databases and VDI.
Data Striping
Shards are further distributed across numerous disks in a striped manner, similar to RAID 0 but at a distributed system level. This strategy spreads the I/O load evenly, enabling many drives to work in parallel to service a single large I/O request or multiple concurrent requests. The system employs an adaptive stripe width that dynamically adjusts based on the cluster size and data protection policy to optimize performance.
Tier
aSAN implements a multi-tier storage architecture that automatically manages data placement between fast SSD tiers and high-capacity HDD tiers. Frequently accessed data ("hot" data) is promoted to the SSD tier for low-latency access, while less frequently accessed data ("cold" data) is demoted to the HDD tier. This automated tiering provides a cost-effective balance of performance and capacity, delivering SSD-like performance for active workloads without the expense of an all-flash array.
Optimal Data Distribution
The system continuously works to maintain a balanced distribution of data across all nodes and disks. It prioritizes data localization, placing VM data on the same host where the VM runs to minimize network traffic for read operations. The distribution algorithm also ensures that storage capacity and I/O load are evenly spread, preventing hotspots and ensuring consistent performance as the cluster scales.
I/O Path Optimization
Multiple low-level optimizations streamline the I/O processing path. These include scheduling VM vCPUs and I/O threads on the same physical CPU cores to reduce context switch overhead, implementing soft affinity scheduling, and utilizing a read cache in the libnfs library. Techniques like smart I/O pipelining and thread model optimization reduce latency and improve overall IOPS by minimizing processing overhead at various stages of the I/O stack.
Zero-Copy Memory
This technique eliminates redundant memory copies during data transmission between the aSAN client and the storage service. By allowing data to be read from or written to a single memory location that is shared between processes, it reduces CPU utilization and memory bandwidth consumption, which directly translates to lower I/O latency and higher throughput.
Disk-Level QoS
Quality of Service policies can be applied at the individual virtual disk level, allowing administrators to guarantee minimum performance, set maximum IOPS or throughput limits, and prioritize I/O for critical applications. This prevents "noisy neighbor" scenarios in multi-tenant environments, ensuring predictable storage performance for business-critical workloads.
RDMA
Remote Direct Memory Access enables high-speed, low-latency data transfers between cluster nodes by allowing one computer to access the memory of another without involving the operating system or CPU. aSAN leverages RDMA over Converged Ethernet (RoCE) to bypass the kernel TCP/IP stack for storage traffic, drastically reducing latency and CPU overhead for replication and data rebuilding operations, which is particularly beneficial for performance-sensitive database workloads.
SPDK-Based Turbo Service
For the most demanding I/O workloads, aSAN offers a Turbo mode that utilizes the Storage Performance Development Kit. SPDK moves the entire storage stack to userspace and employs polling-mode drivers, completely eliminating kernel context switches and interrupt handling delays. VMs running in Turbo mode experience significantly higher IOPS and lower latency, making them suitable for extreme-performance applications like high-frequency trading platforms or massive-scale transaction processing.