[dm-devel] A simple, generic DM-API, for codecs/transcoders to use?

Martin K. Petersen martin.petersen at oracle.com
Tue Jun 23 05:30:05 UTC 2009


>>>>> "Konrad" == Konrad Rzeszutek <konrad at virtualiron.com> writes:

Konrad> I thought that the more recent patches by Oracle to support
Konrad> DIF/DIX (Data Integrity Extensions):

Konrad> Are addressing this by adding a checksum for each block sector
Konrad> that is checked by each device.

The DIX/DIF checksum is a CRC, not an ECC.  It is mostly aimed at
detecting in-flight corruption, not latent sector corruption.  Latent
sector corruption is btrfs territory as far as I'm concerned.

The problem as I see it with the proposed ECC scheme is that once a
drive gives up on a sector you lose all of it.  It's not like only a
portion of the sector becomes unreadable to the OS.  So the ECC scheme
will have to be quite potent because at the very minimum it must be able
to withstand losing 512 bytes of data.  Drives with 4KB sectors are
right around the corner making things even more fun.

Once you start working around sector atomicity issues I think it's only
a matter of time before you end up reinventing RAID and its various
reliability vs. space efficiency trade-offs...


Konrad> So the firmware on the hard-drive, along with the SAS controller
Konrad> would carry out the checksumming?

We'll generate the checksum and the other protection information in the
application if it supports it or otherwise once the I/O gets inside the
kernel.  The HBA, the array firmware, and the drive firmware are all
able to verify that the protection information matches the data.

-- 
Martin K. Petersen	Oracle Linux Engineering




More information about the dm-devel mailing list