Note: Descriptions are shown in the official language in which they were submitted.
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