Das Wiki ist umgezogen und befindet sich nun unter https://wiki.mageia.org/en/Hauptseite-de . Bitte nutzen Sie das neue Wiki.
Diese Seite befindet sich im neuen Wiki hier: https://wiki.mageia.org/en/Installation_auf_einer_SSD-de
Inhaltsverzeichnis
Einleitung
SSD sind sehr schnell, leise und werden immer günstiger; so lasst uns diese Verwenden ! Allerdings musst du vorsichtig sein. Ohne bestimmte Vorsichtsmaßnahmen könnte es vorkommen, dass die SSD vorzeitig defekt geht, da so ein Gerät nicht so häufig gelöscht/beschrieben werden kann wie eine Festplatte.
Du musst einige Regeln beachten damit es weniger Lösch/Schreibvorgänge gibt. Mit diesen Regeln können aktuelle SSDs über 5 Jahre halten, selbst bei einem Server.
Firmware
Nach dem Kauf und vor Verwendung einer SSD ist es ratsam zu überprüfen, ob die Firmware auf dem neusten Stand ist. Die meisten Hersteller bieten Tools/Werkzeuge an um die Firmware zu aktualisieren, da der technische Fortschritt in diesem Bereich sehr schnell ist. Eventuell sind wichtige Updates bereits für dein Laufwerk verfügbar.
Partitionsverwaltung
Einfacher Test
Bis heute waren Partitionsprogramme daraufhin optimiert, Partitionen für Festplatten mit Scheiben, Zylinder und Köpfe zu erstellen. Bei SSDs existieren diese nicht. Partitionen optimieren bedeutet diese auf die Cluster der SSD anzupassen.
Um mehr über dein Gerät zu wissen, verwende folgenden Befehl in der Konsole mit Administratorrechten (root):
# fdisk -lu /dev/sdx
wobei sdx dein Laufwerk ist (zum Beispiel sda). Als Ausgabe wirst du etwas ähnliches wie dieses sehen:
Disk /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x0f2a40f9 Device Boot Start End Blocks Id System /dev/sda1 * 2048 61442047 30720000 7 HPFS/NTFS/exFAT /dev/sda2 61444089 203736329 71146120+ 5 Extended Partition 2 does not start on physical sector boundary. /dev/sda5 61444096 84566159 11561032 83 Linux /dev/sda6 84570112 147669479 31549684 83 Linux /dev/sda7 147673088 155846564 4086738+ 82 Linux swap / Solaris /dev/sda8 155846628 178546409 11349891 83 Linux Partition 8 does not start on physical sector boundary. /dev/sda9 178546473 203736329 12594928+ 83 Linux Partition 9 does not start on physical sector boundary. [root@localhost ~]#
In diesem Fall sagt dir das System, welche Partitionen nicht stimmen (2, 8 und 9). Teile für jede Partition die Nummer in der Zeile start durch 2048 (2048 Cluster in einem MiB). Zum Beispiel startet sda6 bei 84570112, geteilt durch 2048 erhältst du die Zahl 41294. Dies ist eine Ganzzahl (integer), was bedeutet das die Partition ok ist.
Neu Partitionieren
Wenn das was du möchtest eine Neupartitionierung benötigt, mache dies vor der Installation von Mageia, da es nicht sicher ist dass DrakDisk angepasste Partitionen erstellt. GParted wird empfohlen. Wenn du kein Experte bist, kannst du auf die Live Distribution GParted zurückgreifen, die einfacher zu Handhaben ist (keine eingehängte Partitionen):
- Boote von der Live GParted CD, akzeptiere die Standardeinstellungen und wähle deine Sprache
- Wähle auf dem Hauptbildschirm dein Laufwerk (in der oberen rechten Ecke) und klicke auf Neue Partition (erstes Icon mit einem grünen +)
- In einem neuen Feld, aktiviere das Feld "Free space preceding (MiB)" welches auf 1 MiB für die erste Partition der SSD eingestellt ist (der Platz wird für den MBR benötigt). Für die nächste Partition muss dies auf 0 gesetzt werden.
- Das Feld "Align to" muss in MiB eingestellt werden.
- Als Dateisystem sollte ext4 sein.
Der Befehl fdisk gibt dir die Größen in 512 bytes an. Wenn du nun mit GPartet eine Partition erstellst die ab 1 MiB beginnt, wird fdisk dir 2048 anzeigen (2048*512=1 MiB)
Die Partitionierung besteht bereits
Zu spät, Mageia läuft bereits und die Partitionen sind nicht angepasst ! Das ist kein Problem, GParted kann die Partitionierung neu ausrichten. Schau dir mal die folgende Seite an: Speed Up Your SSD By Correctly Aligning Your Partitions
Der Trim Befehl
Präsentation
Es ist nicht möglich eine SSD zu überschreiben, das System muss die alte Daten löschen bevor es wieder beschrieben werden kann. Der Befehl trim erlaubt dem System die Daten zu löschen wenn sich die SSD im idle Modus (keine Schreib-/Lesezugriffe zur Zeit) befindet. trim vermeidet auch das schreiben von Dateien auf freie Plätze, was die SSD Lebenszeit erhöht.
trim kann effektiv sein wenn du folgendes hast:
- Linux-Kernel 2.6.33 oder neuer
- Dateisystem ext4, Btrfs, oder swap.
- Hardwareanschluss über SATA
Den Trim Befehl verwenden
Es gibt zwei Wege, trim zu aktivieren:
- füge die discard Option in eine Konfigurationsdatei (z.B./etc/fstab) ein. Es wird permanent aktiviert.
- verwende den fstrim Befehl in der Konsole oder was besser wäre, in einem Script um trim zu einer selbst bestimmten Zeit zu aktivieren.
Die discard Option
Es wird nicht mehr empfohlen, die discard Option in /etc/fstab einzutragen (siehe http://www.howtogeek.com/176978/ubuntu-doesnt-trim-ssds-by-default-why-not-and-how-to-enable-it-yourself/), da es bei jedem Löschvorgang das System ausbremst. Die einzige Ausnahme ist die swap Partition auf dem SSD Laufwerk (da die swap Partition keinen Einhängepunkt hat). Du kannst mit deinem favorisierten Texteditor die discard Option für die swap Partition hinzufügen, dies aber nur für swap.
Um den trim Befehl zu aktivieren, bearbeite deine /etc/fstab mit einem Editor, hier im Beispiel mit vim
# vim /etc/fstab
# Eintrag für /dev/sda1 : UUID=a008be25-1898-4149-af3e-6b22260586b0 / ext4 acl,relatime 1 1 #Eintrag für /dev/sda2 : UUID=9af64cdc-a611-47c3-821e-94a9fd60251e swap swap defaults,discard 0 0 # Eintrag für /dev/sda5 : UUID=4c5e50d9-16c0-4f24-acc9-ee13f899b1d1 /home ext4 acl,relatime 1 2 # Eintrag für /dev/sdb8 : UUID=c651fd07-b486-4eee-aaab-4acf5220c763 /home/samageia/multimedia ext2 defaults 1 2 /dev/cdrom /media/cdrom auto umask=0,users,iocharset=utf8,noauto,ro,exec 0 0 # Eintrag für /dev/sdb1 : UUID=7A60F79E60F75F77 /media/win_c ntfs-3g defaults,umask=000 0 0 # Eintrag für /dev/sdb7 : UUID=445C-DFC4 /media/win_d vfat umask=000,iocharset=utf8 0 0 none /proc proc defaults 0 0
Du musst den "discard" Eintrag nur für die swap Partition einfügen, wenn diese sich auf dem SSD Laufwerk befindet. In diesem Beispiel ist das Laufwerk sda die SSD.
Du benötigst etwas Hilfe mit vim? Gehe in dieser Reihenfolge vor :
- i -> Einfügemodus
- Pfeiltasten -> um den Text zu verschieben
- gebe den Text ein
- ESC -> Ende des Einfügemodus
- : -> Befehlsmodus, erscheint unten auf dem Bildschirm
- wq -> schreiben und beenden (oder q! um ohne zu speicher beenden).
Wenn du Physical Volume mit lvm auf einem SSD Laufwerk verwendest, editiere die /etc/lvm/lvm.conf und ändere den Wert von issue_discards von 0 auf 1.
Wenn du verschlüsselte Dateisysteme verwendest, welche während dem booten eingebunden werden, editiere /etc/crypttab und füge dort die discard Option hinzu. Ein Beispiel (verwenden eines verschlüsselten Dateisystems mit lvm)
cat /etc/crypttab crypt_vgc_lvc2 /dev/vgc/lvc2 - discard
Wenn du manuell das verschlüsselte Dateisystem einbindest oder deinen eigenen Script verwendest, muss die --allow-discards Option in den cryptsetup luksOpen Befehl hinzugefügt werden.
Der fstrim Befehl
Um den trim zu starten, verwende den Befehl fstrim <Einhängepunkt des Dateisystems> in einer Konsole mit root rechten. Ein Beispiel:
Das Dateisystem muss eingehängt sein.
Um dies automatisch zu machen, füge den folgenden Script in /etc/cron.daily ein, wodurch alle gelöschten Daten direkt getrimmt werden.
#!/bin/bash IFS=$'\n' for device in /dev/sd?; do drive=${device##*/} if $(udevadm info -q env -p /block/"$drive"|egrep -q 'ID_ATA_ROTATION_RATE_RPM=0'); then # ssd drive found mounts=($(grep /dev/"$drive" /proc/mounts|grep -v -w ro)) # mounts is now a list of writeable mounts on the ssd drive for mount in "${mounts[@]}"; do mountnodev=${mount#* } # strip first space and everything before it mountpoint="${mountnodev%% *}" # strip first space and everything after it fstrim "$mountpoint" # Inform device which blocks on the filesystem are no longer in use done fi done mounts=($(grep ^/dev/mapper /proc/mounts|grep -v -w ro)) # mounts is now a list of mounted lvm or encrypted writeable mounts which may be on the ssd drive for mount in "${mounts[@]}"; do mountnodev=${mount#* } # strip first space and everything before it mountpoint="${mountnodev%% *}" # strip first space and everything after it fstrim "$mountpoint" # Inform device which blocks on the filesystem are no longer in use done unset IFS
Noatime
In der selben /etc/fstab, ist es möglich von relatime auf noatime umzustellen, damit vom System nicht die Zugriffszeiten geschrieben werden, wenn auf eine Datei zugegriffen wird. Das verhindert viele Schreibvorgänge auf der SSD, allerdings werden von einigen Programme diese Zeiten benötigt (wie zum Beispiel kmail).
Einige Tricks
Es gibt weitere Möglichkeiten um nicht benötigte Schreibvorgänge auf deiner SSD zu sparen.
Scheduler
Der im Kernel vorhandene Scheduler ist auf Umdrehungen basierte Speichermedien angepasst, um z.B. Laufwerke eine Latenz für den Zugriff einzuräumen. Diese Latenzen existieren bei SSDs allerdings nicht, weshalb man eine Änderung im Scheduler, allerdings nur für das SSD Laufwerk, machen kann. Führe alle Schritte als root im Terminal aus:
1. Das folgende Beispiel geht davon aus, dass deine SSD als das Laufwerk sda läuft. Sollte deine SSD einen anderen Namen haben, musst du dies natürlich für dein System anpassen: Erstelle die Datei rc.local mithilfe deines favorisierten Editor unter /etc/rc.d/rc.local:
#!/bin/sh echo deadline >/sys/block/sda/queue/scheduler exit 0
2. Lege nun diesen Befehl für jeden Neustart fest:
sudo chmod +x /etc/rc.d/rc.local systemctl status rc-local systemctl start rc-local systemctl status rc-local [um zu prüfen dass dies nun ausgeführt wird]
3. Überprüfe, das dies bei jedem Bootvorgang ausgeführt wird, indem du MCC - System - System Services - rc-local aufrufst.
4. Wenn du möchtest das der Befehl sofort ausgeführt wird, brauchst du dein System jetzt nicht neu starten, sondern kannst ihn als root/sudo ausführen
echo deadline >/sys/block/sda/queue/scheduler
In Zukunft wird nun dein System bei jedem Boot den I/O Scheduler für die SSD ausführen und alle anderen Laufwerke arbeiten weiterhin mit den Standardeinstellungen. Dies wird dir helfen die SSD mit voller Geschwindigkeit zu betreiben.
Swap
Weil die /swap Datei häufig beschrieben wird, ist es eine gute Idee die /swap Datei auf einem anderen Datenträger, statt auf der SSD zu speichern. Wenn du eine Festplatte neben deiner SSD hast, kannst du hier einen kleinen Platz für die /swap Datei einrichten. Es ist aber auch möglich ohne /swap auszukommen.
Das log Verzeichnis
Wenn du wie ich deine Festplatte als zweites Laufwerk mit /home usw. weiterverwendest, kannst du Schreibzugriffe reduzieren, indem du das log Verzeichnis auf deine HDD überträgst.
Tue das folgende als root: In meinem Fall erstellte ich /home/system-jobs/var/log Anschließend kopierte ich die /var/log nach /home/system-jobs/var, verschob die /var/log nach /var/log-old [nur als Backup] Am Ende verlinkte ich die Festplatte auf die SSD mit dem folgenden Befehl:
su - {root password} mkdir -p /home/system-jobs/var cp -vp /var/log /home/system-jobs/var mv /var/log /var/log-old ln -s /home/system-jobs/var/log /var/log
Du solltest danach überprüfen ob es funktioniert hat indem du ls -la /var/log/ eingibst, welche dir eine Liste von deinen Logdateien anzeigen sollte. Beachte dass das abschließende '/' wichtig ist.
Jetzt werden alle logs und alle Arbeiten damit z.B. durch logrotate auf die Festplatte gespeichert.
Diese Prozedur hilft dir sicherzugehen, dass die SSD Idle-Zeit hat um den eigenen Garbage Collection Prozess auszuführen.
Firefox
Firefox macht einen großen Gebrauch von temporären Dateien. Wenn du mehr als 2 GB RAM hast, können wir einstellen das nicht mehr auf / geschrieben wird und stattdessen der RAM verwendet werden soll.
- Öffne Firefox und geben about:config in die URL Leiste ein.
- Suche in der Liste nach browser.cache.disk.enable und ändere true auf false mit einem Rechtsklick.
- Schaue in der Liste nach browser.cache.memory.enable, eventuell musst du den Eintrag erstellen mit einem Rechtsklick, dann Neu->String und setze den Werk auf true. Nun haben wir das schreiben des Cache auf die Festplatte deaktiviert und das schreiben des Caches in den RAM aktiviert.
- Erstelle einen neuen String mit dem Namen browser.cache.memory.capacity und lege einen Wert mit der maximalen Speichergröße in KiB festlegen. (200000 ist eine gute Wahl).
Referenzen
- How to maximise SSD performance with Linux, APCmag, http://apcmag.com/how-to-maximise-ssd-performance-with-linux.htm
- Solid State Drives, ArchLinux, https://wiki.archlinux.org/index.php/Solid_State_Drives