"남은 공간 없음"으로 인해 BTRFS 스냅샷이 실패합니다.

"남은 공간 없음"으로 인해 BTRFS 스냅샷이 실패합니다.

BTRFS RAID10 하위 볼륨 스냅샷을 생성할 때 다음을 클릭했습니다.

[21816375.986061] ? btrfs_cleanup_transaction+0x530/0x530 [btrfs]
[21816375.986065] kthread+0x112/0x130
[21816375.986066] ? kthread_bind+0x30/0x30
[21816375.986070] ret_from_fork+0x1f/0x40
[21816375.986072] ---[ end trace a2d9b072102a4b9d ]---
[21816375.986116] BTRFS: error (device sdb) in btrfs_run_delayed_refs:2934: errno=-28 No space left
[21816375.986157] BTRFS info (device sdb): forced readonly
[21816375.986160] BTRFS warning (device sdb): Skipping commit of aborted transaction.
[21816375.986161] BTRFS: error (device sdb) in cleanup_transaction:1870: errno=-28 No space left
[21816376.167051] BTRFS error (device sdb): pending csums is 188416

비어 있는 공간과 할당되지 않은 공간이 너무 많아서 놀랐습니다.

Overall:
    Device size:                  87.32TiB
    Device allocated:             67.31TiB
    Device unallocated:           20.00TiB
    Device missing:                  0.00B
    Used:                         56.73TiB
    Free (estimated):             15.29TiB      (min: 15.29TiB)
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,RAID10: Size:33.57TiB, Used:28.28TiB
   /dev/sdb       11.19TiB
   /dev/sdc       11.19TiB
   /dev/sdd       11.19TiB
   /dev/sde       11.19TiB
   /dev/sdf       11.19TiB
   /dev/sdg       11.19TiB

Metadata,RAID10: Size:92.72GiB, Used:89.08GiB
   /dev/sdb       30.91GiB
   /dev/sdc       30.91GiB
   /dev/sdd       30.91GiB
   /dev/sde       30.91GiB
   /dev/sdf       30.91GiB
   /dev/sdg       30.91GiB

System,RAID10: Size:103.88MiB, Used:3.05MiB
   /dev/sdb       34.62MiB
   /dev/sdc       34.62MiB
   /dev/sdd       34.62MiB
   /dev/sde       34.62MiB
   /dev/sdf       34.62MiB
   /dev/sdg       34.62MiB

Unallocated:
   /dev/sdb        3.33TiB
   /dev/sdc        3.33TiB
   /dev/sdd        3.33TiB
   /dev/sde        3.33TiB
   /dev/sdf        3.33TiB
   /dev/sdg        3.33TiB

따라서 이론적으로 최소 10TB의 여유 공간(RAID10의 경우 3x3.33)이 필요합니다.

우리는 다음과 같이 첫 번째 재조정을 수행했습니다.

btrfs fi balance start -dusage=5 /mnt

그리고 이것을 얻었습니다 :

Overall:
    Device size:                  87.32TiB
    Device allocated:             56.86TiB
    Device unallocated:           30.45TiB
    Device missing:                  0.00B
    Used:                         56.21TiB
    Free (estimated):             15.54TiB      (min: 15.54TiB)
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,RAID10: Size:28.34TiB, Used:28.02TiB
   /dev/sdb        9.45TiB
   /dev/sdc        9.45TiB
   /dev/sdd        9.45TiB
   /dev/sde        9.45TiB
   /dev/sdf        9.45TiB
   /dev/sdg        9.45TiB

Metadata,RAID10: Size:92.72GiB, Used:81.35GiB
   /dev/sdb       30.91GiB
   /dev/sdc       30.91GiB
   /dev/sdd       30.91GiB
   /dev/sde       30.91GiB
   /dev/sdf       30.91GiB
   /dev/sdg       30.91GiB

System,RAID10: Size:7.88MiB, Used:2.58MiB
   /dev/sdb        2.62MiB
   /dev/sdc        2.62MiB
   /dev/sdd        2.62MiB
   /dev/sde        2.62MiB
   /dev/sdf        2.62MiB
   /dev/sdg        2.62MiB

Unallocated:
   /dev/sdb        5.08TiB
   /dev/sdc        5.08TiB
   /dev/sdd        5.08TiB
   /dev/sde        5.08TiB
   /dev/sdf        5.08TiB
   /dev/sdg        5.08TiB

질문이 몇 개 있습니다:

  1. "btrfs fi us"에 "할당되지 않은" 공간이 많이 표시되지만 공간 부족 문제(아마도 메타데이터 데이터 - 하위 볼륨 스냅샷)가 있는 경우 이는 무엇을 의미하며 메타데이터가 해당 할당되지 않은 공간으로 자동으로 확장되지 않는 이유는 무엇입니까?
  2. btrfs 균형을 정기적으로(얼마나 자주) 실행해야 합니까?
  3. -usage의 최적 값은 무엇입니까?
  4. 이거 위험한가요? 메타데이터의 균형을 재조정해야 합니까(예: -musage=5?)
  5. 우리는 btrfs가 데이터/메타데이터 할당을 위해 낮은 수준의 블록을 사용한다는 것을 알고 있지만 어떻게든 그 사용량을 모니터링할 수 있는 방법이 있는지 궁금합니다.

관련 정보