Jak povolit TRIM?

184

Vím, že linuxové jádro podporuje TRIM od verze 2.6.33, takže by měla být podpora u TRUN v ubuntu.

Je ve výchozím nastavení povolena funkce TRIM nebo potřebujete změnit některá nastavení nebo nainstalovat další software, aby fungoval? Pokud ano, jak?

    
dané Uli 26.12.2010 13:44

2 odpovědi

195

Ubuntu 14.10 a další

V Ubuntu 14.10 a 15.04 se TRIMming automaticky provádí každý týden na všech SSD podporovanýchfstrim.

$ tail -n1 /etc/cron.weekly/fstrim 
/sbin/fstrim --all || true

Ubuntu 14.04

Od verze Ubuntu 14.04 je naplánovaná služba TRIM ve výchozím nastavení povolena pro jednotky Intel, SAMSUNG, OCZ, Patriot a Sandisk. Pokud máte jinou značku, můžete zakázat kontrolu dodavatele spuštěním následujícího příkazu :

sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim

(nebo jen upravte soubor/etc/cron.weekly/fstrim a přidejte--no-model-check)

Ubuntu 13.10 a starší

Existují tři způsoby, jak provádět TRIM, ruční, naplánované a automatické:

Ruční TRIM

V Ubuntu to může být provedeno fstrim :

sudo fstrim /

ale není zapotřebí, pokud je zapnuto naplánované nebo automatické nastavení TRIM, jak je podrobně popsáno v následujících částech.

Poznámka: U Ubuntu 11.04 a starších systémů není fstrim k dispozici, takže musíte použítwiper.sh dodávané shdparm v/usr/share/doc/hdparm/contrib/wiper.sh.gz

Plánované TRIM (doporučeno)

Jedná se o aktuálně doporučenou metodu a je plánován tak, aby byl aktivován na výchozí nastavení pro Ubuntu 14.04 . Zde je postup, jak ji ručně aktivovat ve starších verzích systému ubuntu (11.10-13.10):

Vytvořte týdenní soubor pracovních skriptů CRON:

gksudo gedit /etc/cron.weekly/fstrim

Do souboru vložte následující kód a soubor uložte a zavřete:

#! /bin/sh  

# By default we assume only / is on an SSD. 
# You can add more SSD mount points, separated by spaces.
# Make sure all mount points are within the quotes. For example:
# SSD_MOUNT_POINTS='/ /boot /home /media/my_other_ssd'  

SSD_MOUNT_POINTS='/'  

for mount_point in $SSD_MOUNT_POINTS
do  
    fstrim $mount_point  
done

Všimněte si, že výše uvedené předpokládá, že pouze kořenový souborový systém/ je umístěn na jednotce SSD. Pokud máte více bodů připojení umístěných na jednom nebo více jednotkách SSD, přidejte je do kóduSSD_MOUNT_POINTS, jak je vysvětleno v kódu.

Spusťte skript:

sudo chmod +x /etc/cron.weekly/fstrim

A nakonec otestujte:

sudo /etc/cron.weekly/fstrim

Pokud nevidíte žádné chyby, měla by vaše úloha cron fungovat dobře.

Automatické TRIM (zastaralé, pomalé)

Automatický systém TRIM byl podporován od Ubuntu 10.10 (jádro 2.6.33) s systémem souborů EXT4. Vyslání příkazů TRIM na jednotku SSD v reálném čase - po každém odstranění - bylo však rozpoznáno, že u některých disků je mazání mnohem pomalejší než obvykle. Proto je doporučován týdenní program TRIM přes cron úlohu (popsaný výše).

Chcete-li povolit automatické nastavení TRIM na jednotce nebo oddílu, je třeba je připojit s volboudiscard vfstab. Nejprve zálohujte soubor fstab a otevřete jej pro úpravy:

sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Přidejtediscard do položky volby fstab (oddělené čárkami) pro jednotku SSD nebo pro každý oddíl.

UUID=00000000-0000-0000-0000-000000000000  /  ext4  discard,errors=remount-ro  0  1

Zavřete a uložte fstab, pak restartujte a automatický TRIM by nyní měl fungovat.

Zkoušení automatického TRIM

Chcete-li otestovat, zda TRIM pracuje, zadejte následující příkazy ( zdroj ):

cd  / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile

Z výstupní kopie zadejte číslo podbegin_LBA a ověřte název zařízení SSD:System->Administration->Disk Utility, např. sda, sdb, sdc ...

Spusťte následující, ale nahraďte[ADDRESS] (begin_LBA) asdX (název zařízení SSD) s výše získanými podrobnostmi.

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

výstup by měl být pro tyto sektory dlouhý řetězec znaků

sudo rm tempfile
sync

Opakujte příkazhdparm shora:

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

Pokud získáte pouze nuly, automatický TRIM pracuje. Pokud však po odebrání souboru sektory stále nejsou prázdné, počkejte chvíli a spusťte příkaz znovu.

    
odpověděl Uli 30.09.2015 23:58
26

Všimněte si, že pokud používáte šifrování, řešení, která zde byla zveřejněna, vám nepomůže, protože potřebujete povolit podporu TRIM ve vrstvě šifrování. To lze provést s verzemi 3.1+ a kryptsetup verzí 1.4+, které jsou součástí Ubuntu 12.04.

Najděte můj průvodce nastavením TRIM pro šifrované oddíly LUKS zde

Jak aktivovat protokol TRIM na šifrovaných oddílech LUKS v Ubuntu & Debian

Tento krok za krokem vám umožní využít technologii TRIM pro šifrované oddíly SSD pro kryptování verze 1.4 nebo vyšší a jádro 3.1 nebo vyšší. To vede k bezproblémovému SSD zážitku, protože

  

"TRIM umožňuje SSD zpracovávat režii sběru odpadků, to znamená   jinak by výrazně zpomalily operace budoucího zápisu do   bloky v předstihu. "

Příklad nastavení

Notebook se SSD jako jedinou jednotkou, Linux nainstalován v jediném kořenovém oddílu LVM ext4 s odkládacím oddílem LVM, oba přes LUKS zašifrovaný logický oddíl.

SSD: / dev / sda

sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # rootpartition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

HowTo

  1. Vytvořte zálohu všech dat. Chystáš se svým systémem souborů takže zálohování je prostě dobrý nápad.
  2. Ujistěte se, že máte požadované verze jádra a kryptování (3.1 & 1,4, např. v Ubuntu 12.04, dávejte si pozor, v době psaní 12.04 je stále beta).
  3. Přidat parametr vyřazení do voleb systému souborů šifrovaného Svazky LVM v souboru / etc / fstab. To dělá souborový systém vaše oddíl LVM si uvědomuje, že chcete použít TRIM.

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. Poslední krok nestačí. Dokud LUKS neví že chcete použít TRIM, bude to efektivně blokovat všechny TRIM operace pocházející z souborového systému oddílů LVM, pro zabezpečení důvodů. Přidejte parametr zbavit se volby cryptdevice v souboru / etc / crypttab, aby LUKS akceptoval chování LVM při likvidaci oddíl.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Znovu vytvořte initramfs. Možnosti šifrování jsou uloženy tam a použitý při zavádění.

    sudo update-initramfs -c -k all
    
  6. Restartujte.

  7. Zkontrolujte, zda je nyní aktivována funkce TRIM.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Pokud poslední příkaz zobrazí výsledek jako toto (1 allow_discards na konci), všechny jste nastavili.

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

Výsledek

TRIM je aktivován. Vychutnejte si bezproblémový SSD!

    
odpověděl nem75 14.04.2012 17:00