[Twg] [Discuss] T10 End-to-End Data Integrity HLD
Andrew Perepechko
andrew_perepechko at xyratex.com
Tue Apr 24 10:08:51 UTC 2012
Hello!
Alex, the HLD already expects all data writes to be synchronous on the OSS (filter_do_bio() does wait in cfs_wait_event() for I/O completion on all buffers so that we can get errors synchronously; even if a drive signals I/O completion prior to physical writing data, I think, it makes the whole of verification in advance). However, since there is a common misconception that async journal commit has anything to do with async data commit, I'll try to stress it even more.
Nathan, I was thinking that 4096-byte sectors are really 4104-bytes sectors with T10-capable disks (as in http://www.mjmwired.net/kernel/Documentation/block/data-integrity.txt). Are there really any 4160-byte sector disks?
Andreas, I've got the impression that the mkwrite() patch can only help with mmap races if the client cache protection is disabled. The idea of the patch seems to make mmaped pages write-protected while a write request (including checksum calculation) is serviced, other threads trying to write to the same page will cause a page fault and stick in Lustre waiting for I/O completion. However, if any protection information is attached to a page, we need to update it with every page write access. This is possible through the common VFS write path, but hardly through a PROT_WRITE mapping.
P.S. Sorry for merging multiple replies in a single email, this is only to prevent spamming.
Thank you,
Andrew
----- Original Message -----
From: Alexey Lyashkov
To: Johann Lombardi
Cc: John Carrier ; twg at lists.opensfs.org ; discuss at lists.opensfs.org ; AndrewPerepechko
Sent: Sunday, April 22, 2012 6:36 AM
Subject: Re: [Discuss] [Twg] T10 End-to-End Data Integrity HLD
John,
Why not? HCA provide a T10 checksumming when obdfilter (osd) submit a IO request - so it's before a call bio_done() function and before send a reply to client.
so we may don't want a commit as HCA verify a checksum and it's correct.
PS. Andrew - please add that clarification to the document.
On Apr 21, 2012, at 03:22, Johann Lombardi wrote:
Hi Alexey,
On Saturday, April 21, 2012, Alexey Lyashkov wrote:
you are wrong. It's Andrew HLD. possible it isn't clear - but per internal discussion, server isn't validate checksum before HCA. Using a HCA to checksum validation and provide end to end integrity checks - main idea of using T10 in lustre.
per my previous comment server validation isn't need - because client will resend IO request in both cases - checksum error or real IO error.
This means that you can't use asynchronous journal commit in conjunction with T10, right?
Johann
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensfs.org/pipermail/twg_lists.opensfs.org/attachments/20120424/dd928e70/attachment.html>
More information about the Twg
mailing list