Continuous data backup using distributed journaling
First Claim
1. A method for providing a backup copy of data on a primary storage comprising:
- receiving a write request from one of a plurality of sources;
journaling said write request in one of a plurality of partial journals, wherein each of said plurality of partial journals is used to journal a portion of write requests received from a different one of said plurality of sources, wherein each of said plurality of partial journals is emptied to a primary journal including partial journal entries and merged partial journal entries, each of the merged partial journal entries representing application of one or more data modifications for a time period to a storage location; and
updating said primary storage in accordance with said write request.
9 Assignments
0 Petitions
Accused Products
Abstract
Described are techniques used in connection with providing continuous data backups of primary storage. A first technique uses distributed partial journals and a copy of the primary storage. A distributed partial journal is used for each input port. The partial journals are periodically incorporated into a main journal in accordance with a time stamp for the data modification recorded in each partial journal entry. A second technique, a copy on write, uses the distributed partial journals without requiring a copy of the primary storage. For each write to an address, the current contents of the address is journaled before the address on primary storage is updated.
-
Citations
50 Claims
-
1. A method for providing a backup copy of data on a primary storage comprising:
-
receiving a write request from one of a plurality of sources; journaling said write request in one of a plurality of partial journals, wherein each of said plurality of partial journals is used to journal a portion of write requests received from a different one of said plurality of sources, wherein each of said plurality of partial journals is emptied to a primary journal including partial journal entries and merged partial journal entries, each of the merged partial journal entries representing application of one or more data modifications for a time period to a storage location; and updating said primary storage in accordance with said write request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for providing a backup copy of data on a primary storage comprising:
-
receiving a write request; journaling said write request in one of a plurality of partial journals; updating said primary storage in accordance with said write request; receiving each of said plurality of partial journals having a plurality of partial journal entries; and merging said plurality of partial journal entries in accordance with a predetermined merging time period forming a merged partial journal entry for a particular storage location, said merged partial journal entry reflecting application of data modifications for said particular storage location for said predetermined merging time period, wherein a primary journal includes a first portion of for received partial journal entries and a second portion for merged partial journal entries.
-
-
13. A method for providing a backup copy of data on a primary storage comprising:
-
receiving a write request; journaling said write request in one of a plurality of partial journals; updating said primary storage in accordance with said write request; and periodically flushing said plurality of partial journals to a primary journal, wherein contents of each partial journal are included in a primary journal when said each partial journal is filled in accordance with a predetermined capacity level. - View Dependent Claims (14)
-
-
15. A method for providing a backup copy of data on a primary storage comprising:
-
receiving a write request; journaling said write request in one of a plurality of partial journals; and updating said primary storage in accordance with said write request, wherein each of said plurality of partial journals is associated with an input port in a switch and includes journal entries for all write requests received on said associated input port. - View Dependent Claims (16)
-
-
17. A method for providing a backup copy of data on a primary storage comprising:
-
receiving a write request; journaling said write request in one of a plurality of partial journals; updating said primary storage in accordance with said write request; receiving each of said plurality of partial journals having a plurality of partial journal entries; and merging said plurality of partial journal entries in accordance with a predetermined merging time period forming a merged partial journal entry for a particular storage location, said merged partial journal entry reflecting application of data modifications for said particular storage location for said predetermined merging time period, wherein each partial journal is associated with an input port and all write requests from that input port are journaled in the corresponding each partial journal and wherein each merged partial journal entry includes an indicator indicating the validity of journal entries received from each input port in accordance with a time stamp value associated with said merged partial journal entry.
-
-
18. A system that performs a continuous back up of data included in a primary storage unit, comprising:
-
a switch including input ports, each of said input ports being associated with a processor and a portion of memory; a plurality of partial journals, each of said plurality of partial journals being associated with a unique one of said input ports and being stored in said portion of memory associated with said unique input port, said each partial journal including journal entries for write requests received on said unique input port; and a primary journal incorporating portions of said plurality of partial journals associated with write requests that have occurred earlier in time than those entries currently included in said partial journals. - View Dependent Claims (19)
-
-
20. A system that performs a continuous back up of data included in a primary storage unit, comprising:
-
a switch including input ports, each of said input ports being associated with a processor and a portion of memory; a plurality of partial journals, each of said plurality of partial journals being associated with a unique one of said input ports and being stored in said portion of memory associated with said unique input port, said each partial journal including journal entries for write requests received on said unique input port; and a primary journal incorporating portions of said plurality of partial journals associated with write requests that have occurred earlier in time than those entries currently included in said partial journals, wherein each partial journal entry included in a partial journal includes a data value of a location after applying a modification to data at said location associated with a write request corresponding to said each partial journal entry.
-
-
21. A system that performs a continuous back up of data included in a primary storage unit, comprising:
-
a switch including input ports, each of said input ports being associated with a processor and a portion of memory; a plurality of partial journals, each of said plurality of partial journals being associated with a unique one of said input ports and being stored in said portion of memory associated with said unique input port, said each partial journal including journal entries for write requests received on said unique input port; and a primary journal incorporating portions of said plurality of partial journals associated with write requests that have occurred earlier in time than those entries currently included in said partial journals, wherein each partial journal entry included in a partial journal includes a data value of a location prior to applying an update of a write request corresponding to said each partial journal entry.
-
-
22. A method for providing a backup copy of data on a primary storage comprising:
-
receiving, from one of a plurality of sources, a write request for a location in primary storage; receiving a copy of data at said location on said primary storage; journaling said write request in one of a plurality of partial journals in a partial journal entry including said copy prior to performing said write request, each of said plurality of partial journals being associated with journaled write requests received from a different one of said plurality of sources, wherein each of said plurality of partial journals is emptied to a primary journal including partial journal entries and merged partial journal entries, each of the merged partial journal entries representing application of one or more data modifications for a time period to a storage location; and updating said primary storage in accordance with said write request. - View Dependent Claims (23, 24, 25)
-
-
26. A method of creating a point-in-time copy of a primary storage comprising:
-
receiving journal entries corresponding to write requests formed using a plurality of distributed partial journals, each partial journal being associated with a portion of write requests, said journal entries being ordered in accordance with a time value associated with each of said write requests, each of said journal entries including a value for a corresponding portion of primary storage before performing a write request; creating a map of pointers to said primary storage wherein each pointer is associated with a particular location identifier; and performing, for each of said journal entries including a location identifier and a data value prior to performing a write request; determining a corresponding map pointer for each location identifier included in a journal entry; and if said corresponding map pointer points to a value in the primary storage, then adjusting the map pointer to point to said data value in said each journal entry. - View Dependent Claims (27)
-
-
28. A computer readable medium encoded with a computer program that provides a backup copy of data on a primary storage, the computer program comprising code that:
-
receives a write request from one of a plurality of sources; journals said write request in one of a plurality of partial journals, wherein each of said plurality of partial journals is used to journal a portion of write requests received from a different one of said plurality of sources, wherein each of said plurality of partial journals is emptied to a primary journal including partial journal entries and merged partial journal entries, each of the merged partial journal entries representing application of one or more data modifications for a time period to a storage location; and updates said primary storage in accordance with said write request. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A computer readable medium encoded with a computer program that provides a backup copy of data on a primary storage, the computer program comprising code that:
-
receives a write request; journals said write request in one of a plurality of partial journals; updates said primary storage in accordance with said write request; receives each of said plurality of partial journals having a plurality of partial journal entries; and merges said plurality of partial journal entries in accordance with a predetermined merging time period forming a merged partial journal entry for a particular storage location, said merged partial journal entry reflecting application of data modifications for said particular storage location for said predetermined merging time period; wherein a primary journal includes a first portion of for received partial journal entries and a second portion for merged partial journal entries.
-
-
40. A computer readable medium encoded with a computer program that provides a backup copy of data on a primary storage, the computer program comprising code that:
-
receives a write request; journals said write request in one of a plurality of partial journals; updates said primary storage in accordance with said write request; and periodically flushes said plurality of partial journals to a primary journal, wherein contents of each partial journal are included in a primary journal when said each partial journal is filled in accordance with a predetermined capacity level. - View Dependent Claims (41)
-
-
42. A computer readable medium encoded with a computer program that provides a backup copy of data on a primary storage, the computer program comprising code that:
-
receives a write request; journals said write request in one of a plurality of partial journals; and updates said primary storage in accordance with said write request, wherein each of said plurality of partial journals is associated with an input port in a switch and includes journal entries for all write requests received on said associated input port. - View Dependent Claims (43)
-
-
44. A computer readable medium encoded with a computer program that provides a backup copy of data on a primary storage, the computer program comprising code that:
-
receives a write request; journals said write request in one of a plurality of partial journals; updates said primary storage in accordance with said write request; receives each of said plurality of partial journals having a plurality of partial journal entries; and merges said plurality of partial journal entries in accordance with a predetermined merging time period forming a merged partial journal entry for a particular storage location, said merged partial journal entry reflecting application of data modifications for said particular storage location for said predetermined merging time period; wherein each partial journal is associated with an input port and all write requests from that input port are journaled in the corresponding each partial journal and wherein each merged partial journal entry includes an indicator indicating the validity of journal entries received from each input port in accordance with a time stamp value associated with said merged partial journal entry.
-
-
45. A computer readable medium encoded with a computer program that provides a backup copy of data on a primary storage, the computer program comprising code that:
-
receives, from one of a plurality of sources, a write request for a location in primary storage; receives a copy of data at said location on said primary storage; journals said write request in one of a plurality of partial journals in a partial journal entry including said copy prior to performing said write request, each of said plurality of partial journals being associated with journaled write requests received from a different one of said plurality of sources, wherein each of said plurality of partial journals is emptied to a primary journal including partial journal entries and merged partial journal entries, each of the merged partial journal entries representing application of one or more data modifications for a time period to a storage location; and updates said primary storage in accordance with said write request. - View Dependent Claims (46, 47, 48)
-
-
49. A computer readable medium encoded with a computer program that creates a point-in-time copy of a primary storage, the computer program comprising code that:
-
receives journal entries corresponding to write requests formed using a plurality of distributed partial journals, each partial journal being associated with a portion of write requests, said journal entries being ordered in accordance with a time value associated with each of said write requests, each of said journal entries including a value for a corresponding portion of primary storage before performing a write request; creates a map of pointers to said primary storage wherein each pointer is associated with a particular location identifier; and performs, for each of said journal entries including a location identifier and a data value prior to performing a write request; determining a corresponding map pointer for each location identifier included in a journal entry; and if said corresponding map pointer points to a value in the primary storage, then adjusting the map pointer to point to said data value in said each journal entry. - View Dependent Claims (50)
-
Specification