IP Library Granted Patent US 7,617,292
Granted Patent B2
US 7,617,292 · App. 10/414,236 · Granted Nov 10, 2009

Multi-class heterogeneous clients in a clustered filesystem

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 7,617,292
App. No.
10/414,236
Granted
Nov 10, 2009
Kind
B2
Abstract

A cluster of computer system nodes connected by a storage area network include two classes of nodes. The first class of nodes can act as clients or servers, while the other nodes can only be clients. The client-only nodes require much less functionality and can be more easily supported by different operating systems. To minimize the amount of data transmitted during normal operation, the server responsible for maintaining a cluster configuration database repeatedly multicasts the IP address, its incarnation number and the most recent database generation number. Each node stores this information and when a change is detected, each node can request an update of the data needed by that node. A client-only node uses the IP address of the server to connect to the server, to download the information from the cluster database required by the client-only node and to upload local disk connectivity information.

Claims (52)

1. A method of operating a cluster filesystem for a cluster connected by a storage area network, comprising:

maintaining cluster configuration data at each client node in a cluster;

repeatedly multicasting from the cluster database a cluster database server address and a database generation identifier;

requesting cluster information from the cluster database server by an existing client node in the cluster in response to the multicast cluster database server address or the database generation identifier being different than the cluster configuration data maintained at the existing client node;

establishing a communication link by a candidate node not a member of the cluster with the cluster database server in response to the multicast cluster database server address and the database generation identifier;

obtaining information from the cluster database server to join the cluster by the candidate node, the information including an address for at least one switch in the storage area network,

obtaining, by the candidate node from the at least one switch, at least one port address of at least one port connected to at least one host bus adapter of the candidate node;

sending addresses of the at least one port and at least one host bus adapter from the candidate node to the cluster database server to update the cluster information concerning the cluster maintained by the cluster database server; and

requesting membership in the cluster by the candidate node.

2. A method as recited in claim 1 , further comprising the candidate node obtaining cluster configuration data in response to requesting membership in the cluster; and

configuring kernel components of the candidate node to enable access to the storage area network by the candidate node upon acceptance as a member of the cluster.

3. A method as recited in claim 1 , further comprising wherein requesting the cluster information includes

comparing the multicast cluster database server address and database generation identifier multicasted by the cluster database server with the cluster configuration data maintained at the existing node of the cluster;

requesting by the existing client node updated cluster configuration data from the cluster database server in response to the multicast cluster database server address or database generation identifier not matching the cluster configuration data maintained at the existing node;

updating the cluster configuration data maintained at the existing node using data returned in response to receipt of the cluster information from the cluster database server; and

configuring kernel processes of the existing client node based on the updated cluster configuration data.

4. A method as recited in claim 3 , further comprising responding to failure and recovery of the cluster database server by detecting a change in at least one of the cluster database server address and the database generation identifier.

5. A method as recited in claim 3 , further comprising performing at least one of a mount and an unmount of a filesystem when the updated cluster configuration data indicates changes affecting the filesystem.

6. A method as recited in claim 1 , further comprising authenticating the candidate node by the cluster database server prior to providing the information required to join the cluster.

7. At least one computer readable medium storing at least one program embodying a method of transmitting a message over a network of nodes running different operating systems, comprising:

maintaining cluster configuration data at each client node in a cluster;

repeatedly multicasting from the cluster database a cluster database server address and a database generation identifier;

requesting cluster information from the cluster database server by an existing client node in the cluster in response to the multicast cluster database server address or the database generation identifier being different than the cluster configuration data maintained at the existing client node;

establishing a communication link by a candidate node not a member of the cluster with the cluster database server in response to the multicast cluster database server address and the database generation identifier;

obtaining information from the cluster database server to join the cluster by the candidate node, the information including an address for at least one switch in the storage area network,

obtaining, by the candidate node from the at least one switch, at least one port address of at least one port connected to at least one host bus adapter of the candidate node;

sending addresses of the at least one port and at least one host bus adapter from the candidate node to the cluster database server address to update the cluster information concerning the cluster maintained by the cluster database server; and

requesting membership in the cluster by the candidate node.

8. At least one computer readable medium as recited in claim 7 , wherein said method further comprises the candidate node

obtaining cluster configuration data in response to requesting membership in the cluster; and

configuring kernel components of the candidate node to enable access to the storage area network by the candidate node upon acceptance as a member of the cluster.

9. At least one computer readable medium as recited in claim 8 , wherein requesting the cluster information includes

comparing the multicast cluster database server address and database generation identifier multicasted by the cluster database server with the cluster configuration data maintained at the existing node of the cluster;

requesting by the existing client node updated cluster configuration data from the cluster database server in response to the multicast cluster database server address or database generation identifier not matching the cluster configuration data maintained at the existing node;

updating the cluster configuration data maintained at the existing node using data returned in response to receipt of the cluster information from the cluster database server; and

configuring kernel processes of the existing client node based on the updated cluster configuration data.

10. At least one computer readable medium as recited in claim 9 , wherein said method further comprises responding to failure and recovery of the cluster database server by detecting a change in at least one of the cluster database server address and the database generation identifier.

11. At least one computer readable medium as recited in claim 9 , further comprising performing at least one of a mount and an unmount of a filesystem when the updated cluster configuration data indicates changes affecting the filesystem.

12. At least one computer readable medium as recited in claim 7 , further comprising authenticating the candidate node by the cluster database server prior to providing the information required to join the cluster.

13. A cluster of computer systems, comprising:

a cluster database server to repeatedly multicast a cluster database server address and a database generation identifier; and

at least one of an existing node in a cluster and a candidate node not in the cluster programmed to request cluster information from the cluster database server to respectively update cluster configuration data maintained by the existing client node in the cluster and obtain information required to join the cluster;

wherein the existing node is operable to request cluster information from the cluster database server in response to the multicast cluster database server address or the database generation identifier being different than the cluster configuration data maintained at the existing client node,

wherein the candidate node is operable to establish a communication link with the cluster database server in response to the multicast cluster database server address and the database generation identifier, obtain an address for at least one switch in the storage area network, and then to obtain from the at least one switch at least one port address of at least one port connected to at least one host bus adapter of the candidate node, to send addresses of the at least one port and at least one host bus adapter to the cluster database server to update the cluster information maintained by the cluster database server, and to request membership in the cluster.

14. A cluster of computer systems as recited in claim 13 , wherein said at least one candidate node is further programmed to obtain cluster configuration data in response to requesting membership in the cluster, and to configure kernel components of the candidate node to enable access to the storage area network by the candidate node upon acceptance as a member of the cluster.

15. A cluster of computer systems as recited in claim 14 , wherein said at least one existing node is programmed to compare the multicast cluster database server address and database generation identifier multicasted by the cluster database server with the cluster configuration data maintained at the existing node of the cluster, to request cluster information from the cluster database server in response to the multicast cluster database server address or the database generation identifier not matching the cluster configuration data maintained at the existing node, to update the cluster configuration data maintained at the existing node using data returned in response to receipt of the cluster information from the cluster database server, and to configure kernel processes of the existing client node based on the updated cluster configuration data.

16. A cluster of computer systems as recited in claim 15 , wherein said at least one existing node is further programmed to respond to failure and recovery of the cluster database server by detecting a change in at least one of the cluster database server address and the database generation identifier.

17. A cluster of computer systems as recited in claim 15 , wherein said at least one existing node is further programmed to perform at least one of a mount and an unmount of a filesystem when the updated cluster configuration data indicates changes affecting the filesystem.

18. A cluster of computer systems as recited in claim 13 , wherein said cluster database server is programmed to authenticate the candidate node by the cluster database server address prior to providing the information required to join the cluster.

19. A cluster of computer systems as recited in claim 13 , wherein the cluster information includes cluster configuration data defining membership of nodes in the cluster.

20. At least one computer readable medium as recited in claim 7 , wherein the cluster information includes cluster configuration data defining membership of the nodes in the cluster.

21. A method as recited in claim 1 , wherein the cluster information includes cluster configuration data defining membership of nodes in the cluster.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 044128/0149 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 040545/0362 →
ORDER. . . AUTHORIZING THE SALE OF ALL OR SUBSTANTIALLY ALL OF THE ASSETS OF THE DEBTORS FREE AND CLEAR OF ALL LIENS, CLAIMS, ENCUMBRANCES, AND INTERESTS. Recorded Jul 25, 2016
From: WELLS FARGO FOOTHILL CAPITAL, INC.
To: SILICON GRAPHICS INC.
Reel/Frame 039461/0418 →
ORDER. . .AUTHORIZING THE SALE OF ALL OR SUBSTANTIALLY ALL OF THE ASSETS OF THE DEBTORS FREE AND CLEAR OF ALL LIENS, CLAIMS, ENCUMBRANCES, AND INTERESTS. Recorded Jul 25, 2016
From: MORGAN STANLEY & CO., INCORPORATED
To: SILICON GRAPHICS, INC.
Reel/Frame 039461/0713 →
SECURITY INTEREST Recorded Mar 13, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035200/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2014
From: SILICON GRAPHICS, INC.
To: SILICON GRAPHICS INTERNATIONAL, INC.
Reel/Frame 032685/0370 →
MERGER Recorded Apr 16, 2014
From: SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 032686/0497 →
CHANGE OF NAME Recorded Apr 16, 2014
From: SILICON GRAPHICS INTERNATIONAL, INC.
To: SGI INTERNATIONAL, INC.
Reel/Frame 032697/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2014
From: MOORE, DANIEL; GILDFIND, ANDREW
To: SILICON GRAPHICS, INC.
Reel/Frame 031878/0444 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2012
From: SILICON GRAPHICS, INC. ET AL.; SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL, CORP.
Reel/Frame 027904/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2007
From: GENERAL ELECTRIC CAPITAL CORPORATION
To: MORGAN STANLEY & CO., INCORPORATED
Reel/Frame 019995/0895 →
SECURITY INTEREST Recorded Oct 24, 2006
From: SILICON GRAPHICS, INC.
To: GENERAL ELECTRIC CAPITAL CORPORATION
Reel/Frame 018545/0777 →
SECURITY AGREEMENT Recorded Aug 19, 2005
From: SILICON GRAPHICS, INC. AND SILICON GRAPHICS FEDERAL, INC. (EACH A DELAWARE CORPORATION)
To: WELLS FARGO FOOTHILL CAPITAL, INC.
Reel/Frame 016871/0809 →