All of lore.kernel.org
 help / color / mirror / Atom feed
From: Duncan <1i5t5.duncan@cox.net>
To: linux-btrfs@vger.kernel.org
Subject: Re: BTRFS messes up snapshot LV with origin
Date: Fri, 21 Nov 2014 06:22:57 +0000 (UTC)	[thread overview]
Message-ID: <pan$29e1e$f368f5df$85fe86e7$dd12c3b5@cox.net> (raw)
In-Reply-To: 20141121042814.GR17395@hungrycats.org

Zygo Blaxell posted on Thu, 20 Nov 2014 23:28:14 -0500 as excerpted:

> On Wed, Nov 19, 2014 at 10:20:17AM -0500, Phillip Susi wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>> 
>> On 11/18/2014 9:54 PM, Chris Murphy wrote:
>> > Why is it silly? Btrfs on a thin volume has practical use case aside
>> > from just being thinly provisioned, its snapshots are block device
>> > based, not merely that of an fs tree.
>> 
>> Umm... because one of the big selling points of btrfs is that it is in
>> a much better position to make snapshots being aware of the fs tree
>> rather than doing it in the block layer.
> 
> One of the big selling points of LVM is that it is in a much better
> position to make snapshots so you can run btrfsck on the shattered
> remains of your broken btrfs filesystem.
> 
> The UUID-driven behavior of btrfs is _really extremely annoying_.
> No other filesystem forces me to jump through the hoops btrfs does to
> get routine admin tasks done.
> 
> e.g. if an ext4 filesystem explodes, I can:
> 
> 	1.  make a LVM snapshot of the broken filesystem
> 
> 	2.  run e2fsck on the snapshot
> 
> 	3.  mount and repair the snapshot, e.g. rsync any missing files 
from
> 	backups, salvage anything that survived
> 
> 	4.  LVM merge the snapshot to its origin volume
> 
> 	5.  umount the origin volume and mount the merged volume (or just
> 	reboot)
> 
> ...and I can do all of this on a running system, in-place, with only a
> few minutes of downtime in the must-reboot case.
> 
> None of the above works with btrfs at all.  Multi-device btrfs fails at
> 2,
> and mounting the filesystem fails at 3.  The closest I've gotten to this
> workflow is to set up a kvm instance that can see only the LVM
> snapshots, (only) and run the btrfsck or rsync there--and hope that the
> system doesn't crash and reboot during that time, or the filesystem will
> be more or less destroyed by the random combination of origin and
> snapshot LVs.
> 
> I've also learned the hard way to always make an LVM snapshot before
> running btrfsck, just in case you discover a new btrfsck bug with your
> filesystem.  That at least works for single-device btrfs filesystems.

When I have such a filesystem level problem, I simply dd from the backing 
device to some other location, generally to a file that's on a different 
filesystem (preferrably non-btrfs, I use reiserfs as I've found it very 
resilient, here), in which case btrfs device scan won't see the UUID on 
the copy as it scans block devices, not inside non-device files.

After all, an LVM block-level snapshot takes the same space as a file 
containing the same raw data, and if there's room for the data in an LVM 
snapshot, given a different layout, there's room for exactly the same 
amount of data as a file on a different filesystem, piped thru some 
compressor if necessary due to tight datasize constraints.

But while other filesystems might allow un-UUIDs (heh, UUUIDs or U3IDs 
=:^), because they're no longer unique, requiring them to be unique just 
as the label says cannot be considered a bug.  It's simply stricter 
enforcement of the rules, which are, after all, plainly stated in the 
descriptive name.

-- 
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


  reply	other threads:[~2014-11-21  6:23 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-16 21:35 BTRFS messes up snapshot LV with origin MegaBrutal
2014-11-17  1:42 ` Duncan
2014-11-17  6:59   ` Brendan Hide
2014-11-17  7:35     ` Daniel Dressler
2014-11-17  9:00       ` Brendan Hide
2014-11-17 19:04     ` Goffredo Baroncelli
     [not found]       ` <CAE8gLh=VubBbZdeKTAuWRjOxPF7C+ouUeeVvmGfT2ckYWGhQVA@mail.gmail.com>
2014-11-17 19:45         ` Fwd: " MegaBrutal
2014-11-17 20:32           ` Goffredo Baroncelli
2014-11-18  6:16           ` Chris Murphy
2014-11-18 15:42             ` Phillip Susi
2014-11-18 19:17               ` Chris Murphy
2014-11-18 20:17                 ` Phillip Susi
2014-11-19  2:54                   ` Chris Murphy
2014-11-19 15:20                     ` Phillip Susi
2014-11-19 18:35                       ` Chris Murphy
2014-11-19 19:23                         ` Phillip Susi
2014-11-21  4:28                       ` Zygo Blaxell
2014-11-21  6:22                         ` Duncan [this message]
2014-11-21 11:35                           ` Robert White
2014-11-21 11:54                             ` Duncan
2014-11-21 17:56                           ` Zygo Blaxell
2014-11-21 23:09                             ` Duncan
2014-11-21 18:23                           ` Chris Murphy
2014-11-21 22:49                             ` Duncan
2014-11-21 23:41                               ` Duncan
2014-11-21 23:51                                 ` Duncan
2014-11-22 17:34                         ` Goffredo Baroncelli
2014-11-23  0:19                           ` Zygo Blaxell
2014-11-25 16:34                             ` Goffredo Baroncelli
2014-11-25 20:29                               ` Zygo Blaxell
2014-11-25 21:59                                 ` Goffredo Baroncelli
2014-11-25 22:21                                   ` Zygo Blaxell
2014-11-25 22:47                                     ` Chris Murphy
     [not found]                                     ` <CAJCQCtQUM=viSoPtcJMcyKquYb1DLmEsqBi=p++uXPy63+r3Ow@mail.gmail.com>
     [not found]                                       ` <20141126021134.GR17380@hungrycats.org>
2014-11-26  4:48                                         ` Chris Murphy
2014-11-26 17:19                                     ` Goffredo Baroncelli
2014-11-27  4:15                                       ` Zygo Blaxell
2014-11-28 17:05                                         ` Goffredo Baroncelli
2014-11-29  1:25                                           ` Robert White
2014-11-29  7:35                                             ` Goffredo Baroncelli
2014-11-29  8:02                                               ` Robert White
2014-11-29  7:37                                             ` MegaBrutal
2014-11-29  4:59                                           ` Zygo Blaxell
2014-11-29  7:55                                             ` Robert White
2014-12-01 15:25                                               ` Zygo Blaxell
2014-11-26  3:22                                   ` Duncan
2014-11-26  5:11                                     ` Chris Murphy
2014-11-26 22:08                                     ` Robert White
2014-11-27  9:08                                       ` Duncan
2014-11-28  7:10                                         ` Chris Murphy
2014-11-29  7:29                                           ` Duncan
2014-11-29  8:20                                             ` Robert White
2014-11-29  9:41                                               ` Duncan
2014-11-29 16:33                                                 ` Robert White
2014-11-29 16:50                                               ` Robert White
2014-11-30  6:46                                                 ` Duncan
2014-11-29 21:15                                               ` Chris Murphy
2014-11-18 20:41               ` MegaBrutal
2014-11-19  1:29               ` Robert White
2014-11-19  3:37                 ` Duncan
2014-11-21  4:24       ` Zygo Blaxell
2014-11-18  6:21     ` Chris Murphy
2014-11-18 12:13       ` Duncan
2014-11-18 20:01       ` Goffredo Baroncelli
  -- strict thread matches above, loose matches on Subject: below --
2014-11-17  8:00 MegaBrutal

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$29e1e$f368f5df$85fe86e7$dd12c3b5@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 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.