IP Library Granted Patent US 11,675,499
Granted Patent B2
US 11,675,499 · App. 16/906,404 · Granted Jun 13, 2023

Synchronous discovery logs in a fabric storage system

Inventors: Rahul Gandhi Dhatchinamoorthy (Bangalore, IN); Kumar Ranjan (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0607G06F3/067G06F3/0655G06F3/0689H04L67/1061
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,675,499
App. No.
16/906,404
Filed
Jun 19, 2020
Granted
Jun 13, 2023
Kind
B2
Examiner
PARK, ILWOO
Art Unit
2184
USPC
711/154
Abstract

Systems and methods for distributed storage systems using synchronous discovery logs for fabric subsystem discovery. Storage nodes may be configured with fabric services and a management service may provide synchronization of discovery logs across fabric subsystems and between peer fabric nodes. The peer fabric nodes may communicate with one another using a fabric network protocol and corresponding fabric subsystems may communicate with each peer fabric node. When a target subsystem fabric node updates its discovery log, the updated discovery log is sent to the corresponding peer fabric node. The corresponding peer fabric node sends the updated discovery log to each subsystem fabric node and to each peer fabric node for synchronization across all subsystem fabric nodes. A host may contact any subsystem fabric node for the updated discovery log.

Claims (141)

1. A system, comprising:

a first fabric node comprising:

a first fabric service configured to communicate with a plurality of peer fabric nodes using a network fabric protocol; and

a management service configured to:

receive a plurality of updated discovery logs, wherein:

each updated discovery log of the plurality of updated discovery logs comprises:

 a plurality of discovery log entries; and

 a generation counter;

each discovery log entry of the plurality of discovery log entries indicates:

 a fabric subsystem address; and

 host mapping information for a corresponding subsystem fabric node; and

the plurality of discovery log entries includes fabric subsystem addresses for subsystem fabric nodes of the first fabric node and the plurality of peer fabric nodes;

determine, using the generation counters from the plurality of updated discovery logs, an updated discovery log that is a current updated discovery log including a selected set of current discovery log entries; and

send, responsive to determining the updated discovery log, the updated discovery log to each peer fabric node of the plurality of peer fabric nodes; and

a plurality of subsystem fabric nodes, wherein a target subsystem fabric node of the plurality of subsystem fabric nodes comprises:

a second fabric service configured to:

receive a mapping request;

determine, based on the mapping request, mapping changes for the target subsystem fabric node;

update, responsive to mapping changes for the target subsystem fabric node, a prior discovery log to generate a new updated discovery log; and

send, to the first fabric node, the new updated discovery log.

2. The system of claim 1 , further comprising:

a first logical network configured for management communication between the management service and the plurality of subsystem fabric nodes; and

a second logical network configured for host communication between a host system and the plurality of subsystem fabric nodes, wherein the second fabric service is further configured to send the updated discovery log to the host system using the second logical network.

3. The system of claim 1 , wherein:

each subsystem fabric node of the plurality of subsystem fabric nodes is configured to:

receive the updated discovery log;

store the updated discovery log;

receive, from a host system, a host discovery request;

determine, based on the host system and the host mapping information in the plurality of discovery log entries, a host discovery log from the updated discovery log; and

return, to the host system, the host discovery log.

4. The system of claim 3 , wherein:

the management service is further configured to send, responsive to determining the updated discovery log, the updated discovery log to each subsystem fabric node of the plurality of subsystem fabric nodes; and

each subsystem fabric node of the plurality of subsystem fabric nodes is further configured to receive the updated discovery log from the first fabric node.

5. The system of claim 1 , wherein:

the first fabric node is configured as a storage management controller;

each subsystem fabric node of the plurality of subsystem fabric nodes is configured as a storage node including a plurality of storage devices; and

the plurality of storage devices for each subsystem fabric node is configured for access by a host system using:

the network fabric protocol; and

at least one fabric subsystem address of the plurality of fabric subsystem addresses.

6. The system of claim 1 , wherein:

the management service is further configured to:

receive the mapping request from a management application;

determine, based on the mapping request, the target subsystem fabric node; and

send, to the target subsystem fabric node, the mapping request.

7. The system of claim 6 , wherein:

the management service is further configured to receive the mapping request through a management network that is logically distinct from a host fabric network; and

the host fabric network includes communication, using the network fabric protocol, among:

the plurality of subsystem fabric nodes; and

at least one host system.

8. The system of claim 1 , wherein

the management service is further configured to:

evaluate, using the generation counter from each updated discovery log of the plurality of updated discovery logs, updated discovery log entries in each updated discovery log to determine the selected set of current discovery log entries.

9. The system of claim 1 , further comprising:

the plurality of peer fabric nodes, wherein each peer fabric node of the plurality of peer fabric nodes is configured to:

receive peer updated discovery logs from the first fabric node and each other peer fabric node in the plurality of peer fabric nodes;

receive subsystem updated discovery logs from a corresponding plurality of subsystem fabric nodes that corresponds to that peer fabric node;

send, responsive to receiving the peer updated discovery logs, the peer updated discovery logs to the corresponding plurality of subsystem fabric nodes; and

send, responsive to receiving the subsystem updated discovery logs, the subsystem updated discovery logs to:

the first fabric node and each other peer fabric node of the plurality of peer fabric nodes; and

the corresponding plurality of subsystem fabric nodes.

10. The system of claim 9 , wherein:

each peer fabric node of the plurality of peer fabric nodes is configured as a storage management controller; and

each peer fabric node of the plurality of peer fabric nodes is configured to:

communicate with the first fabric node and each other peer fabric node of the plurality of peer fabric nodes through a management network that is logically distinct from a host fabric network; and

communicate with the corresponding plurality of subsystem fabric nodes through a corresponding backplane network that:

corresponds to that peer fabric node; and

is logically distinct from the host fabric network.

11. A computer-implemented method, comprising:

configuring, to communicate with a first peer fabric node of a plurality of peer fabric nodes, a first plurality of subsystem fabric nodes that corresponds with the first peer fabric node;

receiving a plurality of updated discovery logs, wherein:

each updated discovery log of the plurality of updated discovery logs comprises:

a plurality of discovery log entries; and

a generation counter;

each discovery log entry of the plurality of discovery log entries indicates:

a fabric subsystem address; and

host mapping information for a corresponding subsystem fabric node; and

the plurality of discovery log entries includes fabric subsystem addresses for subsystem fabric nodes of the plurality of peer fabric nodes;

determining, using the generation counters from the plurality of updated discovery logs, an updated discovery log that is a current updated discovery log including a selected set of current discovery log entries;

sending, by the first peer fabric node and responsive to determining the updated discovery log, the updated discovery log to each other peer fabric node of the plurality of peer fabric nodes, wherein each peer fabric node of the plurality of peer fabric nodes is configured to communicate with each other peer fabric node of the plurality of peer fabric nodes using a network fabric protocol;

updating, by a target subsystem fabric node of the first plurality of subsystem fabric nodes and responsive to mapping changes for the target subsystem fabric node, a prior discovery log to generate a new updated discovery log;

sending, from the target subsystem fabric node to the first peer fabric node, the new updated discovery log;

receiving, by the first peer fabric node, the new updated discovery log; and

adding, by the first peer fabric node, the new updated discovery log to the plurality of updated discovery logs for determining a next current updated discovery log.

12. The computer-implemented method of claim 11 , further comprising:

configuring a first logical network for management communication between the first peer fabric node and the first plurality of subsystem fabric nodes;

configuring a second logical network for host communication between a host system and the first plurality of subsystem fabric nodes; and

sending, using the second logical network, the updated discovery log from at least one subsystem fabric node of the first plurality of subsystem fabric nodes to the host system.

13. The computer-implemented method of claim 11 , further comprising:

receiving, at the first plurality of subsystem fabric nodes, the updated discovery log;

storing, at each subsystem fabric node of the first plurality of subsystem fabric nodes, the updated discovery log;

receiving, at any subsystem fabric node of the first plurality of subsystem fabric nodes, a host discovery request from a host system;

determining, based on the host system and the host mapping information in the plurality of discovery log entries, a host discovery log from the updated discovery log; and

returning, to the host system, the updated discovery log.

14. The computer-implemented method of claim 13 , further comprising:

sending, from the first peer fabric node and responsive to determining the updated discovery log, the updated discovery log to each subsystem fabric node of the first plurality of subsystem fabric nodes; and

receiving, at each subsystem fabric node of the first plurality of subsystem fabric nodes, the updated discovery log from the first peer fabric node.

15. The computer-implemented method of claim 11 , further comprising:

configuring the first peer fabric node as a storage management controller; and

configuring each subsystem fabric node of the first plurality of subsystem fabric nodes as a storage node including a plurality of storage devices, wherein the plurality of storage devices for each subsystem fabric node is configured for access by a host system using:

the network fabric protocol; and

at least one fabric subsystem address of the plurality of fabric subsystem addresses.

16. The computer-implemented method of claim 11 , further comprising:

receiving, by the first peer fabric node, a mapping request from a management application;

determining, by the first peer fabric node and based on the mapping request, the target subsystem fabric node;

sending, by the first peer fabric node and to the target subsystem fabric node, the mapping request;

receiving, by the target subsystem fabric node, the mapping request; and

determining, by the target subsystem fabric node and based on the mapping request, the mapping changes for the target subsystem fabric node.

17. The computer-implemented method of claim 16 , wherein:

receiving the mapping request by the first peer fabric node includes receiving the mapping request through a management network that is logically distinct from a host fabric network; and

the host fabric network includes communication, using the network fabric protocol, among:

the first plurality of subsystem fabric nodes; and

at least one host system.

18. The computer-implemented method of claim 11 , further comprising:

evaluating, using the generation counter from each updated discovery log of the plurality of updated discovery logs, updated discovery log entries in each updated discovery log to determine the selected set of current discovery log entries.

19. The computer-implemented method of claim 11 , further comprising:

receiving, at each peer fabric node in the plurality of peer fabric nodes, peer updated discovery logs from each other peer fabric node in the plurality of peer fabric nodes;

receiving, at each peer fabric node in the plurality of peer fabric nodes, subsystem updated discovery logs from a corresponding plurality of subsystem fabric nodes that corresponds to that peer fabric node;

sending, from each peer fabric node receiving the peer updated discovery logs, the peer updated discovery logs to the corresponding plurality of subsystem fabric nodes; and

sending, from each peer fabric node receiving the subsystem updated discovery logs, the subsystem updated discovery logs to:

each other peer fabric node of the plurality of peer fabric nodes; and

the corresponding plurality of subsystem fabric nodes.

20. A storage system, comprising:

a plurality of peer fabric nodes configured to communicate with each other peer fabric node of the plurality of peer fabric nodes using a network fabric protocol;

a corresponding plurality of subsystem fabric nodes that:

correspond to each peer fabric node of the plurality of peer fabric nodes; and

are configured to communicate with at least one host system using the network fabric protocol;

means for receiving a plurality of updated discovery logs, wherein:

each updated discovery log of the plurality of updated discovery logs comprises:

a plurality of discovery log entries; and

a generation counter;

each discovery log entry of the plurality of discovery log entries indicates:

a fabric subsystem address; and

host mapping information for a corresponding subsystem fabric node; and

the plurality of discovery log entries includes fabric subsystem addresses for subsystem fabric nodes of the plurality of peer fabric nodes;

means for determining, using the generation counters from the plurality of updated discovery logs, an updated discovery log that is a current updated discovery log including a selected set of current discovery log entries;

means for sending, by a corresponding peer fabric node and responsive to determining the updated discovery log, the updated discovery log to each other peer fabric node of the plurality of peer fabric nodes;

means for sending, by each peer fabric node of the plurality of peer fabric nodes and responsive to receiving the updated discovery log, the updated discovery log to each other subsystem fabric node of the corresponding plurality of subsystem fabric nodes;

means for updating, by a target subsystem fabric node of the corresponding plurality of subsystem fabric nodes and responsive to mapping changes for the target subsystem fabric node, a prior discovery log to generate a new updated discovery log;

means for sending, from the target subsystem fabric node, the new updated discovery log;

means for receiving, by the corresponding peer fabric node of the plurality of peer fabric nodes that corresponds to the target subsystem fabric node, the new updated discovery log; and

means for adding the new updated discovery log to the plurality of updated discovery logs for determining a next current updated discovery log.

Assignments (5)
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: DHATCHINAMOORTHY, RAHUL GANDHI; RANJAN, KUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053252/0074 →
Continuity (1)
Related Publication 20210397351A1 · Dec 23, 2021
Cited By (6)
US 12,307,129 US 12,346,599 US 12,517,682 US 12,608,158 US 12,615,298 US 12,670,120