Patent ID: 8726299

Claim:
A computer system comprising: a host ( 110 ) configured to execute a data storage application ( 210 ); one or more storage appliances ( 130 , 140 , 150 , 160 ); and an interface ( 120 ) coupled to the host configured to present an abstract logical storage model to the host for storing data on the one or more storage appliances, wherein the logical storage model identifies a storage server ( 251 ) configured to manage data stored on one or more storage appliances and a logical storage unit (LSU) ( 260 - 290 ) controlled by a single storage server configured to include data, wherein a data path, data transmission protocol, and physical layout of images within the one or more storage appliances are hidden from the data storage application; wherein the ( 110 ) host is configured to identify parameters for an access request including at least the storage server and the LSU; wherein the interface ( 120 ) is configured to: accept a first plugin ( 241 ) coupling a first storage appliance to the interface and accept a second plugin ( 242 ) coupling a second storage appliance to the interface, wherein the first and second storage appliances are configured to store data according to different physical storage models; receive an access request comprising a request to write an image from the host ( 110 ) targeting a portion of the logical storage model, wherein the access request includes parameters identifying the image by at least a byte offset and a byte length and does not include information regarding on which storage appliance the image is to be stored; identify a plugin, a storage server, and a storage appliance associated with the portion of the logical storage model, in response to the access request; and invoke the identified plugin; wherein the identified plugin is configured to: open a connection between the application and the identified storage appliance; and translate the access request into actions that are specific to the identified storage server and the identified storage appliance, wherein translating the access request includes conveying a data package including the identity of the access request and the image; wherein in response to accepting the write request, a contract is formed between the application, identified plugin, and identified storage appliance, such that a subsequent read to the byte offset and byte length will retrieve the image data.