Abstract:
A method, non-transitory computer readable medium, and apparatus that enhance management of backup data sets include receiving an operation on a region of a production data set. A corresponding region of a backup data set is marked as having a change state status until the received operation is completed on the region of the production data set and mirrored on a corresponding region of a backup data set.

Description:
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/393,194 filed Oct. 14, 2010, which is hereby incorporated by reference in its entirety. 
    
    
     FIELD 
     This technology relates to methods for enhancing management of backup data sets to support transparent failover and devices thereof. 
     BACKGROUND 
     Synchronous mirroring of data sets assures that a backup copy of the data set is always a perfect replica of the current production copy of the data set. Therefore, failover can be performed automatically without human intervention since there is no question about the quality of the backup data. 
     Unfortunately, synchronous mirroring requires that an application&#39;s write be stalled until both the current production data set and the backup data set have been updated. This need to synchronize writes causes unacceptable performance loss in many real-world situations. The performance loss is particularly high when the backup data set is updated over a slow network link such as over a WAN to a cloud storage provider. 
     Asynchronous mirroring of data sets greatly reduces the performance penalty discussed above. With asynchronous mirroring, an application&#39;s write is acknowledged before the backup data set has been updated. 
     Unfortunately, this relaxed update comes at a cost. At the time of a failover, the backup copy is in an unknown state that may or may not represent the state of the production data at the time of the failover. This uncertainty greatly complicates the failover process. Essentially the challenge comes down to how a storage administrator determines that the quality of the data in the backup data set is “good enough” to support a successful failover. 
     SUMMARY 
     A method for enhancing management of backup data sets includes receiving at a virtualization management computing device an operation on a region of a production data set. A corresponding region of a backup data set is marked as having a change state status with the virtualization management computing device until the received operation is completed on the region of the production data set and mirrored on a corresponding region of a backup data set. 
     A computer readable medium having stored thereon instructions for enhancing management of backup data sets comprising machine executable code which when executed by at least one processor, causes the processor to perform including receiving an operation on a region of a production data set. A corresponding region of a backup data set is marked as having a change state status until the received operation is completed on the region of the production data set and mirrored on a corresponding region of a backup data set. 
     A virtualization management computing device includes a memory coupled to one or more processors which are configured to execute programmed instructions stored in the memory including receiving an operation on a region of a production data set. A corresponding region of a backup data set is marked as having a change state status until the received operation is completed on the region of the production data set and mirrored on a corresponding region of a backup data set. 
     This technology provides a number of advantages including providing a method, computer readable medium and apparatus that further enhances management of backup data sets to support transparent failover. This technology reduces the performance penalty associated with the highest-form of mirror data management, i.e. synchronous mirroring, while still maintaining the same assurance of data quality, i.e. never return an incorrect data set. This technology can be utilized with storage virtualization technology, applied to block or file storage, and implemented as part of a file server or integrated with WAN optimization technology. Further, this technology can be utilized with more complex mirror flows, such as mirroring data to another local location synchronously combined with remote change notification by way of example only. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an exemplary network environment with enhanced management of backup data sets to support transparent failover; 
         FIG. 2  is a partial block diagram and partial functional diagram of the exemplary environment illustrated in  FIG. 1 ; and 
         FIG. 3  is a flow chart of an exemplary method for managing a write operation with a production data set and a backup data set; and 
         FIG. 4  is a flow chart of an exemplary method for managing a read operation with the production data set and the backup data set with a failover. 
     
    
    
     DETAILED DESCRIPTION 
     An exemplary environment  10  in which enhanced management of backup data sets is illustrated in  FIGS. 1 and 2 . The environment  10  includes a virtualization management computing device or VMCD  12 , a plurality of client computing devices or CCD  14 ( 1 )- 14 ( n ), a production data storage device or PDSD  16 , and a backup data storage device or BDSD  18  which are all coupled together by one or more communication networks  20 ( 1 )- 20 ( 4 ), although this environment can include other numbers and types of systems, devices, components, and elements in other configurations. This technology provides a number of advantages including providing improved management of backup data sets to support transparent failover. 
     The virtualization management computing device  12  provides a number of functions including management of backup data sets and virtualized access to these data sets between the client computing devices  14 ( 1 )- 14 ( n ) and data storage devices  16  and  18 , although other numbers and types of systems can be used and other numbers and types of functions can be performed. In this particular example, the virtualization management computing device  12  includes an active VMCD node  320  and a standby VMCD node  322 , although for example the active VMCD node and the standby VMCD node could each be in separate computing device. In this example, the virtualization management computing device  12  includes a central processing unit (CPU) or processor  22 , a memory  24 , and an interface system  26  which are coupled together by a bus or other link, although other numbers and types of systems, devices, components, and elements in other configurations production data storage device  16 , and a backup data storage device  18  and locations can be used. The processor  22  executes a program of stored instructions for one or more aspects of the present technology as described and illustrated by way of the examples herein including for the active and standby VMCD nodes, although other types and numbers of processing devices and logic could be used and the processor  22  could execute other numbers and types of programmed instructions. 
     The memory  24  stores these programmed instructions for one or more aspects of the present technology as described and illustrated herein, although some or all of the programmed instructions could be stored and executed elsewhere. In this particular example, the memory  24  includes for the active VMCD node  320  a read error injector module (REI)  300 , an invalid data table (IDT)  304 , and a data mirror manager module (DMM)  306  and for the standby VMCD node  322  another read error injector module (REI)  310 , another invalid data table (IDT)  314 , and another data mirror manager module (DMM)  316  which are described in greater detail herein and in this example are all configured to be in communication with each other, although the memory  24  can comprise other types and numbers of modules, tables, and other programmed instructions and databases. A variety of different types of memory storage devices, such as a random access memory (RAM) or a read only memory (ROM) in the system or a floppy disk, hard disk, CD ROM, DVD ROM, or other computer readable medium which is read from and written to by a magnetic, optical, or other reading and writing system that is coupled to the processor  22 , can be used for the memory  24 . 
     The interface system in the virtualization management computing device  12  is used to operatively couple and communicate between the virtualization management computing device  12  and the client computing devices  14 ( 1 )- 14 ( n ), the production data storage device  16 , and the backup data storage device  18  via one or more of the communications networks  20 ( 1 )- 20 ( 4 ), although other types and numbers of communication networks or systems with other types and numbers of connections and configurations can be used. By way of example only, the one or more the communications networks can use TCP/IP over Ethernet and industry-standard protocols, including NFS, CIFS, SOAP, XML, LDAP, and SNMP, although other types and numbers of communication networks, such as a direct connection, a local area network, a wide area network, modems and phone lines, e-mail, and wireless communication technology, each having their own communications protocols, can be used. In the exemplary environment  10  shown in  FIGS. 1-2 , four communication networks  20 ( 1 )- 20 ( 4 ) are illustrated, although other numbers and types could be used. 
     Each of the client computing devices  14 ( 1 )- 14 ( n ) utilizes the active VMCD node  320  in the virtualization management computing device  12  to conduct one or more operations with one or more of the production data storage device  16  and the backup data storage device  18 , such as to create a file or directory, read or write a file, delete a file or directory, or rename a file or directory by way of example only, although other numbers and types of systems could be utilizing these resources and other types and numbers of functions utilizing other types of protocols could be performed. Each of the production data storage device  16  and the backup data storage device  18  store content, such as files and directories, although other numbers and types of storage systems which could have other numbers and types of functions and store other data could be used. 
     The client computing devices  14 ( 1 )- 14 ( n ), the production data storage device  16  and the backup data storage device  18  each include a central processing unit (CPU) or processor, a memory, and an interface or I/O system, which are coupled together by a bus or other link, although each could comprise other numbers and types of elements and component, such as control logic. The client computing devices  14 ( 1 )- 14 ( n ) may run interface applications, such as Web browsers, that may provide an interface to make requests for and send data to the production data storage device  16  and the backup data storage device  18  via the virtualization management computing device  12 , although other types and numbers of applications may be executed. The virtualization management computing device  12  processes requests received from applications executing on client computing devices  14 ( 1 )- 14 ( n ) for files or directories on one or more of the production data storage device  16  and the backup data storage device  18  and also manages mirroring of data sets and interactions with the production data storage device  16  and the backup data storage device  18  as a result of these operations. The production data storage device  16  and the backup data storage device  18  provide access to stored data sets in response to received requests. Although a production data storage device  16  and a backup data storage device  18  are shown, other types and numbers of data storage devices can be used. 
     Although an example of the virtualization management computing device  12  with the active VMCD node  320  and the standby VMCD node  322 , the plurality of client computing devices  14 ( 1 )- 14 ( n ), the production data storage device  16 , and the backup data storage device  18  are described herein, each of these devices could be implemented in other configurations and manners on one or more of any suitable computer system or computing device. It is to be understood that the devices and systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s). 
     Furthermore, each of the systems of the examples may be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, and micro-controllers, programmed according to the teachings of the examples, as described and illustrated herein, and as will be appreciated by those ordinary skill in the art. 
     In addition, two or more computing systems or devices can be substituted for any one of the systems in any embodiment of the examples. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples. The examples may also be implemented on computer system or systems that extend across any suitable network using any suitable interface mechanisms and communications technologies, including by way of example only telecommunications in any suitable form (e.g., voice and modem), wireless communications media, wireless communications networks, cellular communications networks, G3 communications networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof. 
     The examples may also be embodied as a computer readable medium having instructions stored thereon for one or more aspects of the present technology as described and illustrated by way of the examples herein, as described herein, which when executed by a processor, cause the processor to carry out the steps necessary to implement the methods of the examples, as described and illustrated herein. 
     An exemplary method for managing a write operation with a production data set and a backup data set will now be described with reference to  FIGS. 1-4 . In this illustrative example, initially there are duplicate stored data sets comprising a production data set stored in the production data storage device (PDSD)  16  and a backup data set stored in the backup data storage device (BDSD)  18 , although there can be other numbers and types of data sets and storage devices in other configurations. 
     In step  100 , the virtualization management computing device  12  receives a write request from the one of the client computing devices or CCDs  14 ( 1 )- 14 ( b ) with respect to a region in the product data set, although other types and numbers of operations could be requested and from other sources. 
     In step  102 , the data mirror manager (DMM)  306  in the active VMCD node  320  detects the received write request and sends an invalidate notification to invalid table (IDT)  314 . In this example, the invalidate notification includes sufficient information to describe the exact region of the product data set in PDSD  16  that is being modified or added to by the write operation. At some time in future IDT  314  in the standby VMCD  322  will persistently store this invalidate information and then acknowledge the notification from DMM  306 . Each region in the backup data set in the NDSD  18  corresponding to an invalidate notification entry stored in the IDT  314  is considered to be in an invalid state, although other types of designations could be used. By way of example only, the list of change notification includes different types of change notifications, although the change notification can include other types or amounts of change notification. By extension, all regions in the backup data set in the BDSD  18  that do not have corresponding invalidate notification entry in IDT  314  are considered to be in a valid state, although other types of designations could be used. 
     In step  104 , DMM  306  sends a write request including the new data to the designated region in the production data set stored at the production data storage device  16 , although the new data could be written into other types and numbers of storage devices. At some time in the future PDSD  16  will acknowledge this write request has been successfully performed. 
     In step  106 , DMM  306  sends a write request including the new data to the designated region in the backup data set stored at the backup data storage device  18 , although the new data could be written into other types and numbers of behalf for the write operation. At some time in the future BDSD  18  will acknowledge this write request has been successfully performed. 
     In step  108 , DMM  306  waits for incoming responses to the various requests it has issued on behalf of the original write request from one of the client computing devices  14 ( 1 )- 14 ( n ). 
     In step  110 , the virtualization management computing device  12  determines if the requested write in the production data set in the production data storage device  18  was successful. If in step  110 , the virtualization management computing device  12  determines the requested write in the production data set in the production data storage device  16  was successful, then the Yes branch is taken to step  112 . 
     In step  112 , the virtualization management computing device  12  determines if the requested update for the received write request in the invalid data table  314  in the standby VMCD  322  was successful. If in step  112 , the virtualization management computing device  12  determines the requested update for the received write request in the invalid data table  314  in the standby VMCD  322  was successful, then the Yes branch is taken to step  114 . In step  114 , the virtualization management computing device  12  transmits the fast acknowledgement or FAST ACK, i.e. an acknowledgement before determining whether the corresponding write to the backup data set in the backup data storage device  18  was successful, to the requesting one of the client computing devices  14 ( 1 )- 14 ( n ) and then this exemplary method can end. In this example, the successful write to the invalid data table  314  would provide an indication that the data in the corresponding region in the backup data set in the backup data storage device  18  was invalid in case of a failover and request for that data. 
     If in step  112 , the virtualization management computing device  12  determines the requested update for the received write request in the invalid data table  314  in the standby VMCD  322  was unsuccessful, then the No branch is taken to step  116 . In step  116 , the virtualization management computing device  12  transmits an indication that the write to the production data set in the production data storage device  16  was successful, but that the requested update for the received write request in the invalid data table  314  in the standby VMCD  322  was unsuccessful and then this exemplary method can end, although other manners for handling this type of error could be used depending on the particular administrative need. 
     If back in step  110 , the virtualization management computing device  12  determines the requested write in the production data set in the production data storage device  16  was unsuccessful, then an invalid state is set for that region of the production data set in the invalid data table  304  and the No branch is taken to step  118 . In step  118 , the virtualization management computing device  12  determines if the requested write in the backup data set in the backup data storage device  18  was successful. If in step  118 , the virtualization management computing device  12  determines the requested write in the backup data set in the backup data storage device  18  was successful, then the Yes branch is taken to step  120 . In step  120 , the virtualization management computing device  12  provides an indication to the requesting one of the client computing devices  14 ( 1 )- 14 ( n ) that the primary write to the production data set in the PDSD  16  failed, but that the backup write to the backup data set in the BDSD was successful and then this exemplary method can end. 
     If in step  118 , the virtualization management computing device  12  determines the requested write in the backup data set in the backup data storage device  18  was unsuccessful, then the No branch is taken to step  122 . In step  122 , the virtualization management computing device  12  provides an indication to the requesting one of the client computing devices  14 ( 1 )- 14 ( n ) that the primary write to the production data set in the PDSD  16  and the backup write to the backup data set in the BDSD were both unsuccessful and then this exemplary method can end. 
     An exemplary method for managing a read operation will now be described with reference to  FIGS. 1-2  and  4 . In step  200  the virtualization management computing device  12  receives a read request from one of the client computing devices  14 ( 1 )- 14 ( n ), although other types and numbers of operations could be received and from other sources. 
     In step  202 , the read error injector (REI)  300  in the active VMCD node  320  in the virtualization management computing device  12  determines if the received read request is for a region of the production data set in the PDSD  16  with a change notification entry in the IDT  304 . If in step  202 , the REI  300  in the virtualization management computing device  12  determines the read request is not for a region of the production data set with a change notification entry in the IDT  304 , then the No branch is taken to step  204 . In step  204 , the virtualization management computing device  12  processes the read request and sends a response to the requesting one of the client computing devices  14 ( 1 )- 14 ( n ). 
     If back in step  202 , the REI in the virtualization management computing device  12  determines the read request is for a region of the production data set in the PDSD  16  with a change notification entry in the IDT  304 , then the Yes branch is taken to step  206 . In step  206 , the read error injector (REI)  300  in the active VMCD node  320  in the virtualization management computing device  12  determines if the received read request is for a region of the backup data set in the BDSD  18  with a change notification entry in the IDT  314 . If in step  206 , the read error injector (REI)  300  in the active VMCD node  320  in the virtualization management computing device  12  determines the received read request is not for a region of the backup data set in the BDSD  18  with a change notification entry in the IDT  314 , then the Yes branch is taken to step  208 . For ease of illustration in  FIG. 2 , not all of the connections between the elements are illustrated, for example the connection between REI  300  and IDT  314  is discussed, but not shown. As noted earlier, in this example read error injector module (REI)  300 , invalid data table (IDT)  304 , data mirror manager module (DMM)  306 , read error injector module (REI)  310 , invalid data table (IDT)  314 , and another data mirror manager module (DMM)  316  are all configured to be in communication with each other, although other types of configurations can be used. In step  208 , the virtualization management computing device  12  responds to the read request from one of the client computing devices  14 ( 1 )- 14 ( n ) with data from the corresponding region of the backup data set along with a primary fail error to indicate the data in the production data set in the PDSD  16  is invalid, although other manners for responding can be used. 
     If in step  206 , the read error injector (REI)  300  in the active VMCD node  320  in the virtualization management computing device  12  determines the received read request is for a region of the backup data set in the BDSD  18  with a change notification entry in the IDT  314 , then the No branch is taken to step  210 . In step  210 , the virtualization management computing device  12  can provide an indication to the requesting one of the client computing devices  14 ( 1 )- 14 ( n ) that the requested data in the production data set in the PDSD  16  and the backup data in the backup data set in the BDSD are both invalid, although, other manners for responding can be used and other numbers of optional steps could be executed as discussed below. 
     In this example, in step  210  the virtualization management computing device  12  optionally determines whether to delay or stall the requested read operation for a first period of time and send an inquiry or other notification to a designated administrator at an administrative computing device with a request for instructions on how to respond to the read operation and error. If in step  210 , the virtualization management computing device  12  optionally determines to delay or stall the requested read operation for the first period of time and send an inquiry, then the Yes branch is taken to step  212 . 
     In step  212 , the virtualization management computing device  12  sends an inquiry or other notification to a designated administrator at an administrative computing device stored in memory  24  or otherwise designated with a request for instructions on how to respond to the read operation and error. In step  214 , the virtualization management computing device  12  obtains a response to the request for instructions on how to respond to the read operation and error from the administrative computing device, processes the read request in accordance with those instructions and then this exemplary method can end. 
     If back in step  210 , the virtualization management computing device  12  optionally determined not to delay or stall the requested read operation for the first period of time and send an inquiry, then the No branch is taken to step  216 . In step  216 , the virtualization management computing device  12  optionally can determine whether the error with the requested region of the data from the backup data set in the BDSD  18  is critical based on one or more factors. By way of example only, the virtualization management computing device  12  can determine whether the error indicated a corruption rate in the data below a set threshold for the type of data or can determine if the error could be compensated for by executing an error correction application, and then providing the data from the backup data set if the error was not critical. 
     If in step  216  the virtualization management computing device  12  optionally determines the error with the requested region of data is not critical based on one or more factors, then the No branch is taken to step  218 . In step  218 , the virtualization management computing device  12  processes the read request to obtain the requested data from the corresponding region in the backup data set in the backup data storage device  18  and provides this data in a response to the requesting one of the client computing devices  14 ( 1 )- 14 ( n ) and then this exemplary method can end. 
     If in step  216  the virtualization management computing device  12  optionally determines the error with the requested region of data is critical based on one or more factors, then the Yes branch is taken to step  220 . In step  220 , the virtualization management computing device  12  sends an error message in a response to the read request to the requesting one of the client computing devices  14 ( 1 )- 14 ( n ) and then this exemplary method can end. 
     Accordingly, as illustrated and described herein this technology provides this technology provides a hybrid solution that combines the data quality certainty of synchronous mirroring with the low performance impact of asynchronous mirroring. Additionally, this technology can be used to enhance a globally distributed data caching infrastructure. 
     Having thus described the basic concept of this technology, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of this technology. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, this technology is limited only by the following claims and equivalents thereto.