US11379329B2ActiveUtilityA1

Validation of data written via two different bus interfaces to a dual server based storage controller

63
Assignee: IBMPriority: Sep 5, 2017Filed: Jan 15, 2020Granted: Jul 5, 2022
Est. expirySep 5, 2037(~11.2 yrs left)· nominal 20-yr term from priority
G06F 11/1666G06F 11/2097G06F 11/2035G06F 2212/1008G06F 11/221G06F 11/2043G06F 12/0875G06F 11/1625
63
PatentIndex Score
0
Cited by
34
References
15
Claims

Abstract

A first server of a storage controller is configured to communicate with a host via a first bus interface, and a second server of the storage controller is configured to communicate with the host via a second bus interface. Data is written from the host via the first bus interface to a cache of the first server and via the second bus interface to a non-volatile storage of the second server. The data stored in the cache of the first server is periodically compared to the data stored in the non-volatile storage of the second server.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method, comprising:
 configuring a first server of a storage controller to communicate with a host via a first bus interface, and configuring a second server of the storage controller to communicate with the host via a second bus interface; 
 writing data via a syncio process from the host via the first bus interface to a cache of the first server and via the second bus interface to a non-volatile storage of the second server; and 
 periodically comparing the data stored in the cache of the first server to the data stored in the non-volatile storage of the second server, wherein the syncio process allows the host to hold an application thread in a spin loop waiting for a write operation to complete; and 
 in response to the data stored in the cache of the first server matching the data stored in the non-volatile storage of the second server during the comparing, continuing to operate both the first server and the second server. 
 
     
     
       2. The method of  claim 1 , the method further comprising:
 in response to the data stored in the cache of the first server not matching the data stored in the non-volatile storage of the second server during the comparing, disabling operation of the second server, and continuing to service commands from the host via the first server. 
 
     
     
       3. The method of  claim 2 , wherein the comparing of the data is performed after a predetermined plurality of destages from the cache of the first server or after passage of a predetermined amount of time. 
     
     
       4. A method, comprising:
 configuring a first server of a storage controller to communicate with a host via a first bus interface, and configuring a second server of the storage controller to communicate with the host via a second bus interface; 
 writing data via a syncio process from the host via the first bus interface to a cache of the first server and via the second bus interface to a non-volatile storage of the second server; and 
 periodically comparing the data stored in the cache of the first server to the data stored in the non-volatile storage of the second server, wherein the syncio process allows the host to hold an application thread in a spin loop waiting for a write operation to complete, wherein a likelihood of an error in writing identical data to the cache of the first server and the non-volatile storage of the second server is greater when the identical data is attempted to be written from the host to the first server and the second server over the first bus interface and the second bus interface, than over a network interface. 
 
     
     
       5. The method of  claim 4 , the method further comprising:
 in response to determining that either data in records of a first buffer does not match with data in records of a second buffer, or record headers except for adapter identifiers of the records of the first buffer do not match with record headers except for adapter identifiers of the records of the second buffer, determining that the data stored in the cache of the first server does not match the data stored in the non-volatile storage of the second server. 
 
     
     
       6. A system communicatively coupled to a host, the system comprising:
 a memory; and 
 a processor coupled to the memory, wherein the processor performs operations, the operations performed by the processor comprising: 
 configuring a first server to communicate with the host via a first bus interface, and configuring a second server to communicate with the host via a second bus interface; 
 writing data via a syncio process from the host via the first bus interface to a cache of the first server and via the second bus interface to a non-volatile storage of the second server; 
 periodically comparing the data stored in the cache of the first server to the data stored in the non-volatile storage of the second server, wherein the syncio process allows the host to hold an application thread in a spin loop waiting for a write operation to complete; and 
 in response to the data stored in the cache of the first server matching the data stored in the non-volatile storage of the second server during the comparing, continuing to operate both the first server and the second server. 
 
     
     
       7. The system of  claim 6 , the operations further comprising:
 in response to the data stored in the cache of the first server not matching the data stored in the non-volatile storage of the second server during the comparing, disabling operation of the second server, and continuing to service commands from the host via the first server. 
 
     
     
       8. The system of  claim 7 , wherein the comparing of the data is performed after a predetermined plurality of destages from the cache of the first server or after passage of a predetermined amount of time. 
     
     
       9. A system communicatively coupled to a host, the system comprising:
 a memory; and 
 a processor coupled to the memory, wherein the processor performs operations, the operations performed by the processor comprising: 
 configuring a first server to communicate with the host via a first bus interface, and configuring a second server to communicate with the host via a second bus interface; 
 writing data via a syncio process from the host via the first bus interface to a cache of the first server and via the second bus interface to a non-volatile storage of the second server; and 
 periodically comparing the data stored in the cache of the first server to the data stored in the non-volatile storage of the second server, wherein the syncio process allows the host to hold an application thread in a spin loop waiting for a write operation to complete, wherein a likelihood of an error in writing identical data to the cache of the first server and the non-volatile storage of the second server is greater when the identical data is attempted to be written from the host to the first server and the second server over the first bus interface and the second bus interface, than over a network interface. 
 
     
     
       10. The system of  claim 9 , the operations further comprising:
 in response to determining that either data in records of a first buffer does not match with data in records of a second buffer, or record headers except for adapter identifiers of the records of the first buffer do not match with record headers except for adapter identifiers of the records of the second buffer, determining that the data stored in the cache of the first server does not match the data stored in the non-volatile storage of the second server. 
 
     
     
       11. A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform operations, the operations comprising:
 configuring a first server of a storage controller to communicate with a host via a first bus interface, and configuring a second server of the storage controller to communicate with the host via a second bus interface; 
 writing data via a syncio process from the host via the first bus interface to a cache of the first server and via the second bus interface to a non-volatile storage of the second server; 
 periodically comparing the data stored in the cache of the first server to the data stored in the non-volatile storage of the second server, wherein the syncio process allows the host to hold an application thread in a spin loop waiting for a write operation to complete; and 
 in response to the data stored in the cache of the first server matching the data stored in the non-volatile storage of the second server during the comparing, continuing to operate both the first server and the second server. 
 
     
     
       12. The computer program product of  claim 11 , the operations further comprising:
 in response to the data stored in the cache of the first server not matching the data stored in the non-volatile storage of the second server during the comparing, disabling operation of the second server, and continuing to service commands from the host via the first server. 
 
     
     
       13. The computer program product of  claim 12 , wherein the comparing of the data is performed after a predetermined plurality of destages from the cache of the first server or after passage of a predetermined amount of time. 
     
     
       14. A computer program product, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform operations, the operations comprising:
 configuring a first server of a storage controller to communicate with a host via a first bus interface, and configuring a second server of the storage controller to communicate with the host via a second bus interface; 
 writing data via a syncio process from the host via the first bus interface to a cache of the first server and via the second bus interface to a non-volatile storage of the second server; and 
 periodically comparing the data stored in the cache of the first server to the data stored in the non-volatile storage of the second server, wherein the syncio process allows the host to hold an application thread in a spin loop waiting for a write operation to complete, wherein a likelihood of an error in writing identical data to the cache of the first server and the non-volatile storage of the second server is greater when the identical data is attempted to be written from the host to the first server and the second server over the first bus interface and the second bus interface, than over a network interface. 
 
     
     
       15. The computer program product of  claim 14 , the operations further comprising:
 in response to determining that either data in records of a first buffer does not match with data in records of a second buffer, or record headers except for adapter identifiers of the records of the first buffer do not match with record headers except for adapter identifiers of the records of the second buffer, determining that the data stored in the cache of the first server does not match the data stored in the non-volatile storage of the second server.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.