SSD sürücülerini sıfırlama


18

Müşterilerimiz için VPS'leri barındırıyoruz. Her müşteriye VPS'ye standart iş mili sabit diskinde bir LVM LV verilir. Müşteri ayrılırsa, verilerinin başka bir müşteriye sızmamasını sağlayarak bu LV'yi sıfırlarız.

Barındırma işimiz için SSD'lerle gitmeyi düşünüyoruz. SSD'lerin "aşınma dengeleme" teknolojisine sahip olduğu düşünüldüğünde, bu sıfırlamayı anlamsız yapar mı? Bu, müşteri verilerinin başka bir müşteriye sızmasına izin veremediğimiz sürece bu SSD fikrini olanaksız kılıyor mu?

Yanıtlar:


23

Önlemek istediğiniz şeyin eski müşterinin verilerini görmek için diski okuyan bir sonraki müşteri olduğunu varsayarsak, tüm sıfırları yazmak aslında işe yarayacaktır. 'N' sektörüne sıfır yazmak, 'n' sektörü okunduğunda tüm sıfırları döndüreceği anlamına gelir. Şimdi gerçek şu ki, altta yatan gerçek veriler hala flash çiplerde olabilir, ancak normal bir okuma yapamadığınız için durumunuz için bir sorun değildir.

Birisi diski fiziksel olarak tutup parçalara ayırabiliyorsa (çünkü o zaman doğrudan flaş çiplerini okuyabiliyorsa) bir problemdir, ancak sahip oldukları tek erişim SATA veri yolu ise, o zaman bütün sıfırların bir bütününe yazılması disk iyi olacak.


1
Tam olarak aradığım cevap, ve bunu düşündüğümde, aynı sonuca vardım :)
jtnire

2
Bir SSD'ye sıfırlar kesimi yazmanın gerçek flaş yongalarına bile çarpmayacağını hayal ediyorum (ama kesin olarak bilmiyorum ve kesinlikle SSD'de kullanılan denetleyici yonga setine bağlı olacaktır). Kontrolör, tamamen sıfır olduğunu fark etmeli ve bu sektörü "sıfırlanmış" olarak işaretlemelidir (veya yalnızca tüm sıfırları içeren bir sektörü göstermelidir). Sıfırlar sektörü yazmak, oldukça yaygın bir şeydir ve özel kasa, flaştaki aşınmayı azaltmak için ucuz ve kolay bir yol olacaktır, bu yüzden en azından Intel ve Sandforce bunu yapmazsa şok olurdum.
tür

20

Bir SSD'yi sıfır doldurmayın. Asgari olarak, bu SSD'nin yazma ömrünün bir kısmını çok az veya hiç fayda sağlamayacak şekilde aşınacaktır. En kötü durum senaryosunda, SSD'nin denetleyicisini (geçici olarak) düşük performans durumuna getirebilirsiniz .

Gönderen Bu kaynaktan :

Birden çok tekrarla tüm diskin üzerine tekrar tekrar yazmak başarılı bir şekilde verileri yok edebilir, ancak Bellenim Çeviri Katmanı (FTL) nedeniyle bu, geleneksel sabit disk sürücülerinden çok daha karmaşık ve zaman alıcıdır. Sonuçlarına dayanarak, çekici olmayan bir seçenektir

En iyi seçeneğiniz, tam disk şifrelemesi ile güvenli silme:

Bazı modern SSD'ler tam disk şifrelemesini kullanabilir - örnekler Intel'in yeni 320 sürücüleri ve bazı Sandforce 2200 serisi sürücülerdir. Bu sürücüler, herhangi bir sürücü aşınması olmadan basit ve hızlı bir şekilde güvenli bir şekilde silinebilir. Sürücü, yazılan tüm veriler için AES şifrelemesi kullanır, bu nedenle güvenli bir silme, eski AES anahtarını silmek ve yenisiyle değiştirmek anlamına gelir. Bu, sürücüdeki tüm 'eski' verileri etkin bir şekilde kurtarılamaz hale getirir.

Ancak, Intel'in güvenli silme işlemini otomatikleştirmek kolay değildir. AFAIK, Intel'in Windows GUI uygulamasından yapılmalıdır, sadece boş bir önyükleme olmayan sürücüde vb. Bkz. Sayfa 21 ve sonrası Intels belgelerinde.

Diğer seçeneğiniz ATA güvenli silme:

Başka bir seçenek de Linux'ta fx HDPARM aracılığıyla ATA Güvenli Silme komutu vermektir. Bu, komut dosyası oluşturma yoluyla otomatikleştirmek çok daha kolay olacaktır.

Sürücünün 'iyi' bir şekilde ATA Güvenli Silme uygulaması şartıyla, en azından "flash çeviri katmanını" (FTL) silmesini beklemelidir. FTL tablosu, mantıksal sektörler (işletim sisteminin gördüğü) ile sürücüdeki NVRAM'ın fiziksel sayfaları arasındaki eşlemeyi tutar. Bu eşleme tablosu yok edildiğinde, sürücüdeki verileri kurtarmak çok zor - ama muhtemelen imkansız olmamalıdır.

Ancak, ATA Secure Erase'ın tüm üreticilerin sürücülerinde tutarlı ve iyi bir şekilde uygulandığını gösteren herhangi bir çalışmanın farkında değilim, bu yüzden her zaman işe yarayacağını söylemekten çekinmeyin - üreticilerin teknik belgelerini okumalısınız.

Tek bir bölüm için:

Diğer cevapların yorumlarını okuduğumda, OP sadece tek bölümleri güvenli bir şekilde silmek istiyor gibi görünüyor. Bunu yapmanın iyi bir yolu , LUKS veya TrueCrypt kullanarak sadece şifrelenmiş birimler oluşturmaktır . Bu şekilde, sürücüdeki tam disk şifreleme şemasına benzer şekilde şifreleme anahtarını indirerek birimi güvenli bir şekilde silebilirsiniz.

Sonuç:

Gerçekten, gerçekten bilmek istiyorsanız , Sophos'un blogundan bağlantılı makaleyi okuyun ve sürücü üreticilerinin güvenli silme ile ilgili teknik notlarını okuyun. Bununla birlikte, 'iyi' güvenli bir şekilde silmek istiyorsanız, tam disk şifrelemeli ve şifreleme anahtarlarını güvenli bir şekilde silip değiştiren bir SSD muhtemelen en iyi seçimdir. Alternatif olarak, işletim sistemi düzeyinde şifreleme kullanın ve verilerin güvenli bir şekilde silinmesini istediğinizde anahtarı atın.


1
Dikkat iyidir, ancak belirli bir SSD'de yalnızca uzun süredir düzeltilmiş olan ağır yapay iş yüklerinde ortaya çıkan bir denetleyici hatasıyla ilgili 2 yıllık bir bildirime alıntı yapmanın çok fazla ağırlık vereceğinden emin değilim.
Daniel Lawson

1
@Daniel Lawson: Adil nokta. :-) Bu bölümü yeniden yazdım ve geçici bir performans düşüşü olarak değiştirdim - ve bağlantıyı, ağır yazma işlemlerinden sonra büyük yavaşlamalar gösteren Crucial'ın M4 / C400 sürücüsünün (şu anda bir nakliye sürücüsü) gözden geçirmesi ile değiştirdim.
Jesper M

6

Aşınma dengelemenin verileri sıfırlamakla hiçbir ilgisi yoktur.

Diğer kişilerin / uygulamaların bu verileri okumasını durdurmak için verileri sıfırlarsınız. SSD'ler, yazmanın SSD'lere yaptığı 'hasar' nedeniyle daha uzun süre kullanılabilir kalmasını sağlamak için verilerini 'aşınma seviyesinde' tutarlar. Ayrıca diskler genellikle meşgul olmadıklarında bunu yapar, sunucu durumlarında sessiz zamanlar her zaman kullanılabilir değildir, bu nedenle bu iş genellikle yapılmaz.

Müşterilerinizi ES operasyonları için ücretlendiriyor musunuz? Değilse, sürekli olarak sürekli yazarak bir SSD'nin parçalarını saat / gün olarak öldürmelerini engelleyecek ne var? SSD'lerin öldürülmesi , özellikle yazma ağır ortamlarda, çoğu insanın düşündüğünden biraz daha kolaydır .



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

haha - merak etme dostum :)
Chopper3

Veriler için doğru olsa da, öldürme konusunda daha az doğrudur. "Kurumsal Flash Sürücüler", tüketici SSD'lerinden daha iyi bir ömre ve boyuta sahiptir, ancak kurumsal HDD'ler gibi, performans için prim ödersiniz. Seagate'e göre, "Pulsar" ESD'leri yaklaşık 6 petabayt yazma anlamına gelen 5 yıllık bir ömre sahiptir. anandtech.com/show/2739/2 - Pulsar Drive'da sanalgeek.typepad.com/virtual_geek/2009/02/… - EFD'lerde
Daniel B.

3
Daniel'i tanıyorum,% 99 + okuma ortamına koyduğum birçok kurumsal SSD satın alıyorum ama onları test ettiğimizde onları 'öldürmenin' şaşırtıcı derecede kolay olduğunu gördük, örneğin iki HP'yi aynalı bir çift olarak oldukça meşgul bir Oracle 10 kutusu için günlük diski ve işler 4 hafta içinde ters gitmeye başladı. Şimdi bu yaklaşık 10 ay önceydi, bu yüzden HP'nin o Pulsar sürücüsünün yeniden biçimlendirilmiş versiyonu değildi. 6PB, 5 yılda ~ 38MB / s veya tek bir yılda ~ 180MB / s'ye eşittir - bu nedenle, bir yılın altına girmeden tek bir HD video kanalı yakalamak için bir Pulsar kullanamazsınız.
Chopper3

3

Gibi 's okunmaya değer makaleleri Yani bu . Birisi diske fiziksel erişime sahipse, bilgi almak daha kolaydır. SSD'deki verileri şifrelemeyi düşündünüz mü ve daha sonra yapmanız gereken tek şey, daha kolay bir sorun olması gereken özel anahtarı güvenli bir şekilde unutmaktır. SSD'nin çok daha iyi rastgele erişim performansı nedeniyle vps'lerde büyük bir kazanç olduğunu görebiliyorum.


2

ddVerileri sıfırlamak için kullanılan SSD'leri silmek için geleneksel yöntemleri veya diske rasgele veri yazan diğer yöntemleri kullanmak istemezsiniz . Bu yöntemler tabla tabanlı diskler için daha uygundur. SSD'nin silinmesinde etkilidir, ancak gereksiz yere SSD'nin sınırlı yazma işlemlerini gereksiz yere kullanacak ve böylece SSD'nin beklenen ömrünü azaltacaktır. Çok çabuk pahalı olur. SSD'nin zaman içindeki performansını da düşürebilir.

SSD'lerin güvenli silme için farklı yöntemleri vardır. Bunu yapmak çok zahmetli görünüyor, çünkü genellikle IDE öykünmesi yapabilen belirli bir SATA denetleyicisine ihtiyacınız var ve prosedür karmaşık olabilir. Bazı üreticiler kendi SSD'lerini silmek için araçlar sağlar, ancak bunu Linux'ta hdparm ile de yapabilirsiniz: https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase . Ancak bu talimatlarda, devam etmeden önce sürücünün "dondurulmadığından" emin olmanız gerektiğini fark edeceksiniz. Bu daha zor adımlardan biridir, çünkü sistem önyüklenirken sürücüyü "çözmenizi" sağlayacak bir anakart ve SATA denetleyicisi bulmayı gerektirir, bu da genellikle SATA kablosundan çıkarılmasını ve ardından tekrar takılmasını içerir.

Her neyse, benim önerim araştırmanızı yapmak ve size uygun bir sistemde kullanılabilecek güvenli bir silme yardımcı programı ile birlikte gelen bir SSD seçmek.


Diski sıfırlamak için dd kullanmak, varsayılan olarak 512 bayt değil, uygun büyüklükte bir blok boyutu kullandığınız sürece, çok fazla yazma / silme döngüsü kullanmaz. Yaklaşık 1 kullanır. Yaklaşık diyorum, çünkü dosya sistemi hizalamanız yanlışsa, bazı durumlarda aynı flash bloğa iki kez yazabileceğinizi kabul ediyorum. Kullanmak dd bs=1Masgari düzeyde yıpranmaya neden olur.
Daniel Lawson

2

Bir cevap zaten kabul edilmiş olmasına rağmen, komutun blkdiscard /dev/sdXburada hala bahsetmeye değer olduğunu düşünüyorum .

Göre Arch Wiki: SSD , blkdiscardkomut olacak tüm blokları atmak ve tüm veriler kaybolacaktır. "SSD'nizi satmak istediğinizden" önce kullanılması önerilir.

TRIM'in nasıl çalıştığını bilmiyorum, bu yüzden verilerin silineceğine dair bir garanti olup olmadığını bilmiyorum. Ama bence hiçbir şey yapmamaktan daha iyi.

BTW, bu komutun tek bir bölüm için değil, yalnızca tüm bir cihazda çalıştığından korkuyorum.

Bu yardımcı olur umarım. :)


blkdiscardher durumda güvenli görünmüyor, çünkü TRIMkendisi sadece bir istek ve tüm SSD denetleyicileri buna saygı duymuyor. Burada ve burada daha fazla bilgi edinebilirsiniz . Ancak burada açıklandığı gibi, Linux çekirdeği, hangi cihazların TRIM'i onurlandırdığı bilinen bir beyaz listeyi korur.
nh2

Yani eğer hdparm -I /dev/theSSDiçeriyorsa Deterministic read ZEROs after TRIM, blkdiscarddaha sonra okunması hızlı ve garantili olmalıdır. Aksi takdirde Güvenli Silme daha iyi bir çözüm gibi görünür. Ancak, sorunun müşteri güvenliği ile ilgili olduğu göz önüne alındığında, Güvenli Silme daha iyi bir çözüm olabilir, çünkü bu tür kullanım durumları için tasarlanmış gibi görünmektedir.
nh2

1

Sanal makine görüntüsünden veri temizlemenin en iyi yolu TRIM özelliğini kullanmaktır. Birçok yeni işletim sistemi bunu desteklemektedir. Hemen hemen tüm mevcut SSD'ler de bunu desteklemektedir.

Ve bu seçeneği daha da iyi yapan şey, herhangi bir SAN'ın da UNSI'nin SCSI adı altında bu özelliği desteklemesi . Sanal bloklar için, özellikle de blok çoğaltma ile birleştirildiğinde harika bir özellik olan seyrek provizyon uygulayan SAN'lar için harika bir komuttur.

Bir SSD'ye TRIM komutu verildiğinde, bellenim bu blokları hemen yeniden kullanılmak üzere ücretsiz olarak işaretler. Bazı SSD'ler her zaman TRIM'd blokları için sıfır döndürür . Diğer sürücüler uygulama tanımlı (yani rastgele) verileri döndürür.

TRIM'i destekleyen işletim sistemlerinde, dosyanın basit bir şekilde silinmesi TRIM'in bloklarını işaretler. Gerçek TRIM işlemi hemen gerçekleşebilir veya daha sonra gerçekleştirmek için toplu olarak işlenebilir. Bazen bir dosyayı TRIM yapmaya zorlayan veya kullanılmayan tüm bloklar için bir bölümü tarayacak araçlar vardır.

Linux'taki TRIM performansı hala sivilceli, bu yüzden kullanıyorsanız, seçeneklerinizi araştırmak isteyeceksiniz. Windows'da oldukça sağlam görünüyor.


Üzgünüm ama bu hiç mantıklı değil. TRIM, bildiğim kadarıyla, ince provizyon ile ilgisi yok, sadece bir SSD'ye dosya sistemi tarafından silindiğini bilmediği aşınma seviyeli sektörleri rahatsız etmemesini söylüyor, aynı zamanda çok spesifik olarak sıfır çıkış blokları.
Chopper3

@ Chopper3: ATA TRIM ve SCSI UNMAP'in aynı komut olduğunu göremiyor musunuz? UNMAP kesinlikle ince provizyonda kullanılır. TRIM, en azından bazı SSD sürücülerde sıfır çıkış blokları yapar. TRIM'den sonra veriler kayboldu : Onu almak için desteklenen bir yöntem yok, sürücü de sıfırları döndürebilir ve bazıları bunu yapabilir.
Zan Lynx

"sürücü sıfırları da döndürebilir" ve "veriler kurtarılamaz" çok farklı iki şeydir. Her durumda kullanıcı aslında SSD'yi silmek istemiyor, bir sonraki müşterinin eski müşterinin verilerini de elde etmesini istemiyor, bu da aynı şey değil.
Chris S

0

"SSD Güvenli Silme Yardımcı Programı" na ihtiyacınız var. ddAşınma seviyelendirmesi gibi bir şey kullanırsanız , hala eski müşteri verilerini içeren yedek sektörlerle karşılaşırsınız. Güvenli silme yardımcı programı, yalnızca işletim sistemine bir disk olarak sunulanları değil, aygıttaki tüm sektörleri siler.

Bu yardımcı programlardan bazıları belirli bir üreticiye özgüdür, sürücülerinizin üreticilerinden önerilerini isteyin, bizden daha iyi bilirler.


Üzgünüm, tüm diski silmek istemediğim için aradığım şey bu değil. İstemci verilerinin fiziksel SDD diskte hala mevcut olduğundan endişelenmiyorum - sadece başka bir müşterinin LV'e veri sızıntısı üzerinden erişebilmesini istemiyorum.
jtnire

0

0 yazmanın diğer müşterilerin diski okumasını önlemenize yardımcı olacağını düşünmüyorum.

SSD'lerde, bir şey yazdığınızda, işlem normal bir Sabit Diskten çok farklıdır.

Şu durumu düşünün: SSD sürücüsündeki "boş" bir bellek hücresinin tümü 1s ile doldurulur. Bir şey yazdığınızda, 0'ları yazar ve 1'leri değiştirmeden bırakır.

Daha sonra, farklı bir şeyi kaydetmek istediğinizde, önceki içerik ve yeni içerik karşılaştırılır. Bir öncekinde 0'lar yazarak yenisi olabilirse, tamam. Bunu yapmak mümkün değilse, başka bir bellek hücresi kullanılır.

"temizle": 11111111 1. kayıt: 11011011

yeni veriler: 00110011 11011011'i 00110011 haline getirmenin bir yolu yoktur (0'dan 1'e çevirmenin gerekli olduğuna dikkat edin ve bunu SSD'lerde yapmak mümkün değildir). Böylece başka bir bellek hücresi kullanılacak.

Bir sürücüyü TRIM yaptığınızda, kullanılmayan tüm bellek hücrelerini 1'e sıfırlarsınız. Bu nedenle, tekrar kullanılmaları açık olacaktır. Ve kaydedilen veriler korunur.

İstediğinizi yapmak için: önce dosyaları silin (silin). Bu dosyaların bellek hücreleri boş olarak işaretlenir. Sonra bir TRIM yapın: tüm bu bellek hücreleri herhangi bir veri işareti olmadan 1'ler olacak.


0

Yanıtlaması kolay: Bölümü, SSD'ye tüm blokların bir bölümün tüm sektörlerinde bir düzeltme yapmak gibi silinmeye hazır olmasını söyleyen EXT4 olarak yeniden biçimlendirmek için Linux'u kullanın. Yan etki az sayıda yazıdır (EXT4 yapıları).

SSD'nin ömrünü çok azaltacak olan rastgele ˋddget'yi unutun. Bazı SSD akıllıdır ve sıfırlarla dolu bir sektör görürlerse yazmazlar, silmek için işaretlerler.

Bellenimlerdeki içselleri bilemeyeceğiniz için, en iyi seçeneğiniz bölümü modern bir linux çekirdeğinde ext4 (tam yeniden biçimlendirme olmadan, sadece hızlı bir, sadece yapılar olmadan) olarak yeniden biçimlendirmektir. biçimlendirmeden önce.

Güvenli silme hakkında konuşan herkes için, yani bir kerede tüm SSD için, sorulan şey SSD'nin sadece bir bölümüdür ve üzerinde depolanan bilgilerin geri kalanını kaybetmeden (bölüm seviyesi, SSD seviyesi değil).

Sonuç: Ext4 olarak yeniden formatlayın, o zaman başka bir formata ihtiyacınız varsa, tekrar bu formatta yeniden formatlayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.