DIF-CRC based fast hashing
AssigneeEMC Corporation
InventorsZhiGang Liu, Dale Elliott, Stephen Richard Ives, Shen Liu, Andrew Chanler
Life of this patent
Estimating the term…
Abstract
A block CRC based fast data hash provides efficient data integrity verification functions. A hash word is generated from block CRCs that are stored along with data blocks in a hard drive for each data and/or parity track of a storage system, such as a RAID array. Each storage system member writes the hash word into a global memory. Thereafter, a director verifies data integrity using all member's hash words with one or more XOR operations. Use of the hash words for data integrity verification saves system bandwidth and CPU processing resources.
Claims18
A method for data integrity verification, comprising:
- identifying a data segment for integrity verification, wherein the data segment includes user data and a plurality of error detecting codes corresponding to the user data, and wherein the data segment is stored across multiple disk drives of a storage system;
- performing a first operation on the data segment that packs the plurality of error detecting codes into an error detecting code pack, wherein the error detecting code pack is smaller than the data segment;
- and
- using the error detecting code pack to verify data integrity of the data segment without reading the data segment, wherein using the error detecting code pack to verify data integrity includes performing a second operation, being a hash operation, on the error detecting code pack to generate at least one hash word that is used for data integrity verification, wherein the at least one hash word has a smaller size than the error detecting code pack, and wherein, for the data integrity verification, the at least one hash word is compared with information corresponding to stored parity information of the data segment in a verification process that requires less processing resources than data verification by comparing the data segment to the stored parity information.
A non-transitory computer readable medium storing software for data integrity verification, the software comprising:
- executable code that identifies a data segment for integrity verification, wherein the data segment includes user data and a plurality of error detecting codes corresponding to the user data, and wherein the data segment is stored across multiple disk drives;
- executable code that performs a first operation on the data segment that packs the plurality of error detecting codes into an error detecting code pack, wherein the error detecting code pack is smaller than the data segment;
- and
- executable code that uses the error detecting code pack to verify data integrity of the data segment without reading the data segment, wherein using the error detecting code pack to verify data integrity includes performing a second operation, being a hash operation, on the error detecting code pack to generate at least one hash word that is used for data integrity verification, wherein the at least one hash word has a smaller size than the error detecting code pack, and wherein, for the data integrity verification, the at least one hash word is compared with information corresponding to stored parity information of the data segment in a verification process that requires less processing resources than data verification by comparing the data segment to the stored parity information.
A system for data integrity verification, comprising:
- a memory;
- at least one processor that accesses the memory, wherein the at least one processor performs functions of:
- identifying a data segment for integrity verification, wherein the data segment includes user data and a plurality of error detecting codes corresponding to the user data, and wherein the data segment is stored across multiple disk drives of a storage system;
- performing a first operation on the data segment that packs the plurality of error detecting codes into an error detecting code pack, wherein the error detecting code pack is smaller than the data segment;
- and
- using the error detecting code pack to verify data integrity of the data segment without reading the data segment, wherein using the error detecting code pack to verify data integrity includes performing a second operation, being a hash operation, on the error detecting code pack to generate at least one hash word that is used for data integrity verification, wherein the at least one hash word has a smaller size than the error detecting code pack, and wherein, for the data integrity verification, the at least one hash word is compared with information corresponding to stored parity information of the data segment in a verification process that requires less processing resources than data verification by comparing the data segment to the stored parity information.
Dependencies are inferred from the claim text.