kronikowanie ext4 jbd2 aktywne nawet na pustym systemie plików

8

Mam kilka problemów z systemami plików ext4, które wydają się być spowodowane kronikowaniem jbd2 . Zrobiłem Related Post tutaj i jestem przeformułowanie go z nadzieją, że ktoś może być w stanie pomóc.

Dla minimalnego przykładu zaczynam od pustej pamięci USB 8 GB i używam gparted do utworzenia jednej partycji ext4. Polecenie używane przez gparted podczas tworzenia systemu plików ext4 to:

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

Sprawdzam system plików za pomocą gparted:

e2fsck -f -y -v /dev/sde1

i montuję to:

sudo mount /dev/sde1 /media/test

Dysk jest pusty, ale kronikowanie jest bardzo aktywne na tym dysku (/ dev / sde1). Pozostałe dyski to dyski SSD ext4 sformatowane podobnie. Migawka 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]

Co robi jbd2 z / dev / sde1?

Jeśli wykonam te same kroki z większym dyskiem 2 TB, iotop wskazuje, że ten pusty dysk jest ciągle zapisywany przez jbd2 z prędkością Mb / s, jak tylko go zamontuję.

Na innych dyskach, które mają system operacyjny i / home, próbowałem sprawdzić, czy jakieś pliki są modyfikowane przez procesy w celu spowodowania takiego zachowania, ale nie mogłem ich znaleźć. Przeniosłem także wiele procesów intensywnie korzystających z dysku, aby użyć tmpfs. I używał noatime.

Mam inny dysk twardy inny niż SSD na tym komputerze, / dev / sdb, który jest również ext4, ale nie został sformatowany przez gparted (przekazany mi przez współpracownika). Nie pojawia się w iotop. Zakładam więc, że istnieje problem z gparted.

Wszelkie sugestie są mile widziane. Również wszelkie wskazówki dotyczące modyfikowania istniejących partycji w celu rozwiązania problemu bez konieczności rozpoczynania od zera byłyby świetne.

Istnieje kilka postów związanych z jbd2, ale nie pomogły (np. Tutaj ).

Paweł
źródło
Uruchomiłeś iotop przed sformatowaniem dysku? W takim przypadku pokazuje dane zapisane podczas formatowania.
jippie
@jippie Uruchomiłem iotop po sformatowaniu dysku (dysków). Dysk w minimalnym przykładzie jest pusty. Na podobnie sformatowanych dyskach aktywność jbd2 występuje nawet wtedy, gdy nie są zapisywane żadne pliki (sprawdzane przez find w całym systemie plików).
Paul
Czy próbowałeś go zamontować mount -o noatime ... ...?
jippie
Próbowałem noatime. Wydawało się, że nic nie robi.
Paul
Może być powiązany: bugs.launchpad.net/ubuntu/+source/linux/+bug/607560
Glutanimate

Odpowiedzi:

7

Wygląda na to, że ext4 robi swój „szybki format”, publikując dużo inicjalizacji, dopóki nie zostanie zamontowany (być może opcja uninit_bg?) I podejrzewam, że jbd2 robi to po pierwszym sformatowaniu dysku. Jeden z komentarzy tutaj sugerował, że jbd2 zapisuje na partycji po utworzeniu przez czas proporcjonalny do jego wielkości, i sugerował 10 minut na 200 GB, co wskazywałoby 50 minut na TB. Wczoraj sformatowałem dysk ext4 o pojemności 3 TB i jbd2 zapisywał przez wieki, ale teraz przestał działać.

btrfs tego nie robi, btw, ale nie ufam mu jeszcze dla zewnętrznych dysków - np. potrzebujesz najnowszego jądra (myślę, że w wersji 3.4+) lub jądro przestanie działać (i prawdopodobnie utraci dane), jeśli usuniesz dysk bez wcześniejszego odmontowania (co oczywiście dzieje się, jeśli straci moc).

rocko
źródło
Wow, nigdy o tym nie myślałem (i jakoś tęskniłem po przeczytaniu tego samego wątku). Spróbuję potwierdzić w odniesieniu do uninit_bg, ale jeśli ty lub ktoś inny jest tego pewien, mogę zaznaczyć odpowiedź.
Paul