Roman Shaposhnik posted on Wed, 11 Apr 2012 18:08:47 -0700 as excerpted:
> after attending Chris'' presentation at Linux Foundation Summit I
got
> really excited about the potential for using btrfs in some of the
> embedded projects that I do. With that in mind, here''s a couple of
> question (feel free to vector me off to an FAQ ;-)):
> * does anybody on this list have any experience with btrfs in the
> embedded space?
> OpenWRT/OpenEmbedded or anything else? Most of my projects are MIPS
> (some are ARM).
> * what''s the kernel/userland versions that I should start with?
> * is there any reason for a restriction to the size of the device
> (>=256 MB)?
> 256MB is a lot for an embedded application.
I claim no embedded knowledge and actually am waiting for a particular
feature that''s not in mainline yet so I''m not actually running
btrfs here
yet, but you asked for a FAQ and didn''t mention the existing ones or
the
wikis in general, so...
There''s actually two wikis ATM, the static and quite dated (from pre-
kernel.org-breakin) but official looking kernel.org URL wiki, and a
"temporary" one created in the wake of the breakin that''s
looking like it
might ultimately be permanent. Here''s the links for both...
outdated: https://btrfs.wiki.kernel.org/
current: http://btrfs.ipv5.de/index.php?title=Main_Page
Some quick points:
AFAIK, the 256 MB minimum is gone with 3.2 or so. You *WILL* want the
equally recent mixed-mode (data/metadata mixed together), however, for
something that small, but it''s now the default under a gig anyway. (I
know this one since that was one of the issues I asked about while
planning my own eventual upgrade... I currently have a 128 MB /boot
partition.)
FWIW, btrfs'' default is single-mode data, dup-mode metadata. You can
read more about it on the wiki, but for smaller filesystems, you may not
have room for the duped metadata. And if you''re not duping metadata
anyway, you may wish to consider whether you want checksumming at all,
thus reducing metadata size further. It /may/ also affect speed on
embedded platforms, tho it''s not so much a factor for non-embedded.
But
that of course kills one of the big selling points of btrfs, its
automatic checksumming and error detection/correction. There''s other
similar mount option and etc tradeoff choices to make, too, so pay
attention to those bits on the wiki.
Kernel and btrfs-tools versions? btrfs is still under very heavy
development, with bugs actively being reported, tracked down and fixed
here on this list. As such, the general rule is to run the newest
versions possible and to actively follow this list for current
developments. That normally means following the latest linus-mainline
kernel release, if not the rcs, if not the btrfs-next branch pre-
integration with mainline. If you''re running more than a version
behind,
that''s normally considered OLD and of little testing value (if
you''ve
kept up, that''s all btrfs is considered ready for now, testing,
official
oracle, etc, support not withstanding), as a lot of bugs have been fixed
since then, while others may well have just been exposed and need testing
to trigger and then reported.
If you''ve noted, I said "normally". There''s
apparently an active
regression in 3.3, and while 3.4 may correct it, there''s another active
regression there, tho they''ve traced it and should have a fix in by
3.4-
rc4 or so. Of course the last few weeks of list archives have the
details, thus the emphasis on keeping up with current status on the list,
but at the moment there''s an exception to the general "absolute
latest" (unless you want to try the btrfs-next tree), and you might want
to stick with the latest stable 3.2.x for a couple weeks.
If from that you get the picture that btrfs isn''t ready for anything
besides testing data, you''ve been paying attention! =:^) Of course
backups are always recommended, even with stable filesystems, but btrfs
goes way beyond that. With a stable filesystem, your backup is just
that, a backup to your "real" data. With current btrfs, the best
approach is to consider anything on btrfs testing-only throw-away
temporary data. You really SHOULD be considering the data on another non-
btrfs volume your primary data, with it backed up as you would any data
you value, and the copy you''re testing btrfs with exactly what I said
above, testing-only, no big deal if btrfs eats it, because testing for
and reporting that sort of thing are ideally exactly why you''re running
btrfs at this point anyway.
If that hasn''t scared you way yet, welcome to btrfs testing, have a
read
of the wiki and a couple weeks of btrfs list archives to get oriented,
and looking forward to seeing your reports of any issues you find with
embedded use specifically, but in general as well. =:^)
Alternatively, you may wish to do what I''m doing ATM, continue
following
the list to keep updated, but hold off on actual testing for the moment.
(In my case, the feature I''m waiting for is N-way mirroring, at least
three-way. The current so-called raid1 mode is in reality only two-way-
mirroring, not N-way, with either 3-way or N-way (I''m not actually
clear
which) roadmapped for 3.5 or 3.6 at this point. Another thing I was
waiting for was an actual error-correcting btrfsck, which is only now
coming available, so it''s coming, but I have 1-2 kernel cycles to wait
for my critical feature, which is fine with me, since btrfs is starting
to mature now and should be much improved in that time, thus less risk
and hassle for me. =:^)
--
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
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html