IP Library › Granted Patent US 11,681,448
Granted Patent B2
US 11,681,448 · App. 17/499,156 · Granted Jun 20, 2023

Multiple device IDs in a multi-fabric module storage system

Inventors: Ian Juch (Portland, OR); Hao Liu (Sunnyvale, CA); Boris Feigin (San Francisco, CA); Haijie Xiao (Pleasanton, CA); Gordon James Coleman (Los Altos, CA)
Assignee: PURE STORAGE, INC.
G06F3/0632G06F3/067G06F3/0614G06F3/0659
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,681,448
App. No.
17/499,156
Granted
Jun 20, 2023
Kind
B2
Abstract

Fabric modules in a storage system offer differing device IDs from a deterministic sequence to a storage device being added to the storage system. The storage device that is being added accepts a device ID that is higher in the deterministic sequence. The fabric module that offered the device ID same as was accepted by the storage device determines to proceed with initializing the storage device.

Claims (48)

1. A method, comprising:

determining, by a storage system having a plurality of fabric modules, that a storage device is being connected to the plurality of fabric modules;

issuing, by a first one of the plurality of fabric modules, a first device identifier (ID) from a deterministic sequence of device IDs to the storage device being added;

determining, by the storage device being connected, to accept the first device ID based on the storage device not having a second device ID, in the deterministic sequence, that is higher than the first device ID; and

determining, by the first one of the plurality of fabric modules, to proceed with initializing the storage device based on the storage device having the first device ID issued by the first one of the plurality of fabric modules.

2. The method of claim 1 , further comprising:

issuing, by a second one of the plurality of fabric modules to the storage device being added, a further device ID that is lower in the deterministic sequence wherein the first one of the plurality of fabric modules is enabled to proceed with the initializing and the second one of the plurality of fabric modules is not enabled to proceed with the initializing.

3. The method of claim 1 , further comprising:

issuing, by a second one of the plurality of fabric modules to the storage device being added, a further device ID in the deterministic sequence that is higher than the first device ID issued by the first one of the plurality of fabric modules, wherein the initializing by the first one of the plurality of fabric modules is to be canceled and the second one of the plurality of fabric modules is to proceed to initialize the storage device.

4. The method of claim 1 , further comprising:

issuing, by a second one of the plurality of fabric modules to the storage device being added, a further device ID, wherein the storage device is to refuse the further device ID responsive to i) having accepted the first device ID issued by the first one of the plurality of fabric modules and ii) having commenced the initializing of the storage device by the first one of the plurality of fabric modules.

5. The method of claim 1 , wherein the initializing the storage device comprises formatting the storage device.

6. The method of claim 1 , further comprising:

persisting the first device ID in a distributed key value store in the storage system.

7. The method of claim 1 , further comprising:

persisting the first device ID in a first location in the storage system and in a second location in the storage device, and bringing the storage device online, responsive to completing the initializing the storage device by the first one of the plurality of fabric modules.

8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

determining, by a storage system having a plurality of fabric modules, that a storage device is being connected to the plurality of fabric modules;

issuing, by a first one of the plurality of fabric modules, a first device identifier (ID) from a deterministic sequence of device IDs to the storage device being added;

determining, by the storage device being connected, to accept the first device ID based on the storage device not having a second device ID, in the deterministic sequence, that is higher than the first device ID; and

determining, by the first one of the plurality of fabric modules, to proceed with initializing the storage device based on the storage device having the first device ID issued by the first one of the plurality of fabric modules.

9. The computer-readable media of claim 8 , wherein the method further comprises

issuing, by a second one of the plurality of fabric modules to the storage device being added, a further device ID that is lower in the deterministic sequence wherein the first one of the plurality of fabric modules is enabled to proceed with the initializing and the second one of the plurality of fabric modules is not enabled to proceed with the initializing.

10. The computer-readable media of claim 8 , wherein the method further comprises:

issuing, by a second one of the plurality of fabric modules to the storage device being added, a further device ID in the deterministic sequence that is higher than the first device ID issued by the first one of the plurality of fabric modules, wherein the initializing by the first one of the plurality of fabric modules is to be canceled and the second one of the plurality of fabric modules is to proceed to initialize the storage device.

11. The computer-readable media of claim 8 , wherein the method further comprises:

issuing, by a second one of the plurality of fabric modules to the storage device being added, a further device ID, wherein the storage device is to refuse the further device ID responsive to i) having accepted the first device ID issued by the first one of the plurality of fabric modules and ii) having commenced the initializing of the storage device by the first one of the plurality of fabric modules.

12. The computer-readable media of claim 8 , wherein the initializing the storage device comprises providing cryptographic keys to the storage device.

13. The computer-readable media of claim 8 , wherein the method further comprises:

persisting the first device ID in a first location in a distributed key value store in the storage system and in a second location in the storage device, and bringing the storage device online, responsive to completing the initializing the storage device by the first one of the plurality of fabric modules.

14. A storage system, comprising:

a storage device;

a plurality of fabric modules operatively coupled to the storage device, the plurality of fabric modules comprising one or more processing devices to:

determine that the storage device is being connected to the plurality of fabric modules;

issue, by a first one of the plurality of fabric modules, a first device identifier (ID) from a deterministic sequence of device IDs to the storage device being added;

determine, by the storage device being connected, to accept the first device ID based on the storage device not having a second device ID, in the deterministic sequence, that is higher than the first device ID; and

determine, by the first one of the plurality of fabric modules, to proceed with initializing the storage device based on the storage device having the first device ID issued by the first one of the plurality of fabric modules.

15. The storage system of claim 14 , wherein the one or more processing devices are further to:

issue, by a second one of the plurality of fabric modules to the storage device being added, a further device ID that is lower in the deterministic sequence wherein the first one of the plurality of fabric modules is enabled to proceed with the initializing and the second one of the plurality of fabric modules is not enabled to proceed with the initializing.

16. The storage system of claim 14 , wherein the one or more processing devices are further to:

issue, by a second one of the plurality of fabric modules to the storage device being added, a further device ID in the deterministic sequence that is higher than the first device ID issued by the first one of the plurality of fabric modules, wherein the initializing by the first one of the plurality of fabric modules is to be canceled and the second one of the plurality of fabric modules is to proceed to initialize the storage device.

17. The storage system of claim 14 , wherein the one or more processing devices are further to:

issue, by a second one of the plurality of fabric modules to the storage device being added, a further device ID, wherein the storage device is to refuse the further device ID responsive to i) having accepted the first device ID issued by the first one of the plurality of fabric modules and ii) having commenced the initializing of the storage device by the first one of the plurality of fabric modules.

18. The storage system of claim 14 , wherein the initializing the storage device comprises formatting the storage device.

19. The storage system of claim 14 , wherein the one or more processing devices are further to:

persist the first device ID in a distributed key value store in the storage system.

20. The storage system of claim 14 , wherein the one or more processing devices are further to:

persist the first device ID in a first location in the storage system and in a second location in the storage device, and bringing the storage device online, responsive to completing the initializing the storage device by the first one of the plurality of fabric modules.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2021
From: JUCH, IAN; LIU, HAO; FEIGIN, BORIS; XIAO, HAIJIE; COLEMAN, GORDON JAMES
To: PURE STORAGE, INC.
Reel/Frame 057765/0155 →
Continuity (2)
Continuation In Part 17014783 · Sep 8, 2020
Related Publication 20220075539A1 · Mar 10, 2022