Patent ID: 9225780
Filing Date: 2015-12-29
Classification: G06F,H04L

Abstract:
1. A method of writing data to a distributed file system comprising at least one client, at least one server and at least one storage resource target, the method comprising: generating, on the client, a write request comprising a byte stream to be written to the storage resource target; formatting, on the client, the byte stream into a sequence of fixed-length sectors in accordance with a T10 based protocol, the sectors each comprising a data field comprising data and a protection information field comprising protection information including a guard field, an application field and a reference field; computing, on the client, checksum data for the guard field of each sector on a per-sector basis and storing the checksum data in a client kernel; sending, across a network, the data from the data field of each sector and the protection information from the protection information field of each sector to the server, the protection information including the checksum data for each sector calculated on a per-sector basis and stored in the client kernel; verifying the data sent across the network between the client and the server by generating, for each sector, a first recalculated set of the checksum data for the guard field of each sector in T10 capable hardware on the server such that no checksum calculations are performed on a CPU of the server and using the T10 capable hardware to compare the first recalculated set of the checksum data to the checksum data sent across the network from the client; transferring, from the server to the storage resource target, the data from the data field of each sector and the protection information from the protection information field of each sector previously sent across the network to the server responsive to the first recalculated set of the checksum data matching the checksum data sent across the network from the client; verifying, on the storage resource target, the checksum data for the guard field of each sector by generating, for each sector, a second recalculated set of the checksum data for the guard field of each sector and comparing the second recalculated set of the checksum data to the checksum data sent from the server to the storage resource target; and storing the data from the data field of each sector on the storage resource target responsive to the second recalculated set of the checksum data matching the checksum data sent from the server to the storage resource target.