Re: btrfs defrag problem
From: cwillu <hidden>
Date: 2012-10-30 12:08:10
On Tue, Oct 30, 2012 at 5:47 AM, ching [off-list ref] wrote:
Hi all,
I try to defrag my btrfs root partition (run by root privilege)
find / -type f -o -type d -print0 | xargs --null --no-run-if-empty btrfs filesystem defragment -t $((32*1024*1024))
1. This kind of error messages is prompted:
failed to open /bin/bash
open:: Text file busy
total 1 failures
failed to open /lib64/ld-2.15.so
open:: Text file busy
total 1 failures
failed to open /sbin/agetty
open:: Text file busy
failed to open /sbin/btrfs
open:: Text file busy
failed to open /sbin/dhclient
open:: Text file busy
failed to open /sbin/init
open:: Text file busy
failed to open /sbin/udevd
It seems that locked files cannot be defragged, is it expected behaviour?I can't reproduce that behaviour here, although maybe you're running an older kernel with some bug that's since been fixed?
2. Btrfs Wiki mentions that defrag directory will defrag metadata, is symlink/hardlink considered as metadata?
P.S. inline data is already disabled by "max_inline=0"Well, that's a silly thing to do, causing every small file to take up a separate 4kb block rather than its size * 2, and requiring extra seeks to read/write them (i.e., if you have a million 10 byte files, they'll now take up 4GB instead of 20MB).
3. Is any possible to online defrag a btrfs partition without hindered by mount point/polyinstantied directories?
If you're asking if you can defrag an unmounted btrfs, not at this time. It's possible in principle, nobody has cared enough to implement it yet.