Patent ID: 8386741

Claim:
A method, comprising: defining at least two types of regions for block allocation in a cluster file system, the defined regions comprise a write affinity region and a wide striping region, wherein each server node in the cluster has a first storage portion associated with the write affinity region of the file system for storing data blocks local to a server node and a second storage portion associated with the wide striping region of the file system for storing data blocks from other server nodes in the cluster; maintaining an allocation map for all data storage space in the cluster file system, the allocation map having two views, a first view showing the storage space divided into wide striped regions and a second logical view showing the storage space divided into write affinity regions; for allocating storage blocks for a write transaction, a node acquiring ownership of a write affinity region and a wide striping region, and the node writing a first copy of data to a free block from the acquired write affinity region and a second copy of data to a free block in the acquired wide striping region; and converting at least one block from one of the defined regions to another of the defined regions to support the write transaction in response to all of the regions of one of the defined types running out of available blocks, wherein the conversion is selected from the group consisting of: converting the write affinity region to the wide striped region, and converting the wide striped region to the write affinity region.