linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Austin S. Hemmelgarn" <ahferroin7@gmail.com>
To: ein <ein.net@gmail.com>, Duncan <1i5t5.duncan@cox.net>,
	linux-btrfs@vger.kernel.org
Subject: Re: csum failed root raveled during balance
Date: Wed, 23 May 2018 07:03:49 -0400	[thread overview]
Message-ID: <34e2ea9c-dc43-af9e-6de1-566e411f7660@gmail.com> (raw)
In-Reply-To: <5B053DF2.4030301@gmail.com>

On 2018-05-23 06:09, ein wrote:
> On 05/23/2018 11:09 AM, Duncan wrote:
>> ein posted on Wed, 23 May 2018 10:03:52 +0200 as excerpted:
>>
>>>> IMHO the best course of action would be to disable checksumming for you
>>>> vm files.
>>>
>>> Do you mean '-o nodatasum' mount flag? Is it possible to disable
>>> checksumming for singe file by setting some magical chattr? Google
>>> thinks it's not possible to disable csums for a single file.
>>
>> You can use nocow (-C), but of course that has other restrictions (like
>> setting it on the files when they're zero-length, easiest done for
>> existing data by setting it on the containing dir and copying files (no
>> reflink) in) as well as the nocow effects, and nocow becomes cow1 after a
>> snapshot (which locks the existing copy in place so changes written to a
>> block /must/ be written elsewhere, thus the cow1, aka cow the first time
>> written after the snapshot but retain the nocow for repeated writes
>> between snapshots).
>>
>> But if you're disabling checksumming anyway, nocow's likely the way to go.
> 
> Disabling checksumming only may be a way to go - we live without it
> every day. But nocow @ VM files defeats whole purpose of using BTRFS for
> me, even with huge performance penalty - backup reasons - I mean few
> snapshots (20-30), send & receive.
> 
Setting NOCOW on a file doesn't prevent it from being snapshotted, it 
just prevents COW operations from happening under most normal 
circumstances.  In essence, it prevents COW from happening except for 
writing right after the snapshot.  More specifically, the first write to 
a given block in a file set for NOCOW after taking a snapshot will 
trigger a _single_ COW operation for _only_ that block (unless you have 
autodefrag enabled too), after which that block will revert to not doing 
COW operations on write.  This way, you still get consistent and working 
snapshots, but you also don't take the performance hits from COW except 
right after taking a snapshot.


  reply	other threads:[~2018-05-23 11:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-22 20:05 csum failed root raveled during balance ein
2018-05-23  6:32 ` Nikolay Borisov
2018-05-23  8:03   ` ein
2018-05-23  9:09     ` Duncan
2018-05-23 10:09       ` ein
2018-05-23 11:03         ` Austin S. Hemmelgarn [this message]
2018-05-28 17:10           ` ein
2018-05-29 12:12             ` Austin S. Hemmelgarn
2018-05-29 14:02               ` ein
2018-05-29 14:35                 ` Austin S. Hemmelgarn
2018-05-23 11:12     ` Nikolay Borisov
2018-05-27  5:50   ` Andrei Borzenkov
2018-05-27  9:41     ` Nikolay Borisov
2018-05-28 16:51       ` ein

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=34e2ea9c-dc43-af9e-6de1-566e411f7660@gmail.com \
    --to=ahferroin7@gmail.com \
    --cc=1i5t5.duncan@cox.net \
    --cc=ein.net@gmail.com \
    --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).