Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data
First Claim
Patent Images
1. A method, comprising:
- configuring a non-transitory data storage medium to store a virtual aggregate including N nodes, where N is an integer that is ≧
3, each node having a node block size;
receiving data to be stored among the N nodes;
parsing the data into M data blocks where M is an integer that is ≧
1;
performing a hashing function on each data block to generate metadata (MD) comprising a hash table that is identical for copies of the MD;
selecting for each data block a selected node of the N nodes, wherein the selecting comprises;
mirroring the MD in a metadata field of the selected node,mirroring a data payload of the data block in a mirrored data field of the selected node, andstriping the data payload of the data block in a striped data field of one or more other nodes of the N nodes that are not the selected node; and
repeating the selecting until the MD and data payloads of all the M data blocks have been mirrored and striped into at least a portion of the N nodes.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems to disperse and collate I/O from virtual machines (VMs) among a plurality of near line controllers for parallelization of I/O'"'"'s (parallel reads and parallel writes) and for providing redundancy for stored VM data is disclosed.
-
Citations
28 Claims
-
1. A method, comprising:
-
configuring a non-transitory data storage medium to store a virtual aggregate including N nodes, where N is an integer that is ≧
3, each node having a node block size;receiving data to be stored among the N nodes; parsing the data into M data blocks where M is an integer that is ≧
1;performing a hashing function on each data block to generate metadata (MD) comprising a hash table that is identical for copies of the MD; selecting for each data block a selected node of the N nodes, wherein the selecting comprises; mirroring the MD in a metadata field of the selected node, mirroring a data payload of the data block in a mirrored data field of the selected node, and striping the data payload of the data block in a striped data field of one or more other nodes of the N nodes that are not the selected node; and repeating the selecting until the MD and data payloads of all the M data blocks have been mirrored and striped into at least a portion of the N nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A non-transitory computer readable medium including instructions that, when executed by a processor, cause the processor to perform a method, comprising:
-
configuring a non-transitory data storage medium to store a virtual aggregate including N nodes, where N is an integer that is >
3, each node having a node block size;receiving data to be stored among the N nodes; parsing the data into M data blocks where M is an integer that is ≧
1;performing a hashing function on each data block to generate metadata (MD) comprising a hash table that is identical for copies of the MD; selecting for each data block a selected node of the N nodes, wherein the selecting comprises; mirroring the MD in a metadata field of the selected node, mirroring a data payload of the data block in a mirrored data field of the selected node, and striping the data payload of the data block in a striped data field of one or more other nodes of the N nodes that are not the selected node; and repeating the selecting until the MD and data payloads of all the M data blocks have been mirrored and striped into at least a portion of the N nodes.
-
-
28. A system comprising:
-
a memory; and a processor coupled with the memory to; configure a non-transitory data storage medium to store a virtual aggregate including N nodes, where N is an integer that is >
3, each node having a node block size;receive data to be stored among the N nodes; parse the data into M data blocks where M is an integer that is ≧
1;perform a hashing function on each data block to generate metadata (MD) comprising a hash table that is identical for copies of the MD; select for each data block a selected node of the N nodes, wherein the selection comprises; mirror the MD in a metadata field of the selected node, mirror a data payload of the data block in a mirrored data field of the selected node, and stripe the data payload of the data block in a striped data field of one or more other nodes of the N nodes that are not the selected node; and repeat the selection until the MD and data payloads of all the M data blocks have been mirrored and striped into at least a portion of the N nodes.
-
Specification