Fahrzin Hemmati posted on Sat, 25 Feb 2012 18:37:24 -0800 as excerpted:

> On 2/25/2012 6:16 PM, Brian J. Murrell wrote:
>>> Others might know of a way of changing the allocation size to less
>>> than 1GB, but otherwise I recommend switching to something more stable
>>> like ext4/reiserfs/etc.

>> So btrfs is still not yet suitable to be a root/usr/var filesystem,
>> even in kernel 3.0.0?
>>
> Nope, still in heavy development, though you should upgrade to 3.2.
> Also, the devs mentioned in several places it's not friendly to small
> drives, and I'm pretty sure 5GB is considered tiny.
> 
> I don't think you need to separate /usr out to it's own disk. You could
> instead create a single drive with multiple subvolumes for /, /var,
> /usr, etc. When you have Ubuntu use btrfs for /, it creates @ and @home
> for / and /home, respectively, so it's a common phenomenon if you look
> for help.

It's astonishing to me the number of people that come in here complaining 
about problems with a filesystem the kernel option of which says 

Title:

Btrfs filesystem (EXPERIMENTAL) Unstable disk format

Description (excerpt):

Btrfs is highly experimental, and THE DISK FORMAT IS NOT YET
FINALIZED.  You should say N here unless you are interested in
testing Btrfs with non-critical data.


So, does testing with non-critical data sound like it's appropriate for 
running on your (OP's) root or home (or anything else you might be using 
it for) filesystem, the way you're doing it now?  If not, what are you 
doing on btrfs?  You better either change your choice of filesystem, or 
your update and backup strategy, to be more in line with the testing 
that's an appropriate use of btrfs at this point.

About twice a week we get people on the list asking about recovery tools 
because the filesystem won't mount, too, and they apparently had no 
backups.  WTF?  Not only should they have had backups (that's normal with 
every filesystem, you always have backups if the data's valuable to you, 
and always test them), but btrfs isn't appropriate for anything besides 
testing data that they *EXPECT* the file system to chew up and spit out 
at them!  IOW, not only should there be backups, but the btrfs copy 
should be considered the non-primary copy, essentially garbage, because 
there's a very real chance that's what it'll be if something goes wrong!

Of course, anyone who *IS* using it as intended at this point will be 
following the lists, know what bugs are being seen frequently, know the 
status of the various recovery tools, etc.  They won't HAVE to ask, as 
they'll already KNOW if they're using the filesystem as intended, for 
testing, reporting bugs, and possibly submitting patches if they have the 
skills, in coordination with the devs and other testers on the list, at 
this point.

Meanwhile, if you DO decide to continue with btrfs for testing...

There's a wiki covering the ENOSPC problem, discussing kernel and tools 
status (keep upto date, the kernel especially is in HEAVY development, 
and even running the latest stable kernel, means you're already missing 
the bug-fixes and better stability in the current development kernel!), 
etc.

Actually, there's two wikis, the kernel.org wiki which is static content 
(not updated and thus not upto date) ATM due to the kernel.org breakin a 
few months ago, and a "temporary" one that's rather more current.

Here's the link to both:

Kernel.org wiki (outdated static ATM):
https://btrfs.wiki.kernel.org/

Temporary upto-date wiki:
http://btrfs.ipv5.de/index.php?title=Main_Page

There, the second paragraph of the main page says:

Btrfs is under heavy development, but every effort is being made to keep 
the filesystem stable and fast. Because of the speed of development, you 
should run the latest kernel you can (either the latest release kernel 
from kernel.org, or the latest -rc kernel.

So YES, a 3.0 kernel is *OLD*!  Even the latest stable 3.2.x kernel won't 
have the latest btrfs fixes.  For that, you need the latest 3.3-rc if you 
aren't running git kernels and updating between the rcs!

The FAQ page there has a whole section titled "Help! I ran out of disk 
space!"  In particular, see the "If your device is small" subsection.

http://btrfs.ipv5.de/index.php?title=FAQ

Also, down further in the FAQ, see

Why does df show incorrect free space for my RAID volume?
Aaargh! My filesystem is full, and I've put almost nothing into it!
Why are there so many ways to check the amount of free space?

(That's one section covering the three.)  Plus the answers to these two 
as well:

Why is free space so complicated?

Why is there so much space overhead?

Meanwhile, what you SHOULD have read before even STARTING with btrfs, the 
getting started page:

http://btrfs.ipv5.de/index.php?title=Getting_started

Right at the top:
[begin quote]

btrfs is a fast-moving target. There are typically a great many bug fixes 
and enhancements between one kernel release and the next. Therefore:

* If you have btrfs filesystems, run the latest kernel. *

If you are running a kernel two or more versions behind the latest one 
available from kernel.org, the first thing you will be asked to when you 
report a problem is to upgrade to the latest kernel. Some distributions 
keep backports of recent kernels to earlier releases -- see the page 
below for details.

Having the latest user-space tools are also useful, as they contain 
additional features and tools which may be of use in debugging or 
recovering your filesystem if something goes wrong.

Note also that btrfs is still considered experimental. While many people 
use it reliably, there are still problems being found.

* You should keep and test backups of your data, and be prepared to use 
them. *

[end quote]

So YES, UPGRADE.  If you're not interested in keeping up with the latest 
kernels, why are you running a testing filesystem?

And here again, from the source code page:

http://btrfs.ipv5.de/index.php?title=Btrfs_source_repositories

[begin quote]
Warning, Btrfs evolves very quickly do not test it unless:

1. You have good backups and you have tested the restore capability
2. You have a backup installation that you can switch to when
       something breaks
3. You are willing to report any issues you find
4. You can apply patches and compile the latest btrfs code against
       your kernel (quite easy with git and dkms, see below)
5. You acknowledge that btrfs may eat your data
6. Backups! Backups! Backups! 

[end quote]


Meanwhile, new enough it's not on the wiki that I saw, and it wasn't in 
3.0 I don't believe but 3.2 has it, and it'll require a current btrfs-
progs (the git version, updated regularly, is best), but mkbtrfs aka 
mkfs.btrfs now has the --mixed/-M option, with this description in the 
mkfs.btrfs (8) manpage:

-M, --mixed
  Mix data and metadata chunks together for more efficient space
  utilization.   This  feature incurs  a  performance  penalty
  in  larger  filesystems.   It  is recommended for use with
  filesystems of 1 GiB or smaller.

You could try that on 5-gig filesystems as well.

Finally, the previous smallest allocation block was 1/4 GiB (256 MiB).  
Combine that with the fact that until recently each such block could be 
set to date OR metadata, NOT mixed (fixed at mkfs time with the option 
above), and btrfs really was NOT suited to small filesystems.

Very new, so new I know it's in 3.3 but am not sure it's in 3.2, that 256 
MiB lower end limitation is now gone, and btrfs can make use of "the 
small change" space it previously couldn't do anything with.

Combine those two very new changes together, and it's actually semi-
practical to use btrfs for smaller filesystems now.  But they're both 
quite new, I believe both newer than your actually relatively ancient (in 
btrfs terms) kernel 3.0.  It's exactly that sort of thing that's behind 
the emphasis on keeping up, as you'll be doing anyway if you're using the 
filesystem as intended at this point, for rapid-turn-around testing, 
reporting problems, and getting fixes with each kernel version and often 
in between (with 3.3, there was the merge-window changes before rc1, and 
just a few days ago a whole host of fixes submitted, that if Linus pulled 
them, they'd be in rc4).

-- 
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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to