IP Library Granted Patent US 9,170,953
Granted Patent B2
US 9,170,953 · App. 13/481,464 · Granted Oct 27, 2015

System and method for storing data in clusters located remotely from each other

Inventors: Michael L. Kazar (Pittsburgh, PA); John R. Boyles (Cranberry Township, PA)
Assignee: Avere Systems, Inc.
G06F12/0866G06F12/0815H04L67/1097H04L67/2842G06F17/3071G06F2212/264G06F2212/284G06F2212/314G06F2212/463
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,170,953
App. No.
13/481,464
Granted
Oct 27, 2015
Kind
B2
Abstract

A system for storing data includes a plurality of clusters located remotely from each other in which the data is stored. Each cluster has a token server that controls access to the data with only one token server responsible for any piece of data. Each cluster has a plurality of Cache appliances. Each cluster has at least one backend file server in which the data is stored. The system includes a communication network through which the servers and appliances communicate with each other. A Cache Appliance cluster in which data is stored in back-end servers within each of a plurality of clusters located remotely from each other. A method for storing data.

Claims (24)

1. A system for storing data comprising:

a plurality of clusters located remotely from each other in which the data is stored, each cluster having a token server that issues tokens which provide synchronized concurrent controlled access by the clusters to the data shared by the clusters with only one token server responsible for any piece of data, each cluster having a plurality of Cache appliances, each cluster having at least one backend file server in which the data is stored, each cluster includes a configuration module for managing configuration information of the cluster, each Cache appliance includes a token client module which handles obtaining tokens from multiple clusters, each Cache appliance includes an NFS client module which sends calls to a backend file server in any of the clusters in the network, each Cache appliance includes a Cache manager module which executes a request by obtaining tokens from the token server and accessing Cache attributes and Cache data; and

a communication network through which the servers and appliances communicate with each other, one of the plurality of clusters being a remote cluster that performs operations directly on the data of the backend server of a different one of the plurality of clusters whose token server controls access to the data.

2. The system of claim 1 wherein each Cache appliance includes a Cache-to-Cache (C2C) server module that handles requests from Cache managers of other Cache appliances for data stored in a back end server associated with the Cache appliance.

3. The system of claim 2 wherein each Cache appliance includes a CFS module for storing cached data persistently at the Cache appliance.

4. The system of claim 3 wherein each Cache appliance includes an NFS server module which receives incoming NFS requests for a specific exported file system from any cluster.

5. The system of claim 4 wherein each Cache appliance obtains Leased Write Tokens when getting tokens to perform write operations to data stored at a remote cluster's back-end file server.

6. The system of claim 5 wherein upon expiration of a Leased Token's lease due to a network partition or cache appliance node failure, the leased write token is deleted and remote access to the cached data is prevented until the network partition is repaired.

7. The system of claim 5 where the Cache appliance operates in write-through mode.

8. The system of claim 5 where the choice of which type of write tokens to obtain for data stored in a remote cluster is determined by a setting in the configuration module.

9. The system of claim 4 wherein each Cache appliance obtains Reducible Write Tokens when getting tokens to perform write operations to data stored at a remote cluster's back-end file server.

10. The system of claim 9 wherein upon expiration of the lease associated with a reducible write token, due to a network partition or cache appliance node failure, the token is reduced to a read with modified token protecting the modified data.

11. The system of claim 4 wherein each Cache appliance obtains non-leased Persistent Write Tokens when writing data located at back-end file servers of remote clusters, and where the Cache appliance writes the data back asynchronously to the back-end file server from where the data was originally obtained.

12. A Cache Appliance cluster in which data is stored in back-end servers within each of a plurality of clusters located remotely from each other comprising:

one or more Cache appliances;

one or more back-end file servers;

one or more token servers which manage tokens for the cluster's data shared by the clusters, the token server issues tokens which provide synchronized concurrent controlled accesses to the data by the clusters controlled by these token servers and no other token server of any other cluster, each cluster includes a configuration module for managing configuration information of the cluster, each Cache appliance includes a token client module which handles obtaining tokens from multiple clusters, each Cache appliance includes an NFS client module which sends calls to a backend file server in any of the clusters in the network, each Cache appliance includes a Cache manager module which executes a request by obtaining tokens from the token server and accessing Cache attributes and Cache data; and

a configuration database which stores local virtual server definitions, which exports location services to remote clusters, and which associates a local file system export with a remote cluster's export, one of the plurality of clusters being a remote cluster that performs operations directly on the data of the backend server of a different one of the plurality of clusters whose token server controls access to the data.

13. A method for storing data comprising the steps of:

receiving data at a plurality of clusters located remotely from each other, each cluster having a token server that issues tokens which provide synchronized concurrent controlled access by the clusters to the data shared by the clusters with only one token server responsible for any piece of data, each cluster having a plurality of Cache appliances, the servers and appliances communicate with each other through a communication network, each cluster includes a configuration module for managing configuration information of the cluster, each Cache appliance includes a token client module which handles obtaining tokens from multiple clusters, each Cache appliance includes an NFS client module which sends calls to a backend file server in any of the clusters in the network, each Cache appliance includes a Cache manager module which executes a request by obtaining tokens from the token server and accessing Cache attributes and Cache data;

storing the data at one or more backend file servers of each cluster; and

performing operations by one of the plurality of clusters being a remote cluster that performs operations directly on the data of the backend server of a different one of the plurality of clusters whose token server controls access to the data.

14. The method of claim 13 including the step of obtaining tokens from multiple clusters from a token client module of one of the Cache appliances.

15. The method of claim 14 including the step of sending calls to a backend file server in any of the clusters in the network from an NFS client module of a Cache appliance.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2020
From: AVERE SYSTEMS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053373/0574 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2012
From: KAZAR, MICHAEL L.; BOYLES, JOHN R.
To: AVERE SYSTEMS, INC.
Reel/Frame 028724/0113 →
Continuity (2)
Continuation In Part 12283961 · Sep 18, 2008
Related Publication 20120303737A1 · Nov 29, 2012