Würde es die Schreibleistung verbessern, ein neu formatiertes Laufwerk mit Nullen zu füllen?

14

Ich habe ein 2-TB-Laufwerk, das zu> 99% gefüllt war. Ich habe die Partitionen mit gelöscht fidskund mit formatiert mkfs.ext4.

Soweit ich weiß, sind die tatsächlichen Daten, die sich auf dem Laufwerk befanden, noch vorhanden. Trotzdem wurde die Partitionstabelle neu zugewiesen.

Die Frage ist: Würde es die Schreibleistung für weitere Schreibaktionen verbessern, wenn die Festplatte gereinigt würde ? Mit gereinigt meine ich die Scheibe mit Nullen füllen?

Etwas wie

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496
Brettetete
quelle
8
Es hat keinen Vorteil, Nullen zu haben, da sie alles überschreiben, was zuerst da ist.
Moab,
7
Wenn es sich um eine SSD handelte, lautete die Antwort "Höllen-Nein", da mkfs.ext4 TRIM verwendet, um den Inhalt der gesamten Partition zu verwerfen. Wenn Sie also manuell Nullen darüber schreiben, wird die Leistung geringfügig beeinträchtigt .
user1686
2
@grawity Ich habe mich gefragt, ob es eine SSD gibt, die stattdessen automatisch alle Nullen in TRIM schreibt.
Kasperd
@kasperd: gute nachfrage!
Liori
Eine weitere mögliche Folgefrage: Wenn es sich bei der Festplatte um eine in einem SAN gemountete VM handelte, die eine Datenträger-Deplikation auf niedriger Ebene durchführte, könnte dies helfen (wenn die Daten auf VM-Ebene gelöscht wurden, es sei denn, das System verwendet eine VM-fähige API , es würde dafür sorgen, dass alle diese gelöschten Blöcke bleiben müssen, während das Setzen auf alle Nullen mit einer Reihe von duplizierten Blöcken enden würde, die alle auf eine Null-Sache zeigen)
Foon

Antworten:

36

Nein, es würde die Leistung nicht verbessern.

TL; DR: rotierende magnetische Festplatten funktionieren nicht so.

Erstens, wenn Sie irgendwelche gegebenen Daten zu einer Drehmagnetspeicherlaufwerk zu schreiben, werden die Daten transformieren in magnetische Domänen , die tatsächlich sehr verschieden von dem Bitmuster aussehen können Sie schreiben werden. Dies geschieht zum Teil, weil es viel einfacher ist, die Synchronisation aufrechtzuerhalten, wenn das vom Plattenteller gelesene Muster eine gewisse Variabilität aufweist und zum Beispiel eine lange Folge von "Null" - oder "Eins" -Werten die Aufrechterhaltung der Synchronisation sehr erschwert . (Haben Sie 26.393 Bits oder 26.394 Bits gelesen? Woran erkennt man die Grenze zwischen Bits?) Die Techniken für diese Transformation zwischen Computerdatenbits und speicherbaren Chunks haben sich im Laufe der Zeit weiterentwickelt. B. Modified Frequency Modulation , MMFM,Group Code Recording und die allgemeinere Technologie der lauflängenbegrenzten Codierung .

Der eigentliche Aufzeichnungsprozess, wie HAMR , PMR , Shingled und so weiter, ist insofern orthgonal, als sie die Mechanismen beschreiben, wie die magnetischen Domänen auf den physischen Medien gespeichert werden.

Zweitens, wenn Sie neue Daten in einen Sektor schreiben, werden die magnetischen Domänen der relevanten Bereiche des Plattentellers einfach auf den gewünschten Wert eingestellt. Dies geschieht unabhängig davon, wie sich die vorherige magnetische Domäne an diesem bestimmten physikalischen Ort befand. Der Plattenteller dreht sich bereits unter dem Schreibkopf. Wenn Sie zuerst den aktuellen Wert lesen und dann den neuen Wert nur dann schreiben, wenn er unterschiedlich ist, erfordert jeder Schreibvorgang zwei Umdrehungen (oder einen zusätzlichen Kopf für jeden Plattenteller), wodurch sich die Schreiblatenz verdoppelt oder die Komplexität des Laufwerks erheblich erhöht. wiederum steigende Kosten. Da der begrenzende Faktor für die sequentielle E / A-Leistung der Festplatte darin besteht, wie schnell jedes Bit unter dem Lese- / Schreibkopf durchläuft, würde dies dem Benutzer nicht einmal Vorteile bringen. (Nebenbei, Der begrenzende Faktor für die zufällige E / A-Leistung ist, wie schnell der Lese- / Schreibkopf am gewünschten Zylinder positioniert werden kann und dann der gewünschte Sektor unter dem Kopf ankommt. Der Hauptgrund, warum SSDs in zufälligen E / A-Workloads so schnell sein können, besteht darin, dass sie beide Faktoren vollständig eliminieren.

Wie durch wies darauf hin , JakeGould , ein Grund , warum möchten Sie vielleicht überschreiben Sie das Laufwerk mit einigen festen Mustern (wie alle Nullen) wäre, um sicherzustellen , dass keine Reste von zuvor gespeicherten Daten werden gestellt , entweder absichtlich oder aus Versehen. Dies hat jedoch aus den oben genannten Gründen keine Auswirkung auf die zukünftige Leistung des Laufwerks. Ein anderer Grund, der möglicherweise als "Leistungsverbesserung" bezeichnet werden könnte, wie von liori hervorgehoben , besteht darin, die Komprimierung nicht verwendeter Teile gespeicherter Disk-Images zu unterstützen, aber selbst das verbessert die Leistung des verwendeten Systems nicht.

ein CVn
quelle
3
Ein weiterer Grund für das Nullsetzen von Partitionen / Laufwerken besteht darin, dass Sie einen Raw-Speicherauszug für Partitionen / Laufwerke erstellen möchten (z. B. als Backup, Erstellen eines BS-Images für mehrere Computer, als Systemmigrationsmethode usw.). Nullen lassen sich gut komprimieren. Dies kann sich von den zuvor auf dem Laufwerk gespeicherten Inhalten unterscheiden.
Liori
@liori Guter Punkt, aber das ist kein gewöhnliches Endbenutzerszenario, und es ist ziemlich weit von dem entfernt, was das OP beschreibt.
ein Lebenslauf vom
Optische Disks sind also entweder nicht drehbar oder magnetisch?
Max Ried
4

Du sagst das:

Die Frage ist: Würde es die Schreibleistung für weitere Schreibaktionen verbessern, wenn die Festplatte gereinigt würde? Mit gereinigt meine ich die Scheibe mit Nullen füllen?

100% nein. Durch das Schreiben von Nullen auf eine Festplatte wird die Leistung nicht verbessert. Sie würden das nur tun, um Daten zu zerstören. Wenn Sie das wissen, sagen Sie Folgendes:

Soweit ich weiß, sind die tatsächlichen Daten, die sich auf dem Laufwerk befanden, noch vorhanden.

Technisch ja… Die Daten, die zuvor auf dem Laufwerk vorhanden waren, sind auf einer grundlegenden Ebene noch auf dem Laufwerk vorhanden. Das heißt, es gibt keine Form, auf die zu diesem Zeitpunkt einfach zugegriffen oder die wiederhergestellt werden kann. Es kann jedoch problematisch sein, wenn Sie sich ernsthafte Sorgen darüber machen, dass die Daten von jemandem kompromittiert werden, der sich bemüht, die Fragmente der Daten wiederherzustellen, die diese Daten enthalten bleiben übrig.

Wenn also Sicherheit und Datenschutz ein Problem darstellen, möchten Sie möglicherweise Nullen auf das Laufwerk schreiben, um sicherzustellen, dass der gesamte freie Speicherplatz wirklich gelöscht wird. Aber Sicherheit und Datenschutz sind der einzige Grund, warum Sie jemals freien Speicherplatz mit Nullen löschen würden, da so etwas die Leistung niemals verbessert.

JakeGould
quelle
Zählt das Ausführen eines Tools recovernicht als "einfach"? Es würden viele, viele Dateien auf einem vollen Laufwerk auftauchen, das gerade erst erstellt worden war mkfs.
Hobbs
0

Mein zwei Cent Geschenk für euch alle ist meine eigene Erfahrung, JA, es hilft, aber mit Vorsicht.

Ich hatte viele SSDs und aufgrund meiner eigenen Tests empfehle ich, vor dem Umschreiben der Master-Tabelle die Partitionen vollständig mit Nullen zu füllen und statt Partitionen zu löschen, die Master-Tabelle neu zu erstellen.

Später werde ich erklären, warum, aber es wäre beddˋ, die gesamte SSD zu füllen, bs = 1M zu verwenden, viel schneller als bs = 1, und den Parameter count zu vergessen, damit er bis zum Ende durchläuft (es wird der Fehler ausgegeben, wenn kein Platz mehr vorhanden ist erreichen Sie das Ende, das überprüft wird, also sorgen Sie sich nicht, um solchen Fehler zu sehen, es muss gezeigt werden); Nach vollständiger Ausfüllung können Sie gparted verwenden oder nach Bedarf eine Mastertabelle (MBR / GPT / usw.) erstellen. Dadurch wird die gesamte Festplatte "beschnitten" und anschließend Partitionen mit dem gewünschten Format usw. erstellt.

Warum mit Nullen füllen? Kurz gesagt, meine Erfahrung ist es, wenn ich einige SSDs mit Nullen fülle, bei denen das Geben von 2-24 unlesbaren Blöcken behoben wurde und keine Blöcke mehr unlesbar sind.

Wenn ich eine neue SSD erhalte, fülle ich sie vor der Verwendung vollständig mit Nullen, um sicherzustellen, dass ich nicht noch einmal die üblichen Zufallsfehler von nicht lesbaren 1-KB-Blöcken erleide.

Meine Erfahrung: Verwenden von Software zum Lesen / Testen der gesamten SSD (es zeigt an, wie viel Zeit zum Lesen der einzelnen "Sektoren" benötigt wird) Ich habe viele Paare von "512-Byte-Sektoren" (1 KB-Blöcke) erhalten, die nicht erreichbar sind, und deren Position ändert sich zufällig und die Anzahl der Fehler variiert von 2 bis 24 usw .; nach vollständiger Füllung mit Nullen und Neuerstellung der Mastertabelle (die das Trimmen unterbricht) keine unlesbaren Sektoren mehr.

Mein Crashtest: Instesd mit Nullen zu füllen, um solche Fehler zu beheben, habe ich eine SSD verwendet, nach ein paar Stunden und mit nur weniger als einem Terabyte geschrieben (120GiB SSD) starb es kläglich, es erlaubt keine Zugriff darauf mehr, Motherboard-BIOS kann es nicht sehen, USB-Gehäuse friert beim Zugriff ein, so dass weder Windows es sehen, noch Linix fdisk es sehen.

Es war ein 'Die'-Test mit mehreren SSDs, die ich zur gleichen Zeit gekauft habe, identische ... alles, was ich nicht auf Null gesetzt habe, ist gestorben, Rest hat eine Menge Blöcke neu zugeordnet, aber ohne irgendwelche unlesbaren Fehler mehr.

Mein Fazit ist natürlich, dass alle SSDs nicht zuverlässig sind, unabhängig von Marke und Kapazität.

Meiner Erfahrung nach ist das erste, was mit ihnen zu tun hat, dass sie mindestens einmal vollständig gefüllt werden, besser mit Nullen als mit Zufällen (das ist schneller).

Darüber hinaus führen die meisten SSDs interne Anpassungen durch, wenn sie mit Nullen geschrieben werden (Garbe-Recollection-Algorithmen usw.).

Wenn Sie sie zum ersten Mal füllen, werden alle Blöcke, die Schreibfehler verursachen, neu zugeordnet. Es ist viel besser, dass so etwas ohne lebenswichtige Daten passiert. Wenn geschriebene Nullen verloren gingen (alle waren Nullen), ist dies nicht relevant, aber wenn Daten für das Betriebssystem "lebenswichtig" sind, ist dies sehr schlecht.

Die meisten SSD-Neuzuordnungen tun dies, verlieren jedoch die Daten auf dem Block, die zu einem Schreibfehler geführt haben. Nur "Unternehmen" (sie kosten> 10 € pro GiB) versucht den Schreibvorgang nach der Neuzuordnung erneut. Einige SSDs verlieren auch alle anderen "Sektoren" in einem solchen fehlgeschlagenen Block (z. B. "Verwerfen").

Probieren Sie es am besten zuerst aus, und überprüfen Sie nach dem vollständigen Ausfüllen die SMART-Daten, um festzustellen, wie viel Neuzuweisungen noch möglich sind.

Es ist nicht so wichtig, wie viel Neuzuweisungen durchgeführt wurden. Die meisten SSDs stammten aus Manufakturen mit bereits neu zugewiesenen Blöcken. Eine mit Null ist weniger als 1%, daher ist das Verhältnis Neuzuweisung zu zukünftigen möglichen Neuzuweisungen wichtig.

Dies ist meine Erfahrung, nachdem Hunderte von SSDs innerhalb von fünf Jahren verstorben sind. Einige starben in der ersten Nutzungsstunde, andere in einer Woche, andere in einem Monat. Aber alles, was ich getan hatte, war 2 bis 3 Jahre lang gültig, mit einem 13GiB pro Tag, 3 * 365 * 13 GiB = 13,9TiB, viel weniger als manufatures sagen (> 100TiB).

Aber Geschwindigkeit ist wichtig, vor allem dann, wenn unter Windows (unter Linux liefert ein gutes 2xHDD-LVM2-Striping die gleichen Startzeiten, die aber in> 25 Jahren nicht ausfallen), SSD mit einem Preis von 0,21 € pro Gigabyte (120GiB = 25 €) verwendet wird es lohnt sich (für Windows), unter ihnen muct nach 2 oder 3 Jahren geändert werden; Ich hoffe, dass Technologie die Zuverlässigkeit verbessert.

Für Linux möchte ich keine SSD mehr, bis sie zuverlässiger ist, aber für Windows (Vista, 7 und 10) ist die Systempartition ein Muss (Startzeiten in einigen Fällen zehnmal niedriger, mit Windows Vista statt> 30 Minuten) bootet auf meinem alten Laptop> 4min).

Ja, nach meiner Erfahrung ist eine vollständige Ausfüllung mit Nullen ein Muss.

Aber nur, wenn Sie die SSD erhalten und bevor Sie sie für irgendetwas verwenden.

Tipp: Wenn SSD die Garbage Collection nicht richtig ausführt und das Betriebssystem nicht anweist, alle zu entfernen, füllen Sie die SSD am besten vollständig mit Nullen. Das Schreiben von Nullen löscht auch die Elektronik. Deshalb hilft es, fehlerhafte Leseblöcke wiederherzustellen.

Und jedes Mal, wenn Sie Daten darauf ändern, versuchen Sie, einen Klon durchzuführen, informiert die SSD, dass der Schreibvorgang in Ordnung war, auch auf ungelesenen Sektoren (diese können in Ordnung geschrieben, aber nicht gelesen werden) Sie alle setzen voraus, dass Daten gelesen werden können, wenn wtite in Ordnung ist. Verwechseln Sie lesbar nicht mit anderen Daten als den geschriebenen.

Das ist meine Erfahrung mit SSDs und HDDs. Für Windows-Boot und Apps verwende ich SSD, aber immer mit einem Klon auf normalen Festplatten, da SSD in weniger als 3 Jahren ausfällt. Unter Linux verwende ich jedoch 2x oder 3x gute 2,5-Zoll-Festplatten , aber viel länger (> 25 Jahre).

Ich bezahle nicht mehr als 1000 € für eine 100GiB Enterprise-SSD, die 10 Jahre lang gut funktioniert. Ich ziehe es vor, alle 2 oder 3 Jahre 25 € für 130GiB zu zahlen. Preis zählt 100 € pro Jahr (Unternehmen) gegenüber 10 € pro Jahr (Yucon, Samsung usw.), rechnen Sie einfach nach.

Claudio
quelle
Das Erzwingen des Überschreibens fehlerhafter Sektoren ist in der Tat eine sehr zuverlässige Möglichkeit, diese zu "reparieren", solange noch reservierte Sektoren verfügbar sind.
Konfetti