QoS is a means to ensure specific performance levels for applications and workloads. There are two ways to accomplish this:
1. Ability to set limitations to avoid unwanted behavior from non-critical VMs.
2. Ability to set guarantees to ensure service levels for mission-critical VMs.
StorPool supports only the first method currently and focusses on setting IOPS and MB/s limits per volume. It is not possible to guarantee a certain amount of IOPS for any given volume, unless all volumes in the system are IOPS-limited.
Furthermore, in StorPool there is built-in fairness between volumes. There are no privileged volumes and all IOPS operations are completed as fast as possible.
The QoS in StorPool is achieved by templates by which it is possible to set various limitations (IOPS and MB/s) for volumes.
StorPool Distributed Storage can apply hard limits on IOPS and bandwidth (MB/s) per volume. For example, if there are 10 virtual machines (VMs) connected to 10 virtual disks, you can configure IOPS and MB/s QoS limits for all 10 virtual disks. As long as there is sufficient storage/network capacity to handle the total IOPS and MB/s set for all the virtual disks, StorPool Distributed Storage fairly shares the available storage/network resources between the volumes. However, if components of the network equipment or underlying hardware used for storage fail, StorPool cannot guarantee that these limits will be kept.
Next to IOPS and MB/s StorPool provides volume-based QoS settings for Size, # of replicas and data placement policy.