The invention provides an improved digital data processing system, e.g., storage area network (SAN), of the type having a first digital data processor, e.g., a SAN server, and a second digital data processor, e.g., a SAN client, coupled to one another and to one or more storage units, e.g., disk drives. A volume is stored on one or more of the storage devices, with at least two of its blocks residing at locations that are not contiguous with one another. The improvement is characterized, according to aspects of the invention, by transmission from the first to the second digital data processor of one or more addresses. These can constitute, in total, fewer such addresses than would be provided in a canonical map of the volume and, indeed, can comprise (by way of non-limiting example) a start address for each file and/or a portion of the volume on each storage device where the volume resides. The improvement is further characterized by an interpreter on the second digital data processor that interprets intermediate code (e.g., p-code) or other software to determine physical locations of the blocks that comprise the volume and/or file as a function of the addresses received from the first digital data processor. That software, according to aspects of the invention, embodies a methodology for determining the physical block addresses of a volume and/or file, e.g., from the volume start address(es). It can, according to further aspects of the invention, be transmitted by the first digital data processor to the second digital data processor, though it can be sourced from elsewhere, as well.
A method and system for providing multi-node file system access to files on a single-node storage stack. The method may include sending a data access request from a client system to a server system over a network. The data access request may comprise a request to access data which is stored on one or more storage devices whose access is controlled by the server system. The method may include using a mapping interface to determine a quantity of components in the storage stack. The method may further include using the mapping interface to communicate with the storage stack components to retrieve a physical location of the data on the storage devices and sending the physical location of the data to the client. The method may include the client bypassing the server to access the data on the storage devices at the physical location provided by the mapping interface.