* possible bug in balance
[not found] <1377898232.24181420209516734.JavaMail.root@shiva>
@ 2015-01-02 14:42 ` luvar
2015-01-03 10:30 ` Duncan
2015-01-04 10:39 ` Erkki Seppala
0 siblings, 2 replies; 3+ messages in thread
From: luvar @ 2015-01-02 14:42 UTC (permalink / raw)
To: linux-btrfs
Hi,
I have today added one device and I have converted metadata to raid1. Than I wanted to convert to raid1 also some data (with balance filter) and try if there is some speedup when reading files (starting programs)... I have issued this command:
luvar@blackdawn:~$ sudo time btrfs balance start -dconvert=raid1 -dusage=20 /home/luvar/programs/
[sudo] password for luvar:
ERROR: error during balancing '/home/luvar/programs/' - Input/output error
There may be more info in syslog - try dmesg | tail
Command exited with non-zero status 19
0.00user 0.08system 0:08.29elapsed 1%CPU (0avgtext+0avgdata 768maxresident)k
14696inputs+6584outputs (2major+253minor)pagefaults 0swaps
Part of df command:
luvar@blackdawn:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb2 458G 177G 59G 75% /
/dev/sdb2 458G 177G 59G 75% /home
/dev/sdb1 226M 96M 114M 46% /boot
/dev/sdb2 458G 177G 59G 75% /home/luvar/eclipseWorkspaceAndroid
/dev/sdb2 458G 177G 59G 75% /home/luvar/eclipseWorkspaceErlang
/dev/sdb2 458G 177G 59G 75% /home/luvar/programs
root@blackdawn:/home/luvar# dmesg|tail -n 50
[ 8107.693414] attempt to access beyond end of device
[ 8107.693425] sdb2: rw=32, want=480102272, limit=473956352
[ 8107.711854] attempt to access beyond end of device
[ 8107.711863] sdb2: rw=1041, want=480102272, limit=473956352
[ 8107.771103] attempt to access beyond end of device
[ 8107.771114] sdb2: rw=32, want=482410504, limit=473956352
[ 8107.784037] attempt to access beyond end of device
[ 8107.784045] sdb2: rw=1041, want=482410504, limit=473956352
[ 8107.804923] attempt to access beyond end of device
[ 8107.804933] sdb2: rw=32, want=478657496, limit=473956352
[ 8107.817134] attempt to access beyond end of device
[ 8107.817142] sdb2: rw=1041, want=478657496, limit=473956352
[ 8107.835377] attempt to access beyond end of device
[ 8107.835384] sdb2: rw=32, want=480795752, limit=473956352
[ 8107.842977] attempt to access beyond end of device
[ 8107.842985] sdb2: rw=1041, want=480795752, limit=473956352
[ 8107.887768] attempt to access beyond end of device
[ 8107.887778] sdb2: rw=32, want=478931480, limit=473956352
[ 8107.898939] attempt to access beyond end of device
[ 8107.898946] sdb2: rw=1041, want=478931480, limit=473956352
[ 8107.958691] attempt to access beyond end of device
[ 8107.958699] sdb2: rw=32, want=479426840, limit=473956352
[ 8107.966368] attempt to access beyond end of device
[ 8107.966375] sdb2: rw=1041, want=479426840, limit=473956352
[ 8116.097908] attempt to access beyond end of device
[ 8116.097919] sdb2: rw=32, want=478334096, limit=473956352
[ 8116.097923] btrfs_dev_stat_print_on_error: 12 callbacks suppressed
[ 8116.097926] btrfs: bdev /dev/sdb2 errs: wr 638625, rd 65863, flush 0, corrupt 0, gen 0
[ 8116.133108] attempt to access beyond end of device
[ 8116.133118] sdb2: rw=1041, want=478334096, limit=473956352
[ 8116.133124] btrfs: bdev /dev/sdb2 errs: wr 638626, rd 65863, flush 0, corrupt 0, gen 0
[ 8125.065061] attempt to access beyond end of device
[ 8125.065073] sdb2: rw=32, want=481418928, limit=473956352
[ 8125.065077] btrfs: bdev /dev/sdb2 errs: wr 638626, rd 65864, flush 0, corrupt 0, gen 0
[ 8125.084522] attempt to access beyond end of device
[ 8125.084533] sdb2: rw=1041, want=481418928, limit=473956352
[ 8125.084539] btrfs: bdev /dev/sdb2 errs: wr 638627, rd 65864, flush 0, corrupt 0, gen 0
[ 8131.848768] btrfs: relocating block group 472710643712 flags 1
[ 8133.866427] attempt to access beyond end of device
[ 8133.866436] sdb2: rw=0, want=476739152, limit=473956352
[ 8133.866441] btrfs: bdev /dev/sdb2 errs: wr 638627, rd 65865, flush 0, corrupt 0, gen 0
[ 8133.866516] attempt to access beyond end of device
[ 8133.866520] sdb2: rw=0, want=476739152, limit=473956352
[ 8133.866523] btrfs: bdev /dev/sdb2 errs: wr 638627, rd 65866, flush 0, corrupt 0, gen 0
[ 8159.272179] attempt to access beyond end of device
[ 8159.272191] sdb2: rw=32, want=480110048, limit=473956352
[ 8159.272196] btrfs: bdev /dev/sdb2 errs: wr 638627, rd 65867, flush 0, corrupt 0, gen 0
[ 8159.300427] attempt to access beyond end of device
[ 8159.300434] sdb2: rw=1041, want=480110048, limit=473956352
[ 8159.300440] btrfs: bdev /dev/sdb2 errs: wr 638628, rd 65867, flush 0, corrupt 0, gen 0
root@blackdawn:/home/luvar# uname -a
Linux blackdawn 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:40:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
root@blackdawn:/home/luvar# btrfs v
Btrfs v0.20-rc1-189-g704a08c
Am I doing something forbidden (I have not see any structure where raid type is stored per file/subvolume item), or I just hit some problem? What should I try?
PS: After all I will convert all data to raid1, but I want to play first :-)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: possible bug in balance
2015-01-02 14:42 ` possible bug in balance luvar
@ 2015-01-03 10:30 ` Duncan
2015-01-04 10:39 ` Erkki Seppala
1 sibling, 0 replies; 3+ messages in thread
From: Duncan @ 2015-01-03 10:30 UTC (permalink / raw)
To: linux-btrfs
luvar posted on Fri, 02 Jan 2015 15:42:29 +0100 as excerpted:
> root@blackdawn:/home/luvar# uname -a
> [...] 3.13.0-30-generic [...]
>
> root@blackdawn:/home/luvar# btrfs v
> Btrfs v0.20-rc1-189-g704a08c
>
>
> Am I doing something forbidden [...]
Those versions are your problem. Do you know how fast btrfs is
improving, how old those are (hint, there are about five kernel release
series a year and we're now on the 3.19 development series with 3.18
stable, so 3.13 is... about five releases back and thus about a year old!
), and how many bugs have been fixed since then?
Try something newer than the paleolithic age, say a current 3.18.x stable
series kernel or a 3.19-rc, and the recent btrfs-progs 3.18.0, and you
should see rather better results. There are valid reasons to stick to
old and stable, but they simply don't mix well with a new and still not
completely stable filesystem that still sees regular bug fixes, and not
just for code introduced in the last kernel, either! Therefore, if you
want old and stable, choose a different filesystem; while if you want to
run btrfs, staying current is strongly recommended.
Meanwhile, if you haven't yet, you may want to spend some time on the
wiki reading up. Take a look at the stuff under section 5.1, Guides and
usage information, especially. It'll answer a lot of questions and could
save your data too. =:^)
https://btrfs.wiki.kernel.org
--
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: possible bug in balance
2015-01-02 14:42 ` possible bug in balance luvar
2015-01-03 10:30 ` Duncan
@ 2015-01-04 10:39 ` Erkki Seppala
1 sibling, 0 replies; 3+ messages in thread
From: Erkki Seppala @ 2015-01-04 10:39 UTC (permalink / raw)
To: linux-btrfs
luvar@plaintext.sk writes:
Hello,
> luvar@blackdawn:~$ sudo time btrfs balance start -dconvert=raid1 -dusage=20 /home/luvar/programs/
> Am I doing something forbidden (I have not see any structure where
> raid type is stored per file/subvolume item), or I just hit some
> problem? What should I try?
btrfs doesn't yet support per-subvolume RAID1 levels. I'm not sure how
it should behave with your command line. It probably tries to
rebalance the whole filesystem.
> Than I wanted to convert to raid1 also some data (with balance
> filter) and try if there is some speedup when reading files
> (starting programs)...
Though I can already tell that no, there won't be a speedup, as btrfs
scheduler chooses the device to access by using the process id as a
seed. Therefore a single thread is never able to use 100% RAID1 input
capability. Perhaps in future there will be more sophisticated
schedulers. You may try to use MD raid1 for extra speed, but you would
lose the automatic error recovery of btrfs (but you would still notice
if data gets corrupted).
> [ 8159.300427] attempt to access beyond end of device
> [ 8159.300434] sdb2: rw=1041, want=480110048, limit=473956352
> [ 8159.300440] btrfs: bdev /dev/sdb2 errs: wr 638628, rd 65867, flush 0, corrupt 0, gen 0
I have noticed that 'attempt to access beyond end of device' typically
indicates (with other file systems, I haven't seen that with btrfs)
that the partition table and the filesystem size don't
match. Typically such a situation could occur when one modifies
partition table after creating the file system, though I'm sure there
are other ways to get into such a situation. You may find the
filesystem size with btrfs filesystem show and partition sizes with
cat /proc/partitions (multiply by block size = 1024 bytes).
Should the partition sizes and filesystem sizes match, I would be
quite certain this would indeed be a btrfs bug. But,
> root@blackdawn:/home/luvar# uname -a
> Linux blackdawn 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:40:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> root@blackdawn:/home/luvar# btrfs v
> Btrfs v0.20-rc1-189-g704a08c
should this turn out to be a bug, I'm certain trying a more recent
kernel version is a terrific idea :). 3.18.x or 3.17.y where y>2 (I
think those were the two versions that were bad in 3.17
series..). They won't have support for raid1'n a subvolume either,
though, as far as I know.
Remember backups :).
--
_____________________________________________________________________
/ __// /__ ____ __ http://www.modeemi.fi/~flux/\ \
/ /_ / // // /\ \/ / \ /
/_/ /_/ \___/ /_/\_\@modeemi.fi \/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-01-04 10:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1377898232.24181420209516734.JavaMail.root@shiva>
2015-01-02 14:42 ` possible bug in balance luvar
2015-01-03 10:30 ` Duncan
2015-01-04 10:39 ` Erkki Seppala
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.