Wie TRIM aktivieren?

184

Ich weiß, dass der Linux-Kernel TRIM ab Version 2.6.33 unterstützt, daher sollte es TRIM-Unterstützung in ubuntu geben.

Ist TRIM standardmäßig aktiviert oder muss ich einige Einstellungen ändern oder zusätzliche Software installieren, damit es funktioniert? Wenn ja, wie?

    
Uli 26.12.2010, 13:44

2 Antworten

194

Ubuntu ab 14.10

In Ubuntu 14.10 und 15.04 findet TRIMming automatisch jede Woche auf allen SSDs statt, die von fstrim unterstützt werden.

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

Ubuntu 14.04

Ab Ubuntu 14.04 ist das geplante TRIM standardmäßig für SSDs von Intel, SAMSUNG, OCZ, Patriot und Sandisk aktiviert. Wenn Sie eine andere Marke haben, können Sie die Herstellerprüfung deaktivieren, indem Sie den folgenden Befehl ausführen :

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

(oder bearbeiten Sie einfach die Datei /etc/cron.weekly/fstrim und fügen Sie --no-model-check hinzu)

Ubuntu 13.10 und früher

Es gibt drei Möglichkeiten, TRIM manuell, geplant und automatisch auszuführen:

Manuelle TRIM

In Ubuntu kann dies mit fstrim durchgeführt werden:

sudo fstrim /

Es wird jedoch nicht benötigt, wenn das zeitgesteuerte oder automatische TRIM aktiviert ist, wie in den folgenden Abschnitten beschrieben.

Hinweis: Für Ubuntu 11.04 und frühere Systeme ist fstrim nicht verfügbar, daher müssen Sie wiper.sh mit hdparm in /usr/share/doc/hdparm/contrib/wiper.sh.gz

Geplantes TRIM (empfohlen)

Dies ist die derzeit empfohlene Methode und ist geplant, um standardmäßig für Ubuntu 14.04 aktiviert zu werden . Hier ist, wie Sie es manuell in älteren Versionen von Ubuntu (11.10 bis 13.10) aktivieren:

Erstellen Sie eine wöchentliche CRON-Job-Skript-Datei:

gksudo gedit /etc/cron.weekly/fstrim

Fügen Sie den folgenden Code in die Datei ein, speichern und schließen Sie die Datei:

#! /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

Beachten Sie, dass das obige davon ausgeht, dass sich nur Ihr Root-Dateisystem / auf einer SSD befindet. Wenn Sie mehr Einhängepunkte auf einer oder mehreren SSDs haben, fügen Sie sie zu SSD_MOUNT_POINTS hinzu, wie im Code erläutert.

Machen Sie das Skript ausführbar:

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

Und schließlich teste es:

sudo /etc/cron.weekly/fstrim

Wenn Sie keine Fehler sehen, sollte Ihr Cron-Job gut funktionieren.

Automatisches TRIM (veraltet, langsam)

Automatisches TRIM wurde seit Ubuntu 10.10 (Kernel 2.6.33) mit dem EXT4-Dateisystem unterstützt. Es wurde jedoch erkannt, dass das Senden von TRIM-Befehlen an die SSD in Echtzeit - nach jedem Löschen - das Löschen auf manchen Laufwerken viel langsamer als üblich macht. Daher wird eine wöchentliche geplante TRIM über einen Cron-Job (oben beschrieben) empfohlen.

Um automatisches TRIM auf einem Laufwerk oder einer Partition zu aktivieren, müssen sie mit der Option discard in fstab gemountet werden. Sichern Sie zunächst Ihre fstab und öffnen Sie sie zur Bearbeitung:

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

Fügen Sie discard dem fstab-Optionseintrag (kommagetrennt) für das SSD-Laufwerk oder für jede Partition hinzu.

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

Schließen und speichern Sie fstab, dann Neustart und automatische TRIM sollte nun funktionieren.

Automatisches TRIM testen

Um zu testen, ob TRIM funktioniert, geben Sie die folgenden Befehle ein ( Quelle ):

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

Kopieren Sie von der Ausgabe die Nummer unter begin_LBA und überprüfen Sie den Gerätenamen Ihrer SSD: System->Administration->Disk Utility z. sda, sdb, sdc ...

Führen Sie Folgendes aus, ersetzen Sie jedoch [ADDRESS] (begin_LBA) und sdX (SSD-Gerätename) durch die oben erhaltenen Details.

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

Die Ausgabe sollte eine lange Zeichenfolge für diese Sektoren sein

sudo rm tempfile
sync

Wiederholen Sie den Befehl hdparm von oben:

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

Wenn Sie nur Nullen erhalten, funktioniert das automatische TRIM. Wenn die Sektoren nach dem Entfernen der Datei jedoch immer noch nicht leer sind, warten Sie eine Weile und führen Sie den Befehl erneut aus.

    
Uli 30.09.2015, 23:58
26

Beachten Sie, dass die hier veröffentlichten Lösungen Ihnen bei der Verwendung der Verschlüsselung nicht weiterhelfen können, da Sie die TRIM-Unterstützung auch in der Verschlüsselungsschicht aktivieren müssen. Dies kann mit Kernel-Versionen 3.1+ und Cryptsetup-Versionen 1.4+ erfolgen, die beide in Ubuntu 12.04 enthalten sind.

Finden Sie meine Anleitung zum Einrichten von TRIM für LUKS-verschlüsselte Partitionen hier

Wie man TRIM auf LUKS verschlüsselten Partitionen in Ubuntu & amp; Debian

In dieser schrittweisen Anleitung können Sie die Vorteile der TRIM-Technologie für Ihre verschlüsselten SSD-Partitionen für cryptsetup 1.4 oder höher und Kernel 3.1 oder höher nutzen. Dies führt zu einem problemlosen SSD-Erlebnis, weil

  

"TRIM ermöglicht der SSD, den Garbage Collection Overhead zu verarbeiten   würde ansonsten zukünftige Schreiboperationen auf die   beteiligte Blöcke im Voraus. "

Beispieleinrichtung

Notebook mit SSD als einzelnes Laufwerk, Linux in einer einzelnen ext4 LVM-Root-Partition mit LVM-Swap-Partition, beide über LUKS-verschlüsselte logische Partition.

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. Erstellen Sie eine Sicherungskopie aller Ihrer Daten. Sie machen sich mit Ihrem Dateisystem herumärgern Es ist also eine gute Idee, ein Backup zu haben.
  2. Stellen Sie sicher, dass Sie die erforderlichen Kernel - und Cryptsetup - Versionen (3.1 &Ampere; 1,4, z.B. in Ubuntu 12.04, aber Vorsicht, zum Zeitpunkt des Schreibens 12.04 ist immer noch Beta).
  3. Fügen Sie den Dateisystemoptionen der verschlüsselten Datei den Parameter discard hinzu LVM-Volume (s) in Ihrer / etc / fstab-Datei. Dies macht das Dateisystem von Ihre LVM-Partition weiß, dass Sie TRIM verwenden möchten.

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. Der letzte Schritt ist jedoch nicht genug. Solange LUKS sich dessen nicht bewusst ist dass Sie TRIM verwenden möchten, wird es effektiv alle TRIM blockieren Operationen, die aus Sicherheitsgründen vom Dateisystem der LVM-Partition kommen Gründe dafür. Fügen Sie den cryptdevice-Optionen in den Parameter discard hinzu / etc / cryptab, damit LUKS das Löschverhalten des LVM akzeptiert Partition.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Erstellen Sie Ihr initramfs neu. Die Cryptab-Optionen sind dort gespeichert und beim Booten verwendet.

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

  7. Überprüfen Sie, ob TRIM jetzt aktiv ist.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Wenn der letzte Befehl ein solches Ergebnis anzeigt (1 allow_discards am Ende), ist alles eingestellt.

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

Ergebnis

TRIM ist aktiviert. Genießen Sie Ihre stressfreie SSD!

    
nem75 14.04.2012 17:00

Tags und Links