From: Duncan <1i5t5.duncan@cox.net>
To: linux-btrfs@vger.kernel.org
Subject: Re: Using noCow with snapshots ?
Date: Wed, 7 May 2014 11:09:47 +0000 (UTC) [thread overview]
Message-ID: <pan$a42a8$6dec058$c2834d89$1d550ded@cox.net> (raw)
In-Reply-To: 16fd4391-5c16-42a6-82a2-9bd1cb988906@email.android.com
Russell Coker posted on Wed, 07 May 2014 15:36:15 +1000 as excerpted:
> How could BTRFS and a database "fight" about data recovery?
>
> BTRFS offers similar guarantees about data durability etc to other
> journalled filesystems and only differs by having checksums so that
> while a snapshot might have half the data that was written by an app you
> at least know that the half will be consistent.
>
> If you had database files on a separate subvol to the database log then
> you would be at risk of having problems making a any sort of consistent
> snapshot (the Debian approach of /var/log/mysql and /var/lib/mysql is a
> bad idea). But there would be no difference with LVM snapshots in that
> regard.
Race conditions having to do with unsynced checkpoints, primarily. And
it's actually the btrfs checksumming that seems to create the problem.
The symptom being reported (tho I can say I've not seen further reports
recently, maybe it's fixed now) was that the checksummed values btrfs
restored as "correct" were considered corrupted by the database or vm.
If the checksums checked out after btrfs did its replay (as they did or
btrfs would error on access), but the databases and VMs were still
reporting corruption, then the explanation that was left was that the
btrfs replay and checksum validation was screwing up the application's
own checksumming validation, which could be explained if the two were
sufficiently out of sync that btrfs fixing its own view was actually
breaking the view as seen by the data validating app.
Tho as I said I've not seen that sort of report in several kernel cycles
now. But I'm not sure whether that's because the issues have been fixed
or for some other reason (maybe everybody experiencing the problem gave
up and switched to some other filesystem now, and the message is out
there well enough that new people see it before they experience and
report the same thing, or similar but everybody's switched to NOCOW now
and knows not to do snapshotting on the NOCOW files, or...).
Regardless, NOCOW and not doing snapshotting (because it triggers COW
anyway) on gig-plus internal-write files remains a very good idea.
(Also, quotas and quota sequence numbers play into the combinational
explosion problem along with snapshot-aware-defrag, too. See the writeup
on that that Dave wrote while he was on paternity leave.)
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
prev parent reply other threads:[~2014-05-07 11:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-09 11:15 Using noCow with snapshots ? Swâmi Petaramesh
2014-04-09 11:41 ` Hugo Mills
2014-04-09 11:56 ` Duncan
2014-04-10 8:22 ` Swâmi Petaramesh
2014-04-10 13:19 ` George Eleftheriou
2014-04-10 14:58 ` Duncan
2014-05-07 5:36 ` Russell Coker
2014-05-07 11:09 ` Duncan [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='pan$a42a8$6dec058$c2834d89$1d550ded@cox.net' \
--to=1i5t5.duncan@cox.net \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).