1. A method of allocating storage space in a data processing system, the method comprising: deploying a plurality of storage devices for data storage in the system; respectively characterizing each of the plurality of storage devices according to one of a plurality of storage classes; associating a respective region descriptor with each of the plurality of storage devices, wherein each region descriptor contains a number of fields including a storage class identifier field which specifies an identifier of the corresponding storage class associated with the corresponding storage device; and allocating in an offset array a plurality of region index descriptor entries and a plurality of cylinder index descriptor entries which are different from the region index descriptor entries, wherein (i) each of the plurality of region index descriptor entries references a respective one of a plurality of region descriptors, (ii) each of the plurality of cylinder index descriptor entries references a respective one of a plurality of cylinder index descriptors, and (iii) the number of region index descriptor entries is less than the number of cylinder index descriptor entries; wherein each of the plurality of region descriptors is associated with a respective one of the plurality of storage classes and contains a number of fields including (i) a storage class identifier which specifies an identifier of the corresponding storage class associated with the corresponding device, (ii) a first cylinder index descriptor field which specifies an index into an area containing an offset to a first cylinder belonging to the corresponding storage class, and (iii) a cylinder index descriptor count field which specifies a number of cylinder index descriptors currently belonging to the corresponding storage class.