Viele Administratoren haben in VMs jahrelang ext3
als Dateisystem eingesetzt. Bei lokalem Storage ist dies durchaus sinnvoll, da das Dateisystem robuster gegen Timeouts ist als ext4. Wie im Post zur Umstellung auf virtio-scsi erklärt will man spätestens bei verteiltem Storage aber ext4
nutzen, primär wegen der discard
Mountoption. Wie konvertiert man das ganze nun?
Zuerst sollte die VM in ein Live Linux gebootet werden, danach kann man für jede Partition die ext4
Features hinzufügen:
for i in /dev/sda1 /dev/sda2 /dev/sdb1; do tune2fs -O extent,uninit_bg,dir_index $i; done
Um das nach fehlende Journal zu erzeugen muss ein Filesystemcheck erzwungen werden:
for i in /dev/sda1 /dev/sda2 /dev/sdb1; do fsck -fvyC0 $i; done
Nun ist es ein ext4
Dateisystem, alte Dateien liegen aber immernoch als ext3
vor, um dies zu ändern kann man sie defragmentieren:
for i in /dev/sda1 /dev/sda2 /dev/sdb1; do mount -t ext4 $i /mnt; e4defrag -v $i; umount /mnt; done
Zum Schluss muss man noch die Mountoptionen in der fstab
anpassen, so könnte es aktuell aussehen:
UUID=643b6731-c354-4e6b-bd69-1eae601e638f /boot ext3 defaults 0 2
Daraus sollte werden:
UUID=643b6731-c354-4e6b-bd69-1eae601e638f /boot ext4 defaults,discard,noatime,barrier=0 0 2
- UUID – Sollte genutzt werden anstatt einem absoulten Pfad
- /boot – Hier wird es gemountet
ext4
– Das Dateisystem- default – Die Standardoptionen für
ext4
- discard – Gelöschte Blöcke automatisch freigeben
- noatime – Keine lesenden Dateizugriffe speichern
- barrier – Barriers sind auf gesichertem Cache unnötig