US10496486B1ActiveUtility

Protecting data integrity in a multiple path input/output environment

82
Assignee: IBMPriority: Jun 29, 2018Filed: Jun 29, 2018Granted: Dec 3, 2019
Est. expiryJun 29, 2038(~12 yrs left)· nominal 20-yr term from priority
G06F 3/0635G06F 3/0617G06F 11/2007G06F 11/2033G06F 11/1443G06F 3/0659G06F 3/0619G06F 11/1441G06F 3/065G06F 3/067
82
PatentIndex Score
4
Cited by
16
References
17
Claims

Abstract

Methods and apparatuses for protecting data integrity in a multiple path input/output environment are provided. When sending a write command that includes data to be written to a target device from an initiator device over a specified first path of a plurality of paths by which the target device is in communication with the initiator device when a fault in the first path is detected and the status of the write command indicates that the write command was fully transmitted to the target device, a second path of a plurality of paths is selected, a reset command is sent over the second path from the initiator device to the target device, and after sending the reset command, the data are retransmitted in a second write command that a path other than the first path from the initiator device to the target device.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method, comprising:
 passing a write command that includes data to be written to a target device from a command layer within an initiator device to a transmission layer within the initiator device; 
 specifying, via the transmission layer, the write command to be sent over a first path of a plurality of paths by which the target device is in communication with the initiator device as a physical transport layer between the target device and the initiator device; 
 sending, via the transmission layer, the write command over the first path from the initiator device to the target device; 
 detecting a fault in the first path; 
 notifying, by the transmission layer, the command layer of the fault in the first path; 
 in response to detecting the fault in the first path: 
 determining a status of the write command indicating whether the write command was fully transmitted by the transmission layer before the fault was detected; 
 in response to determining the status of the write command as fully transmitted before the fault was detected:
 passing a reset command for the target device from the command layer to the transmission layer; 
 selecting, via the command layer, a second path of a plurality of paths other than the first path; 
 sending, via the transmission layer, the reset command over the second path from the initiator device to the target device; 
 passing a second write command that includes the data to be written to the target device from the command layer to the transmission layer; 
 selecting, via the command layer, a different path of a plurality of paths other than the first path; and 
 sending, via the transmission layer, the second write command over the different path from the initiator device to the target device. 
 
 
     
     
       2. The method of  claim 1 , further comprising:
 in response to determining the status of the write command as not fully transmitted: 
 passing a re-transmittal write command that includes the data to be written to the target device from the command layer to the transmission layer; 
 selecting, via the command layer, a new path of a plurality of paths other than the first path; and 
 sending, via the transmission layer, the re-transmittal write command over the new path from the initiator device to the target device. 
 
     
     
       3. The method of  claim 1 , wherein the fault in the first path is detected in response to the command layer waiting for a time longer than a predetermined time window to receive a completion response for the write command. 
     
     
       4. The method of  claim 1 , wherein the fault in the first path is detected in response to the transmission layer detecting that connectivity with the target device over the first path is lost. 
     
     
       5. The method of  claim 1 , wherein the fault includes one of a connection fault, an improperly generated command, an improperly read command, and interference generated on a switch linking the initiator device and the target device. 
     
     
       6. The method of  claim 1 , wherein the write command includes commands to write specified data to the target device, to erase specified data from the target device, and to copy specified data on the target device to a new address on the target device. 
     
     
       7. A system for protecting data integrity in a multiple path input/output environment is provided, the system comprising: a processor and a memory storage device including instructions that when executed by the processor enable the system to:
 pass a write command that includes data to be written to a target device from a command layer within an initiator device to a transmission layer within the initiator device; 
 specify, via the transmission layer, the write command to be sent over a first path of a plurality of paths by which the target device is in communication with the initiator device as a physical transport layer between the target device and the initiator device; 
 send, via the transmission layer, the write command over the first path from the initiator device to the target device; 
 detect a fault in the first path; 
 notify, by the transmission layer, the command layer of the fault in the first path; 
 in response to detecting the fault in the first path: 
 determine a status of the write command indicating whether the write command was fully transmitted by the transmission layer before the fault was detected; 
 in response to determining the status of the write command as fully transmitted before the fault was detected:
 pass a reset command for the target device from the command layer to the transmission layer; 
 select, via the command layer, a second path of a plurality of paths for the reset command to be sent over; 
 send, via the transmission layer, the reset command over the second path from the initiator device to the target device; 
 pass a second write command that includes the data to be written to the target device from the command layer to the transmission layer; 
 specify, via the transmission layer, the second write command to be sent over a different path of a plurality of paths than the first path; and 
 send, via the transmission layer, the second write command over the different path from the initiator device to the target device. 
 
 
     
     
       8. The system of  claim 7 , further operable to:
 in response to determining the status of the write command as not fully transmitted: 
 pass a re-transmittal write command that includes the data to be written to the target device from the command layer to the transmission layer; 
 select, via the command layer, a new path of a plurality of paths than the first path for the reset command to be sent over; and 
 send, via the transmission layer, the re-transmittal write command over the new path from the initiator device to the target device. 
 
     
     
       9. The system of  claim 7 , wherein the fault in the first path is detected in response to the command layer waiting for a longer time than a predetermined time window to receive a completion response for the write command. 
     
     
       10. The system of  claim 7 , wherein the fault in the first path is detected in response to the transmission layer detecting that connectivity with the target device over the first path is lost. 
     
     
       11. The system of  claim 7 , wherein the fault includes one of a connection fault, an improperly generated command, an improperly read command, and interference generated on a switch linking the initiator device and the target device. 
     
     
       12. The system of  claim 7 , wherein the write command includes commands to write specified data to the target device, to erase specified data from the target device, and to copy specified data on the target device to a new address on the target device. 
     
     
       13. A computer program product for protecting data integrity in a multi-path input/output environment, the computer program product comprising:
 a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to: 
 generate a write command that includes data to be written to a target device from an initiator device; 
 specify a first path of a plurality of paths by which the target device is in communication with the initiator device; 
 send the write command over the first path from the initiator device to the target device; 
 detect a fault in the first path; 
 in response to detecting the fault in the first path and identifying a status of the write command as fully transmitted before the fault was detected:
 select a second path of a plurality of paths by which the target device is in communication with the initiator device; 
 send a reset command over the second path from the initiator device to the target device; and 
 after sending the reset command, send a second write command that includes the data over the second path from the initiator device to the target device. 
 
 
     
     
       14. The computer program product of  claim 13 , further enabled to:
 in response to detecting the fault in the first path and identifying the status of the write command as not fully transmitted:
 select a different path of a plurality of paths than the first path by which the target device is in communication with the initiator device; and 
 send a re-transmittal write command that includes the data over the different path from the initiator device to the target device. 
 
 
     
     
       15. The computer program product of  claim 13 , wherein the fault in the first path is detected in response to the initiator device waiting for longer than a predetermined time window to receive a completion response from the target device for the write command. 
     
     
       16. The computer program product of  claim 13 , wherein the fault in the first path is detected in response to detecting that connectivity between the initiator device and the target device over the first path is lost. 
     
     
       17. The computer program product of  claim 13 , wherein the fault includes one of a connection fault, an improperly generated command, an improperly read command, and interference generated on a switch linking the initiator device and the target device.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.