SSD’lerde Oluşan Ani Veri Kayıplarının Sebepleri

In Makale by Egemen Yıldız3 Comments

SSD’lerde ani veri kayıplarının nasıl oluşabileceğini ve bu durumda karşılaştığınızda yapabileceklerinizi bu yazımızda anlatıyoruz.

SLC, MLC ve TLC: SSD Yongaları Hakkında Bilmeniz Gereken Her Şey yazımızda sizlere NAND yonga çeşitlerinden bahsetmiştik. NAND yongalar belirli sayıda yazma işlemi gerçekleştirebilir. Günümüzde tüketici SSD sürücüleri genellikle garanti bitiminden önce 150-1200 yazma döngüsü garanti ediyor. Bundan dolayı bir NAND hücresinin 1200 yazma döngüsüne kadar dayanabileceği ve bir SSD sürücünün diğer koşullardan bağımsız olarak bin tam yazma döngüsünü kaldırabilecek bir dayanıklılığa sahip olduğu genellikle düşünülür. Ancak bu tam olarak doğru değildir.

Belirli kullanım koşulları ve yük tipi SSD sürücünüzün açıklanmış dayanıklılık verilerinden daha çabuk tükenmesine sebep olabilir. Bu yazımızda tamamen sağlıklı ve az kullanılmış bir SSD sürücünün neden aniden bozulabileceğini anlatacağız. Ayrıca SSD sürücünüz bozulduğunda ya da sistemde gözükmediğinde yapabileceklerinizden bahsedeceğiz.

NAND Yongaların Gerçekteki Dayanıklılığı

Crucial ve Samsung gibi önemli SSD üreticileri yeni modelleri için genellikle 5 senelik sınırlı garanti sunuyor. Üreticiler aynı zamanda garanti süreci içerisinde SSD sürücüsüne yazılabilecek maksimum veri miktarını da belirtiyor. Aşağıda Crucial ve Samsung’un bazı SSD serileri için sunduğu dayanıklılık verileri yer almaktadır.

Kapasite 2 TB 1 TB 500 GB 250 GB
Crucial MX500 (3D TLC) 700 TB 360 TB 180 TB 100 TB
Samsung 860 EVO (3D TLC) 1200 TB 600 TB 300 TB 150 TB
Samsung 860 PRO (3D MLC) 2400 TB 1200 TB 600 TB 300 TB

Bağımsız araştırmacılar yaptıkları testlerde genellikle üreticiler tarafından sağlanan resmi dayanıklılık rakamlarına gerçek yaşam testlerinde de ulaşıldığını belirtiyor. Ancak bu durum neden bazı SSD’lerin garanti süresi içerisinde ve yalnızca 20-30 kere tam yazma döngüsü tamamlandıktan sonra bozulduğunu açıklamıyor. Günümüz TLC yongaları belirgin bir aşınmaya uğramadan binlerce yazma döngüsünü kaldırabilecek durumda değil. Hatta bazı hücreler 20-50 yazma silme döngüsü ardından yük sızdırmaya başlıyor. Ancak hangi yonga tipine sahip olursa olsun zaman içerisinde NAND hücreler elektronları tutamamaya başlayacaktır.

Her yazma işlemi NAND hücresinde hafif hasar oluşturmaktadır. Tek bit veriyi SLC yongaya yazmak için MLC ya da TLC yongalara göre daha düşük voltaj gerektirmektedir. Bu nedenle de SLC ön belleğe sahip MLC ve TLC tabanlı SSD sürücüler daha düşük maliyetli ancak SLC ön belleğine sahip olmayan sürücülere göre daha fazla yükü kaldırabilir. (Özellikle rastgele yazma senaryolarında) Özellikle küçük miktarda sık sık veri yazıldığı durumlarda SLC ön belleği, SSD sürücünün dayanıklılığını 100 kata kadar arttırabilir.

SLC MLC TLC
Hücre Başına Bit Miktarı 1 2 3
Döngü Sayısı 100,000 3,000 1,000
Okuma Süresi 25 µs 50 µs ~75 µs
Programlama Süresi 200-300 µs 600-900 µs ~900-1350 µs
Silme Süresi 1.5-2 ms 3 ms 4.5 ms

Belirli sayıda programlama/silme döngüsünün ardından NAND hücreleri daha fazla yük tutamaz hale gelecektir ve elektron sızdırmaya başlayacaktır. Yıpranmış hücrelere halen veri yazılabilir ve yazma işleminin ardından veri sorunsuz olarak geri okunabilir. Ancak hücreler yük sızdırdığı için veriyi sınırlı bir süre tutabilecektir.

Örneğin bir TLC hücresine “1 0 0” verisinin yazıldığını düşünelim. Yazma işleminin ardından veriler başarılı şekilde okunabilir. SSD sürücüsünün gücünü kestiğimizde ve iki gün bekleyip geri güç verdiğimizde yük halen “1 0 0” olarak kalacaktır. Daha sonra gücü tekrar kesip bu sefer iki hafta bekleyelim. İki haftanın ardından hücreden veri okumaya başlandığında yük durumu “0 1 0” düzeyinde olacaktır. Bir iki hafta daha geçtiğinde ise yük durumu “0 0 1” olacaktır ve ardından “0 0 0” haline geçecektir.

Çoğu NAND yonga üreticisi veri merkezinde olduğu gibi yüksek sıcaklıklarda ve en azından iki hafta boyunca hücrelerin yükünü koruması gerektiğini belirtir. Bu süre ev sıcaklıklarından belirgin şekilde daha uzun olacaktır. Belirtilen veri tutma süresi aşıldıktan sonra hücreler yük sızdırabilir ancak ECC yardımıyla bu hatalar düzeltilebilecektir. İki hafta süresi kulağa korkutucu gelebilir ancak önde gelen üreticiler bu minimum değerleri belirgin şekilde aşan NAND yongaları kullanıyor.

Önde gelen SSD üreticilerinin standartlarını karşılayamayan NAND yongalar ise Kingspec, Smartbuy, Silicon Power gibi düşük maliyetli SSD üretimi yapan üreticilere satılmaktadır. Aynı zamanda bazı üreticiler bu düşük standartlara sahip NAND yongaları SSD’lerinin ayrılmış bloklarını desteklemek için kullanıyor ve bu yüzden SSD’leri daha düşük kapasitelerde piyasaya sürüyor. (500 GB değil de 480 GB) Crucial/Micron gibi bazı firmalar da bu yongaları MLC modunda kullanarak kararlılığı arttırıyor.

Yüksek sıcaklıklar NAND yongaların yükünü korumasının önünde önemli bir engel olarak karşımıza çıkıyor. Sıcaklık arttıkça elektronlar yük kapılarından daha hızlı kaçmaya başlıyor. Hücre yükünü kaybediyor ve veri okunamaz hale geliyor. SLC yongaları yüksek sıcaklıklara karşı dayanıklı olsa da MLC ve TLC yongaları daha düşük sıcaklıklarda hata vermeye başlıyor.

Verilerin okunması için 3.3V uygulanması gerekirken hücrelerin programlanması ya da silinmesi için 12V uygulanması gerekir. NAND hücrelerdeki elektronları yerleştirmek için yüksek voltaj gerekmektedir. Uygulanan voltaj arttıkça hücreler arasındaki izolasyon katmanı aşınmaya başlar ve zaman içinde daha fazla elektron kaçışı gerçekleşir. Bu yüzden de daha düşük programlama/silme döngüsü gerçekleştirilebilir.

Samsung Evo 840, düz TLC yongaları kullanan bir SSD olarak piyasaya sürüldü. Samsung, yongalar için optimistik dayanıklılık verileri sunmuşolsa da hücreler planlandığından daha hızlı aşınmaya başladı ve 20-30 tam döngü sonrasında veri yazma yeteneğini kaybetti. Bu yüzden birçok kullanıcı 30 gün depolamanın ardından veri kaybı ile karşılaştı. Samsung aslında donanımdan kaynaklanan bu sorunu çözmek için firmware ve yazılım güncellemesi sunsa da bu düzeltme işe yaramadı ve hücreler daha çabuk aşınmaya başladı. Bu yüzden Samsung Evo 840 SSD tarihinin en başarısız ürünleri arasında yer aldığı ifade edilir.

Bu durumdan ders alan üreticiler düz TLC yongaları yeni modellerinde kullanmayı bıraktı ve 3D NAND yongalara geçiş yaptı. Düz MLC ve TLC modelleriyle kıyaslandığında 3D TLC yongaların sunmuş olduğu avantajı aşağıdaki tabloda görebilirsiniz.

NAND 10nm MLC 10nm TLC 3D TLC
Die yoğunluğu (Gb) 64 128 128
Sayfa Boyutu (Bayt) 8K + 768 8K + 1024 16K + 2048
Blok Boyutu (Bayt) 1M + 96K 6M + 768K 6M + 768K
Sayfa Programlama Süresi (ms) 1.3 1.65 0.8
Blok Silme Süresi (ms) 5 5 3.5
85 derecede Programlama/Silme Döngü Sayısı 18 4.5 20

NAND yongaların ömrünü arttırmak için kullanılan başka teknolojiler de mevcut. Örneğin bazı üreticiler sürücülerin belirli bir kapasitesini SLC ön belleği olarak ayırdı. TLC hücreye SLC modunda veri yazmak daha düşük voltaj gerektirdiğinden aşınma üzerindeki etki bu sayede azaltıldı. Özellikle veritabanlarında olduğu gibi sık ve küçük veri bloklarının yazıldığı sistemlerde SLC ön belleği dayanıklılığı önemli oranda arttırdı. Firmware güncellemeleri ile birlikte de aynı miktarda veriyi depolamak için gerekli programlama/silme döngü sayısı azaltıldı.

SSD Sürücüler Neden SMART Hatası Vermeden Bozulabiliyor?

SSD sürücüler tüm kapasitesinin defalarca katı yazma işlemine dayanacak şekilde tasarlanmıştır. Üreticiler binden fazla tam döngü için genellikle garanti vermektedir. Her yeni nesille birlikte toplam yazılan bayt (TBE) değeri de artıyor ancak bazı SSD sürücülerin beklenenden daha çabuk bozulduğu da biliniyor. Bu durumda kullanıcılar hata içermeyen SMART verileriyle de karşılaşabiliyor. Bunu bir üretim hatasına ya da kötü NAND yongasına bağlamak zor olsa da genellikle cihazların %2’sinde bu durumla karşılaşılıyor.

Her SSD sürücü ayrılmış bir sistem alanı ile birlikte gelir. Bu sistem alanı SSD firmware’ını ve sistem yapılarını içerir. Bu alan genellikle 4 ile 12 GB arasında değişir. SSD kontrolcüsü bu alanda modül olarak adlandırılan sistem yapılarını depolar. Modüller; çeviri tabloları, medya şifreleme anahtarını içeren mikrokod parçası, SMART değerleri ve daha fazlasını içerir.

SSD sürücüler mantıksal blokların adreslerini aktif bir şekilde haritalar. Ne yazık ki çoğu SSD sürücüde sistem alanının fiziksel alanı sabit kalmak zorundadır ve yeniden haritalandırma mümkün olmamaktadır. Bu yüzden de aşınmayı azaltmak için bu alanda düzenleme yapmak mümkün değildir. Özellikle sık ve küçük yazma içeren senaryolarda (bazen saniyede yüzlerce işlem) verinin çok az bir kısmı SSD sürücü üzerine yazılır ve sistem alanı sürekli yazma işlemine maruz kalır.

Bu kullanım senaryosunda SMART parametreleri değişmeden sistem alanının erken aşınması mümkün olmaktadır. Böyle bir durumda da tamamen sağlıklı gözüken bir SSD aniden sistemden kaybolabilir. SSD kontrolcüsü de gerekli ECC düzeltmelerini sistem alanında saklanan verileri kullanarak yapamaz. SSD bilgisayarın BIOS’unda gözükmemeye ya da boş/formatlanmamış şekilde gözükmeye başlar.

Eğer SSD sürücü bilgisayarın BIOS’unda kaybolmamışsa kontrolcü bir boot döngüsüne girmiş demektir. Bu döngüde kontrolcü NAND yongasında bulunan mikrokodu kontrolcünün RAM’ine yüklemeye çalışır ancak hata ile karşılaşılır. Kontrolcü tekrar dener ancak yeniden hata alınır.

Ancak hatanın kaynağı genellikle fiziksel blokları mantıksal adreslere çeviren modüllerdir. Burada bir hata meydana gelirse SSD bilgisayarın BIOS’unda görünecektir ancak kullanıcının verilere erişmesi mümkün olmayacaktır. SSD sürücü ham olarak ya da olması gerektiğinden daha düşük kapasitede gözükecektir. Bu durumda kullanıcıların evlerinde kullanabileceği araçlarla birlikte veri kurtarması imkansızdır.

Fabrika Erişim Modunu Kullanarak Veri Kurtarmak

Eğer SSD sürücünüz BIOS üzerinde kaybolmadıysa ya da ham olarak tanımlanıyorsa yine de verilerinizi kurtarmanız mümkün olabilir. Bu durumda internetten indireceğiniz veri kurtarma yazılımlarını kullanmayınız. Bu yazılımlar kısır boot döngüsünü kıramaz ya da sürücünün fabrika erişim modunu aktif hale getiremez.

Sürücünüzü üreticiye geri göndermeden önce yapabileceğiniz tek şey fabrika erişim modunu kullanmaktır. Fabrika erişim modu, tüm SSD sürücülerinde varsayılan olarak bulunur. Büyük veri kurtarma merkezleri ve yetkili servisler bu moda erişebilecek yazılımlara sahiptir. Bu yazılımlarla birlikte bozulmuş çeviri tablolarını yeniden düzenleyebilir ve çip üzerinden veri okuyabilirler. Ancak bütçe dostu SSD sürücüleri satan küçük üreticiler genellikle bu onarım merkezlerine sahip değildir. Bu üreticiler için bozulmuş SSD sürücüyü atıp yerine yenisini yollamak bir onarım merkezi kurup bakımını sağlamaktan daha kolaydır. Eğer böyle bir durumdaysanız güvenilir ve bağımsız bir kurtarma hizmeti sunan merkezden bilgi almanız tek yol olacaktır.