A program storage readable by one or more computers, the program storage having media tangibly embodying one or more programs of instructions executable by a computer to perform a method for satisfying a request in a distributed file serving architecture with metadata storage virtualization and direct data access, comprising:
- storing metadata associated with data on a data server in memory at a metadata server;
- establishing a file-based remote direct memory access protocol session with a host and a data server;
- receiving a data request at the metadata server from the host through an operations channel established between the host and the metadata server for providing asynchronous communication initiated only by the host;
- controlling virtualization of the data server file system at the metadata server, wherein the controlling is performed by:
- providing data structures containing information about block files represented by logical files on the data server that forms the directory structure:
- and
- providing block data virtualization metadata comprising a mapping of the file system provided by the data server to a metafile system of the metadata server;
- satisfying the data request under the control of the metadata server, said satisfying including:
- providing from the metadata server to the data server, connection and host target buffer information through a back control channel between the metadata server and the data server using the remote direct memory access protocol;
- processing the received connection and host target buffer information;
- using, by said data server, the processed connection and host target buffer information to directly access memory allocated in the host for the data request to satisfy the data request;
- and
- transferring the data requested by said data request from the data server to the host through said file-based remote direct memory access protocol session.