IP Library Granted Patent US 10,652,206
Granted Patent B1
US 10,652,206 · App. 15/795,653 · Granted May 12, 2020

Storage system with network-wide configurable device names

Inventors: Maneesh Pusalkar (Pune, IN); Arieh Don (Newton, MA); Vinay Rao (Bangalore, IN); Yaron Dar (Sudbury, MA)
Assignee: EMC IP Holding Company LLC
H04L61/30G06F3/0605G06F3/067H04L67/1097
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 10,652,206
App. No.
15/795,653
Granted
May 12, 2020
Kind
B1
Abstract

A storage system in one embodiment comprises at least one storage array comprising a plurality of storage devices. The storage array is configured to communicate over one or more networks with a plurality of host devices. The storage array is further configured to receive one or more commands from a given one of the host devices directing that a particular user-defined name be assigned to a particular one of the storage devices, and responsive to receipt of the one or more commands, to determine if any other user-defined name is already assigned to the particular storage device, and if there is no other user-defined name already assigned to the particular storage device, to assign the particular user-defined name to the particular storage device and to store information characterizing the assignment of the particular user-defined name to the particular storage device in persistent memory of the storage array.

Claims (66)

1. A storage system comprising:

at least one storage array comprising a plurality of storage devices;

the storage array being configured to communicate over one or more networks with a plurality of host devices;

wherein the storage array is further configured:

to receive one or more commands from a given one of the host devices directing that a particular user-defined name be assigned to a particular one of the storage devices; and

responsive to receipt of the one or more commands, to determine if any other user-defined name is already assigned to the particular storage device, and if there is no other user-defined name already assigned to the particular storage device, to assign the particular user-defined name to the particular storage device and to store information characterizing the assignment of the particular user-defined name to the particular storage device in persistent memory of the storage array;

wherein the one or more commands comprise a first command comprising at least a subset of:

another user-defined name already assigned to the particular storage device;

the particular user-defined name proposed for assignment to the particular storage device;

a unique identifier generated by the given host device for the particular user-defined name;

a host name of the given host device; and

at least one embedded command; and

wherein if another user-defined name is already assigned to the particular storage device and the first command does not include a force command as an embedded command, the storage array is configured to reject the first command and to leave the user-defined name of the particular storage device unchanged.

2. The storage system of claim 1 wherein the plurality of storage devices of the storage array collectively comprise at least a portion of a storage-area network and wherein the particular user-defined name assigned to the particular storage device is utilized consistently by the plurality of host devices to identify the particular storage device within the storage-area network.

3. The storage system of claim 1 wherein the one or more commands are generated by a multi-path input-output driver of the given host device.

4. The storage system of claim 3 wherein the particular user-defined name is provided by a user of the storage system to a user-space portion of the multi-path input-output driver of the given host device via a command line interface.

5. The storage system of claim 3 wherein the one or more commands are generated at least in part by one or more of: a user-space portion of the multi-path input-output driver of the given host device; and a kernel-space portion of the multi-path input-output driver of the given host device.

6. The storage system of claim 3 wherein the storage array is further configured to receive one or more additional commands that are generated by the multi-path input-output driver in order to determine if any other user-defined name is assigned to the particular storage device before it generates the one or more commands directing that the particular user-defined name be assigned to the particular storage device.

7. The storage system of claim 6 wherein the one or more additional commands comprise a second command configured to read metadata from the persistent memory of the storage array.

8. The storage system of claim 1 wherein the a first command is configured to write metadata to the persistent memory of the storage array.

9. The storage system of claim 1 wherein the unique identifier comprises a random number generated by a random number generator in a kernel-space portion of a multi-path input-output driver of the given host device.

10. The storage system of claim 1 wherein the embedded command comprises at least one of:

a replace command;

a lock command; and

a force command;

wherein the replace command directs the storage array to replace any other user-defined name already assigned to the particular storage device with the particular user-defined name;

wherein the lock command directs the storage array not to make any further change in the assignment of the particular user-defined name to the particular storage device absent receipt of a force command; and

wherein the force command overrides a previously-received lock command for another user-defined name already assigned to the particular storage device.

11. The storage system of claim 1 wherein the given host device responds to rejection of the first command by:

reading the other user-defined name utilizing a second command;

storing the other user-defined name in association with a multi-path input-output pseudoname of the particular storage device in persistent memory of the given host device; and

utilizing the other user-defined name instead of the pseudoname to identify the particular storage device.

12. The storage system of claim 1 wherein if no other user-defined name is already assigned to the particular storage device, or if another user-defined name is already assigned to the particular storage device and the first command includes a force command as an embedded command, the storage array is configured to accept the first command and to assign the particular user-defined name to the particular storage device.

13. The storage system of claim 12 wherein the given host device responds to acceptance of the first command by: storing the particular user-defined name in association with a multi-path input-output pseudoname of the particular storage device in persistent memory of the given host device; and utilizing the particular user-defined name instead of the pseudoname to identify the particular storage device.

14. A method comprising:

configuring a storage array comprising a plurality of storage devices to communicate over one or more networks with a plurality of host devices;

receiving in the storage array one or more commands from a given one of the host devices directing that a particular user-defined name be assigned to a particular one of the storage devices; and

responsive to receipt of the one or more commands, determining in the storage array if any other user-defined name is already assigned to the particular storage device, and if there is no other user-defined name already assigned to the particular storage device, assigning in the storage array the particular user-defined name to the particular storage device and storing in persistent memory of the storage array information characterizing the assignment of the particular user-defined name to the particular storage device;

wherein the one or more commands comprise a first command comprising at least a subset of:

another user-defined name already assigned to the particular storage device;

the particular user-defined name proposed for assignment to the particular storage device;

a unique identifier generated by the given host device for the particular user-defined name;

a host name of the given host device; and

at least one embedded command; and

wherein if another user-defined name is already assigned to the particular storage device and the first command does not include a force command as an embedded command, the storage array is configured to reject the first command and to leave the user-defined name of the particular storage device unchanged.

15. The method of claim 14 wherein the plurality of storage devices of the storage array collectively comprise at least a portion of a storage-area network and wherein the particular user-defined name assigned to the particular storage device is utilized consistently by the plurality of host devices to identify the particular storage device within the storage-area network.

16. The method of claim 14 wherein the given host device responds to acceptance of the one or more commands by: storing the particular user-defined name in association with a multi-path input-output pseudoname of the particular storage device in persistent memory of the given host device; and utilizing the particular user-defined name instead of the pseudoname to identify the particular storage device.

17. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code, when executed by a storage array comprising a plurality of storage devices, the storage array being configured to communicate over one or more networks with a plurality of host devices, causes the storage array:

to receive one or more commands from a given one of the host devices directing that a particular user-defined name be assigned to a particular one of the storage devices; and

responsive to receipt of the one or more commands, to determine if any other user-defined name is already assigned to the particular storage device, and if there is no other user-defined name already assigned to the particular storage device, to assign the particular user-defined name to the particular storage device and to store information characterizing the assignment of the particular user-defined name to the particular storage device in persistent memory of the storage array;

wherein the one or more commands comprise a first command comprising at least a subset of:

another user-defined name already assigned to the particular storage device;

the particular user-defined name proposed for assignment to the particular storage device;

a unique identifier generated by the given host device for the particular user-defined name;

a host name of the given host device; and

at least one embedded command; and

wherein if another user-defined name is already assigned to the particular storage device and the first command does not include a force command as an embedded command, the storage array is configured to reject the first command and to leave the user-defined name of the particular storage device unchanged.

18. The computer program product of claim 17 wherein the plurality of storage devices of the storage array collectively comprise at least a portion of a storage-area network and wherein the particular user-defined name assigned to the particular storage device is utilized consistently by the plurality of host devices to identify the particular storage device within the storage-area network.

19. The computer program product of claim 17 wherein the unique identifier comprises a random number generated by a random number generator in a kernel-space portion of a multi-path input-output driver of the given host device.

20. The computer program product of claim 17 wherein the embedded command comprises at least one of:

a replace command;

a lock command; and

a force command;

wherein the replace command directs the storage array to replace any other user- defined name already assigned to the particular storage device with the particular user-defined name;

wherein the lock command directs the storage array not to make any further change in the assignment of the particular user-defined name to the particular storage device absent receipt of a force command; and

wherein the force command overrides a previously-received lock command for another user-defined name already assigned to the particular storage device.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2017
From: PUSALKAR, MANEESH; DON, ARIEH; RAO, VINAY; DAR, YARON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043970/0485 →
Cited By (13)
US 12,204,762 US 12,216,526 US 12,222,863 US 12,299,118 US 12,299,300 US 12,299,327 US 12,353,711 US 12,405,738 US 12,487,771 US 12,493,409 US 12,498,866 US 12,561,419 US 12,568,040