Skip to contentSkip to conversation

btrfsck out of memory for big fs

DISCUSSION [email protected] 2 participants 3 messages Aug 17, 2018 1 message not in the archive Btrfs file system

lore
Share & tools
lore
#0 lore raw

Hi Guys,

I had a big btrfs on a md device,  it be mounted , but after a while it will become ready only:

# btrfs fi df /data/
Data, single: total=24.46TiB, used=24.46TiB
System, DUP: total=8.00MiB, used=2.59MiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=81.00GiB, used=79.71GiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=512.00MiB, used=264.28MiB
# dmesg -T
[Thu Aug 16 18:16:31 2018] BTRFS error (device md127): parent transid verify failed on 26603622694912 wanted 185320 found 207817
[Thu Aug 16 18:16:31 2018] BTRFS error (device md127): parent transid verify failed on 26603622694912 wanted 185320 found 207817
[Thu Aug 16 18:16:31 2018] BTRFS warning (device md127): Skipping commit of aborted transaction.
[Thu Aug 16 18:16:31 2018] BTRFS: error (device md127) in cleanup_transaction:1864: errno=-5 IO failure
[Thu Aug 16 18:16:31 2018] BTRFS info (device md127): forced readonly
[Thu Aug 16 18:16:31 2018] BTRFS info (device md127): delayed_refs has NO entry

I want to use btrfsck to check it,  but it will OOM :

# btrfsck /dev/md127
Checking filesystem on /dev/md127
UUID: 6b87a52f-9a5f-4d03-b345-9d954c2ce259
checking extents
Killed

I am trying to use lowmem mode,  but as I tried before, it may OOM too,    any ideas ?

Thanks.

#1 lore raw
Quoted 11 lines · On 2018/8/17 上午10:44, [email protected] wrote:

Hi Guys,

I had a big btrfs on a md device,  it be mounted , but after a while it will become ready only:

# btrfs fi df /data/
Data, single: total=24.46TiB, used=24.46TiB
System, DUP: total=8.00MiB, used=2.59MiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=81.00GiB, used=79.71GiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=512.00MiB, used=264.28MiB
Quoted 3 lines
# dmesg -T
[Thu Aug 16 18:16:31 2018] BTRFS error (device md127): parent transid verify failed on 26603622694912 wanted 185320 found 207817
[Thu Aug 16 18:16:31 2018] BTRFS error (device md127): parent transid verify failed on 26603622694912 wanted 185320 found 207817

Transaction id mismatch, normally this means some of the fs is already corrupted before.

And considering the transid gap, the corruption happened quite a long time ago.

Quoted 5 lines
[Thu Aug 16 18:16:31 2018] BTRFS warning (device md127): Skipping commit of aborted transaction.
[Thu Aug 16 18:16:31 2018] BTRFS: error (device md127) in cleanup_transaction:1864: errno=-5 IO failure
[Thu Aug 16 18:16:31 2018] BTRFS info (device md127): forced readonly
[Thu Aug 16 18:16:31 2018] BTRFS info (device md127): delayed_refs has NO entry
Quoted 8 lines

I want to use btrfsck to check it,  but it will OOM :

# btrfsck /dev/md127
Checking filesystem on /dev/md127
UUID: 6b87a52f-9a5f-4d03-b345-9d954c2ce259
checking extents
Killed

I am trying to use lowmem mode,  but as I tried before, it may OOM too,    any ideas ?

This depends on which version you tried before.

Lowmem mode used to do partial lowmem and partial normal mode check, and normal mode caused the OOM.

Latest lowmem mode should not cause OOM, but please ger ready for the super long run time.

Thanks,
Qu

Quoted 3 lines

Thanks.

A message that is not in the archive (sent off-list or not yet received): [email protected]

#3 lore raw
Quoted 6 lines · On 2018/8/17 下午1:26, [email protected] wrote:

thanks Qu.
I am runing 4.12.
/# btrfs --version
btrfs-progs v4.12

Do you think btrfsck can fix the fs issue ?

Nope, transid is pretty tricky especially for super old corruption.

Quoted 1 line

 Or we better backup data and re-do the fs ?

I'd recommend to backup data asap.

Thanks,
Qu

Quoted 59 lines

______________________________________________________________________________________________________________________________________________________________________
From: Qu Wenruo
Date: 2018-08-17 12:34
To: [email protected]; [email protected] Subject: Re: btrfsck out of memory for big fs

Quoted 11 lines · On 2018/8/17 上午10:44, [email protected] wrote:

Hi Guys,

I had a big btrfs on a md device,  it be mounted , but after a while it will become ready only:

# btrfs fi df /data/
Data, single: total=24.46TiB, used=24.46TiB
System, DUP: total=8.00MiB, used=2.59MiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=81.00GiB, used=79.71GiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=512.00MiB, used=264.28MiB
Quoted 3 lines
# dmesg -T
[Thu Aug 16 18:16:31 2018] BTRFS error (device md127): parent transid verify failed on 26603622694912 wanted 185320 found 207817
[Thu Aug 16 18:16:31 2018] BTRFS error (device md127): parent transid verify failed on 26603622694912 wanted 185320 found 207817


Transaction id mismatch, normally this means some of the fs is already corrupted before.

And considering the transid gap, the corruption happened quite a long time ago.

Quoted 5 lines
[Thu Aug 16 18:16:31 2018] BTRFS warning (device md127): Skipping commit of aborted transaction.
[Thu Aug 16 18:16:31 2018] BTRFS: error (device md127) in cleanup_transaction:1864: errno=-5 IO failure
[Thu Aug 16 18:16:31 2018] BTRFS info (device md127): forced readonly
[Thu Aug 16 18:16:31 2018] BTRFS info (device md127): delayed_refs has NO entry
Quoted 8 lines

I want to use btrfsck to check it,  but it will OOM :

# btrfsck /dev/md127
Checking filesystem on /dev/md127
UUID: 6b87a52f-9a5f-4d03-b345-9d954c2ce259
checking extents
Killed

I am trying to use lowmem mode,  but as I tried before, it may OOM too,    any ideas ?


This depends on which version you tried before.

Lowmem mode used to do partial lowmem and partial normal mode check, and normal mode caused the OOM.

Latest lowmem mode should not cause OOM, but please ger ready for the super long run time.

Thanks,
Qu

Quoted 3 lines

Thanks.