Patent ID: 8856481

Claim:
A storage controller for use in a data processing system, comprising a plurality of high-speed communication interfaces coupled together by a set of high-speed configurable data paths, the high-speed communications interfaces including (1) at least one host-facing interface coupled to one or more host computers, and (2) at least one storage-facing interface coupled to one or more data storage devices including physical data storage resources, the storage controller further including processing circuitry for implementing a storage virtualization function by which the storage controller presents storage volumes to the hosts using the physical data storage resources of the data storage devices, the processing circuitry being further operative to effect host provisioning of storage by: receiving a first storage allocation request message from one of the host computers, the first storage allocation request message representing a request by the one host computer that data storage resources of a necessary size and a necessary class be allocated to the one host computer, the necessary class being one of a plurality of classes of a predetermined class-of-storage scheme by which storage resources in the data processing system are classified; and in response to the first storage allocation request message: (A) generate a second storage allocation request message representing a request by the storage controller that data storage resources of the necessary size and the necessary class be allocated to the storage controller; (B) transmit the second storage allocation request message to one of the data storage devices which includes available data storage resources and is operative to allocate data storage resources of the necessary size and the necessary class from the available data storage resources to the storage controller in response to the second storage allocation request message; and (C) reflecting the allocation of data storage resources by the one data storage device as a corresponding allocation of virtualized data storage resources of the necessary size and the necessary class presented to the one host computer, and prior to receiving and responding to the first storage allocation request message, providing class-of-storage information about the predetermined class-of-storage scheme to the one host computer by (i) receiving query messages from the one host computer, each query message representing a class-of-storage (CoS) request for the class-of-storage information, and (ii) providing the class-of-storage information to the one host computer in response to the CoS request for use by the host computer in generating the first storage allocation request message.