Window-based resource allocation in data storage systems
AssigneeEMC IP Holding Company LLC
InventorsPhilippe Armangau, Michael Scheer, Ahsan Rashid, Rohit K. Chawla, Feng Zhang
Life of this patent
Estimating the term…
Abstract
A technique for managing block allocation in data storage systems involve providing multiple ranges of contiguous logical addresses (logical windows) in a logical address space of a file and allocating contiguous ranges of physical addresses (physical windows) in a file system to respective logical windows in response to requests to write data to logical addresses within the logical windows. When allocating blocks from one or more streams, each logical window to which writes are directed is mapped to a respective physical window, and each logical address in the logical window is mapped to a physical address in the physical window.
Claims20
A method of managing block allocation in data storage systems, the method comprising:
- providing multiple logical windows in a logical address space of a file stored in a file system, each logical window being a contiguous range of logical addresses, the logical address space of the file providing a monotonic range of logical offsets into the file from a perspective of a host application;
- receiving a first write request specifying data to be written to the file at a first logical address, the first logical address being within a first logical window in the logical address space of the file;
- in response to the first write request, allocating a first physical window to the first logical window for exclusive use by the first logical window, the first physical window being a first range of contiguous blocks in a physical address space of the file system;
- receiving a second write request specifying data to be written to the file at a second logical address, the second logical address being within a second logical window in the logical address space of the file;
- in response to the second write request, allocating a second physical window to the second logical window for exclusive use by the second logical window, the second physical window being a second range of contiguous blocks in the physical address space of the file system,
- wherein the file system includes a data subspace divided into windows of uniform size, each window including a predetermined number of blocks, wherein each window has a window number that indicates an ordinal position of the window within the physical address space of the file system, and
- wherein the file system includes an indirect block, the indirect block having multiple block pointers, wherein the first logical window is formed from a first contiguous range of block pointers in the indirect block, and wherein the second logical window is formed from a second contiguous range of block pointers in the indirect block.
A data storage system configured to manage block allocation, the data storage system comprising:
- a storage device;
- and
- a storage processor including memory and controlling circuitry, the controlling circuitry being constructed and arranged to:
- provide multiple logical windows in a logical address space of a file stored in a file system, each logical window being a contiguous range of logical addresses, the logical address space of the file providing a monotonic range of logical offsets into the file from a perspective of a host application;
- receive a first write request specifying data to be written to the file at a first logical address, the first logical address being within a first logical window in the logical address space of the file;
- in response to the first write request, allocate a first physical window to the first logical window for exclusive use by the first logical window, the first physical window being a first range of contiguous blocks in a physical address space of the file system;
- receive a second write request specifying data to be written to the file at a second logical address, the second logical address being within a second logical window in the logical address space of the file;
- in response to the second write request, allocate a second physical window to the second logical window for exclusive use by the second logical window, the second physical window being a second range of contiguous blocks in the physical address space of the file system,
- wherein the file system includes a data subspace divided into windows of uniform size, each window including a predetermined number of blocks,
- wherein each window has a window number that indicates an ordinal position of the window within the physical address space of the file system, and
- wherein the file system includes an indirect block, the indirect block having multiple block pointers, wherein the first logical window is formed from a first contiguous range of block pointers in the indirect block, and wherein the second logical window is formed from a second contiguous range of block pointers in the indirect block.
A computer program product comprising a non-transitory, computer-readable storage medium which stores executable code, which when executed by a data storage system, causes the data storage system to perform a method of managing block allocation in data storage systems, the method comprising:
- providing multiple logical windows in a logical address space of a file stored in a file system, each logical window being a contiguous range of logical addresses, the logical address space of the file providing a range of logical offsets into the file from a perspective of a host application;
- receiving a first write request containing data to be written to the file at a first logical address, the first logical address being within a first logical window in the logical address space of the file;
- in response to the first write request, allocating a first physical window to the first logical window for exclusive use by the first logical window, the first physical window being a first range of contiguous blocks in a physical address space of the file system;
- receiving a second write request containing data to be written to the file at a second logical address, the second logical address being within a second logical window in the logical address space of the file;
- in response to the second write request, allocating a second physical window to the second logical window for exclusive use by the second logical window, the second physical window being a second range of contiguous blocks in the physical address space of the file system,
- wherein the file system includes a data subspace divided into windows of uniform size, each window including a predetermined number of blocks,
- wherein each window has a window number that indicates an ordinal position of the window within the physical address space of the file system, and
- wherein the file system includes an indirect block, the indirect block having multiple block pointers, wherein the first logical window is formed from a first contiguous range of block pointers in the indirect block, and wherein the second logical window is formed from a second contiguous range of block pointers in the indirect block.
Dependencies are inferred from the claim text.