IP Library Granted Patent US 11,546,337
Granted Patent B2
US 11,546,337 · App. 16/448,063 · Granted Jan 3, 2023

Servicing of network software components of nodes of a cluster storage system

Inventors: Nam Le (Los Gatos, CA); Paul Yuedong Mu (San Jose, CA); John Russell Boyles (Cranberry Township, PA); John Eric Hoffman (Pittsburgh, PA)
Assignee: NetApp, Inc.
H04L63/102G06F3/067G06F3/0607G06F3/0622G06F3/0635G06F3/0637G06F3/0659G06F11/2069G06F12/1483G06F16/10G06F21/6218H04L63/083H04L63/10H04L63/101H04L67/10H04L67/1097G06F2201/805G06F2212/1052G06F2212/154
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 11,546,337
App. No.
16/448,063
Granted
Jan 3, 2023
Kind
B2
Abstract

Described herein are method and apparatus for servicing software components of nodes of a cluster storage system. During data-access sessions with clients, client IDs and file handles for accessing files are produced and stored to clients and stored (as session data) to each node. A serviced node is taken offline, whereby network connections to clients are disconnected. Each disconnected client is configured to retain its client ID and file handles and attempt reconnections. Session data of the serviced node is made available to a partner node (by transferring session data to the partner node). After clients have reconnected to the partner node, the clients may use the retained client IDs and file handles to continue a data-access session with the partner node since the partner node has access to the session data of the serviced node and thus will recognize and accept the retained client ID and file handles.

Claims (53)

1. A system, comprising:

shared storage accessible to a network of nodes;

the network nodes including a first node and a second node, wherein the network of nodes:

establish a connection between a client and the first node based upon credentials of the client being authenticated, wherein a client identifier is provided to the client;

in response to receiving an access request, comprising the client identifier, for a file accessible through the first node:

form a handle to include a disk element identifier of a disk element of the first node, a file inode number generated by the disk element for the file, and a virtual address that is translated into a physical address for locating the file in the shared storage, wherein the handle is provided to the client;

generate session data to include network element session data and disk element session data, wherein the network element session data includes a user identifier, the client identifier, and the handle, and the disk element session data includes the user identifier, the client identifier, the handle, permission data, and lock state type data;

in response to receiving a request, including the handle and the client identifier, to access the file through the first node, provide the client with access to the file using the session data;

in response to closing network ports of a network element of the first node, migrate virtual network interfaces of the network ports to the second node of the network of nodes as migrated virtual network interfaces; and

provide, by the second node using the network element session data and the disk element session data of the session data, the client with access to the file based upon the client connecting to the migrated virtual network interfaces through the network ports of the second node, wherein the virtual address of the file is used to determine the disk element identifier of the disk element serving the file.

2. The system of claim 1 , wherein a combination of the user identifier and the client identifier are used by the first node and the second node to uniquely identify a user/client accessing the shared storage, and wherein the handle uniquely identifies the file.

3. The system of claim 1 , wherein the disk element validates the request by matching the handle and the client identifier within the request with a matching entry within the disk element session data.

4. The system of claim 1 , wherein the network element matches the handle and the client identifier within the request with a matching entry within the network element session data for processing the request.

5. The system of claim 1 , wherein the permission data and the lock state type data is maintained for combinations of user identifiers and client identifiers uniquely identifying users/clients, and wherein each combination of a particular client identifier and a particular handle and associated permission data and lock state type data is maintained as a single entry within the disk element session data.

6. The system of claim 5 , wherein entries of the disk element session data are indexed by combinations of client identifiers and handles.

7. The system of claim 5 , wherein entries of the disk element session data are indexed by combinations of user identifiers and handles.

8. The system of claim 1 , wherein the second node accepts a subsequent request from the client to access the file without performing a connection authentication procedure that the first node performed to authenticate the credentials of the client, wherein the second node accepts the subsequent request having the original client identifier and handle generated by the first node and retained by the client, and wherein the file opened by the client through the first node stays open without being closed before being accessed through the second node.

9. The system of claim 1 , comprising:

a serving software component that takes the first node offline and utilizes a servicing module to service the first node, wherein the session data is made available to the second node based upon the serving software component determining that the first node is to be taken offline and serviced.

10. A method, comprising:

establishing, by a network of nodes including a first node and an second node that provide clients with access to shared storage, a connection between a client and the first node based upon credentials of the client being authenticated, wherein a client identifier is provided to the client;

in response to receiving an access request, comprising the client identifier, for a file accessible through the first node:

forming a handle to include a disk element identifier of a disk element of the first node, a file inode number generated by the disk element for the file, and a virtual address that is translated into a physical address for locating the file in the shared storage, wherein the handle is provided to the client;

generating session data to include network element session data and disk element session data, wherein the network element session data includes a user identifier, the client identifier, and the handle, and the disk element session data includes the user identifier, the client identifier, the handle, permission data, and lock state type data;

in response to receiving a request, including the handle and the client identifier, to access the file through the first node, providing the client with access to the file using the session data;

in response to closing network ports of a network element of the first node, migrating virtual network interfaces of the network ports to the second node of the network of nodes as migrated virtual network interfaces; and

providing, by the second node using the network element session data and the disk element session data of the session data, the client with access to the file based upon the client connecting to the migrated virtual network interfaces through the network ports of the second node, wherein the virtual address of the file is used to determine the disk element identifier of the disk element serving the file.

11. The method of claim 10 , comprising:

utilizing a combination of the user identifier and the client identifier to uniquely identify a user/client accessing the shared storage, and wherein the handle uniquely identifies the file.

12. The method of claim 10 , comprising:

validating, by the disk element, the request by matching the handle and the client identifier within the request with a matching entry within the disk element session data.

13. The method of claim 10 , comprising:

matching, by the network element, the handle and the client identifier within the request with a matching entry within the network element session data for processing the request.

14. The method of claim 10 , comprising:

maintaining the permission data and the lock state type data for combinations of user identifiers and client identifiers uniquely identifying users/clients, wherein each combination of a particular client identifier and a particular handle and associated permission data and lock state type data is maintained as a single entry within the disk element session data.

15. The method of claim 10 , comprising:

indexing entries of the disk element session data by combinations of client identifiers and handles.

16. The method of claim 10 , comprising:

indexing entries of the disk element session data by combinations of user identifiers and handles.

17. The method of claim 10 , comprising:

accepting, by the second node, a subsequent request from the client to access the file without performing a connection authentication procedure that the first node performed to authenticate the credentials of the client, wherein the second node accepts the subsequent request having the original client identifier and handle generated by the first node and retained by the client, and wherein the file opened by the client through the first node stays open without being closed before being accessed through the second node.

18. The method of claim 10 , comprising:

taking, by a servicing software component, the first node offline and utilizing a servicing module to service the first node, wherein the session data is made available to the second node based upon the serving software component determining that the first node is to be taken offline and serviced.

19. A non-transitory machine readable medium comprising instructions, which when executed by a machine, causes the machine to:

establish, by a network of nodes including a first node and an second node that provide clients with access to shared storage, a connection between a client and the first node based upon credentials of the client being authenticated, wherein a client identifier is provided to the client;

in response to receiving an access request, comprising the client identifier, for a file accessible through the first node:

form a handle to include a disk element identifier of a disk element of the first node, a file inode number generated by the disk element for the file, and a virtual address that is translated into a physical address for locating the file in the shared storage, wherein the handle is provided to the client;

generate session data to include network element session data and disk element session data, wherein the network element session data includes a user identifier, the client identifier, and the handle, and the disk element session data includes the user identifier, the client identifier, the handle, permission data, and lock state type data;

in response to receiving a request, including the handle and the client identifier, to access the file through the first node, provide the client with access to the file using the session data;

in response to closing network ports of a network element of the first node, migrate virtual network interfaces of the network ports to the second node of the network of nodes as migrated virtual network interfaces; and

provide, by the second node using the network element session data and the disk element session data of the session data, the client with access to the file based upon the client connecting to the migrated virtual network interfaces through the network ports of the second node, wherein the virtual address of the file is used to determine the disk element identifier of the disk element serving the file.

20. The non-transitory machine readable medium of claim 19 , wherein the instructions cause the machine to:

accept, by the second node, a subsequent request from the client to access the file without performing a connection authentication procedure that the first node performed to authenticate the credentials of the client, wherein the second node accepts the subsequent request having the original client identifier and handle generated by the first node and retained by the client, and wherein the file opened by the client through the first node stays open without being closed before being accessed through the second node.

Continuity (4)
Continuation 15441292 · Feb 24, 2017
Continuation 15137906 · Apr 25, 2016
Continuation 12372637 · Feb 17, 2009
Related Publication 20190327241A1 · Oct 24, 2019
Cited By (9)
US 12,307,238 US 12,367,320 US 12,400,015 US 12,401,515 US 12,407,530 US 12,461,832 US 12,541,431 US 12,554,417 US 12,699,560