Patent ID: 8407265

Claim:
A computer-implemented method of operating a file server, the file server including data storage and a data processor, the data storage storing a logical volume and a file system built on the logical volume, the file system including multiple cylinder groups, each of the cylinder groups including file system blocks, the file system blocks including allocated blocks and free blocks of the data storage, the logical volume including slices of the data storage, and each slice of the data storage storing at least one of the cylinder groups, the method comprising the data processor executing computer instructions stored on a non-transitory computer-readable storage medium to perform the steps of: (a) maintaining, in the file server, a hierarchical map of the free blocks of the data storage in the file system, the hierarchical map having an upper level including a summary of the free blocks of the data storage in groups of the slices, the hierarchical map having at least one intermediate level including a summary of the free blocks of the data storage in sub-groups of the slices, and the hierarchical map having a bottom level including a summary of the free blocks of the data storage in each of the slices of the data storage; and (b) searching the hierarchical map in a top-down fashion to find a cylinder group of the file system including a free block of the data storage in the file system; and (c) linking the free block of the data storage from the cylinder group found in step (b) to a file.