Ram disk: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(zram system)
(zram system)
Řádka 58: Řádka 58:
 
  move /var/log/daemon.log /dev/shm/daemon.log
 
  move /var/log/daemon.log /dev/shm/daemon.log
 
  ln -s /dev/shm/daemon.log /var/log/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
+
 
 +
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

Verze z 19. 3. 2022, 17:59

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