Project

General

Profile

Bug #5746

more checksumming in zfs send

Added by Matthew Ahrens over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
2015-03-24
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

Currently the DRR_END record in zfs send contains the only checksum for a send stream. In the current world this is a problem because you could get to the end of a many hour send only to find out a bit error occurred somewhere in the stream and threw off the checksum. Once resumable send/recv is integrated, this will be a bigger problem because when a send is interrupted we lose the checksumming information.

The solution is to checksum every record so we can detect checksum errors quickly and know exactly how much of our stream was properly checksummed when the send is interrupted. There is already unused space in all records except DRR_BEGIN where a checksum could fit and keep the stream backwards compatible. Also since a running checksum is already being calculated this should have minimal impact on performance.

History

#1

Updated by Electric Monk over 4 years ago

  • % Done changed from 0 to 100
  • Status changed from New to Closed

git commit 98110f08fa182032082d98be2ddb9391fcd62bf1

commit  98110f08fa182032082d98be2ddb9391fcd62bf1
Author: Matthew Ahrens <mahrens@delphix.com>
Date:   2015-04-09T19:33:31.000Z

    5746 more checksumming in zfs send
    Reviewed by: Christopher Siden <christopher.siden@delphix.com>
    Reviewed by: George Wilson <george.wilson@delphix.com>
    Reviewed by: Bayard Bell <buffer.g.overflow@gmail.com>
    Approved by: Albert Lee <trisk@omniti.com>

Also available in: Atom PDF