Patent ID: 7430571

Claim:
A method for performing write-allocation in a storage system, the method comprising: allocating a first block to a virtual volume (vvol) from an aggregate in the storage system, wherein block allocation is performed in parallel on the vvol and the aggregate, where the aggregate is a physical volume formed from one or more groups of storage devices organized into a global storage space, wherein allocating comprises: selecting a physical volume block number (pvbn) for the first block from a pvbn space of the aggregate and a virtual volume block number (vvbn) for the first block from a vvbn space of a vvol, adjusting block allocation bitmap structures of the aggregate to record the selected pvbn and block allocation bitmap structures of the vvol to record the selected vvbn, inserting the selected vvbn and a virtual volume identifier (vvid) of the vvol into an owner map of the aggregate at an entry defined by the selected pvbn; inserting the selected pvbn into a container map of the vvol, and updating an indirect block or inode file parent of the first block with one or more block pointers to the first block, wherein the step of updating comprises: determining whether the vvol is embodied as a hybrid vvol, wherein the hybrid vvol includes the pvbn inserted in the indirect blocks, determining whether the vvol is a hybrid, then inserting the selected pvbn into the indirect block or inode as the block pointer, and determining whether the vvol is a dual vbn hybrid vvol, then inserting both the selected pvbn and the selected vvbn in the indirect block or inode as block pointers, wherein the dual vbn hybrid vvol includes both pvbn inserted in the indirect block; and freeing a second block from the vvol to the aggregate.