The present disclosure relates in general to information handling systems, and more particularly to disaster recovery of data in an information handling system.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
In many computing applications, information handling systems store massive amounts of data, and such information handling systems must often be capable of providing continuity of access to such data via a well-defined disaster recovery plan. Oftentimes, to provide greater robustness, it is desirable to provide for geographically-distributed recovery as opposed to single-site recovery.
In accordance with the teachings of the present disclosure, the disadvantages and problems associated with existing approaches to disaster recovery may be reduced or eliminated.
In accordance with embodiments of the present disclosure, an information handling system may include a processor and a first storage management console comprising a program of executable instructions embodied in non-transitory computer-readable media accessible to the processor, and configured to, when read and executed by the processor: (i) manage input/output between an application and a primary physical storage controller to perform input/output between the application and a storage resource communicatively coupled to primary physical storage container; (ii) asynchronously mirror application-consistent snapshots of data associated with the application from the primary physical storage controller to a storage virtual controller configured to emulate a physical storage controller such that the storage virtual controller stores the snapshots to remote storage geographically remote from the information handling system; (iii) store metadata associated with the application and data stored to the storage resource and the remote storage; and (iv) copy the metadata to a second storage management console executing on a second information handling system geographically remote from the information handling system.
In accordance with embodiments of the present disclosure, a method may include managing, by a first storage management console instantiated on a first information handling system, input/output between an application and a primary physical storage controller to perform input/output between the application and a storage resource communicatively coupled to the primary physical storage controller. The method may also include asynchronously mirroring, by the first storage management console, application-consistent snapshots of data associated with the application from the primary physical storage controller to a storage virtual controller configured to emulate a physical storage controller such that the storage virtual controller stores the snapshots to remote storage geographically remote from the first information handling system. The method may further include storing, by the first storage management console, metadata associated with the application and data stored to the storage resource and the remote storage. The method may additionally include copying, by the first storage management console, the metadata to a second storage management console executing on a second information handling system geographically remote from the first information handling system.
In accordance with embodiments of the present disclosure, an article of manufacture may include a non-transitory computer readable medium and computer-executable instructions carried on the computer readable medium, the instructions readable by a processor, the instructions, when read and executed, for causing the processor to: (i) manage, by a first storage management console instantiated on a first information handling system, input/output between an application and a primary physical storage controller to perform input/output between the application and a storage resource communicatively coupled to the primary physical storage controller; (ii) asynchronously mirror, by the first storage management console, application-consistent snapshots of data associated with the application from the physical storage controller to a storage virtual controller configured to emulate a physical storage controller such that the storage virtual controller stores the snapshots to remote storage geographically remote from the first information handling system; (iii) store, by the first storage management console, metadata associated with the application and data stored to the storage resource and the remote storage; and (iv) copy, by the first storage management console, the metadata to a second storage management console executing on a second information handling system geographically remote from the first information handling system.
Technical advantages of the present disclosure may be readily apparent to one skilled in the art from the figures, description and claims included herein. The objects and advantages of the embodiments will be realized and achieved at least by the elements, features, and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are examples and explanatory and are not restrictive of the claims set forth in this disclosure.
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
Preferred embodiments and their advantages are best understood by reference to
For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a PDA, a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include memory, one or more processing resources such as a central processing unit (“CPU”) or hardware or software control logic. Additional components of the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and output (“I/O”) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.
For the purposes of this disclosure, information handling resources may broadly refer to any component system, device or apparatus of an information handling system, including without limitation processors, buses, memories, input-output devices and/or interfaces, storage resources, network interfaces, motherboards, electro-mechanical devices (e.g., fans), displays, and power supplies.
For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (“RAM”), read-only memory (“ROM”), electrically erasable programmable read-only memory (“EEPROM”), and/or flash memory; as well as communications media such as wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
Information handling systems often use an array of physical storage resources (e.g., disk drives), such as a Redundant Array of Independent Disks (“RAID”), for example, for storing information. Arrays of physical storage resources typically utilize multiple disks to perform input and output operations and can be structured to provide redundancy which may increase fault tolerance. Other advantages of arrays of physical storage resources may be increased data integrity, throughput and/or capacity. In operation, one or more physical storage resources disposed in an array of physical storage resources may appear to an operating system as a single logical storage unit or “logical unit.” Implementations of physical storage resource arrays can range from a few physical storage resources disposed in a chassis, to hundreds of physical storage resources disposed in one or more separate storage enclosures.
In some embodiments, primary information handling system 102 may comprise a server. In these and other embodiments, primary information handling system 102 may comprise a personal computer. In other embodiments, primary information handling system 102 may be a portable computing device (e.g., a laptop, notebook, tablet, handheld, smart phone, personal digital assistant, etc.). As depicted in
Processor 103 may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation, a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor 103 may interpret and/or execute program instructions and/or process data stored in memory 104, storage resource 110, and/or another component of primary information handling system 102.
Memory 104 may be communicatively coupled to processor 103 and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory 104 may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to primary information handling system 102 is turned off.
As shown in
In one embodiment, hypervisor 114 may comprise a specially-designed OS with native virtualization capabilities. In another embodiment, hypervisor 114 may comprise a standard OS with an incorporated virtualization component for performing virtualization.
In another embodiment, hypervisor 114 may comprise a standard OS running alongside a separate virtualization application. In this embodiment, the virtualization application of hypervisor 114 may be an application running above an operating system (e.g., operating system 116) and interacting with computing system resources only through the operating system. Alternatively, the virtualization application of hypervisor 114 may, on some levels, interact indirectly with computing system resources via the operating system, and, on other levels, interact directly with computing system resources (e.g., similar to the way the operating system interacts directly with computing system resources, or as firmware running on computing system resources). As a further alternative, the virtualization application of hypervisor 114 may, on all levels, interact directly with computing system resources (e.g., similar to the way the operating system interacts directly with computing system resources, or as firmware running on computing system resources) without utilizing the operating system, although still interacting with the operating system to coordinate use of computing system resources. Active portions of hypervisor 114 may be transferred from storage media to memory 104 for execution by processor 103.
Operating system 116 may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to manage and/or control the allocation and usage of hardware resources such as memory, processor time, disk space, and input and output devices, and provide an interface between such hardware resources and application programs hosted by operating system 116. Active portions of operating system 116 may be transferred to memory 104 for execution by processor 103.
Application 118 may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to, when read and executed by processor 103, interact with operating system 116 in order to perform a group of coordinated functions, tasks, or activities. For example, one or more application programs may comprise an application configured to perform input/output operations (e.g., reads and writes) to storage resource 110 and/or remote storage 130.
Storage management console 120 may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to, when read and executed by processor 103, facilitate disaster recovery, as described in greater detail herein. For example, storage management console 120 may be aware of applications configured to consume storage space within storage resource 110, and may maintain metadata (e.g., connectivity and configuration information) for remote storage 130 (e.g., which portions of remote storage 130 map to storage addresses exposed to application 118). In operation, storage management console 120 may also, via network 160, copy such metadata to a replica storage management console 140 executing on secondary information handling system 122. In some embodiments, storage management console 120 may execute within a guest operating system running on hypervisor 114 or may itself comprise a guest operating system configured to run on hypervisor 114.
Storage virtual controller 121 may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to, when read and executed by processor 103, emulate and/or simulate a physical storage controller to facilitate input/output between primary information handling system 102 and remote storage 130, as described in greater detail elsewhere herein. In some embodiments, storage virtual controller 121 may execute within a guest operating system running on hypervisor 114 (e.g., a keyboard-video-mouse hypervisor) or may itself comprise a guest operating system configured to run on hypervisor 114 (e.g., a keyboard-video-mouse hypervisor).
Although hypervisor 114, operating system 116, application 118, storage management console 120, and storage virtual controller 121, are shown in
Physical storage controller 106 may include any system, apparatus, or device operable to manage the communication of data between processor 103 and storage resource 110. In certain embodiments, physical storage controller 106 may provide functionality including, without limitation, disk aggregation and redundancy (e.g., RAID), I/O routing, and error detection and recovery. Physical storage controller 106 may also have features supporting shared storage and high availability. In some embodiments, physical storage controller 106 may comprise a PowerEdge RAID Controller (PERC) manufactured by Dell Inc.
Storage resources 110 may include one or more hard disk drives, magnetic tape libraries, optical disk drives, magneto-optical disk drives, compact disk drives, compact disk arrays, disk array controllers, and/or any other system, apparatus or device operable to store media. In some embodiments, storage resource 110 may comprise a plurality of physical storage resources that may appear to an operating system or virtual machine executing on primary information handling system 102 as a single logical storage unit or virtual storage resource. For example, each such virtual storage resource may comprise a RAID. Thus, in some embodiments, a virtual storage resource may comprise a redundant array of physical storage resources. In the same or alternative embodiments, a virtual storage resource may be implemented using a RAID standard. Although
Network interface 108 may comprise any suitable system, apparatus, or device operable to serve as an interface between primary information handling system 102 to one or more other information handling systems (e.g., secondary information handling system 122, remote storage 130) via network 160. Network interface 108 may enable primary information handling system 102 to communicate using any suitable transmission protocol and/or standard. In these and other embodiments, network interface 108 may comprise a network interface card, or “NIC.” In other embodiments, network interface 108 may be implemented as a virtual NIC (e.g., implemented by software configured to execute on processor 103 of primary information handling system 102). In yet other embodiments, network interface 108 may comprise another type of data transfer card, such as a Fibre Channel card.
In addition to processor 103, memory 104, and physical storage controller 106, storage resource 110, and network interface 108, primary information handling system 102 may include one or more other information handling resources.
In some embodiments, secondary information handling system 122 may comprise a server. In these and other embodiments, secondary information handling system 122 may comprise a personal computer. In other embodiments, secondary information handling system 122 may be a portable computing device (e.g., a laptop, notebook, tablet, handheld, smart phone, personal digital assistant, etc.). As depicted in
Processor 123 may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation, a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor 123 may interpret and/or execute program instructions and/or process data stored in memory 124 and/or another component of secondary information handling system 122.
Memory 124 may be communicatively coupled to processor 123 and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory 124 may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to primary information handling system 122 is turned off.
As shown in
Storage management console 140 may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to, when read and executed by processor 103, facilitate disaster recovery, as described in greater detail herein. For example, storage management console 140 may be aware of applications configured to consume storage space within storage resource 110, and may maintain metadata (e.g., connectivity and configuration information) for remote storage 130 (e.g., which portions of remote storage 130 map to storage addresses exposed to application 118). In operation, storage management console 140 may also, via network 160, receive such metadata from storage management console 120 executing on primary information handling system 102, such that, during normal operation, storage management console 140 acts as a replica of storage management console 120. In some embodiments, storage management console 140 may execute within a guest operating system running on hypervisor 114 or may itself comprise a guest operating system configured to run on hypervisor 114.
Storage virtual controller 141 may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured to, when read and executed by processor 123, emulate and/or simulate a physical storage controller to facilitate input/output between primary information handling system 122 and remote storage 130, as described in greater detail elsewhere herein. In some embodiments, storage virtual controller 141 may execute within a guest operating system running on hypervisor 114 or may itself comprise a guest operating system configured to run on hypervisor 114.
Although hypervisor 114, operating system 116, application 118, storage management console 140, and storage virtual controller 141, are shown in
Network interface 128 may comprise any suitable system, apparatus, or device operable to serve as an interface between secondary information handling system 122 to one or more other information handling systems (e.g., primary information handling system 102, remote storage 130) via network 160. Network interface 128 may enable secondary information handling system 122 to communicate using any suitable transmission protocol and/or standard. In these and other embodiments, network interface 128 may comprise a network interface card, or “NIC.” In other embodiments, network interface 128 may be implemented as a virtual NIC (e.g., implemented by software configured to execute on processor 123 of secondary information handling system 122). In yet other embodiments, network interface 128 may comprise another type of data transfer card, such as a Fibre Channel card.
In addition to processor 123, memory 124, and network interface 128, secondary information handling system 122 may include one or more other information handling resources.
Remote storage 130 may include any computer-readable media configured to store data associated with primary information handling system 102, secondary information handling system 122, and/or other information handling systems. In some embodiments, remote storage 130 may be part of or associated with a cloud service (e.g., maintained by a third party) which may include any suitable service for maintaining documents associated with or accessible to information handling system 102, secondary information handling system 122, and/or other information handling systems, or performing a service with respect to such documents to modify, transform, or reformat such a document. For example, such a third-party cloud service may include a file storage and/or file synchronization service.
Network 160 may be a network and/or fabric configured to couple user primary information handling system 102, secondary information handling system 122, and/or remote storage 130 to each other. In some embodiments, network 160 may include a communication infrastructure, which provides physical connections, and a management layer, which organizes the physical connections and information handling systems communicatively coupled to network 160. Network 160 may be implemented as, or may be a part of, a storage area network (SAN), a PAN, a LAN, a metropolitan area network (MAN), a WAN, a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data). Network 160 may transmit data using any storage and/or communication protocol, including without limitation, Fibre Channel, Frame Relay, Asynchronous Transfer Mode (ATM), Internet protocol (IP), other packet-based protocol, small computer system interface (SCSI), Internet SCSI (iSCSI), Serial Attached SCSI (SAS) or any other transport that operates with the SCSI protocol, advanced technology attachment (ATA), serial ATA (SATA), advanced technology attachment packet interface (ATAPI), serial storage architecture (SSA), integrated drive electronics (IDE), and/or any combination thereof. Network 160 and its various components may be implemented using hardware, software, or any combination thereof.
In addition to primary information handling system 102, secondary information handling system 122, remote storage 130, and network 160, system 100 may include one or more other information handling resources.
Storage management console 120 may also configure an asynchronous mirror relationship between physical storage controller 106 and storage virtual controller 121 such that all data written to physical storage controller 106 is also written to storage virtual controller 121. In some embodiments, storage virtual controller 121 may perform write-through caching such that all input/output communications directed to it as part of the mirror relationship is written directly to remote storage 130 without any caching. By having an asynchronous mirror relationship, rather than having physical storage controller 106 write directly to remote storage 130, latencies associated with directing input/output communications to remote storage 130 fall on storage virtual controller 121, freeing the input/output path to storage resource 110 from losing processing resources, as might occur over a synchronous mirror relationship.
To initiate the mirroring described above, application-consistent snapshots may be periodically taken by storage management console 120. When taking snapshots, storage management console 120 may cause application 118 to quiesce input/output communications, take the application-consistent snapshot, and store metadata associated with the data. For example, such stored metadata may include, without limitation, storage configuration information of application 118 (e.g., the number of volumes exposed to a host of the application, their World Wide Name identifiers, etc.), information regarding the application consistent snapshot and its available replicas, internal storage configuration information regarding storage virtual controller 121 such that a replica storage virtual controller 141 may be instantiated with a like configuration at secondary information handling system 122 in the event of failover, and/or connection and authentication information for accessing logical units of remote storage 130 associated with the data. Such metadata may be cached by storage management console 120 and copied to storage management controller 140 of secondary information handling system 122.
After volumes of logical units of remote storage 130 are exposed to application 118, secondary information handling system 122 effectively operates as a remote storage (e.g., cloud-backed) disaster recovery site with input/output communications taking place via application 118 and remote storage 130, with storage virtual controller 141 interfacing between the two. In the disaster recovery mode, storage management console 140 may maintain a log to track changes or deltas caused by writes from application 118. In some embodiments, storage management console 140 may cause such delta information to be stored on a logical unit of remote storage 130, with storage management console 140 storing metadata associated with the delta information.
Advantageously, remote storage 130 (which may be a cloud-based storage repository) may serve as a go-between between primary information handing system 102 and secondary information handling system 122. Another advantage to the systems and methods herein is that secondary information handling system 122 may include only virtual components, thus potentially reducing cost.
As used herein, when two or more elements are referred to as “coupled” to one another, such term indicates that such two or more elements are in electronic communication or mechanical communication, as applicable, whether connected indirectly or directly, with or without intervening elements.
This disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Moreover, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, or component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
All examples and conditional language recited herein are intended for pedagogical objects to aid the reader in understanding the disclosure and the concepts contributed by the inventor to furthering the art, and are construed as being without limitation to such specifically recited examples and conditions. Although embodiments of the present disclosure have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the disclosure.
Number | Name | Date | Kind |
---|---|---|---|
7043485 | Manley | May 2006 | B2 |
7111194 | Schoenthal | Sep 2006 | B1 |
7162662 | Svarcas | Jan 2007 | B1 |
7225204 | Manley | May 2007 | B2 |
7363537 | Svarcas | Apr 2008 | B1 |
7370163 | Yang | May 2008 | B2 |
7617217 | Chen | Nov 2009 | B1 |
7769717 | Federwisch | Aug 2010 | B2 |
7818299 | Federwisch | Oct 2010 | B1 |
8341364 | Coronado | Dec 2012 | B2 |
8627135 | Aron | Jan 2014 | B2 |
9471444 | Aron | Oct 2016 | B2 |
20030182312 | Chen | Sep 2003 | A1 |
20160098331 | Banka | Apr 2016 | A1 |