Ram disk
Obsah
tmpfs
Prvně vytvoříme adresář pro namapování ramdisku a následně vlastni ramdisk který rovnou do vytvořeného adresáře namapujem.
sudo mkdir /mnt/ramdisk sudo mount -t tmpfs -o rw,size=128M tmpfs /mnt/ramdisk
(Velikost disku můžeme zadávat jak v MB - M, tak třeba GB - G)
Pomocí příkazu `df -h` ověříme, že je ramdisk namapován.
Autostart fstab
Do tabulky /etc/fstab přidáme v tomto případě řádek:
tmpfs /mnt/ramdisk tmpfs rw,size=128M 0 0
Autostart cron
Do crontab systemu vložíme radek:
@ mount -t tmpfs -o rw,size=128M tmpfs /mnt/ramdisk
Úschova dat
Pokud chceme zajistit, aby se data při korektním restartu nesmazala, vytvoříme službu která zajistí při restartu uložení dat na disk a při startu je opětovně načte. Pro uložení dat vytvoříme pomocný adresář pro data z ramdisku a poté vytvoříme vlastní konfiguraci služby.
sudo mkdir /mnt/ramdisk_backup sudo nano /lib/systemd/system/ramdisk-sync.service
Poté do otevřeném souboru vložíme následující text. Pozor, musíme zmenit user, na platného uživatele.
.
ramfs
Existuje obdobné nastavení, ale zde není zajištěna fixní velikost a pak se může stát, že ramdisk zaplní celou pamět. To v praxi může být nevhodne. Postup je obdobný z předchozím způsobem. Prvně vytvoříme adresář pro namapování ramdisku a následně vlastní ramdisk který rovnou namapujem.
sudo mkdir /mnt/ramdisk mount -t ramfs none /mnt/ramdisk/ -o size=1g
I pro zajištění automatického vytvoření po restartu, či uložení dat při restartu použijeme předchozí postup (pozor jen na rozdil ramfs a tmpfs)
zram manual
Další variantou je modul zram. Ten má fixní velikost a navíc data komprimuje. Tím se do stejného prostoru dostane více dat. To ale má za následek zase větčí zátěž na CPU což může být z druhé strany nevýhoda.
modprobe zram num_devices=1 print "velikost_disku" /sys/block/zram0/disksize mkfs -t "zvolte_fs" /dev/zram0 mount "dle libosti"
Nasledne provedeme nastaveni v souboru `/etc/default/zramswap`.
https://blog.brichacek.net/vyuziti-technologie-zram-u-systemu-gnulinux-s-malou-pameti/
zram system
Pro system debian axistuje přímo nastroj, který po nainstalování převezme funkci dočasného souboru swap.
apt install zram-tools
Dále budem chtít asi zajistit, aby se na disk co nejméně zapisovalo. Jeden z važných kandidátu je adresář /var/log/ kde se ukládají logy, které ale po restartu ani nepotřebujeme.
- /var/log/journal - adresář pro journal, pokud jej smažeme, bude se journal ukladat /run/log/journal, tudiž na ramdisk.
- /var/log/syslog - stačí vytvořit symlink na ramdisk
- /var/log/auth.log - stačí vytvořit symlink na ramdisk
- /var/log/daemon.log - stačí vytvořit symlink na ramdisk
- /var/log/lastlog - (0664 root utmp)
rm -r var/log/journal move /var/log/syslog /dev/shm/syslog ln -s /dev/shm/syslog /var/log/syslog move /var/log/auth.log /dev/shm/auth.log ln -s /dev/shm/auth.log /var/log/auth.log move /var/log/daemon.log /dev/shm/daemon.log ln -s /dev/shm/daemon.log /var/log/daemon.log echo "f /var/log/lastlog 0664 root utmp - -\n" > /etc/tmpfiles.d/lastlog.conf echo "C /dev/shm/lastlog - - - - /var/log/lastlog\n" >> /etc/tmpfiles.d/lastlog.conf echo "L+ /var/log/lastlog - - - - /dev/shm/lastlog\n" >> /etc/tmpfiles.d/lastlog.conf
Další soubory / adresáře záleží na nainstalovaných službách:
- ntpstats - slouzi pro log z ntp serveru
echo "d /dev/shm/ntpstats 0755 ntp ntp - -\n" > /etc/tmpfiles.d/ntpstats.conf move /var/log/ntpstats/* /dev/shm/ntpstats/ ln -s /dev/shm/ntpstats /var/log/ntpstats