Komprimierte Dateisysteme mit zRam
Montag, 30. Mai 2022
Mit zRam lassen sich komprimierte Blockgeräte direkt im Arbeitsspeicher erstellen. Diese lassen sich dann wie jedes andere Blockgerät als Dateisystem oder Swapspeicher nutzen. zRam benötigt nur ca 35% Speicher im Vergleich zu umkomprimierten Dateisystemen.
Das hier verwendete Tool zramctl wird unter Debian vom Paket util-linux bereitgestellt (apt install util-linux). Will man nur mit zRam Swapspeicher einrichten, kann man dies auch mit Systemd. Debian stellt dafür das Paket zram-tools zur Verfügung.
Als erstes erforderliches Kernelmodul laden
modprobe zram
Beispiel 1: Das Verzeichnis /tmp mit zRam nutzen
zramctl --find --size 128M # erstellt /dev/zram0 mkfs.ext4 /dev/zram0 mount /dev/zram0 /tmp
Beispiel 2: Für Swapspeicher zRam nutzen
zramctl --find --size 512M # erstellt /dev/zram1 mkswap /dev/zram1 swapon /dev/zram1
zRam wieder freigeben
umount /tmp zramctl --reset /dev/zram0 swapoff /dev/zram1 zramctl --reset /dev/zram1
zRam persistent einrichten
Im folgenden wird zRam für den Systemstart konfiguriert. Die Beispiele beziehen sich auf Debian und müssen auf anderen Systemen eventuell entsprechend angepasst werden.
Datei /etc/udev/rules.d/10-zram.rules erstellen:
KERNEL=="zram0", SUBSYSTEM=="block", DRIVER=="", ACTION=="add", ATTR{disksize}=="0", ATTR{disksize}="512M", RUN+="/sbin/mkswap $env{DEVNAME}" KERNEL=="zram1", SUBSYSTEM=="block", DRIVER=="", ACTION=="add", ATTR{disksize}=="0", ATTR{disksize}="128M", RUN+="/sbin/mkfs.ext4 $env{DEVNAME}"
Datei /etc/fstab anpassen/ergänzen:
/dev/zram0 swap swap pri=16383 0 0 /dev/zram1 /tmp ext4 defaults 0 0
Datei /etc/modprobe.d/zram.conf erstellen:
options zram num_devices=2
Datei /etc/modules-load.d/modules.conf anpassen/ergänzen:
zram
Jetzt das System neu starten.