Providing transparent failover in a file system
First Claim
1. A computer-implemented method for capturing file system state information to facilitate resuming connections, the method comprising:
- receiving, from a first client, a request to access a remote resource stored on a server;
determining an identifier that identifies a client session related to the request;
creating a resume record, wherein the resume record is searchable by the identifier and wherein the resume record associates state information created by operations requested by the first client with the identifier;
receiving a file operation from the first client, wherein the file operation requests access to a file accessible through the server;
storing resume state information in the resume record, wherein the resume state information provides information to resume the received file operation if the first client loses the connection with the server;
upon the first client losing the connection with the server, loading, at a failover server, the resume record to enable the first client to connect to the failover server and continue the file operation, wherein access to the remote resource is restricted for a period of time to prevent a second client from interacting with the remote resource in a manner that conflicts with the first client establishing a connection to the failover server;
performing the requested file operation;
updating the resume state information in the resume record based on an outcome of the file operation; and
sending a response to the first client that indicates the outcome of the requested file operation.
2 Assignments
0 Petitions
Accused Products
Abstract
A connection state system is described herein that allows a client to resume a connection with a server or a different replacement server by remotely storing client state information in association with a resume key. The system provides a resume key filter operating at the server that facilitates the storing of volatile server state information. The state information can include information such as oplocks, leases granted to a client, and in-flight operations on a file handle. The resume key filter driver sits above the file system, which allows multiple file access protocols to use the filter. Upon a failover event, such as a server going down or losing connectivity to a client, the system can bring up another server or the same server and reestablish state for file handles held by various clients using the resume key filter.
-
Citations
20 Claims
-
1. A computer-implemented method for capturing file system state information to facilitate resuming connections, the method comprising:
-
receiving, from a first client, a request to access a remote resource stored on a server; determining an identifier that identifies a client session related to the request; creating a resume record, wherein the resume record is searchable by the identifier and wherein the resume record associates state information created by operations requested by the first client with the identifier; receiving a file operation from the first client, wherein the file operation requests access to a file accessible through the server; storing resume state information in the resume record, wherein the resume state information provides information to resume the received file operation if the first client loses the connection with the server; upon the first client losing the connection with the server, loading, at a failover server, the resume record to enable the first client to connect to the failover server and continue the file operation, wherein access to the remote resource is restricted for a period of time to prevent a second client from interacting with the remote resource in a manner that conflicts with the first client establishing a connection to the failover server; performing the requested file operation; updating the resume state information in the resume record based on an outcome of the file operation; and sending a response to the first client that indicates the outcome of the requested file operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer system for providing transparent failover for clients in a file system, the system comprising:
a processor and memory configured to execute software instructions embodied within the following components; a state collection component that creates a state record for each file handle and collects state information as a first client requests operations using the file handle; a state storing component that stores collected state information in association with a session identifier provided by the first client; a state data store that persistently stores file system state information that a resuming server uses to recreate state information stored by a failing server; a resume detection component that detects a condition that makes a failing server unavailable and informs a resuming server to act in the failing server'"'"'s place; a state retrieval component that retrieves stored state information from a location accessible to the resuming server, wherein the state information allows the resuming server to resume any previously requested file system operations that were interrupted by the detected failure condition; a blackout enforcement component that enforces a blackout period on access to one or more files or other resources to prevent a second client from interfering with the one or more files or other resources in a manner that conflicts with the first client establishing a connection to the resuming server; and a state restoration component that loads the retrieved state information into the resuming server so that the resuming server can continue operations previously requested by the first client. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
18. A computer-readable storage medium encoding computer executable instructions which when executed by a processor performs a method, the method comprising:
-
receiving, from a first client, a request to access a remote resource stored on a server; determining an identifier that identifies a client session related to the request; creating a resume record, wherein the resume record is searchable by the identifier and wherein the resume record associates state information created by operations requested by the first client with the identifier; receiving a file operation from the first client, wherein the file operation requests access to a file accessible through the server; storing resume state information in the resume record, wherein the resume state information provides information to resume the received file operation if the first client loses the connection with the server; upon the first client losing the connection with the server, loading, at a failover server, the resume record to enable the first client to connect to the failover server and continue the file operation, wherein access to the remote resource is restricted for a period of time to prevent a second client from interacting with the remote resource in a manner that conflicts with the first client establishing a connection to the failover server. - View Dependent Claims (19, 20)
-
Specification