Working Principle
This section describes I/O priority scheduling and traffic control. SmartQoS schedules I/Os based on LUN, file system, or snapshot priorities, and perform I/O traffic control to ensure performance of critical applications.
I/O Priority Scheduling
I/O priority scheduling is implemented based on LUN, file system, or snapshot priorities, or to be more specifically, the importance of applications processed by each LUN, file system, or snapshot.
When creating a LUN, file system, or snapshot, you can specify an I/O priority for the LUN, file system, or snapshot. If you do not specify a priority, the LUN, file system, or snapshot is granted the low priority by default. After a LUN, file system, or snapshot is created, you can change its I/O priority.
When receiving an I/O, the storage system gives a priority to the I/O based on the priority of the LUN, file system, or snapshot that will process the I/O. Then the I/O carries the priority throughout its processing process, as shown in Figure 1-1.
- An application server sends an I/O request.
- The storage system gives a priority to the I/O based on the priority of the LUN, file system, or snapshot that will process the I/O.
- The storage system arranges I/Os of different priorities into different queues. When system resources are insufficient, the storage system prioritizes high-priority I/Os and ensures optimal performance for them.
- The storage system processes the I/Os in queues by priority.
I/O priority scheduling is, in essence, the scheduling of storage system resources, including CPU computing and cache resources.
- CPU computing resources: When CPU resources become a performance bottleneck, SmartQoS ensures that high-priority applications are allocated more CPU computing resources.
- Cache resources: The caching requests of high-priority applications can be addressed first.
SmartQoS supports the control of I/O concurrency resources of heterogeneous host LUNs.
I/O Traffic Control
I/O traffic control is implemented by I/O queue management, token allocation, and dequeue management.
I/O queue management uses a token mechanism to allocate storage resources. SmartQoS determines the number of storage resources to be allocated to a LUN or a file system I/O queue by counting the number of tokens owned by the queue. The more tokens owned by an I/O queue, the more resources will be allocated to that queue. Accordingly, I/Os in that queue will be preferentially processed. Figure 1-2 shows how SmartQoS manages the I/O queues of LUN, file system, or snapshot I/O queues.
The process of managing LUN, file system, or snapshot I/O queues is described as follows:
- After application servers send I/O requests, the storage system delivers the requests to LUN, file system, or snapshot I/O queues.
- The storage system adjusts the number of tokens owned by LUN, file system, or snapshot I/O queues based on the priorities of LUNs, file systems, or snapshots. By reducing the number of tokens owned by queues that have a low priority, the storage system ensures that sufficient resources are available for high-priority LUNs, file systems, or snapshots so that I/Os to these LUNs, file systems, or snapshots can be preferentially processed.
- The storage system processes I/O requests.
For example, SmartQoS manages LUN 001 and LUN 002. Different SmartQoS policies are configured for LUN 001 and LUN 002. Table 1-1 lists the performance objectives.
LUN Name |
Performance Objectivea |
---|---|
LUN 001 |
Bandwidth: 300 MB/s |
LUN 002 |
Bandwidth: 200 MB/s |
a: Measurable performance objectives include bandwidth, IOPS, and latency. Performance objectives must be reasonably set to match the actual application performance characteristics. |
The storage system translates performance goals into the number of tokens needed. Specifically, the performance goal of LUN 001 requires 300 tokens, whereas that of LUN 002 requires 200 tokens. If system resources are insufficient, the storage system limits the resources used by LUN 002 because LUN 002 has fewer tokens. The storage system provides more system resources for LUN 001, thereby delivering better performance for LUN 001.
A LUN, file system, or snapshot can be added to only one SmartQoS traffic control policy.