WO2016137464A1 - Checksum requests of files - Google Patents

Checksum requests of files Download PDF

Info

Publication number
WO2016137464A1
WO2016137464A1 PCT/US2015/017676 US2015017676W WO2016137464A1 WO 2016137464 A1 WO2016137464 A1 WO 2016137464A1 US 2015017676 W US2015017676 W US 2015017676W WO 2016137464 A1 WO2016137464 A1 WO 2016137464A1
Authority
WO
WIPO (PCT)
Prior art keywords
checksum
file
segment
data storage
storage device
Prior art date
Application number
PCT/US2015/017676
Other languages
French (fr)
Inventor
Curtis C. Ballard
Original Assignee
Hewlett Packard Enterprise Development Lp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2015/017676 priority Critical patent/WO2016137464A1/en
Publication of WO2016137464A1 publication Critical patent/WO2016137464A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Definitions

  • Data stored in a data storage device may be susceptible to loss due to a variety of factors.
  • the data may be loss or corrupted due to a media failure of the storage device.
  • FIG. 1 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to an example
  • FIG. 2 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example
  • FIG. 3 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example
  • FIG. 4 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example
  • FIG. 5 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example
  • FIG. 6 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example
  • FIG. 7 is a block diagram of a computing device to generate a checksum request, according to an example
  • FIG. 8 is a flowchart illustrating a method of operation at a data storage device to generate a checksum of a file based on a checksum request, according to an example
  • FIG. 9 is a flowchart illustrating a method of operation at a data storage device to generate a checksum of a file based on a checksum request, according to another example.
  • FIG. 10 is a flowchart illustrating a method of operation at a computing device to generate a checksum request, according to an example.
  • a computing device may read the data from the data storage device and generate a checksum of the data. The computing device may compare the checksum to a known good checksum of the data to verify the integrity of the data.
  • a network such as the Internet
  • reading the data from the data storage device consumes network bandwidth. Thus, available network bandwidth may be reduced.
  • Examples described herein provide a data storage device that may include a communication interface to receive a checksum request from a computing device.
  • the checksum request may include file segment information of a file and an expected checksum of the file.
  • the file segment information may include a starting logical block address (LBA) of a segment of the file and a length value of the segment.
  • the data storage device may also include a checksum calculation module to, in response to a reception of the checksum request generate a checksum of the segment using the file segment information.
  • the data storage device may further include a checksum comparison module to compare the checksum to the expected checksum to generate a comparison result.
  • the checksum comparison module may also transmit the comparison result to the computing device via the communication interface.
  • the data storage device may transmit the checksum to the computing device via the communication interface. In this manner, examples described herein may reduce consumption of network bandwidth.
  • FIG. 1 is a block diagram of a data storage device 100 to generate a checksum of a file based on a checksum request, according to an example.
  • Data storage device 100 may be a hard disk drive, a tape drive, or any device that stores data via a storage medium.
  • Data storage device 100 may include communication interface 102, a checksum calculation module 104, and a checksum comparison module 106.
  • Communication interface 102 may be a transceiver.
  • communication interface 102 may be implemented using a transceiver that is compliant with an Ethernet protocol, such as one from the Institute of Electrical and Electronics Engineers (IEEE) 802.1 1 family of protocols, or one from the IEEE 802.3 family of protocols.
  • IEEE Institute of Electrical and Electronics Engineers
  • communication interface 102 may be implemented using a transceiver that is compliant with an InterNational Committee for Information Technology Standards (INCITS) T10 protocol, such as the Fibre Channel Protocol-4 (FCP-4) for fibre channel storage devices.
  • IICITS InterNational Committee for Information Technology Standards
  • FCP-4 Fibre Channel Protocol-4
  • Communication interface 102 may be implemented using hardware, processor executable instructions, or a combination thereof.
  • Checksum calculation module 104 may be any device that calculates a checksum of data, such as data stored as a file.
  • a file may be a collection of data that is identified by a distinct file name.
  • a checksum may be a numerical value generated using the data as input to a checksum function.
  • a checksum function may be a hash function, such as the secure hash algorithm-1 (SHA-1 ).
  • Checksum calculation module 104 may be implemented using hardware, processor executable instructions, or a combination thereof. In some examples, checksum calculation module 104 may be implemented as a circuit. In some examples, checksum calculation module 104 may be implemented using a controller, such as a field- programmable gate array (FPGA) and instructions executable by the controller.
  • FPGA field- programmable gate array
  • Checksum comparison module 106 may be any device that compares the difference between multiple checksums.
  • Checksum comparison module 106 may be implemented using hardware, processor executable instructions, or a combination thereof.
  • checksum comparison module 106 may be implemented as a circuit.
  • checksum comparison module 106 may be implemented using a controller, such as a FPGA and instructions executable by the controller.
  • a data storage device 100 may be connected to a computing device 108 to store data for computing device 108.
  • data storage device 100 may be connected to computing device 108 via a network, such as the Internet or a local area network (LAN).
  • Computing device 108 may transmit a first checksum request 1 10 associated with a first file 1 12 to data storage device 100 to initiate an integrity verification operation of first file 1 12.
  • First checksum request 1 10 may be generated by a data storage
  • the data storage management application (not shown in FIG. 1 ) executing on computing device 108.
  • the data storage management application may be implemented using processor executable instructions.
  • First checksum request 1 10 may include file segment information 1 14 and an expected checksum 1 16.
  • File segment information 1 14 may identify a range of logical block addresses (LBAs) where a segment of first file 1 12 is stored in a storage medium (not shown in FIG. 1 ) of data storage device 100.
  • first file 1 12 may include a single segment.
  • file segment information 1 14 may identify a range of LBAs where first file 1 12 is stored. Checksum calculation of a file having a plurality of segments is described in more detail in FIG. 2.
  • File segment information 1 14 may include a starting LBA 1 18 and a length value 120.
  • Starting LBA 1 18 may identify the beginning of the range of LBAs where first file 1 12 is stored.
  • Length value 120 may indicate the number of LBAs in the range.
  • starting LBA 1 18 may indicate a LBA of 0001 and length value 120 may be a value of 2.
  • first file 1 12 may be stored in a range of LBAs from 0001 to 0002.
  • Expected checksum 1 16 may be a checksum of first file 1 12 that is generated from a known good copy of first file 1 12.
  • expected checksum 1 16 may serve as a reference checksum for first file 1 12 to verify the integrity of first file 1 12.
  • Data storage device 100 may receive first checksum request 1 10 via communication interface 102.
  • Communication interface 102 may transmit first checksum request 1 10 to checksum calculation module 104.
  • checksum calculation module 104 may generate/compute a checksum of first file 1 12 using file segment information 1 14.
  • checksum calculation module 104 may read first file 1 12 by reading data stored in the range of LBAs determined using starting LBA 1 18 and length value 120.
  • Checksum calculation module 104 may generate a computed checksum 122 of first file 1 12 via a checksum function after reading first file 1 12.
  • Checksum calculation module 104 may transmit computed checksum 122 to checksum comparison module 106.
  • Checksum comparison module 106 may compare computed checksum 122 to expected checksum 1 16 to generate a comparison result 124. Comparison result 124 may indicate whether computed checksum 122 matches expected checksum 1 16.
  • checksum comparison module 106 may receive expected checksum 1 16 from checksum calculation module 104.
  • checksum comparison module 106 may receive expected checksum 1 16 via communication interface 102 when communication interface 102 receives file segment information 1 14.
  • Checksum comparison module 106 may transmit comparison result 124 to computing device 108 via communication interface 102. In some examples, checksum comparison module 106 may transmit comparison result 124 in a checksum report 126. Computing device 108 may receive comparison result 124 and/or checksum report 126 from data storage device 100.
  • Computing device 108 may determine an integrity of first file 1 12 using
  • comparison result 124 For example, when comparison result 124 indicates that computed checksum 122 does not match expected checksum 1 16, computing device 108 may determine that the integrity of first file 1 12 has been
  • comparison result 124 indicates that computed checksum 122 matches expected checksum 1 16
  • computing device 108 may determine that the integrity of first file 1 12 is not compromised or corrupted.
  • FIG. 2 is a block diagram of data storage device 200 to generate a checksum of a file based on a checksum request, according to another example.
  • Data storage device 200 may be similar to data storage device 100 of FIG. 1 .
  • Data storage device 200 may include communication interface 102, checksum calculation module 104, checksum comparison module 106, a storage medium 202, and a read mechanism.
  • Storage medium 202 may be any electronic, magnetic, optical, or other physical storage device that contains or stores data, such as files.
  • storage medium 202 may be, for example, a hard disk drive platter, a magnetic tape cartridge, etc.
  • Read mechanism 204 may be any device that reads data from storage medium 202.
  • read mechanism 204 may be a tape head.
  • a plurality of files may be stored in storage medium 202, such as first file 1 12 and a second file 206.
  • second file 206 may include a plurality of segments, such as a first segment and a second segment. Each of the plurality of segments of second file 206 may be stored at a distinct range of LBAs.
  • computing device 108 may transmit a second checksum request 208 associated with files 1 12 and 206 to data storage device 200 to initiate an integrity verification operation of files 1 12 and 206.
  • Second checksum request 208 may include a file identifier 210 of first file 1 12, a file identifier 212 of second file 206, file segment information 1 14 of first file 1 12, expected checksum 1 16 of first file 1 12, file segment information 214 of second file 206, and an expected checksum 216 of second file 206.
  • File segment information 214 may include a starting LBA 218 of the first segment of second file 206, a length value 220 of the first segment of second file 206, a starting LBA 222 of the second segment of second file 206, and a length value 224 of the second segment of second file 206.
  • File identifier 210 may include information to enable data storage device 100 to identify first file 1 12.
  • file identifier 210 may indicate that file segment information 1 14 and expected checksum 1 16 are associated with first file 1 12.
  • file identifier 210 may also include a file name of first file 1 12.
  • File identifier 212 may include information to enable data storage device 100 to identify second file 206.
  • file identifier 212 may indicate that file segment information 214 and expected checksum 216 are associated with second file 206.
  • File identifier 212 may indicate that starting LBA 218 and length value 220 are associated with the first segment of second file 206.
  • File identifier 212 may also indicate that starting LBA 222 and length value 224 are associated with the second segment of second file 206.
  • file identifier 212 may also include a file name of second file 206.
  • Data storage device 200 may receive second checksum request 208 via communication interface 102.
  • Communication interface 102 may transmit second checksum request 208 to checksum calculation module 104.
  • checksum calculation module 104 may generate distinct computed checksums for files 1 12 and 206 using second checksum request 208.
  • Checksum calculation module 104 may read first file 1 12 via read mechanism 204 using file identifier 210 and file segment information 1 14.
  • Checksum calculation module 104 may read second file 206 via read mechanism 204 using file identifier 212 and file segment information 214. Checksum calculation module 104 may generate distinct computed checksums for files 1 12 and 206 after reading files 1 12 and 206. For example, checksum calculation module 104 may generate computed checksum 122 for file 1 12 as described in FIG. 1 . Checksum calculation module 104 may generate a computed checksum 226 of second file 206. To generate/compute computed checksum 226, checksum calculation module 104 may add a first segment checksum of the first segment to a second segment checksum of the second segment. [0030] Checksum calculation module 104 may generate the first segment checksum of the first segment after reading the first segment via read
  • checksum calculation module 104 may determine a LBA range (i.e., starting LBA 218 and length value 220) of the first segment via file identifier 212.
  • Checksum calculation module 104 may read the first segment by reading the LBA range via read mechanism 204.
  • Checksum calculation module 104 may apply a checksum function to the first segment to generate the first segment checksum.
  • Checksum calculation module 104 may generate the second segment checksum of the second segment after reading the second segment via read mechanism 204. For example, checksum calculation module 104 may determine a LBA range (i.e., starting LBA 222 and length value 224) of the second segment via file identifier 212. Checksum calculation module 104 may read the second segment by reading the LBA range via read mechanism 204. Checksum calculation module 104 may apply a checksum function to the second segment to generate the second segment checksum.
  • LBA range i.e., starting LBA 222 and length value 22
  • checksum calculation module 104 may transmit computed checksums 122 and 226 to checksum comparison module 106.
  • Checksum comparison module 106 may generate comparison result 124 of first file 1 12 as described in FIG. 1 .
  • Checksum comparison module 106 may also generate a comparison result 228 of second file 206 by comparing computed checksum 226 to expected checksum 216.
  • Checksum comparison module 106 may transmit a checksum report 230 that includes comparison results 124 and 228 to computing device 108 via communication interface 102.
  • checksum report 230 may indicate that comparison result 124 is for first file 1 12 and comparison result 228 is for second file 206.
  • checksum comparison module 106 may transmit comparison results 124 and 228 to computing device 108 separately.
  • Computing device 108 may determine integrities of files 1 12 and 206 via comparison results 124 and 228, respectively.
  • computing device 108 may transmit a replacement copy of the corrupted file to data storage device 200 so that the corrupted file can be replaced. For example, computing device 108 may determine that first file 1 12 is corrupted via comparison result 124. Computing device 108 may transmit a replacement copy 232 of first file 1 12 to data storage device 200 so that first file 1 12 may be replaced. For example, first file 1 12 may be erased from storage medium 202 and rewritten using replacement copy 232 via a write mechanism (not shown in FIG. 2). In some examples, computing device 108 may transmit a write instruction (not shown in FIG. 2) to data storage device 200 so data storage device 200 may overwrite first file 1 12 with a new copy.
  • FIG. 3 is a block diagram of a data storage device 300 to generate a checksum of a file based on a checksum request, according to another example.
  • Data storage device 300 may be similar to data storage device 100 of FIG. 1 .
  • Data storage device 300 may include communication interface 102 and a checksum calculation module 302.
  • Checksum calculation module 302 may be similar to checksum calculation module 104 of FIG. 1 .
  • Data storage device 300 may operate similar to data storage device 100 to calculate a checksum for a file. However, unlike data storage device 100 in which a comparison result is transmitted back to computing device 108, data storage device 300 may transmit a checksum of a file to computing device 108.
  • data storage device 300 may receive a first checksum request 304 associated with first file 1 12 from computing device 108.
  • First checksum request 304 may include file segment information 1 14.
  • Checksum calculation module 302 may generate computed checksum 122 of first file 1 12 based on first checksum request 304.
  • Checksum calculation module 302 may transmit computed checksum 122 to computing device 108 via communication interface 102.
  • checksum calculation module 302 may transmit computed checksum 122 in a checksum report 306 to computing device 108 via communication interface 102.
  • Computing device 108 may determine the integrity of first file 1 12 using computed checksum 122.
  • FIG. 4 is a block diagram of a data storage device 400 to generate a checksum of a file based on a checksum request, according to another example.
  • Data storage device 400 may be similar to data storage device 200 of FIG. 2.
  • Data storage device 400 may include communication interface 102, checksum calculation module 302, storage medium 202, and read mechanism 204.
  • Data storage device 400 may operate similar to data storage device 200 to calculate a checksum for a file. However, unlike data storage device 200 in which a comparison result is transmitted back to computing device 108, data storage device 400 may transmit a checksum of a file to computing device 108.
  • data storage device 400 may receive a second checksum request 402 associated with files 1 12 and 206 from computing device 108.
  • Second checksum request 402 may include file segment information 1 14, file identifiers 210 and 212, and file segment information 214.
  • checksum calculation module 302 may read files 1 12 and 206 from storage medium 202 via read mechanism 204.
  • Checksum calculation module 302 may generate computed checksum 122 of first file 1 12 and computed checksum 226 of second file 206 based on second checksum request 402.
  • Checksum calculation module 302 may transmit a checksum report 404 that includes computed checksums 122 and 226 to computing device 108 via communication interface 102.
  • Computing device 108 may determine the integrities of files 1 12 and 206 using checksum report 404.
  • FIG. 5 is a block diagram of a data storage device 500 to generate a checksum of a file based on a checksum request, according to another example.
  • Data storage device 500 may implement data storage device 100 of FIG. 1 and/or data storage device 200 of FIG. 2.
  • Data storage device 500 may include a processor 502 and a computer-readable storage medium 504.
  • Processor 502 may be a central processing unit (CPU), a
  • Processor 502 may fetch, decode, and execute instructions 506, 508, 510, and and 512 to control a process of generating a checksum of a file.
  • processor 502 may include at least one electronic circuit that includes electronic
  • Computer-readable storage medium 504 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
  • computer-readable storage medium 504 may be, for example, Random Access Memory (RAM), an Electrically Erasable
  • computer-readable storage medium 504 may be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals.
  • computer-readable storage medium 504 may be encoded with a series of processor executable instructions 506, 508, 510, and 512 for receiving a checksum request, generating a computed checksum of a file, comparing the computed checksum to an expected checksum to generate a comparison result, and transmitting the comparison result to a computing device.
  • Checksum request reception instructions 506 may receive a checksum request from a computing device. For example, referring to FIG. 1 , data storage device 100 may receive first checksum request 1 10 via communication interface 102. Checksum generation instructions 508 may generate a computed
  • checksum calculation module 104 may calculate checksum of a file associated with a checksum request using the checksum request. For example, referring to FIG. 1 , in response to a reception of first checksum request 1 10, checksum calculation module 104 may
  • Checksum comparison instructions 510 may compare a computed checksum of a file to an expected checksum of the file. For example, referring to FIG. 1 , checksum comparison module 106 may compare computed checksum 122 to expected checksum 1 16 to generate a comparison result 124.
  • Comparison result transmission instructions 512 may transmit a comparison result to a computing device.
  • checksum comparison module 106 may transmit comparison result 124 to computing device 108 via communication interface 102.
  • FIG. 6 is a block diagram of a data storage device 600 to generate a checksum of a file based on a checksum request, according to another example.
  • Data storage device 600 may implement data storage device 300 of FIG. 3 and/or data storage device 400 of FIG. 4.
  • Data storage device 600 may include a processor 602 and a computer-readable storage medium 604.
  • Processor 602 may be similar to processor 502 of FIG. 5.
  • Computer-readable storage medium 604 may be similar to computer-readable storage medium 504 of FIG. 5.
  • Computer-readable storage medium 604 may be encoded with instructions 506, 508, and 606.
  • Checksum transmission instructions 606 may transmit a computed checksum to a computing device.
  • checksum calculation module 302 may transmit computed checksum 122 to computing device 108 via communication interface 102.
  • FIG. 7 is a block diagram of a computing device 700 to generate a checksum request, according to an example.
  • Computing device 700 may implement computing device 108 of FIGs. 1 -4.
  • Computing device 700 may include a processor 702 and a computer-readable storage medium 704.
  • Processor 702 may be similar to processor 502 of FIG. 5.
  • Computer-readable storage medium 704 may be similar to computer-readable storage medium 504.
  • Computer-readable storage medium 704 may be encoded with a series of instructions 706, 708, and 710 to control a process of transmitting a checksum request associated with a file to a data storage device, receiving a checksum report associated with the file, and determining an integrity of the file using the checksum report.
  • Checksum request transmission instructions 706 may transmit a checksum request to a data storage device.
  • computing device 108 may transmit a first checksum request 1 10 associated with a first file 1 12 to data storage device 100 to initiate an integrity verification operation of first file 1 12.
  • Checksum report reception instructions 708 may receive a checksum report from the data storage device.
  • computing device 108 may receive comparison result 124 and/or checksum report 126 from data storage device 100.
  • File integrity determination instructions 710 may determine an integrity of a file using the checksum report.
  • computing device 108 may determine an integrity of first file 1 12 using comparison result 124.
  • FIG. 8 is a flowchart illustrating a method 800 of operation at a data storage device to generate a checksum of a file based on a checksum request, according to an example.
  • Method 800 may be implemented using data storage device 100 of FIG. 1 , data storage device 200 of FIG. 2, and/or data storage device 600 of FIG. 6.
  • Method 800 may include receiving, at a data storage device, a checksum request from a computing device, where the checksum request includes file segment information of a file and an expected checksum of the file, and where the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment, at 802.
  • LBA logical block address
  • data storage device 100 may receive first checksum request 1 10 via communication interface 102.
  • Method 800 may also include, in response to a reception of the checksum request, generating, via a checksum calculation module of the data storage device, a computed checksum of the file using the file segment information, at 804.
  • checksum calculation module 104 may generate, via a checksum calculation module of the data storage device, a computed checksum of the file using the file segment information.
  • Method 800 may further include comparing, via a checksum
  • checksum comparison module 106 may compare computed checksum 122 to expected checksum 1 16 to generate a comparison result 124.
  • Method 800 may further include transmitting the comparison result to the computing device via a communication interface of the data storage device, at 808.
  • checksum comparison module 106 may transmit comparison result 124 to computing device 108 via communication interface 102.
  • FIG. 9 is a flowchart illustrating a method 900 of operation at a data storage device to generate a checksum of a file based on a checksum request, according to another example.
  • Method 900 may be implemented using data storage device 300 of FIG. 3, data storage device 400 of FIG. 4, and/or data storage device 600 of FIG. 6.
  • Method 900 may include receiving, at a data storage device, a checksum request from a computing device, where the checksum request includes file segment information of a file and a file identifier of the file, and where the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment, at 902.
  • data storage device 400 may receive a second checksum request 402 associated with files 1 12 and 206 from computing device 108.
  • Second checksum request 402 may include file segment information 1 14, file identifiers 210 and 212, and file segment information 214.
  • Method 900 may also include, in response to a reception of the checksum request, generating, via a checksum calculation module of the data storage device, a computed checksum of the file using the file segment information, at 904.
  • checksum calculation module 302 may generate computed checksum 122 of first file 1 12 based on first checksum request 304.
  • Method 900 may further include transmitting the computed checksum to the computing device via a communication interface of the data storage device, at 906.
  • checksum calculation module 302 may transmit computed checksum 122 to computing device 108 via communication interface 102.
  • FIG. 10 is a flowchart illustrating a method 1000 of operation at a computing device to generate a checksum request, according to an example.
  • Method 1000 may be implemented using computing device 108 of FIGs. 1 -4 and/or computing device 700 of FIG. 7.
  • computing device 108 may receive comparison result 124 and/or checksum report 126 from data storage device 100. Method 1000 may further include determining an integrity of the file using the checksum report, at 1006. For example, referring to FIG. 1 , computing device 108 may determine an integrity of first file 1 12 using comparison result 124.

Abstract

An example data storage device includes a communication interface to receive a checksum request from a computing device. The checksum request includes file segment information of a file and an expected checksum of the file. The file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment. The data storage device also includes a checksum calculation module to, in response to a reception of the checksum request, generate a computed checksum of the file using the file segment information. The data storage device further includes a checksum comparison module to compare the computed checksum to the expected checksum to generate a comparison result of the file. The checksum comparison module is also to transmit the comparison result to the computing device via the communication interface.

Description

CHECKSUM REQUESTS OF FILES
BACKGROUND
[0001] Data stored in a data storage device, such as a hard disk drive, may be susceptible to loss due to a variety of factors. For example, the data may be loss or corrupted due to a media failure of the storage device.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Some examples of the present application are described with respect to the following figures:
[0003] FIG. 1 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to an example;
[0004] FIG. 2 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example;
[0005] FIG. 3 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example;
[0006] FIG. 4 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example;
[0007] FIG. 5 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example;
[0008] FIG. 6 is a block diagram of a data storage device to generate a checksum of a file based on a checksum request, according to another example;
[0009] FIG. 7 is a block diagram of a computing device to generate a checksum request, according to an example;
[0010] FIG. 8 is a flowchart illustrating a method of operation at a data storage device to generate a checksum of a file based on a checksum request, according to an example;
[0011] FIG. 9 is a flowchart illustrating a method of operation at a data storage device to generate a checksum of a file based on a checksum request, according to another example; and [0012] FIG. 10 is a flowchart illustrating a method of operation at a computing device to generate a checksum request, according to an example.
DETAILED DESCRIPTION
[0013] To verify the integrity of data stored in a data storage device, a computing device may read the data from the data storage device and generate a checksum of the data. The computing device may compare the checksum to a known good checksum of the data to verify the integrity of the data. However, when the data storage device is connected to the computing device via a network, such as the Internet, reading the data from the data storage device consumes network bandwidth. Thus, available network bandwidth may be reduced.
[0014] Examples described herein provide a data storage device that may include a communication interface to receive a checksum request from a computing device. The checksum request may include file segment information of a file and an expected checksum of the file. The file segment information may include a starting logical block address (LBA) of a segment of the file and a length value of the segment. The data storage device may also include a checksum calculation module to, in response to a reception of the checksum request generate a checksum of the segment using the file segment information. In some examples, the data storage device may further include a checksum comparison module to compare the checksum to the expected checksum to generate a comparison result. The checksum comparison module may also transmit the comparison result to the computing device via the communication interface. In some examples, the data storage device may transmit the checksum to the computing device via the communication interface. In this manner, examples described herein may reduce consumption of network bandwidth.
[0015] Referring now to the figures, FIG. 1 is a block diagram of a data storage device 100 to generate a checksum of a file based on a checksum request, according to an example. Data storage device 100, for example, may be a hard disk drive, a tape drive, or any device that stores data via a storage medium. Data storage device 100 may include communication interface 102, a checksum calculation module 104, and a checksum comparison module 106.
[0016] Communication interface 102 may be a transceiver. In some examples, communication interface 102 may be implemented using a transceiver that is compliant with an Ethernet protocol, such as one from the Institute of Electrical and Electronics Engineers (IEEE) 802.1 1 family of protocols, or one from the IEEE 802.3 family of protocols. In some examples, communication interface 102 may be implemented using a transceiver that is compliant with an InterNational Committee for Information Technology Standards (INCITS) T10 protocol, such as the Fibre Channel Protocol-4 (FCP-4) for fibre channel storage devices. Communication interface 102 may be implemented using hardware, processor executable instructions, or a combination thereof.
[0017] Checksum calculation module 104 may be any device that calculates a checksum of data, such as data stored as a file. As used herein, a file may be a collection of data that is identified by a distinct file name. As used herein, a checksum may be a numerical value generated using the data as input to a checksum function. For example, a checksum function may be a hash function, such as the secure hash algorithm-1 (SHA-1 ). Checksum calculation module 104 may be implemented using hardware, processor executable instructions, or a combination thereof. In some examples, checksum calculation module 104 may be implemented as a circuit. In some examples, checksum calculation module 104 may be implemented using a controller, such as a field- programmable gate array (FPGA) and instructions executable by the controller.
[0018] Checksum comparison module 106 may be any device that compares the difference between multiple checksums. Checksum comparison module 106 may be implemented using hardware, processor executable instructions, or a combination thereof. In some examples, checksum comparison module 106 may be implemented as a circuit. In some examples, checksum comparison module 106 may be implemented using a controller, such as a FPGA and instructions executable by the controller.
[0019] During operation, a data storage device 100 may be connected to a computing device 108 to store data for computing device 108. In some example, data storage device 100 may be connected to computing device 108 via a network, such as the Internet or a local area network (LAN). Computing device 108 may transmit a first checksum request 1 10 associated with a first file 1 12 to data storage device 100 to initiate an integrity verification operation of first file 1 12. First checksum request 1 10 may be generated by a data storage
management application (not shown in FIG. 1 ) executing on computing device 108. The data storage management application may be implemented using processor executable instructions.
[0020] First checksum request 1 10 may include file segment information 1 14 and an expected checksum 1 16. File segment information 1 14 may identify a range of logical block addresses (LBAs) where a segment of first file 1 12 is stored in a storage medium (not shown in FIG. 1 ) of data storage device 100. In some examples, first file 1 12 may include a single segment. Thus, file segment information 1 14 may identify a range of LBAs where first file 1 12 is stored. Checksum calculation of a file having a plurality of segments is described in more detail in FIG. 2.
[0021] File segment information 1 14 may include a starting LBA 1 18 and a length value 120. Starting LBA 1 18 may identify the beginning of the range of LBAs where first file 1 12 is stored. Length value 120 may indicate the number of LBAs in the range. For example, starting LBA 1 18 may indicate a LBA of 0001 and length value 120 may be a value of 2. Thus, first file 1 12 may be stored in a range of LBAs from 0001 to 0002. Expected checksum 1 16 may be a checksum of first file 1 12 that is generated from a known good copy of first file 1 12. Thus, expected checksum 1 16 may serve as a reference checksum for first file 1 12 to verify the integrity of first file 1 12. [0022] Data storage device 100 may receive first checksum request 1 10 via communication interface 102. Communication interface 102 may transmit first checksum request 1 10 to checksum calculation module 104. In response to a reception of first checksum request 1 10, checksum calculation module 104 may generate/compute a checksum of first file 1 12 using file segment information 1 14. For example, checksum calculation module 104 may read first file 1 12 by reading data stored in the range of LBAs determined using starting LBA 1 18 and length value 120. Checksum calculation module 104 may generate a computed checksum 122 of first file 1 12 via a checksum function after reading first file 1 12.
[0023] Checksum calculation module 104 may transmit computed checksum 122 to checksum comparison module 106. Checksum comparison module 106 may compare computed checksum 122 to expected checksum 1 16 to generate a comparison result 124. Comparison result 124 may indicate whether computed checksum 122 matches expected checksum 1 16. In some examples, checksum comparison module 106 may receive expected checksum 1 16 from checksum calculation module 104. In some examples, checksum comparison module 106 may receive expected checksum 1 16 via communication interface 102 when communication interface 102 receives file segment information 1 14.
[0024] Checksum comparison module 106 may transmit comparison result 124 to computing device 108 via communication interface 102. In some examples, checksum comparison module 106 may transmit comparison result 124 in a checksum report 126. Computing device 108 may receive comparison result 124 and/or checksum report 126 from data storage device 100.
Computing device 108 may determine an integrity of first file 1 12 using
comparison result 124. For example, when comparison result 124 indicates that computed checksum 122 does not match expected checksum 1 16, computing device 108 may determine that the integrity of first file 1 12 has been
compromised or corrupted. When comparison result 124 indicates that computed checksum 122 matches expected checksum 1 16, computing device 108 may determine that the integrity of first file 1 12 is not compromised or corrupted. Thus, by computing computed checksum 122 at data storage device 100 and transmitting comparison result 124 to computing device 108 instead of transmitting first file 1 12 to computing device 108, network bandwidth
consumption associated with an integrity verification operation may be reduced.
[0025] FIG. 2 is a block diagram of data storage device 200 to generate a checksum of a file based on a checksum request, according to another example. Data storage device 200 may be similar to data storage device 100 of FIG. 1 . Data storage device 200 may include communication interface 102, checksum calculation module 104, checksum comparison module 106, a storage medium 202, and a read mechanism. Storage medium 202 may be any electronic, magnetic, optical, or other physical storage device that contains or stores data, such as files. Thus, storage medium 202 may be, for example, a hard disk drive platter, a magnetic tape cartridge, etc. Read mechanism 204 may be any device that reads data from storage medium 202. For example, when storage medium 202 is a magnetic tape cartridge, read mechanism 204 may be a tape head. In some examples, a plurality of files may be stored in storage medium 202, such as first file 1 12 and a second file 206. In some examples, second file 206 may include a plurality of segments, such as a first segment and a second segment. Each of the plurality of segments of second file 206 may be stored at a distinct range of LBAs.
[0026] During operation, computing device 108 may transmit a second checksum request 208 associated with files 1 12 and 206 to data storage device 200 to initiate an integrity verification operation of files 1 12 and 206. Second checksum request 208 may include a file identifier 210 of first file 1 12, a file identifier 212 of second file 206, file segment information 1 14 of first file 1 12, expected checksum 1 16 of first file 1 12, file segment information 214 of second file 206, and an expected checksum 216 of second file 206. File segment information 214 may include a starting LBA 218 of the first segment of second file 206, a length value 220 of the first segment of second file 206, a starting LBA 222 of the second segment of second file 206, and a length value 224 of the second segment of second file 206. [0027] File identifier 210 may include information to enable data storage device 100 to identify first file 1 12. For example, file identifier 210 may indicate that file segment information 1 14 and expected checksum 1 16 are associated with first file 1 12. In some examples, file identifier 210 may also include a file name of first file 1 12. File identifier 212 may include information to enable data storage device 100 to identify second file 206. For example, file identifier 212 may indicate that file segment information 214 and expected checksum 216 are associated with second file 206. File identifier 212 may indicate that starting LBA 218 and length value 220 are associated with the first segment of second file 206. File identifier 212 may also indicate that starting LBA 222 and length value 224 are associated with the second segment of second file 206. In some examples, file identifier 212 may also include a file name of second file 206.
[0028] Data storage device 200 may receive second checksum request 208 via communication interface 102. Communication interface 102 may transmit second checksum request 208 to checksum calculation module 104. In response to a reception of second checksum request 208, checksum calculation module 104 may generate distinct computed checksums for files 1 12 and 206 using second checksum request 208.
[0029] Checksum calculation module 104 may read first file 1 12 via read mechanism 204 using file identifier 210 and file segment information 1 14.
Checksum calculation module 104 may read second file 206 via read mechanism 204 using file identifier 212 and file segment information 214. Checksum calculation module 104 may generate distinct computed checksums for files 1 12 and 206 after reading files 1 12 and 206. For example, checksum calculation module 104 may generate computed checksum 122 for file 1 12 as described in FIG. 1 . Checksum calculation module 104 may generate a computed checksum 226 of second file 206. To generate/compute computed checksum 226, checksum calculation module 104 may add a first segment checksum of the first segment to a second segment checksum of the second segment. [0030] Checksum calculation module 104 may generate the first segment checksum of the first segment after reading the first segment via read
mechanism 204. For example, checksum calculation module 104 may determine a LBA range (i.e., starting LBA 218 and length value 220) of the first segment via file identifier 212. Checksum calculation module 104 may read the first segment by reading the LBA range via read mechanism 204. Checksum calculation module 104 may apply a checksum function to the first segment to generate the first segment checksum.
[0031] Checksum calculation module 104 may generate the second segment checksum of the second segment after reading the second segment via read mechanism 204. For example, checksum calculation module 104 may determine a LBA range (i.e., starting LBA 222 and length value 224) of the second segment via file identifier 212. Checksum calculation module 104 may read the second segment by reading the LBA range via read mechanism 204. Checksum calculation module 104 may apply a checksum function to the second segment to generate the second segment checksum.
[0032] After generating computed checksums 122 and 226, checksum calculation module 104 may transmit computed checksums 122 and 226 to checksum comparison module 106. Checksum comparison module 106 may generate comparison result 124 of first file 1 12 as described in FIG. 1 .
Checksum comparison module 106 may also generate a comparison result 228 of second file 206 by comparing computed checksum 226 to expected checksum 216. Checksum comparison module 106 may transmit a checksum report 230 that includes comparison results 124 and 228 to computing device 108 via communication interface 102. In some examples, checksum report 230 may indicate that comparison result 124 is for first file 1 12 and comparison result 228 is for second file 206. In some examples, checksum comparison module 106 may transmit comparison results 124 and 228 to computing device 108 separately. [0033] Computing device 108 may determine integrities of files 1 12 and 206 via comparison results 124 and 228, respectively. In some example, in response to a determination that a file is corrupted, computing device 108 may transmit a replacement copy of the corrupted file to data storage device 200 so that the corrupted file can be replaced. For example, computing device 108 may determine that first file 1 12 is corrupted via comparison result 124. Computing device 108 may transmit a replacement copy 232 of first file 1 12 to data storage device 200 so that first file 1 12 may be replaced. For example, first file 1 12 may be erased from storage medium 202 and rewritten using replacement copy 232 via a write mechanism (not shown in FIG. 2). In some examples, computing device 108 may transmit a write instruction (not shown in FIG. 2) to data storage device 200 so data storage device 200 may overwrite first file 1 12 with a new copy.
[0034] FIG. 3 is a block diagram of a data storage device 300 to generate a checksum of a file based on a checksum request, according to another example. Data storage device 300 may be similar to data storage device 100 of FIG. 1 . Data storage device 300 may include communication interface 102 and a checksum calculation module 302. Checksum calculation module 302 may be similar to checksum calculation module 104 of FIG. 1 . Data storage device 300 may operate similar to data storage device 100 to calculate a checksum for a file. However, unlike data storage device 100 in which a comparison result is transmitted back to computing device 108, data storage device 300 may transmit a checksum of a file to computing device 108.
[0035] For example, data storage device 300 may receive a first checksum request 304 associated with first file 1 12 from computing device 108. First checksum request 304 may include file segment information 1 14. Checksum calculation module 302 may generate computed checksum 122 of first file 1 12 based on first checksum request 304. Checksum calculation module 302 may transmit computed checksum 122 to computing device 108 via communication interface 102. In some examples, checksum calculation module 302 may transmit computed checksum 122 in a checksum report 306 to computing device 108 via communication interface 102. Computing device 108 may determine the integrity of first file 1 12 using computed checksum 122.
[0036] FIG. 4 is a block diagram of a data storage device 400 to generate a checksum of a file based on a checksum request, according to another example. Data storage device 400 may be similar to data storage device 200 of FIG. 2. Data storage device 400 may include communication interface 102, checksum calculation module 302, storage medium 202, and read mechanism 204. Data storage device 400 may operate similar to data storage device 200 to calculate a checksum for a file. However, unlike data storage device 200 in which a comparison result is transmitted back to computing device 108, data storage device 400 may transmit a checksum of a file to computing device 108.
[0037] For example, data storage device 400 may receive a second checksum request 402 associated with files 1 12 and 206 from computing device 108. Second checksum request 402 may include file segment information 1 14, file identifiers 210 and 212, and file segment information 214. Based on second checksum request 402, checksum calculation module 302 may read files 1 12 and 206 from storage medium 202 via read mechanism 204. Checksum calculation module 302 may generate computed checksum 122 of first file 1 12 and computed checksum 226 of second file 206 based on second checksum request 402. Checksum calculation module 302 may transmit a checksum report 404 that includes computed checksums 122 and 226 to computing device 108 via communication interface 102. Computing device 108 may determine the integrities of files 1 12 and 206 using checksum report 404.
[0038] FIG. 5 is a block diagram of a data storage device 500 to generate a checksum of a file based on a checksum request, according to another example. Data storage device 500 may implement data storage device 100 of FIG. 1 and/or data storage device 200 of FIG. 2. Data storage device 500 may include a processor 502 and a computer-readable storage medium 504.
[0039] Processor 502 may be a central processing unit (CPU), a
semiconductor-based microprocessor, and/or other hardware devices suitable for retrieval and execution of instructions stored in computer-readable storage medium 504. Processor 502 may fetch, decode, and execute instructions 506, 508, 510, and and 512 to control a process of generating a checksum of a file. As an alternative or in addition to retrieving and executing instructions, processor 502 may include at least one electronic circuit that includes electronic
components for performing the functionality of instructions 506, 508, 510, 512 or a combination thereof.
[0040] Computer-readable storage medium 504 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, computer-readable storage medium 504 may be, for example, Random Access Memory (RAM), an Electrically Erasable
Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, etc. In some examples, computer-readable storage medium 504 may be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals. As described in detail below, computer-readable storage medium 504 may be encoded with a series of processor executable instructions 506, 508, 510, and 512 for receiving a checksum request, generating a computed checksum of a file, comparing the computed checksum to an expected checksum to generate a comparison result, and transmitting the comparison result to a computing device.
[0041] Checksum request reception instructions 506 may receive a checksum request from a computing device. For example, referring to FIG. 1 , data storage device 100 may receive first checksum request 1 10 via communication interface 102. Checksum generation instructions 508 may generate a computed
checksum of a file associated with a checksum request using the checksum request. For example, referring to FIG. 1 , in response to a reception of first checksum request 1 10, checksum calculation module 104 may
generate/compute a checksum of first file 1 12 using file segment information 1 14.
[0042] Checksum comparison instructions 510 may compare a computed checksum of a file to an expected checksum of the file. For example, referring to FIG. 1 , checksum comparison module 106 may compare computed checksum 122 to expected checksum 1 16 to generate a comparison result 124.
Comparison result transmission instructions 512 may transmit a comparison result to a computing device. For example, referring to FIG. 1 , checksum comparison module 106 may transmit comparison result 124 to computing device 108 via communication interface 102.
[0043] FIG. 6 is a block diagram of a data storage device 600 to generate a checksum of a file based on a checksum request, according to another example. Data storage device 600 may implement data storage device 300 of FIG. 3 and/or data storage device 400 of FIG. 4. Data storage device 600 may include a processor 602 and a computer-readable storage medium 604. Processor 602 may be similar to processor 502 of FIG. 5. Computer-readable storage medium 604 may be similar to computer-readable storage medium 504 of FIG. 5.
Computer-readable storage medium 604 may be encoded with instructions 506, 508, and 606. Checksum transmission instructions 606 may transmit a computed checksum to a computing device. For example, referring to FIG. 3, checksum calculation module 302 may transmit computed checksum 122 to computing device 108 via communication interface 102.
[0044] FIG. 7 is a block diagram of a computing device 700 to generate a checksum request, according to an example. Computing device 700 may implement computing device 108 of FIGs. 1 -4. Computing device 700 may include a processor 702 and a computer-readable storage medium 704.
Processor 702 may be similar to processor 502 of FIG. 5. Computer-readable storage medium 704 may be similar to computer-readable storage medium 504.
[0045] Computer-readable storage medium 704 may be encoded with a series of instructions 706, 708, and 710 to control a process of transmitting a checksum request associated with a file to a data storage device, receiving a checksum report associated with the file, and determining an integrity of the file using the checksum report.
[0046] Checksum request transmission instructions 706 may transmit a checksum request to a data storage device. For example, referring to FIG. 1 , computing device 108 may transmit a first checksum request 1 10 associated with a first file 1 12 to data storage device 100 to initiate an integrity verification operation of first file 1 12. Checksum report reception instructions 708 may receive a checksum report from the data storage device. For example, referring to FIG. 1 , computing device 108 may receive comparison result 124 and/or checksum report 126 from data storage device 100. File integrity determination instructions 710 may determine an integrity of a file using the checksum report. For example, referring to FIG. 1 , computing device 108 may determine an integrity of first file 1 12 using comparison result 124.
[0047] FIG. 8 is a flowchart illustrating a method 800 of operation at a data storage device to generate a checksum of a file based on a checksum request, according to an example. Method 800 may be implemented using data storage device 100 of FIG. 1 , data storage device 200 of FIG. 2, and/or data storage device 600 of FIG. 6.
[0048] Method 800 may include receiving, at a data storage device, a checksum request from a computing device, where the checksum request includes file segment information of a file and an expected checksum of the file, and where the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment, at 802. For example, referring to FIG. 1 , data storage device 100 may receive first checksum request 1 10 via communication interface 102.
[0049] Method 800 may also include, in response to a reception of the checksum request, generating, via a checksum calculation module of the data storage device, a computed checksum of the file using the file segment information, at 804. For example, referring to FIG. 1 , in response to a reception of first checksum request 1 10, checksum calculation module 104 may
generate/compute a checksum of first file 1 12 using file segment information 1 14.
[0050] Method 800 may further include comparing, via a checksum
comparison module of the data storage device, the computed checksum to the expected checksum to generate a comparison result of the file, at 806. For example, referring to FIG. 1 , checksum comparison module 106 may compare computed checksum 122 to expected checksum 1 16 to generate a comparison result 124. Method 800 may further include transmitting the comparison result to the computing device via a communication interface of the data storage device, at 808. For example, referring to FIG. 1 , checksum comparison module 106 may transmit comparison result 124 to computing device 108 via communication interface 102.
[0051] FIG. 9 is a flowchart illustrating a method 900 of operation at a data storage device to generate a checksum of a file based on a checksum request, according to another example. Method 900 may be implemented using data storage device 300 of FIG. 3, data storage device 400 of FIG. 4, and/or data storage device 600 of FIG. 6.
[0052] Method 900 may include receiving, at a data storage device, a checksum request from a computing device, where the checksum request includes file segment information of a file and a file identifier of the file, and where the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment, at 902. For example, referring to FIG. 4, data storage device 400 may receive a second checksum request 402 associated with files 1 12 and 206 from computing device 108. Second checksum request 402 may include file segment information 1 14, file identifiers 210 and 212, and file segment information 214. Method 900 may also include, in response to a reception of the checksum request, generating, via a checksum calculation module of the data storage device, a computed checksum of the file using the file segment information, at 904. For example, referring to FIG. 3, checksum calculation module 302 may generate computed checksum 122 of first file 1 12 based on first checksum request 304.
[0053] Method 900 may further include transmitting the computed checksum to the computing device via a communication interface of the data storage device, at 906. For example, referring to FIG. 3, checksum calculation module 302 may transmit computed checksum 122 to computing device 108 via communication interface 102.
[0054] FIG. 10 is a flowchart illustrating a method 1000 of operation at a computing device to generate a checksum request, according to an example. Method 1000 may be implemented using computing device 108 of FIGs. 1 -4 and/or computing device 700 of FIG. 7.
[0055] Method 1000 may include transmitting a checksum request to a data storage device, wherein the checksum request includes a file identifier of a file and file segment information of the file, where the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment, and where the file is stored at the data storage device, at 1002. For example, referring to FIG. 1 , computing device 108 may transmit a first checksum request 1 10 associated with a first file 1 12 to data storage device 100 to initiate an integrity verification operation of first file 1 12. Method 1000 may also include receiving a checksum report associated with the file from the data storage device, where the checksum report is generated based on the checksum request, at 1004. For example, referring to FIG. 1 , computing device 108 may receive comparison result 124 and/or checksum report 126 from data storage device 100. Method 1000 may further include determining an integrity of the file using the checksum report, at 1006. For example, referring to FIG. 1 , computing device 108 may determine an integrity of first file 1 12 using comparison result 124.
[0056] The use of "comprising", "including" or "having" are synonymous and variations thereof herein are meant to be inclusive or open-ended and do not exclude additional unrecited elements or method steps.

Claims

Claims What is claimed is:
1 . A data storage device comprising:
a communication interface to receive a checksum request from a
computing device, wherein the checksum request includes file segment information of a file and an expected checksum of the file, and wherein the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment;
a checksum calculation module to, in response to a reception of the
checksum request, generate a computed checksum of the file using the file segment information; and
a checksum comparison module to:
compare the computed checksum to the expected checksum to generate a comparison result of the file; and
transmit the comparison result to the computing device via the
communication interface.
2. The data storage device of claim 1 , wherein the communication interface is to receive a second checksum request from the computing device, wherein the second checksum request includes file segment information of a second file and an expected checksum of the second file, wherein the second file includes a first segment and a second segment, wherein the segment information of the second file includes a starting LBA of the first segment, a length value of the first segment, a starting LBA of the second segment, and a length value of the second segment.
3. The data storage device of claim 2, wherein the checksum calculation module is to, in response to a reception of the second checksum request:
generate a first segment checksum using the starting LBA of the first segment and the length value of the first segment;
generate a second segment checksum using the starting LBA of the
second segment and the length value of the second segment; and generate a computed checksum of the second file using the first segment checksum and the second segment checksum, and wherein the checksum comparison module is to:
compare the computed checksum of the second file to the expected checksum of the second file to generate a comparison result of the second file; and
transmit the comparison result of the second file to the computing device via the communication interface.
4. The data storage device of claim 1 , wherein the comparison result is indicative of an integrity of the file.
5. The data storage device of claim 1 , wherein the length value is indicative of a range of LBAs associated with the file.
6. A method comprising:
receiving, at a data storage device, a checksum request from a computing device, wherein the checksum request includes file segment information of a file and a file identifier of the file, and wherein the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment; in response to receiving the checksum request, generating a computed checksum of the file using the file segment information; and transmitting the computed checksum to the computing device.
7. The method of claim 6, further comprising receiving a second checksum request from the computing device, wherein the second checksum request includes file segment information of a second file, an expected checksum of the second file, and a file identifier of the second file, wherein the second file includes a first segment and a second segment, wherein the segment information of the second file includes a starting LBA of the first segment, a length value of the first segment, a starting LBA of the second segment, and a length value of the second segment.
8. The method of claim 7, further comprising:
generating a first segment checksum using the starting LBA of the first segment and the length value of the first segment;
generating a second segment checksum using the starting LBA of the second segment and the length value of the second segment; generating a computed checksum using the first segment checksum and the second segment checksum; and
transmitting the computed checksum to the second computing device.
9. The method of claim 6, wherein the length value is indicative of a range of LBAs associated with the segment.
10. A computer-readable storage medium comprising instructions when executed cause a processor of a computing device to:
transmit a checksum request to a data storage device, wherein the
checksum request includes a file identifier of a file and file segment information of the file, wherein the file segment information includes a starting logical block address (LBA) of a segment of the file and a length value of the segment, and wherein the file is stored at the data storage device;
receive a checksum report associated with the file from the data storage device, wherein the checksum report is generated based on the checksum request; and
determine an integrity of the file using the checksum report.
1 1 . The computer-readable storage medium of claim 10, wherein the checksum request further includes an expected checksum of the file, wherein the checksum report includes a comparison result between the expected checksum and a computed checksum of the file.
12. The computer-readable storage medium of claim 10, wherein the checksum report includes a computed checksum of the file, and wherein the instructions when executed further cause the processor to:
compare the computed checksum with an expected checksum of the file to generate a comparison result; and
determine the integrity based on the comparison result.
13. The computer-readable storage medium of claim 12, wherein the instructions when executed further cause the processor to:
in response to a determination that the expected checksum is different from the computed checksum, determine that the file is corrupted; and
transmit a replacement copy of the file to the data storage device.
14. The computer-readable storage medium of claim 12, wherein the file includes a plurality of segments, and wherein each of the plurality of segments is stored at a distinct range of logical block addresses.
15. The computer-readable storage medium of claim 12, wherein the data storage device is connected to the computing device via a network.
PCT/US2015/017676 2015-02-26 2015-02-26 Checksum requests of files WO2016137464A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/017676 WO2016137464A1 (en) 2015-02-26 2015-02-26 Checksum requests of files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/017676 WO2016137464A1 (en) 2015-02-26 2015-02-26 Checksum requests of files

Publications (1)

Publication Number Publication Date
WO2016137464A1 true WO2016137464A1 (en) 2016-09-01

Family

ID=56789709

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/017676 WO2016137464A1 (en) 2015-02-26 2015-02-26 Checksum requests of files

Country Status (1)

Country Link
WO (1) WO2016137464A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110228064A (en) * 2018-03-05 2019-09-13 日本电产株式会社 Robot controller, the store method of backup file and recording medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040049726A1 (en) * 2002-09-05 2004-03-11 Goyins Gregg S. Error detection system for a FIFO memory
US20050289436A1 (en) * 2004-06-23 2005-12-29 Broadcom Corporation Data integrity checking
US20060136780A1 (en) * 2002-06-27 2006-06-22 Microsoft Corporation Detecting low-level data corruption
WO2010096153A2 (en) * 2009-02-18 2010-08-26 Micron Technology, Inc. Data integrity in memory controllers and methods
US8484537B1 (en) * 2006-04-11 2013-07-09 Marvell International Ltd. Systems and methods for data-path protection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136780A1 (en) * 2002-06-27 2006-06-22 Microsoft Corporation Detecting low-level data corruption
US20040049726A1 (en) * 2002-09-05 2004-03-11 Goyins Gregg S. Error detection system for a FIFO memory
US20050289436A1 (en) * 2004-06-23 2005-12-29 Broadcom Corporation Data integrity checking
US8484537B1 (en) * 2006-04-11 2013-07-09 Marvell International Ltd. Systems and methods for data-path protection
WO2010096153A2 (en) * 2009-02-18 2010-08-26 Micron Technology, Inc. Data integrity in memory controllers and methods

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110228064A (en) * 2018-03-05 2019-09-13 日本电产株式会社 Robot controller, the store method of backup file and recording medium

Similar Documents

Publication Publication Date Title
EP3238103B1 (en) Technologies for computing rolling hashes
US8996828B2 (en) Systems and methods for migrating data
US9507539B2 (en) Performing authorization control in a cloud storage system
AU2014235793B2 (en) Automatic tuning of virtual data center resource utilization policies
EP2372521A2 (en) Remote direct storage access
US9652408B2 (en) System and method for providing data integrity
US8468423B2 (en) Data verification using checksum sidefile
US10254989B2 (en) Method and apparatus of data deduplication storage system
CN108363640B (en) Data verification method and device and computer readable storage medium
US20110113313A1 (en) Buffer transfer check on variable length data
JP2018521411A (en) Node configuration management in the network
US11275835B2 (en) Method of speeding up a full antivirus scan of files on a mobile device
EP3336702B1 (en) Metadata recovery method and device
KR20210035908A (en) Host resident transformation layer validation technology
CN107113324A (en) Data backup device and method, system
WO2019168878A1 (en) Method and apparatus for data encryption using standardized data storage and retrieval protocol
CN104317716B (en) Data transmission method and distributed node equipment between distributed node
JP2022521930A (en) Providing user guidance regarding selection of erasure processing based on accumulated erasure reports
WO2017147794A1 (en) Differential data backup method and device
US20180292992A1 (en) System and method for identifying ssds with lowest tail latencies
WO2016137464A1 (en) Checksum requests of files
US10423525B2 (en) Automatic performance tuning for memory arrangements
WO2016029481A1 (en) Method and device for isolating disk regions
KR20110089129A (en) Bit inversion for communication interface
US9804968B2 (en) Storage system and data writing method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15883559

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15883559

Country of ref document: EP

Kind code of ref document: A1