Data Logical Corruption Protection
By adding an additional extent to the backup storage space and conditionally utilizing it based on determination, the method addresses the vulnerability of data loss during expansion, enhancing performance and ensuring data protection.
Patent Information
- Application Number
- JP2023507527
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-08-10
- Filing Date
- 2021-08-03
- Publication Date
- 2025-08-06
- Estimated Expiration
- 2041-08-03
AI Technical Summary
Current methods for increasing backup storage space in a storage volume require erasing existing data and creating a new larger space, leaving the storage volume vulnerable to data loss or corruption during the transition.
A method to increase backup storage space by adding an additional extent to the existing backup storage space, identifying current extent locations, and conditionally utilizing the additional space based on determination, without erasing the entire backup storage space.
This approach reduces processing requirements and improves performance by allowing dynamic adjustment of backup storage space without data loss, ensuring data protection and efficient expansion.
Smart Images

Figure 0007719578000001 
Figure 0007719578000002 
Figure 0007719578000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to implementing logical corruption protection (LCP) for data, and more particularly, the present invention relates to expanding storage capacity for implementing LCP. [Background technology]
[0002] To implement logical corruption protection (LCP) for data in a storage volume, a backup storage space may be created and used to store backups of data from the storage volume. For example, point-in-time snapshots of predetermined data in the storage volume may be created and stored in the backup storage space. These data backups may be used to restore data in a storage volume that is lost or corrupted.
[0003] However, currently, if one wishes to increase the size of a backup storage space, the backup storage space must first be erased along with all data backups stored in it, and then a replacement backup storage space larger than the original can be created. This not only requires significant processing by the LCP implementation, but also leaves the storage volume vulnerable to data loss / corruption between erasing the original backup storage space and storing the new data backups in the replacement backup storage space. Summary of the Invention
[0004] In one embodiment, a computer-implemented method includes receiving a request 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 a full extent location exists 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] In this manner, the size of the backup storage space for a storage volume may be increased without first erasing the entire backup storage space (and all stored data backups) and constructing a new backup storage space at the new size, thereby reducing the amount of processing required to expand the backup storage space and improving the performance of one or more tangible computing devices implementing such expansion.
[0006] In one aspect, the request is generated automatically based on monitoring parameters of the backup storage space and storage volume, including a capacity usage threshold, a multiplier increment amount, and a multiplier limit.
[0007] According to another aspect, a computer program product for expanding storage capacity to implement logical corruption protection comprises a computer-readable storage medium having program instructions embodied thereon, the computer-readable storage medium being not a transient signal per se, and the program instructions being executable by a processor to cause the processor to perform a method including receiving, by the processor, a request to increase a size of backup storage space for a storage volume; adding, by the processor, an additional extent to the backup storage space in response to the request; identifying, by the processor, a current extent location within the backup storage space; determining, by the processor, whether a full extent location exists between the current extent location and the additional extent added to the backup storage space; and conditionally utilizing, by the processor, the additional extent added to the backup storage space based on the determination.
[0008] In one aspect, the current extent position is determined according to a rolling buffer scheme.
[0009] According to another aspect, a system includes a processor and logic integrated with, executable by, or integrated with and executable by the processor, the logic being configured to receive a request to increase a size of backup storage space for a storage volume, add an additional extent to the backup storage space in response to the request, identify a current extent location within the backup storage space, determine whether a full extent location exists between the current extent location and the additional extent added to the backup storage space, and conditionally utilize the additional extent added to the backup storage space based on the determination.
[0010] According to another aspect, a computer-implemented method includes monitoring current usage of backup storage space for a storage volume, comparing the current usage to a capacity threshold, and conditionally increasing the size of the backup storage space based on the comparing and a predetermined size limit.
[0011] According to another aspect, a computer program product for automating management of backup storage space comprises a computer-readable storage medium having program instructions embodied thereon, the computer-readable storage medium being not a transient signal per se, and the program instructions being executable by a processor to cause the processor to perform a method including monitoring, by the processor, a current usage of backup storage space for a storage volume; comparing, by the processor, the current usage to a capacity threshold; and conditionally increasing, by the processor, a size of the backup storage space based on the comparing and a predetermined size limit.
[0012] In this manner, the size of the backup storage space may be dynamically adjusted to accommodate the storage volume, thereby ensuring 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, thereby ensuring data protection for the storage volume from data corruption / loss and further improving the performance of one or more tangible computing devices utilizing the storage volume.
[0013] Other aspects and embodiments of the present invention will become apparent from the following detailed description, taken in conjunction with the drawings, illustrating by way of example the principles of the invention. [Brief explanation of the drawings]
[0014] [Figure 1] 1 illustrates a cloud computing environment in accordance with an aspect of the present invention.
[0015] [Figure 2] 1 illustrates an abstraction model layer according to an aspect of the present invention.
[0016] [Figure 3] 1 illustrates a cloud computing node according to an aspect of the present invention.
[0017] [Figure 4] 1 illustrates an exemplary tiered data storage system in accordance with an aspect of the present invention.
[0018] [Figure 5] 1 illustrates an exemplary safeguard backup configuration in accordance with an aspect of the present invention.
[0019] [Figure 6] 1 illustrates an exemplary CSM safeguard copy session according to one aspect of the present invention.
[0020] [Figure 7] 1 illustrates an exemplary safeguard copy configuration in accordance with an aspect of the present invention.
[0021] [Figure 8] 1 illustrates a flowchart of a method for expanding storage capacity to implement logical corruption protection, according to an aspect of the present invention.
[0022] [Figure 9] 1 illustrates a flowchart of a method for automating management of backup storage space in accordance with an aspect of the present invention.
[0023] [Figure 10] 1 illustrates an exemplary extended storage environment in accordance with an aspect of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0024] The following description is made for the purpose of illustrating the general principles of this invention and is not meant to limit the inventive concepts claimed herein. Furthermore, particular features described herein can be used in combination with other described features in each of the various possible combinations and permutations.
[0025] Unless otherwise specifically defined herein, all terms are to be given their broadest possible interpretation, including the meanings suggested by this specification, the meanings understood by a person skilled in the art, or the meanings defined in dictionaries, treatises, etc., or a combination thereof.
[0026] It should also be noted that, as used in this specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless otherwise specified. It will be further understood that the terms "comprises" and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, or components, or combinations thereof, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof, or combinations thereof.
[0027] The following description discloses several aspects of expanding storage capacity to implement 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; 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 a full extent location exists 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] In this manner, the size of the backup storage space for a storage volume may be increased without first erasing the entire backup storage space (and all stored data backups) and constructing a new backup storage space at the new size, thereby reducing the amount of processing required to expand the backup storage space and improving the performance of one or more tangible computing devices implementing such expansion.
[0030] In one general aspect, the request is automatically generated based on monitoring parameters of the backup storage space and storage volume, including a capacity usage threshold, a multiplier increment amount, and a multiplier limit.
[0031] According to another general aspect, a computer program product for expanding storage capacity to implement logical corruption protection comprises a computer-readable storage medium having program instructions embodied thereon, the computer-readable storage medium being not a transient signal per se, but the program instructions being executable by a processor to cause the processor to perform a method, the method including receiving, by the processor, a request to increase a size of backup storage space for a storage volume; adding, by the processor, an additional extent to the backup storage space in response to the request; identifying, by the processor, a current extent location within the backup storage space; determining, by the processor, whether a full extent location exists between the current extent location and the additional extent added to the backup storage space; and conditionally utilizing, by the processor, the additional extent added to the backup storage space based on the determination.
[0032] In one general aspect, the current extent position is determined according to a rolling buffer scheme.
[0033] According to another general aspect, a system includes a processor and logic integrated with, executable by, or integrated with and executable by the processor, the logic being configured to receive a request to increase a size of backup storage space for a storage volume, add an additional extent to the backup storage space in response to the request, identify a current extent location within the backup storage space, determine whether a full extent location exists 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 current usage of backup storage space for a storage volume, comparing the current usage to a capacity threshold, and conditionally increasing a size of the backup storage space based on the comparing and a predetermined size limit.
[0035] According to another general aspect, a computer program product for automating management of backup storage space includes a computer-readable storage medium having program instructions embodied thereon, the computer-readable storage medium being not a transient signal per se, and the program instructions being executable by a processor to cause the processor to perform a method, the method including monitoring, by the processor, a current usage of backup storage space for a storage volume; comparing, by the processor, the current usage to a capacity threshold; and conditionally increasing, by the processor, a size of the backup storage space based on the comparing and a predetermined size limit.
[0036] In this manner, the size of the backup storage space may be dynamically adjusted to accommodate the storage volume, thereby ensuring 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, thereby ensuring data protection for the storage volume from data corruption / loss and further improving the performance of one or more tangible computing devices utilizing the storage volume.
[0037] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, aspects of the present invention may be implemented in conjunction with any other type of computing environment now known or later 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, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with the service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0039] The characteristics are as follows:
[0040] On-demand self-service: Cloud customers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without the need for human interaction with the service provider.
[0041] Wide network access: Capabilities are available over the network and are accessed through standard mechanisms that facilitate use by heterogeneous thin-client or thick-client platforms (e.g., cell phones, laptops, and PDAs).
[0042] Resource Pooling: Providers pool their computing resources to serve multiple customers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. Customers generally have no control over or knowledge of the exact location of the resources provided, but there is a sense of location independence in that the location can be specified at a higher level of abstraction (e.g., country, state, or data center).
[0043] Rapid Elasticity: Capacity can be rapidly and elastically provisioned, sometimes automatically, to quickly scale out, and rapidly released to quickly scale in. To the consumer, the capacity available for provisioning is often presented as unlimited, and can be purchased at any time in any quantity.
[0044] Metering Services: By leveraging metering capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts), cloud systems automatically control and optimize resource usage. The ability to monitor, control, and report resource usage provides transparency to both providers and consumers of the services used.
[0045] The service model is as follows:
[0046] Software as a Service (SaaS): The capability offered to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications can be accessed from a variety of client devices through a thin-client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
[0047] Platform as a Service (PaaS): The capability offered to customers is the deployment of customer-created or acquired applications, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The customer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of the application's hosting environment.
[0048] Infrastructure as a Service (IaaS): The capability provided to a customer is the provisioning of processing, storage, network, and other basic computing resources onto which the customer can deploy and run any software (which may include operating systems and applications). The customer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, deployed applications, and possibly limited control over selected network components (e.g., host firewalls).
[0049] The deployment model is as follows:
[0050] Private Cloud: Cloud infrastructure operates exclusively for an organization. It is managed by the organization or a third party and may reside on-premise or off-premise.
[0051] Community Cloud: Cloud infrastructure is shared among multiple organizations to support a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It may be managed by the organization or a third party and may reside on-premises or off-premises.
[0052] Public Cloud: Cloud infrastructure is available to the general public or large industry organizations and is owned by organizations that sell cloud services.
[0053] Hybrid cloud: A cloud infrastructure is a composite of two or more clouds (private, community, or public) that are distinct entities but are tied together by standardized or proprietary technologies that allow for data and application portability (e.g., cloud bursting for load balancing between clouds).
[0054] Cloud computing environments are service-oriented, emphasizing statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that comprises a network of interconnected nodes.
[0055] Referring now to FIG. 1 , an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud customers (e.g., personal digital assistants (PDAs) or mobile phones 54A, desktop computers 54B, laptop computers 54C, or automotive computer systems 54N, or combinations thereof) can communicate. The nodes 10 may communicate with each other. They may be physically or virtually grouped (not shown) in one or more networks (e.g., private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above). This enables the cloud computing environment 50 to provide infrastructure, platforms, or software, or combinations thereof, as a service, thereby eliminating the need for cloud customers to maintain resources on their local computing devices. It will be understood that the types of computing devices 54A-N shown in FIG. 1 are intended to be illustrative only, and that computing node 10 and cloud computing environment 50 can communicate with any type of computerized device (e.g., using a web browser) through any type of network, or network-addressable connection, or combination thereof.
[0056] Referring now to Figure 2, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 1) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 2 are intended to be illustrative only, and aspects of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0057] Hardware and software layer 60 comprises hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture-based server 62, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0058] The virtual layer 70 provides an abstraction layer from which examples of virtual entities that may be provided include virtual servers 71, virtual storage 72, virtual networks 73 (including virtual private networks), virtual applications and operating systems 74, and virtual clients 75.
[0059] In one embodiment, management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic acquisition of computing resources and other resources utilized to accomplish tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and accounting or billing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud users and tasks, and protection of data and other resources. User portal 83 provides users and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources to meet required service levels. Service level agreement (SLA) planning and fulfillment 85 provides pre-organization and acquisition of cloud computing resources for anticipated future needs in accordance with SLAs.
[0060] The workload layer 90 provides examples of functionality that may utilize a cloud computing environment. Examples of workloads and functionality that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and logical corruption protection (LCP) 96.
[0061] 3, a schematic diagram of an example cloud computing node is shown. Cloud computing node 10 is merely one example of a suitable cloud computing node and is not intended to suggest any limitation as to the scope of use or functionality of the aspects of the present invention described herein. In any event, cloud computing node 10 may implement and / or perform any of the functionality described above.
[0062] Cloud computing node 10 includes computer system / server 12, which operates in many other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with 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 including any of the above systems or devices.
[0063] The computer system / server 12 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. The computer system / server 12 may also be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.
[0064] 3, computer system / server 12 within cloud computing node 10 is shown in the form of a general-purpose computing device. Components of 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 coupling various system components including system memory 28 to processor 16.
[0065] Bus 18 represents any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, a processor or local bus using any of a variety of bus architectures, including, by way of example and not limitation, an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.
[0066] Computer system / server 12 typically includes a variety of computer system-readable media, which may be any available media that can be accessed by computer system / server 12 and includes both volatile and nonvolatile 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 or cache memory 32, or a combination thereof. 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, but commonly referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading from and writing to removable, non-volatile magnetic disks (e.g., "floppy disks"), and an optical disk drive may be provided for reading from or writing to removable, non-volatile optical disks, such as CD-ROMs, DVD-ROMs, or other optical media. In such cases, each may be connected to bus 18 by one or more data media interfaces. As further shown and described below, memory 28 may include at least one program product having a set (e.g., at least one) program module configured to implement the functionality of aspects of the present invention.
[0068] A program / utility 40 having a set (at least one) program module 42 may be stored in memory 28, by way of example and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each operating system, one or more application programs, other program modules, and program data, or any combination thereof, may include an implementation of a network environment. Program modules 42 generally implement the functions or methods, or combinations thereof, of aspects of the present invention 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, one or more devices that allow a user to interact with computer system / server 12, or any device that allows computer system / server 12 to communicate with one or more other computing devices (e.g., a network card, modem, etc.), or combinations thereof. Such communication may occur via input / output (I / O) interface 22. Furthermore, computer system / server 12 may also communicate with one or more networks, examples of which include a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet) via network adapter 20, or combinations thereof. As shown, network adapter 20 communicates with other components of computer system / server 12 via bus 18. Although not shown, it should be understood that other hardware or software components, or combinations thereof, may be used with computer system / server 12. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems.
[0070] Referring now to FIG. 4, a storage system 400 according to one embodiment is illustrated. Note that some of the elements illustrated in FIG. 4 may be implemented as hardware or software, or a combination thereof, according to various embodiments. The storage system 400 may include a storage system manager 412 for communicating with a plurality of media on at least one upper storage tier 402 and at least one lower storage tier 406. The upper storage tier 402 may preferably include one or more random-access or direct-access media 404, or a combination thereof, examples of which may include a hard disk in a hard disk drive (HDD), non-volatile memory (NVM), solid-state memory in a solid-state drive (SSD), flash memory, an SSD array, a flash memory array, or the like, or others described herein or known in the art, or a combination thereof. The lower storage tier 406 may preferably include one or more lower performance storage media 408, including sequential access media such as magnetic tape in a tape drive or optical media, or a combination thereof, slower access HDDs, slower access SSDs, or the like, or others described herein or known in the art, or combinations thereof. The one or more additional storage tiers 416 may include any combination of storage memory media as desired by the designer of the system 400. Also, either the upper storage tier 402 or the lower storage tier 406, or a combination thereof, may include some combination of storage devices or storage media or both.
[0071] The storage system manager 412 may communicate with the storage media 404, 408 on the upper storage tier 402 and the lower storage tier 406 via a network 410, such as a storage area network (SAN) as shown in FIG. 4, or some other suitable form of network. The storage system manager 412 may 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, or other components of the storage system 400, or combinations thereof, may be implemented in hardware or software, or a combination thereof, and may use a processor (not shown), such as a central processing unit (CPU), field programmable gate array (FPGA), application specific integrated circuit (ASIC), or the like, to execute commands of a type known in the art. Of course, any organization of storage systems may be used, as will be apparent to those skilled in the art upon reading this specification.
[0072] In more particular embodiments, storage system 400 may include any number of data storage tiers, each containing the same or different storage memory media. For example, each data storage tier may contain the same type of storage memory media, such as HDDs, SSDs, sequential access media (e.g., tapes in tape drives, optical disks in optical disk drives), direct access media (e.g., CD-ROMs, DVD-ROMs), or any combination of media storage formats. In one such configuration, upper storage tier 402 may contain a majority of SSD storage media for storing data in a higher-performance storage environment, while the remaining storage tiers, including lower storage tier 406 and additional storage tier 416, may contain any combination of SSDs, HDDs, tape drives, etc. for storing data in a lower-performance storage environment. In this manner, more frequently accessed data, data having a higher priority, data needing to be accessed more quickly, etc. may be stored in upper storage tier 402, while data that does not possess any of these attributes may be stored in additional storage tier 416 (including lower storage tier 406). Of course, one skilled in the art, upon reading this description, will be able to devise many other combinations of storage media types and implement them into different storage schemes in accordance with the aspects presented herein.
[0073] According to some aspects, a storage system (e.g., 400) may include logic configured to receive a request and open a dataset, logic configured to determine whether the requested dataset is stored in multiple associated portions in a lower storage tier 406 of the tiered data storage system 400, logic configured to move each associated portion of the requested dataset to an upper storage tier 402 of the tiered data storage system 400, and logic configured to assemble the requested dataset from its associated portions on the upper storage tier 402 of the tiered data storage system 400.
[0074] Of course, this logic may be implemented in various ways, as a method on any device or system or combination thereof, or as a computer program product. [LOGICAL DATA CORRUPTION]
[0075] In one aspect, logical data corruption occurs when data storage hardware is intact and functioning normally, but stored data is corrupted and / or destroyed at the content level. This can occur as a result of intentional or unintentional data erasure, encryption, and manipulation. For example, sources of application corruption that can result in logical data corruption include user error, inadvertent or malicious destruction of data, and the implementation of ransomware, which can encrypt data without authorization.
[0076] To address logical data corruption, Logical Corruption Protection (LCP) may require the implementation of content-aware solutions. For example, Safeguard Copy (SGC) may implement LCP for data stored in a distributed storage system to identify logical data corruption events and recover from such events. [Illustrative Purposes of Safeguard Copy]
[0077] In one aspect, the safeguard copy has the following exemplary purposes: • Allows creation of many recovery copies across multiple volumes or storage systems with optimized capacity usage and minimal performance impact. ● Keep your production environment running while making previous recovery points available on a set of recovery volumes. ● Safeguard copies of data to prevent accidental or deliberate infringement. ● Device numbers and host device addresses of distributed storage systems should not be used.
[0078] A safeguard copy may differ from a point-in-time full-volume snapshot of data, which provides an immediately accessible copy of a production volume, with each copy being independent from the others from a data perspective. [Example safeguard copy behavior]
[0079] FIG. 5 illustrates an exemplary safeguard backup configuration 500, according to one exemplary embodiment. As shown, safeguard copies provide the ability to create multiple recovery points 502 for a production volume 504 (e.g., a storage volume, such as a source / safeguard source). These recovery points 502 are referred to as safeguard backups (e.g., backups / SG backups). In one embodiment, the recovery data is stored in a backup storage space 506, referred to as the safeguard backup capacity (SGBC), rather than in a separate regular volume. The backups are not directly accessible by the host. The data is only usable after the backup is restored to a separate recovery volume 508.
[0080] Once the recovery point 502 is restored to the recovery volume 508, it can be accessed using a recovery system 510, which may or may not be the same as the production system 512, depending on security requirements. Asynchronous data copying / mirroring may be used to restore the data from the recovery system 510 to the production volume 504. The production volume 504 may be located in the same or a different distributed data storage system as the recovery volume 508.
[0081] A production environment may consist of hundreds or thousands of volumes 504 across one or more storage systems. A key aspect of logical corruption protection is providing recovery points that are consistent across all volumes that are part of the backup. These recovery points are called consistency groups (CGs). [Example backup management]
[0082] Safeguard copy backups may be protected from unintentional or intentional tampering. For example, users cannot manually create, delete, or restore them using the distributed storage system management interface. An instance of a Copy Services Manager (CSM) may be used to accomplish these tasks. The CSM may use the session concept to manage complete consistency groups.
[0083] FIG. 6 illustrates an exemplary CSM safeguard copy session 600, according to one exemplary embodiment. As shown, session 600 includes multiple copy sets 606A-N, one copy set for each production volume to be backed up. Each of the multiple copy sets 606A-N includes a production / source / storage volume 604A-N and a recovery volume 602A-N, with an associated safeguard backup capacity 608A-N (e.g., backup storage space). The CSM performs actions such as backup and recovery across session 600. The CSM may perform these operations automatically using a built-in scheduler.
[0084] The CSM also manages the lifecycle of backups: you can specify a retention period for backups, and the CSM may automatically expire (delete) backups that are no longer needed after the retention period, simplifying management and ensuring consistency across sessions. [Example safeguard backup capacity]
[0085] The safeguard backup capacity 608A-N may be thin provisioned. Small extents may be used to improve efficiency. If there is no existing safeguard backup, the safeguard backup capacity is purely virtual capacity associated with the source volume. Physical storage space is allocated when the backup is created, and data overwritten on the original volume is saved in the backup. Backup data is saved in tracks.
[0086] A maximum amount of safeguard backup capacity may be specified for each volume to be backed up. When the specified capacity is reached, the oldest backup is automatically deleted to free up space. As long as a safeguard backup exists for a given volume, purging of the associated safeguard backup capacity may be prevented. When a storage pool runs out of physical space, regardless of whether the data is for backup or production, the distributed storage system may send notifications according to the pool configuration. Safeguard backups may be automatically deleted by microcode when it is determined that the storage pool's physical space used in the safeguard relationship has been exhausted (e.g., when the amount of available physical space falls below a threshold amount). [Example safeguard copy backup]
[0087] When a safeguard copy backup is initiated, the distributed storage system creates a consistency group. It sets up metadata and bitmaps to track updates to the production volume. After the backup is set up, the distributed storage system copies data that will be overwritten by host I / O from the production volume to the consistency group's logged location in the safeguard backup volume.
[0088] When the next backup begins, the distributed storage system may close the previous backup and create a new consistency group. Therefore, the system may not need to maintain each backup individually. To restore to a specific recovery point, the distributed storage system requires all backups that are newer than the backup being recovered.
[0089] To minimize the impact of creating a consistency group, the Safeguard Copy backup process consists of three stages: 1. Reservation: In this stage, the distributed storage system prepares to create a new safeguard backup. The system sets up the necessary bitmaps and prepares the metadata in the safeguard copy space. It also ensures that all data changed since the previous backup is stored in the consistency group log. Once all preparations are complete, the actual consistency group formation can take place. 2. Check-in: To create a consistency group, the distributed storage system must briefly pause all updates to all volumes in the CG. This is done by presenting an Extended Long Term Busy (ELB) state. If the data in the cache is consistent, the logs of the previous consistency group for all affected volumes are also consistent because they have been closed. The distributed storage system then writes further backup data to the logs of the new backup consistency group. 3. Completion: The distributed storage system releases the ELB and write operations can continue. The copy service manager automatically coordinates and executes these steps to minimize the impact on host operations. [Example Safeguard Copy Recovery]
[0090] Users may recover any recovery point to a separate recovery volume. This volume must be at least the same capacity as the production volume and may be thin-provisioned. Users may perform recovery with or without background copying. Users may specify a no-copy command if the recovered data is needed for only a limited period of time, or a copy command if it is intended for long-term use. Users can initiate recovery of safeguard copies through the CSM.
[0091] 7 illustrates an exemplary safeguard copy configuration 700, according to one exemplary embodiment. As shown, safeguard copy configuration 700 includes a production volume 702 (e.g., a storage volume), a recovery volume 704, and four safeguard backups representing four recovery points (e.g., 706A at t1 through 706D at t4 of a consistency group log, where t4 is the most recent) stored within a backup storage space. In one embodiment, a no-copy option can be used to recover to a point in time t2. Recovery includes the following stages: 1. The distributed storage system establishes a point-in-time snapshot of the data from the production volume 702 to the recovery volume 704, making the recovery volume 704 identical to the production volume 702. 2. The distributed storage system then creates a recovery bitmap 708, which represents all data that has changed since time t2 and must be referenced from the consistency group logs 706D at t4, 706C at t3, and 706B at t2, rather than from the production volume 702.
[0092] From this point on, read and write access may be accomplished using recovery volume 704. When recovery system 710 reads data from recovery volume 704, the distributed storage system examines recovery bitmap 708 to determine whether the requested data should be fetched from production volume 702 or from one of consistency group logs t1 706A through t4 706D. If the same track appears in multiple backups, the system may use the "oldest" instance (the instance closest to recovery point t2 706B).
[0093] When recovery system 710 writes to recovery volume 704, one of two cases can occur. Full track write: The distributed storage system can write directly to the recovery volume 704 without regard for existing data. ● Partial track writes: The distributed storage system must first fetch the existing data according to the rules above and then apply the updates.
[0094] When performing recovery with background copy, the distributed storage system follows the same rules to copy all data in the background from the production volume 702 and consistency group logs t1 706A to t4 706D to the recovery volume 704. The recovery volume 704 can be accessed at any time, even while the background copy is still running.
[0095] When restoring data to the original production volume 702, several options are available. Full Volume Restore: Global copy may be used to replicate data from recovery volume 704 to production volume 702. Production volume 702 may be on the same or a different distributed storage system as recovery volume 704. Selective restore: Either production volume 702 is available to recovery system 710, or recovery volume 704 is available to production system 712. Standard operating system or application methods may then be used to copy the required data from recovery volume 704 to production volume 702.
[0096] Referring now to Figure 8, there is shown a flowchart of a method 800 according to one embodiment. Method 800 may be performed in accordance with the present invention in any of the environments shown in Figures 1-7 and 10, among other embodiments. Of course, those skilled in the art will understand, upon reading this specification, that method 800 may include more or fewer operations than those specifically illustrated in Figure 8.
[0097] The steps of method 800 may be performed by any suitable component of an operating environment. For example, in various embodiments, method 800 may be performed in part or in whole by one or more servers, computers, or any other device having one or more processors therein. A processor (e.g., a processing circuit, chip, or module, or a combination thereof) implemented in hardware or software or a combination thereof, preferably having at least one hardware component, may be utilized in any device to perform one or more steps of method 800. Exemplary processors include, but are not limited to, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or the like, combinations thereof, or any other suitable computing device known in the art.
[0098] 8, method 800 begins with operation 802, where a request to increase the size of backup storage space for a storage volume is received. In one aspect, the storage volume may be comprised within an interconnected storage system (e.g., a distributed data storage system, etc.). In another aspect, the storage volume may be comprised within a single device (e.g., within a single disk operating system (DOS) system, etc.). In yet another aspect, the storage volume may comprise one or more tangible storage drives.
[0099] Additionally, in one aspect, backup storage space may be created as part of a logical corruption protection (LCP) implementation of data within a storage volume. For example, an LCP implementation may create data backups (e.g., recovery points) of a storage volume. For example, each data backup may include a point-in-time snapshot of predetermined data within the storage volume. In another example, each data backup may be associated with a particular date and time the snapshot was taken. In yet another example, data backups may be created periodically according to a predetermined schedule.
[0100] Additionally, in one aspect, the LCP implementation may store recovery points in a backup storage space, where the backup storage space is inaccessible from the host utilizing the storage volume. In another aspect, in response to the occurrence of one or more errors in the storage volume, the recovery points may be restored to a recovery volume that is separate from the storage volume. In yet another aspect, the recovery volume may be accessed by a recovery system that is separate from the system implementing the storage volume. Data may then be restored from the recovery system to the storage volume.
[0101] Still further, in one aspect, the backup storage space may include data storage that is physically, logically, or both separate from the storage volume. In another aspect, the backup storage space may be located within the same physical device as the storage volume. In yet another aspect, the backup storage space may be located within a different physical device than the storage volume. In yet another aspect, both the backup storage space and the storage volume may comprise physical data storage (e.g., one or more tangible data storage drives, etc.).
[0102] In one aspect, the backup storage space may also be known as a backup capacity, a safeguard backup capacity, etc. In another aspect, the storage volume may also be known as a host volume, a production volume, etc. In yet another aspect, the initial size of the backup storage space may be determined when the backup storage space is created as part of the LCP implementation. For example, the initial size of the backup storage space may be a predetermined multiple of the size of the storage volume.
[0103] Additionally, in one aspect, the request may be received in response to a manual user request. In another aspect, the request may be received in response to a determination that the number or frequency of data backups, or a combination thereof, should be increased. In yet another aspect, the request may be generated automatically based on monitoring parameters of backup storage space, storage volume, or a combination thereof.
[0104] For example, the management application may monitor parameters of backup storage space and storage volumes. In another example, the parameters may include a capacity usage threshold (e.g., a threshold amount of backup storage space currently in use). In yet another example, the parameters may include a multiplier increment amount (e.g., an amount by which the multiplier is increased).
[0105] In another example, the parameters may include a multiplier limit (e.g., a maximum allowed multiplier, etc.). In yet another example, the multiplier may represent a 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 represent that the size of the backup storage space for such a storage volume will be twice the size of the storage volume.
[0106] In yet another example, the management application may automatically generate a request to increase the size of the backup storage space for a storage volume by a multiplier increment in response to determining that the amount of backup storage space currently in use exceeds a capacity usage threshold. In yet another example, the size increase request may be increased incrementally by the multiplier increment until a multiplier limit is reached.
[0107] Further, method 800 will proceed to operation 804, where an additional extent is added to the backup storage space in response to the request. In one aspect, an extent may comprise a predetermined data storage location within tangible data storage hardware used by the backup storage space. In another aspect, the extent may have a uniform predetermined size, or the extents may vary in size.
[0108] Still further, in one aspect, the backup storage space may be represented as a series of contiguous extents in a predetermined order. In another aspect, additional extents may be added to the end of the series of contiguous extents in a predetermined order. In yet another aspect, additional extents may be added by allocating additional data storage locations within tangible data storage hardware used by the backup storage space.
[0109] The method 800 also proceeds to operation 806, where a current extent location is identified within the backup storage space. In one embodiment, the current extent location may include a location at which the next data backup will be stored within the backup storage space. In another embodiment, the current extent location may be determined according to a rolling buffer scheme.
[0110] For example, the backup storage space may include multiple adjacent extent locations arranged in a predetermined order. After the current extent location is filled with data backup (e.g., according to a data backup schedule), the next adjacent extent location in the predetermined order is selected. In another example, a rolling buffer scheme may specify that when the last extent location in the predetermined order in the backup storage space is filled with data backup, the first extent location in the predetermined order is selected as the next extent location to be filled. This allows a circular buffer to be created in the backup storage space.
[0111] Additionally, in one aspect, when filling an extent location with a new data backup, in response to determining that the extent location is filled with a previous data backup, the previous data backup is deleted / expired and the new data backup is stored in the extent location.
[0112] Further, method 800 will proceed to operation 808 to determine whether there are any filled extent locations between the current extent location and the additional extent added to the backup storage space. In one aspect, it may be determined whether there are any filled intermediate extents, where the filled intermediate extents include extents currently storing data backups and 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 current extent location reaches the additional extent added to the backup storage space.
[0113] Still further, method 800 will proceed to operation 810, where the additional extent added to the backup storage space is conditionally utilized based on the determination. In one aspect, in response to identifying that one or more filled intermediate extents exist in a predetermined order between the current extent location and the first additional extent location, the backup storage space may be labeled as being in an expanding state.
[0114] For example, a backup storage space may be labeled as being in an expanded state by adjusting the metadata of the backup storage space, setting one or more flags within the backup storage space, etc.
[0115] Also, in one aspect, in response to determining that the backup storage space is labeled as being in an expanded state, the additional extents added to the backup storage space may be prevented from being used, and a notification may be sent (e.g., to one or more users, one or more applications, etc.) that the additional extents added to the backup storage space are not ready for use and can only be used after one or more filled intermediate extents have expired. In another aspect, the user may be presented with filled intermediate extents that need to expire, and the user may be given the option to manually expire the filled intermediate extents.
[0116] Additionally, in one aspect, the user may also be given the option to expire filled intermediate extents according to a backup schedule and rolling buffer scheme (e.g., when a new data backup replaces a data backup stored in an intermediate extent). In another aspect, once all filled intermediate extents are determined to have expired, the expansion state label may be removed from the backup capacity.
[0117] Further, in one aspect, in response to determining that the backup capacity is not labeled as being in an expanded state (e.g., the flag is not set / there are no one or more filled intermediate extents between the current extent location and the first additional extent location), the additional extents added to the backup storage space may be made available for use, and a notification may be sent to one or more users that the additional extents are ready for use. In another aspect, the additional extents may then be used to store data backups according to a rolling buffer scheme along with the original extents of the backup storage space.
[0118] Still further, in one aspect, there may be multiple different backup storage spaces for multiple different storage volumes within a single safeguard capacity session. For example, filled intermediate extents may be identified for each of the multiple backup storage spaces, potentially affecting the use of additional extents added to the backup storage spaces, as indicated above.
[0119] Also, in one aspect, all of the above operations may be performed by one or more of the tangible systems that include the storage volume, by the storage volume itself, or by a system separate from the storage volume.
[0120] In this manner, the size of the backup storage space for a storage volume may be increased without first erasing the entire backup storage space (and all stored data backups) and constructing a new backup storage space at the new size, thereby reducing the amount of processing required to expand the backup storage space and improving the performance of one or more tangible computing devices implementing such expansion.
[0121] Additionally, while adding additional extents to the backup storage space, access to the original extents of the backup storage space may continue to be permitted. This may enable storing periodic backups of the data volume and may ensure that the LCP implementation continues to be applied to the data in the storage volume while the backup storage space is being expanded. As a result, data in the storage volume may be protected from data corruption / loss while the backup storage space is being expanded, thereby preventing data loss and further improving the performance of one or more tangible computing devices utilizing the storage volume.
[0122] Referring now to Figure 9, a flowchart of a method 900 for automating management of backup storage space is shown, according to one embodiment. Method 900 may be performed in accordance with the present invention in any of the environments shown in Figures 1-7 and 10, among other embodiments. Of course, those skilled in the art will understand, upon reading this specification, that method 900 may include more or fewer operations than those specifically illustrated in Figure 9.
[0123] The steps of method 900 may be performed by any suitable component of an operating environment. For example, in various embodiments, method 900 may be performed in part or in whole by one or more servers, computers, or any other device having one or more processors therein. A processor (e.g., a processing circuit, chip, or module, or a combination thereof) implemented in hardware or software or a combination thereof, preferably having at least one hardware component, may be utilized in any device to perform one or more steps of method 900. Exemplary processors include, but are not limited to, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or the like, combinations thereof, or any other suitable computing device known in the art.
[0124] 9, method 900 begins with operation 902, in which current usage of backup storage space for a storage volume is monitored. In one aspect, monitoring current usage of backup storage space may include determining a total number of extent locations in the backup storage space that are currently filled with data backup. In another aspect, current usage may include a total percentage of extent locations that are currently filled with data backup.
[0125] Additionally, method 900 will proceed to operation 904, where the current usage is compared to a capacity threshold. In one aspect, the capacity threshold may be stored in the metadata as one of multiple parameters for the backup storage space. In another aspect, the parameter may include a capacity usage threshold (e.g., a threshold amount of backup storage space currently in use).
[0126] Further, method 900 will proceed to operation 906, where the size of the backup storage space is conditionally increased based on the comparison and the predetermined size limit. In one aspect, the parameters of the backup storage space may also include an increment amount of the multiplier (e.g., the amount by which the multiplier is increased, etc.). In another aspect, the parameters may include a predetermined size limit, such as a multiplier limit (e.g., the maximum multiplier allowed in the backup storage space, etc.).
[0127] Still further, in one aspect, a multiplier may represent 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 may represent that the size of the backup storage space for such a storage volume will be twice the size of the storage volume. In another aspect, a request to increase the size of the backup storage space for a storage volume by a multiplier increment may be automatically generated in response to determining that current usage exceeds a capacity threshold. Over time, the size increase request may be gradually increased by the multiplier increment until a multiplier limit is reached.
[0128] In this manner, the size of the backup storage space may be dynamically adjusted to accommodate the storage volume, thereby ensuring 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, thereby ensuring data protection for the storage volume from data corruption / loss and further improving the performance of one or more tangible computing devices utilizing the storage volume.
[0129] 10 illustrates an exemplary extended storage environment 1000, according to one exemplary aspect. As shown, a backup storage space 1002 provides backup storage for a storage volume 1004. For example, the backup storage space 1002 may be created as part of a logical corruption protection (LCP) implementation for data in the storage volume 1004.
[0130] Additionally, periodically, data backups may be made to the storage volume 1004 and stored in one of the original extents 1006A-E of the backup storage space 1002. The original extents 1006A-E may be arranged in a predetermined order from the first original extent 1006A to the last original extent 1006E, and may be filled according to a rolling buffer scheme. For example, before adding additional extents 1008A-D, after the first original extent 1006A is filled with data backup (e.g., according to a backup schedule, etc.), the next adjacent original extent 1006B is selected to be filled according to a predetermined order.
[0131] Furthermore, the rolling buffer scheme may stipulate that after the last original extent 1006E in a predetermined order within the backup storage space 1002 is filled with data backup, the first original extent 1006A in a predetermined order is selected as the next extent location to be filled.
[0132] Additionally, additional extents 1008A-D may be added to backup storage space 1002 in response to a request to increase the size of backup storage space 1002. In one aspect, current extent 1006C may be determined within backup storage space 1002 in response to additional extents 1008A-D being added to the backup storage space.
[0133] Still further, it may then be determined that intermediate extents 1006D and 1006E exist between the current extent 1006C and the first additional extent 1008A of the backup extension 1010. It may also be determined that these intermediate extents 1006D and 1006E are full and will need to expire before the additional extents 1008A-D can be used within the backup storage space 1002. In response to identifying the full intermediate extents 1006D and 1006E, the backup storage space 1002 may be labeled as being in an expanding state.
[0134] In response to determining that backup storage space 1002 is labeled as being in an expanded state, additional extents 1008A-D may be prevented from being used, and notification may be sent that additional extents 1008A-D are not ready for use and can only be used after full intermediate extents 1006D and 1006E have expired.
[0135] The user may be given the option to expire filled intermediate extents 1006D and 1006E manually, or the user may be given the option to expire filled intermediate extents 1006D and 1006E according to a pre-existing data backup schedule and rolling buffer scheme.
[0136] Once full intermediate extents 1006D and 1006E are determined to have expired, the expanded state labels may be removed from backup storage space 1002. In response to determining that backup storage space 1002 is not labeled as being in an expanded state, additional extents 1008A-1008D may be made available for use, and notification may be sent to one or more users that additional extents 1008A-1008D are ready for use.
[0137] The additional extents 1008A-1008D may then be used to store data backups according to a rolling buffer scheme, along with the original extents 1006A-1006E as part of the backup storage space 1002. [Safeguard capacity expansion]
[0138] During the execution of safeguard copy (SGC), the user may need to increase the number of backups, in which case the safeguard capacity must be increased.
[0139] However, the process of increasing the safeguard capacity requires deleting the safeguard backup and erasing the safeguard backup volume. The user must then create a safeguard backup volume of the new desired size and resume safeguard backup. Additionally, due to the complex layout of user data on backups, simply increasing the safeguard backup volume does not immediately make the new space available.
[0140] In response, the updated design allows users to issue a single command to increase safeguard capacity, and the user is notified when new space becomes available. Users can continue to run safeguard sessions while waiting for notification when new space becomes available.
[0141] SGC uses a rolling buffer mechanism to copy tracks (customers and metadata) to the backup volume, which keeps each Safeguard backup contiguous on the backup volume. After adding new space to the end of the volume, the use of new space can result in scattered tracks and backups if the Safeguard backup is in a wraparound case.
[0142] In the new design, you can run the GROW command to increase the size of the backup volume. The SGC will not use the new expanded space until the safeguard backup volume is no longer in the wraparound case. During the GROW command: ● If the safeguard backup volume is in a wraparound case, a flag is set on the safeguard volume to indicate that it is in an extended state. The extended capacity is not used. • If the safeguard backup volume is not in a wraparound case, the flag is not set and a notification is sent to the NI (e.g., a system component that reports information / events to the user) that the safeguard volume is ready to be used for future backups.
[0143] While in the Expanding state, backup relationship queries will show which backups need to be expired to use the new expanded area, and volume storage status queries will show whether the safeguard volume is in the Expanding state. Once all backups have expired and the Expanding state is removed, a notification is sent to NI to let the user know that the safeguard expanded area is ready to be used. Backup relationship queries and volume storage status queries will not show the "Expanding state". [Automated Safeguard Copy Virtual Capacity Management]
[0144] Because workloads and hosts vary, some volumes in a Safeguard (SFG) session may only require a virtual capacity of 2 to 3 times the SFG volume. Some volumes in an SFG session may require a virtual capacity of 9 to 10 times the SFG volume. The amount of data on an SFG source volume may also change over time.
[0145] Manually managing the multiplier value can be difficult, if not impossible, for monitoring many SFG volumes. As a result, a way to automate the process can be helpful for users with large safeguard environments.
[0146] In one aspect, parameters of the virtual capacity of a volume may be monitored, and depending on the values of such parameters, the safeguard volume may be automatically expanded when necessary.
[0147] To avoid having to set significantly higher values for all volumes, the increases for outlier volumes may be automatically / dynamically adjusted to increase the value proactively before backups start expiring due to lack of virtual capacity, which may reduce or even eliminate some backups expiring before the increases take effect.
[0148] In one aspect, monitored parameters may include (per storage volume / corresponding backup storage space): ● Capacity usage threshold - the percentage of capacity above which the multiplier is increased ● Multiplier increment - the increment by which the multiplier is increased - can be a percentage or an integer ● Multiplier limit - maximum multiplier allowed
[0149] At predetermined intervals or according to events, the current environment (for each storage volume / corresponding backup storage space) may be monitored as follows: 1. Determine whether there are any volumes that exceed the capacity usage threshold. 2. If there is a volume above the threshold, check if the multiplier is below the multiplier limit 3. If the multiplier is below the multiplier limit, gradually increase the backup capacity multiplier (the multiplier that defines the size of the backup storage space as a multiple of the corresponding storage volume), possibly by multiple increments.
[0150] One exemplary implementation is as follows:
[0151] Exemplary storage volumes and corresponding backup storage space current parameters include: ● The capacity usage threshold is 50% ● The multiplier increment is 1 ● The multiplier limit is 6 ● Each backup is approximately 1GB of data.
[0152] An exemplary management of such storage volumes / corresponding backup storage space includes (assuming knowledge of the size of the production volumes already exists): 1. The current backup capacity multiplier is 3. 2. Safeguard Backups 1 and 2 are created. 3. Monitor parameters to recognize when virtual capacity usage reaches 50%. A. Issue an expand command to increase the backup capacity to 4. There is no expand state in progress. B. The current backup capacity multiplier is 4. 4. Safeguard backups 3-8 are created. Backups 1-5 are now internally expired. 5. Monitor parameters to recognize when virtual capacity usage reaches 50%. A. An expand command is issued to increase the backup capacity to 5. The expand status is set to in progress. B. The current backup capacity multiplier is 5. 6. Safeguard backups 9-10 are created. Backups 6-7 are now internally expired. A. After the expiration of backup 7, there is no ongoing growth state. 7. Safeguard backups 11-13 are created. Backups 7-9 are now internally expired. 8. Monitor parameters to recognize when virtual capacity usage reaches 50%. A. Issue an expand command to increase the backup capacity to 6. There is no expand state in progress. B. The current backup capacity multiplier is 6. 9. Continue creating backups. After this point, the backup capacity cannot be increased because the multiplier limit has been reached.
[0153] The new parameters may be policies set in the safeguard management software (e.g., CSM, GDPS, etc.). The policies may cover safeguard sessions. Implementing a new safeguard copy for an existing environment with a steady volume workload may result in an increase in the backup multiplier before the log buffer wraps around the virtual capacity.
[0154] If the workload on a volume increases gradually, at a sufficiently low capacity usage threshold, the multiplier increase will take effect before the virtual capacity is exhausted. If an inactive volume suddenly experiences a large increase in workload, one or more backups may expire before the multiplier increase takes effect for a limited period of time.
[0155] In one aspect, a method for performing automated backup copy volume expansion is provided, the method including configuring a capacity usage threshold, a multiplier increment, and a multiplier limit in storage management software of a backup copy system. Additionally, the method includes determining that the backup copy volume exceeds the capacity usage threshold.
[0156] The method further includes determining that the backup copy volume multiplier is below a multiplier limit. Still further, the method includes issuing an expansion command to increase the backup capacity by the multiplier increment. The method also includes internally expiring old backup copy volumes.
[0157] The present invention may be a system, method, or computer program product, or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium having computer-readable program instructions for causing a processor to implement aspects of the present invention.
[0158] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction-execution device. A computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, 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 compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, punch cards, or mechanically encoded devices such as ridge structures in grooves in which instructions are recorded, and any suitable combination of the foregoing. Computer-readable storage medium, as used herein, should not be construed as a transitory signal per se, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal transmitted through a wire.
[0159] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium into each computing / processing device, or may be downloaded to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium within the respective computing / processing device for storage.
[0160] The computer-readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk® or C++, and procedural programming languages such as the “C” programming language or similar programming languages. The computer-readable program instructions may be executed as a standalone software package, entirely on the user's computer, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, 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 the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry devices, including, for example, programmable logic devices, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), can execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the present invention.
[0161] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to 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 computer processor or other programmable data processing apparatus to create a machine, such that the instructions, when executed by the computer processor or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowcharts or block diagrams, or a combination thereof. These computer-readable program instructions may be stored on a computer-readable storage medium that can direct a computer, programmable data processing apparatus, or other device, or a combination thereof, to function in a particular manner, such that the computer-readable storage medium having the instructions stored thereon comprises an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts or block diagrams, or both.
[0163] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to create a computer-implemented process by causing the computer, other programmable apparatus, or other device to perform a series of operational steps, such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions / acts specified in one or more blocks of the flowcharts or block diagrams, or both.
[0164] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various aspects of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur in a different order than that noted in the figures. For example, two blocks shown in succession may actually be realized as a single step, or may be executed simultaneously, substantially simultaneously, partially, or fully in a time-overlapping manner, or the blocks may possibly be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of a block diagram or flowchart diagram or combination thereof, and combinations of blocks in block diagrams or flowchart diagrams or combinations thereof, may be implemented by a special-purpose hardware-based system that performs the specified functions or operations or that implements a combination of special-purpose hardware and computer instructions.
[0165] Additionally, systems according to various aspects may include a processor and logic integrated with or executable by the processor, or both, configured to perform one or more of the process steps described herein. "Integrated with" means that the logic is embedded in the processor as hardware logic, such as an application-specific integrated circuit (ASIC), 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 program, etc., or some combination of hardware and software logic that is accessible by the processor and configured to cause the processor to perform some function when executed by the processor. As known in the art, software logic may be stored in any memory type, local or remote memory, or a combination thereof. Any processor known in the art may be used, such as an ASIC, FPGA, central processing unit (CPU), integrated circuit (IC), software processor module such as a graphics processing unit (GPU), or hardware processor, or a combination thereof.
[0166] It will be apparent that the various features of the above-described systems or methods or combinations thereof may be combined in any manner, creating multiple combinations according to the description provided above.
[0167] It will further be appreciated that aspects of the present invention may be provided in the form of a service that is deployed for customers to provide services on demand.
[0168] The description of various aspects of the present invention has been presented for illustrative purposes and is not intended to be 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 terms used herein have been chosen to best explain the principles of the aspects, practical applications, or technical improvements over commercially available technology, or to enable those skilled in the art to understand the aspects disclosed herein. According to this specification, the following items are also disclosed. [Item 1] 1. A computer-implemented method comprising: receiving a request to increase the size of the backup storage space for the storage volume; adding an additional extent to the backup storage space in response to the request; identifying a current extent location within said backup storage space; determining whether a filled extent location exists between the current extent location and the additional extent added to the backup storage space; conditionally utilizing the additional extent added to the backup storage space based on the determination; A computer-implemented method comprising: [Item 2] Item 10. The computer-implemented method of item 1, wherein the initial size of the backup storage space is determined when the backup storage space is created. [Item 3] The request is automatically generated based on monitoring parameters of the backup storage space and the storage volume, the parameters being a capacity usage threshold; and the increment of the multiplier; and Multiplier Limits and Item 1 or 2. The computer-implemented method according to item 1 or 2, comprising: [Item 4] 4. The computer-implemented method of claim 1, wherein the backup storage space is represented as a series of contiguous extents in a predetermined order, and the additional extent is added to the end of the series of contiguous extents in the predetermined order. [Item 5] 5. The computer-implemented method of any one of items 1 to 4, wherein the current extent location includes a location at which to store the next data backup within the backup storage space. [Item 6] Item 10. The computer-implemented method of item 1, wherein the current extent position is determined according to a rolling buffer scheme. [Item 7] Item 1. The computer-implemented method of item 1, further comprising determining whether filled intermediate extents exist, the filled intermediate extents including extents currently storing data backups and located in a predetermined order between the current extent location and the location of the first additional extent added to the backup storage space. [Item 8] Item 10. The computer-implemented method of claim 1, further comprising labeling the backup storage space as being in an expanding state in response to identifying the presence of one or more filled intermediate extents in a predetermined order between the current extent location and the first additional extent location. [Item 9] Item 9. The computer-implemented method of item 8, further comprising: in response to determining that the backup storage space is labeled as being in an expanded state, preventing use of the additional extent added to the backup storage space; and sending a notification that the additional extent added to the backup storage space is not ready for use and can only be used after one or more full intermediate extents expire. [Item 10] Item 9. The computer-implemented method of item 8, further comprising presenting to a user the one or more filled intermediate extents that need to expire, and providing the user with the option to manually expire the one or more filled intermediate extents. [Item 11] Item 9. The computer-implemented method of item 8, further comprising presenting to a user the one or more filled intermediate extents that need to be expired, and providing the user with the option to expire the one or more filled intermediate extents according to a backup schedule and a rolling buffer scheme. [Item 12] 1. A computer program for expanding storage capacity to implement logical corruption protection, the computer program comprising embodied program instructions, the program instructions being executable by a processor to cause the processor to perform a method, the method comprising: receiving, by the processor, a request to increase the size of backup storage space for a storage volume; adding, by said processor, an additional extent to said backup storage space in response to said request; identifying, by said processor, a current extent location within said backup storage space; determining, by the processor, whether a filled extent location exists between the current extent location and the additional extent added to the backup storage space; conditionally utilizing, by the processor, the additional extent added to the backup storage space based on the determination; A computer program comprising: [Item 13] Item 13. The computer program of item 12, wherein the initial size of the backup storage space is determined when the backup storage space is created. [Item 14] The request is automatically generated based on monitoring parameters of the backup storage space and the storage volume, the parameters being a capacity usage threshold; the increment of the multiplier; and Multiplier Limits and Item 14. The computer program according to item 12 or 13, comprising: [Item 15] 15. The computer program product of claim 12, wherein the backup storage space is represented as a series of contiguous extents in a predetermined order, and the additional extent is added to the end of the series of contiguous extents in the predetermined order. [Item 16] 16. The computer program product of any one of items 12 to 15, wherein the current extent location includes a location at which to store the next data backup within the backup storage space. [Item 17] Item 13. The computer program product of item 12, wherein the current extent position is determined according to a rolling buffer method. [Item 18] Item 13. The computer program product of item 12, wherein the method further includes a step of determining whether filled intermediate extents exist, the filled intermediate extents including extents currently storing data backups and located in a predetermined order between the current extent location and the location of the first additional extent added to the backup storage space. [Item 19] Item 13. The computer program product of item 12, wherein the method further includes, in response to identifying the presence of one or more filled intermediate extents in a predetermined order between the current extent location and the first additional extent location, labeling the backup storage space as being in an expanding state. [Item 20] 20. The computer program product of claim 19, wherein the method further includes, in response to determining that the backup storage space is labeled as being in an expanded state, preventing use of the additional extent added to the backup storage space and sending a notification that the additional extent added to the backup storage space is not ready for use and can only be used after one or more full intermediate extents expire. [Item 21] 20. The computer program product of claim 19, wherein the method further includes presenting to a user the one or more filled intermediate extents that need to expire and providing the user with an option to manually expire the one or more filled intermediate extents. [Item 22] 20. The computer program product of claim 19, wherein the method further includes presenting to a user the one or more filled intermediate extents that need to be expired, and providing the user with the option to expire the one or more filled intermediate extents according to a backup schedule and a rolling buffer scheme. [Item 23] 1. A system comprising: a processor; logic integrated with, executable by, or both integrated with, and executable by the processor; and the logic comprises: receiving a request to increase the size of the backup storage space for the storage volume; Adding an additional extent to the backup storage space in response to the request; Identifying a current extent location within said backup storage space; determining whether a full extent location exists between the current extent location and the additional extent added to the backup storage space; conditionally utilizing the additional extent added to the backup storage space based on the determination; The system is configured as follows: [Item 24] 1. A computer-implemented method comprising: monitoring current usage of backup storage space for the storage volume; comparing the current usage to a capacity threshold; conditionally increasing the size of the backup storage space based on the comparing step and a predetermined size limit; A computer-implemented method comprising: [Item 25] 1. A computer program for automating management of backup storage space, comprising embodied program instructions, the program instructions being executable by a processor to cause the processor to perform a method, the method comprising: monitoring, by said processor, a current usage of backup storage space for a storage volume; comparing, by the processor, the current usage to a capacity threshold; and conditionally increasing, by the processor, the size of the backup storage space based on the comparing and a predetermined size limit.
Claims
1. 1. A computer-implemented method comprising: receiving a request to increase the size of the backup storage space for the storage volume; adding an additional extent to the backup storage space in response to the request; identifying a current extent location within said backup storage space; determining whether a filled extent location exists between the current extent location and the additional extent added to the backup storage space; conditionally utilizing the additional extent added to the backup storage space based on the determination; A computer-implemented method comprising:
2. The computer-implemented method of claim 1 , wherein the initial size of the backup storage space is determined when the backup storage space is created.
3. The request is automatically generated based on monitoring parameters of the backup storage space and the storage volume, the parameters being a capacity usage threshold; the increment of the multiplier; and Multiplier Limits and 3. The computer-implemented method of claim 1 or claim 2, comprising:
4. 4. The computer-implemented method of claim 1, wherein the backup storage space is represented as a series of contiguous extents in a predetermined order, and the additional extent is added to the end of the series of contiguous extents in the predetermined order.
5. The computer-implemented method of claim 1 , wherein the current extent location comprises a location at which to store a next data backup within the backup storage space.
6. The computer-implemented method of claim 1 , wherein the current extent position is determined according to a rolling buffer scheme.
7. 2. The computer-implemented method of claim 1, further comprising determining whether filled intermediate extents exist, the filled intermediate extents including extents currently storing data backups that 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. 2. The computer-implemented method of claim 1, further comprising labeling the backup storage space as being in an expanding state in response to identifying the presence of one or more filled intermediate extents in a predetermined order between the current extent location and a first additional extent location.
9. 9. The computer-implemented method of claim 8, further comprising: in response to determining that the backup storage space is labeled as being in an expanded state, preventing use of the additional extent added to the backup storage space; and sending a notification that the additional extent added to the backup storage space is not ready for use and can only be used after one or more filled intermediate extents expire.
10. 9. The computer-implemented method of claim 8, further comprising presenting to a user the one or more filled intermediate extents that need to expire; and providing the user with an option to manually expire the one or more filled intermediate extents.
11. 9. The computer-implemented method of claim 8, further comprising presenting to a user the one or more filled intermediate extents that need to be expired, and providing the user with the option to expire the one or more filled intermediate extents according to a backup schedule and a rolling buffer scheme.
12. 1. A computer program for expanding storage capacity to implement logical corruption protection, the computer program comprising embodied program instructions, the program instructions being executable by a processor to cause the processor to perform a method, the method comprising: receiving, by the processor, a request to increase the size of backup storage space for a storage volume; adding, by said processor, an additional extent to said backup storage space in response to said request; identifying, by said processor, a current extent location within said backup storage space; determining, by the processor, whether a filled extent location exists between the current extent location and the additional extent added to the backup storage space; conditionally utilizing, by the processor, the additional extent added to the backup storage space based on the determination; A computer program comprising:
13. The computer program product of claim 12 , wherein the initial size of the backup storage space is determined when the backup storage space is created.
14. The request is automatically generated based on monitoring parameters of the backup storage space and the storage volume, the parameters being a capacity usage threshold; the increment of the multiplier; and Multiplier Limits and 14. A computer program according to claim 12 or claim 13, comprising:
15. 15. The computer program product of claim 12, wherein the backup storage space is represented as a series of contiguous extents in a predetermined order, and the additional extent is added to the end of the series of contiguous extents in the predetermined order.
16. 16. The computer program product of claim 12, wherein the current extent location comprises a location in the backup storage space at which to store a next data backup.
17. The computer program product of claim 12 , wherein the current extent position is determined according to a rolling buffer scheme.
18. 13. The computer program product of claim 12, wherein the method further comprises determining whether filled intermediate extents exist, the filled intermediate extents including extents currently storing data backups and 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. 13. The computer program product of claim 12, wherein the method further comprises labeling the backup storage space as being in an expanding state in response to identifying the presence of one or more filled intermediate extents in a predetermined order between the current extent location and a first additional extent location.
20. 20. The computer program product of claim 19, wherein the method further includes, in response to determining that the backup storage space is labeled as being in an expanded state, preventing use of the additional extent added to the backup storage space and sending a notification that the additional extent added to the backup storage space is not ready for use and can only be used after one or more full intermediate extents expire.
21. 20. The computer program product of claim 19, wherein the method further includes presenting to a user the one or more filled intermediate extents that need to expire, and providing the user with an option to manually expire the one or more filled intermediate extents.
22. 20. The computer program product of claim 19, wherein the method further comprises presenting to a user the one or more filled intermediate extents that need to be expired, and providing the user with the option to expire the one or more filled intermediate extents according to a backup schedule and a rolling buffer scheme.
23. 1. A system comprising: a processor; logic integrated with, executable by, or both integrated with, and executable by the processor; and the logic comprises: receiving a request to increase the size of the backup storage space for the storage volume; Adding an additional extent to the backup storage space in response to the request; Identifying a current extent location within said backup storage space; determining whether a full extent location exists between the current extent location and the additional extent added to the backup storage space; conditionally utilizing the additional extent added to the backup storage space based on the determination; The system is configured as follows:
24. 1. A computer-implemented method comprising: monitoring current usage of backup storage space for the storage volume on which the data to be backed up is stored; comparing the current usage to a capacity threshold; conditionally increasing the size of the backup storage space in units of the size of the storage volume based on the comparing step and a predetermined size limit; A computer-implemented method comprising:
25. 1. A computer-implemented method comprising: monitoring current usage of backup storage space for the storage volume; comparing the current usage to a capacity threshold; conditionally increasing the size of the backup storage space based on the comparing step and a predetermined size limit, the size increment increasing over time; A computer-implemented method comprising:
26. 1. A computer program for automating management of backup storage space, comprising embodied program instructions, the program instructions being executable by a processor to cause the processor to perform a method, the method comprising: monitoring, by said processor, a current usage of backup storage space for a storage volume on which data to be backed up is stored; comparing, by the processor, the current usage to a capacity threshold; and conditionally increasing, by the processor, a size of the backup storage space in units of the size of the storage volume based on the comparing and a predetermined size limit.
27. 1. A computer program for automating management of backup storage space, comprising embodied program instructions, the program instructions being executable by a processor to cause the processor to perform a method, the method comprising: monitoring, by said processor, a current usage of backup storage space for a storage volume; comparing, by the processor, the current usage to a capacity threshold; and conditionally increasing, by the processor, a size of the backup storage space based on the comparing and a predetermined size limit, the size increment increasing over time.
Citation Information
Patent Citations
Capacity expansion method for replication volume
JP2007323309A
External storage device and method for restoring data of external storage device and program
JP2008033967A
Storage device, control device and storage device control method
JP2013073594A
Backup storage management
US20130086341A1
Systems, methods, and computer program products providing an elastic snapshot repository
US20160342609A1