Azzeramento delle unità SSD


18

Ospitiamo VPS per i clienti. A ogni VPS del cliente viene assegnato un LVM LVM su un disco rigido standard del mandrino. Se il cliente dovesse partire, azzeriamo questo LV assicurandoci che i suoi dati non vengano divulgati a un altro cliente.

Stiamo pensando di utilizzare SSD per la nostra attività di hosting. Dato che gli SSD hanno la tecnologia del "livellamento dell'usura", questo rende l'azzeramento inutile? Questo rende questa idea SSD impraticabile, dato che non possiamo permettere ai dati dei clienti di passare ad un altro cliente?

Risposte:


23

Supponendo che ciò che stai cercando di prevenire sia il prossimo cliente che legge il disco per vedere i dati del vecchio cliente, quindi scrivere tutti gli zeri funzionerebbe ancora. Scrivere zeri nel settore 'n' significa che quando viene letto il settore 'n', verranno restituiti tutti gli zeri. Ora il fatto è che i dati reali sottostanti potrebbero essere ancora sui chip flash, ma poiché non è possibile eseguire una lettura normale per raggiungerlo, non è un problema per la tua situazione.

È un problema se qualcuno può fisicamente prendere il disco e smontarlo (perché potrebbe quindi leggere direttamente i chip flash), ma se l'unico accesso che hanno è il bus SATA, quindi una scrittura di tutti gli zeri sull'intero il disco andrà bene.


1
Esattamente la risposta che stavo cercando, e quando ci ho pensato sono arrivato alla stessa conclusione :)
jtnire,

2
Immagino (ma non lo so per certo, e certamente dipenderebbe dal chipset del controller utilizzato nell'SSD) che scrivere un settore di zero su un SSD non avrebbe nemmeno colpito i chip flash reali. Il controller dovrebbe notare che sono tutti zero e semplicemente contrassegnare quel settore come "azzerato" (o semplicemente puntarlo su un settore che contiene tutti gli zero). Scrivere un settore di zero è una cosa ragionevolmente comune da fare, e un case speciale sarebbe un modo economico e semplice per ridurre l'usura del flash, quindi sarei scioccato se almeno Intel e Sandforce non lo facessero.
kindall

20

Non riempire mai a zero un SSD, mai. Come minimo, questo consumerà parte della durata della scrittura dell'SSD per un beneficio scarso o nullo. In uno scenario estremo nel caso peggiore, potresti mettere il controller dell'SSD in uno stato di prestazioni (temporaneamente) ridotto .

Da questa fonte :

Sovrascrivere ripetutamente l'intero disco con ripetizioni multiple può distruggere con successo i dati, ma a causa del Firmware Translation Layer (FTL), questo è notevolmente più complicato e richiede tempo rispetto ai tradizionali dischi rigidi. Sulla base dei loro risultati, è un'opzione poco attraente

La tua migliore opzione, cancellazione sicura tramite crittografia completa del disco:

Alcuni SSD moderni possono utilizzare la crittografia dell'intero disco, ad esempio le nuove unità Intel 320 e alcune unità Sandforce serie 2200. Queste unità possono essere cancellate in modo sicuro in modo semplice e veloce, senza usura delle unità. L'unità utilizza la crittografia AES per tutti i dati scritti, quindi una cancellazione sicura significa semplicemente eliminare la vecchia chiave AES e sostituirla con una nuova. Ciò rende effettivamente irrecuperabili tutti i "vecchi" dati sull'unità.

Tuttavia, la cancellazione sicura di Intel non è facile da automatizzare. AFAIK deve essere fatto dall'app GUI di Windows di Intel, può essere eseguito solo su un'unità vuota di non avvio e così via. Vedi pagina 21 e successive in Documenti Intels.

L'altra opzione, cancellazione sicura ATA:

Un'altra opzione è emettere un comando ATA Secure Erase tramite fx HDPARM su Linux. Questo sarà molto più facile da automatizzare tramite gli script.

Se l'unità implementa ATA Secure Erase in modo "buono", ci si dovrebbe aspettare almeno che elimini il "livello di traduzione flash" (FTL). La tabella FTL contiene il mapping tra i settori logici (che il sistema operativo "vede") e le pagine fisiche di NVRAM sull'unità stessa. Con questa tabella di mappatura distrutta, dovrebbe essere molto difficile - ma probabilmente non impossibile - recuperare i dati dall'unità.

Tuttavia, non sono a conoscenza di studi che hanno dimostrato che ATA Secure Erase è implementato in modo coerente e ben implementato su tutte le unità del produttore, quindi sono titubante nel dire che funzionerà sempre - dovresti leggere la documentazione tecnica del produttore.

Per una singola partizione:

Mentre leggo i commenti ad altre risposte, sembra che OP voglia solo cancellare in modo sicuro singole partizioni. Un buon modo per farlo sarebbe quello di creare solo volumi crittografati , fx usando LUKS o TrueCrypt . In questo modo è possibile cancellare in modo sicuro il volume eliminando la chiave di crittografia, in modo simile allo schema di crittografia dell'intero disco sull'unità.

Conclusione:

Se vuoi davvero saperlo, leggi il documento collegato al blog di Sophos e leggi le note tecniche dei produttori di unità relative alla cancellazione sicura. Tuttavia, se si desidera cancellare "bene" in modo sicuro, allora un SSD con crittografia completa del disco e una cancellazione e una sostituzione sicure delle chiavi di crittografia è probabilmente la scelta migliore. In alternativa, utilizzare la crittografia a livello di sistema operativo e gettare la chiave quando si desidera cancellare i dati in modo sicuro.


1
La cautela è buona, ma non sono sicuro che la citazione di un avviso di 2 anni su un bug del controller emerso solo in carichi di lavoro fortemente artificiali in un SSD specifico che è stato corretto da tempo dovrebbe avere molto peso.
Daniel Lawson,

1
@Daniel Lawson: punto giusto. :-) Ho riformulato quella sezione e l'ho cambiata in un peggioramento temporaneo delle prestazioni - e ho cambiato il collegamento con una recensione dell'unità M4 / C400 di Crucial (un'unità attualmente in spedizione) che mostra importanti rallentamenti dopo pesanti operazioni di scrittura.
Jesper M,

6

Il livellamento dell'usura non ha nulla a che fare con l'azzeramento dei dati.

Azzerare i dati per impedire ad altre persone / applicazioni di leggerli. Gli SSD "livellano l'usura" dei loro dati per garantire che rimangano utilizzabili più a lungo a causa del "danno" che la scrittura arreca agli SSD. Anche i dischi di solito lo fanno quando non sono occupati, in situazioni di server i tempi di silenzio non sono sempre disponibili, quindi questo lavoro spesso non viene eseguito.

Addebitate ai vostri clienti le loro operazioni di I / O? In caso contrario, cosa può impedirgli di uccidere sostanzialmente la loro parte di un SSD in ore / giorni scrivendo costantemente tutto il tempo? Gli SSD sono un po 'più facili da uccidere di quanto la maggior parte della gente possa pensare , specialmente negli ambienti pesanti di scrittura.


Stavo affrontando il po 'Chris che rende l'azzeramento inutile', sono due cose diverse
Chopper3

1
if (time < 9am) chriss_try_again()
Chris S,

haha - non preoccuparti amico :)
Chopper3

Mentre vero per i dati, meno vero per l'omicidio. Gli "Enterprise Flash Drives" hanno una longevità e una dimensione piuttosto migliori rispetto agli SSD consumer, ma proprio come gli HDD aziendali paghi il premio per le prestazioni. Secondo Seagate, il loro ESD "Pulsar" ha una durata di 5 anni, che ammonta a circa 6 petabyte di scritture. anandtech.com/show/2739/2 - Su Pulsar Drive virtualgeek.typepad.com/virtual_geek/2009/02/… - Su EFDs
Daniel B.

3
Conosco Daniel, compro molti SSD aziendali che ho inserito in un ambiente di lettura del 99+%, ma quando li abbiamo testati abbiamo trovato sorprendentemente facile "ucciderli", ad esempio abbiamo inserito due HP come coppia speculare in come il disco di registro per una scatola Oracle 10 ragionevolmente occupata e le cose hanno iniziato a andare male entro 4 settimane. Questo era circa 10 mesi fa, quindi non era la versione HP rigenerata di quell'unità Pulsar. 6PB equivalgono a ~ 38 MB / s in 5 anni o ~ 180 MB / s in un solo anno - quindi non è possibile utilizzare una Pulsar per catturare un singolo canale di video HD senza interromperlo in meno di un anno.
Chopper3

3

Quindi vale la pena leggere articoli come questo . Se qualcuno ha accesso fisico al disco, il recupero delle informazioni è più semplice. Hai preso in considerazione la crittografia dei dati sull'unità SSD e tutto ciò che devi fare è dimenticare in modo sicuro la chiave privata che dovrebbe essere un problema più semplice. Vedo che SSD è una grande vittoria per i vps grazie alle prestazioni di accesso casuale molto migliori.


2

Sicuramente non si desidera utilizzare i metodi tradizionali di cancellazione di SSD, come l'utilizzo ddper azzerare i dati o altri metodi che scrivono dati casuali sul disco. Questi metodi sono più adatti ai dischi basati su piatti. È efficace nella cancellazione dell'SSD, ma utilizzerà inutilmente molte delle operazioni di scrittura limitate dell'SSD, riducendo così la vita prevista dell'SSD. Sarebbe costoso rapidamente. Può anche ridurre le prestazioni dell'SSD nel tempo.

Gli SSD hanno un metodo diverso per la cancellazione sicura. Dirò che sembra molto complicato da fare, perché di solito è necessario un certo tipo di controller SATA in grado di eseguire l'emulazione IDE e la procedura può essere complicata. Alcuni produttori forniscono strumenti per cancellare in sicurezza i propri SSD, ma puoi anche farlo con hdparm su Linux: https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase . Ma noterai in quelle istruzioni che devi assicurarti che l'unità non sia "congelata" prima di poter procedere. Questo è uno dei passaggi più difficili perché richiede di trovare una scheda madre e un controller SATA che ti consentano di "sbloccare" l'unità mentre il sistema è avviato, il che di solito comporta lo scollegamento dal suo cavo SATA, quindi ricollegarlo.

Ad ogni modo, la mia raccomandazione è di fare la tua ricerca e scegliere un SSD fornito con un'utilità di cancellazione sicura che può essere utilizzata su un sistema a te conveniente.


L'uso di dd per azzerare il disco, purché si utilizzi una dimensione di blocco adeguatamente grande e non il valore predefinito di 512 byte, non consumerà gran parte dei cicli di scrittura / cancellazione. Userà circa 1. Dico approssimativamente perché ammetto che se l'allineamento del filesystem è errato, potresti finire per scrivere due volte sullo stesso blocco flash in alcuni casi. L'uso dd bs=1Mcomporterà un'usura minima.
Daniel Lawson,

2

Sebbene una risposta sia già stata accettata, penso che blkdiscard /dev/sdXvalga la pena menzionare il comando qui.

Secondo Arch Wiki: SSD , il blkdiscardcomando eliminerà tutti i blocchi e tutti i dati andranno persi. Si consiglia di utilizzare prima "si desidera vendere il proprio SSD".

Non ho familiarità con il funzionamento di TRIM, quindi non so se esiste la garanzia che i dati verranno cancellati. Ma penso sia meglio che non fare nulla.

A proposito, temo che questo comando funzioni solo su un intero dispositivo, non per una singola partizione.

Spero che sia di aiuto. :)


blkdiscardsembra non essere sicuro in tutti i casi, perché di per TRIMsé è solo una richiesta e non tutti i controller SSD lo onorano. Puoi leggere di più qui e qui . Ma come spiegato qui, il kernel Linux mantiene una whitelist di quali dispositivi sono noti per onorare TRIM.
nh2,

Quindi, se hdparm -I /dev/theSSDcontiene Deterministic read ZEROs after TRIM, blkdiscarddovrebbe essere veloce e garantire la lettura degli zeri in seguito. Altrimenti una cancellazione sicura sembra la soluzione migliore. Tuttavia, dato che la domanda riguarda la sicurezza dei clienti, Secure Erase potrebbe essere la soluzione migliore perché sembra progettata per tali casi d'uso.
nh2,

1

Il modo migliore per cancellare i dati dall'immagine di una macchina virtuale è utilizzare la funzione TRIM. Molti sistemi operativi più recenti supportano questo. Quasi tutti gli attuali SSD supportano anche questo.

E ciò che rende questa opzione ancora migliore è che m qualsiasi SAN supporta anche questa funzione con il suo nome SCSI di UNMAP . È un ottimo comando per le SAN che implementano il provisioning sparse, che è una grande funzionalità per le macchine virtuali, specialmente se combinato con la de-duplicazione dei blocchi.

Quando il comando TRIM viene assegnato a un SSD, il firmware contrassegnerà immediatamente quei blocchi liberi per il riutilizzo. Alcuni SSD restituiranno sempre zeri per i blocchi TRIM . Altre unità restituiranno dati definiti dall'implementazione (cioè casuali).

Sui sistemi operativi che supportano TRIM, una semplice eliminazione del file contrassegnerà i blocchi per TRIM. L'effettiva operazione TRIM potrebbe avvenire immediatamente o potrebbe essere messa in batch per essere eseguita in un secondo momento. A volte ci sono strumenti che forzano il TRIM di un file o scansionano una partizione per tutti i blocchi inutilizzati.

Le prestazioni di TRIM su Linux sono ancora discutibili, quindi se lo stai usando vorrai esaminare le tue opzioni. Su Windows sembra abbastanza solido.


Mi dispiace ma questo non ha alcun senso. Per quanto ne so, TRIM non ha nulla a che fare con il thin provisioning, dice semplicemente a un SSD di non disturbare i settori di livellamento dell'usura che non sa essere stato cancellato dal filesystem, anche in modo molto specifico azzerare i blocchi.
Chopper3

@ Chopper3: Non riesci a vedere che ATA TRIM e SCSI UNMAP sono lo stesso comando? UNMAP è sicuramente utilizzato nel thin provisioning. TRIM esegue l'azzeramento dei blocchi su almeno alcune unità SSD. Dopo TRIM i dati sono spariti : non esiste un metodo supportato per recuperarli, l'unità potrebbe anche restituire zero e alcuni lo fanno.
Zan Lynx,

"l'unità potrebbe anche restituire zeri" e "i dati non sono recuperabili" sono due cose molto diverse. In ogni caso, l'utente non vuole cancellare l'SSD, non vuole che il cliente successivo sia in grado di ottenere i dati del vecchio cliente, il che non è la stessa cosa.
Chris S,

0

È necessaria una "Utilità di cancellazione sicura SSD". Se usi qualcosa come ddil livellamento dell'usura potrebbe attivarsi e ti ritroverai con settori di riserva che contengono ancora vecchi dati dei clienti. Un'utilità di cancellazione sicura cancellerà tutti i settori sul dispositivo (non solo quelli presentati come disco al sistema operativo).

Alcune di queste utilità sono specifiche per un determinato produttore, chiedi consiglio al produttore delle tue unità, loro lo sapranno meglio di noi.


Spiacente, questo non è quello che sto cercando, in quanto non sto cercando di cancellare l'intero disco. Non sono preoccupato che i dati del client siano ancora disponibili sul disco SDD fisico - non voglio solo che un altro cliente sia in grado di accedere tramite perdita di dati sul proprio LV.
jtnire,

0

Non penso che scrivere 0 ti aiuterà a impedire ad altri clienti di leggere il disco.

Negli SSD, quando si scrive qualcosa, il processo è molto diverso da un normale disco rigido.

Immagina la seguente situazione: una cella di memoria "vuota" in un'unità SSD è piena di 1s. Quando gli scrivi qualcosa, annota gli 0 e lascia invariato l'1.

Successivamente, quando si desidera salvare qualcosa di diverso, vengono confrontati il ​​contenuto precedente e quello nuovo. Se il precedente può diventare il nuovo scrivendo alcuni 0, ok. Se non è possibile farlo, viene utilizzata un'altra cella di memoria.

"cancella": 11111111 1o salvataggio: 11011011

nuovi dati: 00110011 non c'è modo di far diventare 11011011 00110011 (si noti che sarebbe necessario girare da 0 a 1, e non è possibile farlo negli SSD). Quindi, verrà utilizzata un'altra cella di memoria.

Quando TRIM un'unità, stai reimpostando tutte le celle di memoria inutilizzate su 1. Quindi, saranno chiare per essere riutilizzate. E i dati salvati vengono conservati.

Per fare quello che vuoi: per prima cosa, cancella (elimina) i file. Le celle di memoria di quei file saranno contrassegnate come libere. Quindi esegui un TRIM: tutte quelle celle di memoria diventeranno 1, senza alcun segno di dati.


0

Facile risposta: usa Linux per riformattare la partizione come EXT4, che dice a SSD che tutti i blocchi siano pronti per la cancellazione, come fare un taglio su tutti i settori di una partizione. L'effetto collaterale è un numero limitato di scritture (strutture EXT4).

Dimentica ˋddˋ con random, che ridurrà molto la vita dell'SSD. Alcuni SSD sono intelligenti e se vedono un intero settore pieno di zeri non scrivono, lo contrassegnano per la cancellazione.

Dal momento che non è possibile conoscere gli interni sui firmware, la migliore opzione è quella di riformattare la partizione come ext4 (senza riformattare completamente, solo una veloce, solo strutture) su un moderno kernel linux farà un trim su tutta la partizione prima di formattarlo.

Per tutti quelli che parlano della cancellazione sicura, ovvero dell'intero SSD in una sola volta, ciò che viene richiesto è solo una partizione dell'SSD e SENZA perdere il resto delle informazioni memorizzate su di esso (livello di partizione, non livello SSD).

Conclusione: riformattare come Ext4, quindi se è necessario un altro formato, riformattare di nuovo su tale altro formato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.