Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Feb 2008 08:38:25 -0500
From:      Nick Gustas <freebsd-stable@tychl.net>
To:        Joe Peterson <joe@skyrush.com>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: Forcing full file read in ZFS even when checksum error	encountered
Message-ID:  <47A866D1.3040703@tychl.net>
In-Reply-To: <47A864D9.4060504@skyrush.com>
References:  <47A73C8D.3000107@skyrush.com> <86prvby5o1.fsf@ds4.des.no> <47A864D9.4060504@skyrush.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Joe Peterson wrote:
> Dag-Erling Smørgrav wrote:
>   
>> Joe Peterson <joe@skyrush.com> writes:
>>     
>>> When I try to copy the file, I get only 655360 bytes copied, and then the copy
>>> stops.  I assume this is because the next block is where the error is.
>>>       
>> Try to lseek past it.
>>     
>
> Well, I'd like to actually read the "bad" data too, so I can see if it is
> really bad or if there is a metadata issue.  Basically, I'd like to recover
> all the file's bytes this once without having ZFS stop me due to the checksum
> failure, just for debugging purposes.  Is this impossible in ZFS?
>
> 						-Thanks, Joe
>   

This may do what you want, but I'm not sure if this only disables 
creation of checksums, or it disables use of preexisting checksums 
entirely. The man page entry would suggest it disables them for reads 
too. If this is the case, it should do what you want.


http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide#Checksums

Verify the type of checksum used:

zfs get checksum <filesystem>

Tuning is achieved dynamically by using:

zfs set checksum=off <filesystem>

And reverted:

zfs set checksum='on | fletcher2 | fletcher4 | sha256' <filesystem>

Fletcher2 checksum (the default) has been observed to consume roughly 
1Ghz of a CPU when checksumming 500 MByte per second.



Man page:
       checksum=on | off | fletcher2, | fletcher4 | sha256

           Controls  the  checksum  used to verify data integrity. The 
default
           value is "on", which automatically selects an appropriate 
algorithm
           (currently, fletcher2, but this may change in future 
releases). The
           value "off" disables integrity checking  on  user  data.  
Disabling
           checksums is NOT a recommended practice.












Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47A866D1.3040703>