btrfs: Metadata besar dialokasikan

14

Saya memiliki disk 256GB SSD di mana saya mengkonversi FS root ext4 saya ke btrfs. Saya menghapus subvolume cadangan ext4, mengaktifkan kompresi dan defragmented secara rekursif untuk mengaktifkannya di semua file.

btrfs fi df / memiliki output yang membuat saya khawatir:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

Jika saya memahami output dengan benar, 65GB (1/4 disk saya!) Dicadangkan untuk meta-data dan tidak tersedia untuk menyimpan file. Jika ini benar, itu akan membuang-buang ruang disk saya. Apakah saya mengerti dengan benar? Bisakah porsi metadata yang dialokasikan pada disk saya diubah ukurannya?

Gnurou
sumber

Jawaban:

16

Pertama, pastikan kernel Anda dan ruang pengguna BTRFS terbaru.

Menurut FAQ BTRFS , Anda tidak dapat mengubah ukuran ukuran blok metadata. Anda dapat, bagaimanapun, mencoba menjalankan start btrfs balance -m <mount point> yang akan merealokasi metadata di seluruh disk dan, sebagai efek samping, mungkin membebaskan ruang yang tidak terisi.

Jika itu tidak berhasil, Anda mungkin harus membuat cadangan data dan membuat ulang sistem file. (Lihatlah ini untuk info lebih lanjut.)

hololeap
sumber
Terima kasih atas jawabannya. Kernel adalah 3.11.2, btrfs-tools adalah v0.20-rc1 jadi saya tidak berpikir saya ketinggalan zaman di sini. Saya mencoba menjalankan keseimbangan tetapi kemudian saya menemukan bug berikut: spinics.net/lists/linux-btrfs/msg26977.html dan tidak merasa seperti mengkompilasi kernel yang lebih baru hanya untuk ini. : P Yang saya ingin tanyakan adalah apakah 65GB ini adalah blok metadata yang tidak dapat diubah ukurannya, atau jika istilah itu merujuk pada sesuatu yang lain. Kalau tidak, saya benar-benar tidak mengerti bagaimana blok metadata dibuat dengan ukuran itu di tempat pertama.
Gnurou
Sayangnya, saya hanya pengguna btrf dan bukan ahli, jadi bantuan saya terbatas. Bagaimanapun, ada kemungkinan ada kesalahan dalam proses konversi dari ext4.
hololeap
11
Jadi, tambalan yang diperlukan berhasil masuk ke kernel stabil, dan saya telah mencoba apa yang Anda sarankan. Menyeimbangkan memang mengurangi jumlah area yang disediakan untuk meta-data menjadi 3GB, dan ruang yang diklaim sekarang muncul sebagai ruang kosong di 'df'. Perhatikan bahwa Anda tidak perlu menyeimbangkan seluruh disk, Anda dapat melakukan btrfs balance start -m <mount point> untuk hanya menyeimbangkan kembali metadata, yang jauh lebih cepat. Terima kasih atas jawaban mendalamnya!
Gnurou
Senang saya bisa membantu!
hololeap
"Anda tidak dapat mengubah ukuran ukuran blok metadata". Ini tidak relevan dengan pertanyaan ini - FAQ berbicara tentang ukuran unit alokasi, bukan jumlah ruang yang dialokasikan untuk metadata.
Vladimir Panteleev
1

Ini akan mengurangi ukuran metadata.

sudo btrfs balance start -v -musage=0 /path
Benjamin
sumber