Storage workload allocation based on input / output pattern affinity computation

By identifying and calculating the affinity of mixed IO patterns in storage workloads, the load distribution of the storage system is optimized, solving the problem of poor performance in the storage system and improving overall performance.

CN117331484BActive Publication Date: 2026-07-24DELL PROD LP
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
DELL PROD LP
Filing Date
2022-06-23
Publication Date
2026-07-24

AI Technical Summary

Technical Problem

In existing technologies, storage systems cannot effectively utilize IO mode affinity for optimized allocation when handling multiple storage workloads, resulting in poor performance.

Method used

By identifying the mixture of I/O patterns in storage workloads, calculating their affinity metric, and allocating storage workloads based on this metric, the performance of the storage system can be improved.

Benefits of technology

It optimizes the allocation of storage workloads based on IO mode affinity, thereby improving the overall performance of the storage system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117331484B_ABST
    Figure CN117331484B_ABST
Patent Text Reader

Abstract

An apparatus comprising a processing device configured to identify a storage workload to be run on a storage system and determine an input / output (IO) pattern mix associated with the identified storage workload, the IO pattern mix comprising: a first set of IO patterns characterizing types of IO operations performed by a first storage workload; and at least a second set of IO patterns characterizing types of IO operations performed by a second storage workload. The processing device is further configured to compute an affinity metric for the IO pattern mix, the computed affinity metric characterizing a difference between (i) the IO pattern mix running concurrently and (ii) performance metrics for the first set of IO patterns and the second set of IO patterns running individually. The processing device is further configured to assign the identified storage workload to a storage device of the storage system based on the computed affinity metric.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This field relates generally to information processing, and more specifically to storage in information processing systems. Background Technology

[0002] Storage arrays and other types of storage systems are typically shared by multiple host devices over a network. Applications running on these host devices each consist of one or more processes that perform application functions. These processes issue input-output (I / O) operation requests to the storage system. The storage system's storage controller service these I / O operation requests. In some information processing systems, multiple storage systems may be used to form a storage cluster. Summary of the Invention

[0003] The illustrative embodiments of this disclosure provide techniques for allocating storage workloads based at least in part on input / output pattern affinity calculations.

[0004] In one embodiment, an apparatus includes at least one processing means, the at least one processing means including a processor coupled to a memory. The at least one processing means is configured to perform the following steps: identifying a set of storage workloads to run on a storage system, the storage system including a plurality of storage devices; and determining an input / output pattern mixture associated with two or more of the identified set of storage workloads, the input / output pattern mixture including: a first set of one or more input / output patterns, the first set of one or more input / output patterns characterizing the type of input / output operation performed by a first storage workload among the two or more identified set of storage workloads; and at least a second set of one or more input / output patterns, the second set of one or more input / output patterns characterizing the type of input / output operation performed by a second storage workload among the two or more identified set of storage workloads. The at least one processing device is further configured to perform the following steps: calculating an affinity metric for the input / output mode mixtures associated with two or more of the identified set of storage workloads, the calculated affinity metric characterizing the difference between (i) the performance metrics of the input / output mode mixtures running concurrently and (ii) the performance metrics of the first set of one or more input / output modes and the second set of one or more input / output modes running individually. The at least one processing device is also configured to perform the following steps: assigning the two or more of the identified set of storage workloads to one or more of the plurality of storage devices in the storage system, at least in part based on the calculated affinity metric.

[0005] These and other illustrative embodiments include, but are not limited to, methods, devices, networks, and processor-readable storage media. Attached Figure Description

[0006] Figure 1 This is a block diagram of an information processing system, as described in the illustrative implementation, for allocating storage workloads based at least in part on input / output pattern affinity calculations.

[0007] Figure 2 This is a flowchart of an exemplary process for allocating storage workloads based at least in part on input / output pattern affinity calculations, as described in an illustrative embodiment.

[0008] Figure 3 A table showing the characteristics of different storage workloads in the illustrative implementation is provided.

[0009] Figures 4A to 4E Graphs and tables showing different performance metrics of the input / output mode hybrid at different storage layers in the illustrative implementation are shown.

[0010] Figures 5A to 5E Graphs and tables showing different performance metrics for another input / output mode hybrid on different storage layers in an illustrative implementation are shown.

[0011] Figure 6A and Figure 6B Different allocations of a set of input / output modes to a group of storage devices are shown in the illustrative implementation.

[0012] Figure 7 The process flow for generating recommendations for storage workload allocation based on input / output pattern affinity is shown in the illustrative implementation.

[0013] Figure 8A and Figure 8B Tables and graphs are shown to measure the input / output mode affinity of the input / output mode hybrid in the illustrative embodiment.

[0014] Figure 9A and Figure 9B A table and graph showing the input / output mode affinity metric for another input / output mode hybrid in the illustrative embodiment are shown.

[0015] Figure 10 and Figure 11 An example of a processing platform that can be used to implement at least a portion of an information processing system is shown in an illustrative embodiment. Detailed Implementation

[0016] This document describes illustrative embodiments with reference to exemplary information processing systems and associated computers, servers, storage devices, and other processing apparatuses. However, it should be understood that the embodiments are not limited to use with the specific illustrative system and apparatus configurations shown. Therefore, the term "information processing system" as used herein is intended to be interpreted broadly to encompass processing systems, such as those including cloud computing and storage systems, as well as other types of processing systems that include various combinations of physical and virtual processing resources. Thus, an information processing system may include, for example, at least one data center or other types of cloud-based systems that include one or more clouds hosting tenants accessing cloud resources.

[0017] Figure 1 An information processing system 100 is illustrated, configured according to an illustrative embodiment to provide the capability for storage workload allocation, at least in part, based on input / output (I / O) pattern affinity calculations. The information processing system 100 includes one or more host devices 102-1, 102-2, ... 102-N (collectively referred to as host devices 102), which communicate via a network 104 with one or more storage arrays 106-1, 106-2, ... 106-M (collectively referred to as storage arrays 106). The network 104 may include a storage area network (SAN).

[0018] like Figure 1 As shown, storage array 106-1 includes multiple storage devices 108, each storing data utilized by one or more applications running on host device 102. The storage devices 108 are illustratively arranged in one or more storage pools. Storage array 106-1 also includes one or more storage controllers 110 that facilitate input / output (I / O) processing of the storage devices 108. Storage array 106-1 and its associated storage devices 108 are examples of what is more generally referred to herein as a “storage system.” Such a storage system in this embodiment is shared by host device 102 and is therefore also referred to herein as a “shared storage system.” In embodiments where only a single host device 102 exists, host device 102 may be configured to exclusively use the storage system.

[0019] Host device 102 illustratively includes a corresponding computer, server, or other type of processing device capable of communicating with storage array 106 via network 104. For example, at least a subset of host device 102 may be implemented as a corresponding virtual machine of a computing service platform or other type of processing platform. In this arrangement, host device 102 illustratively provides computing services, such as executing one or more applications on behalf of each of one or more users associated with a corresponding host device in host device 102.

[0020] The term “user” in this article is intended to be interpreted broadly to encompass a wide range of arrangements of human, hardware, software, or firmware entities, as well as combinations of such entities.

[0021] This provides computing and / or storage services to users under Platform as a Service (PaaS), Infrastructure as a Service (IaaS), Function as a Service (FaaS), and / or Storage as a Service (STaaS) models. However, it should be understood that many other cloud infrastructure deployments can be used. Furthermore, illustrative implementations can be implemented outside of a cloud infrastructure context, as in the case of stand-alone computing and storage systems implemented within a given enterprise.

[0022] Storage device 108 of storage array 106-1 may implement logical units (LUNs) configured to store objects for a user associated with host device 102. These objects may include files, blocks, or other types of objects. Host device 102 interacts with storage array 106-1 using read and write commands, as well as other types of commands transmitted over network 104. Such commands more specifically include Small Computer System Interface (SCSI) commands in some embodiments, but other types of commands may be used in other embodiments. A given I / O operation (as the term is used extensively herein) illustratively includes one or more such commands. References to terms such as “input-output” and “IO” herein should be understood as referring to input and / or output. Therefore, an I / O operation involves at least one of input and output.

[0023] Furthermore, as used herein, the term "storage device" is intended to be interpreted broadly to encompass logical storage devices or other logical storage units, such as LUNs. A logical storage device can be defined as a distinct portion of the storage array 106-1 that includes one or more physical storage devices. Storage device 108 can therefore be considered to include a corresponding LUN or other logical storage unit.

[0024] Storage device 108 of storage array 106-1 can be implemented using a solid-state drive (SSD). Such SSDs are implemented using non-volatile memory (NVM) devices such as flash memory. Other types of NVM devices that can be used to implement at least a portion of storage device 108 include non-volatile random access memory (NVRAM), phase-change RAM (PC-RAM), and magnetic RAM (MRAM). Various combinations of these and other types of NVM devices or other storage devices can also be used. For example, a hard disk drive (HDD) can be used in conjunction with an SSD or other type of NVM device, or used to replace the SSD or other type of NVM device. Therefore, at least one subset of storage device 108 can be implemented using many other types of electronic or magnetic media.

[0025] exist Figure 1 In the information processing system 100, it is assumed that storage array 106 is part of storage cluster 105 (e.g., where storage array 106 can be used to implement one or more storage nodes in a clustered storage system comprising multiple storage nodes interconnected via one or more networks), and it is assumed that host device 102 submits I / O operations to be processed by storage cluster 105 (e.g., as part of a storage workload of one or more applications running on host device 102). It is assumed that at least one of the storage controllers of storage array 106 (e.g., storage controller 110 of storage array 106-1) implements the function of intelligent storage workload allocation for storage devices 108 across storage array 106-1 (e.g., between different storage devices or portions thereof, where in some cases, the different storage devices 108 are part of or provide storage resources for different storage tiers in storage cluster 105) and between storage array 106-1 and one or more other storage arrays among storage arrays 106-2 to 106-M. This intelligent storage workload allocation function is provided via the IO mode affinity calculation module 112 and the storage workload allocation module 114.

[0026] The IO pattern affinity calculation module 112 is configured to identify a set of storage workloads that will run on a storage system (e.g., storage array 106-1, storage cluster 105). The IO pattern affinity calculation module 112 is also configured to determine a mixture of IO patterns associated with two or more of the identified set of storage workloads. The IO pattern mixture includes: a first set of one or more IO patterns that characterizes the type of IO operation performed by a first storage workload among the two or more identified set of storage workloads; and at least a second set of one or more IO patterns that characterizes the type of IO operation performed by a second storage workload among the two or more identified set of storage workloads. The IO pattern affinity calculation module 112 is also configured to calculate an affinity metric for the mixture of IO patterns associated with the two or more identified set of storage workloads. The calculated affinity metric characterizes the difference between (i) a mixture of concurrently running I / O modes and (ii) a performance metric for a first group of one or more I / O modes and a second group of one or more I / O modes running individually. The storage workload allocation module 114 is configured to allocate two or more of the identified group of storage workloads to one or more of the plurality of storage devices in the storage system, at least in part based on the calculated affinity metric.

[0027] Despite Figure 1 In one implementation, the IO mode affinity calculation module 112 and the storage workload allocation module 114 are shown to be implemented both inside the storage array 106-1 and outside the storage controller 110. However, in other implementations, one or both of the IO mode affinity calculation module 112 and the storage workload allocation module 114 may be implemented at least partially inside the storage controller 110 or at least partially outside the storage array 106-1, such as on one of the host devices 102, on one or more other storage arrays 106-2 to 106-M, or on one or more servers outside the host device 102 and storage array 106 (e.g., including implementation on a cloud computing platform or other types of information technology (IT) infrastructure). Additionally, although... Figure 1 Not shown, but other storage arrays in storage arrays 106-2 to 106-M may implement corresponding instances of the IO mode affinity calculation module 112 and the storage workload allocation module 114.

[0028] At least a portion of the functionality of the IO mode affinity calculation module 112 and the storage workload allocation module 114 may be implemented in the form of software stored in memory and executed by the processor.

[0029] As described above, in some embodiments, it is assumed that storage array 106 is part of storage cluster 105. It is assumed that storage cluster 105 provides or implements multiple different storage tiers of a tiered storage system. For example, a given tiered storage system may include a speed or performance tier implemented using flash storage devices or other types of SSDs, and a capacity tier implemented using HDDs, where one or more of these tiers may be server-based. As will be apparent to those skilled in the art, various other types of storage devices and tiered storage systems may be used in other embodiments. The specific storage devices used in a given storage tier may vary depending on the specific requirements of a given embodiment, and multiple different types of storage devices may be used within a single storage tier. As previously indicated, the term "storage device" as used herein is intended to be interpreted broadly and therefore may encompass, for example, SSDs, HDDs, flash drives, hybrid drives, or other types of storage products and devices or portions thereof, and illustratively includes logical storage devices such as LUNs.

[0030] It should be understood that a tiered storage system may include more than two storage tiers, such as one or more “performance” tiers and one or more “capacity” tiers, wherein the performance tiers illustratively provide improved IO performance characteristics relative to the capacity tiers, and the capacity tiers illustratively use storage with relatively lower cost than the performance tiers. There may also be multiple performance tiers (each providing a different level of service or performance as needed), or multiple capacity tiers.

[0031] Figure 1 In the embodiments, host device 102 and storage array 106 are assumed to be implemented using at least one processing platform, wherein each processing platform includes one or more processing units, each processing unit having a processor coupled to memory. Such processing units may illustratively include specific arrangements of computing, storage, and networking resources. For example, in some embodiments, the processing units are implemented at least in part using virtual resources such as virtual machines (VMs) or Linux containers (LXCs), or a combination of both, such as in an arrangement where Docker containers or other types of LXCs are configured to run on VMs.

[0032] The host device 102 and the storage array 106 may be implemented on corresponding different processing platforms, but many other arrangements are possible. For example, in some embodiments, at least a portion of one or more of the host devices 102 and one or more of the storage arrays 106 are implemented on the same processing platform. One or more of the storage arrays 106 may therefore be implemented, at least in part, within at least one processing platform that implements at least a subset of the host devices 102.

[0033] Network 104 may be implemented using multiple different types of networks to interconnect storage system components. For example, network 104 may include a SAN as part of a global computer network, such as the Internet, but other types of networks may be part of a SAN, including wide area networks (WANs), local area networks (LANs), satellite networks, telephone or cable networks, cellular networks, wireless networks (such as WiFi or WiMAX networks), or various portions or combinations of these and other types of networks. Therefore, in some embodiments, network 104 includes a combination of multiple different types of networks, each including processing means configured to communicate using Internet Protocol (IP) or other relevant communication protocols.

[0034] As a more specific example, some implementations may utilize one or more high-speed local area networks, in which associated processing devices communicate with each other using peripheral component Fast Interconnect (PCIe) cards and networking protocols such as unlimited bandwidth, gigabit Ethernet, or Fibre Channel. In a given implementation, as those skilled in the art will appreciate, many alternative networking arrangements are possible.

[0035] While in some embodiments certain commands used by host device 102 to communicate with storage array 106 illustratively include SCSI commands, other types of commands and command formats may be used in other embodiments. For example, some embodiments may utilize command features and functionalities associated with NVM Fast (NVMe) to perform I / O operations, as described in the NVMe specification, revision 1.3, May 2017, which is incorporated herein by reference. Other storage protocols of this type that may be utilized in the illustrative embodiments disclosed herein include NVMe using the architecture (also known as NVMoF) and NVMe using the Control Transfer Protocol (TCP) (also known as NVMe / TCP).

[0036] In this embodiment, it is assumed that the memory array 106-1 includes persistent memory implemented using flash memory or other types of non-volatile memory. More specific examples include NAND-based flash memory or other types of non-volatile memory, such as resistive RAM, phase-change memory, spin torque transfer magnetoresistive RAM (STT-MRAM), and 3D XPoint-based... TM Intel Optane memory TM Device. Further assuming that the persistent memory is separate from the storage device 108 of storage array 106-1, however, in other embodiments, the persistent memory may be implemented as one or more designated portions of one or more of the storage devices 108. For example, in some embodiments, as in embodiments involving an all-flash memory array, storage device 108 may include a flash-based storage device, or may be implemented wholly or partially using other types of non-volatile memory.

[0037] As mentioned above, communication between host device 102 and storage array 106 can utilize a PCIe connection or other types of connections implemented through one or more networks. For example, illustrative embodiments may use interfaces such as Internet SCSI (iSCSI), Serial Attached SCSI (SAS), and Serial ATA (SATA). In other embodiments, many other interfaces and associated communication protocols may be used.

[0038] In some implementations, storage array 106 may be implemented as part of a cloud-based system.

[0039] Therefore, it should be clearly understood that the term “memory array” as used herein is intended to be interpreted broadly and may encompass several different instances of commercially available memory arrays.

[0040] Other types of storage products that can be used to implement the given storage system in the illustrative embodiments include software-defined storage, cloud storage, object-based storage, and scale-out storage. In the illustrative embodiments, combinations of these and other storage types can also be used to implement the given storage system.

[0041] In some implementations, the storage system includes a first storage array and a second storage array arranged in an active-active configuration. For example, this arrangement can be used to ensure that data stored in one of the storage arrays can be replicated to the other storage array using a synchronous replication process. This data replication across multiple storage arrays can facilitate fault recovery in system 100. Thus, one of the storage arrays can operate as a production storage array relative to another storage array that operates as a backup or recovery storage array.

[0042] However, it should be understood that the embodiments disclosed herein are not limited to active-active configuration or any other particular storage system arrangement. Therefore, the illustrative embodiments herein can be configured using a variety of other arrangements, including, for example, active-passive arrangements, active-active asynchronous logical unit access (ALUA) arrangements, and other types of ALUA arrangements.

[0043] These and other storage systems may be part of what is more generally referred to herein as a processing platform, which includes one or more processing units, each including a processor coupled to memory. A given processing unit may correspond to one or more virtual machines or other types of virtualization infrastructure, such as Docker containers or other types of LXC. As indicated above, communication between such components of system 100 may be made via one or more networks.

[0044] As used herein, the term "processing platform" is intended to be interpreted broadly to encompass (by way of example and not limitation) multiple sets of processing devices and one or more associated storage systems configured to communicate over one or more networks. For example, a distributed implementation of host device 102 is possible, where some host devices of host device 102 reside in a data center located in a first geographic location, while other host devices of host device 102 reside in one or more other data centers located in one or more other geographic locations that may be far from the first geographic location. Storage array 106 may be implemented at least partially in the first geographic location, the second geographic location, and one or more other geographic locations. Therefore, in some implementations of system 100, different host devices and storage arrays in host device 102 and storage array 106 may reside in different data centers.

[0045] Many other distributed implementations of host device 102 and storage array 106 are possible. Therefore, host device 102 and storage array 106 can also be implemented in a distributed manner across multiple data centers.

[0046] The following will combine Figure 10 and Figure 11 Additional examples of the processing platform used to implement part of system 100 in the illustrative implementation are described in more detail.

[0047] It should be understood that Figure 1 The specific set of elements shown for allocating storage workloads based at least in part on IO pattern affinity calculations is presented by way of illustrative example only, and in other embodiments, additional or alternative elements may be used. Thus, another embodiment may include different arrangements of additional or alternative systems, devices, and other network entities, as well as modules and other components.

[0048] It should be understood that these and other features of the illustrative implementation are presented by way of example only and should not be construed as limiting in any way.

[0049] Now refer to Figure 2 The flowchart describes in more detail an exemplary process for allocating storage workloads based at least in part on IO pattern affinity calculations. It should be understood that this particular process is merely an example, and in other embodiments, additional or alternative processes for allocating storage workloads based at least in part on IO pattern affinity calculations may be used.

[0050] In this embodiment, the process includes steps 200 to 206. These steps are assumed to be performed by the IO pattern affinity calculation module 112 and the storage workload allocation module 114. The process begins at step 200: identifying a set of storage workloads to run on a storage system, the storage system including multiple storage devices. In step 202, an IO pattern mixture associated with two or more of the identified set of storage workloads is determined. The IO pattern mixture includes: a first set of one or more IO patterns, the first set of one or more IO patterns characterizing the type of IO operation performed by a first storage workload among the two or more identified set of storage workloads; and at least a second set of one or more IO patterns, the second set of one or more IO patterns characterizing the type of IO operation performed by a second storage workload among the two or more identified set of storage workloads. A given I / O pattern associated with a given storage workload in two or more of the identified set of storage workloads characterizes the following: the size of the storage object stored by the given storage workload; the ratio of read operations to write operations on the storage object stored by the given storage workload; and the ratio of sequential I / O operations to random I / O operations involving the storage object stored by the given storage workload.

[0051] In step 204, an affinity metric is calculated for the I / O mode mix associated with two or more of the identified set of storage workloads. The calculated affinity metric characterizes the difference between (i) a concurrently running I / O mode mix and (ii) a performance metric for a first set of one or more I / O modes and a second set of one or more I / O modes running individually. Two or more of the identified set of storage workloads are assigned to one or more of the multiple storage devices in the storage system, at least in part based on the calculated affinity metric.

[0052] In some implementations, step 204 includes: determining normalized values ​​for two or more different types of performance metrics in the I / O mode mix; determining a normalized value for each of the I / O modes in the I / O mode mix; and determining the average of the normalized values ​​of the two or more different types of performance metrics for each of the I / O modes in the I / O mode mix. The two or more different types of performance metrics may include response time, I / O operations per second (IOPS), and bandwidth. Step 204 may also include calculating the distance between: the normalized values ​​of the two or more different types of performance metrics in the I / O mode mix; and the determined average of the normalized values ​​of the two or more different types of performance metrics for each of the I / O modes in the I / O mode mix. The calculated distance may include the distance between a first point in N-dimensional space corresponding to the normalized values ​​of the two or more different types of performance metrics in the I / O mode mix and a second point in N-dimensional space corresponding to the determined average of the normalized values ​​of the two or more different types of performance metrics for each of the I / O modes in the I / O mode mix, where N is the number of the two or more different types of performance metrics. The calculated distance may additionally or alternatively include a Euclidean distance metric.

[0053] In some implementations, the calculated affinity metric includes: a first component characterizing whether the I / O mode mix provides a performance improvement or a performance degradation; and a second component characterizing the amount of performance improvement or degradation. Step 206 may include determining, at least in part, whether to modify the existing allocation of two or more of the identified set of storage workloads based on whether the second component of the calculated affinity metric exceeds a specified threshold. In response to determining that the second component of the calculated affinity metric exceeds the specified threshold and that the first component of the calculated affinity metric indicates that the I / O mode mix provides a performance improvement, step 206 may include modifying the existing allocation of two or more of the identified set of storage workloads to allocate the two or more of the identified set of storage workloads to the same subset of multiple storage devices in the storage system. In response to determining that a second component of the calculated affinity metric exceeds a specified threshold and that a first component of the calculated affinity metric indicates that the IO mode hybrid provides performance degradation, step 206 may include modifying the existing allocation of two or more of the identified set of storage workloads to distribute the two or more of the identified set of storage workloads to two or more distinct subsets of the plurality of storage devices in the storage system. In response to determining that a second component of the calculated affinity metric does not exceed a specified threshold, step 206 may include maintaining the existing allocation of the two or more of the identified set of storage workloads.

[0054] The storage system may arrange multiple storage devices into two or more storage tiers, and step 206 may include selecting whether to assign two or more of the identified set of storage workloads to the same or different storage tiers within the two or more storage tiers. The storage system may include a clustered storage system comprising two or more storage arrays, and step 206 may include selecting whether to assign two or more of the identified set of storage workloads to the same or different storage arrays within the two or more storage arrays of the clustered storage system.

[0055] Storage systems typically need to serve multiple applications or storage workloads. Different applications with different I / O patterns may flush or store data to storage devices simultaneously or similarly (e.g., SAS flash, SAS, nearline SAS (NL-SAS), etc.). In some cases, a mixture of I / O patterns associated with multiple applications results in improved storage system performance. In other cases, a mixture of I / O patterns associated with multiple applications results in degraded storage system performance. Illustrative embodiments provide techniques for analyzing the affinity of different I / O pattern mixtures. For mixed I / O patterns with high affinity, those I / O patterns improve storage system performance when mixed. For mixed I / O patterns with low affinity, those I / O patterns degrade storage system performance when mixed (e.g., making the patterns unsuitable for being placed together on the same storage device or the same group of storage devices). I / O pattern affinity can be used to route the I / O streams of multiple applications to improve storage system performance (e.g., route to the same disk or storage device, route to different disks or storage devices, etc.).

[0056] Different applications can run storage workloads with varying I / O characteristics. Therefore, understanding the types of storage workloads that applications or hosts utilizing the storage system are generating is crucial for analyzing and tuning storage system performance. Storage workloads can be described by various characteristics, including but not limited to I / O size, read / write ratio, random / sequential ratio, etc. Different applications (such as network file servers, network server logs, operating system (OS) paging, switch servers, workstations, media streaming, online transaction processing (OLTP) data, and OLTP logging) can have different storage workloads. Figure 3Table 300 illustrates different characteristics (IO size, read / write ratio, and random / sequential ratio) for web server logging, media streaming, and OLTP logging applications. For example, a web server logging application might have an IO size of 8 kilobytes (KB), a read / write ratio of 100% read, and a random / sequential ratio of 100% random. A media streaming application might have an IO size of 64 KB, a read / write ratio of 98% read and 2% write, and a random / sequential ratio of 100% sequential. An OLTP logging application might have an IO size ranging from 512 bytes (B) to 64 KB, a read / write ratio of 100% write, and a random / sequential ratio of 100% sequential. It should be noted that these specific applications and their associated storage workload characteristics are presented by way of example only, and in other implementations, various other types of applications may exist with different values ​​for their associated storage workload characteristics.

[0057] Figures 4A to 4E and Figures 5A to 5E The application is shown as a different group with a mixture of associated storage workloads and I / O patterns.

[0058] Figures 4A to 4E The first group (Group 1) of mixed OLTP logging workloads (e.g., with different IO sizes) is shown, which produce the same type of storage objects on different storage tiers (e.g., SAS flash storage tier, SAS storage tier, and NL-SAS storage tier). The following IO modes are loaded: P1, a pure IO mode 0.5K_100W_100S (IO size of 512B, read / write ratio of 100% write, and random / sequential ratio of 100% sequential); P2, a pure IO mode 64K_100W_100S (IO size of 64KB, read / write ratio of 100% write, and random / sequential ratio of 100% sequential); and P3, a mixed IO mode 0.5K64K_100W_100S (a mixture of IO sizes of 512B and 64KB, read / write ratio of 100% write, and random / sequential ratio of 100% sequential). Figures 4A to 4D Plots 400, 405, 410, and 415 show the corresponding curves for LUN IO size, LUN bandwidth, LUN response time, and LUN IOPS. Each of plots 400, 405, 410, and 415 shows a set of values ​​for different metrics at a given point in time (Tuesday, February 8th, at 07:45:00) for different IO modes on SAS flash, SAS, and NL-SAS storage tiers. Figure 4ETable 420 shows the performance metrics collected over a six-hour period, along with the average calculations for each performance metric for the NL-SAS storage tier. As shown, the response time in hybrid I / O mode P3 is longer than the average of the pure P1 and P2 I / O modes. IOPS in hybrid I / O mode P3 are lower than the average of the pure P1 and P2 I / O modes. The bandwidth in hybrid I / O mode P3 is also lower than the average of the pure P1 and P2 I / O modes. Therefore, the overall results indicate that for the NL-SAS storage tier, the performance of hybrid I / O mode P3 is lower than the average performance of the pure P1 and P2 I / O modes.

[0059] Figures 5A to 5E The second group (Group 2) of workloads combining OLTP logging and media streaming applications is shown. Here, the following IO modes are loaded: P1, a pure IO mode 0.5K_100W_100S (IO size 512B, read / write ratio 100% write, and random / sequential ratio 100% sequential); P2, a pure IO mode 64K_10W_100S (IO size 64KB, read / write ratio 10% write and 90% read, and random / sequential ratio 100% sequential); and P3, a mixed IO mode 0.5K64K_100W_100S (a mixture of IO sizes 512B and 64KB, a mixture of read / write ratios of 100% write and 10% write / 90% read, and random / sequential ratio 100% sequential). Figures 5A to 5D Plots 500, 505, 510, and 515 show the corresponding curves for LUN IO size, LUN bandwidth, LUN response time, and LUN IOPS. Each of plots 500, 505, 510, and 515 shows a set of values ​​for different metrics at a given point in time (Tuesday, February 8th, at 10:10:00) on SAS flash, SAS, and NL-SAS storage tiers for different IO modes. Figure 5E Table 520 shows the performance metrics collected over a six-hour period, along with the average calculations for each performance metric for the NL-SAS storage tier. As shown, the response time of hybrid I / O mode P3 is shorter than the average of pure P1 and P2 I / O modes. IOPS are greater in hybrid I / O mode P3 than the average of pure P1 and P2 I / O modes. The bandwidth of hybrid I / O mode P3 is also greater than the average of pure P1 and P2 I / O modes. Therefore, the overall results indicate that for the NL-SAS storage tier, hybrid I / O mode P3 outperforms the average performance of pure P1 and P2 I / O modes.

[0060] As can be seen from the I / O mode mixtures in Groups 1 and 2, the performance of the mixed I / O mode is not exactly equal to the average performance of the associated pure I / O mode. This means that different performance effects may exist after flushing the I / O mode mixture to the disk or storage device. Therefore, it is necessary to determine the impact of different I / O mode mixtures on storage system performance (e.g., determine the affinity of different I / O modes) and select where to offload application or storage workloads based on their I / O modes to improve storage system performance.

[0061] In conventional approaches, applications or storage workloads access the same set of storage drives or devices, and mixtures of I / O patterns associated with these workloads are flushed together onto the same set of disks or storage devices. This approach suffers from various drawbacks. As detailed above, I / O patterns can influence each other, with some “low-affinity” I / O pattern mixtures significantly degrading storage system performance, while others “high-affinity” I / O pattern mixtures significantly improving storage system performance. The illustrative implementation provides a technical solution for determining I / O pattern affinity and then accordingly routing applications or storage workloads to different storage drives or storage devices in a storage system (e.g., in a manner similar to traffic splitting on a highway). The technical solution described herein provides a method for analyzing mixed I / O pattern performance, calculating mixed I / O pattern affinity, evaluating I / O pattern mixture affinity, and determining, based on the evaluated affinity, whether I / O patterns should be used on the same set of disks or storage devices.

[0062] I / O modes exhibit different performance characteristics when used individually and when mixed with each other. The technical solution described in this paper provides a technique for measuring the affinity of I / O modes from a performance perspective, taking into account various performance factors, including response time, IOPS, and bandwidth. The affinity between I / O mode mixtures is used to determine the performance impact of mixing I / O modes. Qualitative analysis is enabled to determine whether storage system performance is improved or degraded when I / O modes are mixed. Quantitative analysis is enabled to calculate the amount by which storage system performance is improved or degraded when I / O modes are mixed. I / O flows (e.g., applications or other storage workloads) are then offloaded based on affinity to improve storage system performance.

[0063] The following symbols will be used in the following description:

[0064] N represents the number of I / O mode types;

[0065] P k Let P represent a specific I / O mode, where 1 ≤ k ≤ N+1, N ≥ 2, and the last I / O mode P is... N+1 It is a mixture of the previous N IO modes;

[0066] CR,k Indicates IO mode P k The response time performance standard, where C is used for performance evaluation. R,k It is a contrarian indicator;

[0067] NC R,k Indicates IO mode P k The normalization of response time performance standards, where

[0068] Avg_NC R,k This represents the average response time performance of N IO modes, where

[0069] C I,k Indicates IO mode P k IOPS performance standard;

[0070] NC I,k This represents the normalization of the IOPS performance standard, where

[0071] Avg_NC I,k This represents the average IOPS performance standard for N IO modes, where

[0072] C B,k Indicates IO mode P k Bandwidth performance standards;

[0073] NC B,k Indicates IO mode P k The normalization of bandwidth performance standards, among which

[0074] Avg_NC B,k This represents the average bandwidth performance of N I / O modes, where

[0075] L 混合 This indicates the location of the hybrid I / O mode across three performance dimensions, where L 混合 ={NC R,N+1 NC I,N+1 NC B,N+1};

[0076] L 平均 This represents the average of N I / O pattern locations across three performance dimensions, where L 平均 ={Avg_NC R,k Avg_NC I,k Avg_NC B,k};

[0077] Dr P represents the mixed I / O mode N+1 Location and N IO modes [P1...P N The relevant distance of the average location, where:

[0078] D r =L 混合 -L 平均

[0079] =(NC R,N+1 -Avg_NC R,k )+(NC I,N+1 -Avg_NC I,k )+(NC B,N+1 -Avg_NC B,k )

[0080] And if the value D r If the value D is less than 0, the performance of the mixed I / O mode will decrease, and if the value D is less than 0, the performance of the mixed I / O mode will decrease. r If the value is ≥0, the performance of the mixed I / O mode will be improved;

[0081] D e P represents the hybrid I / O mode across three performance dimensions (response time, IOPS, and bandwidth). N+1 Performance and Modes [P1...P N The Euclidean distance of the average performance, where:

[0082]

[0083] And D e The value is used to measure the mixed I / O mode P N+1 The amount of improvement or decrease in performance; and

[0084] θ represents the acceptable threshold for performance improvement or degradation after mixing IO modes.

[0085] Storage system I / O performance can be measured using several standards. In the following description, it is assumed that response time, IOPS, and bandwidth performance standards are used to evaluate I / O pattern performance. It is assumed that there are N types of I / O patterns, where N ≥ 2. k Used to represent a specific "pure" (e.g., non-mixed) I / O mode, where 1 ≤ k ≤ N+1. N+1 Used to represent a "hybrid" of N pure I / O modes. (C) R,k Indicates IO mode P k The response time performance standard, where C is used for performance evaluation. R,k It is a contrarian indicator. C I,k Indicates IO mode P k IOPS performance standard. C B,k Indicates IO mode Pk The bandwidth performance standards are defined. Since these performance standards have different units, the values ​​for each standard are normalized to measure the performance results of the hybrid I / O mode.

[0086] P for each IO mode k The performance standard is normalized across three dimensions. Considering that response time performance is an inverse indicator, a C0 value is obtained before normalization to facilitate performance analysis. R,k The reciprocal of . The IO mode P is determined according to the following equation. k Normalization of response time performance standards:

[0087]

[0088] The IO mode P is determined according to the following equation. k Normalization of IOPS performance standards:

[0089]

[0090] The IO mode P is determined according to the following equation. k Normalization of bandwidth performance standards:

[0091]

[0092] Then, for each of the performance criteria, calculate N types of pure I / O modes ([P1...P...). N The average performance level of the response time performance standard is determined according to the following equation:

[0093]

[0094] The average IOPS performance standard is determined using the following equation:

[0095]

[0096] The average value of the bandwidth performance standard is determined according to the following equation:

[0097]

[0098] The average performance level of N types of pure I / O modes can therefore be expressed as:

[0099]

[0100] The hybrid I / O mode P is determined according to the following equation. N+1 Performance level:

[0101]

[0102] Then, the affinity of the hybrid I / O mode is calculated. The three performance metrics (response time, IOPS, and bandwidth) can be viewed as a three-dimensional space, where L... 平均 and L 混合 These are two points in three-dimensional space. The L value for the hybrid I / O mode is determined according to the following equation. 混合 With L 平均 Relevant distance of values:

[0103] D r =L 混合 -L 平均

[0104] =(NC R,N+1 -Avg_NC R,k )+(NC I,N+1 -Avg_NC I,k )+(NC B,N+1 -Avg_NC B,k )

[0105] If the value D r If the value D is less than 0, the performance of the mixed I / O mode will decrease. r If the value D is greater than 0, then the performance of the mixed I / O mode will improve. r =0, then the performance of the hybrid I / O modes has no impact on each other. The performance L of the hybrid I / O mode across the three performance dimensions (response time, IOPS, and bandwidth) is determined according to the following equation. 混合 With average performance L 平均 Euclidean distance:

[0106]

[0107] D r The value is used to evaluate whether performance is improved or decreased after mixing I / O modes. D e The value is used to measure the amount of performance improvement or reduction after mixing IO modes.

[0108] Then, guidelines are generated based on the affinity of their IO modes to offload application or storage workloads. This can be achieved through [D] r D e Evaluate together P = [P1...P] N IO mode affinity. θ is assumed to be the acceptable threshold for performance improvement or degradation after mixing IO modes.

[0109] 1. If D e If ≤θ, then the IO mode is [P1...P N When mixed, they do not significantly affect each other's performance, and the affinity is neutral, so no special arrangement is required.

[0110] 2. If D e >θ and D r >0, then the IO mode [P1...P N When mixed, they have a significant positive performance impact on each other, and the affinity is positive. Therefore, IO modes are suitable for mixing into the same group of disks or storage devices because mixed IO performance is improved. This is in Figure 6A As shown in the figure, the IO mode hybrid [P1...P N ]601 is sent to the same group of disks or storage devices [D1, D2, D3, ... D M ]603.

[0111] 3. If D e >θ and D r <0, then the IO mode [P1...P N When mixed, IO modes have a significant negative performance impact on each other, and affinity is negative. Therefore, IO modes are not suitable for mixing within the same group of disks or storage devices. IO modes P should instead be offloaded to different groups of disks or storage devices to reduce performance degradation. This is in Figure 6B The diagram shows that the IO modes are P1601-1, P2601-2, ... P. N Different I / O modes in 601-N are routed to different groups of disks or storage devices [D] 1,1 D 1,2 ...D 1,M ]603-1、[D 2,1 D 2,2 ...D 2,M ]603-2、...[D N,1 D N,2 ...D N,M ]603-N.

[0112] This analytical approach can be used by clustered storage systems to improve I / O performance by placing applications or storage workloads with positive I / O affinity patterns into the same storage system or array within the clustered storage system, and applications or storage workloads with negative I / O affinity patterns into different storage systems or arrays within the clustered storage system. This analytical approach can also be used, alternatively, within individual storage systems or storage arrays (e.g., within each storage system or storage array that is part of a clustered storage system) to place applications or workloads in their storage devices based on whether their I / O affinity patterns are positive or negative.

[0113] Figure 7A process flow 700 is shown for determining how to arrange applications or workloads in a group of storage devices in a storage system based on the affinity of their associated I / O patterns. Process flow 700 begins at step 701, and in step 703, I / O patterns P are collected. k And its associated performance metrics (e.g., response time, IOPS, bandwidth). In step 705, the pure IO mode [P1, P2, ... P N ] and hybrid I / O mode P N+1 Performance normalization. Calculate L in step 707. 混合 and L 平均 The value is calculated in step 709, and D is calculated in step 709. r and D e Value. In step 711, regarding D e > Determine whether θ is true. If the determination result of step 711 is yes, then process flow 700 proceeds to step 713. If the determination result of step 711 is no, then process flow 700 ends in step 719. In step 713, regarding D... r The condition < 0 is determined. If the determination result of step 713 is yes, then in step 715 it is recommended to change the IO mode P. k Traffic is distributed to different groups of storage devices. If the result of step 713 is negative, then in step 717 it is recommended to switch the IO mode P... k The data is diverted to the same group of storage devices. After steps 715 and 717, process flow 700 ends in step 719.

[0114] Figure 7 The process flow 700 uses the above relative to Figure 4E and Figure 5E The example I / O mode groups described are used for operation (e.g., group 1 and group 2 I / O modes). Group 1 is a mixture of I / O modes loaded into the NL-SAS drive. k=1 It is NLSAS_05K_100W_100S, P k=2 It is NLSAS_64K_100W_100S, and P k=3 (L 混合 () is NLSAS_0.5K64K_100W_100S. Group 2 is also a hybrid of I / O modes loaded into the NL-SAS driver. P k=1 It is NLSAS_05K_100W_100S, P k=2 It is NLSAS_64K_10W_100S, and P k=3 (L 混合) is NLSAS_0.5K64K_100W10W_100S. Here, it is assumed that the acceptable threshold for performance improvement or degradation after IO mode mixing is θ = 0.2.

[0115] Figure 8A Table 800 shows the group 1 IO pattern after normalization in three performance dimensions (e.g., reciprocal of response time, IOPS, and bandwidth). As can be seen from Table 800, the value D... r <0, which gives the IO modes 0.5K_100W_100S and 64K_100W_100S a negative affinity, and the quantity D e =0.54612045, which is greater than θ. Therefore, it is recommended to offload these two types of I / O modes to different groups of storage devices (or even different storage systems) to reduce the degradation of I / O performance. Figure 8B Graph 805 shows the curve, which illustrates L 混合 and L 平均 The position and relationship of the value in the three-dimensional performance standard space.

[0116] Figure 9A Table 900 shows the group 2 IO pattern after normalization in three performance dimensions (e.g., reciprocal of response time, IOPS, and bandwidth). As can be seen from Table 900, the value D... r >0, giving positive affinity to IO modes 0.5K_100W_100S and 64K_10W_100S, and quantity D e =0.80692, which is greater than θ. Therefore, it is recommended to offload these two types of I / O modes to the same group of storage devices (or the same storage system) to improve I / O performance. Figure 9B Graph 905 shows the curve, which illustrates L 混合 and L 平均 The position and relationship of the value in the three-dimensional performance standard space.

[0117] It should be understood that the specific advantages described above and elsewhere in this document are associated with specific illustrative embodiments and do not need to exist in other embodiments. Furthermore, the specific types of information processing system features and functions shown in the figures and described above are merely exemplary, and many other arrangements may be used in other embodiments.

[0118] Now refer to Figure 10 and Figure 11 An illustrative embodiment of a processing platform for implementing storage workload allocation based at least in part on I / O pattern affinity calculation is described in more detail. Although described in the context of system 100, these platforms may also be used to implement at least part of other information processing systems in other embodiments.

[0119] Figure 10 An example processing platform including cloud infrastructure 1000 is shown. Cloud infrastructure 1000 includes components that can be used to implement... Figure 1 The information processing system 100 comprises at least a portion of the physical and virtual processing resources. The cloud infrastructure 1000 includes multiple virtual machines (VMs) and / or container groups 1002-1, 1002-2, ... 1002-L implemented using virtualization infrastructure 1004. Virtualization infrastructure 1004 runs on physical infrastructure 1005 and illustratively includes one or more hypervisors and / or operating system-level virtualization infrastructures. Operating system-level virtualization infrastructure illustratively includes the kernel control group of a Linux operating system or other types of operating systems.

[0120] The cloud infrastructure 1000 also includes multiple application groups 1010-1, 1010-2, ... 1010-L, which run on corresponding VM / container groups 1002-1, 1002-2, ... 1002-L under the control of the virtualization infrastructure 1004. A VM / container group 1002 may include a corresponding VM, one or more containers of the corresponding group, or one or more containers of the corresponding group running within a VM.

[0121] exist Figure 10 In some implementations of the scheme, the VM / container group 1002 includes corresponding VMs implemented using a virtualization infrastructure 1004 that includes at least one hypervisor. A hypervisor platform can be used to implement the hypervisor within the virtualization infrastructure 1004, wherein the hypervisor platform has an associated virtual infrastructure management system. The underlying physical machines may include one or more distributed processing platforms, which include one or more storage systems.

[0122] exist Figure 10 In other implementations of the scheme, VM / container group 1002 includes corresponding containers implemented using virtualization infrastructure 1004, which provides operating system-level virtualization capabilities, such as support for Docker containers running on bare metal hosts or VMs. The containers are implemented illustratively using the corresponding kernel control group of the operating system.

[0123] As is clear from the foregoing, one or more of the processing modules or other components of system 100 may each run on a computer, server, storage device, or other processing platform element. Such elements may be considered as examples of what is more generally referred to herein as "processing devices". Figure 10The cloud infrastructure 1000 shown may represent at least a portion of a processing platform. Another example of such a processing platform is... Figure 11 The processing platform 1100 shown.

[0124] In this embodiment, the processing platform 1100 includes a portion of the system 100 and includes a plurality of processing devices denoted as 1102-1, 1102-2, 1102-3, ... 1102-K, which communicate with each other via a network 1104.

[0125] Network 1104 may include any type of network, such as global computer networks (such as the Internet), WANs, LANs, satellite networks, telephone or cable networks, cellular networks, wireless networks (such as WiFi or WiMAX networks), or portions or combinations of these and other types of networks.

[0126] The processing device 1102-1 in the processing platform 1100 includes a processor 1110 coupled to a memory 1112.

[0127] Processor 1110 may include a microprocessor, microcontroller, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), central processing unit (CPU), graphics processing unit (GPU), tensor processing unit (TPU), video processing unit (VPU), or other types of processing circuitry, as well as portions or combinations of such circuitry elements.

[0128] Memory 1112 may include random access memory (RAM), read-only memory (ROM), flash memory, or other types of memory in any combination. Memory 1112 and other memories disclosed herein should be considered as illustrative examples of what is more generally referred to as a “processor-readable storage medium” storing executable program code of one or more software programs.

[0129] Articles of manufacture including such processor-readable storage media are considered illustrative embodiments. A given such article of manufacture may include, for example, a storage array, a storage disk, or an integrated circuit containing RAM, ROM, flash memory, or other electronic memory, or any of a variety of other types of computer program products. As used herein, the term "article of manufacture" should be understood to exclude transient propagated signals. Many other types of computer program products including processor-readable storage media may be used.

[0130] The processing device 1102-1 also includes a network interface circuit 1114, which is used to interface the processing device with the network 1104 and other system components, and may include a conventional transceiver.

[0131] It is assumed that the other processing devices 1102 of the processing platform 1100 are configured in a manner similar to that shown for processing device 1102-1 in the figures.

[0132] Similarly, the particular processing platform 1100 shown in the figures is presented by way of example only, and the system 100 may include additional or alternative processing platforms, as well as a number of different processing platforms in any combination, wherein each such platform includes one or more computers, servers, storage devices or other processing devices.

[0133] For example, other processing platforms used to implement the illustrative implementation scheme may include converged infrastructure.

[0134] Therefore, it should be understood that in other embodiments, different arrangements of additional or alternative elements may be used. At least a subset of these elements may be implemented together on a common processing platform, or each such element may be implemented on a separate processing platform.

[0135] As previously indicated, components of the information processing system disclosed herein may be implemented, at least in part, as one or more software programs stored in memory and executed by a processor of a processing device. For example, at least a portion of the functionality disclosed herein for allocating storage workloads, at least in part, based on I / O pattern affinity calculations, is illustratively implemented as software running on one or more processing devices.

[0136] It should be emphasized again that the embodiments described above are presented for illustrative purposes only. Many variations and other alternative embodiments may be used. For example, the disclosed technology is applicable to a variety of other types of information processing systems, storage systems, I / O modes, etc. Furthermore, the specific configurations of the system and apparatus elements illustratively shown in the drawings, and the associated processing operations, may be varied in other embodiments. In addition, the various assumptions made in the description of the illustrative embodiments above should be considered exemplary and not as requirements or limitations of this disclosure. Many other alternative embodiments within the scope of the appended claims will be readily apparent to those skilled in the art.

Claims

1. An apparatus, the apparatus comprising: At least one processing device, the at least one processing device including a processor coupled to a memory; The at least one processing device is configured to perform the following steps: Identify a set of storage workloads that will run on a storage system, which includes multiple storage devices; Identify an input / output pattern mixture associated with two or more storage workloads in the identified set of storage workloads, the input / output pattern mixture comprising: a first set of one or more input / output patterns that characterizes the type of input / output operation performed by a first storage workload among the two or more identified storage workloads in the identified set of storage workloads; and at least a second set of one or more input / output patterns that characterizes the type of input / output operation performed by a second storage workload among the two or more identified storage workloads in the identified set of storage workloads; The calculation and identification of an affinity metric for the input / output mode mixtures associated with two or more storage workloads in the set of storage workloads, wherein the calculated affinity metric characterizes the difference between (i) the performance metrics of the input / output mode mixtures running concurrently and (ii) the performance metrics of the first set of one or more input / output modes and the second set of one or more input / output modes running individually; and The two or more storage workloads in the identified set of storage workloads are assigned to one or more of the plurality of storage devices in the storage system, at least in part based on the calculated affinity metric.

2. The device of claim 1, wherein a given input / output pattern associated with a given storage workload among two or more of the identified set of storage workloads characterizes the following: The size of the storage objects stored by the given storage workload; The ratio of read operations to write operations for the storage objects stored by the given storage workload; as well as This relates to the ratio of sequential input / output operations to random input / output operations for storage objects stored by the given storage workload.

3. The device of claim 1, wherein calculating the affinity metric comprises: Determine the normalized values ​​of two or more different types of performance criteria for the input / output mode hybrid; Determine the normalized value of each of the input / output modes in the input / output mode mixture; as well as Determine the average of the normalized values ​​of the two or more different types of performance criteria for each of the input / output modes in the input / output mode mixture.

4. The device of claim 3, wherein the two or more different types of performance criteria include: Response time, input / output operations per second, and bandwidth.

5. The device of claim 3, wherein calculating the affinity metric further comprises calculating the distance between the following: The normalized values ​​of the two or more different types of performance criteria of the input / output mode hybrid; and The determined average of the normalized values ​​of the two or more different types of performance criteria for each of the input / output modes in the input / output mode hybrid.

6. The device of claim 5, wherein the calculated distance comprises the distance between a first point in N-dimensional space of the normalized values ​​of the two or more different types of performance standards corresponding to the input / output mode mixture and a second point in N-dimensional space of the determined average value of the normalized values ​​of the two or more different types of performance standards corresponding to each of the input / output modes in the input / output mode mixture, wherein N is the number of the two or more different types of performance standards.

7. The device of claim 5, wherein the calculated distance includes a Euclidean distance metric.

8. The device of claim 1, wherein the calculated affinity metric comprises: A first component characterizes whether the input / output mode hybrid provides performance improvement or performance degradation. as well as The second component characterizes the amount by which the performance is improved or reduced.

9. The apparatus of claim 8, wherein allocating two or more of the identified storage workloads from the set of storage workloads to the plurality of storage devices of the storage system based at least in part on the calculated affinity metric comprises: Whether to modify the existing allocation of two or more of the identified storage workloads in the set of storage workloads is determined at least in part based on whether the second component of the calculated affinity metric exceeds a specified threshold.

10. The apparatus of claim 9, wherein allocating two or more of the identified storage workloads from the set of identified storage workloads to the plurality of storage devices of the storage system based at least in part on the calculated affinity metric further comprises: In response to determining that the second component of the calculated affinity metric exceeds the specified threshold and the first component of the calculated affinity metric indicates that the input / output mode hybrid provides the performance improvement, the existing allocation of the two or more storage workloads in the identified set of storage workloads is modified to allocate the two or more storage workloads in the identified set of storage workloads to the same subset of the plurality of storage devices of the storage system.

11. The apparatus of claim 9, wherein allocating two or more of the identified storage workloads from the set of identified storage workloads to the plurality of storage devices of the storage system based at least in part on the calculated affinity metric further comprises: In response to determining that the second component of the calculated affinity metric exceeds the specified threshold and the first component of the calculated affinity metric indicates that the input / output mode hybrid provides the performance degradation, the existing allocation of the two or more storage workloads in the identified set of storage workloads is modified to allocate the two or more storage workloads in the identified set of storage workloads to two or more different subsets of the plurality of storage devices of the storage system.

12. The apparatus of claim 9, wherein allocating two or more of the identified storage workloads from the set of storage workloads to the plurality of storage devices of the storage system based at least in part on the calculated affinity metric comprises: In response to determining that the second component of the calculated affinity metric does not exceed the specified threshold, the existing allocation of the two or more storage workloads in the identified set of storage workloads is maintained.

13. The device of claim 1, wherein the plurality of storage devices of the storage system are arranged in two or more storage tiers, and wherein allocating two or more storage workloads from the identified set of storage workloads to the plurality of storage devices of the storage system based at least in part on the calculated affinity metric comprises: Choose whether to assign two or more of the identified storage workloads from the set of storage workloads to the same or different storage tiers in the two or more storage tiers.

14. The apparatus of claim 1, wherein the storage system comprises a clustered storage system including two or more storage arrays, and wherein allocating two or more of the identified storage workloads from the set of storage workloads to the plurality of storage devices of the storage system based at least in part on the calculated affinity metric comprises: Choose whether to assign two or more of the identified storage workloads from the group of storage workloads to the same or different storage arrays in the two or more storage arrays of the clustered storage system.

15. A computer program product comprising a non-transitory processor-readable storage medium storing program code of one or more software programs, wherein the program code, when executed by at least one processing device, causes the at least one processing device to perform the following steps: Identify a set of storage workloads that will run on a storage system, which includes multiple storage devices; Identify an input / output pattern mixture associated with two or more storage workloads in the identified set of storage workloads, the input / output pattern mixture comprising: a first set of one or more input / output patterns that characterizes the type of input / output operation performed by a first storage workload among the two or more identified storage workloads in the identified set of storage workloads; and at least a second set of one or more input / output patterns that characterizes the type of input / output operation performed by a second storage workload among the two or more identified storage workloads in the identified set of storage workloads; The calculation and identification of an affinity metric for the input / output mode mixtures associated with two or more storage workloads in the set of storage workloads, wherein the calculated affinity metric characterizes the difference between (i) the performance metrics of the input / output mode mixtures running concurrently and (ii) the performance metrics of the first set of one or more input / output modes and the second set of one or more input / output modes running individually; and The two or more storage workloads in the identified set of storage workloads are assigned to one or more of the plurality of storage devices in the storage system, at least in part based on the calculated affinity metric.

16. The computer program product of claim 15, wherein calculating the affinity metric comprises: Determine the normalized values ​​of two or more different types of performance criteria for the input / output mode hybrid; Determine the normalized value of each of the input / output modes in the input / output mode mixture; as well as Determine the average of the normalized values ​​of the two or more different types of performance criteria for each of the input / output modes in the input / output mode mixture.

17. The computer program product of claim 16, wherein calculating the affinity metric further comprises calculating the distance between: The normalized values ​​of the two or more different types of performance criteria of the input / output mode hybrid; and The determined average of the normalized values ​​of the two or more different types of performance criteria for each of the input / output modes in the input / output mode hybrid.

18. A method, the method comprising: Identify a set of storage workloads that will run on a storage system, which includes multiple storage devices; Identify an input / output pattern mixture associated with two or more storage workloads in the identified set of storage workloads, the input / output pattern mixture comprising: a first set of one or more input / output patterns that characterizes the type of input / output operation performed by a first storage workload among the two or more identified storage workloads in the identified set of storage workloads; and at least a second set of one or more input / output patterns that characterizes the type of input / output operation performed by a second storage workload among the two or more identified storage workloads in the identified set of storage workloads; The calculation and identification of an affinity metric for the input / output mode mixtures associated with two or more storage workloads in the set of storage workloads, wherein the calculated affinity metric characterizes the difference between (i) the performance metrics of the input / output mode mixtures running concurrently and (ii) the performance metrics of the first set of one or more input / output modes and the second set of one or more input / output modes running individually; and At least in part based on the calculated affinity metric, two or more of the identified set of storage workloads are assigned to one or more of the plurality of storage devices in the storage system; The method is performed by at least one processing device, which includes a processor coupled to a memory.

19. The method of claim 18, wherein calculating the affinity measure comprises: Determine the normalized values ​​of two or more different types of performance criteria for the input / output mode hybrid; Determine the normalized value of each of the input / output modes in the input / output mode mixture; as well as Determine the average of the normalized values ​​of the two or more different types of performance criteria for each of the input / output modes in the input / output mode mixture.

20. The method of claim 19, wherein calculating the affinity metric further comprises calculating the distance between: The normalized values ​​of the two or more different types of performance criteria of the input / output mode hybrid; and The determined average of the normalized values ​​of the two or more different types of performance criteria for each of the input / output modes in the input / output mode hybrid.