Re: Full filesystem btrfs rebalance kernel panic to read-only lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2018/11/9 上午6:40, Pieter Maes wrote:
> Hello,
> 
> So, I've had the full disk issue, so when I tried re-balancing,
> I got a panic, that pushed filesystem read-only and I'm unable to
> balance or grow the filesystem now.
> 
> fs info:
> btrfs fi show /
> Label: none  uuid: 9b591b6b-6040-437e-9398-6883ca3bf1bb
>     Total devices 1 FS bytes used 614.94GiB
>     devid    1 size 750.00GiB used 750.00GiB path /dev/mapper/vg0-root
> 
> btrfs fi df /
> Data, single: total=740.94GiB, used=610.75GiB
> System, DUP: total=32.00MiB, used=112.00KiB
> Metadata, DUP: total=4.50GiB, used=3.94GiB

Metadata usage the the biggest problem.
It's already used up.

> GlobalReserve, single: total=512.00MiB, used=255.06MiB

And the reserved space is also been used, that's a pretty bad news.

> 
> btrfs sub list -ta /
> ID    gen    top level    path   
> --    ---    ---------    ----   
> 
> btrfs --version
> btrfs-progs v4.4
> 
> Log when booting machine now from root:
> 
> ----
> 
> [   54.746700] ------------[ cut here ]------------
> [   54.746701] BTRFS: Transaction aborted (error -28)

Transaction can't even be done due to lack of space.

[snip]
> 
> ----
> 
> When booting to a net/livecd rescue
> First I run a check with repair:
> 
> ----
> 
> enabling repair mode
> Checking filesystem on /dev/vg0/root
> UUID: 9b591b6b-6040-437e-9398-6883ca3bf1bb
> checking extents
> Fixed 0 roots.
> checking free space cache
> cache and super generation don't match, space cache will be invalidated
> checking fs roots
> reset nbytes for ino 6228034 root 5

It's a minor problem.
So the fs itself is still pretty health.

> checking csums
> checking root refs
> found 664259596288 bytes used err is 0
> total csum bytes: 619404608
> total tree bytes: 4237737984
> total fs tree bytes: 1692581888
> total extent tree bytes: 1461665792
> btree space waste bytes: 945044758
> file data blocks allocated: 1568329531392
>  referenced 537131163648
> ----
> 
> But then when I try to mount the fs:
> 
> ----
[snip]
> 
> rescue kernel: 4.9.120
> 
> ----
> 
> I've grown the blockdevice, but there is no way I can grow the fs,
> it doesn't want to mount in my rescue system, and it only mounts
> read-only when booting from it, so I can't do it from there either

Btrfs-progs could do it with some extra dirty work.
(I purposed offline device resize idea, but didn't implement it yet)

You could use this branch:
https://github.com/adam900710/btrfs-progs/tree/dirty_fix

It's a quick and dirty fix to allow "btrfs-corrupt-block -X <device>" to
extent device size to max.

Please try above command to see if it solves your problem.

Thanks,
Qu

> 
> I hope someone can help me out with this.
> Thanks!
> 

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux