1. Field of the Invention
The present invention relates to a method, system, and article of manufacture for performing backup operations for a volume group of volumes.
2. Description of the Related Art
In a backup computing environment, backup client programs transfer client files in a client file system to a backup server program to backup the files in a backup image. The Tivoli® Storage Manager (TSM) backup archive client may backup all client files by transferring an object including the client files to a TSM backup server that manages backup objects for multiple clients. (Tivoli is a registered trademark of International Business Machines Corporation in the United States and other countries)
Volumes configured in a storage system may be organized into volume groups, where hosts are given access to a volume group in order to access the volumes assigned to that volume group. Storage administrators typically manually invoke backup operations to backup volumes and then manually query the storage server and backup software to determine the status of backup operations with respect to the volumes. The storage administrator may then manually track the status of backup operations and multiple backups created for each volume.
Provided are a method, system, and article of manufacture for performing backup operations for a volume group of volumes. Information on a volume group associating a plurality of volumes and backup settings is maintained. A volume group is selected to which the backup settings apply. A volume group associates hosts and volumes, indicating the hosts that are enabled to access the volumes in the volume group. Automatic backup operations for the selected volume group are invoked to generate backup information for the volume group indicating backups performed with respect to the volumes associated with the volume group, process the backup information for the volume group to determine whether to perform a backup with respect to the volume group according to the backup settings, and backup each volume in the volume group in response to determining to perform the backup operation for the volume group.
In a further embodiment, a backup of the volume group completes in response to successfully backing-up each volume in the volume group. Indication is made of the completed backup for the volume group in the backup information for the volume group in response to completing the backup of the volume group.
In a further embodiment, the backup settings indicate a backup frequency. The processing of the backup information on the volume group to determine whether to perform the backup operation comprises determining a most recent completed backup from the backup information for the volume group and determining whether a difference of a current time and the most recent completed backup exceeds the backup frequency. The backup is performed with respect to each volume in the volume group in response to determining that the difference of the current time and the most recent completed backup exceeds the backup frequency.
In a further embodiment, backing-up each volume comprises allocating a target volume for the backed-up volume and creating a virtual copy of the volume, wherein the backup is completed in response to creating the virtual copy, and copying data from the volume indicated in the virtual copy to the target volume. The volumes to backup and target volumes are implemented in hard disk drives.
In a further embodiment, the backup settings indicate a maximum number of backups to maintain for the volume group. A target volume for the backed-up volume is allocated. A determination is made as to whether the backup information for the volume group indicates a number of completed backups for the volume group equals the maximum number of backups. Allocating the target volumes for the volumes in the volume group comprises using the target volumes from a previous backup of the volume group in response to determining that the number of completed backups for the volume group equals the maximum number of backups.
In a further embodiment, allocating the target volume for each volume in the volume group in response to determining that the number of completed backups for the volume group does not equal the maximum number of backups comprises determining a target volume having at least one of an equal size, performance, and reliability as the volume to backup. The allocated target volume comprises the determined target volume.
In a further embodiment, a list of completed backups of the volume group is rendered at different times. User selection is received of one of the completed backups of the volume group from the rendered list. Each backed-up volume associated with the selected completed backup of the volume group is restored in response to the user selection of the completed backup of the volume group.
In a further embodiment, the automatic backup operations for the volume group further comprise initiating a condition for each volume in the volume group to not accept further writes for the volume until the backup of the volume completes.
In a further embodiment, initiating the condition further comprises communicating with applications that write to the volumes in the volume group to quiesce all writes to the volumes in the volume group. Communication is made with the applications to end quiescing of writes to the volumes in the volume group in response to completing the backup of the volumes in the volume group.
In a further embodiment, the automatic backup operations for the volume group further comprises communicating with a storage server to cause the storage server to perform consistency operations on the volumes in the volume group to ensure that the data in the backup of each volume in the volume group is part of a consistency group.
In a further embodiment, the consistency operations performed by the storage server comprises destaging cached writes to the volumes in the volume group to a storage system including the volumes, wherein the volumes are backed-up in response to completing the destaging of the cached writes to the volumes in the storage system.
In a further embodiment, selecting a volume group to which the backup settings apply and defining the backup settings associated with the volume group are performed automatically without user intervention
The storage server 4 comprises hardware and/or software implemented in the storage system 2 to manage I/O requests to storage and backup operations. The storage server 4 includes a storage manager 12 that manages I/O requests from hosts 2 directed to volumes in the storage system 10 and cache 14 to buffer read and write data being transferred between the hosts 2 and storage system 10. The storage server 4 further includes backup services 16 that perform backup related operations with respect to volumes configured in the storage system 10.
In one embodiment, volumes 20 configured in the storage system 10 may be organized in one or more volume groups 20. One or more hosts 2 are assigned to a volume group 18, which comprises the set of volumes 20 the assigned hosts 2 may access. Volumes 20 in the volume groups 20 may be backed-up in corresponding target volumes 22 in a backup storage 24. Further, a virtual copy 26 may be created for each volume 20 in the volume group.
The virtual copy 26 comprises the data structures and information that represent the virtual copy, such as a Snapshot copy, FlashCopy®, etc. (FlashCopy is a registered trademark of International Business Machines Corp. in the United States and other countries). A virtual copy comprises a point-in-time copy of a data set that is immediately created without copying the underlying data. The virtual copy 26 may include a bitmap representing each track or block in the volume subject to the virtual copy and whether the data has been updated since the point-in-time of the virtual copy. After the point-in-time the virtual copy was created, source data in the source volume subject to the virtual copy is saved in a storage pool for the virtual copy before being overwritten. In this way volume data as of the point-in-time is maintained in the source volume location or in the associated storage pool. A background copy operation may be initiated using the virtual copy 26 to copy volume data at the point-in-time from the volume or storage pool to the target volume 22. The virtual copies 26 may be maintained in the storage server 4 or storage system 10. Further, the virtual copies 26 may be stored in the target volumes 22.
The hosts 2 that communicate with the storage server 4 may comprise suitable computational devices known in the art, such as servers, desktop computers, workstations, mainframes, hand held computing devices, telephony devices, etc. The storage server 4 may comprise a suitable server system known in the art, such as an enterprise storage server, etc. The storage system 10 may be implemented in a storage system known in the art, such as a storage system including a plurality of storage devices, e.g., interconnected hard disk drives (a Redundant Array of Independent Disks (RAID), Just a Bunch of Disks (JBOD), Direct Access Storage Device (DASD), disks connected in a loop configuration (serial loop, Fibre Channel Arbitrated Loop), a single storage device, a tape library, an optical library, a network attached storage (NAS), etc. The network 6 may comprise a Wide Area Network (WAN), Local Area Network (LAN), Storage Area Network (SAN), wireless network, the Internet, an Intranet, peer-to-peer network, etc. The hosts 2, storage server 4, and storage system 10 may communicate over a same network 6 or separate networks.
The volumes 20 in the volume groups 18 may be stored in separate storage devices in the storage system 10 from the backup storage 24 storing target volumes 22 providing backup-data for the volumes 20.
The storage server 4 further maintains volume group information 28 providing information on volume groups configured in the storage system 10, backup settings 30 providing parameters to use for backup operations and the volume groups 18 to which the settings apply, and volume group backup information 32 providing information on backups performed with respect to the volumes in a volume group. In one embodiment, a volume group backup is completed upon completion of the backup of all the volumes 20 in a volume group 18.
Each volume group is assigned the backup frequency 52 and maximum backups 54 parameters from backup settings 50, or uses default values. Other backup parameters that can optionally be set by the administrator for volume groups include: 1) priority/importance; 2) backup destination (which target volumes or which pool of volumes to backup the data); 3) snapshot method to use (incremental or non-incremental, background copy or no-copy, persistent or non-persistent); 4) expiration date (if any); 5) disk type (RAID 0, 1, 10, 5, or 6, SCSI, SATA, Fibre Channel, etc.); and 6) disk performance (7200 RPM, 10,000 RPM, 15,000 RPM, etc.). These optional parameters can be used by the backup services 16 to decide which target volumes to use and how to create the backup.
In certain embodiments, the volume groups may be associated with default settings if there is no specific user association of backup settings and volume groups per the operations of
If (at block 156) the checking of the backup frequency 52 indicates that a further backup of the selected volume group 18 is required, then the backup services 16 determines (at block 158) whether the number of backups 74 indicated in the volume group backup information 70 for the selected volume group 18 equals a maximum number of backup 54 indicated in the backup settings 50 being processed. If the number of backups 78a . . . 78n maintained for the selected volume group 18, which may be indicated in field 74, is at a maximum number 54 and if (at block 160) the number of volumes 20 configured in the system has changed since the oldest backup 76a . . . 76n, then the backup services 16 deletes (at block 162) the oldest backup indicated in the volume group backup information 70, release the volumes used, and decrements the number of backups 74. If (at block 160) the number of volumes 18 configured in the system has not changed, then the backup services 16 determines (at block 166) target volumes 22 in an oldest backup 78n of the selected volume group 18 to allocate for the current backup, i.e., the backup having the oldest backup time 76a . . . 76n, and decrements the number of backups 74. At block 166, the backup services 16 reuses the target volumes 22 from a previous backup when the maximum number of backups is maintained for the volume group 18. If (at block 158) the number of backups maintained for the volume group is not at a maximum number 54 indicated in the considered backup settings 50 or after deleting the oldest backup (at block 162), the backup services 16 allocates (at block 168) new target volumes in the backup storage 24 for each volume 20 in the volume group 18. In one embodiment, the backup services 16 may allocate target volumes 22 that have a same size, are of a same storage type, have a same performance and reliability, etc., as the source volume 20 subject to the back-up.
The backup services 16 may further perform operations (at block 170) to ensure that data in volumes 20 in the selected volume group 18 are consistent as of a point-in-time. In one embodiment, to insure consistency across the volumes in the selected volume group, the backup services 16 may initiate a condition for each volume in the volume group to not accept further writes for the volume until the backup of the volume completes.
The backup services 16 backs-up (at block 172) each volume 20 in the volume group 18 by creating a virtual copy 26 for each volume 20 in the volume group 18. With respect to
If (at block 174) the virtual copy or other backup operation was successful for each volume 20 in the selected volume group 18, then the backup services 16 returns (at block 178) success to the completion of the backup of the selected backup group 18. The completed backup set 78a, the time 76a the virtual copy of all volumes in the volume group completed, and the target volumes 22 allocated for the volumes in the volume group 18 are indicted (at block 180) in the backup information 70 for the selected volume group 18. In one embodiment, the backup services 16 adds a backup set entry 80 (FIG. 5) for the completed backup for each volume 20 in the volume group 18 indicating the source volume 82, virtual copy 84, target volume 86, and backup time 88 for the backup of that specific volume. In one embodiment, the backup operation for the volume group completes in response to creating the virtual copy 26 for every volume 20 in the volume group 18. The backup time 76a for the volume group 18 may indicate a time at which all the individual volumes completed their backup, which may comprise the latest backup time 88 of the volumes 82 in the volume group 18. The number of backups 74 is incremented (at block 182). The backup services 16 may initiate a background copy operation (at block 184) to copy the data indicated in the virtual copy 26 to the target volume 22, by copying data from the source volume 20. Further, data in the volume 20 as of the point-in-time of the virtual copy 26 may be copied over to the target volume 22 before the data is updated in the source volume 20. From block 176 or 184, control proceeds to block 152 in
Described embodiments provide techniques to automatically perform backup operations with respect to all the volumes of a selected volume group. With the described embodiments, the backup services upon being invoked to backup a volume group automatically performs a backup operation with respect to each volume in the volume group to maintain backup information for the volume group as a whole. Further embodiments provide techniques to restore the volumes for a selected volume group.
The described operations may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The described operations may be implemented as code maintained in a “computer readable medium”, where a processor may read and execute the code from the computer readable medium. A computer readable medium may comprise media such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc. The code implementing the described operations may further be implemented in hardware logic implemented in a hardware device (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.). Still further, the code implementing the described operations may be implemented in “transmission signals”, where transmission signals may propagate through space or through a transmission media, such as an optical fiber, copper wire, etc. The transmission signals in which the code or logic is encoded may further comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. The transmission signals in which the code or logic is encoded is capable of being transmitted by a transmitting station and received by a receiving station, where the code or logic encoded in the transmission signal may be decoded and stored in hardware or a computer readable medium at the receiving and transmitting stations or devices. An “article of manufacture” comprises computer readable medium, hardware logic, and/or transmission signals in which code may be implemented. A device in which the code implementing the described embodiments of operations is encoded may comprise a computer readable medium or hardware logic. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise suitable information bearing medium known in the art.
The terms “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean “one or more (but not all) embodiments of the present invention(s)” unless expressly specified otherwise.
The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise.
The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise.
The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise.
The variable “n” when used to represent a variable number of an element may indicate any number of instances of the element, and may indicate different integer numbers when used with different elements or when used with different instances of the same element.
Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries.
A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the present invention.
Further, although process steps, method steps, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. In other words, any sequence or order of steps that may be described does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order practical. Further, some steps may be performed simultaneously.
When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the present invention need not include the device itself.
The illustrated operations of
The foregoing description of various embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
Number | Name | Date | Kind |
---|---|---|---|
5454099 | Myers et al. | Sep 1995 | A |
5574906 | Morris | Nov 1996 | A |
5606689 | Nakagawa | Feb 1997 | A |
5813017 | Morris | Sep 1998 | A |
6269381 | St. Pierre et al. | Jul 2001 | B1 |
6941328 | Cannon | Sep 2005 | B2 |
7085904 | Mizuno et al. | Aug 2006 | B2 |
7146474 | Nguyen et al. | Dec 2006 | B2 |
7263590 | Todd et al. | Aug 2007 | B1 |
20030005248 | Selkirk et al. | Jan 2003 | A1 |
20030154220 | Cannon | Aug 2003 | A1 |
20040172512 | Nakanishi et al. | Sep 2004 | A1 |
20040260896 | Werner et al. | Dec 2004 | A1 |
20050086443 | Mizuno et al. | Apr 2005 | A1 |
20050114728 | Aizawa et al. | May 2005 | A1 |
20050187992 | Prahlad et al. | Aug 2005 | A1 |
20050267923 | Tabuchi et al. | Dec 2005 | A1 |
20060085575 | Hosouchi et al. | Apr 2006 | A1 |
20070300033 | Kano | Dec 2007 | A1 |
20080059733 | Otani | Mar 2008 | A1 |
20080082748 | Liu et al. | Apr 2008 | A1 |
Number | Date | Country |
---|---|---|
0410630 | Jan 1991 | EP |
0899662 | Mar 1999 | EP |
Number | Date | Country | |
---|---|---|---|
20080294859 A1 | Nov 2008 | US |