Aus Mageia wiki
Wechseln zu: Navigation, Suche
Warnung.png
Warnung!

Das Wiki ist umgezogen und befindet sich nun unter https://wiki.mageia.org/en/Hauptseite-de . Bitte nutzen Sie das neue Wiki.

Die hier enthaltenen Informationen werden nicht aktualisiert und sind deshalb veraltet oder sogar falsch!
Diese Seite befindet sich im neuen Wiki hier: https://wiki.mageia.org/en/Installation_auf_einer_SSD-de


Drakconf multiflag.png
Weitere Sprachen

Deutsch ; English ; Français ;


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.

Gparted1.png

Notepad.png
Bitte beachte!
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
Notepad.png
Bitte beachte!
trim wird von der RAID oder SCSI Technologie nicht unterstützt

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

48px-Hinweis.png
Bitte Beachten!
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:

Konsole.png
[root@computer ~]# fstrim /home
[root@computer ~]# _

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