System and method for performing snapshots in a storage environment employing distributed block virtualization
First Claim
1. A system comprising:
- a volume server;
a first and a second host computer system; and
a plurality of physical block devices;
wherein the volume server is configured to;
aggregate storage in the plurality of physical block devices into a plurality of logical volumes, wherein at least a given one of the plurality of logical volumes includes storage from at least two physical block devices, wherein the volume server is further configured to present the given logical volume to a volume client on one or more of the host computer systems as a virtualized logical block device comprising a plurality of logical block devices hierarchically configured to implement a plurality of virtualization functions, wherein the virtualization functions are implemented by the given logical volume transparently to the volume client;
make a first subset of the plurality of logical volumes available to said first host computer system for input/output; and
make a second subset of the plurality of logical volumes available to said second host computer system for input/output;
wherein said first subset includes at least a particular one of the plurality of logical volumes, wherein the particular logical volume is not included in said second subset;
wherein the given logical volume is included in one or more of the first or second subsets;
wherein a second one of the plurality of logical volumes is configured to store a copy-on-write snapshot of data stored in the given logical volume, wherein for a particular data block of said given logical volume, said copy-on-write snapshot stored by said second logical volume comprises a copy of said particular data block prior to a write operation directed to said particular data block, wherein said copy of said particular data block of said given logical volume is stored to said second logical volume in response to detecting said write operation directed to said particular data block and before said particular data block is modified on said given logical volume;
wherein a fourth one of the plurality of logical volumes is configured to store a copy-on-write snapshot of data stored in a third one of the plurality of logical volumes, wherein for a given data block of said third logical volume, said copy-on-write snapshot stored by said fourth logical volume comprises a copy of said given data block prior to a write operation directed to said given data block, wherein said copy of said given data block is stored to said fourth logical volume in response to detecting said write operation directed to said given data block and before said given data block is modified on said third logical volume; and
wherein said fourth and said second logical volumes are configured to store at least a portion of respective snapshot data of said third and said given logical volumes in a shared logical or physical block storage device common to both said fourth and said second logical volumes.
10 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for performing snapshots in a storage environment employing distributed block virtualization. In one embodiment, the system may include a volume server, a first and a second host computer system, and a plurality of physical block devices. The volume server may be configured to aggregate storage in the plurality of physical block devices into a plurality of logical volumes, where a particular logical volume includes storage from at least two physical block devices. The volume server may further be configured to make a first and a second subset of the logical volumes available to the first and second host computer systems for input/output, respectively. The first subset and the second subset may be at least partially nonoverlapping, and a second logical volume may be configured to store a snapshot of data stored in a first logical volume logical volume.
60 Citations
22 Claims
-
1. A system comprising:
-
a volume server; a first and a second host computer system; and a plurality of physical block devices; wherein the volume server is configured to; aggregate storage in the plurality of physical block devices into a plurality of logical volumes, wherein at least a given one of the plurality of logical volumes includes storage from at least two physical block devices, wherein the volume server is further configured to present the given logical volume to a volume client on one or more of the host computer systems as a virtualized logical block device comprising a plurality of logical block devices hierarchically configured to implement a plurality of virtualization functions, wherein the virtualization functions are implemented by the given logical volume transparently to the volume client; make a first subset of the plurality of logical volumes available to said first host computer system for input/output; and make a second subset of the plurality of logical volumes available to said second host computer system for input/output; wherein said first subset includes at least a particular one of the plurality of logical volumes, wherein the particular logical volume is not included in said second subset; wherein the given logical volume is included in one or more of the first or second subsets; wherein a second one of the plurality of logical volumes is configured to store a copy-on-write snapshot of data stored in the given logical volume, wherein for a particular data block of said given logical volume, said copy-on-write snapshot stored by said second logical volume comprises a copy of said particular data block prior to a write operation directed to said particular data block, wherein said copy of said particular data block of said given logical volume is stored to said second logical volume in response to detecting said write operation directed to said particular data block and before said particular data block is modified on said given logical volume; wherein a fourth one of the plurality of logical volumes is configured to store a copy-on-write snapshot of data stored in a third one of the plurality of logical volumes, wherein for a given data block of said third logical volume, said copy-on-write snapshot stored by said fourth logical volume comprises a copy of said given data block prior to a write operation directed to said given data block, wherein said copy of said given data block is stored to said fourth logical volume in response to detecting said write operation directed to said given data block and before said given data block is modified on said third logical volume; and wherein said fourth and said second logical volumes are configured to store at least a portion of respective snapshot data of said third and said given logical volumes in a shared logical or physical block storage device common to both said fourth and said second logical volumes. - View Dependent Claims (2, 3, 4, 15, 16)
-
-
5. A method comprising:
-
aggregating storage in a plurality of physical block devices into a plurality of logical volumes, wherein at least a given one of the plurality of logical volumes includes storage from at least two physical block devices; presenting the given logical volume to a volume client on one or more of a plurality of host computer systems as a virtualized logical block device comprising a plurality of logical block devices hierarchically configured to implement a plurality of virtualization functions, wherein the virtualization functions are implemented by the given logical volume transparently to the volume client; making a first subset of the plurality of logical volumes available to a first one of the host computer systems for input/output; and making a second subset of the plurality of logical volumes available to a second one of the host computer systems for input/output; wherein said first subset includes at least a particular one of the plurality of logical volumes, wherein the particular logical volume is not included in said second subset; wherein the given logical volume is included in one or more of the first or second subsets; a second one of the plurality of logical volumes storing a copy-on-write snapshot of data stored in the given logical volume, wherein for a particular data block of said given logical volume, said second logical volume storing said copy-on-write snapshot comprises said second logical volume storing a copy of said particular data block prior to a write operation directed to said particular data block, wherein storing said copy of said particular data block of said given logical volume to said second logical volume occurs in response to detecting said write operation directed to said particular data block and before said particular data block is modified on said given logical volume; a fourth one of the plurality of logical volumes storing a copy-on-write snapshot of data stored in a third one of the plurality of logical volumes, wherein for a given data block of said third logical volume, said fourth logical volume storing said copy-on-write snapshot comprises said fourth logical volume storing a copy of said given data block prior to a write operation directed to said given data block, wherein storing said copy of said given data block of said third logical volume to said fourth logical volume occurs in response to detecting said write operation directed to said given data block and before said given data block is modified on said third logical volume; and wherein said fourth and said second logical volumes are configured to store at least a portion of respective snapshot data of said third and said given logical volumes in a shared logical or physical block storage device common to both said fourth and said second logical volumes. - View Dependent Claims (6, 7, 8, 17, 18)
-
-
9. A computer-accessible storage medium comprising program instructions, wherein said program instructions are executable to:
-
aggregate storage in a plurality of physical block devices into a plurality of logical volumes, wherein at least a given one of the plurality of logical volumes includes storage from at least two physical block devices; present the given logical volume to a volume client on one or more of a plurality of host computer systems as a virtualized logical block device comprising a plurality of logical block devices hierarchically configured to implement a plurality of virtualization functions, wherein the virtualization functions are implemented by the given logical volume transparently to the volume client; make a first subset of the plurality of logical volumes available to a first one of the host computer systems for input/output; and make a second subset of the plurality of logical volumes available to a second one of the host computer systems for input/output; wherein said first subset includes at least a particular one of the plurality of logical volumes, wherein the particular logical volume is not included in said second subset; wherein the given logical volume is included in one or more of the first or second subsets; wherein a second logical volume is configured to store a copy-on-write snapshot of data stored in the given logical volume, wherein for a particular data block of said given logical volume, said copy-on-write snapshot stored by said second logical volume comprises a copy of said particular data block prior to a write operation directed to said particular data block, wherein said copy of said particular data block of said given logical volume is stored to said second logical volume in response to detecting said write operation directed to said particular data block and before said particular data block is modified on said given logical volume; wherein a fourth one of the plurality of logical volumes is configured to store a copy-on-write snapshot of data stored in a third one of the plurality of logical volumes, wherein for a given data block of said third logical volume, said copy-on-write snapshot stored by said fourth logical volume comprises a copy of said given data block prior to a write operation directed to said given data block, wherein said copy of said given data block is stored to said fourth logical volume in response to detecting said write operation directed to said given data block and before said given data block is modified on said third logical volume; and wherein said fourth and said second logical volumes are configured to store at least a portion of respective snapshot data of said third and said given logical volumes in a shared logical or physical block storage device common to both said fourth and said second logical volumes. - View Dependent Claims (10, 11, 12, 19, 20)
-
-
13. A system comprising:
-
a volume server; a first and a second host computer system; and a plurality of physical block devices; wherein the volume server is configured to; aggregate storage in the plurality of physical block devices into a plurality of logical volumes, wherein at least a given one of the plurality of logical volumes includes storage from at least two physical block devices, wherein the volume server is further configured to present the given logical volume to a volume client on one or more of the host computer systems as a virtualized logical block device comprising a plurality of logical block devices hierarchically configured to implement a plurality of virtualization functions, wherein the virtualization functions are implemented by the given logical volume transparently to the volume client; make a first subset of the plurality of logical volumes available to said first host computer system for input/output; and make a second subset of the plurality of logical volumes available to said second host computer system for input/output, wherein the given logical volume is included in one or more of the first or second subsets; wherein a second one of said plurality of logical volumes is configured to store a snapshot of data stored in said given logical volume as of a snapshot effective time, wherein for a particular data block of said given logical volume, said snapshot stored by said second logical volume comprises a copy of said particular data block prior to a write operation directed to said particular data block, wherein said write operation occurs after the snapshot effective time, and wherein said copy of said particular data block of said given logical volume is stored to said second logical volume in response to detecting said write operation directed to said particular data block and before said particular data block is modified on said given logical volume; wherein a fourth one of said plurality of logical volumes is configured to store a snapshot of data stored in a third one of said plurality of logical volumes, wherein for a given data block of said third logical volume, said snapshot stored by said fourth logical volume comprises a copy of said given data block prior to a write operation directed to said given data block, wherein said copy of said given data block is stored to said fourth logical volume in response to detecting said write operation directed to said given data block and before said given data block is modified on said third logical volume; and wherein said fourth and said second logical volumes are configured to store at least a portion of respective snapshot data of said third and said given logical volumes in a shared logical or physical block storage device common to both said fourth and said second logical volumes. - View Dependent Claims (14, 21, 22)
-
Specification