Hi, everyone! Today I’m going to introduce you FusionStorage 8.0.1 block storage SmartQos feature.
![]()
1. Definition
Huawei developed SmartQoS to implement QoS effectively. This feature dynamically allocates storage system resources to meet specific performance objectives of applications.
SmartQoS enables you to configure QoS policies to limit resource usage of non-critical services. This reduces the impact of non-critical services on the critical ones.
Distributed QoS flow control
SmartQoS can control the overall performance objective of a shared volume across the distributed cluster to effectively isolate services. This helps adapt to changes in the mount node of the shared volume and changes in the service pressure on the mount point.
Flexible QoS policies
QoS policies can take effect once, weekly, or daily. Flow control can also be implemented using QoS policies in advance to reduce the impact of service bursts on the system. QoS policies take effect only within specified time ranges, minimizing the impact on service performance.
Burst functions
IOPS and bandwidth upper limits can be configured for services prone to burst traffic. This helps control traffic upper limits while tolerating some service bursts. The burst functions, including burst duration, can be flexibly configured according to service characteristics to meet burst requirements.
Unified management of foreground and background services
Internal system services and host services are managed in a unified manner. This ensures system reliability, minimizes the impact of internal system services on host services, and guarantees service quality of user applications.
SmartQoS traffic control management
SmartQoS dynamically allocates storage system resources to meet certain performance goals of some applications.
The storage system uses LUN-, file system-, or snapshot-based I/O priority scheduling and I/O traffic management to ensure the proper running of critical services.
2. Principle Description
Flow control provided by QoS policies is implemented through I/O queue management, token bucket management, and dequeuing control. Each volume associated with a QoS policy maintains an I/O queue and a token bucket. The more tokens the queue of a volume has, the more resources the system allocates to the volume. The storage system preferentially processes I/O requests in the I/O queue of this volume.
![]()
1. After application servers deliver I/O requests, the storage system forwards the requests to I/O queues of volumes.
2. Based on volume priorities, the storage system adjusts the number of tokens owned by I/O queues of the volumes. By reducing the number of tokens owned by queues of low-priority volumes, the storage system ensures that sufficient resources are available to high-priority volumes so that they can work properly (internally, the system implements I/O dequeuing).
Suppose that QoS policies are configured for Volume 001 and Volume 002 in a storage system. By specifying performance objectives in the QoS policies, the storage system limits system resource allocation to the two volumes. In this way, sufficient resources are reserved for the higher priority volume.
Table 1 Volume I/O instances
Volume Name | Performance Objectivea |
|---|---|
Volume 001 | Bandwidth: 300 MB/s |
Volume 002 | Bandwidth: 200 MB/s |
a: indicates the maximum performance objective of a volume. | |
The storage system allocates the number of required tokens to each volume. As shown in Table 1, the performance objective set for Volume 001 is higher than that for Volume 002. Therefore, the storage system allocates more tokens to Volume 001 than to Volume 002. When system resources are insufficient, the storage system limits the system resources used by Volume 002 because Volume 002 has fewer tokens. By doing so, Volume 001 can obtain more system resources, achieving better performance.
3. The storage system processes dequeued I/O requests.
To cope with burst pressure on applications, FusionStorage block storage supports burst functions. When high performance is required, FusionStorage block storage can drastically increase the number of read/write operations that can be performed on a volume per second during a specified period of time. FusionStorage block storage supports the following two types of burst functions:
IOPS-based
The involved performance parameters include burst IOPS and duration. Burst IOPS indicates the maximum number of read/write operations that can be performed on volumes per second when the burst function is enabled, and burst duration indicates the minimum burst duration supported by the volumes.
Bandwidth-based
The involved performance parameter includes burst MBPS/TB. Burst MBPS/TB indicates the maximum amount of data that can be transmitted per second per TB when the burst function is enabled for volumes, and burst MBPS indicates the maximum amount of data that can be transmitted per second when the burst function is enabled.
FusionStorage block storage supports the following QoS policies:
Capacity-oriented
Such QoS policies are configured by specifying IOPS and bandwidth upper limits and support burst functions.
Custom
Compared with capacity-oriented QoS policies, custom QoS policies provide more configuration options, including options based on read/write types, IOPS, and bandwidth. However, custom QoS policies do not support burst functions.
4. Application Scenario
SmartQoS traffic control policy A: limits the service bandwidth of subscriber A (for example, ≤ 100 MB/s) to ensure the service performance of subscriber A without affecting the service performance of the whole storage
system.
• SmartQoS traffic control policy B: limits the service bandwidth of subscriber B (for example, ≤ 30 MB/s). The bandwidth of subscriber B is less than that of subscribe A to reserve robust system resources for other users
| User Type | Service Quality Requirements |
Subscriber A (gold subscriber) | High |
Subscriber B (silver subscriber) | Low |

5. Configuration Process

That is all for the SmartQoS features, welcome to discuss!




