Sélection de la langue

Search

Sommaire du brevet 2201859 

Énoncé de désistement de responsabilité concernant l'information provenant de tiers

Une partie des informations de ce site Web a été fournie par des sources externes. Le gouvernement du Canada n'assume aucune responsabilité concernant la précision, l'actualité ou la fiabilité des informations fournies par les sources externes. Les utilisateurs qui désirent employer cette information devraient consulter directement la source des informations. Le contenu fourni par les sources externes n'est pas assujetti aux exigences sur les langues officielles, la protection des renseignements personnels et l'accessibilité.

Disponibilité de l'Abrégé et des Revendications

L'apparition de différences dans le texte et l'image des Revendications et de l'Abrégé dépend du moment auquel le document est publié. Les textes des Revendications et de l'Abrégé sont affichés :

  • lorsque la demande peut être examinée par le public;
  • lorsque le brevet est émis (délivrance).
(12) Brevet: (11) CA 2201859
(54) Titre français: IMAGE INSTANTANEE STATIQUE DES DONNEES STOCKEES DANS UN SYSTEME DE MEMOIRE DE MASSE
(54) Titre anglais: SNAPSHOT OF DATA STORED ON A MASS STORAGE SYSTEM
Statut: Périmé et au-delà du délai pour l’annulation
Données bibliographiques
(51) Classification internationale des brevets (CIB):
  • G06F 12/16 (2006.01)
(72) Inventeurs :
  • OHRAN, RICHARD S. (Etats-Unis d'Amérique)
  • OHRAN, MICHAEL R. (Etats-Unis d'Amérique)
(73) Titulaires :
  • EMC CORPORATION
(71) Demandeurs :
  • EMC CORPORATION (Etats-Unis d'Amérique)
(74) Agent: CASSAN MACLEAN
(74) Co-agent:
(45) Délivré: 2000-12-19
(86) Date de dépôt PCT: 1995-10-10
(87) Mise à la disponibilité du public: 1996-04-25
Requête d'examen: 1997-09-17
Licence disponible: S.O.
Cédé au domaine public: S.O.
(25) Langue des documents déposés: Anglais

Traité de coopération en matière de brevets (PCT): Oui
(86) Numéro de la demande PCT: PCT/US1995/013324
(87) Numéro de publication internationale PCT: US1995013324
(85) Entrée nationale: 1997-04-04

(30) Données de priorité de la demande:
Numéro de la demande Pays / territoire Date
08/322,697 (Etats-Unis d'Amérique) 1994-10-13

Abrégés

Abrégé français

L'invention est une méthode de production d'instantanés statiques ou d'images des données stockées dans une mémoire de masse (104). Au départ, le contenu d'une mémoire de préservation (106) est effacé et un dispositif virtuel est créé. Quand une opération d'enregistrement doit être effectuée dans la mémoire de masse (104), la mémoire de préservation (106) est examinée pour déterminer si elle contient un enregistrement de bloc associé à l'adresse d'enregistrement dans la mémoire de masse. Si elle ne contient pas ce type d'enregistrement, une copie du bloc stocké à l'adresse d'enregistrement de bloc dans la mémoire de masse (104) est versée dans la mémoire de préservation (106). Quand une opération de lecture doit être effectuée sur le dispositif virtuel, la mémoire de préservation (106) est examinée pour déterminer si elle contient un bloc associé à l'adresse de lecture du dispositif virtuel. Si elle contient un bloc de ce type, celui-ci est retransmis comme résultat de la lecture dans le dispositif virtuel. Autrement, le bloc qui se trouve à l'adresse de lecture du bloc du dispositif virtuel est retransmis comme résultat.


Abrégé anglais


A method for providing a static snapshot, or image, of data stored on a mass storage system (104). At the start of the method, a
preservation memory (106) is cleared and a virtual device is created. Whenever a write is to be performed on the mass storage system
(104), a check is made of the preservation memory (106) to determine if it contains a block associated with the mass storage write address.
If there is not, a copy of the block in the mass storage system (104) at the block write address is placed in the preservation memory (106).
Whenever a read is to be performed on the virtual device, a check is made of the preservation memory (106) to determine if it contains a
block associated with the virtual device read address. If there is such a block, that block is returned as the result of the virtual device read.
Otherwise, the block at the virtual device block read address is returned as the result.

Revendications

Note : Les revendications sont présentées dans la langue officielle dans laquelle elles ont été soumises.


WE CLAIM:
1. A method for providing a static snapshot of data used
by a computer system configured to include: a digital computer
executing the steps of the method; a mass storage system
connected to said digital computer, said mass storage system
storing blocks of data each located at a unique mass storage
write address; and a preservation memory connected to said
digital computer and used for storing a copy of any of said
blocks of data, each of said copies being associated with one of
said unique addresses; and wherein the method is characterized
by the steps of:
(A) clearing said preservation memory so that no
copies of blocks of data are in said preservation memory;
(B) creating a virtual device;
(C) whenever a write operation to said mass storage
system occurs, and said write operation specifies one of
said unique write addresses for receiving at that unique
address of the mass storage system a new block of data to
be written to said mass storage system, then
(1) if and only if there is not already found
within the preservation memory a copy of a block of
data associated with said unique mass storage write
address, then placing in said preservation memory a
copy of the block of data located in said mass storage
system at said unique mass storage write address prior
to writing the new block of data in said mass storage
system at that same address; and
(2) writing said new block of data to said mass
storage system at the location specified by said
unique mass storage write address only after the
preceding step (1) has been performed at least once
for a given unique mass storage write address; and
(D) whenever a read operation to said virtual device
occurs, and said read operation specifies a virtual device
read address, then
(1) if there is not a copy of a block of data
associated with said virtual device read address in
-Page 1 of Claims-

said preservation memory, then returning in response
to said read operation said block of data associated
with said virtual read address from said mass storage
system; and
(2) if there is a copy of a block of data
associated with said virtual device read address in
said preservation memory, then returning in response
to said read operation said copy of the block of data
associated with said virtual device read address in
said preservation memory.
2. A method as in claim 1, wherein said mass storage
system comprises one or more disks.
3. A method as in any preceding claim, wherein said mass
storage system is a partition of a disk.
4. A method as in any preceding claim, wherein said
preservation memory is a random-access memory.
5. A method as in any preceding claim, wherein said
preservation memory is one or more disks.
6. A method as in any preceding claim, wherein said
preservation memory is a partition of a disk.
7. A method as in any preceding claim, wherein said
preservation memory is a file stored on the mass storage system.
8. A method as in any preceding claim, further comprising
the steps of:
whenever a write operation to said virtual device
occurs, and said write operation specifies a virtual device
write address and a new block of data to be written to said
virtual device, then
(1) if there is not a copy of a block of data
associated with said virtual device write address in
said preservation memory, placing in said preservation
memory said new block of data to be written to said
virtual device; and
(2) if there is a copy of a block of data
associated with said virtual device write address in
said preservation memory, replacing in said
preservation memory said copy of the block of data
associated with said virtual device write address with
-Page 2 of Claims-

said new block of data to be written to said virtual
device.
9. A method as in any preceding claim comprising the steps
of:
whenever a read operation to said mass storage
system occurs, and said read operation specifies a unique
mass storage read address, then returning as the result of
said read operation a block of data located in said mass
storage system at said unique mass storage read address.
10. A method as in any preceding claim, said computer
system further including a block association memory, said block
association memory used to associate said copies of blocks stored
in said preservation memory with said unique addresses.
11. A method as in claim 10, wherein said block association
memory contains entries, each entry indicating a unique address
in said mass storage system and a location in said preservation
memory of a copy of a block associated with said unique address.
12. A method as in claim 11, wherein said copies of blocks
of data in said preservation memory are associated with a unique
address by searching said block association memory entries for
a matching address.
13. A method as in claim 12, wherein there is not a copy
of a block of data associated with an address if there is no
entry in said block association memory with a matching address.
14. A method as in claim 11, wherein said block association
memory contains an entry for each unique address in said mass
storage system.
15. A method as in claim 14, where a special value for said
preservation memory location in one of said entries indicates
that there is not a copy of a block of data in said preservation
memory associated with the unique address indicated by said one
of said entries.
16. A method as in any preceding claim, wherein said
digital computer acts as a file server, and said virtual device
is exported to other computers.
17. A method as in claim 16, wherein said mass storage
system is exported to other computers.
-Page 3 of Claims-

18. A method as in any preceding claim, said computer
system further including a second mass storage system storing
blocks of data each located at a unique storage write address,
and the method being further characterized by the steps of:
creating a second virtual device in addition to the
virtual device created in step (B);
whenever a write operation to said second mass storage
system occurs, and said write operation specifies a unique
mass storage write address of the second mass storage
system and a new block of data to be written to said second
mass storage system, then
(1) if and only if there is not already found
within the preservation memory a copy of a block of
data associated with said unique mass storage write
address of the second mass storage system, then
placing in said preservation memory a copy of the
block of data located in said second mass storage
system at said unique mass storage write address of
the second mass storage system: and
(2) writing said new block of data to said
second mass storage system at the location specified
by said unique mass storage write address of the
second mass storage system only after the preceding
step (1) has been performed at least once for a given
unique mass storage write address of the second mass
storage system; and
whenever a read operation to said second virtual
device occurs, and said read operation specifies a second
virtual device read address, then
(1) if there is not a copy of a block of data
associated with said second virtual device read
address in said preservation memory, then returning in
response to said read operation said block of data
associated with said second virtual device read
address from said second mass storage system; and
(2) if there is a copy of a block of data
associated with said second virtual device read
-Page 4 of Claims-

address in said preservation memory, then returning in
response to said read operation said copy of the block
of data associated with said second virtual device
read address in said preservation memory.
19. A method as in any preceding claim, said computer
system further including a second preservation memory, the method
being further characterized by the steps of:
creating a second virtual device in addition to the
virtual device created in step (B);
whenever a write operation to said mass storage system
occurs, and said write operation specifies a unique mass
storage write address and a new block of data to be written
to said unique mass storage system, then
(1) if and only if there is not already found
within the second preservation memory a copy of a
block of data associated with said unique mass storage
write address, the placing in said second preservation
memory a copy of the block of data located in said
mass storage system at said unique mass storage write
address; and
(2) writing said new block of data to said mass
storage system at the location specified by said
unique mass storage write address only after the
preceding step (1) has been performed at least once
for a given unique mass storage write address; and
whenever a read operation to said second virtual
device occurs, and said read operation specifies a second
virtual device read address, then
(1) if there is not a copy of a block of data
associated with said second virtual device read
address in said second preservation memory, then
returning in response to said read operation said
block of data associated with said second virtual read
address from said mass storage system; and
(2) if there is copy of a block of data
associated with said second virtual device read
address in said second preservation memory, then
returning in response to said read operation said copy
Page 5

of the block of data associated with said second
virtual device read address in said second
preservation memory.
20. A system for providing a static snapshot of data, said
system including a mass storage system for storing blocks of data
each located at a unique mass storage write address; a
preservation memory used for storing a copy of any of said blocks
of data, each of said copies being associated with one of said
unique addresses; and a digital computer connected to said mass
storage system and to said preservation memory; and said system
being characterized in that said digital computer includes:
(A) means for clearing said preservation memory so
that no copies of blocks of data are in said preservation memory;
(B) means for creating a virtual device;
(C) means for creating a static snapshot of the data
blocks of said mass storage system whenever a write
operation to said mass storage system occurs, and said
write operation specifies one of said unique write
addresses for receiving at that unique address of the mass
storage system a new block of data to be written to said
mass storage system, by performing the steps of:
(1) if and only if there is not already found
within a preservation memory a copy of a block of data
associated with said unique mass storage write
address, then placing in said preservation memory a
copy of the block of data located in said mass storage
system at said unique mass storage write address prior
to writing the new block of data in said mass storage
system at that same address; and
(2) writing said new block of data to said mass
storage system at the location specified by said
unique mass storage write address only after the
preceding step (1) has been performed at least once
for a given unique mass storage write address; and
(D) means for outputting data blocks of the static
snapshot whenever a read operation to said virtual device
occurs, and said read operation specifies a virtual device
read address, by perforating the steps of:
Page 6

(1) if there is not a copy of a block of data
associated with said virtual device read address in
said preservation memory, then returning in response
to said read operation said block of data associated
with said virtual read address from said mass storage
system; and
(2) if there is a copy of a block of data
associated with said virtual device read address in
said preservation memory, then returning in response
to said read operation said copy of the block of data
associated with said virtual device read address in
said preservation memory.
21. In a computer system having a processor, a mass storage
system for storing blocks of data in response to write
operations, and a preservation memory means, a method of
providing a static snapshot of the mass storage system at a
particular point in time so that said static snapshot does not
change even though the contents of said mass storage system
change, the method being characterized by the steps of:
clearing the preservation memory means so that the
preservation memory means is ready to preserve data blocks
of said mass storage system;
preserving a snapshot of the mass storage system at a
particular point in time by executing at least the
following steps:
(1) when a data block is to be over-written by
a new data block at said same write address, checking
said preservation memory means to determine if the
data block specified by said address has already been
stored in the preservation memory means;
(2) if and only if said data block has already
been stored in said preservation memory means,
performing the over-write operation so that said new
data block replaces the data block at said address;
and
(3) if the data block that is to be over-written
has not been already stored in said preservation
-Page 7-

memory means, preserving the data block by first
copying said data block into said preservation memory
means prior to performing the over-write operation,
thereby permitting said mass storage system to be
updated as each data block is preserved at a given
snapshot moment in the preservation memory means.
22. A system for providing a static snapshot of mass storage
system at a particular point in time so that said static snapshot
does not change even though the contents of said mass storage
system subsequently change, said system including a mass storage
system for storing a plurality of data blocks, each of said
plurality of data blocks being specified by a unique write
address; preservation memory means for storing the data blocks
of said mass storage system so as to store a static snapshot of
the mass storage system at a particular point in time; and being
characterized by a processor means that includes a first means
for identifying whether each data block of said mass storage
system has been preserved in said preservation memory means, and
a second means for ensuring that each data block of said mass
storage system is copied to said preservation memory means the
first time said data block is to be over-written by a new data
block when said static snapshot of said mass storage system is
taken, and a third means for writing a new data block to said
mass storage system without first preserving said data block if
said data block has already been preserved in said preservation
memory means.
Page 8

Description

Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.


CA 02201859 1999-11-18
- Specification
To all whom it may concern:
Be it known that Richard S. Ohran and Michael R. Ohran,
citizens of the United States of America, have invented a new
and useful invention entitled METHOD AND SYSTEM FOR PROVIDING
A STATIC SNAPSHOT OF DATA STORED ON A MASS STORAGE SYSTEM of
which the following comprises' a complete specification.
Background of the Invention
Field of the Invention. This invention relates mass storage
systems for digital computers, and in particular to a method
for providing a static snapshot or image of a mass storage
system.
Description of Related Art. It is desirable during the
operation of a computer system with a mass storage system, such
as a magnetic disk, to periodically make a backup copy of the
data stored on the mass storage system to allow for recovery
in the event of a failure of the mass storage system. This is
commonly done by reading the data stored on the mass storage
_____~___ _~ ~_ _ _____~;... ~~
25
35
1

2201859
WO 96/12232 PCTlUS95/13324
1 However, if the data stored on the mass storage
2 system is being updated by other programs as the backup
3 copy is being made, the image of the data on the mass
4 storage system written to tape may be inconsistent. This
is because normal backup techniques either copy the
6 blocks from the mass storage system sequentially to the
7 linear-access tape, or walk the file system stored on the
8 mass storage system, starting with the first block of the
9 first file in the first directory and proceeding in order
to the last block of the last file of the last directory.
11 The backup program is not aware of updates performed to a
12 block of the mass storage system after that block has
13 been written to tape.
14 This problem of inconsistent data being written to
tape is particularly likely to occur if the mass storage
16 system is being used by a database management system,
17 where an update may involve changing information stored
18 on different parts of the mass storage system. If a
19 database update is made while the backup tape is being
written, the image of the database management system
21 written to tape will have the ald values for any data
22 already written to tape at the time of the database
23 update, and the new values for any data written to tape
24 following the database update. A restoration based on '
2

CA 02201859 1999-11-18
the tape image of the database would yield an inconsistent
database.
Horton et al., United States Patent No. 5,089,958,
discloses a technique for producing an image of a mass storage
system at any point in time after the technique is started.
This is done by establishing a base image of the mass storage
system at the start of the technique and a log indicating each
change made to the mass storage system. An image at any point
in time can then be produced by starting with the base image
and making all the changes indicated in the log up to that
point in time. To improve performance, the Horton system also
provides for differential images so that the compilation of
changes to form an image does not have to start with the base
image.
There are two difficulties with using the technique of
Horton to provide an image for backup operations. First, the
technique is not designed to provide a static snapshot or image
of the mass storage system, but to allow an image from any
point in time to be created at some later time. This increases
the complexity of the technique and requires the compilation
.. , __,_ ___ ______ _ ___ ~~.__, __"_..... . .. a...~",....a
30
3

WO 96/12232 PCT/US95113324
1 The second difficulty with using the technique of
2 Horton is that the log must store a copy of each change
3 made to the mass storage system in order to produce an
4 image of the mass storage system as it was at a specified
time. This means that the size of the log can grow
6 without bound, eventually exhausting the space available
7 for its storage. At this point, updates to the mass
8 storage system are not possible without compromising the
9 ability to produce an image from any previous point in
time.
11 With many database systems or file systems, certain
12 key blocks (such as master directory blacks) are
13 frequently updated, perhaps with every update to any
14 other block. A copy of these blocks must be written to
the log each time they are changed. This will, of
16 course, result in a very large log file, with many of the
17 entries being copies of the key blocks as they changed
18 over time.
19 Another approach to creating a static image of a
mass storage system is possible if the mass storage
21 system has the ability to produce a mirror, ar identical
22 copy, of one disk's data on a second disk. At the time
23 the static image is needed, mirroring of data is stopped
24 and the mirror disk is used as the static image. When .
4
SUBSTITUTE SHEET ~~ULE 26)

~~01~59
WO 96/12232 PCT/US95/13324
1 the static image is no longer necessary (for example,
2 when the tape backup has been completed), the two disks
3 are resynchronized, by copying any changes made during
4 the time mirroring was not active to the mirror disk, and
mirroring is resumed.
6 This approach also has problems. Unless there are
7 three or more disks mirroring the information on the main
8 disk, when mirroring is stopped to produce the static
9 image there is no longer the redundancy of mirrored disk
or disks and updates can be lost if there is a disk
11 failure. Furthermore, it requires an entire disk to be
12 devoted to the storage of the static image.
13 But the major disadvantage of this mirror disk
14 approach is the time necessary to restart mirroring after
the static image is no longer needed. This requires
16 updating the mirror disk with all the changes that have
17 been made since mirroring was stopped. 2f a log of these
18 changes is not available, this means that all the data on
19 the mirror disk must be copied from the disk which has
been updated. For large disks such as would be found on
21 a database system, this could take many hours.
22 For more general background reference materials, the
23 reader is directed to United States Patent Nos.
24 3,444,528, 3,533,082, 4,141,066, 4,156,901, 4,164,017,
5
SUBSTITUTE SHEET (R1JLE 26)

~zo~T ~~~
WO 96112232 PC."T/LIS95/13324
1 4,191,996, 4,352,023, 4,378,588, 4,403,303, 4,453,215,
2 4,459,658, 4,479,214, 4,483,001, 4,484,275, 4,486,826,
3 4,498,145, 4,507,751, 4,521,847, 4,581,701, 4,607,365,
4 4,608,688, 4,639,856, 4,648,031, 4,652,940, 4,654,819,
4,654,857, 4,674,038, 4,703,421, 4,703,481, 4,713,811,
6 4,727,516, 4,736,339, 4,750,177, 4,754,397, 4,878,167,
7 5,307,481, 5,235,700, 5,079,740, 4,823,256, 5,295,258,
8 5,157,663, 4,471,429, 4,530,052, 4,615,001, 4,941,087,
9 4,959,768, 4,979,108, 4,800,488, 4,656,596, 4,866,707,
3,771,137, 4,402,046, 4,423,414, 4,430,699, 4,477,882,
11 4,480,304, 4,562,535, 4,604,690, 4,630,224, 4,644,470,
12 4,64$,061, 3,754,211, 3,824,54?, 4,439,859, 4,445,214,
13 4,691,314, 3,754,211, 4,332,027, 4,516,121, 4,583,089,
14 4,646,300, 5,060,185, 5,123,099, 3,602,900, 3,665,173,
3,681,578, 3,735,356, 3,760,364, 3,761,884, 3,810,119,
16 3,828,321, 3,054,560, 3,303,474, 3,544,477, 3,623,014,
17 3,636,331, 3,725,861, 3,803,568, 4,012,717, 4,076,961,
18 4,099,241, 4,118,772, 4,358,823, 4,359,?18, 4,455,645,
19 4,477,895, 4,589,090, 4,590,554, 4,610,013, 4,623,883,
4,639,852, 4,654,846, 4,680,581, 3,557,315, 3,636,331,
21 3,810,121, 3,812,469, 3,820,085, 3,828,321, 3,864,670,
22 3,865,999, 3,889,237, 3,959,638, 3,991,407, 4,073,005,
23 4,099,241, 4,152,764, 4,208,715, 4,228,503, 4,257,009,
24 4,270,167, 4,282,572, 4,318,173, 4,358,823, 4,371,754,
6

CA 02201859 1999-11-18
4, 403, 286, 4, 428, 044, 4, 455, 601, 4, 530, 051, 4, 590, 554, and
4,628,508. The reader's attention is also directed to the
following publications : Lyon, "Tandem' s Remote Data Facility, "
IEEE (1990); and Molina et al., "Issues in Disaster Recovery,"
IEEE (1990) .
Summary of the Invention
It is an object of this invention to provide a static
image of data stored on a mass storage system as it existed at
a particular point in time.
This is accomplished by creating a virtual device that
will appear as a mass storage device containing the static
image. Write operations to the mass storage system are also
intercepted by the method. Copies of blocks on the mass
storage system are placed in a preservation memory whenever
they are going to be changed by a write operation, unless an
entry for that block is already in the preservation memory.
During a read of the virtual device, the preservation memory
is first checked, either directly or using a table of contents
~. .~ ~ w
25
35
7

2201859
WO 96/12232 PCT/CTS95/13324
1 preservation memory, to see if it contains a copy of the
2 block from the specified location. If the preservation
3 memory has such a copy, that copy is returned as the
4 result of the read. Otherwise, the block is read from the
mass storage system.
6 It is a further object of the invention to reduce
7 the amount of storage required to provide the static
8 image. The technique of Norton requires the storage of
9 all changes from the time the technique is started. The
mirror disk technique requires storage equal to the size
11 of the mass storage being imaged. In contrast, the
12 method of the invention only requires storage equal to
13 the number of mass storage blacks that have been changed
14 since the static image was created.
It is a further object of the invention to reduce
16 the time necessary for generating the static image and
17 for returning to normal operation when the static image
18 is no longer needed. Unlike the technique of Norton,
1~ where the static image at a particular time needs to be
compiled from the base image and Iog entries, all that is
21 necessary for creating a static image using the method of
22 this invention is to create the virtual device and
23 establish the interception of writes to the mass storage
24 system. No copying of data or compilation of an image is
8
SUBSTITUTE SHEET (RULE 2~

CA 02201859 2000-07-12
necessary.
When the static image is no longer necessary, the virtual
device is removed from the system and the contents of tha
preservation memory deleted if recovery of that space is
desirable. No synchronization to the mass storage system is
necessary nor is it necessary to merge updates into a base
image to create a new base image.
In one preferred aspect, the invention therefore provides
a method for providing a static snapshot of data used by a
computer system configured to include: a digital computer
executing the steps of the method; a mass storage system
connected to the digital computer, the mass storage system
storing blocks of data each located at a unique mass storage
write address; and a preservation memory connected to the
digital computer and used for storing a copy of any of the
blocks of data, each of the copies being associated with one
of the unique addresses. The method is characterized by the
steps of:
(A) clearing the preservation memory so that no
copies of blocks of data are in the preservation memory;
(B) creating a virtual device;
(C) whenever a write operation to the mass storage
system occurs, and the write operation specifies one of
the unique write addresses for receiving at that unique
address of the mass storage system a new block of data to
be written to the mass storage system, then
(1) if and only if there is not already found
within the preservation memory a copy of a block of
data associated with the unique mass storage write
address, then placing in the preservation memory a
copy of the block of data located in the mass
storage system at the unique mass storage write
address prior to writing the new block of data in
the mass storage system at that same address; and
(2) writing the new block of data to the mass
9

CA 02201859 2000-07-12
storage system at the location specified by the
unique mass storage write address only after the
preceding step (1) has been performed at least once
for a given unique mass storage write address; and
(D) whenever a read operation to the virtual device
occurs, and the read operation specifies a virtual device
read address, then
(1) if there is not a copy of a block of data
associated with the virtual device read address in
the preservation memory, then returning in response
to the read operation the block of data associated
with the virtual read address from the mass storage
system; and
(2) if there is a copy of a block of data
associated with the virtual device read address in
the preservation memory, then returning in response
to the read operation the copy of the block of data
associated with the virtual device read address in
the preservation memory.
In another preferred aspect, the invention provides a
system for providing a static snapshot of data, the system
including a mass storage system for storing blocks of data each
located at a unique mass storage write address; a preservation
memory used for storing a copy of any of the blocks of data,
each of the copies being associated with one of the unique
addresses; and a digital computer connected to the mass storage
system and to the preservation memory. The system is
characterized in that the digital computer includes:
(A) means for clearing the preservation memory so
that no copies of blocks of data are in the preservation
memory;
(B) means for creating a virtual device;
(C) means for creating a static snapshot of the
data blocks of the mass storage system whenever a write
operation to the mass storage system occurs, and the
9a

CA 02201859 2000-07-12
write operation specifies one of the unique write
addresses for receiving at that unique address of the
mass storage system a new block of data to be written to
the mass storage system, by performing the steps of:
(1) if and only if there is not already found
within a preservation memory a copy of a block of
data associated with the unique mass storage write
address, then placing in the preservation memory a
copy of the block of data located in the mass
storage system at the unique mass storage write
address prior to writing the new block of data in
the mass storage system at that same address; and
(2) writing the new block of data to the mass
storage system at the location specified by the
unique mass storage write address only after the
preceding step (1) has been performed at least once
for a given unique mass storage write address; and
(D) means for outputting data blocks of the static
snapshot whenever a read operation to the virtual device
occurs, and the read operation specifies a virtual device
read address, by performing the steps of:
(1) if there is not a copy of a block of data
associated with the virtual device read address in
the preservation memory, then returning in response
to the read operation the block of data associated
with the virtual read address from the mass storage
system; and
(2) if there is a copy of a block of data
associated with the virtual device read address in
the preservation memory, then returning in response
to the read operation the copy of the block of data
associated with the virtual device read address in
the preservation memory.
In another preferred aspect, the invention provides, in
a computer system having a processor, a mass storage system for
9b

CA 02201859 2000-07-12
storing blocks of data in response to write operations, and a
preservation memory means, a method of providing a static
snapshot of the mass storage system at a particular point in
time so that the static snapshot does not change even though
the contents of the mass storage system change. The method is
characterized by the steps of:
clearing the preservation memory means so that the
preservation memory means is ready to preserve data
blocks of the mass storage system;
preserving a snapshot of the mass storage system at
a particular point in time by executing at least the
following steps:
( 1 ) when a data block is to be over-written by
a new data block at the same write address, checking
the preservation memory means to determine if the
data block specified by the address has already been
stored in the preservation memory means;
(2) if and only if the data block has already
been stored in the preservation memory means,
performing the over-write operation so that the new
data block replaces the data block at the address;
and
(3) if the data block that is to be over-
written has not been already stored in the
preservation memory means, preserving the data block
by first copying the data block into the
preservation memory means prior to performing the
over-write operation, thereby permitting the mass
storage system to be updated as each data block is
preserved at a given snapshot moment in the
preservation memory means.
In yet another preferred aspect, the invention provides
a system for providing a static snapshot of mass storage system
at a particular point in time so that the static snapshot does
not change even though the contents of the mass storage system
9c

CA 02201859 2000-07-12
subsequently change, the system including a mass storage system
for storing a plurality of data blocks, each of the plurality
of data blocks being specified by a unique write address;
preservation memory means for storing the data blocks of the
mass storage system so as to store a static snapshot of the
mass storage system at a particular point in time; and being
characterized by a processor means that includes a first means
for identifying whether each data block of the mass storage
system has been preserved in the preservation memory means,
and a second means for ensuring that each data block of the
mass storage system is copied to the preservation memory means
the first time the data block is to be over-written by a new
data block when the static snapshot of the mass storage system
is taken, and a third means for writing a new data block to the
mass storage system without first preserving the data block if
the data block has already been preserved in the preservation
memory means.
These and other features of the invention will be more
readily understood upon consideration of the attached drawings
and of the following detailed description of those drawings and
the presently preferred embodiments of the invention.
Brief Description of the Drawings
Figure 1 is a block diagram of a representative digital
computer configuration on which the preferred embodiment of the
invention operates.
Figure 2 is a flow diagram showing the preferred steps of
the method of the invention.
Figure 3 is a block diagram of a client-server
configuration using the preferred method.
Figure 4 is a block diagram of the currently
9d

22Q185~
WO 96/12232 PC'T/ZJS95/13324
1 preferred embodiment of the method in a client-server -
2 configuration.
3 Figure 5 is variant of the configuration of Figure
4 4.
6 Detailed Description of the Invention
7 Referring to Figure 1, which illustrates a
8 representative computer configuration on which the method
9 of the invention runs, it can be seen that digital
computer 102 has connected to it mass storage system 104
11 and preservation memory 106. In some embodiments of the
12 invention, association memory 108 may also be connected
13 to digital computer 102.
14 Mass storage system 104 can be any writable block-
addressable storage system, such as one or more disks or
16 a partition of a disk. (If mass storage system 104 were
17 not writable, such as a CD-ROM, its contents would not
18 change and there would be no need for the invention of
19 this application.) A partition of a disk can be a fixed
area of a disk. The disks can store their information
21 using magnetic, optical, or any other technique that
22 allows writing and reading of data without departing from
23 the scope and spirit of this invention.
24 In the currently-preferred embodiment of the
sussrirurE sit ~mE ~s~

~W096/12232 ~ p ~ g ~ 9 PCT/US95/13324
1 invention, digital computer 102 is a PC-compatible
2 computer based on an Intel X86 series or compatible
3 processor and mass storage device 104 is a SCSI or IDE
4 magnetic disk connected to digital computer 102 through
an appropriate controller.
6 Preservation memory 106 can be an area in the
7 random-access memory (RAM) of digital computer 102, one
8 or more disks, a partition of a disk, or a file stored on
9 a disk. Optimal selection of the implementation of
preservation memory 106 depends of the number of blocks
11 of the mass storage system that will be changed during
12 the time the static image is needed. The use of RAM
13 provides faster performance, but may limit the number of
14 entries in the preservation memory. If the preservation
memory runs out of space when a new entry must be stored,
16 the method fails and the static image is no longer
17 available or remains in the state it was at the time the
18 preservation memory ran out of space. It is important to
19 note that if this occurs, no data from the mass storage
system is lost, and the method can be restarted to
21 produce a new static image.
22 Referring to Figure 2, which is a flow diagram
23 showing the steps of the method, the method starts at
24 step 202 when a static image of the mass storage system
11
suesnru~ st~~ ~u~E ~s~

~~O~~J~
WO 96112232 PCT/US95/13324
1 is desired. This can be indicated by the running of a -
2 special program, an operating system call, or an operator
3 command, as appropriate for the operating system and
4 application.
In step 202, preservation memory 106 is cleared. In
6 general, this will consist of setting the control
7 information describing the contents of preservation
8 memory 106 to indicate that there are no valid entries in
9 preservation memory 106.
In step 204, a virtual device appearing as a mass
11 storage device is created. The method for creating a
12 virtual device will depend on the particular operating
13 system running on digital computer 102, but will be known
14 by one skilled in the art of that particular operating
system. In addition, it may be necessary in step 204 to
16 configure the operating system so that the method of this
17 invention intercepts any read or write operation directed
18 to mass storage system 104. Again, how this is done will
19 be dependent on the particular operating system running
on digital computer 102.
21 In step 206, the method waits until there is a write
22 operation directed to mass storage system 104 or a read
23 operation directed to the virtual device created in step
24 204. In variants of the method, step 206 also reacts to
12

~WO 96112232
2 2 018 5 9 PC"T/LTS95/13324
. 1 a read operation directed to mass storage system 104 or a
2 write operation directed to the virtual device created in
3 step 204.
4 If the operation is a write to mass storage system
104, step 210 is entered. Using the mass storage write
6 address specified in the write operation, step 210
7 determines if there is a block of data associated with
8 that mass storage write address in preservation memory
9 106. If there isn't, step 212 of the method is executed.
Otherwise, step 212 is skipped and step 214 is executed.
11 There are a number of ways for determining whether
12 there is a block of data associated with the mass storage
13 address in the preservation memory 106. In the
14 currently-preferred embodiment of the invention, there is
a block association memory 108 also connected to digital
16 computer 102. (Block association memory 108 may be a
17 separate memory connected to digital computer 102, or may
18 be a portion of the RAM of digital computer 102.} Block
19 association memory 108 is used to associate blocks stored
in preservation memory 106 with the unique addresses of
21 blocks on mass storage system 104. Block association
22 memory 108 does this by containing entries indicating a
~ 23 unique address and the location in preservation memory
24 106 for the block associated with that unique address.
13
SUBSTITUTE SHEET (RULE 2fi~

2201859
WO 96/12232 PCT/U595/13324
1 Entries in block association memory 108 can be .
2 stored unordered, in which case they must be linearly
3 searched for a matching unique address. If no entry is
4 found with a matching address, there is not a block in
preservation memory 106 associated with that address.
6 Alternatively, the entries could be stored ordered by
7 unique addresses, in which case a binary search could be
8 used to locate the matching entry in block association
9 memory 108. A hashing scheme could also be used to find
a matching entry.
11 The block association memory 108 can also be
12 organized as an array with an element for each unique
13 address of mass storage system 104. Each element of the
14 array stores a preservation memory location, or a special
value that indicates that there is not a block in
16 preservation memory 106 associated with that unique
17 address.
18 The selection of a technique for storing entries in
19 block association memory 108 depends on the
characteristics of accessing the entries. Using an array
21 provides the highest speed for accessing an entry or
22 adding an entry corresponding to a block just copied into
23 preservation memory 106, at the expense of a large block
24 association memory 108. Ordering the entries by unique
Z4
SUBSTITUTE SHEf)' (B(JZE 26~

WO 96/12232
PCT/US95/13324
1 address provides faster access than for unordered
2 entries, but requires more time when an entry is added to
3 block association memory 108. In the currently-preferred
4 embodiment, entries are stored unordered in block
association memory 108.
6 In this discussion, the term block refers to the
7 data stored at a particular location in mass storage
8 system 104 or preservation memory 106. Blocks are
9 generally of a fixed size (e. g. 512 bytes for disks used
with MS-DOS), although blocks of different sizes, or
11 variable sizes, are within the scope of this invention.
12 On mass storage system 104, each block has a unique
13 address, specified in read or write operations. A block
14 in preservation memory 106 is a copy of a block of data
stored in mass storage system 104, and that block in
16 preservation memory 106 is associated with the unique
17 address of the block in mass storage system 104 of which
18 it is a copy.
19 For efficiency, it may be convenient to treat one or
more contiguous blocks on mass storage system 104 as if
21 it were a single, large block. Often operating systems
22 perform their mass storage operations on contiguous
23 blocks (called clusters in MS-DOS). The extensions to
24 handle clusters of blocks should be clear to one with
SIiBSTITUTE SHEET (RULE 2b~

WO 96/12232 PCT/US951i3324
1 ordinary skills in computer programming.
2 If block association memory 108 is being used, step
3 202 (clearing preservation memory 106) consists of
4 removing all entries from block association memory 108 or
setting them to the special entry that indicates that
6 there is no block in preservation memory 106 associated
7 with each unique address.
8 Returning to Figure 2, step 212 is executed if there
9 is not a block associated with the mass storage write
20 address in preservation memory 106. Step 212 places a
11 copy of the block of data currently located at the mass
12 storage write address in preservation memory 106,
13 updating block association memory 108 as necessary. It
14 is important to note that step 212 will be executed at
most once for each unique address on mass storage system
16 104, since the next time step 210 tests to see if there
17 is a block in preservation memory 106 associated with
18 that mass storage write address if will find the copy
19 made by step 212. Because of this, preservation memory
106 will contain only copies of blocks as they were when
21 the method was started.
22 In step 214, the data to be written by the mass
23 storage write operation is written to the location on
24 mass storage system 104 specified by the mass storage
16
SUBSTITUTE StIEET (RULE 2b~

~WO 96/12232 PCT/US95I13324
1 write address. This completes the steps for a mass
2 storage write, and step 206 is reentered to wait for the
3 next operation.
4 If the operation is a virtual device read, step 220
is entered. Again, a check is made to determine if a
6 block associated with the virtual device read address is
7 in preservation memory 106. If there is such a block,
8 step 224 is executed. If not, step 222 is executed.
9 Step 222 returns the data from the block in mass
storage system 104 specified by the virtual device read
11 address as the result of the read operation. Step 224
12 returns the block from preservation memory 106 associated
13 with the virtual address read address as the result of
14 the read operation. This completes the steps for a
virtual device read, and step 206 is reentered to wait
16 for the next operation.
1~ If the operation is a mass storage read, step 230 is
18 entered, which returns the data from the block of mass
19 storage system 104 specified by the mass storage read
address as the result of the read operation. This
21 completes the steps for a mass storage read, and step 206
22 is reentered to wait for the next operation.
23 It may be desirable to allow write operations to the
24 virtual device, changing the image as specified by the
17
SU&STITUZE SH~~? (RULE 26)

22ai8~9
WO 96/12232 PCTIUS95/1332d
1 write operations. For example, it may be necessary to -
2 write a different label or other control information on
3 the virtual device image so the operating system can
4 differentiate it from mass storage system 104.
If the operation is a virtual device write, step 240
6 is entered. Step 240 checks to see if the virtual device
7 is read-only, and if it is step 242 is entered to return
8 an appropriate error indication to the operating system
9 or user.
Step 244 checks to determine if a block associated
11 with the virtual device write address is in preservation
12 memory 106. If there is such a block, step 248 is
13 executed. If not, step 246 is executed. In step 246,
14 the data from the virtual device write operation is
placed in preservation memory 106, associated with the
16 virtual device write address from the virtual device
17 write operation. Block association memory i08 is updated
18 as necessary. In step 248, the data from the virtual
19 device write operation replaces the block associated with
the virtual device write address of the virtual device
21 write operation. This completes the steps of the virtual
22 device write, and step 206 is reentered to wait for the
23 next operation.
24 While the description above describes the basic
18
~~"

2201859
WO 96/12232 PCT/US95/13324
. 1 operation of the method of the invention, there are a
2 number of other embodiments possible. For example, the
3 same preservation memory 106 can be shared so that a
4 second virtual device provides a snapshot image of a
second mass storage system. In another embodiment, a
6 second preservation memory and second virtual device can
7 be used to provide a second image whose snapshot was
8 taken at a different time of mass storage system 104.
9 The computer system running the method of the
invention can also be used as a file server for client
I1 computers connected to it by a network or other means.
12 As a file server, it can export its mass storage system,
13 the virtual device created by the method, or both. Such
14 as system is illustrated in Figure 3.
File server computer 312, with mass storage system
16 314, runs the method of the invention. It exports the
17 virtual device (and probably mass storage system 314) to
18 client computer 302, communicating over network 300.
19 Computer 302 can run a tape backup program that copies
the information from the exported virtual device to tape
21 drive 304. No change is necessary for the tape backup
22 program running on client computer 302, which sees the
23 virtual device as just another mass storage device.
24 Figure 4 illustrates the currently-preferred
19
SUBSTITUTE SHE'~1' (!~E 26~

CA 02201859 1999-11-18
configuration for running the method of the invention. Network
400 connects client computer 402, with tape drive 404, to file
server computer 412, with mass storage. system 414. File server
computer communicates with standby server computer 422 over
data link 420. Standby server computer 422 has mass storage
system 424. Through software running on file server computer
412 and standby server computer 422, mass storage system 424
appears as a disk to file server computer 412 and mirrors the
data on mass storage system 414. In the event of a failure of
either file server computer 412 or mass storage system 414,
standby computer 422 can be restarted as the file server.
In the configuration of Figure 4, standby server 422 runs
the method of the invention, and can export the virtual device
either to file server computer 412, which can then export it
to client computers on network 400, or standby server 422 can
directly export the virtual device to client computers. The
virtual device can also be accessed by programs running on
L"________ ~.,.,
25
35

WO 96/12232 2 2 018 5 9 PCT/U895/13324
1 Figure 5 illustrates a variant of the configuration
2 of Figure 4. Instead of client computer 502 having a
3 tape drive, as was the case for client computer 402,
4 backup computer 532 has tape drive 534. Backup computer
532 communicates with standby server computer 522 over
6 data link 530. Standby server computer exports mass
'1 storage system 524 to file server computer 512 (whether
8 mirrored or not). Standby server computer exports the
9 virtual device with the snapshot image of mass storage
system 524 to backup computer 532.
11 Backup computer 532 can now copy the snapshot image
12 of mass storage system 524 by reading the virtual device
13 exported to it by standby server computer 522. Neither
14 file server computer 512 nor standby server computer 522
has the overhead of the tape backup process, which can
16 result in a degradation of performance if data
1~ compression needs to be performed before the data is
18 written to tape. Also, a fault in the tape backup
19 program will not affect either file server computer 512
or standby server computer 522.
21 It is to be understood that the above described
22 embodiments are merely illustrative of numerous and
23 varied other embodiments which may constitute
24 applications of the principles of the invention. Such
21

CA 02201859 2000-07-12
other embodiments may be readily devised by those skilled in
the art without departing from the spirit or scope of this
invention and it is our intent they be deemed within the scope
Or _____ _ ~___~.v _ _~
10
20
30
22

Dessin représentatif
Une figure unique qui représente un dessin illustrant l'invention.
États administratifs

2024-08-01 : Dans le cadre de la transition vers les Brevets de nouvelle génération (BNG), la base de données sur les brevets canadiens (BDBC) contient désormais un Historique d'événement plus détaillé, qui reproduit le Journal des événements de notre nouvelle solution interne.

Veuillez noter que les événements débutant par « Inactive : » se réfèrent à des événements qui ne sont plus utilisés dans notre nouvelle solution interne.

Pour une meilleure compréhension de l'état de la demande ou brevet qui figure sur cette page, la rubrique Mise en garde , et les descriptions de Brevet , Historique d'événement , Taxes périodiques et Historique des paiements devraient être consultées.

Historique d'événement

Description Date
Inactive : CIB expirée 2016-01-01
Inactive : CIB enlevée 2015-11-19
Le délai pour l'annulation est expiré 2005-10-11
Lettre envoyée 2004-10-12
Lettre envoyée 2004-03-23
Inactive : Transferts multiples 2004-02-25
Accordé par délivrance 2000-12-19
Inactive : Page couverture publiée 2000-12-18
Exigences de modification après acceptation - jugée conforme 2000-08-16
Lettre envoyée 2000-08-16
Lettre envoyée 2000-08-08
Inactive : Taxe finale reçue 2000-07-12
Préoctroi 2000-07-12
Inactive : Taxe de modif. après accept. traitée 2000-07-12
Inactive : Transferts multiples 2000-07-12
Inactive : Correspondance - Transfert 2000-07-12
Modification après acceptation reçue 2000-07-12
Lettre envoyée 2000-01-13
Un avis d'acceptation est envoyé 2000-01-13
Un avis d'acceptation est envoyé 2000-01-13
Inactive : Approuvée aux fins d'acceptation (AFA) 1999-12-07
Inactive : Correction à la modification 1999-11-26
Modification reçue - modification volontaire 1999-11-18
Modification reçue - modification volontaire 1999-08-06
Inactive : Dem. de l'examinateur par.30(2) Règles 1999-05-06
Inactive : Acc. réc. RE - Pas de dem. doc. d'antériorité 1998-03-18
Requête d'examen reçue 1997-09-17
Exigences pour une requête d'examen - jugée conforme 1997-09-17
Toutes les exigences pour l'examen - jugée conforme 1997-09-17
Modification reçue - modification volontaire 1997-09-17
Inactive : CIB en 1re position 1997-07-03
Inactive : CIB attribuée 1997-07-03
Inactive : CIB attribuée 1997-07-03
Inactive : Notice - Entrée phase nat. - Pas de RE 1997-06-23
Lettre envoyée 1997-06-23
Demande publiée (accessible au public) 1996-04-25

Historique d'abandonnement

Il n'y a pas d'historique d'abandonnement

Taxes périodiques

Le dernier paiement a été reçu le 2000-10-03

Avis : Si le paiement en totalité n'a pas été reçu au plus tard à la date indiquée, une taxe supplémentaire peut être imposée, soit une des taxes suivantes :

  • taxe de rétablissement ;
  • taxe pour paiement en souffrance ; ou
  • taxe additionnelle pour le renversement d'une péremption réputée.

Les taxes sur les brevets sont ajustées au 1er janvier de chaque année. Les montants ci-dessus sont les montants actuels s'ils sont reçus au plus tard le 31 décembre de l'année en cours.
Veuillez vous référer à la page web des taxes sur les brevets de l'OPIC pour voir tous les montants actuels des taxes.

Historique des taxes

Type de taxes Anniversaire Échéance Date payée
TM (demande, 2e anniv.) - générale 02 1997-10-10 1997-04-04
Taxe nationale de base - générale 1997-04-04
Enregistrement d'un document 1997-04-04
Requête d'examen - générale 1997-09-17
TM (demande, 3e anniv.) - générale 03 1998-10-13 1998-09-29
TM (demande, 4e anniv.) - générale 04 1999-10-11 1999-09-23
Enregistrement d'un document 2000-07-12
2000-07-12
Taxe finale - générale 2000-07-12
TM (demande, 5e anniv.) - générale 05 2000-10-10 2000-10-03
TM (brevet, 6e anniv.) - générale 2001-10-10 2001-09-21
TM (brevet, 7e anniv.) - générale 2002-10-10 2002-09-19
TM (brevet, 8e anniv.) - générale 2003-10-10 2003-09-22
Enregistrement d'un document 2004-02-25
Titulaires au dossier

Les titulaires actuels et antérieures au dossier sont affichés en ordre alphabétique.

Titulaires actuels au dossier
EMC CORPORATION
Titulaires antérieures au dossier
MICHAEL R. OHRAN
RICHARD S. OHRAN
Les propriétaires antérieurs qui ne figurent pas dans la liste des « Propriétaires au dossier » apparaîtront dans d'autres documents au dossier.
Documents

Pour visionner les fichiers sélectionnés, entrer le code reCAPTCHA :



Pour visualiser une image, cliquer sur un lien dans la colonne description du document. Pour télécharger l'image (les images), cliquer l'une ou plusieurs cases à cocher dans la première colonne et ensuite cliquer sur le bouton "Télécharger sélection en format PDF (archive Zip)" ou le bouton "Télécharger sélection (en un fichier PDF fusionné)".

Liste des documents de brevet publiés et non publiés sur la BDBC .

Si vous avez des difficultés à accéder au contenu, veuillez communiquer avec le Centre de services à la clientèle au 1-866-997-1936, ou envoyer un courriel au Centre de service à la clientèle de l'OPIC.


Description du
Document 
Date
(aaaa-mm-jj) 
Nombre de pages   Taille de l'image (Ko) 
Revendications 1997-04-03 13 602
Dessins 1997-04-03 4 69
Abrégé 1997-04-03 1 66
Description 1997-04-03 22 785
Description 2000-07-11 26 969
Revendications 2000-07-11 8 392
Revendications 1997-09-16 8 392
Description 1999-11-17 22 793
Dessin représentatif 1997-07-08 1 5
Dessin représentatif 2000-12-04 1 7
Avis d'entree dans la phase nationale 1997-06-22 1 202
Courtoisie - Certificat d'enregistrement (document(s) connexe(s)) 1997-06-22 1 129
Accusé de réception de la requête d'examen 1998-03-17 1 173
Avis du commissaire - Demande jugée acceptable 2000-01-12 1 166
Courtoisie - Certificat d'enregistrement (document(s) connexe(s)) 2000-08-07 1 115
Courtoisie - Certificat d'enregistrement (document(s) connexe(s)) 2004-03-22 1 105
Avis concernant la taxe de maintien 2004-12-06 1 173
PCT 1997-04-03 38 1 338
Correspondance 2000-07-11 3 72
Taxes 1997-04-03 1 41
Correspondance 2000-01-12 1 104
Taxes 1997-10-05 1 40
Taxes 2000-10-02 1 32