From: Gionatan Danti <g.danti@assyoma.it>
To: Dave Chinner <david@fromorbit.com>
Cc: "Darrick J. Wong" <darrick.wong@oracle.com>,
Amir Goldstein <amir73il@gmail.com>,
linux-xfs <linux-xfs@vger.kernel.org>,
g.danti@assyoma.it
Subject: Re: Reflink (cow) copy of busy files
Date: Wed, 28 Feb 2018 08:08:47 +0100 [thread overview]
Message-ID: <e20d5782df830e4ae36917191bbe0750@assyoma.it> (raw)
In-Reply-To: <20180227220404.GI30854@dastard>
Il 27-02-2018 23:04 Dave Chinner ha scritto:
> A host crash can lose data from the original file when it is
> configured in writeback mode (as you've said you are using). If the
> clone is there, both source and clone should be fully intact. If
> it's not, then you will have lost data from the original image file.
I have difficult grasping how a system crash during a cp --refcopy could
corrupt the source file.
As per Darrick explanation, new writes on the original file should be
blocked/queued during the copy. Even if this is not the case, fsync
writes should complete only when data successfully landed on the disk
platter. Losing some second on async writes should not be a problem in
many environments (this is the very reasoning behind providing Qemu/KVM
with a working writeback option).
Clearly a crash during the copy *will* produce an invalid destination
file, but this can not be avoided (after all, the system crashed!).
> But, really, why risk losing data or filesystem corruption by trying
> to take shortcuts?
Losing data and filesystem corruption are two *very* different things.
On many VMs, I can afford losing some seconds of async writes;
obviously, fsync writes (which can lead do filesystem corruption) must
*not* be lost on *any* condition.
The point of the discussion is that if a cp --reflink is suitable for
hot backup, it would be an extremely fast and convenient method to take
"cheap" snapshot of key files. But if an interrupted copy can lead to
total loss of the *original* file/filesystem, than this is clearly the
wrong idea.
I am missing something?
Thanks.
--
Danti Gionatan
Supporto Tecnico
Assyoma S.r.l. - www.assyoma.it
email: g.danti@assyoma.it - info@assyoma.it
GPG public key ID: FF5F32A8
next prev parent reply other threads:[~2018-02-28 7:08 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-24 18:20 Reflink (cow) copy of busy files Gionatan Danti
2018-02-24 22:07 ` Dave Chinner
2018-02-24 22:57 ` Gionatan Danti
2018-02-25 2:47 ` Dave Chinner
2018-02-25 11:40 ` Gionatan Danti
2018-02-25 21:13 ` Dave Chinner
2018-02-25 21:58 ` Gionatan Danti
2018-02-26 0:25 ` Dave Chinner
2018-02-26 7:19 ` Gionatan Danti
2018-02-26 7:58 ` Amir Goldstein
2018-02-26 8:26 ` Gionatan Danti
2018-02-26 17:26 ` Darrick J. Wong
2018-02-26 21:23 ` Gionatan Danti
2018-02-26 21:31 ` Darrick J. Wong
2018-02-26 21:39 ` Gionatan Danti
2018-02-27 0:33 ` Dave Chinner
2018-02-27 0:58 ` Darrick J. Wong
2018-02-27 8:06 ` Gionatan Danti
2018-02-27 22:04 ` Dave Chinner
2018-02-28 7:08 ` Gionatan Danti [this message]
2018-02-28 17:07 ` Darrick J. Wong
2018-02-28 18:27 ` Gionatan Danti
2018-02-26 20:29 ` Amir Goldstein
2018-02-26 21:28 ` Gionatan Danti
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=e20d5782df830e4ae36917191bbe0750@assyoma.it \
--to=g.danti@assyoma.it \
--cc=amir73il@gmail.com \
--cc=darrick.wong@oracle.com \
--cc=david@fromorbit.com \
--cc=linux-xfs@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.