web-dev-qa-db-de.com

Nachteile der Partitionierung einer SSD?

Ein weiser Kerl, der den Namen NickN trägt, führt einen langen forum-Beitrag über seine Ansichten zum Bau eines leistungsstarken Computers (der darauf abzielt, Microsoft Flight Simulator X zu spielen, eine sehr anspruchsvolle Software).

Er fasst Punkte über SSD-Laufwerke zusammen und schließt die Liste wie folgt ab:

Partitionieren Sie keine SSD

Darauf geht er leider nicht ein, aber ich frage mich, warum er das sagt. Was sind die Nachteile der Partitionierung einer SSD? (Partitionierung bedeutet in diesem Zusammenhang> = 2 Partitionen)

77
MarioDS

SSDs funktionieren, wie ich wiederhole, NICHT auf Dateisystemebene!

Es gibt keine 1: 1-Korrelation zwischen der Sichtweise des Dateisystems und der Sichtweise der SSD.

Sie können die SSD beliebig partitionieren (vorausgesetzt, jede Partition ist korrekt ausgerichtet, und ein modernes Betriebssystem übernimmt dies für Sie). Es wird NICHT schaden, es wird NICHT die Zugriffszeiten oder irgendetwas anderes nachteilig beeinflussen, und Sie müssen sich auch keine Gedanken darüber machen, wie viel auf die SSD geschrieben wird. Sie haben sie, so dass Sie 50 GB Daten pro Tag schreiben können, und es wird 10 Jahre dauern.

Antwort auf Robin Hoods Antwort ,

Wear Leveling hat nicht so viel freien Speicherplatz zum Spielen, da Schreibvorgänge auf einen kleineren Speicherplatz verteilt werden, sodass Sie "könnten", aber diesen Teil des Laufwerks nicht unbedingt schneller verschleißen, als wenn Sie es mit dem gesamten Laufwerk tun würden war eine einzelne Partition, es sei denn, Sie führen eine gleichwertige Abnutzung der zusätzlichen Partitionen durch (z. B. ein Dual-Boot).

Das ist völlig falsch. Es ist unmöglich, eine Partition zu verschleißen, da Sie nur auf diese Partition lesen/schreiben. Dies ist nicht einmal remote, wie SSDs funktionieren.

Eine SSD arbeitet auf einer viel niedrigeren Zugriffsebene als das, was das Dateisystem sieht. Eine SSD arbeitet mit Blöcken und Seiten.

In diesem Fall wird das Dateisystem tatsächlich von der Partition eingeschränkt, die SSD jedoch nicht. Dies ist auch dann der Fall, wenn Sie eine Menge Daten in eine bestimmte Partition schreiben. Je mehr Schreibvorgänge die SSD ausführt, desto mehr Blöcke/Seiten werden von der SSD ausgetauscht, um den Verschleiß auszugleichen. Es ist mir egal, wie das Dateisystem die Dinge sieht! Dies bedeutet, dass sich die Daten zu einem bestimmten Zeitpunkt möglicherweise auf einer bestimmten Seite der SSD befinden, zu einem anderen Zeitpunkt jedoch auch anders sein können und werden. Die SSD verfolgt, wohin die Daten verschoben werden, und das Dateisystem weiß nicht, wo sich die Daten tatsächlich auf der SSD befinden.

Um dies noch einfacher zu machen: Angenommen, Sie schreiben eine Datei auf Partition 1. Das Betriebssystem teilt dem Dateisystem die Speicheranforderungen mit, und das Dateisystem weist die "Sektoren" zu und teilt der SSD dann mit, dass sieXbenötigt. Menge an Platz. Das Dateisystem sieht die Datei bei einer Logical Block Address (LBA) von 123 (zum Beispiel). Die SSD macht eine Notiz, dass LBA 123 (zum Beispiel) Block/Seite # 500 verwendet. Jedes Mal, wenn das Betriebssystem diese bestimmte Datei benötigt, hat die SSD einen Zeiger auf die genaue Seite, die sie verwendet. Wenn wir nun weiter auf die SSD schreiben, das Wear Leveling einschalten und Block/Seite # 500 sagen, können wir Sie besser auf Block/Seite # 2300 optimieren. Wenn das Betriebssystem dieselbe Datei anfordert und das Dateisystem DIESES MAL erneut nach LBA 123 fragt, gibt die SSD Block/Seite Nr. 2300 und NICHT Nr. 500 zurück.

Wie bei Festplatten sind N- und Flash-SSDs sequentielle Zugriffe, sodass alle Daten, die Sie von den zusätzlichen Partitionen schreiben/lesen, weiter entfernt sind, als dies "möglicherweise" der Fall gewesen wäre, wenn sie auf einer einzelnen Partition geschrieben wären, da die Benutzer normalerweise freien Speicherplatz belassen ihre Partitionen. Dies verlängert die Zugriffszeiten für die Daten, die auf den zusätzlichen Partitionen gespeichert sind.

Nein, das ist wieder falsch! Robin Hood denkt über das Dateisystem nach, anstatt zu überlegen, wie genau eine SSD funktioniert. Auch hier kann das Dateisystem nicht wissen, wie die SSD die Daten speichert. Es gibt hier kein "Weiter entferntes"; Das ist nur in den Augen des Dateisystems, NICHT die tatsächliche Art und Weise, wie eine SSD Informationen speichert. Es ist möglich, dass die SSD die Daten auf verschiedene NAND-Chips verteilt und der Benutzer keine Verlängerung der Zugriffszeiten bemerkt. Zum Teufel, aufgrund der Parallelität des NAND könnte es sogar schneller als zuvor werden, aber wir sprechen hier von Nanosekunden; blinzeln und du hast es verpasst.

Weniger Speicherplatz erhöht die Wahrscheinlichkeit, fragmentierte Dateien zu schreiben, und obwohl die Auswirkungen auf die Leistung gering sind, sollten Sie bedenken, dass es im Allgemeinen eine schlechte Idee ist, eine Nand-Flash-S.S.D. weil es den Antrieb abnutzt. Abhängig davon, welches Dateisystem Sie verwenden, führt dies natürlich zu einer extrem geringen Fragmentierung, da die Dateien nach Möglichkeit als Ganzes geschrieben werden sollen, anstatt überall abgelegt zu werden, um schnellere Schreibgeschwindigkeiten zu erzielen.

Nein Entschuldigung; wieder ist das falsch. Die Ansicht des Dateisystems auf Dateien und die Ansicht der SSD auf dieselben Dateien sind nicht einmal aus der Ferne zu schließen. Das Dateisystem könnte die Datei im schlimmsten Fall als fragmentiert ansehen, ABER die SSD-Ansicht der gleichen Daten wird fast immer optimiert.

Ein Defragmentierungsprogramm würde sich also diese LBAs ansehen und sagen, dass diese Datei wirklich fragmentiert sein muss! Da es jedoch keine Ahnung von den Interna der SSD hat, ist es zu 100% falsch. DAS ist der Grund, warum ein Defragmentierungsprogramm auf SSDs nicht funktioniert, und ja, ein Defragmentierungsprogramm verursacht, wie bereits erwähnt, auch unnötige Schreibvorgänge.

Die Artikelserie Codierung für SSDs bietet einen guten Überblick über die aktuellen Entwicklungen, wenn Sie technische Details zur Funktionsweise von SSDs benötigen.

Um mehr über die Funktionsweise von FTL (Flash Translation Layer) zu erfahren, empfehle ich Ihnen außerdem, Kritische Rolle von Firmware- und Flash Translation Layern im Solid State Drive-Design (PDF) von zu lesen die Flash Memory Summit Seite.

Sie haben auch viele andere Papiere zur Verfügung, wie zum Beispiel:

Ein weiteres Papier darüber, wie das funktioniert: Flash Memory Overview (PDF). Siehe Abschnitt "Daten schreiben" (Seiten 26-27).

Wenn Sie es lieber mit Video zu tun haben, lesen Sie Eine effiziente FTL auf Seitenebene zur Optimierung der Adressumsetzung im Flash-Speicher und zugehörige Folien .

114
Time Twin

Sehr lange Antworten hier, wenn die Antwort einfach genug ist und sich direkt aus dem allgemeinen Wissen über SSDs ergibt. Man braucht nicht mehr als den Wikipedia-Begriff Solid-State-Drive zu lesen, um die Antwort zu verstehen:

Der Hinweis "DO NOT PARTITION SSD" ist Quatsch.

In der (inzwischen fernen) Vergangenheit unterstützten Betriebssysteme SSDs nicht sehr gut, und insbesondere bei der Partitionierung wurde nicht darauf geachtet, die Partitionen entsprechend der Größe des Löschblocks auszurichten.

Dieser Mangel an Ausrichtung, wenn ein Sektor einer logischen Festplatte des Betriebssystems auf physische SSD-Blöcke aufgeteilt wurde, könnte erfordern, dass die SSD zwei physische Sektoren flasht, wenn das Betriebssystem nur einen aktualisieren möchte, wodurch der Festplattenzugriff verlangsamt und Wear leveling erhöht wird.

Derzeit werden SSDs viel größer, und Betriebssysteme kennen sich mit Löschblöcken und Ausrichtung aus, sodass das Problem nicht mehr besteht. Vielleicht sollte dieser Ratschlag einmal Fehler bei der Partitionsausrichtung vermeiden, aber heute sind diese Fehler so gut wie unmöglich.

Tatsächlich ist das Argument für die Partitionierung von SSDs heute genau das gleiche wie für klassische Festplatten:
Um die Daten besser zu organisieren und zu trennen.

Die Installation des Betriebssystems auf einer separaten und kleineren Partition ist beispielsweise praktisch, um ein Backup-Image davon als Vorsichtsmaßnahme für umfangreiche Aktualisierungen des Betriebssystems zu erstellen.

15
harrymc

Das Partitionieren einer SSD hat keine Nachteile, und Sie können ihre Lebensdauer verlängern, indem Sie nicht partitionierten Speicherplatz belassen.

Der Verschleißausgleich wird auf alle Geräteblöcke angewendet (siehe HP Whitepaper, unten verlinkt).

Beim statischen Abnutzungsausgleich nehmen alle Blöcke über alle verfügbaren Blitze im Gerät an den Abnutzungsausgleichsvorgängen teil. Dadurch wird sichergestellt, dass alle Blöcke den gleichen Verschleiß aufweisen. Statischer Verschleißausgleich wird am häufigsten bei Desktop- und Notebook-SSDs verwendet.

Daraus können wir schließen, dass Partitionen keine Rolle für den Abnutzungsgrad spielen. Dies ist sinnvoll, da aus Sicht der Festplatte und des Controllers Partitionen nicht wirklich vorhanden sind. Es gibt nur Blöcke und Daten. Sogar die Partitionstabelle wird auf dieselben Blöcke geschrieben (1. Block des Laufwerks für MBR). Es ist das Betriebssystem, das dann die Tabelle liest und entscheidet, in welche Blöcke Daten geschrieben werden sollen und in welche nicht. Das Betriebssystem erkennt Blöcke, die LBA verwenden, um jedem Block eine eindeutige Nummer zuzuweisen. Die Steuerung bildet dann jedoch den logischen Block auf einen tatsächlichen physikalischen Block ab, wobei das Verschleißausgleichsschema berücksichtigt wird.

Das gleiche Whitepaper bietet einen guten Vorschlag, um die Lebensdauer des Geräts zu verlängern:

Stellen Sie als Nächstes Ihr Laufwerk übermäßig bereit. Sie können die Lebensdauer erhöhen, indem Sie nur einen Teil der Gesamtkapazität des Geräts partitionieren. Wenn Sie beispielsweise ein 256-GB-Laufwerk haben, partitionieren Sie es nur auf 240 GB. Dies verlängert die Lebensdauer des Laufwerks erheblich. Eine 20% ige Überprovisionierung (Partitionierung von nur 200 GB) würde die Lebensdauer weiter verlängern. Als Faustregel gilt, dass Sie jedes Mal, wenn Sie die Überversorgung des Laufwerks verdoppeln, die Lebensdauer des Laufwerks um 1x erhöhen.

Dies deutet auch darauf hin, dass auch unpartitionierter Raum zum Ausgleich des Verschleißes verwendet wird, was den obigen Punkt weiter untermauert.

Quelle: Technische Whitepaper - SSD Endurance ( http://h20195.www2.hp.com/v2/getpdf.aspx/4AA5-7601ENW.pdf )

4
JollyMort

Datenträgersektoren waren lange Zeit 512 Byte groß, und mechanische Datenträger haben die Eigenschaft, dass die einzige Auswirkung auf die Lese-/Schreibdauer eines Sektors die Suchverzögerung ist. Daher bestand der Hauptoptimierungsschritt bei mechanischen Festplatten darin, Blöcke nacheinander zu lesen/schreiben, um Suchvorgänge zu minimieren.

Flash funktioniert ganz anders als mechanische Festplatten. Auf der unformatierten Flash-Ebene haben Sie keine Blöcke, sondern Seiten und "Löschblöcke" (zum Ausleihen aus der Linux-MTD-Terminologie). Sie können schreiben, um jeweils eine Seite zu flashen, und Sie können jeweils einen Löschblock löschen.

Eine typische Seitengröße für Flash ist 2 KByte, und eine typische Größe für Löschblöcke ist 128 KByte.

SATA-SSDs bieten jedoch eine Schnittstelle, die mit Sektorgrößen von 512 Byte für das Betriebssystem funktioniert.

Wenn es eine 1: 1-Zuordnung zwischen Seiten und Sektoren gibt, können Sie sehen, wie Sie Probleme bekommen, wenn Ihre Partitionstabelle auf einer ungeraden Seite oder einer Seite in der Mitte eines Löschblocks gestartet wird. Da Betriebssysteme das Abrufen von Daten von Laufwerken in 4-KByte-Blöcken bevorzugen, da dies mit der x86-Paging-Hardware in Einklang steht, können Sie sehen, wie ein solcher 4-KByte-Block einen Löschblock überspannen kann geringere Leistung.

Die SSD-Firmware verwaltet jedoch keine 1: 1-Zuordnung, sondern übersetzt eine physikalische Blockadresse (PBA) in eine logische Blockadresse (LBA). Das bedeutet, dass Sie nie wissen, wo in Echtzeit Sektor 5000 oder ein anderer Sektor beschrieben wird. Hinter den Kulissen tut man eine Menge, um zu versuchen, immer in vorgelöschte Löschblöcke zu schreiben. Sie können nicht genau wissen, was es ohne eine Demontage der Firmware tun soll, aber wenn die Firmware nicht vollständig überflüssig ist, versucht die Firmware dies wahrscheinlich zu umgehen.

Möglicherweise haben Sie von 4Kn-Festplatten gehört. Hierbei handelt es sich um mechanische Festplatten, die intern eine Sektorgröße von 4 KByte verwenden, den Betriebssystemen jedoch eine 512-Byte-Sektorschnittstelle bieten. Dies ist erforderlich, da die Lücken zwischen den Sektoren auf dem Platter kleiner werden müssen, um mehr Daten aufzunehmen.

Das heißt, intern liest und schreibt es immer 4K-Sektoren, verbirgt es aber vor dem Betriebssystem. Wenn Sie in diesem Fall nicht in Sektoren schreiben, die auf eine 4-KByte-Grenze fallen, wird die Geschwindigkeit beeinträchtigt, da bei jedem Lese-/Schreibvorgang zwei interne 4-KByte-Sektoren gelesen und neu geschrieben werden. Dies gilt jedoch nicht für SSDs.

Jedenfalls ist dies die einzige Situation, die mir einfällt, warum empfohlen wird, SSDs nicht zu partitionieren. Dies gilt jedoch nicht.

0
LawrenceC