Method and apparatus for dynamic striping
First Claim
Patent Images
1. A method for dynamic striping, comprising:
- receiving a request to write a file into a storage pool, wherein the file comprises a first data block, a second data block, and a first indirect block;
determining a physical disk location in the storage pool to store the first data block using a first dynamic striping policy, wherein the first dynamic striping policy comprises one selected from a group consisting of a dynamic striping policy based on physical disk speed, a dynamic striping policy based on free space available on physical disks, a dynamic striping policy based on load on physical disks, and a round robin policy;
storing the first data block using the first dynamic striping policy at the physical disk location in the storage pool;
storing the second data block in the storage pool using the first dynamic striping policy;
selecting a second dynamic striping policy, wherein the second dynamic striping policy comprises one selected from the group consisting of the dynamic striping policy based on physical disk speed, the dynamic striping policy based on free space available on physical disks, the dynamic striping policy based on load on physical disks, and the round robin policy, and wherein the first dynamic striping policy is distinct from the second dynamic striping policy; and
storing the first indirect block using the second dynamic stripping policy, wherein the indirect block includes a first block pointer referencing the first data block and a second block pointer referencing the second data block.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for dynamic striping, involving receiving a request to write a data block into a storage pool, determining a physical disk location in the storage pool to store the data block using a dynamic striping policy, storing the data block at the physical disk location, and storing a first indirect block in the storage pool, wherein the first indirect block comprises the data block location and the data block checksum.
-
Citations
20 Claims
-
1. A method for dynamic striping, comprising:
-
receiving a request to write a file into a storage pool, wherein the file comprises a first data block, a second data block, and a first indirect block; determining a physical disk location in the storage pool to store the first data block using a first dynamic striping policy, wherein the first dynamic striping policy comprises one selected from a group consisting of a dynamic striping policy based on physical disk speed, a dynamic striping policy based on free space available on physical disks, a dynamic striping policy based on load on physical disks, and a round robin policy; storing the first data block using the first dynamic striping policy at the physical disk location in the storage pool; storing the second data block in the storage pool using the first dynamic striping policy; selecting a second dynamic striping policy, wherein the second dynamic striping policy comprises one selected from the group consisting of the dynamic striping policy based on physical disk speed, the dynamic striping policy based on free space available on physical disks, the dynamic striping policy based on load on physical disks, and the round robin policy, and wherein the first dynamic striping policy is distinct from the second dynamic striping policy; and storing the first indirect block using the second dynamic stripping policy, wherein the indirect block includes a first block pointer referencing the first data block and a second block pointer referencing the second data block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for storing a first data block, comprising:
a storage pool comprising a file, wherein the file comprises; a first data block and a second data block; a first indirect block; and a parent block referencing the first indirect block, wherein the first indirect block comprises a first block pointer that references the first data block and a second block pointer that references the second data block, wherein the first block pointer comprises the first data block location and the first data block checksum and the second block pointer comprises the second data block location and the second data block checksum; and a storage pool allocator configured to; store the first data block and the second data block in the storage pool using a first dynamic striping policy, wherein the first dynamic striping policy comprises one selected from a group consisting of a dynamic string policy based on physical disk speed, a dynamic striping policy based on free space available on physical disks, a dynamic striping policy based on load on physical disks, and a round robin policy, select a second dynamic striping policy after storing the first and second data block, wherein the second dynamic striping policy comprises one selected from the group consisting of the dynamic striping policy based on physical disk speed, the dynamic striping policy based on free space available on physical disks, the dynamic striping policy based on load on physical disks, and the round robin policy, and wherein the first dynamic striping policy is distinct from the second dynamic striping policy, and store the first indirect block and the parent block in the storage pool using the second dynamic striping policy. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
19. A computer system for dynamic striping, comprising:
-
a processor; a memory; a storage pool; and software instructions stored in the memory for enabling the computer system under control of the processor, to; receive a request to write a file into the storage pool, wherein the file comprises a first data block, a second data block, and a first indirect block; determine a physical disk location in the storage pool to store the first data block using a first dynamic striping policy, wherein the dynamic striping policy comprises one selected from a group consisting of a dynamic striping policy based on physical disk speed, a dynamic striping policy based on free space available on physical disks, a dynamic striping policy based on load on physical disks, and a round robin policy; store the first data block using the first dynamic striping policy at the physical disk location in the storage pool; store the second data block in the storage pool using the first dynamic striping policy; select a second dynamic striping policy, wherein the second dynamic striping policy comprises one selected from the group consisting of the dynamic striping policy based on physical disk speed, the dynamic striping policy based on free space available on physical disks, the dynamic striping policy based on load on physical disks, and the round robin policy, and wherein the first dynamic striping policy is distinct from the second dynamic striping policy; and store the first indirect block using the second dynamic striping policy, wherein the indirect block includes a first block pointer referencing the first data block and a second block pointer referencing the second data block.
-
-
20. A network system having a plurality of nodes, comprising:
a storage pool comprising a file, wherein the file comprises; a first data block and a second data block; a first indirect block; and a parent block referencing the first indirect block, wherein the first indirect block comprises a first block pointer that references the first data block and a second block pointer that references the second data block, wherein the first block pointer comprises the first data block location and the first data block checksum and the second block pointer comprises the second data block location and the second data block checksum; and a storage pool allocator configured to; store the first data block and the second data block in the storage pool using a first dynamic striping policy, wherein the first dynamic striping policy comprises one selected from a group consisting of a dynamic striping policy based on physical disk speed, a dynamic striping policy based on free space available on physical disks, a dynamic striping policy based on load on physical disks, and a round robin policy, store the first indirect block and the parent block using a second dynamic striping policy, wherein the second dynamic striping policy comprises one selected from the group consisting of the dynamic striping policy based on physical disk speed, the dynamic striping policy based on free space available on physical disks, the dynamic striping policy based on load on physical disks, and the round robin policy, and wherein the first dynamic striping policy is distinct from the second dynamic striping policy, wherein the storage pool is located on any one of the plurality of nodes, wherein the storage pool allocator is located on any one of the plurality of nodes.
Specification