Patent ID: 8533201

Claim:
A computer-implemented method comprising: organizing a plurality of storage devices into an aggregate, where the aggregate is a physical volume organized into a global storage space, and a data block is resident on one of the storage devices of the aggregate; providing a plurality of virtual volumes within the aggregate; allocating the data block to a virtual volume (vvol) of the plurality of virtual volumes, the vvol having a virtual volume identification (vvid) selecting a physical volume block number (pvbn) for the data block from a pvbn space of the aggregate; selecting a virtual volume block number (vvbn) for the data block from a vvbn space of the vvol to allocate the data block to the vvol; adjusting a first block allocation bitmap structure of the aggregate to record the selected pvbn; adjusting a second block allocation bitmap structure of the vvol to record the selected vvbn; inserting both the selected pvbn and the selected vvbn in a parent block of a buffer tree as block pointers to point to the allocated data block on the storage device; maintaining an existing data block after writing to the allocated data block a change directed to data of the existing data block; and inserting the vvid and the selected vvbn into an owner map of the aggregate at an entry defined by the selected pvbn, wherein the selected pvbn is inserted into a container map of the vvol.