Seamless takeover of a stateful protocol session in a virtual machine environment
First Claim
1. A method comprising:
- operating a first virtual server in an active role in a host processing system to serve a client, by using a stateful protocol between the first virtual server and the client;
associating a second virtual server in a passive role with the first virtual server;
in response to a predetermined event, causing the second virtual server to take over the active role from the first virtual server, while preserving state for a pending client request sent to the first virtual server in the stateful protocol; and
sharing state between the first and second virtual servers prior to the predetermined event, by sharing a designated region of memory between the first and second virtual servers, wherein prior to the predetermined event, the first virtual server has read-write permission to access the region of memory and the second virtual server has read-only permission to access the region of memory.
1 Assignment
0 Petitions
Accused Products
Abstract
The disclosed technique uses virtual machines in solving a problem of persistent state for storage protocols. The technique provides for seamless, persistent, storage protocol session state management on a server, for higher availability. A first virtual server is operated in an active role in a host system to serve a client, by using a stateful protocol between the first virtual server and the client. A second, substantially identical virtual server is maintained in a passive role. In response to a predetermined event, the second virtual server takes over for the first virtual server, while preserving state for a pending client request sent to the first virtual server in the stateful protocol. The method can further include causing the second virtual server to respond to the request before a timeout which is specific to the stateful protocol can occur.
-
Citations
25 Claims
-
1. A method comprising:
-
operating a first virtual server in an active role in a host processing system to serve a client, by using a stateful protocol between the first virtual server and the client; associating a second virtual server in a passive role with the first virtual server; in response to a predetermined event, causing the second virtual server to take over the active role from the first virtual server, while preserving state for a pending client request sent to the first virtual server in the stateful protocol; and sharing state between the first and second virtual servers prior to the predetermined event, by sharing a designated region of memory between the first and second virtual servers, wherein prior to the predetermined event, the first virtual server has read-write permission to access the region of memory and the second virtual server has read-only permission to access the region of memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
operating a first virtual machine in a host processing system as an active virtual storage server; maintaining per-client session state for pending, received client requests, which conform to a stateful network storage protocol, in a designated region of a memory; initializing a second virtual machine in the host processing system to be a passive virtual storage server partnered with the first virtual machine; sharing said state for pending, received client requests between the first and second virtual machines, by sharing the designated region of the memory between the first and second virtual machines; in response to a failure event associated with the first virtual machine, causing the second virtual machine to take over for the first virtual machine as active virtual storage server, without losing state for a pending client request sent to the first virtual machine in the stateful network storage protocol, including modifying a permission of the second virtual machine to access the designated region of the memory; and causing the second virtual machine, acting as active virtual storage server, to respond to the pending client request before a response timeout which is specific to the stateful protocol can occur. - View Dependent Claims (9, 10, 11)
-
-
12. A system comprising:
-
a physical host processing system; a first virtual machine which operates in the physical host processing system as an active server to serve a client over a network, by using a stateful protocol between the first virtual machine and the client; a second virtual machine configured as a passive partner of the first virtual machine, wherein the second virtual machine is pre-initialized and maintained in a state that passively mirrors a state of the active server, the second virtual machine configured to respond to a predetermined event by taking over as the active server for the first virtual machine while preserving state for a pending client request sent to the first virtual machine in the stateful protocol; and a memory that includes a designated region shared by the first virtual machine and the second virtual machine, wherein prior to the predetermined event, the first virtual machine has read-write permission to access the region of memory and the second virtual machine has read-only permission to access the region of memory. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A storage server comprising:
-
a network interface through which to receive client requests over a network, the client requests conforming to a stateful network storage protocol; a non-volatile mass storage facility to store data in response to one or more of the client requests; a processor, coupled to the network interface and the non-volatile mass storage facility; a memory; and a storage device coupled to the processor and storing code which, when executed, causes operations to be performed in the storage server, the operations including operating a first virtual server in the storage server in an active role to serve a client, by using the stateful network storage protocol between the first virtual server and the client; associating a second virtual server in a passive role with the first virtual server; and in response to a predetermined event, causing the second virtual server to take over the active role from the first virtual server, without losing state for a pending client request sent to the first virtual server in the stateful network storage protocol, wherein the operations further comprise sharing state between the first and second virtual servers prior to the predetermined event, by sharing a designated region of the memory between the first and second virtual servers, wherein prior to the predetermined event, the first virtual server has read-write permission to access the region of memory and the second virtual server has read-only permission to access the region of memory. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification