IP Library › Granted Patent US 11,537,322
Granted Patent B2
US 11,537,322 · App. 17/065,309 · Granted Dec 27, 2022

Granting reservation for access to a storage drive

Inventors: Gordon James Coleman (Los Altos, CA); Roland Dreier (Mountain View, CA); Peter E. Kirkpatrick (Los Altos, CA)
Assignee: Pure Storage, Inc.
G06F3/0659G06F3/061G06F3/067G06F9/4881H04L67/1097H04L67/60
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,537,322
App. No.
17/065,309
Granted
Dec 27, 2022
Kind
B2
Abstract

A method includes, responsive to receiving a modified first reservation command from a storage controller, identifying, by a storage drive, a first range of storage based on a first range identifier of the modified reservation command. The method also includes granting, by the storage drive, a reservation for access to the storage drive on behalf of a first host controller by associating the reservation for the first range with a second range of storage.

Claims (37)

1. A method comprising:

responsive to receiving a modified first reservation command from a storage controller, identifying, by a storage drive, a first range of storage based on a first range identifier of the modified reservation command, the modified first reservation command generated by replacing a first host identifier with the first range identifier; and

granting, by the storage drive, a reservation for access to the storage drive on behalf of a first host controller by associating the reservation for the first range with a second range of storage.

2. The method of claim 1 , wherein the first range is a first namespace and the first range identifier is a first namespace identifier that identifies a first namespace for the first range of storage of the storage drive.

3. The method of claim 1 , wherein granting, by the storage drive, the reservation to the access to the storage drive by associating the reservation for the first range with a second range of storage, further comprises:

holding, by the storage drive, the reservation for the first range of storage of the storage drive based on the first reservation comprising the first range identifier; and

associating, by the storage drive, a second range of storage of the storage drive with the reservation held for the first range of storage.

4. The method of claim 3 , wherein granting, by the storage drive, the reservation to the access to the storage drive by associating the reservation for the first range with a second range of storage, further comprises granting, by the storage drive, access to the first range of storage and the second range of storage of the storage drive on behalf of the first host controller, rather than a second host controller, based on the reservation for the first range.

5. The method of claim 4 , further comprising:

modifying, by the storage drive, a second reservation command comprising a second host identifier to identify the second host controller by replacing the second host identifier with a second range identifier that is associated with the second host controller and that identifies a second range of storage of the storage drive; and

sending the modified second reservation command comprising the second range identifier to the storage drive.

6. The method of claim 5 , further comprising, responsive to receiving the modified second reservation command, denying a reservation made using the modified second reservation command based on the reservation held for the first range.

7. The method of claim 1 , wherein the access to the storage drive comprises a write access, a read access, or a read-write access.

8. The method of claim 1 , wherein the first reservation command is compatible with a Nonvolatile Memory Express (NVMe) over Fabrics standard, and the modified first reservation command is compatible with a NVMe standard.

9. The method of claim 1 , wherein a second range identifier is a second namespace identifier that identifies a second namespace that is the second range of storage of the storage drive.

10. The method of claim 2 , wherein the first range and the second range represent a same physical storage of the storage drive.

11. A multi-host storage system comprising

a memory;

a storage controller, communicatively coupled to the memory, to:

receive, from a first host controller of the multi-host storage system, a first reservation command to acquire access to a storage drive that is shared to a second host controller of the multi-host storage system, the reservation command comprising a first host identifier to identify the first host controller;

modify the first reservation command by replacing the first host identifier with a first range identifier that is associated with the first host controller and that identifies a first range of storage of the storage drive; and

send the modified first reservation command comprising the first range identifier to a drive controller of the storage drive.

12. The multi-host storage system of claim 11 , the storage controller further to:

receive, from the second host controller, a second reservation command to acquire the access to the storage drive, the reservation command comprising a second host identifier to identify the second host controller;

modify the second reservation command by replacing the second host identifier with a second range identifier that is associated with the second host controller and that identifies a second range of storage of the storage drive; and

send the modified second reservation command comprising the second range identifier to the drive controller of the storage drive.

13. The multi-host storage system of claim 11 , wherein the access to the storage drive comprises a write access, a read access, or a read-write access.

14. The multi-host storage system of claim 11 , wherein the first reservation command is compatible with a Nonvolatile Memory Express (NVMe) over Fabrics standard, and the modified first reservation command is compatible with a NVMe standard.

15. A non-transitory computer-readable medium comprising instructions that, when executed by a multi-host storage system, cause the multi-host storage system to:

receive, by a storage drive of the multi-host storage system, a modified first submission queue command comprising a first range identifier, the modified first submission queue command generated by replacing a first host identifier with the first range identifier;

responsive to receiving the modified first submission queue command, identify, by the storage drive, a first range of storage based on the first range identifier of the modified submission queue command; and

grant, by the storage drive, a reservation for access to the storage drive on behalf of the first host controller by associating the reservation for the first range with a second range of storage.

16. The non-transitory computer-readable medium of claim 15 , wherein the submission queue command is an I/O command.

17. The non-transitory computer-readable medium of claim 16 , wherein the I/O command is a write command.

18. The non-transitory computer-readable medium of claim 15 , wherein the I/O command is a read command.

19. The non-transitory computer-readable medium of claim 15 , wherein the I/O command is a flush command.

20. The non-transitory computer-readable medium of claim 15 , wherein the flush command is configured to move data to the storage drive.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2020
From: COLEMAN, GORDON JAMES; DREIER, ROLAND; KIRKPATRICK, PETER E.
To: PURE STORAGE, INC.
Reel/Frame 054002/0437 →
Continuity (5)
Continuation 16001827 · Jun 6, 2018
Continuation 15667529 · Aug 2, 2017
Continuation 15419886 · Jan 30, 2017
Provisional Application 62404109 · Oct 4, 2016
Related Publication 20210019091A1 · Jan 21, 2021
Cited By (1)
US 12,293,112