US10409736B2ActiveUtilityA1

Multi-host Intelligent block level provisioning

Assignee: SEAGATE TECHNOLOGY LLCPriority: May 15, 2017Filed: May 15, 2017Granted: Sep 10, 2019
Est. expiryMay 15, 2037(~10.8 yrs left)· nominal 20-yr term from priority
G06F 13/16G06F 3/0656G06F 3/064G06F 3/061G06F 3/067G06F 11/1076G06F 3/0659G11C 8/12
50
PatentIndex Score
0
Cited by
10
References
20
Claims

Abstract

A first data storage device may be connected to first and second entities as part of a distributed network with each entity having direct block level access to logical block addresses of the first data storage device. The first data storage device can consist of a provisioning module and a staging buffer with the provisioning module configured to store and acknowledge non-volatile write data in the staging buffer in response to a write request to any logical block address of a range of logical block addresses in the first data storage device. The provisioning module may return previously committed data resident in the range of logical block addresses instead of the write data resident in the staging buffer until a commit signal is received from at least one entity for the write data.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. An apparatus comprising a first data storage device connected to first and second entities as part of a distributed network, each entity having direct block level access to logical block addresses (LBAs) of the first data storage device, the first data storage device comprising a provisioning module and a staging buffer, the provisioning module configured to store and acknowledge non-volatile write data in the staging buffer in response to a write request to any LBA of a range of LBAs in the first data storage device, the provisioning module configured to return previously committed data resident in the range of LBAs instead of the write data resident in the staging buffer prior to receipt of a commit signal received from at least one entity for the write data and to return write data resident in the staging buffer after receipt of the commit signal. 
     
     
       2. The apparatus of  claim 1 , wherein a second data storage device is connected to the first and second entities as part of the distributed network. 
     
     
       3. The apparatus of  claim 1 , wherein the reading of any LBA of the range of LBAs is delayed until the commit signal is issued to the at least one entity by a host. 
     
     
       4. The apparatus of  claim 1 , wherein the first and second entities are each redundant array of independent devices (RAID) controllers. 
     
     
       5. The apparatus of  claim 1 , wherein one or more remote hosts are connected to the first entity. 
     
     
       6. The apparatus of  claim 1 , wherein the first data storage device has a peripheral component interconnect express (PCIe) bus employing a non-volatile memory express (NVMe) protocol. 
     
     
       7. A method comprising:
 connecting first and second entities each to a data storage device as part of a distributed network, each entity having direct block level access to logical block addresses (LBAs) of the data storage device, the data storage device comprising a provisioning module and a staging buffer; 
 storing a first non-volatile data packet in the staging buffer as directed by the provisioning module in response to a write request to any LBA of a range of LBAs in the data storage device; 
 acknowledging the first non-volatile data packet with the provisioning module; 
 returning previously committed data resident in the range of LBAs instead of the first non-volatile data packet resident in the staging buffer; and 
 receiving a first commit signal from the first or second entity. 
 
     
     
       8. The method of  claim 7 , wherein the provisioning module executes an exclusive or (XOR) operation in response to a read request while the non-volatile data packet is stored in the staging buffer. 
     
     
       9. The method of  claim 8 , wherein the provisioning buffer responds to the read request with the non-volatile data packet stored in the staging buffer and the previously committed data stored in a non-volatile memory of the data storage device. 
     
     
       10. The method of  claim 8 , wherein the first non-volatile data packet is sent to the data storage device by the first entity and a second non-volatile data packet is concurrently sent to the data storage device by a second entity, the first and second non-volatile data packets each directed to a common LBA range. 
     
     
       11. The method of  claim 10 , wherein the first and second entities are not synchronized while the first and second non-volatile data packets are sent to the data storage device. 
     
     
       12. The method of  claim 10 , wherein the provisioning module conducts error detection in response to the write request being issued to a previously mapped LBA. 
     
     
       13. The method of  claim 12 , wherein the second non-volatile data packet is compared to the first non-volatile data packet upon a second commit signal from the first or second entity. 
     
     
       14. The method of  claim 7 , wherein a first host connected to the network entities as part of the distributed network has exclusive access to one or more LBAs in the data storage device. 
     
     
       15. The method of  claim 14 , wherein the first host and a second host concurrently control different first and second resources of the data storage device, access control of the first resource immediately altering access control of at least one dependent resource. 
     
     
       16. A method comprising:
 connecting first and second entities each to a first data storage device and a second data storage device as part of a distributed network, each entity having direct block level access to logical block addresses (LB As) of the first data storage device, the first data storage device comprising a provisioning module and a staging buffer; and 
 storing a first data packet in the staging buffer as directed by the provisioning module in response to a write request from the first entity; 
 returning previously committed data resident in the range of LBAs instead of the first data packet; 
 receiving a first commit signal from the first or second entity; 
 moving the first data packet from the staging buffer to non-volatile memory of the first data storage device; 
 storing a second data packet in the staging buffer as directed by the provisioning module in response to a second write request from the second entity, the first and second data packets designated by the provisioning module to a common LBA; 
 comparing the first data packet present in the non-volatile memory to the second data packet; and 
 writing less than all the second data packet to the non-volatile memory of the first data storage device in response to a second commit signal from the first or second entity. 
 
     
     
       17. The method of  claim 16 , wherein the provisioning module writes parity data of the first data packet in the second data storage device in response to the first commit signal. 
     
     
       18. The method of  claim 16 , wherein the second data packet is a result of the comparison between the first data packet and a third data packet resident in the non-volatile memory. 
     
     
       19. The method of  claim 16 , wherein the provisioning module assigns a logical address to the first data packet after the first data packet is stored in the staging buffer. 
     
     
       20. The method of  claim 16 , wherein the first and second entities send the respective first and second write requests along with the first and second commit signals without assigning a logical address.

Join the waitlist — get patent alerts

Track US10409736B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.