System and method of using in-memory replicated object to support file services wherein file server converts request to block I/O command of file handle, replicating said block I/O command across plural distributed storage module and performing said block I/O command by local storage module
First Claim
1. A method of storing persistent file handles in a storage system comprising a plurality of computing devices, comprising:
- receiving, at a server, a request to open a file, a copy of the file being stored on each of a plurality of storage devices each connected to or housed in at least one of the plurality of computing devices, wherein the server is running in a virtual computing instance that is running on a first computing device of the plurality of computing devices;
generating, by the server, a request to write a persistent file handle corresponding to the file to a file system stored on the plurality of computing devices;
sending the request from the server to a file server running on the first computing device;
translating, by the file server, the request to a block input/output (I/O) command directed to an in-memory object, the in-memory object representing at least a portion of the file system, a copy of the in-memory object being stored at each of the plurality of computing devices in volatile memory;
sending, by the file server, the block I/O command to a distributed storage module executed by at least one processor of the first computing device;
replicating, by the distributed storage module, the block I/O command;
sending, by the distributed storage module, a copy of the block I/O command to a local storage module on each of the plurality of computing devices, each local storage module executed by at least one processor of the corresponding one of the plurality of computing devices; and
performing, by the local storage module on the first computing device, the block I/O command to write the persistent file handle to a first copy of the in-memory object stored in the volatile memory of the first computing device.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for using in-memory replicated object to support file services. Certain embodiments provide a method of storing persistent file handles in a storage system comprising a plurality of computing devices. The method may include requesting to write a persistent file handle corresponding to a file to a file system stored on the plurality of computing devices. The request may be translated to a block input/output (I/O) command to an in-memory object, the in-memory object representing at least a portion of the file system, a copy of the in-memory object being stored at each of the plurality of computing devices in volatile memory. The persistent file handle may then be written to the copy of the in-memory object stored in the volatile memory of each of the plurality of computing devices.
-
Citations
20 Claims
-
1. A method of storing persistent file handles in a storage system comprising a plurality of computing devices, comprising:
-
receiving, at a server, a request to open a file, a copy of the file being stored on each of a plurality of storage devices each connected to or housed in at least one of the plurality of computing devices, wherein the server is running in a virtual computing instance that is running on a first computing device of the plurality of computing devices; generating, by the server, a request to write a persistent file handle corresponding to the file to a file system stored on the plurality of computing devices; sending the request from the server to a file server running on the first computing device; translating, by the file server, the request to a block input/output (I/O) command directed to an in-memory object, the in-memory object representing at least a portion of the file system, a copy of the in-memory object being stored at each of the plurality of computing devices in volatile memory; sending, by the file server, the block I/O command to a distributed storage module executed by at least one processor of the first computing device; replicating, by the distributed storage module, the block I/O command; sending, by the distributed storage module, a copy of the block I/O command to a local storage module on each of the plurality of computing devices, each local storage module executed by at least one processor of the corresponding one of the plurality of computing devices; and performing, by the local storage module on the first computing device, the block I/O command to write the persistent file handle to a first copy of the in-memory object stored in the volatile memory of the first computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable medium comprising instructions to be executed in a computer system, wherein the instructions when executed in the computer system perform a method of storing persistent file handles in a storage system comprising a plurality of computing devices, the method comprising:
-
receiving, at a server, a request to open a file, a copy of the file being stored on each of a plurality of storage devices each connected to or housed in at least one of the plurality of computing devices, wherein the server is running in a virtual computing instance that is running on a first computing device of the plurality of computing devices; generating, by the server, a request to write a persistent file handle corresponding to the file to a file system stored on the plurality of computing devices; sending the request from the server to a file server running on the first computing device; translating, by the file server, the request to a block input/output (I/O) command directed to an in-memory object, the in-memory object representing at least a portion of the file system, a copy of the in-memory object being stored at each of the plurality of computing devices in volatile memory; sending, by the file server, the block I/O command to a distributed storage module executed by at least one processor of the first computing device; replicating, by the distributed storage module, the block I/O command; sending, by the distributed storage module, a copy of the block I/O command to a local storage module on each of the plurality of computing devices, each local storage module executed by at least one processor of the corresponding one of the plurality of computing devices; and performing, by the local storage module on the first computing device, the block I/O command to write the persistent file handle to a first copy of the in-memory object stored in the volatile memory of the first computing device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer system, wherein system software for the computer system is programmed to execute a method of storing persistent file handles in a storage system comprising a plurality of computing devices, the method comprising:
-
receiving, at a server, a request to open a file, a copy of the file being stored on each of a plurality of storage devices each connected to or housed in at least one of the plurality of computing devices, wherein the server is running in a virtual computing instance that is running on a first computing device of the plurality of computing devices; generating, by the server, a request to write a persistent file handle corresponding to the file to a file system stored on the plurality of computing devices; sending the request from the server to a file server running on the first computing device; translating, by the file server, the request to a block input/output (I/O) command directed to an in-memory object, the in-memory object representing at least a portion of the file system, a copy of the in-memory object being stored at each of the plurality of computing devices in volatile memory; sending, by the file server, the block I/O command to a distributed storage module executed by at least one processor of the first computing device; replicating, by the distributed storage module, the block I/O command; sending, by the distributed storage module, a copy of the block I/O command to a local storage module on each of the plurality of computing devices, each local storage module executed by at least one processor of the corresponding one of the plurality of computing devices; and performing, by the local storage module on the first computing device, the block I/O command to write the persistent file handle to a first copy of the in-memory object stored in the volatile memory of the first computing device. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification