UFS2 metadata checksums

Scott Burns scott at bqinternet.com
Fri Apr 24 06:45:32 UTC 2009


Alexander Kabaev wrote:
> On Thu, 23 Apr 2009 06:54:51 -0400
> Scott Burns <scott at bqinternet.com> wrote:
> 
>> Hi guys,
>>
>> I have spent some time writing a kernel module which calculates a 
>> checksum of a UFS2 dinode structure and stores it in the reserved
>> space of the inode when writing it to disk.  It is then verified when
>> the inode is read from disk.  If the checksum verification fails, the
>> read returns an error (currently EIO).
>>
>> I believe that protecting metadata integrity is important, especially
>> as storage capacity grows.  Bitrot is a fact of life, and bad things
>> can happen if the kernel acts on a corrupted inode.  Not only does
>> this module improve the stability of a server, but it also helps to
>> prevent additional damage to the filesystem that can be caused by
>> metadata corruption.
>>
>> I'm aware that data integrity issues are addressed with ZFS, but 
>> unfortunately ZFS is still not yet suitable for many workloads.  I'm 
>> also aware that integrity checking can be done by using GELI between
>> the filesystem and the disk, but at a noticeable cost in performance
>> and space utilization.  The method this module uses is fast and does
>> not use any additional space.  Most importantly, it builds on mature
>> code that has worked well for decades.
>>
>> Before I spend much more time on it, I have some questions:
>>
>> 1) Has anyone else done any work in this area?
>>
>> 2) Is there a demand for this in FreeBSD?
>>
> 
> This is actually something I would love to have in the base system,
> but inodes are not the only structures that need the integrity
> protection. Pretty much every other metadata block, from cylinder group
> blocks to indirect blocks for files need similar protection for
> this to be of real use.
> 
> --
> Alexander Kabaev

As long as there is some interest in this kind of functionality, I will 
continue working on it.  The next step is to protect metadata structures 
beyond inodes.  I am hoping to have some results to post in the next few 
weeks.

-- 
Scott Burns
System Administrator
BQ Internet Corporation


More information about the freebsd-fs mailing list