penjurnalan ext4 jbd2 aktif bahkan pada sistem file kosong

8

Saya telah mengalami beberapa masalah dengan sistem file ext4 saya yang sepertinya disebabkan oleh penjurnalan jbd2 . Saya membuat posting terkait di sini dan mengulanginya dengan harapan bahwa seseorang dapat membantu.

Sebagai contoh minimal, saya mulai dengan stik USB 8 GB kosong dan menggunakan gparted untuk membuat satu partisi ext4. Perintah yang digunakan oleh gparted saat membuat sistem file ext4 adalah:

mkfs.ext4 -j -O extent -L DataTraveler8gb /dev/sde1

Saya memeriksa sistem file dengan gparted:

e2fsck -f -y -v /dev/sde1

dan saya memasangnya:

sudo mount /dev/sde1 /media/test

Disk kosong, tetapi penjurnalannya sangat aktif pada disk ini (/ dev / s11). Disk lainnya adalah SSD ext4 yang diformat sama. Jepretan iotop:

% sudo iotop -oPa

Total DISK READ: 0.00 B/s | Total DISK WRITE: 2027.21 K/s
  PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  262 be/3 root          0.00 B     56.00 K  0.00 %  0.18 % [jbd2/sda1-8]
29069 be/3 root          0.00 B      0.00 B  0.00 %  0.16 % [jbd2/sde1-8]
  891 be/3 root          0.00 B      4.00 K  0.00 %  0.03 % [jbd2/sdc1-8]

Apa yang dilakukan jbd2 dengan / dev / sde1?

Jika saya mengikuti langkah yang sama dengan disk 2Tb yang lebih besar, iotop mengindikasikan disk kosong ini secara konstan ditulis oleh jbd2 dengan kecepatan Mb / s segera setelah saya memasangnya.

Di disk lain, yang memiliki OS dan / home, saya telah mencoba untuk menemukan apakah ada file yang dimodifikasi oleh proses untuk menyebabkan perilaku ini tetapi tidak dapat menemukannya. Saya juga memindahkan banyak proses intensif disk untuk menggunakan tmpfs. Dan menggunakan noatime.

Saya memiliki hard disk non-SSD lain pada mesin ini, / dev / sdb, yang juga ext4 tetapi tidak diformat oleh gparted (diberikan kepada saya oleh rekan kerja). Itu tidak muncul di iotop. Jadi saya berasumsi ada masalah dengan gparted.

Ada saran yang dihargai. Juga ada tips tentang cara memodifikasi partisi yang ada untuk memperbaiki masalah tanpa harus memulai dari awal akan sangat bagus.

Ada beberapa tulisan yang terkait dengan jbd2 tetapi tidak membantu (mis. Di sini ).

Paul
sumber
Anda memulai iotop sebelum Anda memformat disk? Dalam hal ini menunjukkan data yang ditulis selama format.
jippie
@ jippie Saya mulai iotop setelah memformat disk. Disk dalam contoh minimal kosong. Pada disk yang diformat sama, aktivitas jbd2 terjadi bahkan jika tidak ada file yang ditulis (diperiksa dengan temukan di seluruh sistem file saya).
Paul
Apakah Anda mencoba memasangnya mount -o noatime ... ...?
jippie
Saya sudah mencoba noatime. Sepertinya tidak melakukan apa-apa.
Paul

Jawaban:

7

Tampaknya ext4 melakukan 'format cepat' dengan postposting banyak inisialisasi sampai terpasang (opsi uninit_bg, mungkin?) Dan saya curiga bahwa jbd2 melakukan ini setelah Anda memformat drive. Salah satu komentar di sini menyarankan bahwa jbd2 menulis ke partisi setelah pembuatan untuk waktu yang sebanding dengan ukurannya, dan menyarankan 10 menit per 200 GB, yang akan menunjukkan 50 menit per TB. Saya memformat drive 3TB ext4 kemarin dan jbd2 sudah lama dihapus, tetapi sekarang sudah berhenti.

btrfs tidak melakukan ini, btw, tapi saya belum percaya untuk drive eksternal - misalnya Anda memerlukan kernel terbaru (3.4+, saya pikir) atau kernel akan oops (dan mungkin kehilangan data) jika Anda menghapus drive tanpa melepasnya terlebih dahulu (yang tentu saja terjadi jika kehilangan daya).

rocko
sumber
Wow, saya tidak pernah memikirkan itu (dan entah bagaimana saya melewatkannya setelah membaca utas yang sama). Saya akan mencoba mengonfirmasi tentang uninit_bg, tetapi jika Anda atau orang lain yakin, saya dapat menandainya menjawab.
Paul