Ich habe beschlossen, dass einige Hintergrundinformationen hilfreich sein könnten, um diese Antwort klar zu machen, aber wie Sie sehen können, habe ich ein bisschen OCD, so dass Sie vielleicht bis zum Ende überspringen wollen und dann zurück gehen, wenn nötig. Ich weiß zwar ein bisschen was, aber ich bin kein Experte für S.S.D.s. Wenn also jemand einen Fehler sieht, EDITIEREN Sie ihn :).
Hintergrundinformationen:
Was ist ein S.S.D.?:
Ein S.S.D. oder Solid State Drive ist ein Speichergerät ohne bewegliche Teile. Der Begriff S.S.D. bezieht sich oft auf Nand-Flash-basierte Solid-State-Laufwerke, die als Festplattenalternative dienen sollen, aber in Wirklichkeit sind sie nur eine Form von S.S.D., und nicht einmal die beliebteste. Die populärste Art von S.S.D. sind Nand-Flash-basierte Wechselmedien wie USB-Sticks (Flash-Laufwerke) und Speicherkarten, obwohl sie selten als S.S.D. bezeichnet werden. S.S.D.s können auch ram-basiert sein, aber die meisten ram-Laufwerke sind software-generiert im Gegensatz zu physischer hardware.
Warum gibt es Nand-Flash-S.S.D.s, die als Festplattenalternative dienen sollen:
Um ein Betriebssystem und seine Software auszuführen, wird ein schnelles Speichermedium benötigt. An dieser Stelle kommt Ram ins Spiel, aber in der Vergangenheit war Ram teuer und die CPUs konnten keine großen Mengen ansprechen. Wenn Sie ein Betriebssystem oder ein Programm ausführen, werden die aktuell benötigten Teile der Daten in den Ram kopiert, weil das Speichermedium nicht schnell genug ist. Es entsteht ein Engpass, weil Sie darauf warten müssen, dass die Daten vom langsamen Speichergerät in den Ram kopiert werden. Zwar erreichen nicht alle Nand-Flash-SSDs eine bessere Leistung als die herkömmliche Festplatte, aber die, die es tun, helfen dabei, den Engpass zu reduzieren, indem sie schnellere Zugriffszeiten, Lese- und Schreibgeschwindigkeiten bieten.
Was ist Nand-Flash?:
Flash-Speicher ist ein Speichermedium, das Elektrizität und nicht Magnetismus zum Speichern von Daten verwendet. Nand-Flash ist ein Flash-Speicher, der ein NAND-Gateway verwendet. Im Gegensatz zu A nor-flash, das einen zufälligen Zugriff hat, wird bei Nand-flash sequentiell zugegriffen.
Wie speichern Nand-Flash-Speicher Daten?:
Nand-Flash-Speicher ist aus Blöcken aufgebaut, diese Blöcke sind in Zellen aufgeteilt, die Zellen enthalten Seiten. Im Gegensatz zu einer Festplatte, die Magnetismus zum Speichern von Daten nutzt, verwenden Flash-Medien Elektrizität, daher können Daten nicht überschrieben werden; Daten müssen gelöscht werden, um den Platz wieder zu nutzen. Das Gerät kann keine einzelnen Seiten löschen; die Löschung muss auf Blockebene erfolgen. Da Daten nicht in einen Block geschrieben werden können, der bereits belegt ist (auch wenn nicht alle Seiten darin belegt sind), muss zuerst der gesamte Block gelöscht werden, und dann können in den nun leeren Block Daten auf seine Seiten geschrieben werden. Das Problem dabei ist, dass alle Daten, die sich bereits auf diesen Seiten befinden, verloren gehen würden, auch die Daten, die Sie nicht verwerfen wollen! Um dies zu verhindern, müssen die vorhandenen Daten vor dem Löschen des Blocks an eine andere Stelle kopiert werden. Dieser Kopiervorgang wird nicht vom Betriebssystem des Computers durchgeführt, sondern auf Geräteebene durch eine Funktion, die als Garbage Collection bekannt ist.
Auf Festplatten wird eine Magnetplatte zum Speichern von Daten verwendet. Ähnlich wie Vinyl-Schallplatten hat die Platte Spuren, und diese Spuren sind in Abschnitte unterteilt, die Sektoren genannt werden. Ein Sektor kann eine bestimmte Menge an Daten aufnehmen (typischerweise 512 Byte, aber einige neuere sind 4 KB groß). Wenn Sie ein Dateisystem anwenden, werden die Sektoren in Clustern gruppiert (basierend auf einer von Ihnen festgelegten Größe, die Allokationsgröße oder Clustergröße genannt wird), und dann werden die Dateien über die Cluster geschrieben. Es ist auch möglich, einen Sektor so aufzuteilen, dass die Cluster kleiner als Ihre Sektorgröße sind. Der ungenutzte Platz in einem Cluster, nachdem eine Datei über einen Cluster (oder mehrere) geschrieben wurde, ist nicht nutzbar, die nächste Datei beginnt in einem neuen Cluster. Um viel unbrauchbaren Speicherplatz zu vermeiden, werden üblicherweise kleinere Clustergrößen verwendet, aber dies kann die Leistung beim Schreiben großer Dateien verringern. Nand-Flash-SSDs haben keine magnetische Platte, sie verwenden Strom, der durch Speicherblöcke fließt. Ein Block besteht aus Zellen, die Seiten enthalten. Seiten haben eine Kapazität von X (normalerweise 4 KB), und somit bestimmt die Anzahl der Seiten die Kapazität eines Blocks (normalerweise 512 KB). Auf SSDs entspricht eine Seite einem Sektor auf einer Festplatte, da beide die kleinste Unterteilung des Speichers darstellen.
Was ist Wear Leveling?:
Nand-Flash-Speicherblöcke können eine begrenzte Anzahl von Malen beschrieben und gelöscht werden (dies wird als Lebenszyklus bezeichnet). Um zu verhindern, dass das Laufwerk an Kapazitätsverlusten (tote Blöcke) leidet, ist es sinnvoll, die Blöcke möglichst gleichmäßig abzunutzen. Der begrenzte Lebenszyklus ist auch der Hauptgrund, warum viele Leute vorschlagen, keine Auslagerungsdatei oder Swap-Partition in Ihrem Betriebssystem zu haben, wenn Sie ein Nand-Flash-basiertes S.S.D. verwenden (obwohl die schnellen Datenübertragungsgeschwindigkeiten vom Gerät zum Ram auch ein wichtiger Faktor für diesen Vorschlag sind).
Was ist Over Provisioning?:
Over Provisioning definiert den Unterschied zwischen der Menge an freiem Speicherplatz, die vorhanden ist, verglichen mit der Menge, die scheinbar vorhanden ist. Nand-Flash-basierte Speichergeräte behaupten, dass sie kleiner als sie sind, so dass garantiert leere Blöcke für die Müllentsorgung zur Verfügung stehen. Es gibt eine zweite Art der Überprovisionierung, die dynamische Überprovisionierung, die sich einfach auf bekannten freien Speicherplatz innerhalb des angezeigten freien Speicherplatzes bezieht. Es gibt zwei Arten von dynamischem Over-Provisioning: auf der Ebene des Betriebssystems und auf der Ebene des Laufwerks-Controllers. Auf der Betriebssystemebene kann Trim verwendet werden, um Blöcke freizugeben, auf die dann sofort geschrieben werden kann. Auf der Controller-Ebene kann nicht zugewiesener Laufwerksspeicher (nicht partitioniert, kein Dateisystem) verwendet werden. Mehr freie Blöcke tragen dazu bei, dass das Laufwerk mit seiner besten Leistung läuft, weil es sofort schreiben kann. Es erhöht auch die Wahrscheinlichkeit, dass die Blöcke sequentiell angeordnet sind, was die Zugriffszeiten reduziert, da Nand-Flash-Laufwerke sequentiellen Zugriff zum Lesen und Schreiben von Daten verwenden.
Was ist Schreibverstärkung?:
Da bei Nand-Flash-Medien ein Block gelöscht werden muss, bevor er beschrieben werden kann, müssen alle Daten innerhalb des Blocks, die nicht gelöscht werden, durch Garbage Disposal in einen neuen Block kopiert werden. Diese zusätzlichen Schreibvorgänge werden als Schreibverstärkung bezeichnet.
Was ist Trim?:
Betriebssysteme sind mit traditionellen Festplatten im Hinterkopf gebaut. Denken Sie daran, dass eine traditionelle Festplatte Daten direkt überschreiben kann. Wenn Sie eine Datei löschen, kennzeichnet das Betriebssystem sie als gelöscht (Überschreiben möglich), aber die Daten sind noch da, bis ein Schreibvorgang darauf erfolgt. Auf Nand-Flash-basierten S.S.D.s ist dies ein Problem, da die Daten erst gelöscht werden müssen. Das Löschen erfolgt auf Blockebene, so dass es zusätzliche Daten geben kann, die nicht gelöscht werden. Die Müllentsorgung kopiert alle Daten, die nicht zum Löschen anstehen, in leere Blöcke, und dann können die betreffenden Blöcke gelöscht werden. Das alles kostet Zeit und verursacht unnötige Schreibvorgänge (Write Amplification)! Um dies zu umgehen, wurde eine Funktion namens Trim entwickelt. Trim gibt dem Betriebssystem die Möglichkeit, dem S.S.D. mitzuteilen, Blöcke mit Seiten zu löschen, die Daten enthalten, die das Betriebssystem als gelöscht markiert hat, während Zeiträumen, in denen Sie dort keine Schreiboperationen anfordern. Die Garbage Collection tut ihr Übriges, und als Ergebnis werden Blöcke freigegeben, so dass Schreibvorgänge hoffentlich in Blöcken stattfinden können, die nicht zuerst gelöscht werden müssen, was den Prozess schneller macht und hilft, die Schreibverstärkung auf ein Minimum zu reduzieren. Dies geschieht nicht auf Dateibasis; Trim verwendet die logische Blockadressierung. Die L.B.A. gibt an, welche Sektoren (Seiten) gelöscht werden sollen, und das Löschen erfolgt auf Blockebene.
Die Antwort auf Ihre Frage “Nachteile der Partitionierung einer SSD?”:
Ram-basierte S.S.D.s:
Es gibt absolut keinen Nachteil, da sie Random Access sind!
Nand-Flash-basierte S.S.D.s:
Die einzigen Nachteile, die mir in den Sinn kommen, wären:
beim Wear-Leveling steht nicht so viel freier Speicherplatz zur Verfügung, weil die Schreiboperationen über einen kleineren Bereich verteilt werden, so dass man diesen Teil des Laufwerks schneller abnutzen “könnte”, aber nicht unbedingt abnutzen wird, als wenn das gesamte Laufwerk eine einzelne Partition wäre, es sei denn, man führt eine entsprechende Abnutzung auf den zusätzlichen Partitionen durch (z.B.: ein Dual-Boot).
Wie bei Festplatten erfolgt der Zugriff auf Nand-Flash-SSDs sequentiell, so dass alle Daten, die Sie von den zusätzlichen Partitionen schreiben/lesen, weiter entfernt sind, als es bei einer einzelnen Partition der Fall sein “könnte”, da die Leute normalerweise freien Platz in ihren Partitionen lassen. Dies erhöht die Zugriffszeiten für die Daten, die auf den zusätzlichen Partitionen gespeichert sind.
Weniger Gesamtspeicherplatz erhöht die Wahrscheinlichkeit, dass fragmentierte Dateien geschrieben werden, und obwohl die Auswirkung auf die Leistung gering ist, sollten Sie bedenken, dass es generell eine schlechte Idee ist, ein Nand-Flash-Laufwerk zu defragementieren, da es das Laufwerk abnutzt. Natürlich hängt es davon ab, welches Dateisystem Sie verwenden, einige führen zu einer extrem geringen Fragmentierung, da sie darauf ausgelegt sind, Dateien möglichst als Ganzes zu schreiben, anstatt sie überall zu verteilen, um schnellere Schreibgeschwindigkeiten zu erreichen.
Ich würde sagen, dass es in Ordnung ist, mehrere Partitionen zu haben, aber der Verschleißausgleich könnte ein Problem sein, wenn Sie einige Partitionen haben, die viel Schreibaktivität bekommen, und andere, die sehr wenig bekommen. Wenn Sie den Speicherplatz, den Sie nicht nutzen wollen, nicht partitionieren und ihn stattdessen für dynamisches Over-Provisioning belassen, können Sie einen Leistungsschub erhalten, weil es einfacher ist, Blöcke freizugeben und sequentielle Daten zu schreiben. Es gibt jedoch keine Garantie dafür, dass Over-Provisioning-Speicherplatz benötigt wird, was uns zu Punkt 1 über Verschleißausgleich zurückbringt.
Einige andere Leute in diesem Thread haben die Diskussion aufgeworfen, wie sich die Partitionierung auf den Beitrag von TRIM zum dynamischen Over-Provisioning auswirken wird. Nach meinem Verständnis wird TRIM verwendet, um Sektoren (Seiten) zu markieren, deren Daten zum Löschen vorgemerkt sind, so daß die Müllabfuhr diese Blöcke frei löschen kann. Dieser freie Speicherplatz wirkt als dynamisches Over-Provisioning nur innerhalb DIESER Partition, da diese Sektoren Teil von Clustern sind die vom Dateisystem dieser Partition verwendet wird; andere Partitionen haben ihre eigenen Dateisysteme. Es kann jedoch sein, dass ich hier völlig falsch liege, denn die ganze Idee des Over-Provisioning ist mir etwas unklar, da Daten an Stellen geschrieben werden, die nicht einmal ein Dateisystem haben oder in der Laufwerkskapazität erscheinen. Daher frage ich mich, ob Over-Provisioning-Speicherplatz vielleicht nur temporär verwendet wird, bevor eine endgültige optomierte Schreiboperation auf Blöcke innerhalb eines Dateisystems erfolgt? Natürlich wären Trims Beiträge zum dynamischen Overprovisioning innerhalb des Dateisystems nicht temporär, da sie direkt beschrieben werden könnten, da sie sich bereits im nutzbaren Speicher befinden. Das ist zumindest meine Theorie. Vielleicht ist mein Verständnis von Dateisystemen falsch? Ich habe keine Ressourcen finden können, die dies im Detail erläutern.