Extension of write anywhere file system layout
First Claim
1. A data storage system, comprising:
- a processor configured to execute a storage operating system, the storage operating system, when executed, configured to implement a physical volume including a plurality of data storage devices, wherein the physical volume has a physical address space;
one or more logical volumes overlaid onto the physical volume, wherein each logical volume has a separate logical volume address space, and wherein each block within the logical volume is identified with a logical volume address associated with the separate logical volume address space; and
a logical volume data container of the logical volume, the logical volume data container stored in the physical volume and having physical blocks associated with the logical volume, wherein a pointer to a first block within the logical volume data container includes a physical address of the first block within the physical address space, and wherein the logical volume address, associated with the first block, is configured to store the logical volume data container.
0 Assignments
0 Petitions
Accused Products
Abstract
A file system layout apportions an underlying physical volume into one or more virtual volumes (vvols) of a storage system. The underlying physical volume is an aggregate comprising one or more groups of disks, such as RAID groups, of the storage system. The aggregate has its own physical volume block number (pvbn) space and maintains metadata, such as block allocation structures, within that pvbn space. Each vvol has its own virtual volume block number (vvbn) space and maintains metadata, such as block allocation structures, within that vvbn space. Notably, the block allocation structures of a vvol are sized to the vvol, and not to the underlying aggregate, to thereby allow operations that manage data served by the storage system (e.g., snapshot operations) to efficiently work over the vvols.
-
Citations
15 Claims
-
1. A data storage system, comprising:
-
a processor configured to execute a storage operating system, the storage operating system, when executed, configured to implement a physical volume including a plurality of data storage devices, wherein the physical volume has a physical address space; one or more logical volumes overlaid onto the physical volume, wherein each logical volume has a separate logical volume address space, and wherein each block within the logical volume is identified with a logical volume address associated with the separate logical volume address space; and a logical volume data container of the logical volume, the logical volume data container stored in the physical volume and having physical blocks associated with the logical volume, wherein a pointer to a first block within the logical volume data container includes a physical address of the first block within the physical address space, and wherein the logical volume address, associated with the first block, is configured to store the logical volume data container. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for operating a data storage system having a processor, comprising:
-
organizing a physical volume including a plurality of storage blocks on a plurality of data storage devices, the plurality of storage blocks forming a physical address space; storing a plurality of data containers within the physical volume, each data container embodying a logical volume overlaid onto the physical volume, wherein the logical volume has a logical address space; implementing a file system on the logical volumes; storing a first mapping data structure that provides a mapping between a physical address in the physical address space and a logical address in the logical address space of the logical volume; storing a second mapping structure that provides a mapping between the logical address in the logical address space of the logical volume and the physical address of the physical address space of the physical volume; and storing a file having a buffer tree on the file system, wherein the buffer tree - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer readable storage medium containing executable program instructions for execution by a processor comprising:
-
program instructions that organize a set of physical addresses into a physical address space of a physical volume, each of the physical addresses associated with a particular block on one or more data storage devices organized to provide the physical address space; program instructions that overlay a first logical volume onto the physical volume, wherein the first logical volume has a first logical volume address space and wherein the physical volume stores a first data container that stores each block associated with the first logical volume; program instructions that overlay a second logical volume onto the physical volume, wherein the second logical volume has a second logical address space and wherein the physical volume stores a second data container that stores each block associated with the second logical volume; and program instructions that increase a size of the first logical volume, wherein free blocks within the physical volume are utilized to increase the size of the first logical volume, wherein each logical volume includes a set of block allocation structures stored within the logical volume address space of the logical volume, and wherein the block allocation structures include an active map, a space map, and a summary map.
-
Specification