US 12,248,377 B2
Enabling data integrity verification with multipathing software and storage array microcode
Venkatesh Dn, Bangalore (IN); Peniel Charles, Bangalore (IN); and Owen Crowley, Carrigaline (IE)
Assigned to Dell Products, L.P., Hopkinton, MA (US)
Filed by Dell Products, L.P., Hopkinton, MA (US)
Filed on Apr. 19, 2023, as Appl. No. 18/136,385.
Prior Publication US 2024/0354205 A1, Oct. 24, 2024
Int. Cl. G06F 11/00 (2006.01); G06F 3/06 (2006.01); G06F 11/10 (2006.01); G06F 11/16 (2006.01); G06F 11/20 (2006.01); G06F 21/64 (2013.01)
CPC G06F 11/1625 (2013.01) [G06F 3/0619 (2013.01); G06F 3/0635 (2013.01); G06F 3/0673 (2013.01); G06F 11/1004 (2013.01); G06F 11/2007 (2013.01); G06F 21/64 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method of enabling data integrity verification with multipathing software and storage array microcode, comprising:
identifying an application executing on a host to multipathing software executing on the host, to instruct the multipathing software to implement data integrity verification for Input Output (IO) operations by the application by adding Data Integrity Field (DIF) block extensions to write IO operations by the application and by processing DIF block extensions for read IO operations by the application;
identifying the application to a storage array, by the multipathing software, to instruct the storage array to implement data integrity verification for IO operations by the application by processing DIF block extensions for the write IO operations by the application, and by adding DIF block extensions to responses to the read IO operations by the application;
receiving write IO operations from the application executing on the host by the multipathing software executing on the host, each first write IO operation including a respective data block;
adding respective DIF extensions to each respective write IO operation by the multipathing software executing on the host;
routing the write IO operations with DIF extensions by the multipathing software over a plurality of paths between the host and the storage array, by selecting between the plurality of paths by the multipathing software for each respective write IO operation; and
forwarding the write IO operations with DIF extensions over the respective selected paths to the storage array.