Implementing a hybrid storage node in a distributed storage system
First Claim
1. A method for processing input/output operations (IOPs) in a distributed storage system, the method comprising:
- receiving, by an input/output (TO) module executing on a storage node comprising one or more processing devices and one or more storage devices, a first IOP from a first application;
determining, by the IO module, that (a) the first application is executing on the storage node; and
in response to determining (a), issuing, by the IO module, a first library function call to disk virtualization manager (DVM) executing on the storage node to execute the first IOP;
in response to the first library function call, performing, by the DVM;
executing the first IOP, the first IOP being a read IOP, to obtain payload data;
writing the payload data to a shared memory in kernel space of an operating system executing on the storage node, the DVM and IO module executing in a same process in user space of the operating system and both having access to the shared memory; and
issuing a second library function call to the IO module that does not include the payload data; and
in response to the second library function call, reading, by the IO module, the payload data from the shared memory and returning the payload data to the first application.
1 Assignment
0 Petitions
Accused Products
Abstract
A new snapshot of a storage volume is created by instructing computing nodes to suppress write requests. Once pending write requests from the computing nodes are completed, storage nodes create a new snapshot for the storage volume by allocating a new segment to the new snapshot and finalizes and performs garbage collection with respect to segments allocated to the previous snapshot. The snapshots may be represented by a storage manager in a hierarchy. Deleted snapshots may be flagged as such in the hierarchy and deletion may be implemented only in memory on a storage node, which is then restored from the hierarchy in the event of a crash. A hybrid storage node may perform both computing and storage services. An IO module determines whether IOPs reference a locally-mounted storage device or a remote storage device. The IO module issues a library call for local IOPs using a shared memory in kernel space.
93 Citations
14 Claims
-
1. A method for processing input/output operations (IOPs) in a distributed storage system, the method comprising:
-
receiving, by an input/output (TO) module executing on a storage node comprising one or more processing devices and one or more storage devices, a first IOP from a first application; determining, by the IO module, that (a) the first application is executing on the storage node; and in response to determining (a), issuing, by the IO module, a first library function call to disk virtualization manager (DVM) executing on the storage node to execute the first IOP; in response to the first library function call, performing, by the DVM; executing the first IOP, the first IOP being a read IOP, to obtain payload data; writing the payload data to a shared memory in kernel space of an operating system executing on the storage node, the DVM and IO module executing in a same process in user space of the operating system and both having access to the shared memory; and issuing a second library function call to the IO module that does not include the payload data; and in response to the second library function call, reading, by the IO module, the payload data from the shared memory and returning the payload data to the first application. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising one or more processing devices, one or more memory devices, and one or more storage devices, the one or more memory devices storing executable code effective to cause the one or more processing devices to:
-
receive, by an input/output (TO) module, a first input/output operation (TOP) from a first application; determine, using the IO module, that (a) the first application is executing on the system; and in response to determining (a), issue, by the IO module, a first library function call to disk virtualization manager (DVM) executing on the system to execute the first IOP; in response to the first library function call; execute, by the DVM, the first TOP, the first TOP being a read TOP, to obtain payload data; write, by the DVM, the payload data to a shared memory in kernel space of an operating system executing on the storage node, the DVM and IO module executing in a user space of the operating system and both having access to the shared memory; and issue, by the DVM, a second library function call to the IO module that does not include the payload data; and in response to the second library function call, read, by the IO module, the payload data from the shared memory and return the payload data to the first application. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification