Patent ID: 7434091

Claim:
A volume server comprising: one or more processing units; and a storage medium storing program instructions executable by the one or more processing units to implement: virtualization functionality configured to aggregate storage within one or more block devices into a logical volume accessible to a volume client; and a layout table, wherein the layout table includes a plurality of entries, wherein each entry of the plurality of entries includes: an identification of an extent on a block device of the one or more block devices; and a virtual address range indicative of a stripe of the logical volume to which the extent is mapped; wherein a first virtual address range of a first entry of the plurality of entries overlaps with a second virtual address range of a second entry of the plurality of entries; and wherein an overlap of the first virtual address range and the second virtual address range is indicative of a mirroring of at least a portion of the first virtual address range; wherein the virtualization functionality is configured to: access the layout table to obtain one or more block device addresses corresponding to a logical volume virtual address of a storage operation requested by the volume client; select an error entry from the layout table in response to a detection of a write error at a target extent; verify that a combined address range of one or more valid non-error entries in the layout table fully overlaps the target extent; verify that a combined address range of one or more valid non-error entries in the layout table fully overlaps the target extent; disallow I/O operations at the target extent; and allow I/O operations to be performed on extents of the logical volume other than the target extent.