In this modern storage generation, storage system capacity is no longer a top concern among IT professionals. People start to care about another topic – "How do I give and maintain the best performance for a given application?" – especially in the virtual environment, where storage I/O is shared, or, the storage needs to do the backup and the file-sharing at the same time. And the last, more important condition is, lowering the response time for specific volume to ensure that the applications running on it won’t have delays to its service, e.g., video editing environment, the frame will drop if the response time is longer. The assistance of quality of service is very much needed for them.
What is QoS?
QoS, means “Quality of Service”. A user configurable limit of IOPs and MB/s, per volume/LUN (Virtual Disk). By using this feature, a particular user can be guaranteed a certain level of service parameters.
The limit is strictly enforced, i.e., if you set a limit of 1000, you get 1000 IOPs exactly from the first second, or, the IOPS that this particular volume won’t exceed 1000 IOPS, to ensure that other volumes will get more resources to their services. There’s no bursting possibility at present. The limit can be changed at any time.
Some customers use the IOPs and MB/s limits only to ring-fence outliers and abusers. Other customers limit all volumes to a large IOPs number (e.g. 50,000 IOPs) only to make sure one VM or a small number of VMs are not taking the full capability of the host it is running on (which is circa 200-300k IOPs per host, depending on CPU and network). There are lots of means about QoS, including Network QoS, VM QoS, and Storage QoS, which is what we are talking about today.
Why do we need storage QoS?
More and more enterprises use storage to do data backup and file sharing. However, if a company has a large number of users who use these storage devices, and they need to perform regular data backups while they are using them, it will become a flow blockage issue. Therefore, at this time, IT personnel will very much need a function called QoS to achieve flow control and manage peak and off-peaks. The goal is to efficiently manage the I/O flows in storage, as storage could possess lots of volumes that are used for multiple users/hosts, like we mentioned above, ensuring the resources (no matter IOPS or MBPs) on a specific volume are very vital. Data backup is important (preventing disasters), but not rush, delivering service for users is higher than that, for making money of course.
What kind of environment will need this?
The storage performance of a single virtual machine in a cloud computing environment may be affected by other machines using the same physical storage. At the same time, user requirements concerning quality of service continue to increase, which brings new challenges for virtualized environments. We discuss the quality aspects of storage services and propose a method for ensuring storage QoS by using monitoring and performance prediction based on heuristics. To let your VM environment work more smoothly. A mixed environment for backup and file sharing needs QoS to manage the flow. Control the entire storage environment, when a large amount of front-end I/O is needed, and when there will be background execution backups to achieve distribution of flow.
Also, the audio-visual editing may need the help of QoS, in order to avoid the situation of falling frames during audio-visual editing.
What else? Don’t you think the latency concerns?
Especially for SSD/NVMe all-flash-array, not only high IOPS in random patterns but also lower latency (short response time) matters. Considering the AI responses, the delays of 5G signals, none of them is capable of enduring delays higher than mini-seconds, the world of micro-second is exploring all over around.
The storage devices of major brands generally have their own QoS software, and the function of QoS is becoming the very basic implementation for the IT environment. Each brand has its own characteristics, but the ultimate goal is to let IT personnel adjust the quality of service to the best state so that their users can use it more smoothly. Look at the table below, those vendors have the main purpose of their own QoS design, and the key is at the last one – Response Time Setting – high IOPS with low latency can be ensured with this setting from QoS, which is useful to achieve the goal in the environment mentioned above.
Here are the references from StorageReview:
They all reveal that lower latency with high random IOPS will fit in the environment with the application respectively.