Performing I/O quiesce and drain operations in multi-node distributed systems
First Claim
1. A method comprising:
- receiving a message, whereinthe message indicates a request for an operation to be performed by a first node,the operation comprises a quiesce portion and a drain portion,a plurality of nodes comprises the first node and a second node,the first node is configured to receive one or more first input/output (I/O) requests from a first application,the first node is configured to receive one or more second I/O requests from the second node, andthe first node is configured to issue the one or more first I/O requests and the one or more second I/O requests to one or more storage devices;
in response to receipt of the message, performing the quiesce portion of the operation on the first node, whereinthe quiesce portion of the operation comprises preventing the first node from processing additional first I/O requests from the first application, andthe drain portion of the operation comprises causing the first node to process additional second I/O requests from the second node;
determining whether the quiesce portion of the operation is completed; and
in response to determining that the quiesce portion of the operation is completed,performing the drain portion of the operation, andsending an indication of completion of the drain portion of the operation to a control node, whereinthe control node is configured to receive indications of completion from each of the plurality of nodes.
7 Assignments
0 Petitions
Accused Products
Abstract
Various systems and methods for performing Input/Output (I/O) quiesce and drain operations in multi-node distributed storage systems are disclosed. For example, one method involves receiving a message. The message indicates a request for a operation to be performed by a node, where the node can receive I/O requests from an application, as well as remote I/O requests from another node. The node can issue the I/O requests and the remote I/O requests to the one or more storage devices. In response to receipt of the message, the method performs a first portion of a operation on the node. The first portion of the operation includes the node not processing any additional locally generated I/O requests and processing additional remote I/O requests.
-
Citations
21 Claims
-
1. A method comprising:
-
receiving a message, wherein the message indicates a request for an operation to be performed by a first node, the operation comprises a quiesce portion and a drain portion, a plurality of nodes comprises the first node and a second node, the first node is configured to receive one or more first input/output (I/O) requests from a first application, the first node is configured to receive one or more second I/O requests from the second node, and the first node is configured to issue the one or more first I/O requests and the one or more second I/O requests to one or more storage devices; in response to receipt of the message, performing the quiesce portion of the operation on the first node, wherein the quiesce portion of the operation comprises preventing the first node from processing additional first I/O requests from the first application, and the drain portion of the operation comprises causing the first node to process additional second I/O requests from the second node; determining whether the quiesce portion of the operation is completed; and in response to determining that the quiesce portion of the operation is completed, performing the drain portion of the operation, and sending an indication of completion of the drain portion of the operation to a control node, wherein the control node is configured to receive indications of completion from each of the plurality of nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
one or more processors, a control module of a first node, wherein the control module of the first node is configured to receive a message, wherein the message indicates a request for an operation to be performed by the first node, the operation comprises a quiesce portion and a drain portion, a plurality of nodes comprises the first node and a second node, the first node is configured to receive one or more first input/output (I/O) requests from a first application, the first node is configured to receive one or more second I/O requests from the second node, and the first node is configured to issue the one or more first I/O requests and the second I/O requests to one or more storage devices, in response to receipt of the message, perform the quiesce portion of the operation on the first node, wherein the quiesce portion of the operation comprises preventing the first node from processing additional first I/O requests from the first application, and the drain portion of the operation comprises causing the first node to process additional second I/O requests from the second node; determine whether the quiesce portion of the operation is completed; and in response to determining that the quiesce portion of the operation is completed, perform the drain portion of the operation, and send an indication of completion of the drain portion of the operation to a control node, wherein
the control node is configured to receive indications of completion from each of the plurality of nodes; andthe control module of the first node is configured to be executed using the one or more processors. - View Dependent Claims (15, 16, 17)
-
-
18. A computer program product comprising:
-
a plurality of instructions, comprising a first set of instructions, executable on a computer system, configured to receive a message, wherein the message indicates a request for an operation to be performed by a first node, the operation comprises a quiesce portion and a drain portion; a plurality of nodes comprises the first node and a second node, the first node is configured to receive one or more first input/output (I/O) requests from a first application, the first node is configured to receive one or more second I/O requests from the second node, and the first node is configured to issue the one or more first I/O requests and the second I/O requests to one or more storage devices, a second set of instructions, executable on the computer system, configured to perform the quiesce portion of the operation on the first node, in response to receipt of the message, wherein the quiesce portion of the operation comprises preventing the first node from processing additional first I/O requests from the first application, and the drain portion of the operation further comprises causing the first node to process additional second I/O requests from the second node, a third set of instructions, executable on the computer system, configured to determine whether the quiesce portion of the operation is completed, and a fourth set of instructions, executable of the computer system, configured to perform the drain portion of the operation in response to determining that the quiesce portion of the operation is completed, and send an indication of completion of the drain portion of the operation to a control node, wherein the control node is configured to receive indications of completion from each of the plurality of nodes; and a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium. - View Dependent Claims (19, 20, 21)
-
Specification