From: Duncan <1i5t5.duncan@cox.net>
To: linux-btrfs@vger.kernel.org
Subject: Re: Virtual Device Support
Date: Tue, 21 May 2013 03:59:58 +0000 (UTC) [thread overview]
Message-ID: <pan$9855$81c2d2df$c9aa1ca3$2451cc46@cox.net> (raw)
In-Reply-To: 519AD943.6060303@chinilu.com
George Mitchell posted on Mon, 20 May 2013 19:17:39 -0700 as excerpted:
> Duncan, The problem affects btrfs volumes that span multiple drive. If
> you are using btrfs on a single drive that works just fine. But in a
> multidrive situation, sometimes it works (when umount guesses the right
> device name) and sometimes it fails (when umount guesses the wrong
> device name). Have fun! - George
Thanks. I had inferred that but glad to have it confirmed. My planned
usage will indeed be multi-device as I'm going to be using btrfs raid1,
but now that you mention the multi-device trigger explicitly, I
understand why my tests a year ago didn't run into the problem, as those
tests were single-device. (I had inferred the multi-device connection,
but hadn't made the additional connection between that and my earlier
tests being single-device until you explicitly mentioned the multi-dev
trigger, explaining...)
My personal btrfs history is a bit complicated. Until about a year ago,
I was running md-raid-1 with four aging 300g "spinning rust" drives
(having earlier experimented with raid-6 and lvm, then ultimately
deciding raid1 was better for me, but the raid6 experiment was the reason
for the four). Because they /were/ aging, I wasn't particularly
comfortable with the thought of reducing redundancy down to two, and was
rather dismayed to find out that btrfs' so-called raid1 support wasn't
raid-1 in the traditional sense of N-way mirroring at all, but was
limited to two-way-mirroring regardless of the number of physical
devices. So I researched but didn't deploy at that time, waiting for the
raid-6 support (followed by n-way-mirroring) that was then planned for
the next kernel cycle or two, but as we know now, took several kernel
cycles to hit, with N-way-mirroring still not available.
Then I ran into hardware issues that turned out to be bad caps on my 8-
year-old mobo (tho it was dual-socket first-gen opteron, which I had
upgraded to top-of-its-line dual-core Opteron 290s, thus four cores @ 2.8
GHz, with 8 gigs RAM, so it wasn't as performance-dated as its age might
otherwise imply).
However, those issues first appeared as storage errors, so knowing the
drives were aging, I thought it was them, and I replaced, upgrading for
the first time to 2.5" from the older 3.5" drives. However, that was
still the middle of the recession and I had severe budget issues, so I
decided to try my luck with a single drive (temporarily) in place of the
four I had been running, fortunately enough, since it didn't turn out to
be the drive at all. But not knowing that at the time and having the
opportunity now with a single drive that was new and thus should be
reliable, I decided to try btrfs on it, which was where my actual
deployment and testing time came from.
But meanwhile, the hardware problems continued, and I found the old
reiserfs was MUCH more stable under those conditions than btrfs, which
would often be missing entire directory trees after a crash, where
reiserfs would be missing maybe the last copied file or two. (I was
still trying to copy from the old raid1 to the new single device hard
drive, so was copying entire trees over... all on severely unstable
motherboard hardware that was frequently timing out SATA commands...
sometimes to resume after a couple minutes, sometimes not. Of course at
the time I was still blaming it on the old drives since that was what I
was copying from. It only became apparent that they weren't the issue
once I had enough on the new drive to try running from it with the others
detached.)
So under those conditions I decided btrfs was definitely *NOT*
appropriate, and returned to the long stable reiserfs, which I've
continued using until now.
Meanwhile, after getting enough on the new drive to run from it, I
realized it wasn't the old drives that were the problem, and eventually
realized that I had bulging and even a few popped caps. So mobo upgrade
time it was.
Fortunately, bad financial situation tho I was in, I still had good
enough credit to get an account approved at the local Fry's Electronics,
and I was able to purchase mobo/cpu/memory/graphics, all upgraded at
once, mostly even on year-same-as-cash terms. And fortunately, my
financial situation has improved dramatically since then, so that's long
ago paid off and I'm on to new things.
One of those new things is a pair of SSDs, hence my renewed interest in
btrfs, since reiserfs' journaling is definitely NOT SSD friendly.
Meanwhile, btrfs having a year to mature since my initial tests, and now
being on new and actually WORKING (!!) hardware, and as I said, needing
an alternative to the reiserfs I've been using for over a decade now, I'm
again interested in btrfs.
This time around, I'm still interested in the checksumming and data
integrity features and in particular the multi-device angle, but the N-
way-mirroring isn't as important now since I'm looking at only two
devices anyway, and even that's a step up from my current single device.
In addition, new this time, I'm now interested in the SSD features.
Meanwhile, given the SSDs and the impressive benchmarks I've seen for it,
I've also looked into f2fs, but decided it's WAAAYYY too immature to
seriously consider at this point.
I considered ext4 as well, but the ext* filesystems and I have just never
gotten along very well, one of the reasons I've stuck with reiserfs for
so long. Here, time and time again reiserfs has been proven impressively
stable, especially since ordered-journaling became the default back in
2.6.16 or whatever, even thru hardware issues like the above that should
challenge ANY filesystem. Personally, I think part of the problem with
ext* is that too many kernel devs think they know it well enough to mess
with it, when they don't. I know people who suffered data loss during
the ext3 defaulting to writeback (as opposed to ordered) journaling
period, for instance, while I was safe on reiserfs, which most kernel
devs are scared to touch, so it just continues working as it always has.
(Personally I'd had enough of a demonstration of the evils of writeback
journaling with pre-ordered reiserfs to seriously doubt the sanity of the
ext3 switch to writeback journaling by default from the moment I heard
about it, and of course had I been running ext3, I'd have switched back
to ordered immediately, but the person I know that lost data due to that
wasn't following kernel development closely enough to know why, he just
knew it was happening. When I saw he was running ext3 and his kernel
version, I asked about the journaling option, and sure enough, when he
switched to ordered, the problem disappeared!)
Also, having run reiserfs for years, I see no reason for a modern fs to
not have tail-packing (tho f2fs arguably has an excuse due to the
technology it's targeting). ext* has never had that, while btrfs has
equivalent. I guess it's possible with ext4 and kernel 3.6+ now, but
there's still serious limitations to it on ext4.
So I'll try btrfs raid1 mode on the SSDs, and get the checksumming and
data integrity features that the raid1 mode provides. =:^) Plus I'll
have btrfs' tail-packing, and the comfort of knowing that the same Chris
Mason who worked on reiserfs for so long and introduced reiserfs ordered
journal mode to mainline (IDR whether he originally authored it or not)
is lead on btrfs now. =:^)
And hopefully, now that btrfs raid5/6 is in, in a few cycles the N-way
mirrored code will make it as well, and I can add a third SSD and
rebalance to it. That time gap should ensure the third device is
sufficiently separate in lot and possibly model number as well, so I
don't have all my raid-1 data eggs in the same device lot basket. =:^)
Meanwhile, the old "spinning rust" drive, still with demonstrated
reliable reiserfs, can continue to serve as a backup, both to the new SSD
technology and same-lot raid-1 devices, and to the still not fully stable
btrfs I'll be trying to run on them in "production" mode.
So yes, it's likely I'll have to devise workarounds to the multi-device
btrfs label= umount problem myself. I guess I'll find out in a day or
two, as I actually deploy and my experiment progresses. =:^)
And yes, have fun I expect I will. =:^)
--
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
next prev parent reply other threads:[~2013-05-21 4:00 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-10 14:03 Virtual Device Support George Mitchell
2013-05-19 11:04 ` Martin
2013-05-19 14:49 ` George Mitchell
2013-05-19 17:18 ` Martin
[not found] ` <CAHGunUke143r3pj0Piv3AtJrJO1x8Bm+qS5Z+sY1G1EobhMG_w@mail.gmail.com>
2013-05-21 14:26 ` George Mitchell
2013-05-19 11:15 ` Roman Mamedov
2013-05-19 18:18 ` Chris Murphy
2013-05-19 18:22 ` Chris Murphy
2013-05-21 1:08 ` Duncan
2013-05-21 2:17 ` George Mitchell
2013-05-21 3:59 ` Duncan [this message]
2013-05-21 5:21 ` George Mitchell
2013-05-21 12:19 ` Virtual Device Support ("N-way mirror code") Martin
2013-05-23 16:08 ` Martin Steigerwald
2013-05-24 1:41 ` George Mitchell
2013-05-25 11:53 ` Martin Steigerwald
2013-05-24 6:13 ` Duncan
2013-05-25 11:56 ` Martin Steigerwald
2013-05-21 3:37 ` Virtual Device Support Chris Murphy
2013-05-21 12:06 ` Martin
2013-05-22 2:23 ` Chris Murphy
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$9855$81c2d2df$c9aa1ca3$2451cc46@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.