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.

Anmelden