P
US11675499B2ActiveUtilityPatentIndex 83

Synchronous discovery logs in a fabric storage system

Assignee: WESTERN DIGITAL TECH INCPriority: Jun 19, 2020Filed: Jun 19, 2020Granted: Jun 13, 2023
Est. expiryJun 19, 2040(~14 yrs left)· nominal 20-yr term from priority
Inventors:DHATCHINAMOORTHY RAHUL GANDHIRANJAN KUMAR
G06F 3/0635G06F 3/0689G06F 3/067H04L 67/1061G06F 3/061G06F 3/0655G06F 3/0607
83
PatentIndex Score
7
Cited by
12
References
20
Claims

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

exact text as granted — not AI-modified
The invention claimed is: 
     
       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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.