Nullsetzen von SSD-Laufwerken

18

Wir hosten VPSes für Kunden. Jeder Kunden-VPS erhält eine LVM-LV auf einer Standard-Spindel-Festplatte. Wenn der Kunde abreist, setzen wir diese LV auf Null, um sicherzustellen, dass seine Daten nicht an andere Kunden weitergegeben werden.

Wir denken darüber nach, SSDs für unser Hosting-Geschäft einzusetzen. Wenn SSDs über die "Wear Leveling" -Technologie verfügen, macht das Nullsetzen dann sinnlos? Ist diese SSD-Idee deshalb nicht umsetzbar, weil wir nicht zulassen können, dass Kundendaten an einen anderen Kunden weitergegeben werden?

jtnire
quelle

Antworten:

23

Angenommen, Sie möchten verhindern, dass der nächste Kunde die Festplatte liest, um die Daten des alten Kunden zu sehen. Dann funktioniert das Schreiben aller Nullen tatsächlich noch. Das Schreiben von Nullen in Sektor 'n' bedeutet, dass beim Lesen von Sektor 'n' alle Nullen zurückgegeben werden. Tatsache ist, dass sich die zugrunde liegenden tatsächlichen Daten möglicherweise noch auf den Flash-Chips befinden. Da Sie jedoch keinen normalen Lesevorgang durchführen können, ist dies für Ihre Situation kein Problem.

Es ist ein Problem, wenn jemand die Festplatte physisch ergreifen und auseinandernehmen kann (weil er dann die Flash-Chips direkt lesen kann), aber wenn er nur über den SATA-Bus Zugriff hat, dann alle Nullen in das Ganze schreiben kann Festplatte reicht völlig aus.

Michael Kohne
quelle
1
Genau die Antwort, die ich gesucht habe, und als ich darüber nachdachte, kam ich zu dem gleichen Schluss :)
jtnire
2
Ich würde mir vorstellen (weiß es aber nicht genau und es würde sicherlich vom verwendeten Controller-Chipsatz in der SSD abhängen), dass das Schreiben eines Sektors von Nullen auf eine SSD nicht einmal die tatsächlichen Flash-Chips treffen würde. Der Controller sollte bemerken, dass es sich nur um Nullen handelt, und diesen Sektor einfach als "auf Null gesetzt" markieren (oder einfach auf einen Sektor zeigen, der alle Nullen enthält). Das Schreiben eines Sektors mit Nullen ist eine relativ häufige Aufgabe, und spezielles Gehäuse wäre eine kostengünstige und einfache Möglichkeit, den Verschleiß des Blitzes zu verringern. Ich wäre also schockiert, wenn Intel und Sandforce dies nicht tun würden.
kindall
20

Füllen Sie niemals eine SSD auf Null. Dies wird zumindest einen Teil der Schreiblebensdauer der SSD für wenig oder gar keinen Nutzen verschleißen. In einem extremen Worst-Case-Szenario können Sie den Controller der SSD in einen (vorübergehend) reduzierten Leistungszustand versetzen .

Aus dieser Quelle :

Das wiederholte Überschreiben der gesamten Festplatte mit mehreren Wiederholungen kann erfolgreich Daten zerstören. Aufgrund des Firmware Translation Layer (FTL) ist dies jedoch erheblich komplizierter und zeitaufwendiger als bei herkömmlichen Festplatten. Aufgrund ihrer Ergebnisse ist dies eine unattraktive Option

Ihre beste Option, sicheres Löschen durch vollständige Festplattenverschlüsselung:

Einige moderne SSDs können die vollständige Festplattenverschlüsselung verwenden - Beispiele sind die neuen 320-Laufwerke von Intel und einige Laufwerke der Sandforce 2200-Serie. Diese Laufwerke können auf einfache und schnelle Weise sicher gelöscht werden, ohne dass ein Verschleiß des Laufwerks auftritt. Das Laufwerk verwendet AES-Verschlüsselung für alle geschriebenen Daten. Ein sicheres Löschen bedeutet also, den alten AES-Schlüssel zu löschen und durch einen neuen zu ersetzen. Dadurch werden alle "alten" Daten auf dem Laufwerk unwiederbringlich wiederhergestellt.

Das sichere Löschen von Intel ist jedoch nicht einfach zu automatisieren. AFAIK muss über die Windows-GUI-App von Intel ausgeführt werden. Sie kann nur auf einem leeren Nicht-Boot-Laufwerk usw. ausgeführt werden. Weitere Informationen finden Sie in den Intel-Dokumenten ab Seite 21.

Ihre andere Option, ATA Secure Erase:

Eine weitere Option ist die Ausgabe eines ATA Secure Erase-Befehls über fx HDPARM unter Linux. Dies wird viel einfacher per Scripting zu automatisieren sein.

Vorausgesetzt, das Laufwerk implementiert ATA Secure Erase auf eine "gute" Weise, sollte erwartet werden, dass es mindestens die "Flash Translation Layer" (FTL) löscht. Die FTL-Tabelle enthält die Zuordnung zwischen den logischen Sektoren (die das Betriebssystem "sieht") und den physischen Seiten des NVRAM auf dem Laufwerk. Wenn diese Zuordnungstabelle zerstört ist, sollte es sehr schwierig - aber wahrscheinlich nicht unmöglich - sein, Daten vom Laufwerk wiederherzustellen.

Es sind mir jedoch keine Studien bekannt, die gezeigt haben, dass ATA Secure Erase auf allen Laufwerken des Herstellers konsistent und gut implementiert ist. Daher zögere ich zu sagen, dass es immer funktionieren wird - Sie sollten die technische Dokumentation des Herstellers lesen.

Für eine einzelne Partition:

Während ich die Kommentare zu anderen Antworten lese, scheint OP nur einzelne Partitionen sicher löschen zu wollen. Eine gute Möglichkeit wäre, nur verschlüsselte Volumes zu erstellen , beispielsweise mit LUKS oder TrueCrypt . Auf diese Weise können Sie das Volume sicher löschen, indem Sie den Verschlüsselungsschlüssel verwerfen, ähnlich wie dies bei der Festplattenverschlüsselung auf dem Laufwerk der Fall ist.

Fazit:

Wenn Sie wirklich, wirklich wissen möchten, lesen Sie das im Sophos Blog verlinkte Dokument und die technischen Hinweise des Laufwerkherstellers zum sicheren Löschen. Wenn Sie jedoch sicher löschen möchten, ist eine SSD mit vollständiger Festplattenverschlüsselung und sicherem Löschen und Ersetzen der Verschlüsselungsschlüssel wahrscheinlich die beste Wahl. Verwenden Sie alternativ die Verschlüsselung auf Betriebssystemebene und werfen Sie den Schlüssel weg, wenn die Daten sicher gelöscht werden sollen.

Jesper M
quelle
1
Vorsicht ist gut, aber ich bin mir nicht sicher, ob das Zitieren eines 2 Jahre alten Hinweises auf einen Controller-Fehler, der nur bei stark künstlichen Workloads in einer bestimmten SSD aufgetaucht ist, die seit langem behoben wurde, viel Gewicht erhalten sollte.
Daniel Lawson
1
@ Daniel Lawson: Fair point. :-) Ich habe diesen Abschnitt umformuliert und ihn in einen vorübergehenden Leistungsabfall geändert - und den Link zu einem Test des M4 / C400-Laufwerks von Crucial geändert (ein Laufwerk, das derzeit ausgeliefert wird), das nach umfangreichen Schreibvorgängen erhebliche Verlangsamungen aufweist.
Jesper M
6

Wear Leveling hat überhaupt nichts mit dem Ausgleichen von Daten zu tun.

Sie setzen Daten auf Null, um zu verhindern, dass andere Personen / Anwendungen diese Daten lesen. SSDs 'tragen' ihre Daten, um sicherzustellen, dass sie aufgrund des 'Schadens', den das Beschreiben von SSDs mit sich bringt, länger verwendbar sind. Auch Festplatten tun dies normalerweise, wenn sie nicht ausgelastet sind. In Serversituationen sind Ruhezeiten nicht immer verfügbar, sodass diese Arbeit häufig nicht erledigt wird.

Berechnen Sie Ihren Kunden ihre IO-Operationen? Wenn nicht, was hindert sie daran, ihren Teil einer SSD in Stunden / Tagen zu töten, indem sie einfach ständig schreiben? SSDs sind viel einfacher zu töten, als die meisten Leute denken würden , besonders in schreiblastigen Umgebungen.

Chopper3
quelle
Ich habe mich mit dem
Problem befasst
1
if (time < 9am) chriss_try_again()
Chris S
haha - mach dir keine Sorgen Alter :)
Chopper3
Während dies in Bezug auf die Daten wahr ist, trifft dies in Bezug auf das Töten weniger zu. "Enterprise-Flash-Laufwerke" haben eine bessere Lebensdauer und Größe als Consumer-SSDs, aber genau wie Enterprise-HDDs zahlen Sie die Prämie für die Leistung. Laut seagate hat ihre "Pulsar" -ESD eine Lebensdauer von 5 Jahren, was ungefähr 6 Petabyte an Schreibvorgängen entspricht. anandtech.com/show/2739/2 - Auf Pulsar Drive virtualgeek.typepad.com/virtual_geek/2009/02/… - Auf EFDs
Daniel B.
3
Ich kenne Daniel, ich kaufe viele Enterprise-SSDs, die ich in eine Umgebung mit über 99% Lesezugriff gesteckt habe, aber als wir sie getestet haben, fanden wir es immer noch überraschend einfach, sie zu "töten" Die Protokolldiskette für eine Oracle 10-Box war ziemlich ausgelastet, und innerhalb von 4 Wochen begannen die Probleme zu laufen. Nun, das war vor ca. 10 Monaten, also war es nicht HPs überarbeitete Version dieses Pulsar-Laufwerks. 6PB entspricht ~ 38MB / s über 5 Jahre oder ~ 180MB / s über ein Jahr - Sie könnten also keinen Pulsar verwenden, um einen einzelnen Kanal von HD-Videos aufzunehmen, ohne dass dieser unter einem Jahr einbricht.
Chopper3
3

Es lohnt sich also Leseartikel wie diese . Wenn jemand physischen Zugriff auf die Disc hat, ist das Abrufen von Informationen einfacher. Haben Sie darüber nachgedacht, die Daten auf der SSD zu verschlüsseln, und müssen Sie dann nur den privaten Schlüssel sicher vergessen, was ein einfacheres Problem sein sollte. Ich kann sehen, dass SSD wegen der viel besseren Direktzugriffsleistung ein großer Gewinn für vps ist.

James
quelle
2

Sie möchten auf keinen Fall herkömmliche Methoden zum Löschen von SSDs verwenden, z. B. ddDaten auf Null setzen oder andere Methoden, mit denen zufällige Daten auf die Festplatte geschrieben werden. Diese Methoden eignen sich besser für platterbasierte Festplatten. Es löscht effektiv die SSD, beansprucht aber auch unnötig viele der eingeschränkten Schreibvorgänge der SSD, wodurch die erwartete Lebensdauer der SSD verkürzt wird. Das würde schnell teuer werden. Es kann auch die Leistung der SSD im Laufe der Zeit verringern.

SSDs haben unterschiedliche Methoden zum sicheren Löschen. Ich werde sagen, dass es sehr umständlich zu sein scheint, weil Sie normalerweise einen bestimmten Typ von SATA-Controller benötigen, der IDE-Emulationen ausführen kann, und das Verfahren kann kompliziert sein. Einige Hersteller bieten Tools zum sicheren Löschen ihrer eigenen SSDs an. Sie können dies jedoch auch mit hdparm unter Linux tun: https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase . Sie werden jedoch in diesen Anweisungen feststellen, dass Sie sicherstellen müssen, dass das Laufwerk nicht "eingefroren" ist, bevor Sie fortfahren können. Dies ist einer der schwierigeren Schritte, da ein Motherboard und ein SATA-Controller gesucht werden müssen, mit denen Sie das Laufwerk beim Systemstart "wieder einfrieren" können. In der Regel muss das Laufwerk vom SATA-Kabel getrennt und dann wieder angeschlossen werden.

Wie auch immer, meine Empfehlung ist es, Ihre Recherche durchzuführen und eine SSD auszuwählen, die mit einem sicheren Löschdienstprogramm geliefert wird, das auf einem für Sie geeigneten System verwendet werden kann.

churnd
quelle
Wenn Sie dd verwenden, um die Festplatte auf Null zu setzen, werden die Schreib- / Löschzyklen nur dann ausgeführt, wenn Sie eine entsprechend große Blockgröße und nicht die Standardgröße von 512 Byte verwenden. Es wird ungefähr 1 verwenden. Ich sage ungefähr, weil ich zugebe, dass Sie, wenn Ihre Dateisystemausrichtung falsch ist, in einigen Fällen zweimal auf denselben Flash-Block schreiben können. Die Verwendung dd bs=1Mführt zu minimalem Verschleiß.
Daniel Lawson
2

Obwohl eine Antwort bereits akzeptiert ist, denke ich, dass der Befehl blkdiscard /dev/sdXhier noch erwähnenswert ist.

Laut Arch Wiki: SSD löscht der blkdiscardBefehl alle Blöcke und alle Daten gehen verloren. Es wird empfohlen, vor "Sie möchten Ihre SSD verkaufen" zu verwenden.

Ich bin nicht mit der Funktionsweise von TRIM vertraut, daher weiß ich nicht, ob eine Garantie dafür besteht, dass die Daten gelöscht werden. Aber ich denke es ist besser als nichts zu tun.

Übrigens, ich fürchte, dieser Befehl funktioniert nur auf einem ganzen Gerät, nicht auf einer einzelnen Partition.

Hoffe das hilft. :)

mksegv
quelle
blkdiscardscheint nicht in allen Fällen sicher zu sein, da es TRIMsich nur um eine Anfrage handelt und nicht alle SSD-Controller dies honorieren. Hier und hier können Sie mehr darüber lesen . Wie dort erklärt, verwaltet der Linux-Kernel eine Whitelist, von der bekannt ist, dass Geräte TRIM ehren.
nh2
Wenn also hdparm -I /dev/theSSDenthält Deterministic read ZEROs after TRIM, blkdiscardsollten schnell und garantiert Nullen nachgelesen werden. Ansonsten scheint ein sicheres Löschen die bessere Lösung zu sein. Angesichts der Frage nach der Kundensicherheit ist Secure Erase möglicherweise die bessere Lösung, da es für solche Anwendungsfälle konzipiert zu sein scheint.
nh2
1

Die beste Methode zum Löschen von Daten aus einem Image einer virtuellen Maschine ist die Verwendung der TRIM-Funktion. Viele neuere Betriebssysteme unterstützen dies. Fast alle aktuellen SSDs unterstützen dies ebenfalls.

Und was diese Option noch besser macht, ist, dass m jedes SAN diese Funktion auch unter dem SCSI-Namen UNMAP unterstützt . Dies ist ein großartiger Befehl für SANs, die Sparse Provisioning implementieren. Dies ist eine großartige Funktion für virtuelle Maschinen, insbesondere in Kombination mit der Block-Deduplizierung.

Wenn der Befehl TRIM an eine SSD übergeben wird, markiert die Firmware diese Blöcke sofort für die erneute Verwendung. Einige SSDs geben für TRIM-Blöcke immer Nullen zurück . Andere Laufwerke geben implementierungsdefinierte (dh zufällige) Daten zurück.

Auf Betriebssystemen, die TRIM unterstützen, markiert ein einfaches Löschen der Datei die Blöcke für TRIM. Die eigentliche TRIM-Operation kann sofort ausgeführt oder für eine spätere Ausführung gestapelt werden. Manchmal gibt es Tools, die das TRIMMEN einer Datei erzwingen oder eine Partition nach allen nicht verwendeten Blöcken durchsuchen.

Die TRIM-Leistung unter Linux ist immer noch lückenhaft. Wenn Sie diese verwenden, sollten Sie Ihre Optionen untersuchen. Unter Windows scheint es ziemlich solide zu sein.

Zan Lynx
quelle
Sorry, aber das macht überhaupt keinen Sinn. TRIM hat, soweit mir bekannt ist, nichts mit Thin Provisioning zu tun. Es weist eine SSD lediglich an, die vom Dateisystem nicht gelöschten Wear-Leveling-Sektoren nicht zu belästigen Null aus Blöcken.
Chopper3
@ Chopper3: Kannst du nicht sehen, dass ATA TRIM und SCSI UNMAP der gleiche Befehl sind? UNMAP wird definitiv für Thin Provisioning verwendet. TRIM blockiert mindestens einige SSD-Laufwerke auf Null. Nach TRIM sind die Daten weg : Es gibt keine unterstützte Methode, um sie abzurufen. Das Laufwerk kann auch Nullen zurückgeben, und einige tun dies.
Zan Lynx
"Das Laufwerk kann auch Nullen zurückgeben" und "Die Daten können nicht wiederhergestellt werden" sind zwei sehr unterschiedliche Dinge. In jedem Fall möchte der Benutzer die SSD überhaupt nicht löschen, er möchte nur nicht, dass der nächste Kunde die Daten des alten Kunden erhält, was auch nicht dasselbe ist.
Chris S
0

Sie benötigen ein "SSD Secure Erase Utility". Wenn Sie so etwas verwenden, kann ddder Abnutzungsgrad ansteigen und Sie haben Reservesektoren, die noch alte Kundendaten enthalten. Ein Dienstprogramm zum sicheren Löschen löscht alle Sektoren auf dem Gerät (nicht nur die, die dem Betriebssystem als Festplatte angezeigt werden).

Einige dieser Dienstprogramme sind herstellerspezifisch. Fragen Sie den Hersteller Ihrer Laufwerke nach dessen Empfehlung. Sie werden es besser wissen als wir.

Chris S
quelle
Es tut mir leid, dass ich nicht danach suche, die gesamte Festplatte zu löschen. Ich mache mir keine Sorgen, dass Clientdaten weiterhin auf der physischen SDD-Festplatte verfügbar sind. Ich möchte nur nicht, dass ein anderer Kunde über einen Datenleck auf seine LV zugreifen kann.
Jtnire
0

Ich glaube nicht, dass Sie durch das Schreiben von 0en verhindern können, dass andere Kunden die Festplatte lesen.

Wenn Sie auf SSDs etwas schreiben, unterscheidet sich der Vorgang stark von einer normalen Festplatte.

Stellen Sie sich folgende Situation vor: Eine "leere" Speicherzelle in einem SSD-Laufwerk ist alle mit 1s gefüllt. Wenn Sie etwas darauf schreiben, schreiben Sie die Nullen auf und lassen die Einsen unverändert.

Wenn Sie danach etwas anderes speichern möchten, werden der vorherige und der neue Inhalt verglichen. Wenn die vorherige durch Aufschreiben einiger Nullen zur neuen werden kann, ist das in Ordnung. Ist dies nicht möglich, wird eine andere Speicherzelle verwendet.

"clear": 11111111 1st save: 11011011

Neue Daten: 00110011 Es gibt keine Möglichkeit, 11011011 zu 00110011 zu machen (beachten Sie, dass es notwendig wäre, eine 0 auf 1 zu setzen, und dies ist bei SSDs nicht möglich). Es wird also eine andere Speicherzelle verwendet.

Wenn Sie ein Laufwerk TRIMMEN, setzen Sie alle nicht verwendeten Speicherzellen auf 1 zurück. Es ist also klar, dass sie wieder verwendet werden können. Und die gespeicherten Daten bleiben erhalten.

Um zu tun, was Sie wollen: Löschen Sie zuerst die Dateien. Die Speicherzellen zu diesen Dateien werden als frei markiert. Führe dann einen TRIM durch: Alle diese Speicherzellen werden zu Einsen ohne Anzeichen von Daten.

woliveirajr
quelle
0

Einfach zu beantworten: Verwenden Sie Linux, um die Partition als EXT4 neu zu formatieren. Dadurch wird SSD angewiesen, dass alle Blöcke zum Löschen bereit sind, z. B. alle Sektoren einer Partition zuzuschneiden. Nebeneffekt ist eine geringe Anzahl von Schreibvorgängen (EXT4-Strukturen).

Vergessen Sie ˋddˋ mit Random, das verringert die Lebensdauer von SSDs erheblich. Einige SSDs sind intelligent und wenn sie einen vollen Sektor mit Nullen sehen, schreiben sie nicht, markieren sie ihn zum Löschen.

Da Sie Interna auf den Firmwares nicht kennen, besteht Ihre beste Option darin, die Partition als ext4 (ohne vollständige Neuformatierung, nur eine schnelle, nur Strukturen) auf einem modernen Linux-Kernel neu zu formatieren. Dadurch wird die gesamte Partition abgeschnitten vor dem Formatieren.

Für alle, die über sicheres Löschen sprechen, also für die gesamte SSD auf einmal, wird nur eine Partition der SSD abgefragt und OHNE den Rest der darauf gespeicherten Informationen zu verlieren (Partitionsebene, nicht SSD-Ebene).

Fazit: Formatieren Sie als Ext4 neu. Wenn Sie ein anderes Format benötigen, formatieren Sie es erneut in einem anderen Format.

Laura
quelle