Dynamic snapshot scheduling using storage system metrics

CN116483251BActive Publication Date: 2026-10-27DELL PROD LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210038374.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-01-13
Publication Date
2026-10-27
Estimated Expiration
2042-01-13

AI Technical Summary

Technical Problem

此类快照可能会导致数据保护不足、存储系统性能减弱和/或存储系统资源浪费

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116483251B_ABST
    Figure CN116483251B_ABST
Patent Text Reader

Abstract

A dynamic snapshot scheduling technique using storage system metrics is provided. A method includes obtaining a schedule for generating snapshots of a portion of a storage system; automatically adjusting snapshot generation parameters in the schedule based on (i) a current storage pool usage metric, (ii) an input / output metric of at least one storage resource in the portion of the storage system, (iii) a measure of snapshots in a corrupt state, and / or (iv) a measure of a number of snapshots produced; and initiating generation of snapshots of the portion of the storage system according to the adjusted schedule. Snapshot generation frequency can be increased in response to an increase in the current storage pool usage metric, the number of snapshots in the corrupt state, and / or the number of snapshots produced. Snapshot generation frequency can be decreased in response to an increase in the I / O metric of the at least one storage resource.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This field generally relates to information processing techniques, and more specifically to techniques for protecting information. Background Technology

[0002] Information processing systems utilize snapshots to preserve the state of a storage system at a given point in time. Users typically specify snapshot schedules using a technique sometimes called snapshot scheduling, which determines when to generate snapshots of one or more target logical volumes. However, when using snapshot scheduling, new snapshots are often generated strictly according to the schedule. Such snapshots can lead to inadequate data protection, degraded storage system performance, and / or wasted storage system resources.

[0003] The technique for scheduling snapshots needs to be improved. Summary of the Invention

[0004] In one implementation, a method includes: obtaining a schedule for generating snapshots of at least a portion of a storage system; automatically adjusting one or more snapshot generation parameters in the schedule based at least in part on at least one of: (i) a current storage pool usage metric, (ii) an input / output metric of at least one storage resource in the portion of the storage system, (iii) a measurement of snapshots in a corrupted state, and (iv) a measurement of the number of snapshots generated; and initiating the generation of snapshots of the at least a portion of the storage system according to the adjusted schedule.

[0005] In some implementations, the one or more snapshot generation parameters include a snapshot generation frequency maintained within a user-specified range. The adjustment may include increasing the snapshot generation frequency in response to an increase in one or more of the following: the current storage pool usage metric, the metric of snapshots in the corrupted state, and the metric of the number of snapshots generated. The adjustment may also include decreasing the snapshot generation frequency in response to an increase in the input / output metric of the at least one storage resource in the portion of the storage system.

[0006] Other illustrative embodiments include, but are not limited to, devices, systems, methods, and computer program products including processor-readable storage media. Attached Figure Description

[0007] Figure 1 An information processing system configured to perform dynamic snapshot scheduling using storage system metrics is illustrated according to an illustrative embodiment.

[0008] Figure 2 The illustrative implementation scheme is shown. Figure 1 A variant of a part of an information processing system;

[0009] Figure 3 This is a sample table illustrating several exemplary storage system metrics according to an illustrative implementation scheme;

[0010] Figure 4 This is a flowchart illustrating an exemplary implementation of a snapshot scheduling process using storage system metrics according to an illustrative embodiment;

[0011] Figure 5 Exemplary pseudocode is shown for a storage-side I / O scheduling procedure according to an illustrative implementation.

[0012] Figure 6 This is a flowchart illustrating an exemplary implementation of a process for dynamic snapshot scheduling using storage system metrics according to an illustrative embodiment;

[0013] Figure 7 Exemplary processing platforms are shown that can be used to implement at least a portion of one or more embodiments of this disclosure, said exemplary processing platforms including cloud infrastructure; and

[0014] Figure 8 Another exemplary processing platform is shown that can be used to implement at least a portion of one or more embodiments of this disclosure. Detailed Implementation

[0015] This document will describe illustrative embodiments of the present disclosure with reference to exemplary communication devices, storage devices, and processing devices. However, it should be understood that the present disclosure is not limited to use with the specific illustrative configurations shown. One or more embodiments of the present disclosure provide methods, apparatus, and computer program products for dynamic snapshot scheduling using storage system metrics.

[0016] As described above, snapshot scheduling specifies when to automatically generate snapshots of one or more target logical volumes. Snapshot scheduling allows users to trigger the storage system to periodically take snapshots of the data within the storage resources. Users can create custom snapshot schedules by specifying the time interval at which snapshots should be taken, the time and / or date of the day, and the duration for which snapshots should be retained. When the storage system has a large number of objects that require snapshot protection, snapshot scheduling allows users to automatically trigger snapshots.

[0017] However, some users, for example due to lack of experience, set the scheduling frequency too short. When the scheduling frequency is set too short, it may lead to reaching the snapshot limit, which compromises data protection when a new snapshot cannot be generated. Additionally, workloads often vary at different times of day or on different dates. Therefore, it is not recommended to always follow the same snapshot schedule. Furthermore, the snapshot deletion process can be time-intensive and / or resource-intensive. Additionally, many instances of the snapshot deletion process running within a short timeframe can exist, which will degrade system performance.

[0018] In one or more embodiments, a dynamic snapshot scheduling method is provided to evaluate the overall state of a storage system by considering one or more storage system metrics. In at least some embodiments, the storage system metrics considered include: (i) a current storage pool usage metric, (ii) an input / output metric for at least one storage resource in at least a portion of the storage system, (iii) a measurement of snapshots in a corrupted state, and / or (iv) a measurement of the number of snapshots generated in the system's storage space.

[0019] For example, combining the following text Figure 3 The example further illustrates that the current storage pool usage metric includes the amount of storage space allocated relative to the capacity of the storage space in the storage system; the input / output metric includes the number of input / output operations on at least one storage resource of the storage system relative to the number of input / output operations of the storage system; the measurement of a snapshot in a corrupted state includes the number of snapshots in a corrupted state relative to the total number of snapshots produced; and the measurement of the number of snapshots produced includes the total number of snapshots produced relative to the maximum number of snapshots produced.

[0020] In one or more embodiments, the user configures a snapshot scheduling range (e.g., minimum and maximum snapshot scheduling frequency) in the storage system, or a default scheduling range may be used when the user does not specify a particular scheduling range. The disclosed dynamic snapshot scheduling technology monitors one or more storage system metrics and, in at least some embodiments, adjusts the snapshot scheduling frequency within the configured snapshot scheduling range or the default snapshot scheduling range.

[0021] Figure 1 An information processing system 100 configured according to an illustrative embodiment is shown. The information processing system 100 includes a plurality of host devices 101-1, 101-2, ... 101-M (collectively referred to herein as host devices 101) and a storage system 102. Host devices 101 are configured to communicate with the storage system 102 via a network 104. Host devices 101 illustratively include servers or enterprise computer systems, cloud-based computer systems, or other types of computers arranged in a manner that includes multiple computing nodes associated with respective users. Host device 101-1 represents one or more of host devices 101. Figure 1 As shown, a representative host device 101-1 executes one or more applications 112-1 to 112-N (collectively referred to herein as application 112).

[0022] For example, in some embodiments, host device 101 illustratively provides computing services, such as executing one or more applications 112 on behalf of each of one or more users associated with a corresponding host device in the host device. Such applications 112 illustratively generate input / output (I / O) operations processed by storage system 102. As used herein, the term "input / output" refers to at least one of input and output. For example, an I / O operation may include write requests and / or read requests to a logical address of a particular logical storage volume of storage system 102. These and other types of I / O operations are also generally referred to herein as I / O requests.

[0023] In some implementations, each exemplary application 112 includes a multipath input / output (MPIO) driver. Figure 1 (Not shown in the diagram), it is configured to control the delivery of I / O operations from a host device to the storage system 102 via a selected path from a plurality of paths through network 104. The paths are illustratively associated with corresponding initiator-target pairs, wherein each of the plurality of initiators in the initiator-target pair includes a corresponding host bus adapter (HBA) for the host device, and each of the plurality of targets in the initiator-target pair includes a corresponding port of the storage system 102.

[0024] Host device 101 and / or application 112 are configured to interact with storage system 102 via network 104. Such interaction illustratively includes generating I / O operations, such as write and read requests; and sending such requests via network 104 for processing by storage system 102. As discussed below, the MPIO driver associated with each application 112 may include, for example, a non-standard MPIO driver. Other types of MPIO drivers from other driver vendors may be used.

[0025] Storage system 102 illustratively includes processing means of one or more processing platforms. For example, storage system 102 may include one or more processing means that can implement virtual machines and / or containers, each having a processor and memory, but numerous other configurations are also possible.

[0026] Storage system 102 may additionally or alternatively be part of a cloud infrastructure such as an Amazon Web Services (AWS) system. Other instances of cloud-based systems that may be used to provide at least a portion of storage system 102 include Google Cloud Platform (GCP) and Microsoft Azure.

[0027] Storage system 102 includes a plurality of storage devices 106 and an associated storage controller 108. Storage devices 106 store data in a plurality of storage volumes 107-1 to 107-0. Storage volume 107 illustratively includes corresponding logical units (LUNs) or other types of logical storage volumes. Therefore, the term “storage volume” as used herein is intended to be interpreted broadly and should not be considered as limited to any particular format or configuration.

[0028] In one or more embodiments, the disclosed dynamic snapshot scheduling technique using metrics of storage system 102 is illustratively, at least in part, performed by storage controller 108 in a manner described in more detail elsewhere herein. Figure 1 In the example, exemplary storage controller 108 includes a scheduling-based snapshot module 122, scheduling processing logic 124, and a snapshot layer 126. In some embodiments, the scheduling-based snapshot module 122 determines when to take a snapshot based on a schedule established using the disclosed dynamic snapshot scheduling technique, as discussed below. Exemplary scheduling processing logic 124 processes the determined scheduling frequency adjustment to trigger a snapshot when a corresponding time threshold is met. After a snapshot is triggered using the disclosed dynamic snapshot scheduling technique, snapshot layer 126 implements the snapshot, for example, in a conventional manner.

[0029] The storage controller 108 and the storage system 102 may also include one or more additional modules and other components typically found in conventional implementations of storage controllers and storage systems, but such additional modules and other components are omitted from the figures for clarity and simplicity.

[0030] Additionally, host device 101 and / or storage system 102 may have an associated scheduling database 103, which is configured to store storage system metrics, for example, in conjunction with the following... Figure 3 Further discussion. The scheduling database 103 in this embodiment of the invention can be implemented using one or more storage systems and / or storage systems 102 associated with host device 101, or can be accessed via network 104. Such storage systems can include any of a variety of different types of storage devices, including network-attached storage (NAS), storage area network (SAN), direct-attached storage (DAS), and distributed DAS, as well as combinations of these and other storage types (including software-defined storage).

[0031] The host device 101 and the storage system 102 can be implemented on a common processing platform or on a separate processing platform. The host device 101 is illustratively configured to write data to and read data from the storage system 102 for system users, depending on the application 112 running on the host device.

[0032] The term "user" in this document is intended to be interpreted broadly to encompass arrangements and combinations of numerous human, hardware, software, or firmware entities. This refers to providing computing and / or storage services to users under Platform as a Service (PaaS), Infrastructure as a Service (IaaS), Storage as a Service (STaaS), and / or Function as a Service (FaaS) models, but it should be understood that numerous other cloud infrastructure arrangements can be used. Furthermore, illustrative implementations can be implemented outside of cloud infrastructure environments, such as in the case of stand-alone computing and storage systems implemented within a given enterprise.

[0033] In one or more embodiments, the user configures the scheduling range (e.g., minimum scheduling frequency and maximum scheduling frequency) in the storage system 102, for example, using a graphical user interface (GUI) and / or application programming interface (API) provided by the storage system 102. In some embodiments, a default scheduling range may be used when the user does not specify a particular scheduling range.

[0034] Assuming network 104 constitutes part of a global computer network such as the Internet, other types of networks may be part of network 104, 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 parts 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 communication protocols.

[0035] To give 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 wireless bandwidth, gigabit Ethernet, or fiber optic channels. Those skilled in the art will appreciate that numerous alternative networking arrangements can be used in a given implementation.

[0036] Storage device 106 of storage system 102 illustratively includes 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 106 include non-volatile RAM (NVRAM), phase-change RAM (PC-RAM), magnetic RAM (MRAM), resistive RAM, spin-transfer torque magnetoresistive RAM (STT-MRAM), and Intel Optane™ devices based on 3D XPoint™ memory. These and various combinations of many different types of NVM devices can also be used. For example, a hard disk drive (HDD) can be used in combination with, or in place of, an SSD or other type of NVM device in storage system 102.

[0037] Therefore, it should be understood that in other embodiments, a multitude of different types of storage devices 106 may be used in storage system 102. For example, the term "storage system" as used broadly herein may include a combination of different types of storage devices, such as in the case of a multi-tiered storage system including a flash-based fast tier and a disk-based capacity tier. In such embodiments, each of the fast tier and capacity tier of the multi-tiered storage system includes multiple storage devices, wherein different types of storage devices are used in different tiers within the storage tier. For example, the fast tier may include flash drives, while the capacity tier includes HDDs. The specific storage devices used in a given storage tier may vary in other embodiments, and multiple different types of storage devices may be used within a single storage tier. The term "storage device" as used herein is intended to be interpreted broadly to encompass, for example, SSDs, HDDs, flash drives, hybrid drives, or other types of storage devices.

[0038] In some embodiments, storage system 102 illustratively includes a scale-out all-flash distributed content-addressable storage (CAS) system. In other embodiments, storage system 102 may be implemented using a variety of other types of distributed or non-distributed storage arrays. Additional or alternative types of storage products that may 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. Combinations of these and other storage types may also be used to implement a given storage system in the illustrative embodiments.

[0039] Therefore, the term "storage system" as used herein is intended to be interpreted broadly and should not be considered limited to a specific type of storage system, such as CAS systems, distributed storage systems, or storage systems based on flash memory or other types of NVM storage devices. The term "storage system" as used broadly herein can include, for example, any type of system, which includes multiple storage devices such as NAS, SAN, DAS, and distributed DAS, as well as combinations of these and other storage types (including software-defined storage).

[0040] In some embodiments, communication between host device 101 and storage system 102 includes Small Computer System Interface (SCSI) or Internet SCSI (iSCSI) commands. In other embodiments, other types of SCSI or non-SCSI commands may be used, including commands that are part of a standard command set or custom commands (such as “vendor-specific commands” or VU commands that are not part of a standard command set). Therefore, the term “command” as used herein is intended to be interpreted broadly to encompass, for example, a composite command comprising a combination of multiple individual commands. In other embodiments, numerous other commands may be used.

[0041] For example, while in some embodiments certain commands used by host device 101 to communicate with storage system 102 illustratively include SCSI or iSCSI commands, other embodiments may utilize command features and functionalities associated with NVM Express (NVMe) for I / O operations, as described in the NVMe specification, revision 1.3 of 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 network-based NVMe (also known as NVMoF) and Transmission Control Protocol (TCP)-based NVMe (also known as NVMe / TCP).

[0042] In some embodiments, storage system 102 is implemented as a distributed storage system comprising multiple storage nodes, also referred to herein as a clustered storage system. Each of at least a subgroup of storage nodes illustratively includes a set of processing modules configured to communicate with corresponding groups of processing modules on other nodes in the storage system. In such embodiments, multiple groups of processing modules of storage nodes in storage system 102 collectively comprise at least a portion of storage controller 108 of storage system 102. For example, in some embodiments, multiple groups of processing modules of storage nodes collectively comprise a distributed storage controller of distributed storage system 102. The term “distributed storage system” as used herein in a broad sense is intended to encompass any storage system distributed across multiple storage nodes as in storage system 102.

[0043] In some implementations, the distributed processing modules of storage controller 108 are interconnected in a mesh network, enabling a process in one processing module to communicate with processes in any other processing module. Commands issued by a process may include, for example, remote procedure calls (RPCs) to other processes within the same process.

[0044] The distributed storage controller illustratively includes multiple processing modules such as a control module, a data module, a routing module, and at least one management module. Furthermore, these modules, and possibly other modules of the distributed storage controller, are interconnected in a full mesh network, allowing each module to communicate with every other module. However, other types of networks and different module interconnect arrangements may be used in other embodiments.

[0045] In this implementation, the management module of the distributed storage controller may more specifically include a system-level management module. Other implementations may include multiple instances of management modules implemented on different storage nodes within the storage nodes. Therefore, it is assumed that the distributed storage controller includes one or more management modules.

[0046] In other implementations, various alternative configurations of nodes and processing modules are possible. Furthermore, the term "storage node" as used herein is intended to be interpreted broadly and may include nodes that implement storage control functions but not necessarily storage devices.

[0047] Communication links can be established between various processing modules of a distributed storage controller using well-known communication protocols such as TCP / IP and Remote Direct Memory Access (RDMA). For example, IP links for corresponding groups of data transfers and corresponding message passing can be associated with different routing modules within the routing module.

[0048] Each storage node in the distributed implementation of storage system 102 illustratively includes a CPU or other type of processor, memory, a network interface card (NIC) or other type of network interface, and a subgroup of storage devices 106, which may be arranged as part of a disk array storage module (DAE) of the storage node. These and other references to “disk” herein are intended to generally refer to storage devices including SSDs and should therefore not be considered limited to spin-magnetic media.

[0049] assumed Figure 1The storage system 102 in the embodiment is implemented using at least one processing platform, wherein each such processing platform includes one or more processing devices, and each such processing device includes a processor coupled to memory. Such processing devices may illustratively include a specific arrangement of computing resources, storage resources, and network resources. As previously indicated, the host device 101 may be implemented wholly or partially on the same processing platform as the storage system 102, or on a separate processing platform.

[0050] The term "processing platform" as used herein is intended to be interpreted broadly to encompass (by way of example and not limitation) multiple sets of processing devices and associated storage systems configured to communicate over one or more networks. For example, a distributed implementation of system 100 is possible, in which some components of the system reside in a data center located in a first geographical location, while other components reside in one or more other data centers located in one or more other geographical locations that may be far from the first geographical location. Thus, in some implementations of system 100, host device 101 and storage system 102 may reside in different data centers. Numerous other distributed implementations of host device and / or storage system 102 are possible.

[0051] Additional examples of the processing platform used to implement the host device 101 and / or storage system 102 in the illustrative embodiments will be incorporated below. Figure 7 and Figure 8 To elaborate further.

[0052] It should be understood that these and other features of the illustrative implementation are presented by way of example only and should in no way be construed as restrictive.

[0053] Therefore, in other implementations, different numbers, types and arrangements of system components (such as host device 101, storage system 102, network 104, storage device 106, storage volume 107, storage controller 108, scheduling-based snapshot module 122, scheduling processing logic 124 and snapshot layer 126) can be used.

[0054] It should be understood that the examples presented are only for illustrative purposes. Figure 1 The system 100 shown in the figure implements a specific group of modules and other components. In other embodiments, only subgroups of these components or additional or alternative groups of components may be used, and such components may exhibit alternative functions and configurations.

[0055] Reference Figure 4 and Figure 5 An exemplary process utilizing the scheduling-based snapshot module 122, scheduling processing logic 124, and / or snapshot layer 126 is described in more detail.

[0056] A wide variety of applications can run using converged infrastructure or application clusters, such as NAS or SAN. Each of these applications can have different levels of importance or criticality within the application cluster. In these cases, applications can be served by storage solutions in the backend (e.g., ScaleIO™), which cluster nodes access via SAN or NAS. When applications running on the cluster access files, file access latency on the storage array directly impacts application performance. In these situations, recently accessed data can be cached to quickly repeat access to the same data.

[0057] Figure 2 Some embodiments according to this disclosure are shown. Figure 1 A variant 100' of the information processing system 100. Figure 2 In the example, representative host device 101-1' includes a server that runs multiple virtual machines 210-1 to 210-P via hypervisor 220. Hypervisor 220 may include one or more MPIO drivers configured to control the delivery of I / O operations from host device 101 through network 104 to storage system 102 via a selected path from a plurality of paths, as described above. Those skilled in the art will understand that... Figure 2 Other components are based on Figure 1 It is implemented in a similar way to the implementation plan.

[0058] Figure 3 This is a sample table 300 illustrating several exemplary storage system metrics according to an illustrative implementation. Sample table 300 indicates a short name and description for each storage system metric. Figure 3 In the example, the storage system metrics considered for assessing the overall state of the storage system include: (i) the current storage pool usage metric P, (ii) the input / output metric R of at least one storage resource in at least a portion of the storage system, (iii) the measurement DS of snapshots in a corrupted state, and / or (iv) the measurement S of the number of snapshots generated in the storage space of the system.

[0059] like Figure 3As shown, the current storage pool usage metric P includes the amount of storage space allocated relative to the capacity of storage space in the storage system (e.g., allocated space in the storage pool / capacity of the storage pool); the input / output metric R includes the number of input / output operations on at least one storage resource of the storage system relative to the number of input / output operations of the storage system; the measurement DS of snapshots in a corrupted state includes the number of snapshots in a corrupted state relative to the total number of snapshots produced (e.g., the ratio of the number of continuously corrupted snapshots to the number of snapshots produced); and the measurement S of the number of snapshots produced includes the total number of snapshots produced relative to the maximum number of snapshots produced (e.g., the ratio of the number of snapshots to the maximum allowed number of snapshots). In at least some embodiments, the four exemplary storage system metrics P, R, DS, and S are provided by storage system 102 and vary within a range between 0 and 1.

[0060] In one or more embodiments, the disclosed dynamic snapshot scheduling technique monitors one or more of the storage system metrics P, R, DS, and S, and in at least some embodiments within a configured snapshot scheduling range or a default snapshot scheduling range (e.g., at a user-specified minimum frequency F). 最小 With the user-specified maximum frequency F 最大 Adjust the snapshot scheduling frequency between (between).

[0061] For example, combining the following text Figure 4 and Figure 5 Further discussion reveals that the determined frequency adjustments include increasing the frequency in response to increases in metrics P, DS, and S. For example, newly generated snapshots do not require much storage space in storage system 102. However, storing data in storage system 102 requires additional storage space. Therefore, when the current storage pool usage metric P is increasing, the snapshot scheduling frequency can be increased (e.g., fewer snapshots are executed). Similarly, snapshots in a corrupted state consume significant resources of storage system 102. Therefore, when the corrupted state metric DS is increasing, the snapshot scheduling frequency can be increased (e.g., fewer snapshots are executed). Note that a corrupted state includes the process of removing snapshots that are no longer needed. Additionally, when the metric S of the number of snapshots generated is increasing, the snapshot scheduling frequency can be increased (e.g., fewer snapshots are executed).

[0062] Additionally, frequency adjustment includes decreasing the frequency in response to an increase in the metric R, as illustrated below for example. Figure 4 and Figure 5 Further discussion. The number of I / O operations is typically related to the range of data changes in storage system 102. Therefore, when the I / O metric R is increasing, the snapshot scheduling frequency can be reduced (e.g., more snapshots can be performed).

[0063] In some implementations, the disclosed dynamic snapshot scheduling technique first evaluates the current storage pool usage metric P and the measurement S of the number of snapshots produced. If the measurement S of the number of snapshots produced has reached the snapshot limit or if the current storage pool usage metric P exceeds the snapshot deletion threshold (illustratively labeled herein as pool usage level (PWM)), the scheduling frequency can be set to a maximum value (e.g., such that snapshots are performed as infrequently as possible within the scheduling range). Otherwise, the actual scheduling frequency (F) is... 实际 ) will be within the configured snapshot scheduling range or the default snapshot scheduling range (e.g., at the minimum frequency F). 最小 With the maximum frequency F 最大 The percentage of fluctuation can be determined using four exemplary storage system metrics.

[0064] Assume F 实际 If the scaling factor is γ1, then F can be expressed as follows: 实际 Increment:

[0065] ΔF 增大 =(F 最大 -F 最小 )×γ1,

[0066] γ1 varies between 0 and 1.

[0067] When γ1 is affected by the current storage pool usage metric P, the corruption state metric DS, and / or the number of snapshots generated metric S, F 实际 It will be set to the maximum value, as follows:

[0068] F 实际1 =F 最小 +(F 最大 -F 最小 )×γ1.

[0069] Similarly, as mentioned above, when the input / output metric R increases, F... 实际 It will decrease.

[0070] Therefore, if F 实际 The increase factor is expressed as γ2, and F can be expressed as follows: 实际 Increment:

[0071] ΔF 减小 =-(F 最大 -F 最小 )×γ2,

[0072] γ2 varies between 0 and 1.

[0073] When γ2 is affected by the input / output metric R, γ1 is set to a value of 1, and F can be... 实际 Set to the minimum value as follows:

[0074] F 实际2 =F 最大 -(F 最大 -F 最小 )×γ2.

[0075] Furthermore, when γ1 and γ2 simultaneously affect F 实际 At that time, obtain F 实际1 With F 实际2 The median value is as follows:

[0076] F 实际 =(F 最大 +F 最小 +(F 最大 -F 最小 )×(γ2-γ1))×1 / 2,

[0077] Furthermore, γ1 can be affected by the current storage pool usage metric P, the corruption state metric DS, and the number of snapshots generated metric S. γ2 is affected by the input / output metric R. γ1 and γ2 can be calculated from storage system metrics, as follows:

[0078] γ1 = 1 / 3 × (P + DS + S);

[0079] γ2=R.

[0080] For example, if the current storage pool usage metric P is omitted in a given implementation, the calculation of γ1 and γ2 can be performed by omitting the current storage pool usage metric P from the calculation of γ1, and the (1 / 3) multiplier used to calculate γ1 can be replaced with a (1 / 2) multiplier.

[0081] Figure 4 This is a flowchart illustrating an exemplary implementation of a snapshot scheduling process 400 using storage system metrics according to an illustrative embodiment. Figure 4 In the example, a snapshot scheduling process 400 is initiated in step 410, and a test is performed in step 415 to determine whether the current time indicates that the minimum frequency F has been reached. 最小 .

[0082] In step 415, it is determined that the minimum frequency F has been reached. 最小 Next, in step 420, four exemplary storage system metrics (P, R, DS, S) are obtained. In step 425, a test is performed to determine whether the current storage pool usage metric P is greater than or equal to the PWM snapshot deletion threshold. In step 430, another test is performed to determine whether the measurement S, representing the number of snapshots produced, is equal to the value 1.

[0083] If in step 425 it is determined that the current storage pool usage metric P is greater than or equal to the PWM threshold, or if in step 430 it is determined that the measurement S of the number of snapshots produced is equal to the value 1, then in step 435 γ1 and γ2 are set to the values ​​1 and 0 respectively, and F is set to... 实际 Set to F 最大 .

[0084] However, if in step 425 it is not determined that the current storage pool usage metric P is greater than or equal to the PWM threshold, or in step 430 it is not determined that the measurement S of the number of snapshots produced is equal to the value 1, then in step 440 γ1 and γ2 are calculated using the following expressions provided above:

[0085] γ1 = 1 / 3 × (P + DS + S);

[0086] γ2=R.

[0087] In step 445, the actual frequency F is determined as follows: 实际 :

[0088] F 实际 =(F 最小 +F 最大 +(F 最大 -F 最小 )×(γ2-γ1))×1 / 2.

[0089] In step 450, a test is performed to determine whether the current time indicates that F has been reached. 实际 In step 450, it is determined that F has been reached. 实际 Then, a new snapshot is generated in step 455.

[0090] Figure 5 Pseudocode is shown for an exemplary storage-side I / O scheduling procedure 500 according to an illustrative implementation. Figure 5 In the example, the exemplary storage-side I / O scheduling process 500 includes the following four exemplary steps.

[0091] In step 1, when F is reached 最小 At that time, four exemplary storage system metrics (P, R, DS, S) are obtained. In step 2, if the current storage pool uses metric P greater than or equal to the PWM snapshot deletion threshold, then γ1 = 1 and γ2 = 0, such that F... 实际 Set to F 最大 After this, the storage-side I / O scheduling process 500 ends and waits for the next time evaluation; otherwise, the storage-side I / O scheduling process 500 proceeds to step 3.

[0092] In step 3, if S equals 1, then the storage-side I / O scheduling procedure 500 sets γ1 = 1 and γ2 = 0, such that F... 实际Set to F 最大 After this, the storage-side I / O scheduling process 500 ends and waits for the next time evaluation; otherwise, the storage-side I / O scheduling process 500 proceeds to step 4.

[0093] In step 4, the storage-side I / O scheduling process 500 calculates γ1 and γ2 as follows:

[0094] γ1 = 1 / 3 × (P + DS + S);

[0095] γ2=R.

[0096] Subsequently, the storage-side I / O scheduling process evaluates F500. 实际 And when F is reached 实际 A new snapshot is generated at any time.

[0097] Figure 6 This is a flowchart illustrating an exemplary implementation of a process 600 for dynamic snapshot scheduling using storage system metrics according to an illustrative embodiment; in Figure 6 In the example, in step 602, process 600 first obtains a schedule for generating snapshots of at least a portion of the storage system (e.g., at least one file system and / or at least one storage volume). In step 604, process 600 automatically adjusts one or more snapshot generation parameters in the schedule (e.g., snapshot generation frequency) based on at least one of the following: (i) current storage pool usage metric (P), (ii) input / output metric (R) of at least one storage resource in said portion of the storage system, (iii) measurement of snapshots in a corrupted state (DS), and (iv) measurement of the number of snapshots generated (S).

[0098] In step 606, the generation of snapshots of at least the portion of the storage system is initiated according to the adjusted schedule.

[0099] In some implementations, an initial schedule may be established using a user-specified schedule and / or a default schedule. In some implementations, the snapshot generation frequency is maintained within a user-specified range. Adjustments may include increasing the snapshot generation frequency in response to an increase in one or more of a current storage pool usage metric, a measurement of snapshots in a corrupted state, and a measurement of the number of snapshots generated. Adjustments may also include decreasing the snapshot generation frequency in response to an increase in an input / output metric of at least one storage resource in the portion of the storage system.

[0100] In some implementations, (i) a current storage pool usage metric, (ii) an input / output metric for at least one storage resource in the storage system, (iii) a measurement of snapshots in a corrupted state, and (iv) a measurement of the number of snapshots produced are obtained from the storage system. The current storage pool usage metric may include the amount of storage space allocated relative to the capacity of the storage space in the storage system. The input / output metric may include the number of input / output operations on at least one storage resource of the storage system relative to the number of input / output operations of the storage system. The measurement of snapshots in a corrupted state may include the number of snapshots in a corrupted state relative to the total number of snapshots produced. The measurement of the number of snapshots produced may include the total number of snapshots produced relative to the maximum number of snapshots produced.

[0101] Combination Figure 5 pseudocode and Figure 4 and Figure 6 The specific processing operations and other network functions illustrated in the flowcharts are presented by way of illustrative example only and should not in any way be construed as limiting the scope of this disclosure. Alternative embodiments may use other types of processing operations to dynamically schedule snapshots using storage system metrics. For example, in other embodiments, the order of process steps may change, or certain steps may be performed simultaneously rather than sequentially. In one aspect, the process may skip one or more actions. In other aspects, one or more actions are performed simultaneously. In some aspects, additional actions may be performed.

[0102] In addition, while one or more exemplary embodiments implement the disclosed dynamic snapshot scheduling functionality in storage system 102, in one or more alternative embodiments, at least a portion of the disclosed dynamic snapshot scheduling functionality may be implemented in one or more of the host devices 101 or on another dedicated device.

[0103] Consider an example where a user has generated a snapshot schedule applied to groups of five file systems (fs_0 to fs_4) and five LUNs (lun_0 to lun_4), the snapshot schedule having the following parameters: F 最小 = 2H (hours), and F 最大 =6H. Assume that in F 最小 At that time, the following parameter values ​​were observed for each storage resource:

[0104] fs_0 0.1 0.005 0.05 0 4.103333 fs_1 0.1 0.005 0.05 0.007752 4.087829 fs_2 0.1 0.005 0.05 0 4.103333 fs_3 0.1 0.005 0.05 0.775194 2.552946 fs_4 0.1 0.005 0.05 0.155039 3.793256 lun_0 0.1 0.005 0.05 0.015504 4.072326 lun_1 0.1 0.005 0.05 0 4.103333 lun_2 0.1 0.005 0.05 0.007752 4.087829 lun_3 0.1 0.005 0.05 0 4.103333 lun_4 0.1 0.005 0.05 0.03876 4.025814

[0105] Note that the values ​​of one or more of the four exemplary storage system metrics (P, DS, S, and R) may change over time. For example, the input / output metric R for each storage resource is expected to vary in ratio. As shown in the table above, the current storage pool uses relatively low values ​​for metric P, the corruption state metric DS, and the metric S representing the number of snapshots produced. Therefore, under these conditions, the snapshot frequency will be set based on the values ​​of the four exemplary storage system metrics (P, DS, S, and R).

[0106] Consider another example where a user has generated a snapshot schedule applied to a group of the same five file systems (fs) and five LUNs, the snapshot schedule having the following parameters: F 最小 = 2H (hours) and F 最大 =6H, where the snapshot deletion threshold is set to 0.9. Assuming in F... 最小 At that time, the following parameter values ​​were observed for each storage resource:

[0107] fs_0 0.9 0.2 0.4 0.015152 6 fs_1 0.9 0.2 0.4 0.066667 6 fs_2 0.9 0.2 0.4 0.151515 6 fs_3 0.9 0.2 0.4 0.375758 6 fs_4 0.9 0.2 0.4 0.133333 6 lun_0 0.9 0.2 0.4 0.006061 6 lun_1 0.9 0.2 0.4 0.166667 6 lun_2 0.9 0.2 0.4 0.00303 6 lun_3 0.9 0.2 0.4 0.066667 6 lun_4 0.9 0.2 0.4 0.015152 6

[0108] Because the current storage pool usage metric P exceeds the snapshot deletion threshold, storage system 102 will begin automatically deleting snapshots. Therefore, the scheduling frequency of the ten storage resources will be set to the maximum frequency F of 6H. 最大 .

[0109] By utilizing the dynamic snapshot scheduling technique described above, snapshots are automatically generated based on one or more of the monitored storage system metrics. The foregoing applications and associated implementations should be considered illustrative only, and the techniques disclosed herein can be configured for many other implementations in a variety of different applications.

[0110] It should also be understood that the dynamic snapshot scheduling technique disclosed herein can be implemented at least in part as one or more software programs stored in memory and executed by a processor of a processing device such as a computer. As previously mentioned, the memory or other storage device embodying such program code is an example of what is generally referred to herein as a “computer program product.”

[0111] The disclosed dynamic snapshot scheduling technique using storage system metrics can be implemented using one or more processing platforms. Therefore, one or more of the processing modules or other components can each run on a computer, storage device, or other processing platform element. A given example of such an element can be considered as something more generally referred to herein as a "processing device".

[0112] As described above, the illustrative embodiments disclosed herein offer several significant advantages over conventional arrangements. It should be understood that the specific advantages set forth above and elsewhere herein are relevant to the specific illustrative embodiment and do not need to exist in other embodiments. Furthermore, the specific types of information processing system features and functionalities shown and illustrated herein are merely exemplary, and numerous other arrangements may be used in other embodiments.

[0113] In these and other implementations, computing services can be provided as PaaS services to cloud infrastructure tenants or other system users, but numerous alternative arrangements are possible.

[0114] Some illustrative embodiments of a processing platform that can be used to implement at least a portion of an information processing system include a cloud infrastructure comprising virtual machines implemented using a hypervisor running on a physical infrastructure. The cloud infrastructure also includes multiple sets of applications running on respective virtual machines within the virtual machines under the control of the hypervisor. Multiple hypervisors may also be used, each providing a set of virtual machines using at least one underlying physical machine. Different sets of virtual machines provided by one or more hypervisors can be used to configure multiple instances of various components of the system.

[0115] These and other types of cloud infrastructure can be used to provide content, also referred to herein as a multi-tenant environment. One or more system components (such as a cloud-based dynamic snapshot scheduling engine or portions thereof) are illustrated and implemented for use by tenants in such multi-tenant environments.

[0116] The cloud infrastructure disclosed herein may include cloud-based systems such as AWS, GCP, and Microsoft Azure. In the illustrative implementation, at least a portion of a cloud-based dynamic snapshot scheduling platform may be implemented using virtual machines configured within such systems. Cloud-based systems may include object storage such as Amazon S3, GCP cloud storage, and Microsoft Azure Blob storage.

[0117] In some implementations, the cloud infrastructure additionally or alternatively includes multiple containers implemented using container host devices. For example, a given container in the cloud infrastructure illustratively includes Docker containers or other types of Linux containers (LXC). Containers can run on virtual machines in a multi-tenant environment, but other arrangements are also possible. Containers can be used to implement various different types of functionality within storage devices. For example, containers can be used to implement corresponding processing units that provide computing services for cloud-based systems. Furthermore, containers can be used in conjunction with other virtualization infrastructure, such as virtual machines implemented using hypervisors.

[0118] Now refer to Figure 7 and Figure 8 The illustrative implementation of the processing platform is described in more detail. In other implementations, these platforms may also be used to implement at least a portion of other information processing systems.

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

[0120] Cloud infrastructure 700 also includes multiple sets of applications 710-1, 710-2, ... 710-L running on corresponding VM / container groups 702-1, 702-2, ... 702-L under the control of virtualization infrastructure 704. VM / container group 702 may include a corresponding VM, one or more containers of the corresponding group, or one or more containers of the corresponding group running in a VM.

[0121] exist Figure 7 In some implementations of the scheme, the VM / container group 702 includes a corresponding VM implemented using a virtualization infrastructure 704 including at least one hypervisor. Such implementations can provide dynamic snapshot scheduling capabilities of the type described above for one or more processes running on a given VM within the VM. For example, each of the VMs can implement dynamic snapshot scheduling control logic and associated storage system metric monitoring to provide dynamic snapshot scheduling capabilities for one or more processes running on a particular VM.

[0122] An example of a hypervisor platform that can be used to implement hypervisors within a virtualization infrastructure 704 is... The It can have an associated virtual infrastructure management system, such as vCenter™. The underlying physical machine may include one or more distributed processing platforms, which in turn include one or more storage systems.

[0123] exist Figure 7In other implementations of the scheme, the VM / container group 702 includes corresponding containers implemented using virtualization infrastructure 704, which provides operating system-level virtualization capabilities, such as supporting Docker containers running on a bare metal host or on a VM. The containers are illustratively implemented using the corresponding kernel control group of the operating system. Such implementations can provide dynamic snapshot scheduling capabilities of the type described above for one or more processes running on different containers within a container. For example, a container host device supporting multiple containers in one or more container groups can implement dynamic snapshot scheduling control logic and one or more instances of associated storage system metric monitoring to provide dynamic snapshot scheduling capabilities.

[0124] As is evident 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 a given element may be considered as an example of what is more generally referred to herein as a “processing device.” Figure 7 The cloud infrastructure 700 shown can represent at least a portion of a processing platform. Another example of such a processing platform is... Figure 8 The processing platform 800 shown is shown.

[0125] The processing platform 800 in this embodiment includes at least a portion of a given system and includes a plurality of processing devices, designated 802-1, 802-2, 802-3, ... 802-K, that communicate with each other via a network 804. The network 804 may include any type of network, such as a WAN, LAN, satellite network, telephone or cable network, cellular network, wireless network (such as WiFi or WiMAX), or portions or combinations of these and other types of networks.

[0126] The processing device 802-1 in the processing platform 800 includes a processor 810 coupled to a memory 812. The processor 810 may include a microprocessor, a microcontroller, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other types of processing circuitry systems and portions or combinations of elements of such circuitry systems, and the memory 812, which may be considered as an example of a "processor-readable storage medium" storing executable program code of one or more software programs.

[0127] Articles of manufacture including such processor-readable storage media are considered illustrative embodiments. Given such articles of manufacture, they may include, for example, storage arrays, storage disks, or integrated circuits containing RAM, ROM, or other electronic memories, or any of a variety of other types of computer program products. The term "article of manufacture" as used herein should be understood to exclude transient propagated signals. Numerous other types of computer program products including processor-readable storage media may be used.

[0128] The processing device 802-1 also includes a network interface circuit system 814, which is used to interface the processing device with the network 804 and other system components and may include a conventional transceiver.

[0129] It is assumed that the other processing devices 802 of the processing platform 800 are configured in a manner similar to that shown with respect to processing device 802-1 in the figure.

[0130] Moreover, the particular processing platform 800 shown in the figure is presented only by way of example, and a given system may include additional or alternative processing platforms and a number of different processing platforms in any combination, wherein each such platform includes one or more computers, storage devices or other processing devices.

[0131] Multiple components of an information processing system can work together to achieve [the desired result]. Figure 7 or Figure 8 The types shown can be implemented on a common processing platform, or each such component can be implemented on a separate processing platform.

[0132] For example, instead of virtualization infrastructure that includes virtual machines, or other processing platforms used to implement the illustrative implementation scheme may also include different types of virtualization infrastructure. Such virtualization infrastructure illustratively includes container-based virtualization infrastructure configured to provide Docker containers or other types of LXC.

[0133] As another example, in some implementations, a portion of a given processing platform may include converged infrastructure.

[0134] Therefore, it should be understood that different arrangements of additional or alternative elements may be used in other embodiments. At least one subgroup 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] Furthermore, numerous other arrangements of computers, servers, storage devices, or other components are possible in information processing systems. These components can communicate with other elements of the information processing system via any type of network or other communication medium.

[0136] As previously indicated, the components of the information processing system disclosed herein can 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 functions shown in one or more of the figures are illustratively implemented as software running on one or more processing devices.

[0137] It should also be emphasized 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. Furthermore, the specific configurations of the system and apparatus elements illustrated in the figures, as well as the associated processing operations, may vary in other embodiments. In addition, the various assumptions made in the exposition of 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. A method comprising: Obtain a schedule for generating snapshots of at least a portion of the storage system; One or more snapshot generation parameters in the schedule are automatically adjusted at least in part based on at least one of the following: (i) the current storage pool usage metric, which is based at least in part on the amount of storage space allocated relative to the capacity of the storage space in the storage system; (ii) an input / output metric of at least one storage resource in the portion of the storage system, wherein the input / output metric is at least partially based on the number of input / output operations of the at least one storage resource of the storage system relative to the number of input / output operations of the storage system; (iii) a measurement of a snapshot in a corrupted state, the measurement being at least partially based on the number of snapshots in the corrupted state relative to the total number of snapshots generated; and (iv) a measurement of the number of snapshots generated, the measurement being at least partially based on the total number of snapshots generated relative to a limit on the number of snapshots generated, wherein the one or more snapshot generation parameters include a snapshot generation frequency, and wherein the adjustment includes reducing the snapshot generation frequency in response to an increase in the input / output metric of the at least one storage resource in the portion of the storage system; as well as The snapshot of at least the portion of the storage system is generated based on the adjusted schedule; The method is performed by at least one processing device including a processor coupled to a memory.

2. The method of claim 1, wherein the scheduling is initially set to the default scheduling.

3. The method of claim 1, wherein the scheduling is initially established using a user-specified scheduling.

4. The method of claim 1, wherein the portion of the storage system comprises one or more of at least one file system and at least one storage volume.

5. The method of claim 1, wherein the snapshot generation frequency is maintained within a range specified by the user.

6. The method of claim 5, wherein the adjustment includes increasing the snapshot generation frequency in response to an increase in one or more of the measurements of the current storage pool usage metric, the snapshot in the corrupted state, and the number of snapshots generated.

7. The method of claim 1, wherein: (i) the current storage pool usage metric, (ii) the input / output metric of the at least one storage resource in the portion of the storage system, (iii) the measurement of the snapshot in the corrupted state, and (iv) the measurement of the number of snapshots produced are obtained from the storage system.

8. An apparatus comprising: At least one processing device includes a processor coupled to a memory; The at least one processing device is configured to perform the following steps: Obtain a schedule for generating snapshots of at least a portion of the storage system; One or more snapshot generation parameters in the schedule are automatically adjusted at least in part based on at least one of the following: (i) the current storage pool usage metric, which is based at least in part on the amount of storage space allocated relative to the capacity of the storage space in the storage system; (ii) an input / output metric of at least one storage resource in the portion of the storage system, wherein the input / output metric is at least partially based on the number of input / output operations of the at least one storage resource of the storage system relative to the number of input / output operations of the storage system; (iii) a measurement of a snapshot in a corrupted state, the measurement being at least partially based on the number of snapshots in the corrupted state relative to the total number of snapshots generated; and (iv) a measurement of the number of snapshots generated, the measurement being at least partially based on the total number of snapshots generated relative to a limit on the number of snapshots generated, wherein the one or more snapshot generation parameters include a snapshot generation frequency, and wherein the adjustment includes reducing the snapshot generation frequency in response to an increase in the input / output metric of the at least one storage resource in the portion of the storage system; as well as The storage system at least some of the snapshots are generated according to the adjusted schedule.

9. The device of claim 8, wherein the scheduling is initially set using one or more of a user-specified scheduling and a default scheduling.

10. The device of claim 8, wherein the snapshot generation frequency is maintained within a user-specified range.

11. The device of claim 10, wherein the adjustment includes increasing the snapshot generation frequency in response to an increase in one or more of the measurements of the current storage pool usage metric, the snapshot in the corrupted state, and the number of snapshots generated.

12. The device as claimed in claim 8, wherein: (i) the current storage pool usage metric, (ii) the input / output metric of the at least one storage resource in the portion of the storage system, (iii) the measurement of the snapshot in the corrupted state, and (iv) the measurement of the number of snapshots produced are obtained from the storage system.

13. 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: Obtain a schedule for generating snapshots of at least a portion of the storage system; One or more snapshot generation parameters in the schedule are automatically adjusted at least in part based on at least one of the following: (i) the current storage pool usage metric, which is based at least in part on the amount of storage space allocated relative to the capacity of the storage space in the storage system; (ii) an input / output metric of at least one storage resource in the portion of the storage system, wherein the input / output metric is at least partially based on the number of input / output operations of the at least one storage resource of the storage system relative to the number of input / output operations of the storage system; (iii) a measurement of a snapshot in a corrupted state, the measurement being at least partially based on the number of snapshots in the corrupted state relative to the total number of snapshots generated; and (iv) a measurement of the number of snapshots generated, the measurement being at least partially based on the total number of snapshots generated relative to a limit on the number of snapshots generated, wherein the one or more snapshot generation parameters include a snapshot generation frequency, and wherein the adjustment includes reducing the snapshot generation frequency in response to an increase in the input / output metric of the at least one storage resource in the portion of the storage system; as well as The snapshot of at least the portion of the storage system is generated based on the adjusted schedule; as well as Snapshots of at least the portion of the storage system are initiated according to the adjusted schedule.

14. The non-transitory processor-readable storage medium of claim 13, wherein the scheduling is initially set using one or more of a user-specified scheduling and a default scheduling.

15. The non-transitory processor-readable storage medium of claim 13, wherein the snapshot generation frequency is maintained within a user-specified range.

16. The non-transitory processor-readable storage medium of claim 15, wherein the adjustment includes increasing the snapshot generation frequency in response to an increase in one or more of the measurements of the current storage pool usage metric, the snapshot in the corrupted state, and the number of snapshots generated.

Citation Information

Patent Citations

  • Management of data replication and storage apparatuses, methods and systems

    US20150347548A1

  • System and method for smart pool space reclamation

    US20210034240A1