Data movement based on write penalty of input / output pattern associated with storage object

CN117743000BActive Publication Date: 2026-11-03DELL PROD LP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211109224.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-09-13
Publication Date
2026-11-03
Estimated Expiration
2042-09-13

Smart Images

  • Figure CN117743000B_ABST
    Figure CN117743000B_ABST
Patent Text Reader

Abstract

An apparatus includes a processing device configured to determine, based on monitoring input / output (IO) operations, an IO activity level of a given storage object and a given IO pattern for the given storage object over a specified time period, the given storage object stored on a first storage tier of a storage system. The processing device is further configured to determine a write penalty associated with writing a storage object having the given IO pattern to a second storage tier of the storage system. The processing device is further configured to determine, based on the IO activity level of the given storage object and the determined write penalty, whether to move the given storage object from the first storage tier to the second storage tier and whether to move the given storage object to the second storage tier in response to a positive move determination.
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 (IO) operation requests for delivery to the storage system. The storage system's storage controller serves these IO operations. In some information processing systems, multiple storage systems can be used to form a storage cluster. Summary of the Invention

[0003] The illustrative embodiments of this disclosure provide techniques for moving data in a storage system based at least in part on write penalties based on input / output patterns associated with storage objects.

[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: determining, at least in part, an input / output activity level and a given input / output mode for a given storage object within a specified time period based on monitoring input / output operations of the given storage object within the specified time period, the given storage object being stored using a first type of storage resource associated with a first storage layer of two or more storage layers in a storage system. The at least one processing means is further configured to perform the following step: determining a write penalty for the given input / output mode, the write penalty for the given input / output mode being associated with writing a storage object having the given input / output mode to at least a second type of storage resource associated with a second storage layer of the two or more storage layers in the storage system. The at least one processing device is further configured to perform the step of: determining, at least in part, whether to move the given storage object from storage using a first type of storage resource associated with a first storage layer of the two or more storage layers in the storage system to storage using a second type of storage resource associated with a second storage layer of the two or more storage layers in the storage system, based on the input / output activity level of the given storage object and the write penalty of the given input / output mode. The at least one processing device is further configured to perform the step of: moving the given storage object to the second type of storage resource associated with the second storage layer of the two or more storage layers in the storage system in response to a positive move determination.

[0005] These and other illustrative embodiments include, but are not limited to, methods, devices, networks, systems, 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 moving data in a storage system based at least in part on write penalties of input / output patterns associated with storage objects.

[0007] Figure 2 This is a flowchart of an exemplary process in an illustrative implementation for moving data in a storage system based at least in part on write penalties based on input / output patterns associated with storage objects.

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

[0009] Figures 4A to 4H The diagram shows graphs illustrating different performance metrics for input / output patterns at different storage tiers in the illustrative implementation.

[0010] Figures 5A to 5H The diagram shows graphs illustrating different performance metrics for different input / output modes on different storage tiers in an illustrative implementation.

[0011] Figures 6A to 6H The diagram shows graphs illustrating different performance metrics for different input / output modes on different storage tiers in an illustrative implementation.

[0012] Figures 7A to 7H The diagram shows graphs illustrating different performance metrics for different input / output modes on different storage tiers in an illustrative implementation.

[0013] Figures 8A to 8H The diagram shows graphs illustrating different performance metrics for different input / output modes on different storage tiers in an illustrative implementation.

[0014] Figures 9A to 9H The diagram shows graphs illustrating different performance metrics for another input / output mode on different storage tiers in an illustrative implementation.

[0015] Figure 10 A table showing different performance metrics for different input / output modes on different storage tiers in the illustrative implementation is provided.

[0016] Figure 11 The process flow for generating relocation guidelines for storage objects based on input / output activities and write penalty factors is shown in the illustrative implementation.

[0017] Figure 12 A table showing storage objects with different input / output activity levels and input / output modes on different storage tiers is illustrated in the illustrative embodiment.

[0018] Figure 13 A table showing the input / output mode write penalty analysis for different input / output modes on different storage layers in the illustrative implementation is provided.

[0019] Figure 14 A table is shown in the illustrative implementation of recommended methods for relocating storage objects with different input / output modes and different input / output activity levels across different storage tiers.

[0020] Figure 15A and Figure 15B The illustration shows a set of storage objects on different storage layers of the storage system before and after relocation without considering and with regard to input / output mode write penalties, in an illustrative implementation.

[0021] Figure 16 and Figure 17 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

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

[0023] Figure 1 An information processing system 100 is illustrated, configured according to an illustrative embodiment to provide functionality for data movement based at least in part on write penalties of input / output patterns associated with storage objects. 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).

[0024] Storage array 106-1 (e.g.) Figure 1 (Shown) Storage devices 108 include storage devices 108, each storing data used by one or more applications running on host device 102. 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 for 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.” In embodiments of the invention, such a storage system 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.

[0025] 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. Host device 102 in this arrangement 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.

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

[0027] Compute and / or storage services can be provided 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, but it should be understood that numerous other cloud infrastructure deployments can be used. Furthermore, illustrative implementations can be implemented outside the context of cloud infrastructure, as in the case of stand-alone compute and storage systems implemented within a given enterprise.

[0028] 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. In some embodiments, such commands more specifically include Small Computer System Interface (SCSI) commands, but in other embodiments, other types of commands may be used. 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 to mean input and / or output. Therefore, an I / O operation involves at least one of input and output.

[0029] Furthermore, the term "storage device" as used herein is intended to be interpreted broadly to encompass, for example, logical storage devices such as LUNs or other logical storage volumes. A logical storage device in storage array 106-1 can be defined as a distinct portion comprising one or more physical storage devices. Therefore, storage device 108 can be considered as comprising a corresponding LUN or other logical storage volume.

[0030] The storage device 108 of the 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 the 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 combination with or instead of an SSD or other type of NVM device. Therefore, numerous other types of electronic or magnetic media can be used to implement at least a subset of the storage device 108.

[0031] exist Figure 1In 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 object relocation for storage devices 108 across storage array 106-1 (e.g., between different storage devices or portions thereof, where in some cases, 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 type of intelligent storage object relocation function is provided through the storage object activity determination module 112, the storage object IO mode determination module 114, the IO mode write penalty determination module 116, and the storage object relocation module 118.

[0032] Storage object activity determination module 112 is configured to determine the IO activity level of a given storage object within a specified time period, at least in part, based on monitoring the IO of the given storage object within that specified time period. The given storage object utilizes a first type of storage resource associated with a first storage layer in two or more storage layers of storage cluster 105. Storage object IO mode determination module 114 is configured to determine a given IO mode associated with the given storage object, at least in part, based on monitored IO operations of the given storage object within the specified time period. IO mode write penalty determination module 116 is configured to determine a write penalty for the given IO mode, the write penalty of which is associated with writing a storage object having the given IO mode to at least a second type of storage resource associated with a second storage layer in two or more storage layers of storage cluster 105. The storage object relocation module 118 is configured to determine, at least in part, whether to move a given storage object from storage using a first type of storage resource associated with a first storage tier of two or more storage tiers in storage cluster 105 to storage using a second type of storage resource associated with a second storage tier of two or more storage tiers in storage cluster 105, based on the IO activity level of the given storage object and the write penalty of the given IO mode. The storage object relocation module 118 is also configured to move the given storage object to the second type of storage resource associated with the second storage tier of two or more storage tiers in storage cluster 105 in response to a positive move determination.

[0033] Despite Figure 1 In the implementation, the storage object activity determination module 112, the storage object IO mode determination module 114, the IO mode write penalty determination module 116, and the storage object relocation module 118 are shown to be implemented inside the storage array 106-1 and outside the storage controller 110. However, in other implementations, one or both of the storage object activity determination module 112, the storage object IO mode determination module 114, the IO mode write penalty determination module 116, and the storage object relocation module 118 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 on a cloud computing platform or other types of information technology (IT) infrastructure). Furthermore, although not in Figure 1 As shown, other storage arrays in storage arrays 106-2 to 106-M may implement corresponding instances of one or more of the storage object activity determination module 112, storage object IO mode determination module 114, IO mode write penalty determination module 116, and storage object relocation module 118.

[0034] At least a portion of the functions of the storage object activity determination module 112, the storage object IO mode determination module 114, the IO mode write penalty determination module 116, and the storage object relocation module 118 may be implemented in the form of software stored in memory and executed by a processor.

[0035] As described above, in some embodiments, it is assumed that storage array 106 is part of storage cluster 105. Storage cluster 105 may provide or implement multiple different storage tiers of a tiered storage system. By way of example, a given tiered storage system may include a speed tier or performance tier implemented using flash storage devices or other types of SSDs, and a capability tier implemented using HDDs, wherein one or more of such tiers may be server-based. In other embodiments, a variety of other types of storage devices and tiered storage systems may be used, as will be apparent to those skilled in the art. The specific storage device used in a given storage tier may vary depending on the specific needs 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 cover, 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.

[0036] It should be understood that a multi-tiered storage system may include more than two storage tiers, such as one or more "performance" tiers and one or more "capability" tiers, wherein the performance tiers illustratively provide increased IO performance characteristics relative to the capability tiers, and the capability tiers are illustratively implemented using storage at a relatively low cost compared to the performance tiers. There may also be multiple performance tiers or multiple capability tiers, each providing different service or performance levels as needed.

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

[0038] The host device 102 and the storage array 106 may be implemented on respective different processing platforms, but numerous 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 may be implemented on the same processing platform. Thus, one or more of the storage arrays 106 may be implemented, at least partially, within at least one processing platform that implements at least a subset of the host devices 102.

[0039] 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 wired networks, cellular networks, wireless networks (such as WiFi or WiMAX networks), or various portions or combinations of these and other types of networks. Thus, in some embodiments, network 104 includes a combination of multiple different types of networks, each of which includes processing means configured to communicate using Internet Protocol (IP) or other relevant communication protocols.

[0040] 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 components of these devices, high-speed interconnect (PCIe) cards, and networking protocols such as InfiniBand, GigabitEthernet, or Fibre Channel. In a given implementation, numerous alternative networking arrangements are possible, as those skilled in the art will understand.

[0041] 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 Hyper-Vehicle (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 over Fabric (also known as NVMeoF) and NVMe over Transmission Control Protocol (TCP) (also known as NVMe / TCP).

[0042] In embodiments of the present invention, it is assumed that the storage 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. It is further assumed that the persistent memory is separate from the storage device 108 of the storage array 106-1, but 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, the storage device 108 may include a flash-based storage device (as in embodiments involving all-flash storage arrays), or may be implemented wholly or partially using other types of non-volatile memory.

[0043] As mentioned above, communication between host device 102 and storage array 106 can utilize PCIe connections 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, numerous other interfaces and associated communication protocols may be used.

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

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

[0046] Alternative storage types that can be used to implement a 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 several other storage types can also be used to implement a given storage system.

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

[0048] 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 in this document can be configured using a variety of other arrangements, including (by way of example) active-passive arrangements, active-active asymmetric logical unit access (ALUA) arrangements, and other types of ALUA arrangements.

[0049] 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 devices, each including a processor coupled to memory. A given such processing device 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 via one or more networks.

[0050] As used herein, the term "processing platform" is intended to be interpreted broadly to encompass (by way of example, but not limited to) a collection 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, wherein some host devices of host device 102 reside in a first geographic location within a data center, while other host devices of host device 102 reside in one or more other geographic locations potentially remote from the first geographic location within one or more other data centers. 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. Thus, in some implementations of system 100, host device 102 and storage system 106 may reside in different data centers.

[0051] Numerous 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.

[0052] The following will combine Figure 16 and Figure 17 Further examples of the processing platform used to implement part of system 100 in the illustrative embodiment are described in more detail.

[0053] It should be understood that Figure 1 The specific set of elements shown for moving data based at least in part on write penalties associated with the I / O pattern of the storage object is presented by way of illustrative example only, and in other embodiments, additional or alternative elements may be used. Therefore, another embodiment may include different arrangements of additional or alternative systems, devices and other network entities, as well as modules and other components.

[0054] 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 restrictive in any way.

[0055] Now refer to Figure 2 The flowchart describes in more detail an exemplary process for moving data in a storage system based at least in part on write penalties of I / O patterns associated with storage objects. It should be understood that this particular process is merely an example, and in other embodiments, additional or alternative processes for moving data in a storage system based at least in part on write penalties of I / O patterns associated with storage objects may be used.

[0056] In this embodiment, the process includes steps 200 to 208. These steps are assumed to be performed by the storage object activity determination module 112, the storage object IO mode determination module 114, the IO mode write penalty determination module 116, and the storage object relocation module 118. The process begins with step 200: determining the IO activity level of a given storage object within a specified time period based at least in part on monitoring IO operations of that storage object over a specified time period, the given storage object utilizing a first type of storage resources associated with a first storage layer in two or more storage layers of the storage system. The IO activity level of the given storage object may be determined at least in part based on the count of monitored IO operations of the given storage object over the specified time period. The storage system may include a clustered storage system comprising two or more storage arrays, wherein a first storage array in the two or more storage arrays provides at least a portion of the first type of storage resources associated with a first storage layer in two or more storage layers of the storage system, and a second storage array in the two or more storage arrays provides at least a portion of the second type of storage resources associated with a second storage layer in two or more storage layers of the storage system.

[0057] In step 202, a given I / O pattern associated with a given storage object is determined at least in part based on the monitored I / O operations on the given storage object within a specified time period. The determination of the given I / O pattern associated with the given storage object is based at least in part on: the size of the given storage object, the ratio of read operations to write operations on the given storage object within the specified time period, and the ratio of sequential I / O operations to random I / O operations involving the given storage object within the specified time period.

[0058] In step 204, a write penalty for a given IO mode is determined. The write penalty for a given IO mode is associated with writing storage objects having the given IO mode to at least a second type of resource associated with a second storage layer in two or more storage tiers of the storage system. Determining the write penalty for a given IO mode may include evaluating the write performance of a set of storage objects having categorized IO modes written to a second type of storage resource associated with a second storage layer in two or more storage tiers of the storage system.

[0059] In step 206, a determination is made as to whether a given storage object is moved from storage using a first type of storage resource associated with a first storage layer in two or more storage layers of the storage system to storage using a second type of storage resource associated with a second storage layer in two or more storage layers of the storage system. Step 206 determines this based at least in part on the write penalty of the given storage object's I / O activity level and the given I / O mode. In step 208, in response to the determination in step 206, the given storage object is moved to a second type of storage resource associated with a second storage layer in two or more storage layers of the storage system.

[0060] In some implementations, step 204 further includes determining a write penalty associated with writing a storage object having a given I / O pattern to a third storage layer among two or more storage layers in the storage system, and step 206 determines whether to move the given storage object to be stored using a second type of storage resource associated with the second and third storage layers among two or more storage layers in the storage system or a third type of storage resource associated with the third storage layer among two or more storage layers in the storage system, based at least in part on the write penalty associated with writing a storage object having a given I / O pattern to a second and third type of storage resource associated with the second and third storage layers among two or more storage layers in the storage system.

[0061] In step 206, it is determined whether to move a given storage object from storage using a first type of storage resources associated with a first storage layer in two or more storage layers of the storage system to storage using a second type of storage resources associated with a second storage layer in two or more storage layers of the storage system. This is done in response to determining a performance improvement offset derived from moving a given storage object from storage using a first type of storage resources associated with a first storage layer in two or more storage layers of the storage system, based on a specified threshold amount of write penalty.

[0062] In some implementations, a first storage layer in a storage system provides a first performance level that is less than the second performance level provided by a second storage layer in a storage system, and step 206 determines that in response to determining the IO activity level of a given storage object, a specified threshold performance improvement is provided, such as a specified threshold performance improvement that offsets at least a specified threshold amount of the determined write penalty.

[0063] In other embodiments, a first storage layer in two or more storage layers of the storage system provides a first performance level greater than a second performance level provided by a second storage layer in two or more storage layers of the storage system, and step 206 determines that a specified threshold performance saving of the first storage layer in two or more storage layers of the storage system is provided in response to determining the IO activity level of a given storage object, such as a specified threshold performance saving of at least a specified threshold amount of write penalty determined by the offset of the first storage layer in two or more storage layers of the storage system.

[0064] In data centers or other types of IT infrastructure, including cloud computing platforms, there may be many different storage arrays, each with its own characteristics and advantages, used for different types of workloads. For example, a data center associated with a company or other enterprise can provide comprehensive and high-quality services to customers or other users by leveraging the different characteristics of such storage arrays (e.g., the different characteristics of the storage devices within each storage array). In some cases, storage arrays are part of a clustered storage system (also referred to herein as a storage cluster, storage array cluster, or array cluster).

[0065] At the array cluster level, the "hotness" of different data can constantly change as business needs evolve. Hotness, or IO temperature, can characterize data access frequency (e.g., the number of IO requests within a specified threshold at the current time) or other types of IO metrics. Due to such hotness variations, data currently residing on high-performance storage arrays may become "cold," while data residing on low-performance storage arrays may become "hot." To optimize performance, self-service data movement (e.g., based on data access frequency) is necessary between different arrays within the array cluster. Such self-service data movement can include breaking down barriers between storage arrays within the array cluster, moving hot data to high-performance storage arrays, archiving cold data to lower-performance storage arrays, etc. This advantageously provides various benefits to customers or other end users (e.g., improved performance, reduced costs, improved storage utilization, and faster customer business processing within the array cluster).

[0066] For some storage arrays and array clusters, data movement capabilities can be used to extend storage tiers between different storage arrays or platforms and cloud storage platforms, move data between heterogeneous storage resources, and fully utilize storage resources at the storage cluster level and, where possible, across data centers. In some storage arrays, this data movement functionality may include Fully Automated Storage Tiling (FAST) technology and its extensions (known as FAST Sideways or FAST.X). For example, the Dell EMCV VMAX storage array enables FAST hints, which provide users with a way to accelerate mission-critical processes based on business priorities and other service level objectives (SLOs). FAST hints are application-aware and leverage storage and performance analyzers to monitor the read and write status of different workloads to send hints to the storage array that data may be accessed within a given time period. IT administrators can create FAST hint profiles that are prioritized and scheduled for on / off, ongoing or recurring frequency (e.g., daily, weekly, monthly, etc.), and expected execution duration. Such hints can be provided through the analysis tab of the storage array's analysis software (e.g., the Database Storage Analyzer interface for VMAX arrays in Unisphere).

[0067] Based on the provided prompts, the performance analyzer can monitor increased workload demands and then take action. For example, FAST can receive prompts from the data storage analyzer via the prompt manager application programming interface (API) and proactively adjust storage device hybrids (e.g., a hybrid of flash and serial-attached SCSI (SAS) storage devices) according to a priority set. The storage device hybrids can be automatically adjusted and withstand maintaining SLO integrity without overriding previous SLOs. FAST or other data movement functions provide the ability to deliver cutting-edge application-aware functionality to customers or end users who require optimal response times for mission-critical applications during specific business periods.

[0068] Beyond optimizations enabled by FAST hints, data services can be extended beyond storage arrays themselves and across data centers via FAST.X. FAST.X advantageously evolves and extends storage tiering and service level management to other storage platforms and cloud storage. FAST.X enables data movement across storage technologies offered by various block services, including Dell EMC XtremIO, VNX, CloudArray, and other storage types. FAST.X simplifies management and operations and consolidates heterogeneous storage under its control. FAST.X also further extends SLO management to external storage arrays. Enabling SLO management across external storage arrays allows for easy integration of different devices based on varying workloads and requirements. FAST.X simplifies management at scale, providing workload optimization across storage arrays with the same simplicity as internal SLO configuration. FAST's advanced automation optimizes client or other end-user workloads to automatically apply the required amount of resources, and FAST.X extends this capability to external storage arrays based on uniformly defined performance and availability standards. As mentioned above, FAST.X also integrates with cloud storage to move less active workloads to more cost-effective cloud storage.

[0069] As discussed above, FAST.X technology can be used to extend storage tiers across different storage platforms and the cloud, enabling the movement of data between heterogeneous storage systems to make fuller use of storage resources at the storage cluster level and even the data center level. FAST.X technology can be used to move "hot" data (e.g., data with high access frequency) to high-performance storage arrays, while archiving "cold" data (e.g., data with low access frequency) to cost-effective, lower-performance storage arrays. This provides significant benefits to end users, improving storage system utilization and accelerating end-user processing within the storage cluster.

[0070] FAST (FAST-VP) for virtual pools provides a relocation algorithm for slices (e.g., data extension range) or other storage objects based on I / O frequency, moving "hotter" slices to higher-performance storage tiers and "colder" slices to lower-performance storage tiers. However, write penalties for each I / O mode can differ across storage tiers after data is flushed to disk. Write penalties can stem from various factors, such as the type of redundant RAID array (RAID) group for the backend disks, disk block size, etc. If the write penalties on the backend disks are too heavy to keep the disk load within a reasonable range, data flushing from slice or other storage object relocation can lead to performance degradation in the storage system.

[0071] The illustrative implementation provides a technical solution to improve the efficiency of FAST-VP and other types of storage object relocation mechanisms (e.g., for data movement within and between storage arrays) by taking into account both the I / O access frequency of storage objects and back-end write penalties. Therefore, the technical solution described herein achieves slice or other storage object relocation for storage tiers with smaller write penalties for the I / O patterns exhibited by slices or other storage objects. Advantageously, the use of the technical solution described herein reduces the I / O operations per second (IOPS) and data traffic of the back-end disks of the storage system, thereby improving storage system performance.

[0072] For storage systems, write penalty is inherent in RAID data protection technology, which means that each application write request requires multiple disk I / O requests. RAID data protection technologies can vary from minimal (e.g., mirrored arrays) to larger ones (e.g., RAID level 5, RAID level 6, etc.).

[0073] Relocation decision algorithms can make relocation decisions or recommendations based on the I / O activity of storage objects. For example, the FAST-VP method can base the relocation decision algorithm on the I / O activity level of each slice (e.g., the granularity of FAST-VP relocation). In FAST-VP, based on the relative activity level of a data slice, a data slice can be considered "hotter" (e.g., more active) or "colder" (e.g., less active) than another data slice. Activity levels can be determined in various ways. One approach is to count the number of I / O operations on a slice or other storage object (e.g., read and write limits for each slice or other storage object). In some implementations, FAST-VP classifies storage devices into three categories or storage tiers: an extreme performance tier (e.g., consisting of flash drives, SSDs, etc.), a performance tier (e.g., consisting of Serial Attached SCSI (SAS) drives), and a capability tier (e.g., consisting of Near-Line SAS (NL-SAS) drives).

[0074] FAST-VP can reduce the total cost of ownership (TCO) of storage systems by maintaining performance while efficiently utilizing storage pool configurations. Instead of creating pools with only one type of drive, FAST-VP helps reduce the cost of storage system configuration by mixing different types of drives (e.g., flash, SAS, and NL-SAS), reducing the drive count and utilizing drives with greater capacity. Data requiring the highest performance level can be tiered to flash or extreme performance storage tiers, while less active data can be tiered to SAS or NL-SAS drives on performance or energy storage tiers.

[0075] Different applications can tolerate storage workloads with varying I / O characteristics. Therefore, understanding the types of storage workloads being generated by applications or hosts utilizing the storage system is crucial for analyzing and tuning its 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 web file servers, web server logs, operating system (OS) paging, switch servers, workbenches, media streaming, online transaction processing (OLTP) data, and OLTP logging) can have different storage workloads. Figure 3 Table 300 illustrates the different characteristics (IO size, read / write ratio, and random / sequential ratio) of such applications. For example, a web server logging application may have an IO size of 8 kilobytes (KB), a read / write ratio of 100% write, and a random / sequential ratio of 100% random. A media streaming application may 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 may 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% random. 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.

[0076] To determine the write penalty outcome, the number of different I / O modes was analyzed, including...

[0077] IO mode P1—05K_100W_0S (0.5KB IO size, 100% write ratio and 0% sequential IO ratio);

[0078] IO mode P2—05K_100W_100S (0.5KB IO size, 100% write ratio and 100% sequential IO ratio);

[0079] IO mode P3—4K_100W_0S (4KB IO size, 100% write ratio and 0% sequential IO ratio);

[0080] IO mode P4—4K_100W_100S (4KB IO size, 100% write ratio and 100% sequential IO ratio);

[0081] IO mode P5—64K_100W_0S (64KB IO size, 100% write ratio and 0% sequential IO ratio); and

[0082] IO mode P6—64K_100W_100S (64KB IO size, 100% write ratio and 100% sequential IO ratio).

[0083] Write penalties can be determined by analyzing a storage system with three storage tiers (e.g., an extreme performance flash / SSD storage tier, a performance SAS storage tier, and a capability NL-SAS storage tier). In this storage system, the block size of SSD disks is 512B, while the block size of SAS and NL-SAS disks is 4KB. Mapped RAID groups (e.g., with RAID level 6) are created on each storage tier. Each RAID group consists of eight disks from the storage tier, and storage objects are created on each RAID group using the six I / O modes described above. Figures 4A to 9H The results of this storage object creation are shown for six different IO modes.

[0084] Figure 4A , Figure 5A , Figure 6A , Figure 7A , Figure 8A and Figure 9A The graphs showing LUN IOPS over time for IO modes P1-P6 on each of the extreme performance, performance, and capability storage layers are 400, 500, 600, 700, 800, and 900, respectively. Figure 4B , Figure 5B , Figure 6B , Figure 7B , Figure 8B and Figure 9B The graphs 405, 505, 605, 705, 805, and 905 show the LUN bandwidth over time for IO modes P1-P6 on each of the extreme performance, performance, and capability storage layers. Figure 4C , Figure 5C , Figure 6C , Figure 7C , Figure 8C and Figure 9C The graphs 410, 510, 610, 710, 810, and 910 show the corresponding IOPS of the SSD drives over time for IO modes P1-P6 on the extreme performance storage layer. Figure 4D , Figure 5D , Figure 6D , Figure 7D , Figure 8D and Figure 9D The corresponding curves 415, 515, 615, 715, 815 and 915 for drive bandwidth over time in IO modes P1-P6 are shown for SSD drives on extreme performance storage tiers. Figure 4E , Figure 5E , Figure 6E, Figure 7E , Figure 8E and Figure 9E The graphs 420, 520, 620, 720, 820 and 920 for the SAS driver in IO modes P1-P6 over time are shown for the performance storage layer. Figure 4F , Figure 5F , Figure 6F , Figure 7F , Figure 8F and Figure 9F The corresponding curves of driver bandwidth over time for IO modes P1-P6 are shown for SAS drivers on the performance storage layer, namely 425, 525, 625, 725, 825 and 925. Figure 4G , Figure 5G , Figure 6G , Figure 7G , Figure 8G and Figure 9G The corresponding IOPS curves of the driver over time for IO modes P1-P6 are shown for NL-SAS drivers on the capability storage layer, respectively: 430, 530, 630, 730, 830 and 930. Figure 4H , Figure 5H , Figure 6H , Figure 7H , Figure 8H and Figure 9H The corresponding curves of driver bandwidth over time for IO modes P1-P6 are shown for NL-SAS drivers on the capability storage layer, respectively: 435, 535, 635, 735, 835 and 935.

[0085] As from Figures 4A to 9H It can be seen that different IO modes P1-P6 have different write penalties for different types of back-end drivers. Figure 10 A summary is shown. Figures 4A to 9H Table 1000 shows the graph. Table 1000 includes columns for the following: IO mode, storage tier, storage object IOPS, object bandwidth, disk IOPS, disk bandwidth, IOPS penalty, and bandwidth penalty. Object IOPS and object bandwidth metrics are the storage object IOPS and bandwidth, while disk IOPS and disk bandwidth metrics are the sum of the IOPS and bandwidth of all disks in each of the storage tiers. For IO requests from the application tier that are flushed to disk, the IOPS penalty and bandwidth penalty are calculated according to the following equation:

[0086]

[0087]

[0088] As shown in Table 1000, from the perspective of IOPS and bandwidth, different IO modes P1-P6 have different write penalties on each storage tier. Random and small IO requests have heavier write penalties, especially for NL-SAS on the capacity storage tier. Sequential and large IO requests have lighter write penalties on each storage tier.

[0089] The FAST-VP relocation method, which is based solely on data I / O activity, does not consider the impact of write penalties associated with data I / O patterns on the storage system. For example, from... Figures 4A to 10 It can be seen that different IO patterns result in different back-end write penalties on different storage tiers. For those IO patterns that have significant write penalties on a given storage tier, relocation of data exhibiting such IO patterns to a given storage tier will have large back-end write penalties that degrade the overall storage system IO performance. Some IO patterns have similar write penalties on different storage tiers, while others have different write penalties on different storage tiers (e.g., large differences in some cases). The technical solution described in this paper implements a FAST-VP relocation mechanism that considers both IO activity and back-end IO write penalties to more rationally utilize the storage disk.

[0090] The technical solution described in this paper implements the FAST-VP relocation algorithm, which considers both IO access frequency and IO write penalties. In some implementations, backend IOPS and bandwidth penalties are combined, along with the IO access frequency of slices or other storage objects, to guide the FAST-VP relocation algorithm to relocate data to the appropriate storage tier and improve overall storage system performance. For storage objects exhibiting IO patterns with small (e.g., less than a specified threshold) write penalty differences between adjacent storage tiers, the FAST-VP relocation algorithm may consider only IO activity. For storage objects exhibiting IO patterns with large (e.g., greater than a specified threshold) write penalty differences between adjacent storage tiers, the FAST-VP relocation algorithm may consider both IO activity and write penalties. Storage objects exhibiting IO patterns with large or significant write penalty differences can be relocated to a storage tier with relatively small write penalties, while also considering IO activity levels to avoid the impact of write penalties on storage system IO performance (e.g., this would be encountered when moving storage objects to another storage tier).

[0091] In some implementations, FAST-VP or other types of storage object relocation algorithms are configured to consider the IO frequency of slices or other storage objects and the impact of IO mode write penalties on the backend disk. If a target storage layer i for a given slice or other storage object is appropriate based on its IO frequency, but storage layer i has write penalties for the IO mode exhibited by the given slice or other storage object, then the given slice or other storage object should be relocated to another storage layer with relatively low write penalties for the IO mode exhibited by the given slice or other storage object. The technical solution described herein generates a comprehensive score for slices or other storage objects, where the comprehensive score combines IO frequency and IO mode write penalty factors. Slices or other storage objects are then categorized according to their respective comprehensive scores. Slices or storage objects with higher comprehensive scores have the opportunity to be promoted to higher-performance storage layers, while slices or storage objects with relatively low comprehensive scores can be moved to relatively lower-performance storage layers. Therefore, the comprehensive score can be used to generate slice or other storage object relocation guidelines, resulting in fewer backend writes and improved storage system performance.

[0092] Assume there are K storage tiers in the storage system, where K ≥ 1. In the following description, assume k = 3 and the storage tiers include: Tier 1—Extreme performance storage tier (e.g., with SAS flash, SSD, or NVMe drives); Tier 2—Performance storage tier (e.g., with SAS drives); and Tier 3—Capacity storage tier (e.g., with NL-SAS drives or low-cost cloud storage). Storage objects (e.g., LUNs, file systems (FS), data repositories, etc.) can be configured for specific user use points and used by stable applications with specific IO patterns, such as... Figure 3 As shown in Table 300. If the IO patterns of storage objects are relatively stable (e.g., they remain constant over a specified threshold time period), then the IO patterns of storage objects can be analyzed statistically.

[0093] In the following description, the following symbols are used: T represents the set of IO patterns and the statistical time period, and N represents the total number of storage object relocation units. P j Indicates I / O mode j. O Ij,k Indicates IO mode P j Storage object IOPS on storage layer k, O Bj,k Indicates IO mode P j The bandwidth of the storage objects on storage layer k, D Ij,k Indicates IO mode P j The back-end disk IOPS on storage layer k, and D Bj,k Indicates IO mode P j The back-end disk bandwidth on storage layer k. AIj,k This represents the IO mode P from the perspective of IOPS. j Backend write penalty, RA Ij,k P represents the I / O mode in the K storage layer. j The normalized IOPS write penalty, and σ I This represents the standard variance of IOPS write penalty in storage layer K. Bj,k P represents the I / O mode from a bandwidth perspective. j Backend write penalty, RA Bj,k P represents the I / O mode in the K storage layer. j The normalized bandwidth write penalty, and σ B σ represents the standard variance of the bandwidth write penalty in storage layer K. j s represents the standard variance of the overall write penalty in storage layer K. ij This represents the combined score of the storage object relocation unit, which incorporates I / O activity and write penalty factors.

[0094] First, for array clusters or other storage systems, identify the IO patterns of storage objects. IO patterns can be collected statistically. By analyzing IO statistics over a time period T, the IO pattern type of a storage object can be determined based on the following factors: IO size (P) 大小 ); I / O read / write ratio (P rw ); and the IO sequential / random ratio (P sr The I / O size and I / O read / write ratio of the stored objects can be obtained from the storage system (e.g., from metrics collected from the storage system).

[0095] Sequential I / O refers to I / O operations that have a starting memory location (e.g., a logical block address (LBA)) that directly follows the memory location of the previous I / O operation. In contrast, random I / O refers to I / O operations whose starting memory location is not contiguous with the memory location of the previous I / O operation. The sequential / random I / O ratio of a storage object can be statistically calculated as follows: Let N be the total number of I / O operations within a time period T. 总计 Record the total number of sequential I / O operations within time period T as N. s And record the total number of random I / O operations within time period T as N. r Then, the IO sequential / random ratio is calculated as P. sr =N s / N 总计 .

[0096] I / O patterns can be described in the format [I / O size]_[I / O read ratio]_[I / O sequence ratio]. This is shown in the section above regarding... Figures 4A to 10 The IO modes described are P1-P6. Storage object o iIt can exhibit different types of I / O modes. For objects with storage... i For each type of IO mode exhibited, the ratio of the IO mode to P i,j :RP i,j =P i,j / sum(P i,j Let θ be the threshold for the IO mode ratio. Then, it can be based on RP. i,j Whether it's greater than or less than θ, the stored object is classified into two types. If RP i,j <θ, then store object o i It exhibits an unstable and irregularly changing discrete I / O pattern. If RP i,j If ≥θ, then store object o i P with stable I / O mode j For RP i,j For storage objects <θ, only the frequency of I / O accesses can be used for relocation decisions. For RP among them... i,j For storage objects ≥θ, the frequency of I / O access and write penalty (e.g., specific I / O pattern P) j The penalty for writing can be used for relocation decisions.

[0097] I / O patterns are also measured and analyzed to determine write penalty differences. In some implementations, IOPS and bandwidth factors are used to analyze backend write penalties for I / O patterns across different storage tiers. Ij,k Used to represent IO mode P j Storage object IOPS on storage layer k, O Bj,k Used to represent IO mode P j The bandwidth of the storage objects on storage layer k, D Ij,k Used to represent IO mode P j The back-end disk IOPS on storage layer k, and D Bj,k Used to represent IO mode P j The back-end disk bandwidth on storage layer k.

[0098] From the perspective of IOPS, IO mode P j The backend write penalty can be calculated as follows:

[0099]

[0100] Since the IOPS write penalty is negative for the storage system, we first take the inverse A. Ij,k Then normalization is performed to determine the I / O mode P in the K storage layer according to the following: j IOPS write penalty:

[0101]

[0102] Normalized average write penalty is Furthermore, the standard variance of IOPS write penalty in the K storage layer is determined based on the following:

[0103]

[0104] From a bandwidth perspective, IO mode P j The backend write penalty can be calculated as follows:

[0105]

[0106] The bandwidth write penalty is also negative for the storage system, so we first take the inverse RA. Bj,k Then normalization is performed to determine the I / O mode P in the K storage layer according to the following: j Bandwidth write penalty:

[0107]

[0108] Normalized average write penalty is Furthermore, the standard variance of IOPS write penalty in the K storage layer is determined based on the following:

[0109]

[0110] The IOPS write penalty weight is represented as w I And the bandwidth write penalty weight is represented as w B , where w I +w B =1. For IO mode P j The standard variance of the comprehensive write penalty on the K storage layer can be determined as follows:

[0111]

[0112] Then, the I / O activity of the storage object or other storage relocation unit is combined with write penalty factors (e.g., for the I / O pattern exhibited by the storage object or other storage relocation unit). A storage relocation unit is denoted as u. i And assumes a stable I / O mode P j The number of storage relocation units is N, where 1 ≤ i ≤ N. i The access count is represented as c i u i The tiered strategy can be evaluated in multiple dimensions, including write penalties and IO activity. IO activity can be determined as the number of accesses in the last time period T, and the IO pattern write penalty ratio can be determined as described above. For σ with a small value (e.g., less than a specified threshold) j This refers to the IO mode P jThere is no significant difference in write penalty across the K storage layer, and relocation can be guided solely or primarily by IO activity factors. For σ with a large value (e.g., greater than a specified threshold)... j This refers to the IO mode P j There are no significant differences in write penalties within the K storage layer, and relocation can be guided by both write penalty impact and IO activity.

[0113] The overall score for each relocation unit combines I / O activity and write penalty factors, and can be determined based on the following:

[0114] s ij =c i *(1+σ j )

[0115] If s ij If the value of u is large (e.g., greater than a specified threshold), then u i The overall score is high, and u i It should be upgraded to a higher-performance storage tier within storage tier k. This will provide various benefits to the storage system, including improved IO performance and reduced backend write penalties.

[0116] Figure 11 A process flow 1100 is shown for generating relocation guidelines for storage relocation units (e.g., slices or other storage objects), taking into account both IO activity and write penalty factors. Process flow 1100 begins with step 1101. In step 1103, the (o) values ​​of the storage objects are collected within a time period T. ni The I / O mode (e.g., using I / O size, I / O read / write ratio, and I / O random / sequential ratio) and I / O count are determined. In step 1105, a determination is made as to whether a storage object relocation has been triggered. If the result of step 1105 is no, process flow 1100 returns to step 1103. If the result of step 1105 is yes, process flow 1100 proceeds to steps 1107 and 1109. In step 1107, the comprehensive write penalty standard deviation σ on the K storage layer is calculated. j In step 1109, the I / O activity c of the storage object is calculated. i In step 1111, the IO activity and associated IO pattern write penalty factors are combined to calculate the comprehensive score s. ij In step 1113, then based on the calculated comprehensive score s ij The stored objects are categorized and used to generate a relocation guide for relocating the stored objects. Then, process flow 1100 ends at step 1115.

[0117] An exemplary implementation of process flow 1100 will now be described, assuming that there are six relocation unit storage objects on the storage system. In this implementation, the IOPS weight is set to w. I =0.5, and the bandwidth weight is set to w B =0.5. Here, storage objects with a comprehensive score higher than 100 are selected for relocation to the flash / SSD or extreme performance storage tier, storage objects with a comprehensive score between 80 and 100 are selected for relocation to the SAS or performance storage tier, and storage objects with a comprehensive score lower than 80 are selected for relocation to the NL-SAS or capability storage tier. Each storage object can have a different IO mode, IO activity, and current storage tier. Figure 12 Table 1200 shows a summary of such information for a set of six storage object relocation units denoted as u1, u2, ... u6.

[0118] Figure 13 Table 1300 shows the IOPS penalty, bandwidth penalty, and overall write penalty, as well as the standard deviation σ, for different IO modes in the K storage tiers (e.g., SSD, SAS, and NL-SAS storage tiers). j . Figure 14 Table 1400 is shown, which supplements Table 1100 with additional columns including: relocation recommendations considering only IO activities, and a comprehensive score. ij And a relocation recommendation considering IO activity and write penalties. Here, for relocation unit u1, if only IO activity is not high enough to recommend a move to the SSD storage layer, and therefore its relocation recommendation based solely on IO activity is to relocate u1 to the SAS storage layer. However, relocation unit u1 has high write penalties to the SAS storage layer, and therefore a relocation recommendation considering both IO activity and write penalties recommends relocating u1 to the SSD storage layer, which will improve overall storage system performance. Figure 15A and Figure 15B The storage system 1500 before and after relocation is shown in the extreme performance storage layer 1510 (e.g., flash / SSD storage layer), performance storage layer 1520 (e.g., SAS storage layer), and capability storage layer 1530 (e.g., NL-SAS storage layer). Figure 15A The storage system 1500 is shown before and after relocation 1540A, wherein relocation unit u1 is relocated to performance storage layer 1520 according to a recommendation that does not consider write penalties. Figure 15B The storage system 1500 is shown before and after relocation 1540B, wherein, according to the recommendation that write penalties are not considered, relocation unit u1 is relocated to the extreme performance storage layer 1510.

[0119] It should be understood that the specific advantages described above and elsewhere herein are associated with specific illustrative embodiments and are not required to exist in other embodiments. Furthermore, the features and functions of the specific type of information processing system, as shown in the accompanying drawings and as described above, are merely exemplary, and numerous other arrangements may be used in other embodiments.

[0120] Now refer to the diagram. Figure 16 and Figure 17 This section describes in more detail an illustrative embodiment of a processing platform for implementing functionality in a storage system for moving data based at least in part on write penalties of I / O patterns associated with storage objects. Although described in the context of system 100, in other embodiments, these platforms may also be used to implement at least part of other information processing systems.

[0121] Figure 16 An exemplary processing platform including cloud infrastructure 1600 is shown. Cloud infrastructure 1600 includes components that can be used to implement... Figure 1 The information processing system 100 comprises at least a portion of its physical and virtual processing resources. The cloud infrastructure 1600 includes multiple virtual machines (VMs) and / or container sets 1602-1, 1602-2, ..., 1602-L implemented using virtualization infrastructure 1604. Virtualization infrastructure 1604 runs on physical infrastructure 1605 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.

[0122] Cloud infrastructure 1600 also includes application sets 1610-1, 1610-2, ..., 1610-L, which run on corresponding VM / container sets in VM / container sets 1602-1, 1602-2, ..., 1602-L under the control of virtualization infrastructure 1604. VM / container set 1602 may include a corresponding VM, a corresponding set of one or more containers, or a corresponding set of one or more containers running in a VM.

[0123] exist Figure 16 In some implementations of the scheme, the VM / container set 1602 includes corresponding VMs implemented using a virtualization infrastructure 1604 that includes at least one hypervisor. A hypervisor platform can be used to implement the hypervisor within the virtualization infrastructure 1604, 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.

[0124] exist Figure 16In other implementations of the scheme, the VM / container set 1602 includes corresponding containers implemented using virtualization infrastructure 1604, which provides operating system-level virtualization capabilities, such as supporting Docker containers running on bare metal hosts or on VMs. The containers are implemented illustratively using the corresponding kernel control groups of the operating system.

[0125] As is apparent from the above, 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 an element may be considered as an example of what is more generally referred to herein as a “processing device.” Figure 16 The cloud infrastructure 1600 shown may represent at least a portion of a processing platform. Another example of such a processing platform is... Figure 17 The processing platform shown is 1700.

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

[0127] Network 1704 may include any type of network, including, for example, global computer networks (such as the Internet), WANs, LANs, satellite networks, telephone or wired networks, cellular networks, wireless networks (such as WiFi or WiMAX networks), or various parts or combinations of these and other types of networks.

[0128] The processing device 1702-1 in the processing platform 1700 includes a processor 1710 coupled to a memory 1712.

[0129] Processor 1710 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.

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

[0131] 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 comprising 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 propagating signals. Many other types of computer program products including processor-readable storage media may be used.

[0132] The processing device 1702-1 also includes a network interface circuit 1714 for interfacing the processing device with the network 1704 and other system components, and may include a conventional transceiver.

[0133] The other processing devices 1702 of the processing platform 1700 are assumed to be configured in a manner similar to that shown for the processing device 1702-1 in the figure.

[0134] Similarly, the specific processing platform 1700 shown in the figure is presented only by way of example, 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.

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

[0136] Therefore, it should be understood that in other embodiments, additional or alternative elements with different arrangements 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.

[0137] 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 moving data in a storage system, at least in part, based on write penalties of I / O patterns associated with storage objects, is illustratively implemented as software running on one or more processing devices.

[0138] It should be emphasized again that the above embodiments are presented for illustrative purposes only. Many variations and other alternative embodiments can 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. Moreover, the specific configurations of the system and apparatus elements illustrated in the drawings and the associated processing operations may change in other embodiments. Furthermore, the various assumptions made above in describing the illustrative embodiments should be considered exemplary and not as requirements or limitations of this disclosure. Numerous other alternative embodiments within the scope of the appended claims will be apparent to those skilled in the art.

Claims

1. An information processing device, 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: The input / output activity level and given input / output mode of the given storage object within the specified time period are determined at least in part based on monitoring the input / output operations of the given storage object within the specified time period, the given storage object being stored using a first type of storage resources associated with a first storage layer in two or more storage layers of the storage system; Determine the write penalty for the given input / output pattern, the write penalty for the given input / output pattern being associated with writing a storage object having the given input / output pattern to at least a second type of storage resource associated with a second storage layer of the two or more storage layers in the storage system; Determine the predicted performance difference of the storage system, which is caused by the movement of a given storage object from storage using storage resources of a first type associated with the first storage layer of the two or more storage layers; Based at least in part on the input / output activity level of the given storage object, the write penalty of the given input / output mode, the predicted performance difference, and a specified write penalty offset threshold, it is determined whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system; as well as In response to a positive move determination, the given storage object is moved to a storage resource of the second type associated with the second storage layer in one of the two or more storage layers in the storage system.

2. The device of claim 1, wherein the input / output activity level of the given storage object is determined at least in part based on the count of monitored input / output operations of the given storage object within the specified time period.

3. The device of claim 1, wherein the given input / output mode associated with the given storage object is determined at least in part based on: The size of the given storage object; The ratio of read operations to write operations on the given storage object within the specified time period; and The ratio of sequential input / output operations to random input / output operations involving the given storage object within the specified time period.

4. The device of claim 1, wherein determining the write penalty for the given input / output mode comprises evaluating the write performance of a set of storage objects having the given input / output mode to a storage object set of the second type of storage resources associated with the second storage layer of the two or more storage layers in the storage system.

5. The apparatus of claim 1, wherein the at least one processing means is further configured to perform the step of: determining another write penalty associated with writing a storage object having the given input / output mode to a storage resource of a third type associated with a third storage layer of the two or more storage layers in the storage system.

6. The apparatus of claim 5, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system further comprises: The choice is made, at least in part, based on the write penalty associated with writing a storage object having the given input / output pattern to storage resources of the second and third types associated with the second and third storage layers of the two or more storage layers in the storage system, to move the given storage object to be stored using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system or storage resources of the third type associated with the third storage layer of the two or more storage layers in the storage system.

7. The device of claim 1, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system is in response to determining that the predicted performance improvement of the storage system arising from the move of the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system is offset by at least a specified threshold amount of the determined write penalty, wherein the specified threshold amount is at least partially based on the specified write penalty offset threshold.

8. The device of claim 1, wherein the first storage layer of the two or more storage layers in the storage system provides a first performance level, the first performance level being less than a second performance level provided by the second storage layer of the two or more storage layers in the storage system.

9. The device of claim 8, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system is in response to determining the input / output activity level of the given storage object to provide at least a specified threshold performance improvement.

10. The device of claim 8, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system is in response to providing at least a specified threshold performance improvement by at least a specified threshold amount offset from the determined write penalty in response to determining the input / output activity level of the given storage object, wherein the specified threshold amount is at least partially based on the specified write penalty offset threshold.

11. The device of claim 1, wherein the first storage layer of the two or more storage layers in the storage system provides a first performance level, the first performance level being greater than a second performance level provided by the second storage layer of the two or more storage layers in the storage system.

12. The device of claim 11, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system is in response to determining the input / output activity level of the given storage object to provide at least a specified threshold performance saving of the first storage layer of the two or more storage layers in the storage system.

13. The device of claim 11, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system is in response to determining the input / output activity level of the given storage object to provide at least a specified threshold performance saving of at least a specified threshold amount of the determined write penalty offset of the first storage layer of the two or more storage layers in the storage system, wherein the specified threshold amount is at least partially based on the specified write penalty offset threshold.

14. The device of claim 1, wherein the storage system comprises a clustered storage system, the clustered storage system comprising two or more storage arrays, and wherein a first storage array of the two or more storage arrays provides at least a portion of storage resources of the first type associated with a first storage layer of the two or more storage layers in the storage system, and a second storage array of the two or more storage arrays provides at least a portion of storage resources of the second type associated with a second storage layer of the two or more storage layers in the storage system.

15. A computer program product comprising a non-transitory processor-readable storage medium in which program code of one or more software programs is stored, wherein the program code, when executed by at least one processing means, causes the at least one processing means to perform the following steps: The input / output activity level and given input / output mode of the given storage object within the specified time period are determined at least in part based on monitoring the input / output operations of the given storage object within the specified time period, the given storage object being stored using a first type of storage resources associated with a first storage layer in two or more storage layers of the storage system; Determine the write penalty for the given input / output pattern, the write penalty for the given input / output pattern being associated with writing a storage object having the given input / output pattern to at least a second type of storage resource associated with a second storage layer of the two or more storage layers in the storage system; Determine the predicted performance difference of the storage system, which is caused by the movement of a given storage object from storage using storage resources of a first type associated with the first storage layer of the two or more storage layers; Based at least in part on the input / output activity level of the given storage object, the write penalty of the given input / output mode, the predicted performance difference, and a specified write penalty offset threshold, it is determined whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system; as well as In response to a positive move determination, the given storage object is moved to a storage resource of the second type associated with the second storage layer in one of the two or more storage layers in the storage system.

16. The computer program product of claim 15, wherein the given input / output pattern associated with the given storage object is determined at least in part based on: The size of the given storage object; The ratio of read operations to write operations on the given storage object within the specified time period; and The ratio of sequential input / output operations to random input / output operations involving the given storage object within the specified time period.

17. The computer program product of claim 15, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system is in response to determining that the predicted performance improvement of the storage system arising from the move of the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system is offset by at least a specified threshold amount of the determined write penalty, wherein the specified threshold amount is at least partially based on the specified write penalty offset threshold.

18. An information processing method, comprising: The input / output activity level and given input / output mode of the given storage object within the specified time period are determined at least in part based on monitoring the input / output operations of the given storage object within the specified time period, the given storage object being stored using a first type of storage resources associated with a first storage layer in two or more storage layers of the storage system; Determine the write penalty for the given input / output pattern, the write penalty for the given input / output pattern being associated with writing a storage object having the given input / output pattern to at least a second type of storage resource associated with a second storage layer of the two or more storage layers in the storage system; Determine the predicted performance difference of the storage system, which is caused by the movement of a given storage object from storage using storage resources of a first type associated with the first storage layer of the two or more storage layers; Based at least in part on the input / output activity level of the given storage object, the write penalty of the given input / output mode, the predicted performance difference, and a specified write penalty offset threshold, it is determined whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system; as well as In response to a positive move determination, the given storage object is moved to a storage resource of the second type associated with the second storage layer in one of the two or more storage layers 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 the given input / output pattern associated with the given storage object is determined at least in part based on: The size of the given storage object; The ratio of read operations to write operations on the given storage object within the specified time period; and The ratio of sequential input / output operations to random input / output operations involving the given storage object within the specified time period.

20. The method of claim 18, wherein determining whether to move the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system to storage using storage resources of the second type associated with the second storage layer of the two or more storage layers in the storage system is in response to determining that the predicted performance improvement of the storage system arising from the move of the given storage object from storage using storage resources of the first type associated with the first storage layer of the two or more storage layers in the storage system is offset by at least a specified threshold amount of the determined write penalty, wherein the specified threshold amount is at least partially based on the specified write penalty offset threshold.

Citation Information

Patent Citations

  • Data storage optimizations using variable slice size

    US20210286542A1