ext4 jbd2 journalisation active même sur un système de fichiers vide

8

J'ai eu plusieurs problèmes avec mes systèmes de fichiers ext4 qui semblent être dus à la journalisation jbd2 . J'ai fait un post ici et je le reformule avec l'espoir que quelqu'un puisse aider.

Pour un exemple minimal, je commence avec une clé USB 8 Go vide et j'utilise gparted pour créer une partition ext4. La commande utilisée par gparted lors de la création du système de fichiers ext4 est:

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

Je vérifie le système de fichiers avec gparted:

e2fsck -f -y -v /dev/sde1

et je le monte:

sudo mount /dev/sde1 /media/test

Le disque est vide, mais la journalisation est très active sur ce disque (/ dev / sde1). Les autres disques sont des SSD ext4 formatés de manière similaire. Un instantané d'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]

Que fait jbd2 avec / dev / sde1?

Si je suis les mêmes étapes avec un disque plus grand de 2 To, iotop indique que ce disque vide est constamment écrit par jbd2 au débit de Mb / s dès que je le monte.

Sur les autres disques, qui ont le système d'exploitation et / home, j'ai essayé de trouver si des fichiers étaient modifiés par des processus pour provoquer ce comportement, mais je n'en ai pas trouvé. J'ai également déplacé de nombreux processus gourmands en disque pour utiliser un tmpfs. Et utilisé noatime.

J'ai un autre disque dur non SSD sur cette machine, / dev / sdb, qui est également ext4 mais n'a pas été formaté par gparted (donné par un collègue). Il n'apparaît pas dans iotop. Je suppose donc qu'il y a un problème avec gparted.

Toutes les suggestions sont appréciées. De plus, tous les conseils sur la façon de modifier les partitions existantes pour résoudre le problème sans avoir à recommencer à zéro seraient excellents.

Il y a quelques articles liés à jbd2 mais ils n'ont pas aidé (par exemple ici ).

Paul
la source
Vous avez démarré iotop avant de formater le disque? Dans ce cas, il affiche les données écrites pendant le formatage.
jippie
@jippie J'ai démarré iotop après avoir formaté le ou les disques. Le disque dans l'exemple minimal est vide. Sur les disques au format similaire, l'activité jbd2 se produit même si aucun fichier n'est écrit (vérifié avec find sur tout mon système de fichiers).
Paul
Avez-vous essayé de le monter avec mount -o noatime ... ...?
jippie
J'ai essayé noatime. Cela ne semblait rien faire.
Paul

Réponses:

7

Il semble que ext4 fasse son `` formatage rapide '' en postant une grande partie de son initialisation jusqu'à ce qu'il soit monté (l'option uninit_bg, peut-être?) Et je soupçonne que jbd2 le fait après avoir formaté le disque pour la première fois. Un des commentaires ici suggérait que jbd2 écrit sur la partition après sa création pendant un temps proportionnel à sa taille, et proposait 10 minutes par 200 Go, ce qui indiquerait 50 minutes par To. Hier, j'ai formaté un disque ext4 de 3 To et jbd2 écrivait depuis longtemps, mais il s'est maintenant arrêté.

btrfs ne fait pas cela, btw, mais je ne lui fais pas encore confiance pour les disques externes - par exemple, vous avez besoin d'un noyau récent (3.4+, je pense) ou le noyau tombera (et perdra éventuellement des données) si vous supprimez le lecteur sans le démonter d'abord (ce qui se produit bien sûr en cas de perte de puissance).

rocko
la source
Wow, je n'y ai jamais pensé (et d'une certaine manière je l'ai raté après avoir lu le même fil). J'essaierai de confirmer concernant uninit_bg, mais si vous ou quelqu'un d'autre est sûr, je peux marquer qu'il a répondu.
Paul