CA2153769C - Apparatus and method for transferring and storing data from an arbitrarily large number of networked computer storage devices - Google Patents
Apparatus and method for transferring and storing data from an arbitrarily large number of networked computer storage devices Download PDFInfo
- Publication number
- CA2153769C CA2153769C CA002153769A CA2153769A CA2153769C CA 2153769 C CA2153769 C CA 2153769C CA 002153769 A CA002153769 A CA 002153769A CA 2153769 A CA2153769 A CA 2153769A CA 2153769 C CA2153769 C CA 2153769C
- Authority
- CA
- Canada
- Prior art keywords
- storage device
- index
- data
- file
- primary storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
Abstract
This invention provides a method and apparatus for storing on centralized mass storage devices archival data from multiple computers in a networked environment. In a networked computer system having a communication network interconnecting one or more computers and a storage unit, parallel processes are created to perform repeated backup operations for disks on computer devices on the communication network.
A
storage unit may be a single storage device capable of executing a plurality of processes or one or more primary storage devices connected to one or more secondary storage devices.
The backup operations for a disk include a backup initialization which occurs when a primary storage device does not have a full index or a backup data file for a disk but a secondary storage device does. During a backup initialization, data from the files and directories on that disk along with an index entry for each file or directory are passed to the primary storage device which directly passes that information directly through to the secondary storage device. The index entries are incorporated into a full index and the data is incorporated into a backup data file. An index entry contains, among other information, the location of a file or directory on the disk, the date the file or directory was last modified and the location of the associated data in the backup data file.
During a backup cycle, the computer device is incrementally backed up to a primary storage device such that the primary storage device contains a full index with an entry for each file and directory on the disk and a backup data file for the disk with data for the files and directories which have been changed or created since the last backup to the secondary storage device occurred. When a specified, predetermined time or event occurs or the transfer is otherwise indicated, the primary storage device transfers the full index and the backup data file to the secondary storage device.
A
storage unit may be a single storage device capable of executing a plurality of processes or one or more primary storage devices connected to one or more secondary storage devices.
The backup operations for a disk include a backup initialization which occurs when a primary storage device does not have a full index or a backup data file for a disk but a secondary storage device does. During a backup initialization, data from the files and directories on that disk along with an index entry for each file or directory are passed to the primary storage device which directly passes that information directly through to the secondary storage device. The index entries are incorporated into a full index and the data is incorporated into a backup data file. An index entry contains, among other information, the location of a file or directory on the disk, the date the file or directory was last modified and the location of the associated data in the backup data file.
During a backup cycle, the computer device is incrementally backed up to a primary storage device such that the primary storage device contains a full index with an entry for each file and directory on the disk and a backup data file for the disk with data for the files and directories which have been changed or created since the last backup to the secondary storage device occurred. When a specified, predetermined time or event occurs or the transfer is otherwise indicated, the primary storage device transfers the full index and the backup data file to the secondary storage device.
Description
APPARATUS AND METHOD FOR TRANSFERRING AND STORING DATA FROM
AN ARBITRARILY LARGE NUh-ZBER OF NETWORKED COMPUTER STORAGE
DEVICES
RELATED APPLICATION
This application is related to co-pending application entitled "METHOD AND
1o APPARATUS FOR DATA TRANSFER AND STORAGE IN A HIGHLY PARALLEL
COMPUTER NETWORK ENVIRONMENT", filed concurrently herewith, which was commonly assigned or subject to an obligation of assignment to the same person at the time of invention.
is FIELD OF THE INVENTION
This invention relates generally to large scale computer archival storage mechanisms and more specifically to a method and apparatus for storing archival data from multiple personal computers in a networked environment.
2o BACKGROUND OF THE INVENTION
Backup storage devices may provide low cost storage onto which computers connected to the storage devices can create archival or backup copies of their files for later recovery if the original files are lost or corrupted. Typically, data is copied first 2s from a computer to a primary storage device and subsequently from the primary storage device to a lower cost, higher density secondary storage device such as a magnetic tape or optical disk. This is commonly known as "backing up" the system.
The high speed storage device and the tapes or optical disks may be stored in a safe, protected environment to minimize the risk of damage or loss of the data stored 30 therein.
Typically, a full backup of a computer device is followed by one or more incremental backups. An incremental backup archives data which has been changed or created since the last backup, incremental or full.
In an environment where there are multiple personal computers networked 35 together, it is burdensome to backup each computer individually because a backup of a computer is usually initiated by a person. At times that person may forget to backup a computer and if that data has been lost or corrupted, it may be irretrievable, because it has not been archived. Typically, an administrator oversees the backup of the computers to check that each machine is backed up on a regular basis. Thus, this approach is labor intensive and burdensome.
In some prior backup systems, a personal computer is backed up by physically connecting the computer to a storage device such as a tape drive. ' An administrator then controls the transfer of data from the computer to the storage device.
After the backup operation is completed, the storage device is disconnected from the computer.
This prior backup system is also labor intensive because for each complete backup operation a person physically connects and disconnects the computer with a storage device and, also, controls the data transfer. Where multiple personal computers are to involved, this backup system can be extremely burdensome. Moreover, during the backup of a computer, the computer's resources are dedicated primarily to the backup operations and, thus, are unavailable to perform other functions. Finally, a large quantity of computers can not be backed up regularly and automatically.
In some other prior backup systems, a computer, i.e. file server, is dedicated to backing up the data from the other computers on the network. Each computer on the network initiates a connection to the file server and controls the transfer of data from that computer to that file server. In some of these prior systems, a personal computer can specify a particular time at which the backup operation should begin.
These systems present several problems. First, the storage capacity of the file 2o server or the tape robots or optical disk units attached to the file server must be equal to or greater than the combined amount of storage space on the personal computers being backed up. Thus, the number of personal computers that may be backed up is limited by the storage capacity of the file server and attached units. Second, adding a computer to the file server typically requires some overhead such as the changing of parameters. Third, since the backup operations are done in serial order, i.e.
once a backup operation begins on a first computer, it must complete before a backup operation can begin on a second computer, a computer being backed up is primarily dedicated to the backup operation and, thus, is unavailable to perform other tasks.
Fourth, it may be difficult to backup a large quantity of computers automatically and on a regular basis. Fifth, if computers choose to be backed up at the same time, it may slow down or overload the system.
SUMMARY OF THE INVENTION
It is a principal object of this invention to provide an apparatus and method for backing up multiple computers to centralized mass storage devices on a regular basis without significant user interaction.
Another object of this invention is to provide an apparatus and method for backing up multiple computers to centralized mass storage devices which does not 2153'69 render a computer unavailable for a substantial amount of time during a backup operation.
Another object of this invention is to provide an apparatus and method for backing up multiple computers to centralized mass storage devices which permit an arbitrary number of computers to be backed up.
Another object of this invention is to provide an apparatus and method for backing up multiple computers to centralized mass storage devices which permit a computer storage device such as a disk to be added to the network or relocated in the network without substantial modification or notification.
to This invention provides a method and apparatus for backing up data stored on multiple computers in a networked environment to centralized mass storage devices.
Briefly, according to the invention, in a computer system having a communication network interconnecting one or more computers and a storage unit, parallel processes are created to perform repeated backup operations for disks on computer devices on 15 the communication network. A storage unit may be a single storage device capable of executing a plurality of processes or one or more primary storage devices connected to one or more secondary storage devices. When a storage unit is the former, processes are created to perform the backup operations that are described below in relation to a storage unit having one or more primary storage devices and one or more secondary 20 storage devices.
The backup operations for a disk include a backup initialization and repeated backup cycles. A backup initialization occurs when no corresponding full index or backup data file exists for that disk on the secondary storage device. During a backup initialization, a computer device sends a copy of data from the files and directories on 25 that disk along with an index entry for each file or directory to the primary storage device which passes that information directly through to the secondary storage device.
The secondary storage device forms a full index containing the index entries from the computer device and forms a backup data file containing the associated data.
An index entry contains, among other information, the location of a file or directory on the disk, 3o the date the file or directory was last modified and the location of the associated data in the backup data file.
During a backup cycle, the disk or other storage resource on a computer device is incrementally backed up to a primary storage device such that the primary storage device contains a full index with an entry for each file and directory on the disk and a 35 backup data file for the disk with data for the files and directories which have been changed or created since the last backup to the secondary storage device occurred.
When a specified, predetermined time or event occurs or the transfer is otherwise indicated, the primary storage device transfers the full index and the backup data file to the secondary storage device.
At the beginning of a backup cycle, the primary storage device checks if it has a copy of the full index. If it does not, the secondary storage device sends a copy of the full index via the primary storage device to the computer device. The primary storage device does not retain a copy of this full index.
The computer device determines for each file or directory on the disk whether it has been modified since the date indicated in the associated entry in the full index as the last date that file or directory was modified. If a file or directory was created after the last backup occurred, i.e. the file or directory was not among those listed by the primary storage device, the file or directory is considered to have been modified since to the last backup.
For each file or directory on the disk, the computer device sends an index entry to the primary storage device. The index entry indicates whether that file or directory has been modified or created since the last backup, i.e. since the last modified date for that file or directory indicated by the primary storage device. For each such modified 15 or created file or directory, the data associated with that file or directory is sent from the computer device to the primary storage device. Using the full index and backup data file on the primary storage device, if any exist, and the index entries and data sent from the computer device to the primary storage device, a new full index and a new backup data file are formed describing which files and directories have been changed 20 or created since the last backup to the secondary storage device occurred.
Until a specified, predetermined time or event occurs or a transfer of data from a primary storage device to a secondary storage device is otherwise indicated, the primary storage device sends a full index to the computer device and the computer device sends back index entries and data as described above. However, the primary 25 storage device retains a copy of this full index after sending it to the computer device.
The highly parallel nature of this invention greatly reduces the need to minimize the time taken to perform an individual backup. Therefore, during the backup cycle, other activity on a computer device such as a user using the computer device has priority over backup processes. Thus, the backup operations do not render a computer 3o unavailable for a substantial amount of time. Backup operations occur in the background when a computer device is available and do not significantly disturb users of the computer device.
The invention provides several other advantages. First, since the backup of a disk is initiated by a secondary storage device and the backup operations are 35 performed by parallel processes created by a primary storage device, no administrator is needed to initiate or oversee backup operations. Second, since backup operations occur at random times as determined by the primary storage device, the backups can be scheduled so that the network and storage devices are not overloaded. Third, since .~_ 2153~'~9 there can be multiple primary storage devices, there can be an arbitrary number of computer devices backed up on the computer network.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and further advantages of the invention may be better understood by referring to the following description in conjunction with the accompanying drawings, in which:
to FIG. 1 illustrates a computer backup system in accordance with this invention;
FIGS. 2A-2C show a computer device, a primary storage device and a secondary storage device and , respectively, in a computer backup system of FIG. 1.;
15 FIGS. 3A and 3B show alternative embodiments of an index entry in accordance with the invention;
FIGS. 4A-4D describe backup operations for a disk on a computer device;
2o FIG. 5A describes a possible format for information exchanged between devices in the computer backup system shown in FIG. 1;
FIG. 5B describes a full index and a backup data file used by devices in the computer backup system shown in FIG. 1.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENT
Referring to FIG. 1 of the drawings, reference numeral 10 designates generally a networked computer system having a communication network 12 interconnecting at least one primary storage device 14, at least one secondary storage device 16 and at least one computer device 18. Communication network 12 can be a local-area network, high-speed bus or other interconnecting mechanism for exchanging messages and data, such as AppleTalk, Ethernet or Token Ring.
Storage devices 14 and 16 can each be a specialized storage device designed for the efficient storage, archival and retrieval of data, or can be a computer augmented with greater storage volumes and devices or can be a minicomputer or large computer providing storage service in addition to other functions. Preferably, the secondary storage device 16 is a parallel machine such as a Cray Y-MP2E/232 (Cray Research, Cray Research Park, Eagan, MN) connecting with one or more external storage devices 19 such as a tape robot 19a or an optical disk unit 19b. A primary storage device may connect with an external memory storage unit (not shown).
Computer device 18 can be any of a personal computer, workstation, minicomputer or large computer, or other specialized computing device or peripheral attached to the communication network.
FIG. 2A shows a computer device 18 including a CPU 20 and one or more disks 21, each disk having a disk identifier 22 and a memory 23. The disk identifier uniquely identifies that disk and distinguishes it from other disks or storage resources on the network. For example, the disk identifier may be a disk name, disk serial to number, an account number, a password or any combination thereof. The disk identifier may also be assigned to a disk by a primary storage device 14.
Memory 23 contains one or more files 24 and, preferably, directories 25 or other file organizational structure.
As shown in FIGS. 2B and 2C, storage devices 14 and 16, include central 15 processing units ("CPU"s) 26 and 28 respectively, and memories 32 and 34, respectively.
There are two types of memory volatile and non-volatile. Volatile memory is random access memory, or other memory where the contents are erased or otherwise destroyed when the power to the device containing the memory is turned off. On the other hand, the contents of non-volatile memory are maintained even when the power to the device 2o containing that memory is turned off. Examples of non-volatile memory are magnetic and optical disk, magnetic tape, or read-only memory such as ROM or CD-ROM.
Memory 32 may be volatile or non-volatile, but memories 23 and 34 are non-volatile memory.
At times, storage devices 14 and 16 may maintain a full index 36 (also called an 25 "index file") and a backup data file 38 (also called a "data file") for each disk 21 being backed up. The backup data file 38 is basically a stream of bytes containing data from the disk 21 being backed up. On the primary storage device 14 the full index 36 and the backup data file 38 are stored in memory 32. Preferably on the secondary storage device 16 the full index 36 is stored in memory 34, while the backup data file 38 is 3o stored on an external non-volatile storage device 19, connected to the secondary storage device. Although memories 32 and 34 may each contain a full index 36 and a backup data file 38, the information in each full index may be different. The full index 36 and backup data file 38 for a disk 21 on the primary storage device 14 contain information about the files and directories on the disk and data for those files and directories on 35 that disk which have been modified since the disk was last backed up on the secondary storage device 16.
Preferably, memory 34 contains a responsible primary storage device indicator 39 for each disk 21 for which it has a full index 36. This responsible primary storage device indicator 39 specifies which primary storage device is responsible for backup operations for that disk 21. The primary storage device which performed the most recent backup operation, as described below, is the primary storage device which is responsible for backing up that disk 21.
Full index 36 may describe a disk 21 or a plurality of disks and contains one or more index entries 50. As shown in FIG. 3, an index entry 50 preferably contains an identifier field 52 (first field) , a location field 54 (second field), an offset field 56 (third field), a file size field 58 (fourth field) and a date last modified field 60 (fifth field). The order of the fields within an index entry may vary.
Identifier field 52 identifies the file or directory that is being backed up.
For to example, identifier field 52 may contain the name of the file or directory.
Location field 54 specifies the location of the file or directory on the disk being backed up. For example, location field 54 may contain the directory pathway of the file or it may contain a pointer to the address of the file in memory 32.
Optionally, location field 54 may be replaced by a parent field 53 and a folder field 55 (FIG. 3B), 15 particularly if the file structure on the disk 21 is hierarchical, as in a Macintosh computer ("Macintosh" is a registered trademark of Apple Computer, Inc.).
Offset field 56 indicates the location in the backup data file 38 of the data associated with the file or directory identified in the identifier field 52.
For example, if the data begins at byte 80 in backup data file 38, then offset field 56 may be set to 80.
2o The offset field 56 in an index entry 50 may contain a change status bit 57 to indicate whether a file or directory identified by identifier field 52 in that index entry has been modified. On a primary storage device, a change status bit 57 indicates whether a file or directory has been modified or created since the file or directory was last backed up on the secondary storage device 16. On a computer device, a change 25 status bit 57 indicates whether a file or directory has been modified or created since the file or directory was last backed up on the primary storage device, or in other words, since the full index 36 for the disk 21 containing that file was last modified or updated.
Alternatively, the change status bit 57 may be separate from the offset field 56 and may be any means capable of indicating that a file or directory has been modified or created.
30 File size field 58 indicates the length of the file or directory identified by identifier field 52.
Date last modified field 60 indicates the date and/or time on which the file or directory identified by the identifier field 52 was last modified.
In the invention, it is also possible to have an index entry that has either an offset 35 field 56 or a file size field 58, but not both. Thus, an index entry might consist of an identifier field 52, location field 54, file size field 58 and date last modified field 60. In that case the file size field 58 could contain the change status bit or otherwise indicate that a file or directory has been changed.
Optionally, as shown in FIG. 3B, the index entry 50 may also contain an attribute field 61, a creation date field 62, a file type field 63, a creator field 64, a flags field 65, a screen location field 66, a resource size field 67, a data size field 68, and a file number field 69. Attribute field 61 specifies attributes of the file, e.g. whether the file is locked.
The creation date field 62 specifies the creation date of the file and the file type field 63 specifies the type of file, e.g. document, spreadsheet. The creator field 64 specifies the application which was used to create the file. The flag field may be used to specify other attributes which were not specified in the attribute field. This field is particularly useful on a Macintosh computer where an extension to the attribute field may be to needed to specify the attributes of a disk or file. The screen location field specifies the x-y coordinates of where the file is located on the screen. The resources size field specifies the size of the resource and the data size field specifies the size of the data.
The file number field specifies a unique number assigned to that file.
FIGS. 4A-4D show the backup operations for a disk 21 or other storage resource.
The backup operations include the backup initialization 70 of a disk 21 {FIG.
4A) and the three states of a backup cycle 71 for that disk (FIGS. 4B-4D). A person of ordinary skill in the art will realize that the initialization 70 and backup cycle 71 can be used on a plurality of disks such as all disks attached to a computer device 18.
FIG. 4A shows the backup initialization 70 of a disk 21. This backup 2o initialization only occurs when no corresponding index or data file exists for that disk on the secondary storage device 16. Typically, this is when a disk 21 or other storage resource first becomes available or accessible on the network. A backup initialization does not occur when a disk 21 is relocated within the network or is otherwise removed from the network and then later added back onto it or even if a different primary storage device 14 becomes responsible for the disk, e.g. the value of indicator 39 is changed.
During the backup initialization 70, a full backup of the disk 21 is performed.
This means that data from substantially all of the files and directories on the disk 21 is copied from the computer device 18 to the secondary storage device 16 via the primary 3o storage device 14. Preferably, the primary storage device 14 relays the information to the secondary storage device 16 without retaining a copy in its own memory 32, or in other words, the primary storage device 14 passes the information through to the secondary storage device, thereby eliminating limitations based on the disk size of the primary storage device. Optionally, during the backup initialization, the responsible primary storage device indicator 39 is set to refer to that primary storage device 14.
Typically, the secondary storage device retains the full index 36 in memory 34 and the data file 38 on an external device 19.
During the backup initialization, the computer device 18 sends an index entry for each file or directory on disk 21 and data for each file or directory on disk 21. For example, the computer device 18 may send a stream of bytes 80 containing alternating index entries and data for each file. This format may also be used during the backup cycle when a computer device sends index entries and data to a primary storage device.
During the backup cycle, however, data for a file is sent from the computer device to the primary storage device only when that file has been changed or created since the last modified date indicated by the primary storage device.
FIG. 5A shows an example of a stream of bytes 80 for a disk 21 having three files 24, for each of which an unique index entry is created, e.g., for filel, filet and file3, index entryl, index entry2 and index entry3 are created, respectively. The primary 1o storage device 14 directly passes the stream of bytes through to the secondary storage device 16.
As shown in FIG. 5B, the secondary device 16 separates the data from the index entries and forms two files: a backup data file 38 containing the data as a stream of bytes and a full index 36 containing index entryl, index entry2, index entry3.
The 15 offset field 56 in index entryl, index entry2, and index entry3 is set to reference the location within the backup data file 38 of filel, filet and file3, respectively. The specific organization of the stream of bytes 80 is not crucial to the invention, as long as the full index 36 and data file 38 are stored on the secondary storage device 16 or on an external storage device 19 associated with it.
2o FIG. 4B shows the first state of a backup cycle 71. The first state of a backup cycle 71 occurs after a backup initialization 70, after the third state of a backup cycle (FIG. 4D) and whenever a new primary storage device with no full index or data file for the disk becomes responsible for backing up the disk and the secondary storage device has a full index and backup data file for that disk. The secondary storage device 25 16 sends a copy of the full index 36 to the primary storage device 14. The primary storage device sends a copy of the full index 36 to the computer device 18.
Alternatively, the primary storage device may send only the following information for each file or directory in the full index 36: the file or directory name, the location and modification date. This information corresponds to the identifier field, the location 3o field and the modification date field in an index entry. On computers where the file size can change without the modification date being change, the primary storage device also sends for each file or directory in the full index 36 the file or directory size and the creation date, corresponding to the file size field and the creation date field, respectively. In any event, sufficient information must be passed to the computer 35 device 18 so that it can accurately identify all of the files that have been modified since the earlier backup. After sending the full index or other information to the computer device, the primary storage device does not retain a copy of the full index.
For each file or directory on the disk being backed up, the computer device 18 determines which files or directories have been modified or created since the last la 2153769 modified date for that file or directory indicated by the primary storage device. If a file or directory on the disk is not among those identified by the primary storage device, e.g. it is not identified by any index entry in the full index 36, then the file or directory has been created since the full index 36 on the primary storage device was last modified. If a file or directory is among those identified by the primary storage device, e.g. there is an index entry 50 for the file or directory, then the date on which the file or directory was last modified is compared with the date indicated by the primary storage device as the last modified date, e.g. the last modified field 60 in the index entry 50 for that file.
l0 For each file or directory on the disk 21, the computer device 18 sends an index entry 50 to the primary storage device 14. If a file or directory has been modified or created as previously described, the change status bit 57 in the offset field 56 in the index entry 50 for that file or directory indicates that the file or directory has been changed and sends the data for that file or directory. Otherwise, the change status bit 57 indicates that the file or directory has not been changed and, therefore, no data has been sent.
In the first state of the backup cycle, the primary storage device does not have a full index (it deleted it after sending it to the computer device) or backup data file for the disk. Therefore, it forms a full index 36 and a changed data backup file 38 for that 2o disk. The full index 36 contains the index entries 50 received from the computer device and the changed data backup file 38 contains the associated data received from the computer device.
The offset field 50 within each index entry 50 may be set to refer to the associated data by the computer device or by the primary storage device.
During the first state of a backup cycle the secondary storage device sets the responsible primary storage device indicator 39 associated with the disk to refer to the primary storage device currently performing the backup operations on that disk.
Typically, the primary storage device notifies the secondary storage device that it is performing backup operations on a particular disk or other storage device and the 3o secondary storage device sets indicator 39 accordingly.
FIG. 4C shows the second state of a backup cycle 71. During the second state, the primary storage device 14 sends a copy of the full index 36 to the computer device 18. As described above in connection with the first state of the backup cycle, the primary storage device may alternatively send for each file and directory the name of the file or directory, the location of the file and the date the file or directory was last modified. Depending on the type of computer device, the primary storage device may also send the file or directory size and the creation date.
The computer device determines which files and directories listed in the full index, or otherwise designated, were modified or created since the last modified date 21a37fi9 for that file or directory indicated by the primary storage device. The same steps are used to make this determination as are used to make the same determination in the first state of the backup cycle, previously described.
For each file or directory on the disk 21, the computer device 18 sends an index entry 50 to the primary storage device 14. If a file or directory has been modified or created as previously described, the change status bit 57 in the offset field 56 in the index entry 50 for that file or directory indicates that the file or directory has been changed and sends the data for that file or directory. Otherwise, the change status bit 57 indicates that the file or directory has not been changed and, therefore, no data has l0 been sent.
For clarity in the rest of the description of the second state of the backup cycle, the full index 36 on the primary storage device, a copy of which was sent to the computer device, will be called 36a and the changed data backup file 38 on the primary storage device will be called 38a. The primary storage device 14 forms a new full index 15 36b containing the index entries 50 received from the computer device and a new changed data backup file 38b containing the associated data received from the computer device.
The primary storage device 14 then performs a merge operation. Using full indices 36a and 36b and changed data backup files 38a and 38b, a new full index 36c 2o and a new changed data backup file 38c are formed such that 36c and 38c describe the modifications to the disk 21 which have occurred since the last backup to the secondary storage device. For each index entry 50 in full index 36b, the primary storage device checks whether the change status bit 57 indicates that the data associated with that index entry indicates that the file or directory has been modified or created.
25 If the change status bit 57 indicates that the file or directory has been modified or created, then the data for that file or directory in changed data backup file 38b is incorporated into the new changed data backup file 38c, the offset field 56 in that index entry 50 is set to indicate the location of the data for that file or directory in the new changed data backup file 38c, the change status bit 57 in that offset field 56 is set to 3o indicate that the file or directory has been modified or created since the last backup of the disk to the secondary storage device 16 and the index entry 50 from full index 36b is incorporated into new full index 36c. The other fields in the index entry are appropriately filled in with information from the index entry 50 received from the computer device. Information which is not provided in the index entry 50 in full index 35 36b, can be obtained from the corresponding index entry 50, if one exists, in the full index 36a.
If the change status bit 57 indicates that the file or directory is unchanged, then the offset in the full index 36a is checked to see if data for the file identified by the index entry is in the changed data backup file 38a. If there is, then the data for the file or directory is taken from the changed data backup file 38a. The primary storage device 14 finds the index entry 50 in the full index 36a which refers to the file or directory by searching through the full index 36a for the identifier field 52 identifying that file'or directory. The offset field 56 in that index entry indicates the location of the data for that file or directory in the backup data file 38a and the file size field in that index entry indicates the length of that data. Using this information, the primary storage device 16 incorporates the data for the file or directory into the new changed data backup file 38c. The index entry 50 from the full index 36b is incorporated into the new full index 36c. The offset field 56 in the appropriate index entry 50 in the new full to index 36c is set to indicate the location of the data in the new backup data file 38c.
After the primary storage device 14 has completed forming the new full index 36c and the new changed data backup file 38c as described above, the primary storage device 14 discards the full indices 36a and 36b and the changed data backup files 38a and 38b. The new full index 36c becomes the full index 36 and the new changed data backup file 38c becomes the backup data file 38.
During the second state of a backup cycle the secondary storage device sets the responsible primary storage device indicator 39 associated with the disk to refer to the primary storage device currently performing the backup operations on that disk.
Typically, the primary storage device notifies the secondary storage device that it is performing backup operations on a particular disk or other storage device and the secondary storage device sets indicator 39 accordingly.
The steps described above in relation to the second state of the backup cycle are repeated until a specified, predetermined time or event occurs or a transfer from the primary to the secondary storage device is otherwise indicated.
Rather than forming a new full index 36c, index 36b can be used as long as fields such as the offset field and date modified fields in the index entry are updated accordingly. In any event, the files identified in the full index at the conclusion of the second state merge will match those in index 36b.
FIG. 4D shows the third state of a backup cycle 71. As previously stated, the 3o third state of a backup cycle begins when a specified, predetermined time or event occurs or a transfer operation from the primary to the secondary storage device is otherwise indicated. Preferably, the third state begins when an error condition is encountered, as described by co-pending patent application, "Method and Apparatus for Data Transfer and Storage in a Highly Parallel Computer Network Environment", filed concurrently herewith, the disclosure of which is herein incorporated by reference. Alternatively, the third state may begin after a specified amount of memory 28 becomes unavailable or after a specified amount of time has lapsed.
However, these alternatives may be unsuitable or undesirable for a parallel processing environment.
Therefore, it is preferable to use a method and apparatus as described in the above-referenced patent application. A flag or bit in memory 28 may be set to indicate that a transfer from the primary storage device 14 to the secondary storage device 16 should occur.
During the third state, a check is performed to confirm that the primary storage device contacting the secondary storage device about a disk is the most recent primary storage device responsible for that disk. As previously described, this determination can be made by comparing the primary storage device identification to the primary storage device identified by the responsible primary storage indicator 39 for that disk (FIG. 2C). This check can be made after the primary storage device 14 transfers the full to index 36 and the changed data backup file 38 to the secondary storage device 16 and if the primary storage device is not the proper one, then the full index and the backup data file can be ignored. Alternatively, before actually transferring the information, the primary storage device can request permission from the secondary storage device to make the transfer. The secondary storage device can then check the identification of the primary storage device and grant or deny permission accordingly. Preferably, once the transfer to the secondary storage device is complete or if the primary storage device is denied permission to make the transfer, the full index 36 and the changed data backup file 38 on the primary storage device are deleted.
By checking that the primary storage device is the proper one, the invention 2o permits a computer device and any or all of its disks to be relocated within the network system without substantial modification or notification. For example, in a networked computer system 10 (FIG. 1) having two primary storage devices 14a and 14b and a secondary storage device 16, where a computer device 18 is connected such that primary storage device 14a initiates its backup operations and maintains a data file and a full index for each of its disks 35, computer device 18 may be relocated such that primary storage device 14b handles its backup operations and maintains related files without significant overhead.
To clarify the rest of the description of the third state, the full index 36 and the changed data backup file 38 received from the primary storage device 14 will be 3o referred to as the primary full index 36a and the primary changed data backup file 38a, respectively, and the full index 36 and the full backup data file 38 stored on the secondary storage device will be referred to as the secondary full index 36b and the secondary backup data file 38b, respectively.
The secondary storage device then performs a merge operation similar to the merge performed in the second state of the backup cycle. Using full indices 36a and 36b and backup data files 38a and 38b, the secondary storage device 16 forms a new backup data file 38c. The secondary storage device 16 forms a new full index 36c. For each index entry 50 in the primary full index 36a, the secondary storage device 16 checks to see if the change status bit 57 indicates that the data associated with that APL-P784 2 ~ 5 3 7 6 9 index entry has been changed or created since the last backup was performed on the secondary storage device.
If not, then the index entry 50 in the secondary full index 36b which corresponds to the index entry 50 in the primary full index 36a, i.e. the identifier fields in the two index entries specify the same file or directory, is used to access the data associated with that file or directory in the secondary backup data file 38b. Using the offset field 56 and the file size field 58 in the appropriate index entry 50 in the secondary full index 36c, the data for that file or directory is incorporated into the new backup data file 38c.
The index entry 50 from the primary full index 36a is incorporated into the new full to index 36c. The offset field 56 in the appropriate index entry 50 in the new full index 36c is set to indicate the location of the associated data in the new backup data file 38c.
If the data has been changed or created since the last backup was performed on the secondary storage device, then that index entry 50 from the index 36a is incorporated into the new full index 36c, if a new full index is being formed.
The data in changed data backup file 38a associated with that index entry 50 is found by using the offset field 56 and the file size field 58 in that index entry. That data is incorporated into the new backup data file 38c and the offset field 56 in the appropriate index entry in the new full index 36c is set to indicate the location of that data within the new backup data file. The change status bit 57 in the appropriate index entry 50 in the new 2o full index 36c is set to indicate that the data has not been changed.
Preferably, by the end of the third state of a backup cycle, the full index and backup data file for the disk is deleted from the primary storage device 14 memory 32.
Rather than forming a new full index 36c, index 36a can be used as long as fields such as the offset field and date modified fields in the index entry are updated accordingly. In any event, the files identified in the full index at the conclusion of the third state merge will match those in index 36a.
During any backup operation, when a computer device 18 is contacted it may refuse to be backed up at that particular time. For example, to ensure that all computer devices 18 have an equal chance to be serviced by a backup process, the computer 3o device 18 may refuse all backup connections until some minimum period of time has elapsed since it's last backup occurred. In that case, the computer device may refuse backup operations to the primary storage device which are attempted within six hours of the last backup to the primary storage device.
Preferably, the secondary storage device 16 specifies to a primary storage device which disks, computer devices or area on the network to backup and the primary storage device 14 generates processes for performing backup operations on the designated entities. The primary storage device 14 may randomly generate these processes or it may generate them according to a specified method or pattern.
For example, a process might be created at specific time intervals, e.g. every second or tenth of a second. The number of processes generated depends on how often the backup operations are to be performed.
Preferably, the processes for performing backup operations are set at a lower priority than other processes which might be executing on a computer device 18.
Moreover, a computer device can refuse to be backed up. Thus, backup operations will not significantly interfere with other activity occurring on a computer device 18.
The steps of backup operations for disk 21 on a computer device 18 are as follows:
If it is indicated that a transfer from the primary storage device 14 to the secondary to storage device 16 should occur as part of a third state of a backup cycle, then the secondary storage device 16 confirms that the primary storage device 14 is the one that is responsible for the disk 21. Preferably, the invention includes a mechanism for distinguishing between a transfer from the primary storage device to the secondary storage device during a backup initialization and a transfer which begins a third state 15 of a backup cycle.
If the primary storage device is not responsible for that disk, then the primary storage device does not transfer the information to the secondary storage device 16 and deletes the full index 36 and the data file 38 from memory 32. If it is, then the full index 36 and the backup data file 38 are transferred from the primary storage device to the 2o secondary storage device 16. If all of the index entries in the full index from the primary storage device (herein referred to as the "primary index file") have not been examined, then an unexamined index entry is chosen and the index entry from the primary index file is added to the new index file, if a new index file is being formed. If a new index file does not exist, one is created, if desired. Alternatively, rather than creating a new index file, the full index from the primary may be used, as long as the offsets within each index entry are changed to refer to the location of the associated data in the new backup data file which is formed and eventually stored on the secondary storage device.
If the changed status bit 57 is set, then the data for that file or directory is taken 3o from the backup data file from the primary storage device (herein referred to as the "primary data file") and added to the new backup data file. Moreover, the index entry is set to indicate the location of that data within the new backup data file.
If all of the index entries have been examined, then the new index file replaces the full index on the secondary storage device. The new backup data file replaces the backup data file on the secondary storage device (herein referred to as the "primary data file"). The primary index file and the primary data file are deleted from the primary storage device.
Alternatively, the secondary storage device 16 could perform its check after receiving the full index 36 and data 38 from the primary storage device and then 215~~59 discard the full index and backup data file if the primary storage device is not the one responsible for that disk. The secondary storage device 16 could then notify the primary storage device that it is not the one responsible for that disk and the primary storage device could then delete the full index and backup data file from its memory 32 or the primary storage device could automatically delete the full index and backup data file after transferring it to the secondary storage device.
If a transfer from the primary storage device 14 to the secondary storage device 16 is not indicated, then the secondary storage device associates the primary storage device with the disk. The primary storage device 14 checks whether it has a full index l0 36 for that disk 21. If it does, then the primary storage device 14 sends the full index 36 or a subset thereof to the computer device 18. The computer device determines which files should be backed up. The computer device 18 sends an index entry for each file and directory on the disk, along with the data for each file and directory which should be backed up to the primary storage device 16.
15 It is next checked whether there is both a full index and a backup data file associated with the disk on the primary storage device or if the first state of a backup cycle is otherwise indicated. If not, for each file or directory on the disk, an index entry is sent from the computer device to the primary storage device, along with data for those files and directories which have been changed. Then, a new full index is formed 2o from the index entries received from the computer device and a backup data file is formed containing the data received from the computer device. The new full index replaces the full index on the primary storage device. If there is both a full index and a backup data file, then a merge operation is performed. The index and data stream 80 from the computer device is captured. A full index (herein called a "later index file") is 25 formed from the index entries received and a backup data file (herein called a "later data file") containing the associated data is formed.
If all of the index entries in the later index file have not been examined, an unexamined index entry is selected. The index entry is taken from the primary's later index file and added to the new index file. If the changed status bit is set, then the data 3o associated with the index entry from the primary's later data file is placed into the new data file. If a new data file does not exist, one is created. If the changed status bit is not set, the data associated with the index entry from the primary's backup data file is placed into the new data file. In either case, the index entry in the new full index is set to indicate the location in the new backup data file of the data for the file identified by 35 that index entry.
If all of the index entries have been examined, then the new full index replaces the primary index file and the new backup data file replaces the primary backup data file. The primary's later index file and later data file are deleted.
If the primary storage device 14 does not have a full index 36 for that disk 21, then it requests that the secondary storage device 16 send it a copy of the full index 36.
If the secondary storage device 16 has a full index 36, it sends a copy of the full index 36 to the primary storage device 14 in response to its request. Then the full index or a subset thereof is sent from the primary storage device to the computer device.
Then the full index on the primary storage device is deleted.
If the secondary storage device 16 does not have a full index 36, then it requests data and index entries from the computer device 18, either directly or via the primary storage device 14. The computer device 18 sends data and index entries for the files on to the disk 21 to the primary storage device 14. The primary storage device passes the index entries and data directly through to the secondary storage device. The secondary storage device 14 creates a backup data file 38 containing the data and a full index 36 containing the index entries 50. The secondary storage device 14 fills in relevant information in the index entries such as the offset of the data in the backup data file 38.
15 In some networked computer systems 10 (FIG. 1), the computer devices are organized into convenient groupings called "zones". Typically, a computer device can belong to only one zone at any particular point in time.
Preferably, a zone is assigned to a particular primary storage device such that at any time there is a single primary storage device responsible for that zone.
For 2o example, in a network having two zones A and B and two primary storage devices C
and D, zone A might be assigned to primary storage device C, while zone B is assigned to primary storage device D. In that case, primary storage device C will perform backup operations for zone A, but not zone B. Likewise, primary storage device D will backup zone B and not zones A. Primary storage devices D and E may create multiple 25 parallel processes to perform the backups of the zones which are assigned to them. A
zone may be reassigned to a different primary storage device as long as it is not assigned to two different primary storage devices at the same time.
When computer devices are organized into zones or other groupings, the secondary storage device may keep track of the primary storage device responsible for 30 a particular zone and the particular computer devices and disks within that zone or other grouping. This information may then be used to determine whether a particular primary storage device is the primary storage device which is responsible for a particular disk.
The steps involved in executing backup cycles for a plurality of interconnected 35 computer devices 18 in a networked computer system organized into zones are as follows:
First, the primary storage device 14 initiates a connection with the secondary storage device 16. Preferably, the secondary storage device 16 then requests that the primary storage device 14 identify which version of software it is executing and the primary ~153~69 storage device 14 responds to that request. If the secondary storage device is not "aware" of the zones on the network, it requests that the primary storage device determine which zones are the network. After receiving that information, the secondary storage device requests that the primary storage device back up a specific zone. The primary storage device determines which computer devices in that zone should be backed up and records their network addresses.
Preferably, a computer device has an account on the secondary storage device which requires password verification to use. For each computer device with an account, a password is exchanged before a computer is backed up. Then for each to computer device having an account and supplying an appropriate password, each disk on that computer device is backed up in accordance with the steps described in FIGS. 5 and 6.
The backup system includes a command protocol for interactions between a computer device 18, a primary storage device 14 and a secondary storage device 16.
This command protocol includes commands to exchange information about which backup operation is being performed, which version of software is executing, which zones are on a network, which zone should be backed up, and for transferring a full index 36, an index entry 50 or a backup data file 38.
The foregoing description has used a specific embodiment of this invention. It 2o will be apparent, however, that variations and modifications may be made to the invention with the attainment of some or all of its advantages. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.
AN ARBITRARILY LARGE NUh-ZBER OF NETWORKED COMPUTER STORAGE
DEVICES
RELATED APPLICATION
This application is related to co-pending application entitled "METHOD AND
1o APPARATUS FOR DATA TRANSFER AND STORAGE IN A HIGHLY PARALLEL
COMPUTER NETWORK ENVIRONMENT", filed concurrently herewith, which was commonly assigned or subject to an obligation of assignment to the same person at the time of invention.
is FIELD OF THE INVENTION
This invention relates generally to large scale computer archival storage mechanisms and more specifically to a method and apparatus for storing archival data from multiple personal computers in a networked environment.
2o BACKGROUND OF THE INVENTION
Backup storage devices may provide low cost storage onto which computers connected to the storage devices can create archival or backup copies of their files for later recovery if the original files are lost or corrupted. Typically, data is copied first 2s from a computer to a primary storage device and subsequently from the primary storage device to a lower cost, higher density secondary storage device such as a magnetic tape or optical disk. This is commonly known as "backing up" the system.
The high speed storage device and the tapes or optical disks may be stored in a safe, protected environment to minimize the risk of damage or loss of the data stored 30 therein.
Typically, a full backup of a computer device is followed by one or more incremental backups. An incremental backup archives data which has been changed or created since the last backup, incremental or full.
In an environment where there are multiple personal computers networked 35 together, it is burdensome to backup each computer individually because a backup of a computer is usually initiated by a person. At times that person may forget to backup a computer and if that data has been lost or corrupted, it may be irretrievable, because it has not been archived. Typically, an administrator oversees the backup of the computers to check that each machine is backed up on a regular basis. Thus, this approach is labor intensive and burdensome.
In some prior backup systems, a personal computer is backed up by physically connecting the computer to a storage device such as a tape drive. ' An administrator then controls the transfer of data from the computer to the storage device.
After the backup operation is completed, the storage device is disconnected from the computer.
This prior backup system is also labor intensive because for each complete backup operation a person physically connects and disconnects the computer with a storage device and, also, controls the data transfer. Where multiple personal computers are to involved, this backup system can be extremely burdensome. Moreover, during the backup of a computer, the computer's resources are dedicated primarily to the backup operations and, thus, are unavailable to perform other functions. Finally, a large quantity of computers can not be backed up regularly and automatically.
In some other prior backup systems, a computer, i.e. file server, is dedicated to backing up the data from the other computers on the network. Each computer on the network initiates a connection to the file server and controls the transfer of data from that computer to that file server. In some of these prior systems, a personal computer can specify a particular time at which the backup operation should begin.
These systems present several problems. First, the storage capacity of the file 2o server or the tape robots or optical disk units attached to the file server must be equal to or greater than the combined amount of storage space on the personal computers being backed up. Thus, the number of personal computers that may be backed up is limited by the storage capacity of the file server and attached units. Second, adding a computer to the file server typically requires some overhead such as the changing of parameters. Third, since the backup operations are done in serial order, i.e.
once a backup operation begins on a first computer, it must complete before a backup operation can begin on a second computer, a computer being backed up is primarily dedicated to the backup operation and, thus, is unavailable to perform other tasks.
Fourth, it may be difficult to backup a large quantity of computers automatically and on a regular basis. Fifth, if computers choose to be backed up at the same time, it may slow down or overload the system.
SUMMARY OF THE INVENTION
It is a principal object of this invention to provide an apparatus and method for backing up multiple computers to centralized mass storage devices on a regular basis without significant user interaction.
Another object of this invention is to provide an apparatus and method for backing up multiple computers to centralized mass storage devices which does not 2153'69 render a computer unavailable for a substantial amount of time during a backup operation.
Another object of this invention is to provide an apparatus and method for backing up multiple computers to centralized mass storage devices which permit an arbitrary number of computers to be backed up.
Another object of this invention is to provide an apparatus and method for backing up multiple computers to centralized mass storage devices which permit a computer storage device such as a disk to be added to the network or relocated in the network without substantial modification or notification.
to This invention provides a method and apparatus for backing up data stored on multiple computers in a networked environment to centralized mass storage devices.
Briefly, according to the invention, in a computer system having a communication network interconnecting one or more computers and a storage unit, parallel processes are created to perform repeated backup operations for disks on computer devices on 15 the communication network. A storage unit may be a single storage device capable of executing a plurality of processes or one or more primary storage devices connected to one or more secondary storage devices. When a storage unit is the former, processes are created to perform the backup operations that are described below in relation to a storage unit having one or more primary storage devices and one or more secondary 20 storage devices.
The backup operations for a disk include a backup initialization and repeated backup cycles. A backup initialization occurs when no corresponding full index or backup data file exists for that disk on the secondary storage device. During a backup initialization, a computer device sends a copy of data from the files and directories on 25 that disk along with an index entry for each file or directory to the primary storage device which passes that information directly through to the secondary storage device.
The secondary storage device forms a full index containing the index entries from the computer device and forms a backup data file containing the associated data.
An index entry contains, among other information, the location of a file or directory on the disk, 3o the date the file or directory was last modified and the location of the associated data in the backup data file.
During a backup cycle, the disk or other storage resource on a computer device is incrementally backed up to a primary storage device such that the primary storage device contains a full index with an entry for each file and directory on the disk and a 35 backup data file for the disk with data for the files and directories which have been changed or created since the last backup to the secondary storage device occurred.
When a specified, predetermined time or event occurs or the transfer is otherwise indicated, the primary storage device transfers the full index and the backup data file to the secondary storage device.
At the beginning of a backup cycle, the primary storage device checks if it has a copy of the full index. If it does not, the secondary storage device sends a copy of the full index via the primary storage device to the computer device. The primary storage device does not retain a copy of this full index.
The computer device determines for each file or directory on the disk whether it has been modified since the date indicated in the associated entry in the full index as the last date that file or directory was modified. If a file or directory was created after the last backup occurred, i.e. the file or directory was not among those listed by the primary storage device, the file or directory is considered to have been modified since to the last backup.
For each file or directory on the disk, the computer device sends an index entry to the primary storage device. The index entry indicates whether that file or directory has been modified or created since the last backup, i.e. since the last modified date for that file or directory indicated by the primary storage device. For each such modified 15 or created file or directory, the data associated with that file or directory is sent from the computer device to the primary storage device. Using the full index and backup data file on the primary storage device, if any exist, and the index entries and data sent from the computer device to the primary storage device, a new full index and a new backup data file are formed describing which files and directories have been changed 20 or created since the last backup to the secondary storage device occurred.
Until a specified, predetermined time or event occurs or a transfer of data from a primary storage device to a secondary storage device is otherwise indicated, the primary storage device sends a full index to the computer device and the computer device sends back index entries and data as described above. However, the primary 25 storage device retains a copy of this full index after sending it to the computer device.
The highly parallel nature of this invention greatly reduces the need to minimize the time taken to perform an individual backup. Therefore, during the backup cycle, other activity on a computer device such as a user using the computer device has priority over backup processes. Thus, the backup operations do not render a computer 3o unavailable for a substantial amount of time. Backup operations occur in the background when a computer device is available and do not significantly disturb users of the computer device.
The invention provides several other advantages. First, since the backup of a disk is initiated by a secondary storage device and the backup operations are 35 performed by parallel processes created by a primary storage device, no administrator is needed to initiate or oversee backup operations. Second, since backup operations occur at random times as determined by the primary storage device, the backups can be scheduled so that the network and storage devices are not overloaded. Third, since .~_ 2153~'~9 there can be multiple primary storage devices, there can be an arbitrary number of computer devices backed up on the computer network.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and further advantages of the invention may be better understood by referring to the following description in conjunction with the accompanying drawings, in which:
to FIG. 1 illustrates a computer backup system in accordance with this invention;
FIGS. 2A-2C show a computer device, a primary storage device and a secondary storage device and , respectively, in a computer backup system of FIG. 1.;
15 FIGS. 3A and 3B show alternative embodiments of an index entry in accordance with the invention;
FIGS. 4A-4D describe backup operations for a disk on a computer device;
2o FIG. 5A describes a possible format for information exchanged between devices in the computer backup system shown in FIG. 1;
FIG. 5B describes a full index and a backup data file used by devices in the computer backup system shown in FIG. 1.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENT
Referring to FIG. 1 of the drawings, reference numeral 10 designates generally a networked computer system having a communication network 12 interconnecting at least one primary storage device 14, at least one secondary storage device 16 and at least one computer device 18. Communication network 12 can be a local-area network, high-speed bus or other interconnecting mechanism for exchanging messages and data, such as AppleTalk, Ethernet or Token Ring.
Storage devices 14 and 16 can each be a specialized storage device designed for the efficient storage, archival and retrieval of data, or can be a computer augmented with greater storage volumes and devices or can be a minicomputer or large computer providing storage service in addition to other functions. Preferably, the secondary storage device 16 is a parallel machine such as a Cray Y-MP2E/232 (Cray Research, Cray Research Park, Eagan, MN) connecting with one or more external storage devices 19 such as a tape robot 19a or an optical disk unit 19b. A primary storage device may connect with an external memory storage unit (not shown).
Computer device 18 can be any of a personal computer, workstation, minicomputer or large computer, or other specialized computing device or peripheral attached to the communication network.
FIG. 2A shows a computer device 18 including a CPU 20 and one or more disks 21, each disk having a disk identifier 22 and a memory 23. The disk identifier uniquely identifies that disk and distinguishes it from other disks or storage resources on the network. For example, the disk identifier may be a disk name, disk serial to number, an account number, a password or any combination thereof. The disk identifier may also be assigned to a disk by a primary storage device 14.
Memory 23 contains one or more files 24 and, preferably, directories 25 or other file organizational structure.
As shown in FIGS. 2B and 2C, storage devices 14 and 16, include central 15 processing units ("CPU"s) 26 and 28 respectively, and memories 32 and 34, respectively.
There are two types of memory volatile and non-volatile. Volatile memory is random access memory, or other memory where the contents are erased or otherwise destroyed when the power to the device containing the memory is turned off. On the other hand, the contents of non-volatile memory are maintained even when the power to the device 2o containing that memory is turned off. Examples of non-volatile memory are magnetic and optical disk, magnetic tape, or read-only memory such as ROM or CD-ROM.
Memory 32 may be volatile or non-volatile, but memories 23 and 34 are non-volatile memory.
At times, storage devices 14 and 16 may maintain a full index 36 (also called an 25 "index file") and a backup data file 38 (also called a "data file") for each disk 21 being backed up. The backup data file 38 is basically a stream of bytes containing data from the disk 21 being backed up. On the primary storage device 14 the full index 36 and the backup data file 38 are stored in memory 32. Preferably on the secondary storage device 16 the full index 36 is stored in memory 34, while the backup data file 38 is 3o stored on an external non-volatile storage device 19, connected to the secondary storage device. Although memories 32 and 34 may each contain a full index 36 and a backup data file 38, the information in each full index may be different. The full index 36 and backup data file 38 for a disk 21 on the primary storage device 14 contain information about the files and directories on the disk and data for those files and directories on 35 that disk which have been modified since the disk was last backed up on the secondary storage device 16.
Preferably, memory 34 contains a responsible primary storage device indicator 39 for each disk 21 for which it has a full index 36. This responsible primary storage device indicator 39 specifies which primary storage device is responsible for backup operations for that disk 21. The primary storage device which performed the most recent backup operation, as described below, is the primary storage device which is responsible for backing up that disk 21.
Full index 36 may describe a disk 21 or a plurality of disks and contains one or more index entries 50. As shown in FIG. 3, an index entry 50 preferably contains an identifier field 52 (first field) , a location field 54 (second field), an offset field 56 (third field), a file size field 58 (fourth field) and a date last modified field 60 (fifth field). The order of the fields within an index entry may vary.
Identifier field 52 identifies the file or directory that is being backed up.
For to example, identifier field 52 may contain the name of the file or directory.
Location field 54 specifies the location of the file or directory on the disk being backed up. For example, location field 54 may contain the directory pathway of the file or it may contain a pointer to the address of the file in memory 32.
Optionally, location field 54 may be replaced by a parent field 53 and a folder field 55 (FIG. 3B), 15 particularly if the file structure on the disk 21 is hierarchical, as in a Macintosh computer ("Macintosh" is a registered trademark of Apple Computer, Inc.).
Offset field 56 indicates the location in the backup data file 38 of the data associated with the file or directory identified in the identifier field 52.
For example, if the data begins at byte 80 in backup data file 38, then offset field 56 may be set to 80.
2o The offset field 56 in an index entry 50 may contain a change status bit 57 to indicate whether a file or directory identified by identifier field 52 in that index entry has been modified. On a primary storage device, a change status bit 57 indicates whether a file or directory has been modified or created since the file or directory was last backed up on the secondary storage device 16. On a computer device, a change 25 status bit 57 indicates whether a file or directory has been modified or created since the file or directory was last backed up on the primary storage device, or in other words, since the full index 36 for the disk 21 containing that file was last modified or updated.
Alternatively, the change status bit 57 may be separate from the offset field 56 and may be any means capable of indicating that a file or directory has been modified or created.
30 File size field 58 indicates the length of the file or directory identified by identifier field 52.
Date last modified field 60 indicates the date and/or time on which the file or directory identified by the identifier field 52 was last modified.
In the invention, it is also possible to have an index entry that has either an offset 35 field 56 or a file size field 58, but not both. Thus, an index entry might consist of an identifier field 52, location field 54, file size field 58 and date last modified field 60. In that case the file size field 58 could contain the change status bit or otherwise indicate that a file or directory has been changed.
Optionally, as shown in FIG. 3B, the index entry 50 may also contain an attribute field 61, a creation date field 62, a file type field 63, a creator field 64, a flags field 65, a screen location field 66, a resource size field 67, a data size field 68, and a file number field 69. Attribute field 61 specifies attributes of the file, e.g. whether the file is locked.
The creation date field 62 specifies the creation date of the file and the file type field 63 specifies the type of file, e.g. document, spreadsheet. The creator field 64 specifies the application which was used to create the file. The flag field may be used to specify other attributes which were not specified in the attribute field. This field is particularly useful on a Macintosh computer where an extension to the attribute field may be to needed to specify the attributes of a disk or file. The screen location field specifies the x-y coordinates of where the file is located on the screen. The resources size field specifies the size of the resource and the data size field specifies the size of the data.
The file number field specifies a unique number assigned to that file.
FIGS. 4A-4D show the backup operations for a disk 21 or other storage resource.
The backup operations include the backup initialization 70 of a disk 21 {FIG.
4A) and the three states of a backup cycle 71 for that disk (FIGS. 4B-4D). A person of ordinary skill in the art will realize that the initialization 70 and backup cycle 71 can be used on a plurality of disks such as all disks attached to a computer device 18.
FIG. 4A shows the backup initialization 70 of a disk 21. This backup 2o initialization only occurs when no corresponding index or data file exists for that disk on the secondary storage device 16. Typically, this is when a disk 21 or other storage resource first becomes available or accessible on the network. A backup initialization does not occur when a disk 21 is relocated within the network or is otherwise removed from the network and then later added back onto it or even if a different primary storage device 14 becomes responsible for the disk, e.g. the value of indicator 39 is changed.
During the backup initialization 70, a full backup of the disk 21 is performed.
This means that data from substantially all of the files and directories on the disk 21 is copied from the computer device 18 to the secondary storage device 16 via the primary 3o storage device 14. Preferably, the primary storage device 14 relays the information to the secondary storage device 16 without retaining a copy in its own memory 32, or in other words, the primary storage device 14 passes the information through to the secondary storage device, thereby eliminating limitations based on the disk size of the primary storage device. Optionally, during the backup initialization, the responsible primary storage device indicator 39 is set to refer to that primary storage device 14.
Typically, the secondary storage device retains the full index 36 in memory 34 and the data file 38 on an external device 19.
During the backup initialization, the computer device 18 sends an index entry for each file or directory on disk 21 and data for each file or directory on disk 21. For example, the computer device 18 may send a stream of bytes 80 containing alternating index entries and data for each file. This format may also be used during the backup cycle when a computer device sends index entries and data to a primary storage device.
During the backup cycle, however, data for a file is sent from the computer device to the primary storage device only when that file has been changed or created since the last modified date indicated by the primary storage device.
FIG. 5A shows an example of a stream of bytes 80 for a disk 21 having three files 24, for each of which an unique index entry is created, e.g., for filel, filet and file3, index entryl, index entry2 and index entry3 are created, respectively. The primary 1o storage device 14 directly passes the stream of bytes through to the secondary storage device 16.
As shown in FIG. 5B, the secondary device 16 separates the data from the index entries and forms two files: a backup data file 38 containing the data as a stream of bytes and a full index 36 containing index entryl, index entry2, index entry3.
The 15 offset field 56 in index entryl, index entry2, and index entry3 is set to reference the location within the backup data file 38 of filel, filet and file3, respectively. The specific organization of the stream of bytes 80 is not crucial to the invention, as long as the full index 36 and data file 38 are stored on the secondary storage device 16 or on an external storage device 19 associated with it.
2o FIG. 4B shows the first state of a backup cycle 71. The first state of a backup cycle 71 occurs after a backup initialization 70, after the third state of a backup cycle (FIG. 4D) and whenever a new primary storage device with no full index or data file for the disk becomes responsible for backing up the disk and the secondary storage device has a full index and backup data file for that disk. The secondary storage device 25 16 sends a copy of the full index 36 to the primary storage device 14. The primary storage device sends a copy of the full index 36 to the computer device 18.
Alternatively, the primary storage device may send only the following information for each file or directory in the full index 36: the file or directory name, the location and modification date. This information corresponds to the identifier field, the location 3o field and the modification date field in an index entry. On computers where the file size can change without the modification date being change, the primary storage device also sends for each file or directory in the full index 36 the file or directory size and the creation date, corresponding to the file size field and the creation date field, respectively. In any event, sufficient information must be passed to the computer 35 device 18 so that it can accurately identify all of the files that have been modified since the earlier backup. After sending the full index or other information to the computer device, the primary storage device does not retain a copy of the full index.
For each file or directory on the disk being backed up, the computer device 18 determines which files or directories have been modified or created since the last la 2153769 modified date for that file or directory indicated by the primary storage device. If a file or directory on the disk is not among those identified by the primary storage device, e.g. it is not identified by any index entry in the full index 36, then the file or directory has been created since the full index 36 on the primary storage device was last modified. If a file or directory is among those identified by the primary storage device, e.g. there is an index entry 50 for the file or directory, then the date on which the file or directory was last modified is compared with the date indicated by the primary storage device as the last modified date, e.g. the last modified field 60 in the index entry 50 for that file.
l0 For each file or directory on the disk 21, the computer device 18 sends an index entry 50 to the primary storage device 14. If a file or directory has been modified or created as previously described, the change status bit 57 in the offset field 56 in the index entry 50 for that file or directory indicates that the file or directory has been changed and sends the data for that file or directory. Otherwise, the change status bit 57 indicates that the file or directory has not been changed and, therefore, no data has been sent.
In the first state of the backup cycle, the primary storage device does not have a full index (it deleted it after sending it to the computer device) or backup data file for the disk. Therefore, it forms a full index 36 and a changed data backup file 38 for that 2o disk. The full index 36 contains the index entries 50 received from the computer device and the changed data backup file 38 contains the associated data received from the computer device.
The offset field 50 within each index entry 50 may be set to refer to the associated data by the computer device or by the primary storage device.
During the first state of a backup cycle the secondary storage device sets the responsible primary storage device indicator 39 associated with the disk to refer to the primary storage device currently performing the backup operations on that disk.
Typically, the primary storage device notifies the secondary storage device that it is performing backup operations on a particular disk or other storage device and the 3o secondary storage device sets indicator 39 accordingly.
FIG. 4C shows the second state of a backup cycle 71. During the second state, the primary storage device 14 sends a copy of the full index 36 to the computer device 18. As described above in connection with the first state of the backup cycle, the primary storage device may alternatively send for each file and directory the name of the file or directory, the location of the file and the date the file or directory was last modified. Depending on the type of computer device, the primary storage device may also send the file or directory size and the creation date.
The computer device determines which files and directories listed in the full index, or otherwise designated, were modified or created since the last modified date 21a37fi9 for that file or directory indicated by the primary storage device. The same steps are used to make this determination as are used to make the same determination in the first state of the backup cycle, previously described.
For each file or directory on the disk 21, the computer device 18 sends an index entry 50 to the primary storage device 14. If a file or directory has been modified or created as previously described, the change status bit 57 in the offset field 56 in the index entry 50 for that file or directory indicates that the file or directory has been changed and sends the data for that file or directory. Otherwise, the change status bit 57 indicates that the file or directory has not been changed and, therefore, no data has l0 been sent.
For clarity in the rest of the description of the second state of the backup cycle, the full index 36 on the primary storage device, a copy of which was sent to the computer device, will be called 36a and the changed data backup file 38 on the primary storage device will be called 38a. The primary storage device 14 forms a new full index 15 36b containing the index entries 50 received from the computer device and a new changed data backup file 38b containing the associated data received from the computer device.
The primary storage device 14 then performs a merge operation. Using full indices 36a and 36b and changed data backup files 38a and 38b, a new full index 36c 2o and a new changed data backup file 38c are formed such that 36c and 38c describe the modifications to the disk 21 which have occurred since the last backup to the secondary storage device. For each index entry 50 in full index 36b, the primary storage device checks whether the change status bit 57 indicates that the data associated with that index entry indicates that the file or directory has been modified or created.
25 If the change status bit 57 indicates that the file or directory has been modified or created, then the data for that file or directory in changed data backup file 38b is incorporated into the new changed data backup file 38c, the offset field 56 in that index entry 50 is set to indicate the location of the data for that file or directory in the new changed data backup file 38c, the change status bit 57 in that offset field 56 is set to 3o indicate that the file or directory has been modified or created since the last backup of the disk to the secondary storage device 16 and the index entry 50 from full index 36b is incorporated into new full index 36c. The other fields in the index entry are appropriately filled in with information from the index entry 50 received from the computer device. Information which is not provided in the index entry 50 in full index 35 36b, can be obtained from the corresponding index entry 50, if one exists, in the full index 36a.
If the change status bit 57 indicates that the file or directory is unchanged, then the offset in the full index 36a is checked to see if data for the file identified by the index entry is in the changed data backup file 38a. If there is, then the data for the file or directory is taken from the changed data backup file 38a. The primary storage device 14 finds the index entry 50 in the full index 36a which refers to the file or directory by searching through the full index 36a for the identifier field 52 identifying that file'or directory. The offset field 56 in that index entry indicates the location of the data for that file or directory in the backup data file 38a and the file size field in that index entry indicates the length of that data. Using this information, the primary storage device 16 incorporates the data for the file or directory into the new changed data backup file 38c. The index entry 50 from the full index 36b is incorporated into the new full index 36c. The offset field 56 in the appropriate index entry 50 in the new full to index 36c is set to indicate the location of the data in the new backup data file 38c.
After the primary storage device 14 has completed forming the new full index 36c and the new changed data backup file 38c as described above, the primary storage device 14 discards the full indices 36a and 36b and the changed data backup files 38a and 38b. The new full index 36c becomes the full index 36 and the new changed data backup file 38c becomes the backup data file 38.
During the second state of a backup cycle the secondary storage device sets the responsible primary storage device indicator 39 associated with the disk to refer to the primary storage device currently performing the backup operations on that disk.
Typically, the primary storage device notifies the secondary storage device that it is performing backup operations on a particular disk or other storage device and the secondary storage device sets indicator 39 accordingly.
The steps described above in relation to the second state of the backup cycle are repeated until a specified, predetermined time or event occurs or a transfer from the primary to the secondary storage device is otherwise indicated.
Rather than forming a new full index 36c, index 36b can be used as long as fields such as the offset field and date modified fields in the index entry are updated accordingly. In any event, the files identified in the full index at the conclusion of the second state merge will match those in index 36b.
FIG. 4D shows the third state of a backup cycle 71. As previously stated, the 3o third state of a backup cycle begins when a specified, predetermined time or event occurs or a transfer operation from the primary to the secondary storage device is otherwise indicated. Preferably, the third state begins when an error condition is encountered, as described by co-pending patent application, "Method and Apparatus for Data Transfer and Storage in a Highly Parallel Computer Network Environment", filed concurrently herewith, the disclosure of which is herein incorporated by reference. Alternatively, the third state may begin after a specified amount of memory 28 becomes unavailable or after a specified amount of time has lapsed.
However, these alternatives may be unsuitable or undesirable for a parallel processing environment.
Therefore, it is preferable to use a method and apparatus as described in the above-referenced patent application. A flag or bit in memory 28 may be set to indicate that a transfer from the primary storage device 14 to the secondary storage device 16 should occur.
During the third state, a check is performed to confirm that the primary storage device contacting the secondary storage device about a disk is the most recent primary storage device responsible for that disk. As previously described, this determination can be made by comparing the primary storage device identification to the primary storage device identified by the responsible primary storage indicator 39 for that disk (FIG. 2C). This check can be made after the primary storage device 14 transfers the full to index 36 and the changed data backup file 38 to the secondary storage device 16 and if the primary storage device is not the proper one, then the full index and the backup data file can be ignored. Alternatively, before actually transferring the information, the primary storage device can request permission from the secondary storage device to make the transfer. The secondary storage device can then check the identification of the primary storage device and grant or deny permission accordingly. Preferably, once the transfer to the secondary storage device is complete or if the primary storage device is denied permission to make the transfer, the full index 36 and the changed data backup file 38 on the primary storage device are deleted.
By checking that the primary storage device is the proper one, the invention 2o permits a computer device and any or all of its disks to be relocated within the network system without substantial modification or notification. For example, in a networked computer system 10 (FIG. 1) having two primary storage devices 14a and 14b and a secondary storage device 16, where a computer device 18 is connected such that primary storage device 14a initiates its backup operations and maintains a data file and a full index for each of its disks 35, computer device 18 may be relocated such that primary storage device 14b handles its backup operations and maintains related files without significant overhead.
To clarify the rest of the description of the third state, the full index 36 and the changed data backup file 38 received from the primary storage device 14 will be 3o referred to as the primary full index 36a and the primary changed data backup file 38a, respectively, and the full index 36 and the full backup data file 38 stored on the secondary storage device will be referred to as the secondary full index 36b and the secondary backup data file 38b, respectively.
The secondary storage device then performs a merge operation similar to the merge performed in the second state of the backup cycle. Using full indices 36a and 36b and backup data files 38a and 38b, the secondary storage device 16 forms a new backup data file 38c. The secondary storage device 16 forms a new full index 36c. For each index entry 50 in the primary full index 36a, the secondary storage device 16 checks to see if the change status bit 57 indicates that the data associated with that APL-P784 2 ~ 5 3 7 6 9 index entry has been changed or created since the last backup was performed on the secondary storage device.
If not, then the index entry 50 in the secondary full index 36b which corresponds to the index entry 50 in the primary full index 36a, i.e. the identifier fields in the two index entries specify the same file or directory, is used to access the data associated with that file or directory in the secondary backup data file 38b. Using the offset field 56 and the file size field 58 in the appropriate index entry 50 in the secondary full index 36c, the data for that file or directory is incorporated into the new backup data file 38c.
The index entry 50 from the primary full index 36a is incorporated into the new full to index 36c. The offset field 56 in the appropriate index entry 50 in the new full index 36c is set to indicate the location of the associated data in the new backup data file 38c.
If the data has been changed or created since the last backup was performed on the secondary storage device, then that index entry 50 from the index 36a is incorporated into the new full index 36c, if a new full index is being formed.
The data in changed data backup file 38a associated with that index entry 50 is found by using the offset field 56 and the file size field 58 in that index entry. That data is incorporated into the new backup data file 38c and the offset field 56 in the appropriate index entry in the new full index 36c is set to indicate the location of that data within the new backup data file. The change status bit 57 in the appropriate index entry 50 in the new 2o full index 36c is set to indicate that the data has not been changed.
Preferably, by the end of the third state of a backup cycle, the full index and backup data file for the disk is deleted from the primary storage device 14 memory 32.
Rather than forming a new full index 36c, index 36a can be used as long as fields such as the offset field and date modified fields in the index entry are updated accordingly. In any event, the files identified in the full index at the conclusion of the third state merge will match those in index 36a.
During any backup operation, when a computer device 18 is contacted it may refuse to be backed up at that particular time. For example, to ensure that all computer devices 18 have an equal chance to be serviced by a backup process, the computer 3o device 18 may refuse all backup connections until some minimum period of time has elapsed since it's last backup occurred. In that case, the computer device may refuse backup operations to the primary storage device which are attempted within six hours of the last backup to the primary storage device.
Preferably, the secondary storage device 16 specifies to a primary storage device which disks, computer devices or area on the network to backup and the primary storage device 14 generates processes for performing backup operations on the designated entities. The primary storage device 14 may randomly generate these processes or it may generate them according to a specified method or pattern.
For example, a process might be created at specific time intervals, e.g. every second or tenth of a second. The number of processes generated depends on how often the backup operations are to be performed.
Preferably, the processes for performing backup operations are set at a lower priority than other processes which might be executing on a computer device 18.
Moreover, a computer device can refuse to be backed up. Thus, backup operations will not significantly interfere with other activity occurring on a computer device 18.
The steps of backup operations for disk 21 on a computer device 18 are as follows:
If it is indicated that a transfer from the primary storage device 14 to the secondary to storage device 16 should occur as part of a third state of a backup cycle, then the secondary storage device 16 confirms that the primary storage device 14 is the one that is responsible for the disk 21. Preferably, the invention includes a mechanism for distinguishing between a transfer from the primary storage device to the secondary storage device during a backup initialization and a transfer which begins a third state 15 of a backup cycle.
If the primary storage device is not responsible for that disk, then the primary storage device does not transfer the information to the secondary storage device 16 and deletes the full index 36 and the data file 38 from memory 32. If it is, then the full index 36 and the backup data file 38 are transferred from the primary storage device to the 2o secondary storage device 16. If all of the index entries in the full index from the primary storage device (herein referred to as the "primary index file") have not been examined, then an unexamined index entry is chosen and the index entry from the primary index file is added to the new index file, if a new index file is being formed. If a new index file does not exist, one is created, if desired. Alternatively, rather than creating a new index file, the full index from the primary may be used, as long as the offsets within each index entry are changed to refer to the location of the associated data in the new backup data file which is formed and eventually stored on the secondary storage device.
If the changed status bit 57 is set, then the data for that file or directory is taken 3o from the backup data file from the primary storage device (herein referred to as the "primary data file") and added to the new backup data file. Moreover, the index entry is set to indicate the location of that data within the new backup data file.
If all of the index entries have been examined, then the new index file replaces the full index on the secondary storage device. The new backup data file replaces the backup data file on the secondary storage device (herein referred to as the "primary data file"). The primary index file and the primary data file are deleted from the primary storage device.
Alternatively, the secondary storage device 16 could perform its check after receiving the full index 36 and data 38 from the primary storage device and then 215~~59 discard the full index and backup data file if the primary storage device is not the one responsible for that disk. The secondary storage device 16 could then notify the primary storage device that it is not the one responsible for that disk and the primary storage device could then delete the full index and backup data file from its memory 32 or the primary storage device could automatically delete the full index and backup data file after transferring it to the secondary storage device.
If a transfer from the primary storage device 14 to the secondary storage device 16 is not indicated, then the secondary storage device associates the primary storage device with the disk. The primary storage device 14 checks whether it has a full index l0 36 for that disk 21. If it does, then the primary storage device 14 sends the full index 36 or a subset thereof to the computer device 18. The computer device determines which files should be backed up. The computer device 18 sends an index entry for each file and directory on the disk, along with the data for each file and directory which should be backed up to the primary storage device 16.
15 It is next checked whether there is both a full index and a backup data file associated with the disk on the primary storage device or if the first state of a backup cycle is otherwise indicated. If not, for each file or directory on the disk, an index entry is sent from the computer device to the primary storage device, along with data for those files and directories which have been changed. Then, a new full index is formed 2o from the index entries received from the computer device and a backup data file is formed containing the data received from the computer device. The new full index replaces the full index on the primary storage device. If there is both a full index and a backup data file, then a merge operation is performed. The index and data stream 80 from the computer device is captured. A full index (herein called a "later index file") is 25 formed from the index entries received and a backup data file (herein called a "later data file") containing the associated data is formed.
If all of the index entries in the later index file have not been examined, an unexamined index entry is selected. The index entry is taken from the primary's later index file and added to the new index file. If the changed status bit is set, then the data 3o associated with the index entry from the primary's later data file is placed into the new data file. If a new data file does not exist, one is created. If the changed status bit is not set, the data associated with the index entry from the primary's backup data file is placed into the new data file. In either case, the index entry in the new full index is set to indicate the location in the new backup data file of the data for the file identified by 35 that index entry.
If all of the index entries have been examined, then the new full index replaces the primary index file and the new backup data file replaces the primary backup data file. The primary's later index file and later data file are deleted.
If the primary storage device 14 does not have a full index 36 for that disk 21, then it requests that the secondary storage device 16 send it a copy of the full index 36.
If the secondary storage device 16 has a full index 36, it sends a copy of the full index 36 to the primary storage device 14 in response to its request. Then the full index or a subset thereof is sent from the primary storage device to the computer device.
Then the full index on the primary storage device is deleted.
If the secondary storage device 16 does not have a full index 36, then it requests data and index entries from the computer device 18, either directly or via the primary storage device 14. The computer device 18 sends data and index entries for the files on to the disk 21 to the primary storage device 14. The primary storage device passes the index entries and data directly through to the secondary storage device. The secondary storage device 14 creates a backup data file 38 containing the data and a full index 36 containing the index entries 50. The secondary storage device 14 fills in relevant information in the index entries such as the offset of the data in the backup data file 38.
15 In some networked computer systems 10 (FIG. 1), the computer devices are organized into convenient groupings called "zones". Typically, a computer device can belong to only one zone at any particular point in time.
Preferably, a zone is assigned to a particular primary storage device such that at any time there is a single primary storage device responsible for that zone.
For 2o example, in a network having two zones A and B and two primary storage devices C
and D, zone A might be assigned to primary storage device C, while zone B is assigned to primary storage device D. In that case, primary storage device C will perform backup operations for zone A, but not zone B. Likewise, primary storage device D will backup zone B and not zones A. Primary storage devices D and E may create multiple 25 parallel processes to perform the backups of the zones which are assigned to them. A
zone may be reassigned to a different primary storage device as long as it is not assigned to two different primary storage devices at the same time.
When computer devices are organized into zones or other groupings, the secondary storage device may keep track of the primary storage device responsible for 30 a particular zone and the particular computer devices and disks within that zone or other grouping. This information may then be used to determine whether a particular primary storage device is the primary storage device which is responsible for a particular disk.
The steps involved in executing backup cycles for a plurality of interconnected 35 computer devices 18 in a networked computer system organized into zones are as follows:
First, the primary storage device 14 initiates a connection with the secondary storage device 16. Preferably, the secondary storage device 16 then requests that the primary storage device 14 identify which version of software it is executing and the primary ~153~69 storage device 14 responds to that request. If the secondary storage device is not "aware" of the zones on the network, it requests that the primary storage device determine which zones are the network. After receiving that information, the secondary storage device requests that the primary storage device back up a specific zone. The primary storage device determines which computer devices in that zone should be backed up and records their network addresses.
Preferably, a computer device has an account on the secondary storage device which requires password verification to use. For each computer device with an account, a password is exchanged before a computer is backed up. Then for each to computer device having an account and supplying an appropriate password, each disk on that computer device is backed up in accordance with the steps described in FIGS. 5 and 6.
The backup system includes a command protocol for interactions between a computer device 18, a primary storage device 14 and a secondary storage device 16.
This command protocol includes commands to exchange information about which backup operation is being performed, which version of software is executing, which zones are on a network, which zone should be backed up, and for transferring a full index 36, an index entry 50 or a backup data file 38.
The foregoing description has used a specific embodiment of this invention. It 2o will be apparent, however, that variations and modifications may be made to the invention with the attainment of some or all of its advantages. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.
Claims (14)
1. In a networked computer system having a communication network interconnecting a primary storage device, a secondary storage device and a plurality of computer devices, each computer device having one or more disks, a method for storing archival data from one or more computer devices, said method comprising the steps of:
indicating when a transfer of data from the primary storage device to the secondary storage device should occur;
transferring data from the primary storage device to the secondary storage device in response to such indicating;
checking whether the primary storage device has an index associated with a disk of a computer device and, if the primary storage device does not, checking to see if the secondary storage device has an index associated with the disk and, if the secondary storage device does have an index, sending a copy of the index to the computer device and if the secondary storage device does not, copying data and corresponding information from the disk to the secondary storage device, storing the data in a backup data file on the secondary storage device or external storage devices connected thereto, creating an index for accessing the data in the backup data file and storing that index on the secondary storage device;
sending a copy of the index to the computer device;
determining which data on the disk of the computer device has been changed or created since the last time the index for that disk was modified;
creating an index entry for each file on the disk;
sending index entries and a copy of the changed data to the primary storage device; and forming a new index and new backup data file on the primary storage device from the index entries and data received from the computer device and the index already on the primary storage device.
indicating when a transfer of data from the primary storage device to the secondary storage device should occur;
transferring data from the primary storage device to the secondary storage device in response to such indicating;
checking whether the primary storage device has an index associated with a disk of a computer device and, if the primary storage device does not, checking to see if the secondary storage device has an index associated with the disk and, if the secondary storage device does have an index, sending a copy of the index to the computer device and if the secondary storage device does not, copying data and corresponding information from the disk to the secondary storage device, storing the data in a backup data file on the secondary storage device or external storage devices connected thereto, creating an index for accessing the data in the backup data file and storing that index on the secondary storage device;
sending a copy of the index to the computer device;
determining which data on the disk of the computer device has been changed or created since the last time the index for that disk was modified;
creating an index entry for each file on the disk;
sending index entries and a copy of the changed data to the primary storage device; and forming a new index and new backup data file on the primary storage device from the index entries and data received from the computer device and the index already on the primary storage device.
2. A method as defined in claim 1 further comprising the step of creating parallel processes to perform steps defined in claim 1.
3. A method as defined in claim 1 further comprising the steps of:
associating a primary storage device with a disk such that the primary storage device is responsible for backing up that disk;
checking that the primary storage device sending data to the secondary storage device is the primary storage device responsible for the disk to which the data relates;
and discarding the data if the primary storage device is not responsible for the disk.
associating a primary storage device with a disk such that the primary storage device is responsible for backing up that disk;
checking that the primary storage device sending data to the secondary storage device is the primary storage device responsible for the disk to which the data relates;
and discarding the data if the primary storage device is not responsible for the disk.
4. A method as defined in claim 1 further comprising the steps of:
checking at each attempt to perform a backup operation for a disk whether a specific condition has occurred; and performing the attempted backup operation only if the specific condition has occurred.
checking at each attempt to perform a backup operation for a disk whether a specific condition has occurred; and performing the attempted backup operation only if the specific condition has occurred.
5. A method as defined in claim 1 further comprising the steps of:
setting a minimum time between backups for a disk on a computer device;
recording when a computer device sends index entries and data for a disk to a primary storage device;
accessing a current date and time;
checking at each attempt to perform a backup operation for a disk whether the minimum time between backups for a disk has elapsed since the computer device last sent index entries and data for a disk to a primary storage device; and performing the attempted backup operation only if the minimum time has elapsed.
setting a minimum time between backups for a disk on a computer device;
recording when a computer device sends index entries and data for a disk to a primary storage device;
accessing a current date and time;
checking at each attempt to perform a backup operation for a disk whether the minimum time between backups for a disk has elapsed since the computer device last sent index entries and data for a disk to a primary storage device; and performing the attempted backup operation only if the minimum time has elapsed.
6. In a networked computer system having a communication network interconnecting a primary storage device, a secondary storage device and a plurality of computer devices, each computer device having one or more disks, a method for storing archival data from one or more computer devices, said method comprising the steps of:
indicating when a transfer of data from the primary storage device to the secondary storage device should occur; and for each disk, associating index entries for data on the computer device, passing through a copy of data and associated index entries received from the computer device to the secondary storage device using the primary storage device without storing the data or index entries on the primary storage device, storing the data in a backup data file on the secondary storage device, forming an index from the index entries such that each index entry specifies a location within the backup data file where data associated with that index entry is located, sending an index from the secondary storage device to the primary storage device, indicating to the computer device which files on the disk are identified in the full index on the primary storage device and when those files were last modified, determining which files on the disk have been changed or created since the last modified dates indicated by the appropriate index entries in the full index on the primary storage device, sending an index entry for each file on the disk from the computer device to the primary storage device, each index entry indicating the location of the associated data, sending data for the files which have been changed or created from the computer device to the primary storage device, if there is not a full index and a backup data file associated with the disk on the primary storage device, forming a new index containing the index entries from the computer device and forming a backup data file containing the data from the computer device, if there is a full index and a backup data file, then forming a new index containing the index entries from the computer device, forming a new backup data file, checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the computer device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the primary storage device into the new backup data file, and transferring in response to said indicating means one or more backup data files and index associated with the disk from the primary storage device to the secondary storage device, replacing the index on the secondary storage device with the index received from the primary storage device, forming a new backup data file, checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the primary storage device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the secondary storage device into the new backup data file.
indicating when a transfer of data from the primary storage device to the secondary storage device should occur; and for each disk, associating index entries for data on the computer device, passing through a copy of data and associated index entries received from the computer device to the secondary storage device using the primary storage device without storing the data or index entries on the primary storage device, storing the data in a backup data file on the secondary storage device, forming an index from the index entries such that each index entry specifies a location within the backup data file where data associated with that index entry is located, sending an index from the secondary storage device to the primary storage device, indicating to the computer device which files on the disk are identified in the full index on the primary storage device and when those files were last modified, determining which files on the disk have been changed or created since the last modified dates indicated by the appropriate index entries in the full index on the primary storage device, sending an index entry for each file on the disk from the computer device to the primary storage device, each index entry indicating the location of the associated data, sending data for the files which have been changed or created from the computer device to the primary storage device, if there is not a full index and a backup data file associated with the disk on the primary storage device, forming a new index containing the index entries from the computer device and forming a backup data file containing the data from the computer device, if there is a full index and a backup data file, then forming a new index containing the index entries from the computer device, forming a new backup data file, checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the computer device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the primary storage device into the new backup data file, and transferring in response to said indicating means one or more backup data files and index associated with the disk from the primary storage device to the secondary storage device, replacing the index on the secondary storage device with the index received from the primary storage device, forming a new backup data file, checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the primary storage device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the secondary storage device into the new backup data file.
7. A method as defined in claim 6 further comprising the step of creating parallel processes to perform steps defined in claim 6.
8. A method as defined in claim 6 further comprising the steps of:
associating a primary storage device with a disk such that the primary storage device is responsible for backing up that disk;
checking that the primary storage device sending data to the secondary storage device is the primary storage device responsible for the disk to which the data relates;
and discarding the data if the primary storage device is not responsible for the disk,
associating a primary storage device with a disk such that the primary storage device is responsible for backing up that disk;
checking that the primary storage device sending data to the secondary storage device is the primary storage device responsible for the disk to which the data relates;
and discarding the data if the primary storage device is not responsible for the disk,
9. A method as defined in claim 6 further comprising the steps of:
checking at each attempt to perform a backup operation for a disk whether a specific condition has occurred; and performing the attempted backup operation only if the specific condition has occurred.
checking at each attempt to perform a backup operation for a disk whether a specific condition has occurred; and performing the attempted backup operation only if the specific condition has occurred.
10. A method as defined in claim 6 further comprising the steps of:
setting a minimum time between backups for a disk on a computer device;
recording when a computer device sends index entries and data for a disk to a primary storage device;
accessing a current date and time;
checking at each attempt to perform a backup operation for a disk whether the minimum time between backups for a disk has elapsed since the computer device last sent index entries and data for a disk to a primary storage device; and performing the attempted backup operation only if the minimum time has elapsed.
setting a minimum time between backups for a disk on a computer device;
recording when a computer device sends index entries and data for a disk to a primary storage device;
accessing a current date and time;
checking at each attempt to perform a backup operation for a disk whether the minimum time between backups for a disk has elapsed since the computer device last sent index entries and data for a disk to a primary storage device; and performing the attempted backup operation only if the minimum time has elapsed.
11. An apparatus for storing archival data from one or more computer devices, each computer device having at least one disk, said apparatus comprising:
a primary storage device;
a secondary storage device;
means for interconnecting said primary storage device, said secondary storage device and the computer devices;
means for indicating a transfer from said primary storage device to said secondary storage device;
a full index having a plurality of index entries;
a backup initialization having means for sending a copy of data and associated index entries for a disk from the computer device to the primary storage device, means for passing the data and associated index entries through the primary storage device to the secondary storage device without storing the data or index entries on the primary storage device, means for storing the data in a backup data file on the secondary storage device, means for forming an index from the index entries such that each index entry specifies a location within the backup data file where data associated with that index entry is located; and a backup cycle having a first state having means for sending an index from the secondary storage device to the primary storage device, means for indicating to the computer device which files are identified in the full index on the primary storage device and the last modified date specified in the index entry for each file, means for determining which files on the computer device have been changed or created since the last modified date indicated in the index entry for that file in the full index on the primary device, means for indicating that the file has been changed or created, means for sending an index entry for each file on the disk and data for the files which have changed from the computer device to the primary storage device, means for discarding the full index on the primary storage device, means for forming a new index containing the index entries from the computer device, and means for forming a backup data file containing the data, a second state having means for indicating to the computer device which files are identified in the full index on the primary storage device and the last modified date specified in the index entry for each file, means for determining which files on the computer device have been changed or created since the last modified date indicated in the index entry for that file in the full index on the primary device, means for indicating that the file has been changed or created, means for sending an index entry for each file on the disk and data for the files which have changed from the computer device to the primary storage device, means for forming a new index containing the index entries from the computer device and a new backup data file by checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the computer device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the primary storage device into the new backup data file.
a third state having means for responding to said indicating means by transferring one or more backup data files and index associated with the disk from the primary storage device to the secondary storage device, means for replacing the index on the secondary storage device with the index received from the primary storage device, and means for forming a new backup data file by checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the primary storage device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the secondary storage device into the new backup data file.
a primary storage device;
a secondary storage device;
means for interconnecting said primary storage device, said secondary storage device and the computer devices;
means for indicating a transfer from said primary storage device to said secondary storage device;
a full index having a plurality of index entries;
a backup initialization having means for sending a copy of data and associated index entries for a disk from the computer device to the primary storage device, means for passing the data and associated index entries through the primary storage device to the secondary storage device without storing the data or index entries on the primary storage device, means for storing the data in a backup data file on the secondary storage device, means for forming an index from the index entries such that each index entry specifies a location within the backup data file where data associated with that index entry is located; and a backup cycle having a first state having means for sending an index from the secondary storage device to the primary storage device, means for indicating to the computer device which files are identified in the full index on the primary storage device and the last modified date specified in the index entry for each file, means for determining which files on the computer device have been changed or created since the last modified date indicated in the index entry for that file in the full index on the primary device, means for indicating that the file has been changed or created, means for sending an index entry for each file on the disk and data for the files which have changed from the computer device to the primary storage device, means for discarding the full index on the primary storage device, means for forming a new index containing the index entries from the computer device, and means for forming a backup data file containing the data, a second state having means for indicating to the computer device which files are identified in the full index on the primary storage device and the last modified date specified in the index entry for each file, means for determining which files on the computer device have been changed or created since the last modified date indicated in the index entry for that file in the full index on the primary device, means for indicating that the file has been changed or created, means for sending an index entry for each file on the disk and data for the files which have changed from the computer device to the primary storage device, means for forming a new index containing the index entries from the computer device and a new backup data file by checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the computer device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the primary storage device into the new backup data file.
a third state having means for responding to said indicating means by transferring one or more backup data files and index associated with the disk from the primary storage device to the secondary storage device, means for replacing the index on the secondary storage device with the index received from the primary storage device, and means for forming a new backup data file by checking each index entry in the new index to see if the data associated with that entry has been changed and, if it has, then incorporating the associated data in the backup data file received from the primary storage device into the new backup data file, and if it has not been changed, then incorporating the associated data in the backup data file on the secondary storage device into the new backup data file.
12. An apparatus as defined in claim 11 wherein said interconnecting means is a communication network.
13. An apparatus as defined in claim 11 further including means for creating parallel processes to perform the backup initialization and the backup cycle.
14. An apparatus as defined in claim 11 wherein said index entry comprises:
a first field identifying a file;
a second field specifying a location of the file on a disk on the computer device;
a third field specifying a location of data associated with the file in a backup data file;
a fourth field specifying the length of the file; and a fifth field indicating when the file was last modified.
a first field identifying a file;
a second field specifying a location of the file on a disk on the computer device;
a third field specifying a location of data associated with the file in a backup data file;
a fourth field specifying the length of the file; and a fifth field indicating when the file was last modified.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US715993A | 1993-01-21 | 1993-01-21 | |
US007,159 | 1993-01-21 | ||
PCT/US1994/000765 WO1994017474A1 (en) | 1993-01-21 | 1994-01-19 | Apparatus and method for backing up data from networked computer storage devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2153769A1 CA2153769A1 (en) | 1994-08-04 |
CA2153769C true CA2153769C (en) | 2001-08-07 |
Family
ID=21724562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002153769A Expired - Lifetime CA2153769C (en) | 1993-01-21 | 1994-01-19 | Apparatus and method for transferring and storing data from an arbitrarily large number of networked computer storage devices |
Country Status (8)
Country | Link |
---|---|
US (1) | US5751997A (en) |
EP (1) | EP0680634B1 (en) |
JP (1) | JP3130536B2 (en) |
AT (1) | ATE153149T1 (en) |
AU (1) | AU6092894A (en) |
CA (1) | CA2153769C (en) |
DE (1) | DE69403192T2 (en) |
WO (1) | WO1994017474A1 (en) |
Families Citing this family (409)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI98684C (en) * | 1994-08-08 | 1997-07-25 | Nokia Telecommunications Oy | Method for transferring files produced by a communication device from mass memory to post-processing system memory |
US5732214A (en) * | 1995-02-28 | 1998-03-24 | Lucent Technologies, Inc. | System for universal archival service where transfer is initiated by user or service and storing information at multiple locations for user selected degree of confidence |
US5604862A (en) * | 1995-03-14 | 1997-02-18 | Network Integrity, Inc. | Continuously-snapshotted protection of computer files |
US5592611A (en) * | 1995-03-14 | 1997-01-07 | Network Integrity, Inc. | Stand-in computer server |
US5608865A (en) * | 1995-03-14 | 1997-03-04 | Network Integrity, Inc. | Stand-in Computer file server providing fast recovery from computer file server failures |
US5778395A (en) * | 1995-10-23 | 1998-07-07 | Stac, Inc. | System for backing up files from disk volumes on multiple nodes of a computer network |
US5941994A (en) * | 1995-12-22 | 1999-08-24 | Lsi Logic Corporation | Technique for sharing hot spare drives among multiple subsystems |
US5966730A (en) * | 1996-10-30 | 1999-10-12 | Dantz Development Corporation | Backup system for computer network incorporating opportunistic backup by prioritizing least recently backed up computer or computer storage medium |
US6453345B2 (en) * | 1996-11-06 | 2002-09-17 | Datadirect Networks, Inc. | Network security and surveillance system |
US7127535B1 (en) | 1996-11-22 | 2006-10-24 | Veritas Operating Corporation | System and method for multiplexed data back-up |
US6487644B1 (en) * | 1996-11-22 | 2002-11-26 | Veritas Operating Corporation | System and method for multiplexed data back-up to a storage tape and restore operations using client identification tags |
US5794254A (en) * | 1996-12-03 | 1998-08-11 | Fairbanks Systems Group | Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets |
US6038665A (en) * | 1996-12-03 | 2000-03-14 | Fairbanks Systems Group | System and method for backing up computer files over a wide area computer network |
JP4077907B2 (en) * | 1997-08-04 | 2008-04-23 | 富士通株式会社 | Computer data backup device, data backup method, and computer-readable recording medium recording data backup program |
US7209972B1 (en) | 1997-10-30 | 2007-04-24 | Commvault Systems, Inc. | High speed data transfer mechanism |
US6418478B1 (en) * | 1997-10-30 | 2002-07-09 | Commvault Systems, Inc. | Pipelined high speed data transfer mechanism |
US7581077B2 (en) * | 1997-10-30 | 2009-08-25 | Commvault Systems, Inc. | Method and system for transferring data in a storage operation |
US6073128A (en) * | 1997-10-31 | 2000-06-06 | Oracle Corporation | Method and apparatus for identifying files used to restore a file |
US6658417B1 (en) | 1997-12-31 | 2003-12-02 | International Business Machines Corporation | Term-based methods and apparatus for access to files on shared storage devices |
US6694317B1 (en) * | 1997-12-31 | 2004-02-17 | International Business Machines Corporation | Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system |
US5950203A (en) * | 1997-12-31 | 1999-09-07 | Mercury Computer Systems, Inc. | Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system |
US7010532B1 (en) * | 1997-12-31 | 2006-03-07 | International Business Machines Corporation | Low overhead methods and apparatus for shared access storage devices |
JP4320817B2 (en) * | 1998-02-09 | 2009-08-26 | ソニー株式会社 | Recording / reproducing apparatus, recording / reproducing system, recording / reproducing method, and program |
US7277941B2 (en) | 1998-03-11 | 2007-10-02 | Commvault Systems, Inc. | System and method for providing encryption in a storage network by storing a secured encryption key with encrypted archive data in an archive storage device |
US7739381B2 (en) | 1998-03-11 | 2010-06-15 | Commvault Systems, Inc. | System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services |
JPH11272427A (en) * | 1998-03-24 | 1999-10-08 | Hitachi Ltd | Method for saving data and outside storage device |
US20030037019A1 (en) * | 1998-04-27 | 2003-02-20 | Kazue Nakamura | Data storage and retrieval apparatus and method of the same |
US6223252B1 (en) * | 1998-05-04 | 2001-04-24 | International Business Machines Corporation | Hot spare light weight mirror for raid system |
US6976093B2 (en) * | 1998-05-29 | 2005-12-13 | Yahoo! Inc. | Web server content replication |
US8234477B2 (en) * | 1998-07-31 | 2012-07-31 | Kom Networks, Inc. | Method and system for providing restricted access to a storage medium |
US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
JP2000099277A (en) * | 1998-09-18 | 2000-04-07 | Fujitsu Ltd | Method for remote transfer between file units |
US6247141B1 (en) | 1998-09-24 | 2001-06-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Protocol for providing replicated servers in a client-server system |
US6385706B1 (en) | 1998-12-31 | 2002-05-07 | Emx Corporation | Apparatus and methods for copying a logical object to a primary storage device using a map of storage locations |
US7107395B1 (en) * | 1998-12-31 | 2006-09-12 | Emc Corporation | Apparatus and methods for operating a computer storage system |
US6397308B1 (en) | 1998-12-31 | 2002-05-28 | Emc Corporation | Apparatus and method for differential backup and restoration of data in a computer storage system |
US6487561B1 (en) * | 1998-12-31 | 2002-11-26 | Emc Corporation | Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size |
US6240427B1 (en) * | 1999-01-05 | 2001-05-29 | Advanced Micro Devices, Inc. | Method and apparatus for archiving and deleting large data sets |
US6078933A (en) * | 1999-01-05 | 2000-06-20 | Advanced Micro Devices, Inc. | Method and apparatus for parallel processing for archiving and retrieval of data |
US6938057B2 (en) | 1999-05-21 | 2005-08-30 | International Business Machines Corporation | Method and apparatus for networked backup storage |
EP1058190B1 (en) * | 1999-06-01 | 2010-02-24 | Hitachi, Ltd. | Data backup method |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
US7395282B1 (en) | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US7389311B1 (en) | 1999-07-15 | 2008-06-17 | Commvault Systems, Inc. | Modular backup and retrieval system |
DE10033673B4 (en) * | 1999-08-17 | 2005-10-20 | Ibm | Method for archiving and delivering documents using a central archive system |
FI19991811A (en) * | 1999-08-25 | 2001-02-26 | Nokia Networks Oy | Method and system for backup |
US6466983B1 (en) * | 1999-09-30 | 2002-10-15 | Steven Paul Strazza | Systems and methods for controlling access to data maintained in a repository |
US6714952B2 (en) * | 1999-11-10 | 2004-03-30 | Emc Corporation | Method for backup and restore of a multi-lingual network file server |
US6931422B1 (en) | 1999-11-12 | 2005-08-16 | International Business Machines Corporation | Enhanced backup and recovery methodology |
US6675271B1 (en) * | 1999-12-16 | 2004-01-06 | General Electric Company | PACS archive techniques |
US7054892B1 (en) * | 1999-12-23 | 2006-05-30 | Emc Corporation | Method and apparatus for managing information related to storage activities of data storage systems |
US7155481B2 (en) * | 2000-01-31 | 2006-12-26 | Commvault Systems, Inc. | Email attachment management in a computer system |
US6760723B2 (en) | 2000-01-31 | 2004-07-06 | Commvault Systems Inc. | Storage management across multiple time zones |
US7003641B2 (en) | 2000-01-31 | 2006-02-21 | Commvault Systems, Inc. | Logical view with granular access to exchange data managed by a modular data and storage management system |
US6658436B2 (en) | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US7434219B2 (en) | 2000-01-31 | 2008-10-07 | Commvault Systems, Inc. | Storage of application specific profiles correlating to document versions |
US6510432B1 (en) | 2000-03-24 | 2003-01-21 | International Business Machines Corporation | Methods, systems and computer program products for archiving topical search results of web servers |
US7062541B1 (en) * | 2000-04-27 | 2006-06-13 | International Business Machines Corporation | System and method for transferring related data objects in a distributed data storage environment |
KR20010113235A (en) * | 2000-06-17 | 2001-12-28 | 윤종용 | Database updating mothod using recordable optical-disk and apparatuses therefor |
US6675177B1 (en) | 2000-06-21 | 2004-01-06 | Teradactyl, Llc | Method and system for backing up digital data |
US6801921B2 (en) * | 2000-09-08 | 2004-10-05 | Hitachi, Ltd. | Method and system for managing multiple database storage units |
WO2002025473A1 (en) * | 2000-09-21 | 2002-03-28 | Integrity Pc Innovations, Inc. | An automatic real-time file management method and apparatus |
US6820182B1 (en) | 2000-10-18 | 2004-11-16 | International Business Machines Corporation | Support for exhaustion recovery in a data processing system with memory mirroring |
US7546305B2 (en) * | 2001-04-13 | 2009-06-09 | Oracle International Corporation | File archival |
EP1442387A4 (en) * | 2001-09-28 | 2008-01-23 | Commvault Systems Inc | System and method for archiving objects in an information store |
JP2005505045A (en) * | 2001-09-28 | 2005-02-17 | コムヴォールト・システムズ・インコーポレーテッド | Method and apparatus for creating and managing a quick recovery volume |
US20060218556A1 (en) * | 2001-09-28 | 2006-09-28 | Nemirovsky Mario D | Mechanism for managing resource locking in a multi-threaded environment |
EP1436724A4 (en) * | 2001-09-28 | 2007-10-03 | Consentry Networks Inc | Multi-threaded packet processing engine for stateful packet pro cessing |
US20030167318A1 (en) * | 2001-10-22 | 2003-09-04 | Apple Computer, Inc. | Intelligent synchronization of media player with host computer |
GB2387001B (en) * | 2001-10-22 | 2005-02-02 | Apple Computer | Intelligent interaction between media player and host computer |
US7584227B2 (en) * | 2005-12-19 | 2009-09-01 | Commvault Systems, Inc. | System and method for containerized data storage and tracking |
US20030101155A1 (en) * | 2001-11-23 | 2003-05-29 | Parag Gokhale | Method and system for scheduling media exports |
US7596586B2 (en) | 2003-04-03 | 2009-09-29 | Commvault Systems, Inc. | System and method for extended media retention |
US7603518B2 (en) | 2005-12-19 | 2009-10-13 | Commvault Systems, Inc. | System and method for improved media identification in a storage device |
WO2003046721A1 (en) * | 2001-11-23 | 2003-06-05 | Commvault Systems, Inc. | Selective data replication system and method |
US8346733B2 (en) * | 2006-12-22 | 2013-01-01 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library |
US20030140060A1 (en) * | 2002-01-23 | 2003-07-24 | Gehlot Narayan L. | Dynamic database |
US6826666B2 (en) * | 2002-02-07 | 2004-11-30 | Microsoft Corporation | Method and system for transporting data content on a storage area network |
US8150937B2 (en) | 2004-10-25 | 2012-04-03 | Apple Inc. | Wireless synchronization between media player and host device |
US7680849B2 (en) * | 2004-10-25 | 2010-03-16 | Apple Inc. | Multiple media type synchronization between host computer and media device |
JP2004013367A (en) * | 2002-06-05 | 2004-01-15 | Hitachi Ltd | Data storage subsystem |
US7213158B2 (en) | 2002-06-28 | 2007-05-01 | Lenovo (Singapore) Pte. Ltd. | Distributed autonomic backup |
AU2003270482A1 (en) * | 2002-09-09 | 2004-03-29 | Commvault Systems, Inc. | Dynamic storage device pooling in a computer system |
AU2003272457A1 (en) | 2002-09-16 | 2004-04-30 | Commvault Systems, Inc. | System and method for blind media support |
CA2499073C (en) | 2002-09-16 | 2013-07-23 | Commvault Systems, Inc. | Combined stream auxiliary copy system and method |
US7568080B2 (en) * | 2002-10-07 | 2009-07-28 | Commvault Systems, Inc. | Snapshot storage and management system with indexing and user interface |
CN100483552C (en) * | 2002-10-28 | 2009-04-29 | 桑迪士克股份有限公司 | Automated wear leveling in non-volatile storage systems |
WO2004053696A1 (en) * | 2002-12-11 | 2004-06-24 | Fujitsu Limited | Backup system, backup control apparatus, backup data management method, backup control program, and computer-readable recording medium containing the program |
JP3974538B2 (en) | 2003-02-20 | 2007-09-12 | 株式会社日立製作所 | Information processing system |
CN100346319C (en) * | 2003-03-07 | 2007-10-31 | 张有成 | BIOS layer based linux hard disk data backup and restore method |
JP4165747B2 (en) * | 2003-03-20 | 2008-10-15 | 株式会社日立製作所 | Storage system, control device, and control device program |
US7631351B2 (en) * | 2003-04-03 | 2009-12-08 | Commvault Systems, Inc. | System and method for performing storage operations through a firewall |
WO2004090872A2 (en) * | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | Method and system for controlling a robotic arm in a storage device |
US7174433B2 (en) * | 2003-04-03 | 2007-02-06 | Commvault Systems, Inc. | System and method for dynamically sharing media in a computer network |
WO2004090676A2 (en) * | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | Remote disaster data recovery system and method |
US7454569B2 (en) * | 2003-06-25 | 2008-11-18 | Commvault Systems, Inc. | Hierarchical system and method for performing storage operations in a computer network |
US20050015416A1 (en) | 2003-07-16 | 2005-01-20 | Hitachi, Ltd. | Method and apparatus for data recovery using storage based journaling |
US7111136B2 (en) * | 2003-06-26 | 2006-09-19 | Hitachi, Ltd. | Method and apparatus for backup and recovery system using storage based journaling |
US7398422B2 (en) * | 2003-06-26 | 2008-07-08 | Hitachi, Ltd. | Method and apparatus for data recovery system using storage based journaling |
US20050022213A1 (en) * | 2003-07-25 | 2005-01-27 | Hitachi, Ltd. | Method and apparatus for synchronizing applications for data recovery using storage based journaling |
JP4124348B2 (en) | 2003-06-27 | 2008-07-23 | 株式会社日立製作所 | Storage system |
US7613748B2 (en) | 2003-11-13 | 2009-11-03 | Commvault Systems, Inc. | Stored data reverification management system and method |
US7546324B2 (en) | 2003-11-13 | 2009-06-09 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
US7315923B2 (en) * | 2003-11-13 | 2008-01-01 | Commvault Systems, Inc. | System and method for combining data streams in pipelined storage operations in a storage network |
US20050174869A1 (en) * | 2003-11-13 | 2005-08-11 | Rajiv Kottomtharayil | System and method for data storage and tracking |
US7440982B2 (en) * | 2003-11-13 | 2008-10-21 | Commvault Systems, Inc. | System and method for stored data archive verification |
GB2425198B (en) | 2003-11-13 | 2008-04-09 | Commvault Systems Inc | System and method for performing a snapshot |
US7734578B2 (en) * | 2003-11-13 | 2010-06-08 | Comm Vault Systems, Inc. | System and method for performing integrated storage operations |
US9213609B2 (en) * | 2003-12-16 | 2015-12-15 | Hewlett-Packard Development Company, L.P. | Persistent memory device for backup process checkpoint states |
EP1763755A4 (en) | 2004-04-30 | 2010-04-14 | Commvault Systems Inc | Hierarchical systems and methods for providing a unified view of storage information |
US8266406B2 (en) * | 2004-04-30 | 2012-09-11 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
FR2870020B1 (en) * | 2004-05-07 | 2007-02-02 | Synerway Sas Soc Par Actions S | METHOD FOR BACKING UP AND RESTORING DATA FOR RAPID ACTIVITY RECOVERY AND SYSTEM IMPLEMENTING THE METHOD |
JP4452557B2 (en) * | 2004-05-27 | 2010-04-21 | 株式会社日立製作所 | Remote copy with WORM guarantee |
US10972536B2 (en) | 2004-06-04 | 2021-04-06 | Apple Inc. | System and method for synchronizing media presentation at multiple recipients |
US8443038B2 (en) | 2004-06-04 | 2013-05-14 | Apple Inc. | Network media device |
US20070110074A1 (en) | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US8797926B2 (en) | 2004-06-04 | 2014-08-05 | Apple Inc. | Networked media station |
US8145601B2 (en) * | 2004-09-09 | 2012-03-27 | Microsoft Corporation | Method, system, and apparatus for providing resilient data transfer in a data protection system |
US7865470B2 (en) * | 2004-09-09 | 2011-01-04 | Microsoft Corporation | Method, system, and apparatus for translating logical information representative of physical data in a data protection system |
US7567974B2 (en) | 2004-09-09 | 2009-07-28 | Microsoft Corporation | Method, system, and apparatus for configuring a data protection system |
US8135861B1 (en) * | 2004-10-06 | 2012-03-13 | Emc Corporation | Backup proxy |
WO2006053084A2 (en) * | 2004-11-05 | 2006-05-18 | Commvault Systems, Inc. | Method and system of pooling storage devices |
US7536291B1 (en) * | 2004-11-08 | 2009-05-19 | Commvault Systems, Inc. | System and method to support simulated storage operations |
US8959299B2 (en) * | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US8775823B2 (en) | 2006-12-29 | 2014-07-08 | Commvault Systems, Inc. | System and method for encrypting secondary copies of data |
US7941619B1 (en) * | 2004-11-18 | 2011-05-10 | Symantec Operating Corporation | Space-optimized backup set conversion |
US11314378B2 (en) | 2005-01-07 | 2022-04-26 | Apple Inc. | Persistent group of media items for a media device |
US20060218435A1 (en) * | 2005-03-24 | 2006-09-28 | Microsoft Corporation | Method and system for a consumer oriented backup |
US8112605B2 (en) * | 2005-05-02 | 2012-02-07 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US7602906B2 (en) * | 2005-08-25 | 2009-10-13 | Microsoft Corporation | Cipher for disk encryption |
US20070185926A1 (en) * | 2005-11-28 | 2007-08-09 | Anand Prahlad | Systems and methods for classifying and transferring information in a storage network |
US7711700B2 (en) * | 2005-11-28 | 2010-05-04 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US9122643B2 (en) * | 2005-12-08 | 2015-09-01 | Nvidia Corporation | Event trigger based data backup services |
US8402322B2 (en) * | 2005-12-08 | 2013-03-19 | Nvidia Corporation | Emergency data preservation services |
US7457790B2 (en) * | 2005-12-19 | 2008-11-25 | Commvault Systems, Inc. | Extensible configuration engine system and method |
US20110010518A1 (en) | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
CA2632935C (en) * | 2005-12-19 | 2014-02-04 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US20070166674A1 (en) * | 2005-12-19 | 2007-07-19 | Kochunni Jaidev O | Systems and methods for generating configuration metrics in a storage network |
EP1974490A4 (en) | 2005-12-19 | 2012-01-18 | Commvault Systems Inc | System and method for providing a flexible licensing system for digital content |
US7651593B2 (en) * | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7620710B2 (en) | 2005-12-19 | 2009-11-17 | Commvault Systems, Inc. | System and method for performing multi-path storage operations |
US8572330B2 (en) | 2005-12-19 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for granular resource management in a storage network |
US8655850B2 (en) | 2005-12-19 | 2014-02-18 | Commvault Systems, Inc. | Systems and methods for resynchronizing information |
US7962709B2 (en) * | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US7617253B2 (en) * | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Destination systems and methods for performing data replication |
US7617262B2 (en) * | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US7636743B2 (en) * | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US7543125B2 (en) * | 2005-12-19 | 2009-06-02 | Commvault Systems, Inc. | System and method for performing time-flexible calendric storage operations |
US7822717B2 (en) * | 2006-02-07 | 2010-10-26 | Emc Corporation | Point-in-time database restore |
US8726242B2 (en) | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
US20080052326A1 (en) * | 2006-08-22 | 2008-02-28 | International Business Machines Corporation | Signature Based Client Automatic Data Backup System |
US7574574B2 (en) * | 2006-09-11 | 2009-08-11 | Apple Inc. | Backup of media libraries |
US7539783B2 (en) * | 2006-09-22 | 2009-05-26 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library, including removable media |
US7882077B2 (en) | 2006-10-17 | 2011-02-01 | Commvault Systems, Inc. | Method and system for offline indexing of content and classifying stored data |
US8655914B2 (en) | 2006-10-17 | 2014-02-18 | Commvault Systems, Inc. | System and method for storage operation access security |
US7792789B2 (en) | 2006-10-17 | 2010-09-07 | Commvault Systems, Inc. | Method and system for collaborative searching |
US8370442B2 (en) | 2008-08-29 | 2013-02-05 | Commvault Systems, Inc. | Method and system for leveraging identified changes to a mail server |
WO2008070688A1 (en) | 2006-12-04 | 2008-06-12 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
US20080147878A1 (en) * | 2006-12-15 | 2008-06-19 | Rajiv Kottomtharayil | System and methods for granular resource management in a storage network |
US8677091B2 (en) | 2006-12-18 | 2014-03-18 | Commvault Systems, Inc. | Writing data and storage system specific metadata to network attached storage device |
US20080228771A1 (en) * | 2006-12-22 | 2008-09-18 | Commvault Systems, Inc. | Method and system for searching stored data |
US7831566B2 (en) * | 2006-12-22 | 2010-11-09 | Commvault Systems, Inc. | Systems and methods of hierarchical storage management, such as global management of storage operations |
US8312323B2 (en) | 2006-12-22 | 2012-11-13 | Commvault Systems, Inc. | Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved |
US8719809B2 (en) * | 2006-12-22 | 2014-05-06 | Commvault Systems, Inc. | Point in time rollback and un-installation of software |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US7831766B2 (en) | 2006-12-22 | 2010-11-09 | Comm Vault Systems, Inc. | Systems and methods of data storage management, such as pre-allocation of storage space |
US7734669B2 (en) * | 2006-12-22 | 2010-06-08 | Commvault Systems, Inc. | Managing copies of data |
US20080155205A1 (en) * | 2006-12-22 | 2008-06-26 | Parag Gokhale | Systems and methods of data storage management, such as dynamic data stream allocation |
US8631088B2 (en) | 2007-01-07 | 2014-01-14 | Apple Inc. | Prioritized data synchronization with host device |
US8850140B2 (en) * | 2007-01-07 | 2014-09-30 | Apple Inc. | Data backup for mobile device |
US20080168525A1 (en) * | 2007-01-07 | 2008-07-10 | David Heller | Background Data Transmission between Media Device and Host Device |
US10083184B2 (en) * | 2007-01-07 | 2018-09-25 | Apple Inc. | Widget synchronization in accordance with synchronization preferences |
US8290808B2 (en) | 2007-03-09 | 2012-10-16 | Commvault Systems, Inc. | System and method for automating customer-validated statement of work for a data storage environment |
US20090033749A1 (en) * | 2007-08-03 | 2009-02-05 | Nikon Corporation | Camera |
JP5055582B2 (en) * | 2007-08-03 | 2012-10-24 | 株式会社ニコン | Camera and system |
CA2695470C (en) | 2007-08-28 | 2014-08-26 | Commvault Systems, Inc. | Power management of data processing resources, such as power adaptive management of data storage operations |
WO2009032711A1 (en) | 2007-08-29 | 2009-03-12 | Nirvanix, Inc. | Policy-based file management for a storage delivery network |
US8706976B2 (en) | 2007-08-30 | 2014-04-22 | Commvault Systems, Inc. | Parallel access virtual tape library and drives |
US8396838B2 (en) * | 2007-10-17 | 2013-03-12 | Commvault Systems, Inc. | Legal compliance, electronic discovery and electronic document handling of online and offline copies of data |
US7836174B2 (en) * | 2008-01-30 | 2010-11-16 | Commvault Systems, Inc. | Systems and methods for grid-based data scanning |
US8296301B2 (en) | 2008-01-30 | 2012-10-23 | Commvault Systems, Inc. | Systems and methods for probabilistic data classification |
US8548950B2 (en) * | 2008-05-22 | 2013-10-01 | The Board Of Trustees Of The Leland Stanford Junior University | Method and system for data archiving |
US8769048B2 (en) | 2008-06-18 | 2014-07-01 | Commvault Systems, Inc. | Data protection scheduling, such as providing a flexible backup window in a data protection system |
US9128883B2 (en) | 2008-06-19 | 2015-09-08 | Commvault Systems, Inc | Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail |
US8352954B2 (en) | 2008-06-19 | 2013-01-08 | Commvault Systems, Inc. | Data storage resource allocation by employing dynamic methods and blacklisting resource request pools |
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8219524B2 (en) * | 2008-06-24 | 2012-07-10 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8335776B2 (en) * | 2008-07-02 | 2012-12-18 | Commvault Systems, Inc. | Distributed indexing system for data storage |
US8166263B2 (en) | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US8725688B2 (en) | 2008-09-05 | 2014-05-13 | Commvault Systems, Inc. | Image level copy or restore, such as image level restore without knowledge of data object metadata |
US20100070474A1 (en) | 2008-09-12 | 2010-03-18 | Lad Kamleshkumar K | Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration |
US20100070466A1 (en) | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
WO2010036754A1 (en) | 2008-09-26 | 2010-04-01 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9178842B2 (en) | 2008-11-05 | 2015-11-03 | Commvault Systems, Inc. | Systems and methods for monitoring messaging applications for compliance with a policy |
US8412677B2 (en) | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8434131B2 (en) * | 2009-03-20 | 2013-04-30 | Commvault Systems, Inc. | Managing connections in a data storage system |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US8578120B2 (en) * | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US20100333116A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Cloud gateway system for managing data storage to cloud storage sites |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US9092500B2 (en) | 2009-09-03 | 2015-07-28 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
US8719767B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Utilizing snapshots to provide builds to developer computing devices |
US8706867B2 (en) | 2011-03-31 | 2014-04-22 | Commvault Systems, Inc. | Realtime streaming of multimedia content from secondary storage devices |
US8595191B2 (en) | 2009-12-31 | 2013-11-26 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
KR20140105584A (en) | 2009-10-15 | 2014-09-01 | 가부시키가이샤 엘이테크 | Microcomputer and method of operation thereof |
WO2011082132A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for analyzing snapshots |
WO2011082113A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Asynchronous methods of data classification using change journals and other data structures |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
JP5579257B2 (en) * | 2010-03-30 | 2014-08-27 | 株式会社エルイーテック | Apparatus and method for restoring information in main memory |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8352422B2 (en) | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
US8589347B2 (en) | 2010-05-28 | 2013-11-19 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US8578109B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US9244779B2 (en) | 2010-09-30 | 2016-01-26 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
EP2622469B1 (en) | 2010-09-30 | 2019-11-13 | Commvault Systems, Inc. | Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system |
US8577851B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Content aligned block-based deduplication |
WO2012045023A2 (en) | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US8954446B2 (en) | 2010-12-14 | 2015-02-10 | Comm Vault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US9021198B1 (en) | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
US9213709B2 (en) | 2012-08-08 | 2015-12-15 | Amazon Technologies, Inc. | Archival data identification |
US9767098B2 (en) | 2012-08-08 | 2017-09-19 | Amazon Technologies, Inc. | Archival data storage system |
US9251097B1 (en) | 2011-03-22 | 2016-02-02 | Amazon Technologies, Inc. | Redundant key management |
US9563681B1 (en) | 2012-08-08 | 2017-02-07 | Amazon Technologies, Inc. | Archival data flow management |
US8719264B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Creating secondary copies of data based on searches for content |
US8849762B2 (en) | 2011-03-31 | 2014-09-30 | Commvault Systems, Inc. | Restoring computing environments, such as autorecovery of file systems at certain points in time |
US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
US9116633B2 (en) | 2011-09-30 | 2015-08-25 | Commvault Systems, Inc. | Information management of virtual machines having mapped storage devices |
US9372827B2 (en) | 2011-09-30 | 2016-06-21 | Commvault Systems, Inc. | Migration of an existing computing system to new hardware |
US9465670B2 (en) | 2011-12-16 | 2016-10-11 | Intel Corporation | Generational thread scheduler using reservations for fair scheduling |
US20140075140A1 (en) * | 2011-12-30 | 2014-03-13 | Ingo Schmiegel | Selective control for commit lines for shadowing data in storage elements |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9262496B2 (en) | 2012-03-30 | 2016-02-16 | Commvault Systems, Inc. | Unified access to personal data |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US9063938B2 (en) | 2012-03-30 | 2015-06-23 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US9529871B2 (en) | 2012-03-30 | 2016-12-27 | Commvault Systems, Inc. | Information management of mobile device data |
US8950009B2 (en) | 2012-03-30 | 2015-02-03 | Commvault Systems, Inc. | Information management of data associated with multiple cloud services |
US9639297B2 (en) | 2012-03-30 | 2017-05-02 | Commvault Systems, Inc | Shared network-available storage that permits concurrent data access |
US10157184B2 (en) | 2012-03-30 | 2018-12-18 | Commvault Systems, Inc. | Data previewing before recalling large data files |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
US20130339310A1 (en) | 2012-06-13 | 2013-12-19 | Commvault Systems, Inc. | Restore using a client side signature repository in a networked storage system |
US9146816B2 (en) | 2012-06-14 | 2015-09-29 | International Business Machines Corporation | Managing system image backup |
US8805793B2 (en) | 2012-08-08 | 2014-08-12 | Amazon Technologies, Inc. | Data storage integrity validation |
US9250811B1 (en) | 2012-08-08 | 2016-02-02 | Amazon Technologies, Inc. | Data write caching for sequentially written media |
US10120579B1 (en) | 2012-08-08 | 2018-11-06 | Amazon Technologies, Inc. | Data storage management for sequentially written media |
US9904788B2 (en) | 2012-08-08 | 2018-02-27 | Amazon Technologies, Inc. | Redundant key management |
US9354683B2 (en) | 2012-08-08 | 2016-05-31 | Amazon Technologies, Inc. | Data storage power management |
US9779035B1 (en) * | 2012-08-08 | 2017-10-03 | Amazon Technologies, Inc. | Log-based data storage on sequentially written media |
US9225675B2 (en) | 2012-08-08 | 2015-12-29 | Amazon Technologies, Inc. | Data storage application programming interface |
US9652487B1 (en) | 2012-08-08 | 2017-05-16 | Amazon Technologies, Inc. | Programmable checksum calculations on data storage devices |
US9830111B1 (en) | 2012-08-08 | 2017-11-28 | Amazon Technologies, Inc. | Data storage space management |
US8959067B1 (en) | 2012-08-08 | 2015-02-17 | Amazon Technologies, Inc. | Data storage inventory indexing |
US9092441B1 (en) | 2012-08-08 | 2015-07-28 | Amazon Technologies, Inc. | Archival data organization and management |
US20140181038A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods to categorize unprotected virtual machines |
US20140181085A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Data storage system for analysis of data across heterogeneous information management systems |
US10379988B2 (en) | 2012-12-21 | 2019-08-13 | Commvault Systems, Inc. | Systems and methods for performance monitoring |
US9286086B2 (en) | 2012-12-21 | 2016-03-15 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
US20140181438A1 (en) * | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Filtered reference copy of secondary storage data in a data storage system |
US9633216B2 (en) | 2012-12-27 | 2017-04-25 | Commvault Systems, Inc. | Application of information management policies based on operation with a geographic entity |
US9069799B2 (en) | 2012-12-27 | 2015-06-30 | Commvault Systems, Inc. | Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system |
US9021452B2 (en) | 2012-12-27 | 2015-04-28 | Commvault Systems, Inc. | Automatic identification of storage requirements, such as for use in selling data storage management solutions |
US9378035B2 (en) | 2012-12-28 | 2016-06-28 | Commvault Systems, Inc. | Systems and methods for repurposing virtual machines |
US10346259B2 (en) | 2012-12-28 | 2019-07-09 | Commvault Systems, Inc. | Data recovery using a cloud-based remote data recovery center |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US20140196039A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine categorization system and method |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US20140201162A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods to restore selected files from block-level backup for virtual machines |
US20140201140A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Data synchronization management |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US9286110B2 (en) | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US10558581B1 (en) | 2013-02-19 | 2020-02-11 | Amazon Technologies, Inc. | Systems and techniques for data recovery in a keymapless data storage system |
US9459968B2 (en) | 2013-03-11 | 2016-10-04 | Commvault Systems, Inc. | Single index to query multiple backup formats |
US20140281545A1 (en) | 2013-03-12 | 2014-09-18 | Commvault Systems, Inc. | Multi-layer embedded encryption |
US20140372717A1 (en) * | 2013-06-18 | 2014-12-18 | Microsoft Corporation | Fast and Secure Virtual Machine Memory Checkpointing |
US9939981B2 (en) | 2013-09-12 | 2018-04-10 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system with an enhanced storage manager, including user control and storage management of virtual machines |
US10949382B2 (en) | 2014-01-15 | 2021-03-16 | Commvault Systems, Inc. | User-centric interfaces for information management systems |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US10169121B2 (en) | 2014-02-27 | 2019-01-01 | Commvault Systems, Inc. | Work flow management for an information management system |
US9648100B2 (en) | 2014-03-05 | 2017-05-09 | Commvault Systems, Inc. | Cross-system storage management for transferring data across autonomous information management systems |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9811427B2 (en) | 2014-04-02 | 2017-11-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US9823978B2 (en) | 2014-04-16 | 2017-11-21 | Commvault Systems, Inc. | User-level quota management of data objects stored in information management systems |
US9740574B2 (en) | 2014-05-09 | 2017-08-22 | Commvault Systems, Inc. | Load balancing across multiple data paths |
US9848045B2 (en) | 2014-05-27 | 2017-12-19 | Commvault Systems, Inc. | Offline messaging between a repository storage operation cell and remote storage operation cells via an intermediary media agent |
US9760446B2 (en) | 2014-06-11 | 2017-09-12 | Micron Technology, Inc. | Conveying value of implementing an integrated data management and protection system |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US9405928B2 (en) | 2014-09-17 | 2016-08-02 | Commvault Systems, Inc. | Deriving encryption rules based on file content |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US9444811B2 (en) | 2014-10-21 | 2016-09-13 | Commvault Systems, Inc. | Using an enhanced data agent to restore backed up data across autonomous storage management systems |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US20160142485A1 (en) | 2014-11-19 | 2016-05-19 | Commvault Systems, Inc. | Migration to cloud storage from backup |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
US9898213B2 (en) | 2015-01-23 | 2018-02-20 | Commvault Systems, Inc. | Scalable auxiliary copy processing using media agent resources |
US9904481B2 (en) | 2015-01-23 | 2018-02-27 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a storage management system using media agent resources |
US10313243B2 (en) | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US10956299B2 (en) | 2015-02-27 | 2021-03-23 | Commvault Systems, Inc. | Diagnosing errors in data storage and archiving in a cloud or networking environment |
US9928144B2 (en) | 2015-03-30 | 2018-03-27 | Commvault Systems, Inc. | Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10311150B2 (en) | 2015-04-10 | 2019-06-04 | Commvault Systems, Inc. | Using a Unix-based file system to manage and serve clones to windows-based computing clients |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US9563514B2 (en) | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs |
US10084873B2 (en) | 2015-06-19 | 2018-09-25 | Commvault Systems, Inc. | Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10101913B2 (en) | 2015-09-02 | 2018-10-16 | Commvault Systems, Inc. | Migrating data to disk without interrupting running backup operations |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
US10248494B2 (en) | 2015-10-29 | 2019-04-02 | Commvault Systems, Inc. | Monitoring, diagnosing, and repairing a management database in a data storage management system |
US10061663B2 (en) | 2015-12-30 | 2018-08-28 | Commvault Systems, Inc. | Rebuilding deduplication data in a distributed deduplication data storage system |
US10565067B2 (en) | 2016-03-09 | 2020-02-18 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine backup from cloud operations |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US10417102B2 (en) | 2016-09-30 | 2019-09-17 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10922189B2 (en) | 2016-11-02 | 2021-02-16 | Commvault Systems, Inc. | Historical network data-based scanning thread generation |
US10389810B2 (en) | 2016-11-02 | 2019-08-20 | Commvault Systems, Inc. | Multi-threaded scanning of distributed file systems |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US10838821B2 (en) | 2017-02-08 | 2020-11-17 | Commvault Systems, Inc. | Migrating content and metadata from a backup system |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10459666B2 (en) | 2017-03-03 | 2019-10-29 | Commvault Systems, Inc. | Using storage managers in respective data storage management systems for license distribution, compliance, and updates |
US11032350B2 (en) | 2017-03-15 | 2021-06-08 | Commvault Systems, Inc. | Remote commands framework to control clients |
US10949308B2 (en) | 2017-03-15 | 2021-03-16 | Commvault Systems, Inc. | Application aware backup of virtual machines |
US20180276085A1 (en) | 2017-03-24 | 2018-09-27 | Commvault Systems, Inc. | Virtual machine recovery point generation |
US10891069B2 (en) | 2017-03-27 | 2021-01-12 | Commvault Systems, Inc. | Creating local copies of data stored in online data repositories |
US11108858B2 (en) | 2017-03-28 | 2021-08-31 | Commvault Systems, Inc. | Archiving mail servers via a simple mail transfer protocol (SMTP) server |
US10776329B2 (en) | 2017-03-28 | 2020-09-15 | Commvault Systems, Inc. | Migration of a database management system to cloud storage |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
US11074140B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Live browsing of granular mailbox data |
US11074138B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Multi-streaming backup operations for mailboxes |
US10552294B2 (en) | 2017-03-31 | 2020-02-04 | Commvault Systems, Inc. | Management of internet of things devices |
US11010261B2 (en) | 2017-03-31 | 2021-05-18 | Commvault Systems, Inc. | Dynamically allocating streams during restoration of data |
US11221939B2 (en) | 2017-03-31 | 2022-01-11 | Commvault Systems, Inc. | Managing data from internet of things devices in a vehicle |
US10853195B2 (en) | 2017-03-31 | 2020-12-01 | Commvault Systems, Inc. | Granular restoration of virtual machine application data |
US11294786B2 (en) | 2017-03-31 | 2022-04-05 | Commvault Systems, Inc. | Management of internet of things devices |
US10984041B2 (en) | 2017-05-11 | 2021-04-20 | Commvault Systems, Inc. | Natural language processing integrated with database and data storage management |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10742735B2 (en) | 2017-12-12 | 2020-08-11 | Commvault Systems, Inc. | Enhanced network attached storage (NAS) services interfacing to cloud storage |
US10831591B2 (en) | 2018-01-11 | 2020-11-10 | Commvault Systems, Inc. | Remedial action based on maintaining process awareness in data storage management |
US10795927B2 (en) | 2018-02-05 | 2020-10-06 | Commvault Systems, Inc. | On-demand metadata extraction of clinical image data |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US10789387B2 (en) | 2018-03-13 | 2020-09-29 | Commvault Systems, Inc. | Graphical representation of an information management system |
US11297369B2 (en) | 2018-03-30 | 2022-04-05 | Apple Inc. | Remotely controlling playback devices |
US10993274B2 (en) | 2018-03-30 | 2021-04-27 | Apple Inc. | Pairing devices by proxy |
US10783929B2 (en) | 2018-03-30 | 2020-09-22 | Apple Inc. | Managing playback groups |
US10614857B2 (en) | 2018-07-02 | 2020-04-07 | Apple Inc. | Calibrating media playback channels for synchronized presentation |
US10891198B2 (en) | 2018-07-30 | 2021-01-12 | Commvault Systems, Inc. | Storing data to cloud libraries in cloud native formats |
US10416919B1 (en) | 2018-08-28 | 2019-09-17 | Cohesity, Inc. | Integrated hierarchical storage movement |
US11159469B2 (en) | 2018-09-12 | 2021-10-26 | Commvault Systems, Inc. | Using machine learning to modify presentation of mailbox objects |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US10860443B2 (en) | 2018-12-10 | 2020-12-08 | Commvault Systems, Inc. | Evaluation and reporting of recovery readiness in a data storage management system |
US20200192572A1 (en) | 2018-12-14 | 2020-06-18 | Commvault Systems, Inc. | Disk usage growth prediction system |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11366723B2 (en) | 2019-04-30 | 2022-06-21 | Commvault Systems, Inc. | Data storage management system for holistic protection and migration of serverless applications across multi-cloud computing environments |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11461184B2 (en) | 2019-06-17 | 2022-10-04 | Commvault Systems, Inc. | Data storage management system for protecting cloud-based data including on-demand protection, recovery, and migration of databases-as-a-service and/or serverless database management systems |
US11308034B2 (en) | 2019-06-27 | 2022-04-19 | Commvault Systems, Inc. | Continuously run log backup with minimal configuration and resource usage from the source machine |
US20210011816A1 (en) | 2019-07-10 | 2021-01-14 | Commvault Systems, Inc. | Preparing containerized applications for backup using a backup services container in a container-orchestration pod |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11422900B2 (en) | 2020-03-02 | 2022-08-23 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11321188B2 (en) | 2020-03-02 | 2022-05-03 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11494105B2 (en) * | 2020-05-01 | 2022-11-08 | Cohesity, Inc. | Using a secondary storage system to implement a hierarchical storage management plan |
US11422727B2 (en) | 2020-05-13 | 2022-08-23 | Cohesity, Inc. | Restoring a storage system using file relocation metadata |
US11748143B2 (en) | 2020-05-15 | 2023-09-05 | Commvault Systems, Inc. | Live mount of virtual machines in a public cloud computing environment |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11494417B2 (en) | 2020-08-07 | 2022-11-08 | Commvault Systems, Inc. | Automated email classification in an information management system |
US11314687B2 (en) | 2020-09-24 | 2022-04-26 | Commvault Systems, Inc. | Container data mover for migrating data between distributed data storage systems integrated with application orchestrators |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
US11604706B2 (en) | 2021-02-02 | 2023-03-14 | Commvault Systems, Inc. | Back up and restore related data on different cloud storage tiers |
US20220358096A1 (en) * | 2021-05-06 | 2022-11-10 | Nutanix, Inc. | Management of consistent indexes without transactions |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6272051A (en) * | 1985-09-24 | 1987-04-02 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | Multiple simultaneous processing controlling method in multiple processor system |
GB8622010D0 (en) * | 1986-09-12 | 1986-10-22 | Hewlett Packard Ltd | File backup facility |
JPH0743676B2 (en) * | 1988-03-11 | 1995-05-15 | 株式会社日立製作所 | Back-up data dump control method and device |
US5065354A (en) * | 1988-09-16 | 1991-11-12 | Compaq Computer Corporation | Queued posted-write disk write method with improved error handling |
US5133065A (en) * | 1989-07-27 | 1992-07-21 | Personal Computer Peripherals Corporation | Backup computer program for networks |
US5276867A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data storage system with improved data migration |
US5276860A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data processor with improved backup storage |
US5218695A (en) * | 1990-02-05 | 1993-06-08 | Epoch Systems, Inc. | File server system having high-speed write execution |
US5239647A (en) * | 1990-09-07 | 1993-08-24 | International Business Machines Corporation | Data storage hierarchy with shared storage level |
US5341493A (en) * | 1990-09-21 | 1994-08-23 | Emc Corporation | Disk storage system with write preservation during power failure |
US5212772A (en) * | 1991-02-11 | 1993-05-18 | Gigatrend Incorporated | System for storing data in backup tape device |
US5313631A (en) * | 1991-05-21 | 1994-05-17 | Hewlett-Packard Company | Dual threshold system for immediate or delayed scheduled migration of computer data files |
US5367698A (en) * | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
US5263154A (en) * | 1992-04-20 | 1993-11-16 | International Business Machines Corporation | Method and system for incremental time zero backup copying of data |
US5386545A (en) * | 1992-09-25 | 1995-01-31 | Archive Corporation | Target management method for data backup to a shared transfer station, multiple media element device |
-
1994
- 1994-01-19 JP JP06517209A patent/JP3130536B2/en not_active Expired - Lifetime
- 1994-01-19 WO PCT/US1994/000765 patent/WO1994017474A1/en active IP Right Grant
- 1994-01-19 EP EP94907283A patent/EP0680634B1/en not_active Expired - Lifetime
- 1994-01-19 DE DE69403192T patent/DE69403192T2/en not_active Expired - Lifetime
- 1994-01-19 CA CA002153769A patent/CA2153769C/en not_active Expired - Lifetime
- 1994-01-19 AU AU60928/94A patent/AU6092894A/en not_active Abandoned
- 1994-01-19 AT AT94907283T patent/ATE153149T1/en not_active IP Right Cessation
-
1996
- 1996-01-19 US US08/588,830 patent/US5751997A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
ATE153149T1 (en) | 1997-05-15 |
DE69403192T2 (en) | 1997-12-04 |
JP3130536B2 (en) | 2001-01-31 |
AU6092894A (en) | 1994-08-15 |
JPH08506200A (en) | 1996-07-02 |
EP0680634A1 (en) | 1995-11-08 |
WO1994017474A1 (en) | 1994-08-04 |
DE69403192D1 (en) | 1997-06-19 |
CA2153769A1 (en) | 1994-08-04 |
US5751997A (en) | 1998-05-12 |
EP0680634B1 (en) | 1997-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2153769C (en) | Apparatus and method for transferring and storing data from an arbitrarily large number of networked computer storage devices | |
US7062541B1 (en) | System and method for transferring related data objects in a distributed data storage environment | |
US7234077B2 (en) | Rapid restoration of file system usage in very large file systems | |
EP1984821B1 (en) | Restoring a file to its proper storage tier in an information lifecycle management environment | |
US5991753A (en) | Method and system for computer file management, including file migration, special handling, and associating extended attributes with files | |
US7752492B1 (en) | Responding to a failure of a storage system | |
EP0681721B1 (en) | Archiving file system for data servers in a distributed network environment | |
US5535381A (en) | Apparatus and method for copying and restoring disk files | |
JP3792258B2 (en) | Disk storage system backup apparatus and method | |
US7024529B2 (en) | Data back up method and its programs | |
EP1405188B1 (en) | Systems and methods of information backup | |
US7293145B1 (en) | System and method for data transfer using a recoverable data pipe | |
US5857203A (en) | Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system | |
US8205049B1 (en) | Transmitting file system access requests to multiple file systems | |
US8010543B1 (en) | Protecting a file system on an object addressable storage system | |
JP4615344B2 (en) | Data processing system and database management method | |
US5544353A (en) | Distributed processing object shared resource control apparatus and method | |
JP2010102738A (en) | Apparatus and method for hardware-based file system | |
US20070061540A1 (en) | Data storage system using segmentable virtual volumes | |
JP2003516582A (en) | Scalable storage architecture | |
US8095804B1 (en) | Storing deleted data in a file system snapshot | |
US6823348B2 (en) | File manager for storing several versions of a file | |
WO2005033945A1 (en) | Emulated storage system supporting instant volume restore | |
US7395283B1 (en) | Method and apparatus for making independent data copies in a data processing system | |
CN111309794A (en) | Data storage engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKEX | Expiry |
Effective date: 20140120 |