1. The Field of the Invention
The present invention relates to data storage and back-up solutions for archiving data and recovering data. More particularly, embodiments of the invention relate to software, hardware, systems, and methods for providing data protection in a manner that provides for high efficiency archiving and portability.
2. The Relevant Technology
Virtualization is an abstraction layer that decouples the physical hardware of a computer from the operating system to deliver greater IT resource utilization and flexibility. Virtualization allows multiple virtual machines, with heterogeneous operating systems, to run in isolation, side-by-side on the same physical machine. Each virtual machine has its own set of virtual hardware (e.g., RAM, CPU, NIC, etc.) upon which an operating system and applications are loaded. The operating system sees a consistent, normalized set of hardware regardless of the actual physical hardware components.
Virtual machines are encapsulated into files, making it possible to rapidly, save, copy and provision a virtual machine. Full systems (fully configured applications, operating systems, BIOS and virtual hardware) can be moved, within seconds, from one physical server to another for zero-downtime maintenance and continuous workload consolidation.
In recent years, virtualization has become increasingly common due to the many advantages it offers. Typically, however, businesses, enterprises, and other entities committing to full virtualization in their computer networks are unable to achieve all the benefits of virtualization when it comes to their data backup and/or archive solution. For example, conventional computer networks are often backed up to a tape archive or virtual tape library (“VTL”) via a backup server. Because tape archives are not virtualizable, the backup server is always tied to the tape archive. In other words, even if the backup server is virtualized, the backup server cannot be ported between physical servers due to the connection that must be maintained between the backup server and the tape archive. The problem persists with regard to VTLs as well. Consequently, there currently exists a need in the art for improved backup and archiving solutions in virtualized network environments.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced
To further clarify the above and other advantages and features of the present invention, a more particular description of the invention will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. The invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Embodiments of the invention relate to a virtualized backup storage application that can be implemented in a completely virtualized network environment such that the backup storage application is not tied to a physical device (e.g., tape library or VTL). In one embodiment of the invention, a network environment is virtualized by pooling the resources of the environment and providing a virtualization layer thereon to shield virtual machines operated on the virtualization layer from actual resources. A first application (such as a server) is operated on the virtualization layer to generate a raw data set that is stored to a first shared storage device. A backup storage application is also operated on the virtualization layer to generate a backup data set from the raw data set. The backup data set can be stored to the first shared storage device or to a second shared storage device. Alternately or additionally, the backup data set can be replicated to shared archive storage, such as a SAN.
By running the backup storage application on a virtualization layer and storing backup data to shared storage (e.g., shared storage device or shared archive storage), the backup storage application is not tied to a physical device, in contrast to conventional systems. Additionally, the entire backup storage application can be archived as a virtual system onto the shared archive storage. Consequently, in addition to facilitating the restoration of backup data, embodiments of the invention facilitate the restoration of the archived backup storage application to any hardware subsystem that supports the virtual system.
To practice the invention, the computer and network devices may be any devices useful for providing the described functions, including well-known data processing and storage and communication devices and systems such as computer devices typically used as hosts in user systems with processing, memory, and input/output components, and server devices configured to maintain and then transmit digital data over a communications network. Data typically is communicated in digital format following standard communication and transfer protocols. The data storage resources are generally described as disk, optical, and tape devices that implement RAID and other storage techniques and that may use SCSI and other I/O, data transfer, and storage protocols, but the invention is not intended to be limited to the example embodiments or to specific hardware and storage mechanisms as it is useful for nearly any data storage arrangement in which archives of digital data, such as data volumes, are generated and maintained.
A server, client, or other application 130 is provided and associated with the operating system 132 and uses the virtual system 136 to store raw data for which it is desired to provide archival backup or data protection. The raw data is stored in virtual memory of the standardized hardware 136.
Similarly, a backup storage application 131 is provided and associated with the operating system 133 and uses the virtual system 137 to process raw data to create a backup data set that is replicated to an archive mechanism in the architecture 110 (such as a disk or optical device). The backup storage application 131 can be virtually any backup storage application including high efficiency data de-duplication storage applications that create space efficient versions (i.e., with a data object typically only being stored once and matched with a unique identifier) of the raw data set. To create space efficient versions of the raw data set, the backup storage application 131 may implement, for example, the sticky byte algorithm disclosed in commonly assigned U.S. Pat. No. 6,810,398 which is incorporated herein by reference, although other algorithms can also be used.
In one embodiment, the storage application is a content addressed storage (“CAS”) application. Generally, content-addressed storage (CAS) includes a method of providing access to fixed or specific data content by assigning it a permanent place on disk or other data storage. When a data object is stored in CAS, the object is given a name or identifier (such as a hash number) that uniquely identifies it and that also specifies the storage location, and this type of address is called a “content address.”
Generally, the virtualization layer 120 is selected to act as an abstraction layer that decouples the physical hardware from the operating system associated with applications 130, 131 to deliver greater IS resource utilization and flexibility. Virtualization layer 120 allows multiple virtual machines or guest machines (such as may be used to run applications 130, 131), with heterogeneous operating systems, to run in isolation but side-by-side on the same or a different physical machine. Each virtual machine has its own set of virtual hardware (e.g., RAM, CPU, NIC, etc. within the pool 110) upon which an operating system and applications including the applications 130, 131 are loaded. The operating systems see a consistent, normalized set of hardware regardless of the actual physical hardware components.
Advantageously, virtual machines (such as the two virtual machines of
Upon the platform 210, a virtualization infrastructure 220 is provided for connecting the resources in pool 210 to users (or to a business/enterprise) 235, 245, 255. The virtual infrastructure 220 provides a dynamic mapping of the resources in pool 210 to one or more virtual machines 230, 240, 250. Each of the virtual machines 230, 240, 250 runs an operating system 232, 242, 252 and an application 234, 244, 254. In the present embodiment of the invention, each of the applications 234 and 244 may be a server, client, or some other application storing raw data to virtual storage physically located on at least one of the server machines 213, 215, 216.
The application 254 is a backup storage application that creates backups of the raw data sets and stores the backups in virtual storage allocated to the virtual machine 250. In some embodiments, the backup storage application 254 can additionally replicate the backup data to an offsite location. For instance, if the virtual machine 250 operates on the server 213, its allocated virtual storage is typically on the server 213. In order to provide data protection, the backup storage application can replicate backup data from the server 213 to remote storage 211, 218. Alternately or additionally, backup data can be replicated at a remote storage array if the remote storage array knows where the virtual storage for the virtual machine 250 is physically located.
The backup storage application 254 may be ported to data that has been archived according to its particular storage methods and may use its recovery functionality to recover or restore such data on a hardware subsystem within pool 210 provided by virtual infrastructure as being capable of supporting the virtual machine 250 and its associated virtual storage system. For example, backup versions of a raw data set archived in storage 211 or 218 may be accessed by a virtual machine 250 via one or more of the servers 213, 215, 216 (and/or other resources in pool 210) to recover a desired set of data, such as based on a recovery request from a user 235, 245, 255.
Advantageously, virtualizing the backup storage solution and having it replicate to virtualized disk storage enables a 100% virtualized environment. In contrast, conventional backup solutions (virtualized or otherwise) remain tied to a physical device (e.g., a tape library or a VTL), even if the computer architecture in which the conventional backup solution is implemented is otherwise completely virtualized. Consequently, conventional backup solutions cannot be moved around within a virtualized environment whereas a backup storage application according to embodiments of the invention can be.
With reference now to
A backup storage application can also be operated or run 306 on the virtualization layer to create a backup data set from the raw data set, the virtualization layer presenting a representation of a set of components of the hardware subsystem to the storage application such that the storage application can generate and store the backup data set. In one embodiment of the invention, the hardware subsystem includes the storage device to which the first application stores the raw data set. In this case, the virtualization layer presents a representation of at least a second portion of the storage device to the storage application wherein the backup data can be stored. Alternately or additionally, the hardware subsystem includes a second storage device and the virtualization layer presents a representation of at least a portion of the second storage device to the storage application wherein the backup data can be stored.
In some embodiments of the invention, the backup data set is replicated 308 to the archive mechanism, which may constitute part of the hardware subsystem or may be independent of the hardware subsystem. One skilled in the art will appreciate that in situations where the first application and the backup storage application store the raw data set and the backup data set to different storage devices, it may be unnecessary to replicate the backup data set to an archive. Alternately, where the raw data set and backup data set are stored on the same storage device or on physically proximate storage devices, replicating the backup data to a remote archive may be desired in order to achieve greater data protection. In cases where the backup data set is replicated to an archive, the replication can be performed by the backup storage application and/or by the archive. Optionally, if the raw data set is lost, corrupted, or otherwise destroyed, the storage application can recover and restore 310 the raw data set based on the backup data set. In some embodiments, the backup data set is used to restore and recover the raw data set in response to receiving a recovery request from a user, such as the users 435, 445 and 455 of
As discussed above, the virtualization layer or infrastructure (such as those shown in
As discussed above, storage applications of the virtualized systems of
The embodiments described herein may include the use of a special purpose or general-purpose computer including various computer hardware or software modules, as discussed in greater detail below.
Embodiments within the scope of the present invention also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired and wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media.
Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
As used herein, the term “module” or “component” can refer to software objects or routines that execute on the computing system. The different components, modules, engines, and services described herein may be implemented as objects or processes that execute on the computing system (e.g., as separate threads). While the system and methods described herein are preferably implemented in software, implementations in hardware or a combination of software and hardware are also possible and contemplated. In this description, a “computing entity” may be any computing system as previously defined herein, or any module or combination of modulates running on a computing system.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
This application is a continuation-in-part of U.S. patent application Ser. No. 11/739,311 filed Apr. 24, 2007 and entitled CENTRALIZED CONTENT ADDRESSED STORAGE, which in turn claims the benefit of U.S. Provisional Patent Application Ser. No. 60/794,364 filed Apr. 24, 2006 and entitled CENTRALIZED CONTENT ADDRESSED STORAGE. The foregoing patent applications are incorporated herein by reference.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5542064 | Tanaka et al. | Jul 1996 | A |
| 5642505 | Fushimi | Jun 1997 | A |
| 5764972 | Crouse et al. | Jun 1998 | A |
| 6212512 | Barney et al. | Apr 2001 | B1 |
| 6275953 | Vahalia et al. | Aug 2001 | B1 |
| 6496944 | Hsiao et al. | Dec 2002 | B1 |
| 6732293 | Schneider | May 2004 | B1 |
| 6795966 | Lim et al. | Sep 2004 | B1 |
| 6829617 | Sawdon et al. | Dec 2004 | B2 |
| 6865655 | Andersen | Mar 2005 | B1 |
| 6948039 | Biessener et al. | Sep 2005 | B2 |
| 7093086 | van Rietschote | Aug 2006 | B1 |
| 7096316 | Karr et al. | Aug 2006 | B1 |
| 7149858 | Kiselev | Dec 2006 | B1 |
| 7277905 | Randal et al. | Oct 2007 | B2 |
| 7343459 | Prahlad et al. | Mar 2008 | B2 |
| 7346263 | Honda | Mar 2008 | B2 |
| 7346623 | Prahlad et al. | Mar 2008 | B2 |
| 7437506 | Kumar et al. | Oct 2008 | B1 |
| 7469323 | Tormasov et al. | Dec 2008 | B1 |
| 7472242 | Deshmukh et al. | Dec 2008 | B1 |
| 7500001 | Tameshige et al. | Mar 2009 | B2 |
| 7669020 | Shah et al. | Feb 2010 | B1 |
| 20020069335 | Flynn, Jr. | Jun 2002 | A1 |
| 20020069369 | Tremain | Jun 2002 | A1 |
| 20030177324 | Timpanaro-Perrotta | Sep 2003 | A1 |
| 20030217038 | Kageyama et al. | Nov 2003 | A1 |
| 20040225659 | O'Brien et al. | Nov 2004 | A1 |
| 20050125513 | Sin-Ling Lam et al. | Jun 2005 | A1 |
| 20050160243 | Lubbers et al. | Jul 2005 | A1 |
| 20050235288 | Yamakabe et al. | Oct 2005 | A1 |
| 20060053333 | Uhlmann et al. | Mar 2006 | A1 |
| 20060059207 | Hirsch et al. | Mar 2006 | A1 |
| 20060174076 | Takeda et al. | Aug 2006 | A1 |
| 20060184937 | Abels et al. | Aug 2006 | A1 |
| 20070174566 | Kaneda et al. | Jul 2007 | A1 |
| 20070179999 | Kamei et al. | Aug 2007 | A1 |
| 20070180509 | Swartz et al. | Aug 2007 | A1 |
| 20070286575 | Oashi et al. | Dec 2007 | A1 |
| 20080013365 | Yueh | Jan 2008 | A1 |
| 20080215474 | Graham | Sep 2008 | A1 |
| 20080215796 | Lam et al. | Sep 2008 | A1 |
| 20080313371 | Kedem et al. | Dec 2008 | A1 |
| 20090222496 | Liu et al. | Sep 2009 | A1 |
| 20090276771 | Nickolov et al. | Nov 2009 | A1 |
| 20100205393 | Yueh | Aug 2010 | A1 |
| 20100275058 | Hashimoto et al. | Oct 2010 | A1 |
| Number | Date | Country |
|---|---|---|
| 200780009902 | Jun 2010 | CN |
| 200780009902 | May 2011 | CN |
| 200780009902 | Sep 2011 | CN |
| 200780016805.3 | Apr 2012 | CN |
| 201210422261.3 | Mar 2015 | CN |
| 0774715 | May 1997 | EP |
| 0899662 | Mar 1999 | EP |
| 07758941.4 | Jun 2009 | EP |
| 07758941.4 | May 2015 | EP |
| 2005-292865 | Oct 2005 | JP |
| 2009-501704 | Jul 2011 | JP |
| 2009-501704 | Apr 2012 | JP |
| WO 9909480 | Feb 1999 | WO |
| WO 9912098 | Mar 1999 | WO |
| WO 0237689 | May 2002 | WO |
| WO 2006017584 | Feb 2006 | WO |
| PCTUS07064440 | Feb 2008 | WO |
| PCTUS07068661 | Aug 2008 | WO |
| Entry |
|---|
| U.S. Appl. No. 11/968,040, filed Dec. 31, 2007, Jedidiah Yueh. |
| U.S. Appl. No. 11/739,311, filed Apr. 24, 2007, Jedidiah Yueh. |
| U.S. Appl. No. 11/688,203, Sep. 10, 2009, Office Action. |
| U.S. Appl. No. 11/739,311, Sep. 21, 2009, Office Action. |
| U.S. Appl. No. 11/688,203, filed Mar. 19, 2007, Jedidiah Yueh. |
| U.S. Appl. No. 11/746,399, filed May 7, 2007, Jedidiah Yueh et al. |
| U.S. Appl. No. 11/747,567, filed May 11, 2007, Scott Ogata et al. |
| U.S. Appl. No. 12/762,769, filed Apr. 19, 2010, Jedidiah Yueh. |
| U.S. Appl. No. 11/688,203, Mar. 3, 2010, Notice of Allowance. |
| U.S. Appl. No. 11/688,203, Mar. 24, 2010, Notice of Allowance. |
| U.S. Appl. No. 11/968,040, Mar. 9, 2010, Final Office Action. |
| U.S. Appl. No. 11/739,311, Mar. 1, 2010, Final Office Action. |
| U.S. Appl. No. 11/746,399, May 14, 2009, Office Action. |
| U.S. Appl. No. 11/746,399, Dec. 14, 2009, Final Office Action. |
| U.S. Appl. No. 11/747,567, Sep. 30, 2009, Office Action. |
| U.S. Appl. No. 11/747,567, Feb. 24, 2010, Final Office Action. |
| U.S. Appl. No. 12/762,769, Jun. 23, 2010, Office Action. |
| U.S. Appl. No. 11/968,040, Sep. 17, 2009, Office Action. |
| U.S. Appl. No. 11/968,040, Sep. 3, 2010, Notice of Allowance. |
| U.S. Appl. No. 11/739,311, Jul. 27, 2010, Office Action. |
| U.S. Appl. No. 11/746,399, Aug. 5, 2010, Office Action. |
| U.S. Appl. No. 11/747,567, Sep. 8, 2010, Office Action. |
| U.S. Appl. No. 12/762,769, Oct. 26, 2010, Final Office Action. |
| U.S. Appl. No. 11/739,311, Nov. 29, 2010, Final Office Action. |
| U.S. Appl. No. 11/739,311, Mar. 16, 2011, Office Action. |
| U.S. Appl. No. 11/746,399, Jan. 19, 2011, Final Office Action. |
| Sack, “SQL Server 2005 T-SQL Recipes a Problem Solution Approach”, pp. 683-716, 2006. |
| Tooru Miyahara, the latest emulator guide by Vmware&QEMU, SoftwareDesign, book, Gijutsu-Hyohron Co. Ltd., Jul. 18, 2005, pp. 132-141. |
| U.S. Appl. No. 11/739,311, Sep. 13, 2011, Final Office Action. |
| U.S. Appl. No. 11/746,399, Jul. 7, 2011, Notice of Allowance. |
| U.S. Appl. No. 11/747,567, Apr. 29, 2011, Final Office Action. |
| U.S. Appl. No. 12/762,769, Apr. 15, 2011, Notice of Allowance. |
| Extended European Search Report dated Aug. 7, 2013 from European Patent Application No. 07762088. |
| Office Action dated Oct. 24, 2012 from U.S. Appl. No. 11/747,567, filed May 11, 2007. |
| Office Action dated Apr. 23, 2013 from U.S. Appl. No. 11/747,567, filed May 11, 2007. |
| Office Action dated Aug. 29, 2013 from U.S. Appl. No. 11/747,567, filed May 11, 2007. |
| CN Office Action dated Mar. 5, 2014 in CN 200780009902.x. |
| U.S. Appl. No. 11/739,311, Jan. 6, 2014, Final Office Action. |
| U.S. Appl. No. 11/747,567, Jan. 13, 2014, Office Action. |
| U.S. Appl. No. 11/739,311, Sep. 3, 2014, Office Action. |
| U.S. Appl. No. 11/747,567, May 28, 2014, Final Office Action. |
| Kaczmarski et al., “Beyond backup toward storage management”, IBM Systems Journal, vol. 42, No. 2, pp. 322-337, 2003, IBM. |
| Rahumed et al., “A Secure Cloud Backup System with Assured Deletion and Version Control”, 2011 International Conference on Parallel Processing Workshops, pp. 160-167, 2011, IDDD. |
| Number | Date | Country | |
|---|---|---|---|
| 60794364 | Apr 2006 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 11739311 | Apr 2007 | US |
| Child | 11772183 | US |