Benutzer-Werkzeuge

Webseiten-Werkzeuge


ssd

====== SSD ====== * [[http://de.wikipedia.org/wiki/Solid-State-Drive]] * __MLC__: Billig-SSDs sterben bereits nach ca. 3.000 Schreibvorgängen * __SLC__: Hochpreis-SSDs sterben erst nach ca. 100.000 Schreibvorgängen * //tot//: sie "vergisst" was neu geschrieben wird und kann nur noch gelesen werden ===== Ausführung / Typus / Variante ===== ^ [[https://www.youtube.com/watch?v=s-2VrxgI49Q|SSD]] ^^^^^ ^ Controller ^ Protokoll ^ max. Geschwindigkeit ^ Anschluß ^ Bauform ^ Bemerkung ^ | SCSI/AHCI | SATA | 600 MB/s ^ Serial-ATA | 2,5-Zoll-SATA | als Plugin-Ersatz für 2,5-Zoll-HDD | | SCSI/AHCI | SATA | 600 MB/s ^ mini-SATA | mSATA | physisch PCI Express Mini Card, elektrisch SATA | | SCSI/AHCI | SATA | 600 MB/s ^ M.2 | 2230, 2242, 2260, 2280 | Nachfolger von mini-SATA (mSATA) | | PCIe | NVMe | 3500 MB/s ^ M.2 | 2230, 2242, 2260, 2280 | leistungsgesteigerter Nachfolger von mini-SATA | ===== TRIM ===== * [[http://www.thomas-krenn.com/de/wiki/Ext4_Dateisystem]] Beispiel: # mount -t ext4 -o discard /dev/sdb1 /mnt/ ==== SSD-Leistung optimieren ==== * [[http://www.pro-linux.de/kurztipps/2/1704/ssd-leistung-optimieren.html|SSD-Leistung optimieren]] Das I/O-Subsystem, das Lese- und Schreibzugriffe auf Datenträger regelt, ist in jedem Computersystem ein Flaschenhals, der sich besonders bei mechanischen Festplatten stark die Gesamt-Performance des Systems auswirkt. Die Laufwerkssteuerung herkömmlicher Festplatten muss bei Zugriffen den gewünschten Datensektor ausfindig machen, den zuständigen Schreib-Lese-Kopf dorthin bewegen und warten, bis der Kopf ruhig über der Spur läuft. Je nach Modell dauert dies im Mittel zwischen 3,5 und 10 Millisekunden. Sofern die angeforderten oder geschriebenen Daten nicht im Cache des Laufwerks zwischengespeichert sind, muss müssen die anderen Lese-Schreib-Anfragen an das gleiche Laufwerk des I/O-Subsystems währenddessen warten. Ein wichtiger Faktor, der über die Performance eines Computersystems entscheidet, ist die Organisation dieser Warteschlange für Datenträgeranfragen im I/O-Scheduler. Scheduler sind kein alleiniges Merkmal von Linux, sondern Bestandteil aller Betriebssysteme. Intelligente Scheduler versuchen, alle Operationen in eine optimale Reihenfolge zu bringen, damit Schreib-Lese-Köpfe zur Neupositionierung möglichst kurze Wege zurücklegen müssen. Die beste Reihenfolge errechnet der Scheduler anhand der Blocknummern des Dateisystems. Schreib- und Leseanforderungen werden dann zu Gruppen mit möglichst kleinen Unterschieden bei ihren Blocknummern abgearbeitet. === I/O-Scheduler des Linux-Kernels === Der intelligente Scheduler, den die meisten Linux-Systeme standardmäßig nutzen, ist der »Completely Fair Scheduler« (CFQ), der bei mechanischen Festplatten beste Leistung bietet. Beim Einsatz von SSDs stellt sich hingegen die Frage, ob CFQ als Standard noch zeitgemäß ist oder nicht vielmehr die Sortierung der Zugriffe ganz dem internen Controller der SSD überlassen werden sollte. Ab Kernel 2.6.33 stehen insgesamt drei unterschiedliche Scheduler zur Auswahl, und zwei davon nehmen geringeren Einfluss auf die Reihenfolge der Datenträgerzugriffe. NOOP: Dieser Scheduler verzichtet auf jede Eigenintelligenz und stellt die Anforderungen des I/O-Subsystems in eine einfache Warteschlange, die genau in der Reihenfolge abgearbeitet wird, in der die Anfragen eingehen. Deadline: Dieser Scheduler sortiert Anfragen anhand ihrer Blocknummer in einer Warteschlange ein. Damit dabei aber I/O-Zugriffe mit weit auseinanderliegenden Blöcken nicht auf der Strecke bleiben, bekommt jeder wartende Zugriff noch einen fixen Zeitpunkt verpasst (Deadline), zu dem der Wartekandidat unabhängig von seiner Blocknummer an die Reihe kommt. CFQ: Der bereits erwähnte »Completely Fair Scheduler« tut weit mehr als seine Kollegen. Er führt für laufende Prozess eine Block-Statistik, um die verfügbare I/O-Bandbreite fair auf die Prozesse aufzuteilen. Optimal ist dieses Verhalten auf dem Linux-Desktop, auf dem es nicht um die maximalen Durchsatzraten für einzelne Programme geht, sondern um ein ausgeglichenes Antwortverhalten beim Multitasking. === Der richtige Scheduler für verschiedene Aufgaben === Während der CFQ-Scheduler für Desktop-Systeme mit mechanischen Platten ideal ist, empfehlen die Kernel-Entwickler für Server den Deadline-Scheduler. Dieser bietet die geringste Latenz pro Prozess, was besonders Web- und Datenbankservern zugutekommt. Seit dem Einzug von SSDs auf Desktop-Systemen, auf welchen die Umverteilung von CFQ unnötig erscheint, wird Deadline aber auch für diesen Einsatzzweck mehr Interesse zuteil. So wechselten Ubuntu 13.10 und damit auch Mint 16 von CFQ zu Deadline als Standard, egal, welche Art von Datenträger im System vorhanden ist. Das I/O-Subsystem des Linux-Kernels kann jedem Laufwerk einen eigenen Scheduler zuweisen. Um zu sehen, welcher Typ auf einem Laufwerk zuständig ist, dient im Terminal dieser Befehl: cat /sys/block/sda/queue/scheduler Der in eckigen Klammern angezeigte Scheduler in der Ausgabe des Befehls ist auf dem abgefragten Laufwerk (hier sda) aktiv, beispielsweise wäre dies unter Ubuntu 13.10 stets Deadline. Um den Scheduler permanent zu ändern, bieten sich unter Linux verschiedene Wege an. Eine Möglichkeit, den Standard festzulegen, bietet der Kernel-Parameter ''elevator=[scheduler]'', der in Grub 2 über dessen Konfigurationsdatei ''/etc/default/grub'' mit der Zeile ''GRUB_CMDLINE_LINUX='' festgelegt wird. Es ist aber einfacher, den Scheduler pro Laufwerk mit den Sysfsutils zu definieren. Dazu dient das Paket »sysfsutils«, das in allen verbreiteten Distributionen über den Paketmanager zur Verfügung steht und in Debian/Ubuntu/Mint mit: aptitude install sysfsutils installiert wird. Anschließend öffnen Sie mit root-Rechten oder mit sudo die noch leere Konfigurationsdatei ''/etc/sysfs.conf'' in einem Texteditor. Soll der Scheduler von ''/dev/sda'' auf CFQ geändert werden, tragen Sie dort diese Zeile ein: block/sda/queue/scheduler = cfq Genauso können Sie für ''/dev/sdb'' mit ''block/sdb/queue/scheduler ='' einen anderen Scheduler festlegen. Als Angabe stehen hier »cfq«, »deadline« und »noop« zur Auswahl, und es ist ein Mischbetrieb möglich. === Leistungstests und Fazit === Für einen empirischen Test ließen wir alle Scheduler auf einem Desktop-System mit Ubuntu 13.10 antreten, das ausschließlich eine SSD als Datenträger nutzt. Dieser Aufbau entspricht heute typischen Notebooks. Der erste Langzeittest erfolgte mit IOzone, das verschiedene Schreibzugriffe ausführt. Deadline liefert bei diesem Benchmark deutlich bessere Werte. In einem zweiten Test mit AIO-Stress wurden die asynchronen Schreib- und Lese-Anforderungen von mehreren geöffneten Programmen getestet. In diesem Benchmark, der einem typischen Desktop-System näherkommt, ist wiederum CFQ überlegen. Ein Wechsel zu Deadline bringt also auf Desktop-Systemen auch beim Einsatz von SSDs keinen Leistungsschub, **und somit bleibt CFQ der empfehlenswerte Scheduler für Linux-Desktops. Deadline erscheint dagegen für Server geeignet, auf welchen wenige Prozesse eine hohe I/O-Last erzeugen.** Die Beobachtung deckt sich übrigens mit der Empfehlung für Red Hat für die Wahl eines I/O-Schedulers auf Servern. Deren englischsprachige Zusammenfassung dazu ist auf [[http://www.redhat.com/magazine/008jun05/features/schedulers|www.redhat.com]] nachzulesen. Ubuntu- und Mint-Anwender, die den PC hauptsächlich für Desktop-Aufgaben nutzen, sollten in Betracht ziehen, zu CFQ zurückzukehren. Dieser Artikel stammt von unserem Kooperationspartner [[http://www.pcwelt.de/ratgeber/Optimales_SSD-Timing_fuer_Linux-Mehr_Tempo-8674837.html|PC-WELT]]. ==== Hinweise zum "Sicheren Löschen" ==== Ein beliebtes Werkzeug um Flash-Speicher zu löschen ist [[http://www.blancco.com/de/produkte/vollstandige-datenloschung/flash/|Blancco Flash]]. == BSI == In einem Hinweisblatt vom BSI (etwa zweite Seite Mitte) wird auch beschrieben, dass SSDs nicht 100%-ig zu löschen sind: * [[https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Produkte/VSClean/Ueberschreiben_Festplatten.pdf|URL: Hinweisblatt zum Überschreiben von Festplatten (Stand: 30.08.2011)]] == Wikipedia == * [[http://de.wikipedia.org/wiki/Solid-State-Drive#Sicheres_Löschen]] ... Die Umverteilung findet umso mehr statt, je mehr nach dem letzten Formatieren nicht beschriebene, oder durch TRIM wieder freigegebene Sektoren auf dem Laufwerk vorhanden sind – ein gut gefülltes Laufwerk ist so betrachtet ein „sichereres“. Um dieses Sicherheitsleck zu nutzen und auf die nicht wirklich gelöschte Datei zugreifen zu können, müsste aber eine Firmware programmiert und installiert werden, die alle Blöcke auslesen kann. Mit Installation dieser würde jedoch wahrscheinlich die Information zur bisherigen Nutzungsverteilung verloren gehen. Somit fehlte das Wissen, welche Blöcke zu einer durch scheinbares Überschreiben gelöschten Datei in welcher Reihenfolge gehören. Kryptographiehersteller warnen trotzdem vor dem Einsatz von SSDs, da zumindest Schlüssel auffindbar sein könnten. Behebbar ist das Problem erst durch einen Controller, der auf Wunsch vorübergehend die Nutzungsverteilung abschalten kann und so ein „Secure Erase“ ermöglicht. Entsprechende Laufwerke sind aber nur im Hochpreissegment zu finden, etwa von M-Systems. Diese enthalten dann auch Löschalgorithmen nach US-Airforce- oder Navy-Standard. Für den Heimgebrauch gibt es keine vollständige Löschmöglichkeit. Das liegt am nicht ansprechbaren Reservespeicher („Spare Area“) der SSDs, welcher nur dem Controller zugänglich ist. Jener Bereich dient sowohl als Ruheplatz der abgenutztesten Sektoren, als auch der Geschwindigkeitssteigerung. == ct == Folgender Befehl liefert eine Liste aller angeschlossenen Platten und SSDs: # hdparm -i /dev/sd? Manche BIOSe oder Linux-Distributoren verwehren Ihnen den Zugriff auf die im Folgenden benutzten Mechanismen. Ob das Security Freeze Lock geschlossen ist (Zustand „frozen“), verrät ein Aufruf des folgenden Befehl's für das jeweilige Device: # hdparm -I /dev/xxx Nur wenn der Abschnitt „Security“ einen Eintrag namens „not frozen“ enthält, können Sie überhaupt ein Security Erase absetzen. Im Zweifelsfall probieren Sie eine andere Linux-Distribution oder einen anderen SATA-Port aus. Manchmal hilft es auch, die SSD im laufenden Betrieb ab- und wieder anzuschließen. Zur Not brauchen Sie einen anderen PC, um die SSD sicher zu löschen. # hdparm --user-master u --security-set-pass passwort /dev/sdX # hdparm --user-master u --security-erase passwort /dev/sdX Je nach SSD dauert das sichere Löschen unterschiedlich lang, bei manchen geht es blitzschnell: Moderne SSD-Controller verschlüsseln die Daten bereits beim Schreiben und müssen für ein Secure Erase daher nur ihren internen Kryptoschlüssel verwerfen und einen neuen generieren. Dieser Schlüssel hat übrigens nichts mit dem oben temporär gesetzten ATA-Passwort zu tun und verlässt die SSD nie.

ssd.txt · Zuletzt geändert: 2020/07/28 17:01 von manfred