Za posledních deset let přinesly disky SSD (Solid State Drive) nový způsob správy úložiště. SSD mají výhody, jako je tichý a chladnější provoz a rychlejší specifikace rozhraní ve srovnání s jejich staršími předchůdci. Nová technologie s sebou samozřejmě přináší nové způsoby údržby a řízení. SSD disponují funkcí zvanou TRIM. Toto je v podstatě metoda pro znovuzískání nepoužitých bloků na zařízení, které mohly být dříve zapsány, ale již neobsahují platná data, a proto je lze vrátit do obecného úložiště pro opětovné použití. Don Watkins z Opensource.com poprvé napsal o TRIM ve svém článku z roku 2017 „Solid-state Drives in Linux:Enabling TRIM for SSDs.“
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Pokud jste tuto funkci používali na svém systému Linux, pak pravděpodobně znáte dvě níže popsané metody.
Staré způsoby
Zahodit
Původně jsem to povolil volbou discard v příkazu mount. Konfigurace je umístěna do /etc/fstab soubor pro každý souborový systém.
# cat /etc/fstab
UUID=3453g54-6628-2346-8123435f /home xfs defaults,discard 0 0
Možnost vyřazení umožňuje automatické online TRIM. Nedávno se vedla diskuse o tom, zda je to nejlepší metoda kvůli možným negativním dopadům na výkon. Použití této možnosti způsobí, že se TRIM spustí pokaždé, když jsou na disk zapsána nová data. To může způsobit další aktivitu, která narušuje výkon úložiště.
Cron
Odebral jsem možnost zahození z fstab soubor. Potom jsem vytvořil úlohu cron pro volání příkazu na plánovaném základě.
# crontab -l
@midnight /usr/bin/trim
Toto je metoda, kterou jsem naposledy používal na svých systémech Ubuntu Linux, dokud jsem se nedozvěděl o jiném způsobu.
Nová služba TRIM
Nedávno jsem zjistil, že existuje služba systemd pro TRIM. Fedora toto zavedla do své distribuce ve verzi 30, a ačkoli to není ve výchozím nastavení povoleno ve verzích 30 a 31, plánuje se, že bude ve verzi 32. Pokud pracujete na Fedora Workstation 31 a chcete začít používat tuto funkci, můžete ji velmi snadno aktivovat. Níže vám také ukážu, jak to otestovat. Tato služba není jedinečná pro Fedoru. Existence a stav bude záviset na individuální distribuční bázi.
Test
Rád nejprve testuji, abych lépe pochopil, co se děje v zákulisí. Dělám to tak, že otevřu terminál a vydám příkaz, pro jehož volání je služba nakonfigurována.
/usr/sbin/fstrim --fstab --verbose --quiet
–nápověda argument pro fstrim popíše tyto a další argumenty.
$ sudo /usr/sbin/fstrim --help
Usage:
fstrim [options] <mount point>
Discard unused blocks on a mounted filesystem.
Options:
-a, --all trim all supported mounted filesystems
-A, --fstab trim all supported mounted filesystems from /etc/fstab
-o, --offset <num> the offset in bytes to start discarding from
-l, --length <num> the number of bytes to discard
-m, --minimum <num> the minimum extent length to discard
-v, --verbose print number of discarded bytes
--quiet suppress error messages
-n, --dry-run does everything, but trim
-h, --help display this help
-V, --version display version
Takže teď vidím, že služba systemd je nakonfigurována tak, aby spouštěla trim na všech podporovaných připojených souborových systémech v mém /etc/fstab soubor –fstab a vytiskne počet vyřazených bajtů – podrobné ale potlačte všechny chybové zprávy, které se mohou objevit – tichý . Znalost těchto možností je pro testování užitečná. Například mohu začít tím nejbezpečnějším, což je běh na sucho. Vynechám také tichý argument, abych mohl určit, zda se při nastavení disku vyskytnou nějaké chyby.
$ sudo /usr/sbin/fstrim --fstab --verbose --dry-run
To jednoduše ukáže, co je fstrim příkaz provede na základě systémů souborů, které najde nakonfigurované ve vašem /etc/fstab soubor.
$ sudo /usr/sbin/fstrim --fstab --verbose
To nyní odešle operaci TRIM na jednotku a podá zprávu o počtu vyřazených bajtů z každého systému souborů. Níže je uveden příklad po mé nedávné čerstvé instalaci Fedory na nový NVME SSD.
/home: 291.5 GiB (313011310592 bytes) trimmed on /dev/mapper/wkst-home
/boot/efi: 579.2 MiB (607301632 bytes) trimmed on /dev/nvme0n1p1
/boot: 787.5 MiB (825778176 bytes) trimmed on /dev/nvme0n1p2
/: 60.7 GiB (65154805760 bytes) trimmed on /dev/mapper/wkst-root
Povolit
Fedora Linux implementuje službu systemd timer, jejíž spuštění je naplánováno na týdenní bázi. Chcete-li zkontrolovat existenci a aktuální stav, spusťte systemctl status .
$ sudo systemctl status fstrim.timer
Nyní povolte službu.
$ sudo systemctl enable fstrim.timer
Ověřit
Poté můžete ověřit, že je časovač povolen, uvedením všech časovačů.
$ sudo systemctl list-timers --all
Následující řádek odkazuje na fstrim.timer objeví se. Všimněte si, že časovač ve skutečnosti aktivuje fstrim.service . Odtud je skutečný fstrim je nazýván. Pole související s časem zobrazují n/a protože služba byla právě povolena a ještě se nespustila.
NEXT LEFT LAST PASSED UNIT ACTIVATES
n/a n/a n/a n/a fstrim.timer fstrim.service
Závěr
Tato služba se zdá být nejlepším způsobem, jak spustit TRIM na vašich discích. Volání fstrim je mnohem jednodušší než vytvoření vlastního záznamu crontab příkaz. Je také bezpečnější, že nemusíte upravovat fstab soubor. Bylo zajímavé sledovat vývoj technologie pevných úložišť a je příjemné vědět, že se zdá, že Linux směřuje ke standardnímu a bezpečnému způsobu jeho implementace.