Methods and systems for expanding storage capacity to achieve logical data corruption protection
Patent Information
- Application Number
- CN202180056382.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-08-10
- Filing Date
- 2021-08-03
- Publication Date
- 2026-09-01
- Estimated Expiration
- 2041-08-03
AI Technical Summary
这不仅需要LCP实现的相当大量的处理,而且使得存储卷在删除原始备份存储空间与在替换备份存储空间中存储新数据备份之间的时间段期间易受数据丢失/损坏的影响
[0005]这样,可以增加存储卷的备份存储空间的大小,而不必首先删除整个备份存储空间(以及所有存储的数据备份)并构造具有新大小的新备份存储空间。这能够减少扩展备份存储空间所需的处理量,其能够提高实现这种扩展的一个或多个有形计算设备的性能。
Smart Images

Figure CN116034347B_ABST
Abstract
Description
Background Technology
[0001] This invention relates to implementing logical corruption protection (LCP) for data, and more specifically, to expanding storage capacity for implementing LCP.
[0002] To implement logical corruption protection (LCP) for data within a storage volume, backup storage space can be created and used to store backups of data from the storage volume. For example, predetermined point-in-time snapshots of data within the storage volume can be created and stored in the backup storage space. These data backups can then be used to recover lost or corrupted data within the storage volume.
[0003] However, currently, if you wish to increase the size of the backup storage space, you must first delete the original backup storage space along with all data backups stored within it, and then create a replacement backup storage space with a larger size than the original backup storage space. This not only requires a considerable amount of processing from the LCP implementation, but also makes the storage volume vulnerable to data loss / corruption during the time between deleting the original backup storage space and storing the new data backups in the replacement backup storage space. Summary of the Invention
[0004] A computer-implemented method according to one aspect includes: receiving a request to increase the size of a backup storage space for a storage volume; in response to the request, adding an additional extent to the backup storage space; identifying a current extent location within the backup storage space; determining whether there are any filled extent locations between the current extent location and the additional extent added to the backup storage space; and conditionally utilizing the additional extent added to the backup storage space based on the determination.
[0005] This allows for increasing the size of a storage volume's backup storage space without first deleting the entire backup storage space (and all stored data backups) and constructing a new backup storage space of the new size. This reduces the amount of processing required to expand the backup storage space, which can improve the performance of one or more physical computing devices that implement such expansion.
[0006] In one aspect, the request is automatically generated based on monitoring of parameters used for the backup storage space and the storage volume, the parameters including a capacity utilization threshold, a multiplier increment, and a multiplier limit.
[0007] According to another aspect, a computer program product for expanding storage capacity to implement logical corruption protection includes a computer-readable storage medium containing program instructions, wherein the computer-readable storage medium itself is not a transient signal, and the program instructions are executable by a processor to cause the processor to perform a method comprising: receiving a request by the processor to increase the size of a backup storage space for a storage volume; adding an additional extent to the backup storage space in response to the request; identifying a current extent location within the backup storage space; determining whether there is any filled extent location between the current extent location and the additional extent added to the backup storage space; and conditionally utilizing the additional extent added to the backup storage space based on the determination.
[0008] In one respect, the current disk area position is determined according to the rolling buffer method.
[0009] According to another aspect, a system includes a processor; and logic integrated with the processor and executable by the processor, or integrated with the processor and executable by the processor, wherein the logic is configured to: receive a request to increase the size of backup storage space for a storage volume; in response to the request, add an additional extent to the backup storage space; identify the current extent location within the backup storage space; determine whether there are any filled extent locations between the current extent location and the additional extent added to the backup storage space; and based on the determination, conditionally utilize the additional extent added to the backup storage space.
[0010] According to another aspect, a computer-implemented method includes: monitoring the current usage of backup storage space for a storage volume; comparing the current usage with a capacity threshold; and conditionally increasing the size of the backup storage space based on the comparison and a predetermined size limit.
[0011] According to another aspect, a computer program product for automating the management of backup storage space includes a computer-readable storage medium containing program instructions, wherein the computer-readable storage medium itself is not a transient signal, and wherein the program instructions are executable by a processor to cause the processor to perform a method comprising: monitoring the current usage of backup storage space for a storage volume by the processor; comparing the current usage with a capacity threshold by the processor; and conditionally increasing the size of the backup storage space by the processor based on the comparison and a predetermined size limit.
[0012] This allows for dynamic adjustment of the backup storage space size for the storage volume. This ensures that the backup storage space is large enough to support a sufficient number of data backups for the storage volume as part of the LCP implementation. Consequently, it protects the storage volume's data from corruption / loss, which can further improve the performance of one or more physical computing devices utilizing the storage volume.
[0013] Other aspects and embodiments of the invention will become apparent from the following detailed description, which, when taken in conjunction with the accompanying drawings, illustrates the principles of the invention by way of example. Attached Figure Description
[0014] Figure 1 A cloud computing environment according to one aspect of the present invention is described;
[0015] Figure 2 An abstract model layer according to one aspect of the present invention is described;
[0016] Figure 3 A cloud computing node according to one aspect of the present invention is described;
[0017] Figure 4 A hierarchical data storage system according to one aspect of the present invention is shown;
[0018] Figure 5 An exemplary protected backup configuration according to one aspect of the present invention is shown;
[0019] Figure 6 An exemplary CSM-protected replication session according to one aspect of the present invention is shown;
[0020] Figure 7 An exemplary protected copying configuration according to one aspect of the invention is shown;
[0021] Figure 8 A flowchart of a method for expanding storage capacity to implement logical corruption protection according to one aspect of the present invention is shown;
[0022] Figure 9 A flowchart of a method for automating the management of backup storage space according to one aspect of the present invention is shown;
[0023] Figure 10 An exemplary extended storage environment according to one aspect of the present invention is shown. Detailed Implementation
[0024] The following description is for illustrative purposes only and is not intended to limit the inventive concept claimed herein. Furthermore, the specific features described herein can be used in combination with other described features in each of the various possible combinations and substitutions.
[0025] Unless otherwise specified herein, all terms will be given their broadest possible interpretation, including the meaning implied from the specification and the meaning understood by those skilled in the art and / or the meaning defined as in dictionaries, papers, etc.
[0026] It should also be noted that, as used in the specification and appended claims, the singular forms “a,” “an,” and “the” include plural indicators unless otherwise stated. It will also be understood that the terms “comprising” and / or “including”, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or combinations thereof.
[0027] The following description discloses several aspects of expanding storage capacity for implementing logical corruption protection.
[0028] In one general aspect, a computer-implemented method includes: receiving a request to increase the size of a backup storage space for a storage volume; in response to the request, adding an additional extent to the backup storage space; identifying the current extent location within the backup storage space; determining whether there are any filled extent locations between the current extent location and the additional extent added to the backup storage space; and conditionally utilizing the additional extent added to the backup storage space based on the determination.
[0029] This allows for increasing the size of a storage volume's backup storage space without first deleting the entire backup storage space (and all stored data backups) and constructing a new backup storage space of the new size. This reduces the amount of processing required to expand the backup storage space, which can improve the performance of one or more physical computing devices that implement such expansion.
[0030] In a general sense, the request is automatically generated based on monitoring of parameters used for backup storage space and storage volumes, including capacity utilization thresholds, multiplier increments, and multiplier limits.
[0031] According to another general aspect, a computer program product for expanding storage capacity to implement logical corruption protection includes a computer-readable storage medium containing program instructions, wherein the computer-readable storage medium itself is not a transient signal, and wherein the program instructions are executable by a processor to cause the processor to perform a method comprising: receiving a request by the processor to increase the size of a backup storage space for a storage volume; adding an additional extent to the backup storage space in response to the request; identifying a current extent location within the backup storage space; determining whether there are any filled extent locations between the current extent location and the additional extent added to the backup storage space; and conditionally utilizing the additional extent added to the backup storage space based on the determination.
[0032] In a general sense, the current extent position is determined using the rolling buffer method.
[0033] According to another general aspect, a system includes: a processor; and logic integrated with the processor and executable by the processor, or integrated with and executable by the processor, wherein the logic is configured to: receive a request to increase the size of backup storage space for a storage volume; in response to the request, add an additional extent to the backup storage space; identify the current extent location within the backup storage space; determine whether there are any filled extent locations between the current extent location and the additional extent added to the backup storage space; and based on the determination, conditionally utilize the additional extent added to the backup storage space.
[0034] According to another general aspect, a computer-implemented method includes: monitoring the current usage of backup storage space used for storage volumes; comparing the current usage with a capacity threshold; and conditionally increasing the size of the backup storage space based on the comparison and a predetermined size limit.
[0035] According to another general aspect, a computer program product for automating the management of backup storage space includes a computer-readable storage medium containing program instructions, wherein the computer-readable storage medium itself is not a transient signal, and wherein the program instructions are executable by a processor to cause the processor to perform a method comprising: monitoring the current utilization of backup storage space for a storage volume by the processor; comparing the current utilization with a capacity threshold by the processor; and conditionally increasing the size of the backup storage space by the processor based on the comparison and a predetermined size limit.
[0036] This allows for dynamic adjustment of the backup storage space size for the storage volume. This ensures that the backup storage space is large enough to support a sufficient number of data backups for the storage volume as part of the LCP implementation. Consequently, it protects the storage volume's data from corruption / loss, which can further improve the performance of one or more physical computing devices utilizing the storage volume.
[0037] It should be understood that while this disclosure includes a detailed description of cloud computing, implementation of the teachings cited herein is not limited to cloud computing environments. Rather, aspects of the invention can be implemented in conjunction with any other type of computing environment now known or hereafter developed.
[0038] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with service providers. This cloud model may include at least five features, at least three service models, and at least four deployment models.
[0039] The features are as follows:
[0040] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring manual interaction with the service provider.
[0041] Wide Area Network (WAN) Access: Capabilities are available on the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0042] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Location independence has significance because consumers typically do not control or know the exact location of the resources provided, but can specify the location at a higher level of abstraction (e.g., country, state, or data center).
[0043] Rapid Flexibility: In some cases, the ability to scale outwards and inwards quickly and flexibly can be provided. For consumers, the available capacity often appears unlimited and can be purchased in any quantity at any time.
[0044] Measurement services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both service providers and consumers.
[0045] The service model is as follows:
[0046] Software as a Service (SaaS): The capability offered to consumers is the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from various client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.
[0047] Platform as a Service (PaaS): This provides consumers with the ability to deploy consumer-created or acquired applications onto cloud infrastructure using programming languages and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environments.
[0048] Infrastructure as a Service (IaaS): This provides consumers with the capability to deliver processing, storage, networking, and other basic computing resources that enable them to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).
[0049] The deployment model is as follows:
[0050] Private cloud: Cloud infrastructure operated solely by an organization. It can be managed by the organization or a third party and can exist inside or outside a building.
[0051] Community cloud: Cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.
[0052] Public cloud: Cloud infrastructure available to the general public or large industrial groups and owned by organizations that sell cloud services.
[0053] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported together (e.g., cloud bursting for load balancing between clouds).
[0054] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure of a network of interconnected nodes.
[0055] See now Figure 1 This describes an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 to which local computing devices used by cloud consumers can communicate. These local computing devices include, for example, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N. Nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as services that cloud consumers do not need to maintain on their local computing devices. It should be understood that... Figure 1 The types of computing devices 54A-N shown are intended to be illustrative only, and computing node 10 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).
[0056] See now Figure 2 This demonstrates the 50 (cloud computing environment) Figure 1 This provides a set of functional abstractions. It should be understood beforehand. Figure 2 The components, layers, and functions shown are intended to be illustrative only, and aspects of the invention are not limited thereto. As described, the following layers and corresponding functions are provided:
[0057] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframes 61; servers based on RISC (Reduced Instruction Set Computer) architecture 62; servers 63; blade servers 64; storage devices 65; and networking and interconnection components 66. In some respects, software components include network application server software 67 and database software 68.
[0058] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 755.
[0059] In one example, management layer 80 may provide the following functionalities: Resource Provisioning 81 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User Portal 83 provides access to the cloud computing environment for consumers and system administrators. Service Level Management 84 provides cloud resource allocation and management to ensure that required service levels are met. Service Level Agreement (SLA) Planning and Fulfillment 85 provides pre-scheduling and procurement of cloud resources based on anticipated future needs according to the SLA.
[0060] Workload layer 90 provides examples of functionalities that can be leveraged in a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics and processing 94; transaction processing 95; and logical corruption protection (LCP) 96.
[0061] See now Figure 3 The diagram illustrates an example of a cloud computing node. Cloud computing node 10 is merely one example of a suitable cloud computing node and is not intended to impose any limitation on the scope or functionality of the aspects of the invention described herein. In any case, cloud computing node 10 can be implemented and / or perform any of the functions set forth above.
[0062] Within cloud computing node 10, there exists a computer system / server 12 that can operate alongside many other general-purpose or special-purpose computing system environments or configurations. Examples of known computing systems, environments, and / or configurations that may be suitable for computer system / server 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the aforementioned systems or devices.
[0063] Computer system / server 12 can be described in the general context of computer system executable instructions (e.g., program modules) executed by the computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform specific tasks or implement specific abstract data types. Computer system / server 12 can be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules can reside in local and remote computer system storage media, including memory storage devices.
[0064] like Figure 3 As shown, the computer system / server 12 in cloud computing node 10 is illustrated in the form of a general-purpose computing device. The components of the computer system / server 12 may include, but are not limited to, one or more processors or processing units 16, system memory 28, and a bus 18 that couples the various system components, including the system memory 28, to the processor 16.
[0065] Bus 18 represents any one or more of several types of bus architectures, including memory buses or memory controllers, peripheral buses, accelerated graphics ports, and processor or local buses using any of the various bus architectures. By way of example and not limitation, such architectures include Industry Standard Architecture (ISA) buses, Micro Channel Architecture (MCA) buses, Enhanced ISA (EISA) buses, Video Electronics Standards Association (VESA) local buses, and Peripheral Component Interconnect (PCI) buses.
[0066] Computer system / server 12 typically includes various computer system readable media. Such media can be any available media that can be accessed by computer system / server 12, and includes volatile and non-volatile media, removable and non-removable media.
[0067] System memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 32. Computer system / server 12 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 34 may be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown, and generally referred to as "hard disk drives"). Although not shown, disk drives for reading from or writing to removable non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable non-volatile optical disks (such as CD-ROMs, DVD-ROMs, or other optical media) may be provided. In such cases, each may be connected to bus 18 via one or more data media interfaces. As will be further described and illustrated below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules configured to perform multiple aspects of the invention.
[0068] A program / utility 40 having a set (at least one) of program modules 42, along with an operating system, one or more applications, other program modules, and program data, may be stored in memory 28 by way of example and not limitation. Each or some combination of the operating system, one or more applications, other program modules, and program data may include an implementation of a network environment. Program modules 42 typically perform functions and / or methods of various aspects of the invention as described herein.
[0069] Computer system / server 12 may also communicate with: one or more external devices 14, such as a keyboard, pointing device, display 24, etc.; one or more devices that enable a user to interact with computer system / server 12; and / or any device that enables computer system / server 12 to communicate with one or more other computing devices (e.g., network interface card, modem, etc.). This communication may occur via input / output (I / O) interface 22; however, computer system / server 12 may communicate with one or more networks via network adapter 20, such as local area networks (LANs), general area networks (WANs), and / or public networks (e.g., the Internet). As shown, network adapter 20 communicates with other components of computer system / server 12 via bus 18. It should be understood that, although not shown, other hardware and / or software components may be used in conjunction with computer system / server 12, examples including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems.
[0070] Now for reference Figure 4This illustrates a storage system 400 according to one aspect. It should be noted that, according to various aspects, Figure 4 Some of the components shown may be implemented as hardware and / or software. Storage system 400 may include a storage system manager 412 for communicating with multiple media on at least one higher storage layer 402 and at least one lower storage layer 406. Higher storage layer 402 may preferably include one or more random access and / or direct access media 404, such as hard disks in hard disk drives (HDDs), non-volatile memory (NVM), solid-state drives (SSDs), flash memory, SSD arrays, flash memory arrays, etc., and / or other access media as indicated herein or known in the art. Lower storage layer 406 may preferably include one or more lower-performance storage media 408, including sequential access media (e.g., magnetic tape and / or optical media in a tape drive), slower access HDDs, slower access SSDs, etc., and / or other storage media as indicated herein or known in the art. One or more additional storage layers 416 may include any combination of storage memory media desired by the designer of system 400. Furthermore, either the higher storage layer 402 and / or the lower storage layer 406 may contain a combination of storage devices and / or storage media.
[0071] Storage system manager 412 can be connected to network 410 (e.g., as...) Figure 4 The storage area network (SAN) or some other suitable network type shown communicates with storage media 404, 408 on the higher storage tier 402 and the lower storage tier 406. The storage system manager 412 can also communicate with one or more host systems (not shown) via a host interface 414, which may or may not be part of the storage system manager 412. The storage system manager 412 and / or any other component of the storage system 400 may be implemented in hardware and / or software and may utilize processors (not shown) for executing commands of types known in the art, such as a central processing unit (CPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc. Of course, any arrangement of the storage system can be used, as will be apparent to those skilled in the art upon reading this specification.
[0072] In other respects, storage system 400 may include any number of data storage layers, and may include the same or different storage media within each storage layer. For example, each data storage layer may include the same type of storage media, such as HDD, SSD, sequential access media (tape in a tape drive, optical disc in an optical disc drive, etc.), direct access media (CD-ROM, DVD-ROM, etc.), or any combination of media storage types. In such a configuration, higher storage layer 402 may include the majority of SSD storage media for storing data in a higher-performance storage environment, and the remaining storage layers including lower storage layer 406 and additional storage layer 416 may include any combination of SSDs, HDDs, tape drives, etc., for storing data in a lower-performance storage environment. In this way, more frequently accessed data, data with higher priority, data requiring faster access, etc., can be stored in higher storage layer 402, while data that does not have any of these attributes can be stored in additional storage layer 416, which includes lower storage layer 406. Of course, those skilled in the art, upon reading this description, can design many other combinations of storage media types to implement different storage schemes based on the aspects presented herein.
[0073] According to some aspects, the storage system (e.g., 400) may include: logic configured to receive a request to open a dataset; logic configured to determine whether the requested dataset is stored in a plurality of associated portions in a lower storage layer 406 of the hierarchical data storage system 400; logic configured to move each associated portion of the requested dataset to a higher storage layer 402 of the hierarchical data storage system 400; and logic configured to assemble the requested dataset from the associated portions on the higher storage layer 402 of the hierarchical data storage system 400.
[0074] Of course, depending on the context, this logic can be implemented as a method on any device and / or system or as a computer program product. Logical data corruption
[0075] In one respect, logical data corruption occurs when the data storage hardware is intact and functioning correctly, but the stored data is corrupted and / or destroyed at the content level. This can happen due to intentional or unintentional data deletion, encryption, and manipulation. For example, logical data corruption can result from application corruption caused by user error, unintentional or malicious data destruction, or ransomware implementation where the data may have been encrypted without permission.
[0076] To address logical data corruption, logical corruption protection (LCP) may require the implementation of content-aware solutions. For example, protected copy (SGC) implements LCP on data stored in a distributed storage system and can identify logical data corruption events and recover from such events. Exemplary targets of protected copying
[0077] In one respect, protected copying has the following exemplary objectives: Allows the creation of numerous recovery copies across multiple volumes or storage systems with optimized capacity utilization and minimal performance impact. While the production environment continues to run, make any previous recovery points available on a set of recovery volumes. Protect the data of the protected copy to prevent it from being accidentally or intentionally damaged. Avoid using distributed storage system device numbers and host device addresses.
[0078] Protected replication can be different from point-in-time full volume snapshots of the data, which provide an immediately accessible copy of the production volume, where each copy is independent of the others from the data's perspective. Exemplary protected copying operation
[0079] Figure 5 An exemplary protected backup configuration 500 according to one exemplary aspect is illustrated. As shown, protected replication provides the capability to create multiple recovery points 502 of a production volume 504 (e.g., a storage volume, such as source / protected source). These recovery points 502 are referred to as protected backups (e.g., backup / SG backup). In one aspect, recovery data is not stored in a separate regular volume, but rather in backup storage space 506 referred to as protected backup capacity (SGBC). The backup cannot be directly accessed by the host. The data can only be used after the backup has been restored to a separate recovery volume 508.
[0080] Once recovery point 502 has been restored to recovery volume 508, it can be accessed using recovery system 510. This system may or may not be the same as production system 512, depending on security requirements. Asynchronous data replication / mirroring can be used to restore data from recovery system 510 to production volume 504. Production volume 504 may reside in the same or a different distributed data storage system as recovery volume 508.
[0081] Production environments can include hundreds or thousands of volumes across one or more storage systems. A key aspect of logical corruption protection is providing consistent recovery points across all volumes that are part of a backup. These recovery points are called consistency groups (CGs). Exemplary Backup Management
[0082] Protected replication backups can be protected from unintentional or intentional tampering. For example, users cannot manually create, delete, or restore them using the distributed storage system management interface. Instances of the Copy Services Manager (CSM) can be used to perform these tasks. The CSM can use the concept of sessions to manage complete consistency groups.
[0083] Figure 6 An exemplary CSM-protected replication session 600 is illustrated according to one exemplary aspect. As shown, session 600 includes multiple replication sets 606A-N. Each production volume to be backed up exists in one replication set. Each of the multiple replication sets 606A-N includes production / source / storage volumes 604A-N and recovery volumes 602A-N with associated protected backup capacities 608A-N (e.g., backup storage space). CSM performs actions such as backup and recovery on the entire session 600. CSM can use a built-in scheduler to automate these operations.
[0084] CSM also manages the lifecycle of backups. A retention period can be specified for backups, and CSM can automatically expire (automatically remove) backups that are no longer needed after that retention period. This simplifies and protects management and ensures consistency across sessions. Exemplary protected backup capacity
[0085] Protected backup capacity 608A-N can be provisioned thinly. Smaller extents can be used for improved efficiency. In the absence of any existing protected backups, the protected backup capacity is a purely virtual capacity associated with the source volume. Physical storage space is allocated when a backup is created, and data overwritten from the original volume is saved in the backup. Backup data is saved at the track level.
[0086] A maximum protected backup capacity can be specified for each volume to be backed up. When the specified capacity is reached, the oldest backup is automatically removed to free up space. As long as any protected backup exists for a given volume, its associated protected backup capacity is prevented from being deleted. If a storage pool is short of physical space, the distributed storage system can send a notification based on the pool settings, regardless of whether it is used for backup or production data. Protected backups can also be automatically removed via microcode if the storage pool used by a protected relationship is determined to be exhausted (e.g., if the amount of available physical space becomes less than a threshold). Exemplary protected copy backup
[0087] When a protected replication backup is initiated, the distributed storage system creates a consistency group. The distributed storage system establishes metadata and a bitmap to track updates to the production volume. After the backup is established, the distributed storage system replicates data awaiting host I / O overwrite from the production volume to the location of the consistency group records within the protected backup capacity.
[0088] When initiating the next backup, the distributed storage system can close the previous backup and create a new consistency group. Therefore, the system does not need to maintain each backup individually. To restore to a specific recovery point, the distributed storage system requires all backups that are younger than the one being restored.
[0089] To minimize the impact of creating consistent groups, the protected replication backup process can include three steps: 1. Retention: In this step, the distributed storage system prepares to create a new protected backup. The system builds the necessary bitmap and prepares metadata with protected replication capacity. The system also ensures that all changed data from the previous backup is stored in its consistency group log. After all preparations are complete, the actual consistency group formation can proceed. 2. Check-in: To create a consistent group, the distributed storage system must halt all updates to all volumes within the CG for a short period. This is achieved by presenting an extended busy (ELB) state. When the data in the cache is consistent, the previous consistent group logs for all affected volumes are closed and therefore also consistent. From this point onward, the distributed storage system writes further backup data to the newly backed-up consistent group log. 3. Completion: The distributed storage system removes the ELB and write operations can continue. The replication service manager automatically coordinates and executes these steps with minimal impact on host operations. Exemplary protected copy recovery
[0090] Users can restore any recovery point to a separate recovery volume. This volume must have at least the same capacity as the production volume and be thin-provisionable. Users can perform the recovery with or without background replication. If a user needs the recovered data only for a limited time period, they can specify a no-copy command; if they intend to use the recovered data for a longer period, they can specify a copy command. Users can initiate protected replication recovery via CSM.
[0091] Figure 7 An exemplary protected replication configuration 700 according to one exemplary aspect is illustrated. As shown, the protected replication configuration 700 includes a production volume 702 (e.g., a storage volume), a recovery volume 704, and four protected backups (e.g., consistency group logs t1 706A - t4 706D, where t4 is the most recent) representing four recovery points stored within backup storage. In one aspect, a replication-free option can be utilized to restore to point in time t2. This recovery includes the following steps: 1. The distributed storage system creates point-in-time snapshots of the data from production volume 702 to recovery volume 704. This makes recovery volume 704 identical to production volume 702. 2. Then, the distributed storage system creates a recovery bitmap 708, which indicates all data that has changed since time t2 and must be retrieved from the consistent group logs t4 706D, t3 706C, and t2 706B, rather than from the production volume 702.
[0092] From this point onward, recovery volume 704 can be used to perform read and write accesses. If recovery system 710 reads data from recovery volume 704, the distributed storage system checks recovery bitmap 708 and decides whether it must retrieve the requested data from production volume 702 or from one of the consistent group logs t1 706A - t4 706D. If the same track occurs in more than one backup, the system can use the "oldest" instance (the instance closest to recovery point t2 706B).
[0093] If recovery system 710 writes to recovery volume 704, one of two things may happen: Full-track write: Distributed storage systems can directly write to recovery volume 704 without considering existing data. Partial track write: Distributed storage systems must first retrieve existing data according to the above rules before applying updates.
[0094] If recovery is performed using background replication, the distributed storage system follows the same rules, replicating all data from production volume 702 and consistency group logs t1 706A-t4 706D to recovery volume 704 in the background. Recovery volume 704 can be accessed at any time while background replication is still running.
[0095] If the data is restored to the original production volume 702, several options are available: Full Volume Recovery: Global replication can be used to copy data from recovery volume 704 to production volume 702. Production volume 702 and recovery volume 704 can be on the same or different distributed storage systems. Selective recovery: Make production volume 702 available to recovery system 710, or make recovery volume 704 available to production system 712. Then, the required data can be copied from recovery volume 704 to production volume 702 using standard operating system or application methods.
[0096] Now for reference Figure 8 A flowchart of method 800 according to one aspect is shown. In various aspects, among others, method 800 can be implemented according to the invention... Figure 1-7 and Figure 10 This can be performed in any environment depicted herein. Of course, as those skilled in the art will understand after reading this description, method 800 may include more than Figure 8 The specific operations described in the text may include more or fewer operations.
[0097] Each step of method 800 can be performed by any suitable component of the operating environment. For example, in various aspects, method 800 can be performed, in part or in whole, by one or more servers, computers, or some other device having one or more processors therein. A processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software and preferably having at least one hardware component) can be used in any device to perform one or more steps of method 800. Illustrative processors include, but are not limited to, central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), combinations thereof, or any other suitable computing device known in the art.
[0098] like Figure 8As shown, method 800 may begin with operation 802, in which a request to increase the size of backup storage space for the storage volume is received. In one aspect, the storage volume may be included within an interconnected storage system (e.g., a distributed data storage system, etc.). In another aspect, the storage volume may be included within a single device (e.g., within a single-disk operating system (DOS), etc.). In yet another aspect, the storage volume may include one or more physical storage drives.
[0099] Additionally, in one aspect, backup storage space can be created as part of a Logical Corruption Protection (LCP) implementation for the data within a storage volume. For example, an LCP implementation can create data backups (e.g., recovery points) for a storage volume. Each data backup could, for instance, include a pre-determined point-in-time snapshot of the data within the storage volume. In another example, each data backup could be associated with a specific time / date for which a snapshot was taken. In yet another instance, data backups could be created periodically according to a pre-determined schedule.
[0100] Furthermore, in one aspect, LCP implementations can store recovery points in backup storage space, which is inaccessible to the host utilizing the storage volume. In another aspect, in response to one or more errors occurring within the storage volume, the recovery point can be restored to a recovery volume detached from the storage volume. In yet another aspect, the recovery volume can be accessed by a recovery system detached from the system implementing the storage volume. Data can then be restored from the recovery system to the storage volume.
[0101] Furthermore, in one aspect, backup storage space may include data storage devices that are physically and / or logically separate from storage volumes. In another aspect, backup storage space may reside within the same physical device as storage volumes. In yet another aspect, backup storage space may reside within different physical devices than storage volumes. In yet another aspect, both backup storage space and storage volumes may include physical data storage devices (e.g., one or more physical data storage drives, etc.).
[0102] Furthermore, in one sense, backup storage space can also be referred to as backup capacity, protected backup capacity, etc. In another sense, storage volume can also be referred to as host volume, production stream, etc. And yet another sense, when creating backup storage space as part of an LCP implementation, the initial size of the backup storage space can be determined. For example, the initial size of the backup storage space can be a predetermined multiple of the storage volume size.
[0103] Alternatively, in one respect, the request can be received in response to a manual user request. In another respect, the request can be received in response to determining that the number and / or frequency of data backups should be increased. In yet another respect, the request can be generated automatically based on monitoring parameters used for backup storage space and / or storage volumes.
[0104] For example, management applications can monitor parameters used to back up storage space and storage volumes. In another example, parameters could include a capacity utilization threshold (e.g., the threshold amount of storage space currently being backed up). In yet another example, parameters could include a multiplier increment (e.g., the amount by which the multiplier increases).
[0105] In another example, the parameter may include a multiplier limit (e.g., the maximum allowed multiplier). In yet another example, the multiplier may indicate the size of the backup storage space relative to the size of the storage volume to be protected. For example, a multiplier of 2 for a storage volume may indicate that the size of the backup storage space used for that storage volume will be twice the size of the storage volume.
[0106] In yet another example, the management application could automatically generate a request to increase the size of the backup storage space used for the storage volume by a multiplier increment upon determining that the amount of backup storage space currently in use exceeds a capacity utilization threshold. In yet another example, the size increase request could be gradually increased via a multiplier increment value until the multiplier limit is reached.
[0107] Furthermore, method 800 may proceed to operation 804, wherein, in response to the request, an additional extent is added to the backup storage space. In one aspect, the extent may include a predetermined data storage location within the physical data storage hardware used by the backup storage space. In another aspect, the extent may have a uniform predetermined size, or the size of the extent may vary.
[0108] Furthermore, in one aspect, backup storage space can be represented as a series of adjacent extents in a predetermined order. In another aspect, additional extents can be added to the end of a series of adjacent extents in a predetermined order. Still in another aspect, additional extents can be added by allocating additional data storage locations within the physical data storage hardware to be used by the backup storage space.
[0109] Furthermore, method 800 can proceed to operation 806, in which the current extent location within the backup storage space is identified. In one aspect, the current extent location may include the location within the backup storage space where the next data backup will be stored. In another aspect, the current extent location may be determined using a rolling buffer method.
[0110] For example, a backup storage space may include multiple adjacent extent locations positioned in a predetermined order. After the current extent location is filled with data backups (e.g., according to a data backup schedule), the next adjacent extent location in the predetermined order is selected. In another instance, the rolling buffer method may specify that within the backup storage space, when the last extent location in the predetermined order is filled with data backups, the first extent location in the predetermined order is selected as the next extent location to be filled. This creates a circular buffer within the backup storage space.
[0111] Additionally, in one aspect, when an extent location is being filled with a new data backup, in response to determining that the extent location is being filled with a previous data backup, the previous data backup is removed / expired, and the new data backup is stored in the extent location.
[0112] Furthermore, method 800 may proceed to operation 808, wherein it is determined whether any filled extent locations exist between the current extent location and the additional extents added to the backup storage space. In one aspect, it may be determined whether any filled intermediate extents exist, wherein the filled intermediate extents include extents currently storing data backups, and these extents are located in a predetermined order between the current extent location and the first additional extent location added to the backup storage space. In another aspect, these filled intermediate extents may need to expire before the additional extents added to the backup storage space reach the current extent location.
[0113] Furthermore, method 800 may proceed to operation 810, wherein, based on the determination, additional extents added to the backup storage space are conditionally utilized. In one aspect, in response to identifying one or more filled intermediate extents in a predetermined order between the current extent location and the first additional extent location, the backup storage space may be marked as being in an extended state.
[0114] For example, a backup storage space can be marked as being in an extended state by adjusting its metadata or setting one or more flags within it.
[0115] Furthermore, in one aspect, in response to determining that the backup storage space is marked as extended, the use of additional disks added to the backup storage space can be prevented, and a notification can be sent (e.g., to one or more users, one or more applications, etc.) that the additional disks added to the backup storage space are not ready to be used and can only be used after one or more populated intermediate disks have expired. On the other hand, populated intermediate disks that need to expire can be presented to the user, and the user can be provided with the option to manually expire the populated intermediate disks.
[0116] Additionally, users can be provided with the option to allow filled intermediate extents to expire based on backup scheduling and rolling buffer methods (e.g., as new data backups replace data backups stored in intermediate extents). On the other hand, once it is determined that all filled intermediate extents have expired, the extended status label can be removed from the backup capacity.
[0117] Furthermore, in one aspect, in response to determining that the backup capacity is not marked as being in an extended state (e.g., no flag is set / no one or more filled intermediate extents exist between the current extent location and the first supplementary extent location), the supplementary extent added to the backup storage space may be permitted for use, and a notification may be sent to one or more users that the supplementary extent is ready for use. In another aspect, the supplementary extent can then be used to store data backups of the original extent with the backup storage space according to a rolling buffer method.
[0118] Furthermore, in one aspect, within a single protected capacity session, multiple different backup storage spaces can exist for multiple different storage volumes. For example, as shown above, a filled intermediate extent can be identified for each of the multiple backup storage spaces, and the filled intermediate extent can affect the use of additional extents added to the backup storage space.
[0119] Furthermore, in one respect, all of the above operations can be performed by one or more of the following: a physical system including the storage volume, the storage volume itself, or a system separate from the storage volume.
[0120] In this way, the size of the backup storage space used for a storage volume can be increased without first deleting the entire backup storage space (and all stored data backups) and constructing a new backup storage space of the new size. This reduces the amount of processing required to expand the backup storage space, which can improve the performance of one or more physical computing devices that implement such expansion.
[0121] Furthermore, while adding additional extents to the backup storage space, access to the original extents of the backup storage space remains permitted. This allows for periodic data volume backups and ensures that LCP implementation continues to be applied to the data within the storage volume during backup storage space expansion. Consequently, data within the storage volume is protected from corruption / loss during backup storage space expansion, preventing data loss and further improving the performance of one or more physical computing devices utilizing the storage volume.
[0122] Now for reference Figure 9 A flowchart of a method 900 for automating the management of backup storage space is shown, according to one aspect. In various aspects, method 900 can be implemented according to the present invention... Figure 1-7This method can be performed in any environment depicted in 10. Of course, as those skilled in the art will understand upon reading this specification, method 900 may include more than... Figure 9 The specific operations described in the text may include more or fewer operations.
[0123] Each step of method 900 can be performed by any suitable component of the operating environment. For example, in various aspects, method 900 can be performed, in part or in whole, by one or more servers, computers, or some other device having one or more processors therein. A processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software and preferably having at least one hardware component) can be used in any device to perform one or more steps of method 900. Illustrative processors include, but are not limited to, central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), combinations thereof, or any other suitable computing device known in the art.
[0124] like Figure 9 As shown, method 900 can begin with operation 902, wherein the current utilization rate of backup storage space used for the storage volume is monitored. In one aspect, monitoring the current utilization rate of backup storage space may include determining the total number of extent locations within the backup storage space currently filled with data backups. In another aspect, the current utilization rate may include the total percentage of extent locations currently filled with data backups.
[0125] Additionally, method 900 may proceed to operation 904, in which the current utilization rate is compared with a capacity threshold. In one aspect, the capacity threshold may be stored in metadata as one of several parameters of the backup storage space. In another aspect, the parameters may include a capacity utilization threshold (e.g., the amount of backup storage space currently being used).
[0126] Furthermore, method 900 can proceed to operation 906, wherein the size of the backup storage space is conditionally increased based on the comparison and a predetermined size limit. In one aspect, the parameters for the backup storage space may also include multiplier increments (e.g., multiplier increase amount, etc.). In another aspect, the parameters may include predetermined size limits, such as multiplier limits (e.g., the maximum multiplier allowed within the backup storage space, etc.).
[0127] Furthermore, in one aspect, the multiplier can indicate the size of the backup storage space to be created relative to the size of the storage volume to be protected. For example, a multiplier of 2 for a storage volume can indicate that the size of the backup storage space used for that storage volume will be twice the size of the storage volume. In another aspect, in response to determining that the current utilization exceeds a capacity threshold, a request to increase the size of the backup storage space used for the storage volume by a multiplier increment can be automatically generated. Over time, the size increase request can be gradually increased via the multiplier increment value until the multiplier limit is reached.
[0128] This allows for dynamic adjustment of the size of the backup storage space used for the storage volume. This ensures that the backup storage space is large enough to support a sufficient number of data backups of the storage volume as part of the LCP implementation. Consequently, it protects the data on the storage volume from data corruption / loss, which can further improve the performance of one or more physical computing devices utilizing the storage volume.
[0129] Figure 10 An exemplary extended storage environment 1000 according to one exemplary aspect is illustrated. As shown, backup storage space 1002 provides backup storage for storage volume 1004. For example, backup storage space 1002 may be created as part of a logical corruption protection (LCP) implementation for data within storage volume 1004.
[0130] Additionally, on a periodic basis, data backups can be created for storage volume 1004, and these backups can be stored in one of the original extents 1006A-E of backup storage space 1002. Original extents 1006A-E can be filled in a predetermined order from the first original extent 1006A to the last original extent 1006E, and can be populated according to a rolling buffer method. For example, before adding additional extents 1008A-D, after the first original extent 1006A is filled with a data backup (e.g., according to backup scheduling, etc.), the next adjacent original extent 1006B is selected to be filled in a predetermined order.
[0131] In addition, the rolling buffer method can specify that, within the backup storage space 1002, after the last original extent 1006E in the predetermined sequence is filled with data backup, the first original extent 1006A in the predetermined sequence is selected as the next extent to be filled.
[0132] Furthermore, in response to a request to increase the size of backup storage space 1002, additional extents 1008A-D can be added to backup storage space 1002. In one aspect, in response to adding additional extents 1008A-D to backup storage space, the current extent 1006C within backup storage space 1002 can be determined.
[0133] Furthermore, it can then be determined that intermediate extents 1006D and 1006E exist between the current extent 1006C and the first supplementary extent 1008A of the backup extension 1010. It can also be determined that these intermediate extents 1006D and 1006E are filled and need to expire before supplementary extents 1008A-D can be used within the backup storage space 1002. In response to identifying the filled intermediate extents 1006D and 1006E, the backup storage space 1002 can be marked as being in an extended state.
[0134] In response to determining that backup storage space 1002 is marked as being in an extended state, the use of additional extents 1008A-D can be prevented, and a notification can be sent that additional extents 1008A-D are not ready to be used and can only be used after the filled intermediate extents 1006D and 1006E have expired.
[0135] Users can be provided with the option to manually expire filled intermediate extents 1006D and 1006E. Alternatively, users can be provided with the option to expire filled intermediate extents 1006D and 1006E based on a previously established data backup scheduling and rolling buffer method.
[0136] Once it is determined that the populated intermediate extents 1006D and 1006E have expired, the extended status label can be removed from backup storage space 1002. In response to determining that backup storage space 1002 is not marked as extended, additional extents 1008A-1008D can be made available for use, and a notification can be sent to one or more users that additional extents 1008A-1008D are ready for use.
[0137] Then, according to the rolling buffer method, the additional extents 1008A-1008D can be used together with the original extents 1006A-1006E, which are part of the backup storage space 1002, to store data backups. Protected capacity expansion
[0138] When running Protected Replication (SGC), users may need to increase the number of backups, which will require increasing the protected capacity of the backups.
[0139] However, increasing the protected capacity requires removing the protected backup and deleting the protected backup volume. The user then needs to recreate the protected backup volume to the new desired size and restart the protected backup process. Furthermore, due to the complexity of user data layouts on backups, simply increasing the protected backup volume will not allow the new space to be used immediately.
[0140] In response, the updated design will allow users to issue a command to increase protected capacity and will notify them when new space becomes available. Users can continue running their protected sessions while waiting to be notified when new space becomes available.
[0141] SGC uses a rolling buffer mechanism to copy tracks (customer and metadata) to the backup volume. This keeps each protected backup contiguous on the backup volume. Adding new space at the end of the volume can cause tracks and protected backups to become scattered if the backup is wrapped around.
[0142] The new design will allow extension commands to be executed and the backup volume size to be increased. SGC will not use the new extension region until the protected backup volume is no longer in a wraparound situation. During the extension command: If the protected backup volume is in a wraparound state, a flag is set on the protected volume indicating that the protected volume is in an extended state. The extended capacity will not be used. If the protected backup volume is not in a wrapback state, no flag is set, and a notification is sent to the NI (e.g., a system component that reports information / events to the user) that the protected volume is ready for future backups.
[0143] When in an extended state, the backup relationship query indicates which backups need to expire to make the new extended area available, and the volume storage status query indicates whether the protected volume is in an extended state. Once all backups have expired and are no longer in an extended state, a notification is sent to NI to inform the user that the protected extended area is ready for use. The backup relationship query and volume storage status query will not display "Extended State". Automated management of protected replicated virtual capacity
[0144] Under varying workloads and host conditions, some volumes within a protected (SFG) session may require only two to three times the virtual capacity on the SFG volume. Conversely, some volumes within an SFG session may require nine to ten times the virtual capacity on the SFG volume. The amount of data transmitted to the SFG source volume can also vary over time.
[0145] For numerous SFG volumes to be monitored, manually managing multipliers can be difficult (if not impossible). As a result, methods to automate this process can be useful for users with large protected environments.
[0146] One aspect is that the parameters of the volume's virtual capacity can be monitored, and based on the values of these parameters, the protected volume can be automatically expanded when necessary.
[0147] To avoid the requirement of setting significantly higher values for all volumes, the increase of outlier volumes can be automatically / dynamically adjusted to proactively increase the value before backups begin to expire due to a lack of virtual capacity. This can reduce or even eliminate the number of backups expiring before the increase becomes active.
[0148] In one respect, the parameters being monitored can include (by storage volume / corresponding backup storage space): Capacity utilization threshold - a percentage of capacity above which a multiplier is applied. Multiplier increment - The increment by which the multiplier increases - can be a percentage or an integer. Multiplier limit - The maximum allowed multiplier
[0149] Based on predetermined intervals or events, the current environment can be monitored as follows (by storage volume / corresponding backup storage space): 1. Determine if any volumes are above the capacity utilization threshold. 2. If any volume exceeds the threshold, check if the multiplier is below the multiplier limit. 3. If the multiplier is below the multiplier limit, the backup capacity multiplier may be increased incrementally in multiple increments (specifying the backup storage space size as a multiple of the corresponding storage volume).
[0150] An example implementation is as follows:
[0151] The current parameters used for the example storage volume and the corresponding backup storage space include: The capacity utilization threshold is 50%. The multiplier increment is 1 The multiplier limit is 6. Each backup contains approximately 1 GB of data.
[0152] Exemplary management of this storage volume / corresponding backup storage space includes the following (assuming the size of the production volume is known in advance): 1. The current backup capacity multiplier is 3. 2. Create protected backups 1 and 2. 3. Monitor the parameters and see that the virtual capacity utilization rate has reached 50%. A. Issued an expansion command to increase the backup capacity to 4. No expansion is currently in progress. B. The current backup capacity multiplier is 4. 4. Create protected backups 3-8. Backups 1-5 are now expired internally. 5. Monitor the parameters and see that the virtual capacity utilization rate has reached 50%. A. Issue an expansion command to increase the backup capacity to 5. Expansion status is being set. B. The current backup capacity multiplier is 5. 6. Create protected backups 9-10. Backups 6-7 are now expiring internally. A. After the 7th backup period expired, no extension is currently in progress. 7. Create protected backups 11-13. Backups 7-9 are now expired internally. 8. Monitor the parameters and see that the virtual capacity utilization rate has reached 50%. A. Issued an expansion command to increase the backup capacity to 6. No expansion is currently in progress. B. The current backup capacity multiplier is 6. 9. Continue creating backups. After this point, the backup capacity cannot be increased due to reaching the multiplier limit.
[0153] The new parameters can be policies set in protected management software (such as CSM, GDPS, etc.). These policies can override protected sessions. In new protected replication implementations used in existing environments where workloads on volumes are stable, the backup multiplier increase can occur before the record buffer wraps around in the virtual capacity.
[0154] If the workload on a volume gradually increases, a sufficiently low capacity utilization threshold can lead to a multiplier increase that becomes effective before virtual capacity is exhausted. If an inactive volume suddenly experiences a significant increase in workload, one or more backups may expire before the multiplier increase becomes effective within a finite timeframe.
[0155] In one aspect, a method for performing automated backup replication volume expansion is provided, wherein the method includes configuring a capacity utilization threshold, a multiplier increment, and a multiplier limit in the storage management software of the backup replication system. Additionally, the method includes determining that the backup replication volume exceeds the capacity utilization threshold.
[0156] Furthermore, the method includes determining that the multiplier used for the backup replication volume is below the multiplier limit. Additionally, the method includes issuing an expansion command to increase the backup capacity in multiplier increments. Furthermore, the method includes internally expiring the old backup replication volume.
[0157] This invention can be a system, method, and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.
[0158] Computer-readable storage media can be tangible devices capable of retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable optical disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or recessed structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0159] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device, or downloaded via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network) to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.
[0160] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages (including object-oriented programming languages such as Smalltalk, C++, etc.) and procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some aspects, to perform aspects of this invention, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions to personalize the electronic circuits by utilizing the status information of the computer-readable program instructions.
[0161] Various aspects of the invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to various aspects of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0162] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other devices to operate in a particular manner, such that the computer-readable storage medium in which the instructions are stored includes an article of writing comprising instructions for implementing aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0163] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus or other device, perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0164] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various aspects of the invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the blocks may not occur in the order shown in the figures. For example, two blocks shown consecutively may actually be implemented as a single step, executed simultaneously, substantially simultaneously, with partial or complete time overlap, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.
[0165] Furthermore, depending on the aspects, the system may include a processor and logic integrated with and / or executable by the processor, which is configured to perform one or more of the processing steps described herein. "Integrated with" means that the processor has logic embedded therewith as hardware logic, such as an application-specific integrated circuit (ASIC), an FPGA, etc. "Executable by the processor" means that the logic is hardware logic; software logic, such as firmware, part of an operating system, part of an application; etc., or some combination of hardware and software logic that is accessible to the processor and configured to cause the processor to perform a certain function when executed by the processor. The software logic may be stored on local and / or remote memory of any memory type, as is known in the art. Any processor known in the art may be used, such as software processor modules and / or hardware processors, such as ASICs, FPGAs, central processing units (CPUs), integrated circuits (ICs), graphics processing units (GPUs), etc.
[0166] It is clear that the various features of the aforementioned systems and / or methods can be combined in any way, resulting in multiple combinations from the description presented above.
[0167] It should also be understood that various aspects of the present invention may be provided in the form of services deployed on behalf of customers, to provide services on demand.
[0168] For illustrative purposes, various aspects of the invention have been described, but are not exhaustive or limited to the disclosed aspects. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described aspects. The terminology used herein has been chosen to best explain the principles, practical applications, or technical improvements to existing technologies in the market, or to enable others skilled in the art to understand the aspects disclosed herein.
Claims
1. A computer-implemented method, comprising: Receive a request to increase the size of the backup storage space used for the storage volume; In response to the request, an additional disk area is added to the backup storage space; Identify the current partition location within the backup storage space; Determine whether there are any filled disk locations between the current disk location and the additional disk location added to the backup storage space; as well as Based on the determination, the additional disk area added to the backup storage space is conditionally utilized.
2. The computer-implemented method according to claim 1, wherein, When creating the backup storage space, the initial size of the backup storage space is determined.
3. The computer-implemented method according to claim 1 or 2, wherein, The request is automatically generated based on monitoring parameters used for the backup storage space and the storage volume, including: Capacity utilization threshold Multiplier increment, and Multiplier limit.
4. The computer-implemented method according to claim 1 or 2, wherein, The backup storage space is represented as a series of adjacent extents in a predetermined order, and the additional extent is added to the end of the series of adjacent extents in the predetermined order.
5. The computer-implemented method according to claim 1 or 2, wherein, The current disk location includes the location within the backup storage space where the next data backup will be stored.
6. The computer-implemented method according to claim 1, wherein, The current disk area position is determined using the rolling buffer method.
7. The computer-implemented method according to claim 1, further comprising: Determine whether any filled intermediate extents exist, wherein the filled intermediate extents include the extents currently storing data backups, and the extents are located in a predetermined order between the current extent location and the location of a first additional extent added to the backup storage space.
8. The computer-implemented method according to claim 1, further comprising: In response to the identification of one or more filled intermediate extents in a predetermined order between the current extent location and the first additional extent location, the backup storage space is marked as being in an extended state.
9. The computer-implemented method according to claim 8, further comprising: In response to determining that the backup storage space is marked as being in an extended state, the use of the additional disk area added to the backup storage space is prevented, and a notification is sent that the additional disk area added to the backup storage space is not ready to be used and can only be used after one or more filled intermediate disk areas have expired.
10. The computer-implemented method according to claim 8, further comprising: The system presents the user with the filled intermediate disk area that needs to expire and provides the user with the option to manually expire the filled intermediate disk area.
11. The computer-implemented method according to claim 8, further comprising: The user is presented with the filled intermediate disk area that needs to expire, and the user is provided with the option to expire the filled intermediate disk area according to the backup scheduling and rolling buffer method.
12. A computer program product for expanding storage capacity to implement logical corruption protection, the computer program product comprising program instructions executable by a processor to cause the processor to perform a method comprising: The processor receives a request to increase the size of the backup storage space used for the storage volume; In response to the request, the processor adds an additional disk area to the backup storage space; The processor identifies the current partition location within the backup storage space; The processor determines whether there are any filled disk locations between the current disk location and the additional disk location added to the backup storage space; as well as Based on the determination, the processor conditionally utilizes the additional disk area added to the backup storage space.
13. The computer program product according to claim 12, wherein, When creating the backup storage space, the initial size of the backup storage space is determined.
14. The computer program product according to claim 12 or 13, wherein, The request is automatically generated based on monitoring parameters used for the backup storage space and the storage volume, including: Capacity utilization threshold Multiplier increment, and Multiplier limit.
15. The computer program product according to claim 12 or 13, wherein, The backup storage space is represented as a series of adjacent extents in a predetermined order, and the additional extent is added to the end of the series of adjacent extents in the predetermined order.
16. The computer program product according to claim 12 or 13, wherein, The current disk location includes the location within the backup storage space where the next data backup will be stored.
17. The computer program product according to claim 12, wherein, The current disk area position is determined using the rolling buffer method.
18. The computer program product according to claim 12, wherein, The method further includes: determining whether there are any filled intermediate extents, wherein the filled intermediate extents include extents currently storing data backups, and the extents are located in a predetermined order between the current extent location and the location of a first additional extent added to the backup storage space.
19. The computer program product according to claim 12, wherein, The method further includes: in response to identifying one or more filled intermediate extents in a predetermined order between the current extent location and the first additional extent location, marking the backup storage space as being in an extended state.
20. The computer program product according to claim 19, wherein, The method further includes: in response to determining that the backup storage space is marked as being in an extended state, preventing the use of the additional disk area added to the backup storage space, and sending a notification that the additional disk area added to the backup storage space is not ready to be used and can only be used after one or more filled intermediate disk areas have expired.
21. The computer program product according to claim 19, wherein, The method further includes presenting the filled intermediate disk area that needs to expire to the user, and providing the user with the option to manually expire the filled intermediate disk area.
22. The computer program product according to claim 19, wherein, The method further includes presenting the filled intermediate disk area that needs to expire to the user, and providing the user with the option to expire the filled intermediate disk area according to the backup scheduling and rolling buffer method.
23. A computer system, comprising: processor; as well as Logic integrated with the processor and executable by the processor, or logic integrated with the processor and executable by the processor, wherein the logic is configured to: Receive a request to increase the size of the backup storage space used for the storage volume; In response to the request, an additional disk area is added to the backup storage space; Identify the current partition location within the backup storage space; Determine whether there are any filled disk locations between the current disk location and the additional disk location added to the backup storage space; as well as Based on the determination, the additional disk area added to the backup storage space is conditionally utilized.
Citation Information
Patent Citations
Systems, methods, and computer program products providing an elastic snapshot repository
US20160342609A1