Linux’ta SSD ömrünü inceleme

____________________________________________________________________

SSD yani Türkçesi ile Katı Hal Diski dediğimzi mekanik aksanı olmayan depolama birimleri, mekanik disklere göre çok hızlı olmaları açısından iyi olsa da ömür kısmında biraz daha hassas olabiliyorlar. MLC, SLC vs. değişik tekniklere göre üretilen hatı hal disklerinin flash yongaları sınırlı yazma miktarına sahip. Örneğin; diskteki bir birime bir bitlik bir alana mesela 5 bin kez yazma yapıldıktan sonra flash bellek içinde bu bitin fiziksel yapısını oluşturan ortam bozulabiliyor. Yani beş bin yazma sonra o bit kullanılamaz hale gelebiliyor. Çok da önemli ve aşırı dikkat edilmesi gereken bir şey değil ama yine de katı hal disklerinizi aşırı yazma işlemleri için kullanmamakta fayda var. Üreticiler zaten çeşitli tekniklerle cihazlarının yıpranmalarını azaltmak için önlemler almışlar. Ama biz de biraz dikkatli olsak zarar etmeyiz. Güncel çoğu SSD kalan ömürleri ile ilgili bazı bilgiler vermektedir. Bunları genelde S.M.A.R.T. denen sabit disklerin sağlık durumunu raporlayan fonksiyonları sayesinde öğrenebiliyoruz.

S.M.A.R.T. sabit diskimiz mekanik ya da katı hal diski olsun, çoğu sabit diskte bulunan bir özellik. Görevi sabit diskin çalışması esnasında belli olayları raporlamak ve bunlar belli miktarlardan fazla oluştuğunda da kullanıcıyı uyararak veri kaybından önce önlem almasını sağlamak. SSD ile ilgili bilgileri de bu özellikten alacağız. Bizim Linux işletim sistemimizde kullanacağımız S.M.A.R.T. uygulaması ise GSmartControl.

GSmartControl haricinde de uygulamalar var ama görsel arayüzü olarak en beğendiğim uygulama GSmartControl. GSmartControl uygulamasını Linux dağıtımınızın deposundan indirebiliyorsunuz. Gnome arayüzü için hazırlanmış aslında ama KDE’de de sorunsuz kullanıyorum. Uygulamayu Ubuntu dağıtımlarında sudo apt-get install gsmartcontrol komutu ile yükleyebiliyorsunuz.

GSmartControl uygulamasını açtığımızda öncelikle yönetici (root – sudo) şifresi isteyecek. Diskten alacağı bilgiler bu erişimi gerektiriyor. Kök şifremizi girdikten sonra karşımıza diskimizdeki depolama birimlerinin gösterildiği bir pencere gelecek.

GSmartControl ekranı

GSmartControl ekranı

Burada katı hal diskimizin üzerine çift tıklayarak bilgilerini görebiliyoruz. Attributes sekmesinde sağlık raporunu görebiliyoruz. Gösterilen bilgilerde genel olarak bir çok bilgi var. Bunlar, diskimizin çalışma süresi, açma kapama ve güç kesme sayıları, hata sayıları, sıcaklığı gibi bilgiler ki mekanik disklerde de olan şeyler. Buradaki bilgiler bir tablo şeklinde. Tabloda özelliğin numarası, adı, hata durumu, normalize edilmiş değeri (Norm-ed value), en kötü (worst) ve eşik (threshold) değeri ve ham (raw) değeri yazıyor. Raw değeri üreticiden üreticiye değişebilen yorumlanamayan bir değer olabilir. Failed değerinde never (asla) yazmıyorsa o değer ile ilgili bir hata oluşmuştur. Norm-ed value ise ham veriden elde edilen bir değer. Eşik ise o özellikte aşılırsa diskimiz ya da verimiz için kötü olabilecek sınır değerini belirtiyor. Bizim katı hal diskimiz için bakacağımız değerler ise üreticiden üreticiye değişebilmekle birlikte genelde aynı.

SSD durum bilgileri

SSD durum bilgileri

171 ve 181 numaralı Program Fail Count değerleri Flash belleğimizin programlanmasında yani yazılmasında karşılaşılan hata sayısını gösteriyor. Üreticiye göre farklı anlamları olabilir tabi.

172 ve 182 numaralı Erase Fail Count değerleri SSD kontrolcüsünün NAND bellek üzerinde silme yaparken karşılaştığı sorun sayısını belirtiyor. Üreticiye göre farklı anlamları olabilir tabi.

177 numaralı Wear Range Delta değeri diskimizdeki en az yıpranmış blok ile en çok yıpranmış bloku karşılaştırarak yüzde cinsinden farkı belirtiyor.

187 numaralı Reported Uncorrectable Errors değeri diskin donanımsal hata düzelte fonksiyonu tarafından düzeltilemeyen hata sayısını gösteriyor.

199 numaralı Temperature değeri diskimizin sıcaklığını gösteriyor. 50 üzerine çıkmadıkça sorun yok. Çıksa da sıkıntı değil de, çıkıyorsa cihazımızın içinde biraz hava dolaşımında sıkıntı olabileceğine işaret olabilir. Yine de 60 ve biraz daha üzeri görülebilir farklı modellerde.

196 numaralı Reallocation Event Count değeri verinin bozuk bloklardan rezerve bloklara taşınma sayısını gösteriyor.

201 numaralı Soft Read Error Rate veya TA Counter Detected değeri de işletim sistemine bildirilen düzeltilememiş okuma hatası oranını belirtiyor.

204 numaralı Soft ECC Correction Rate değeri yazılımsal hata düzeltme ile düzeltilmiş hata oranını veriyor.

230 nolu Life Curve Status cihazın sağlık durumunu bir yaşam eğrisine göre gösteren bir değer. 0 halde iken 100 değerini gösteriyor ve zamanla azalmasını beklediğimiz bir değer. Azalmaya başladığında diskimizin yavaş yavaş yıpranmaya başladığını anlıyoruz.

231 nolu SSD Life Left değerde norm-ed value kısmı 100 ise yeni bir diskimiz var demektir, bozuk blokları telafi etmek için kullanılabilecek rezerve tüm bloklar boş demektir. Buradaki değer 10’a gelirse diskimiz hala çalışıyor ama sıkıntılı bloklarımız var ve bunlardaki veri farklı bloklara kaydırılmış demektir. 0’a inene kadar da rezerve olarak kullanacak bir miktar blokumuz var demek. Eğer bu değer 0’a inerse sıkıntı ciddi. Bu halde bir sürücü verinin okunup alınabilmesi için salt okunur moda alabilir kendini. Bozuk blokları telafi edecek yeterli rezerve boş alan yok demek. Üreticiye bağlı olarak bu değer flash silme ve programlama devrini de gösterebilir.

241 numaralı Total LBAs Written ya da Total GiB Written değeri katı hal diskimize anakartımızdaki disk kontrolcüsünden gelen toplam yazılacak veri miktarı belirtiliyor. Örneğimizdeki görselde benim diskime 2056GB veri yazılmak üzere gönderilmiş.

Kullandığım katı hal diskinin ömür ve okunan ve yazılan veri miktarları.

Kullandığım katı hal diskinin ömür ve okunan ve yazılan veri miktarları.

Varsa 249 nolu NAND_Writes_1GiB değeri de disk NAND belleklerine 1GB boyutlu yazmaların sayısını gösteriyor. Yani gösterdiği değer kadar GB yazma yapılmıştır.

242 numaralı Total LBAs Read veya Total GiB Read değeri de SSD’den anakart yönünde yani okumaların toplam miktarını gösteriyor.

Benim kullandığım SSD Kingston HyperX 3K’da 233 ve 234 nolu değerler İnternal Attribute yani iç özellik olarak üreticinin kendisi için ayırdığı değerler. Bunlardan 233 SSD kontrolcüsünün NAND flash yongalarına yaptığı yazmanın miktarı gösteriliyor, 234 numara da okuma miktarını. Yani 233 nolu değer Total GiB Written değeri ile aynı şeyi gstermiyor mu? Hayır, göstermiyor. Total GiB Written değeri katı hal diskimize gönderilen veriyi, 233 numaralı değer ise katı hal diskimizdeki kontrolcünün NAND bellek yongalarına yazdığı miktarı gösteriyor. Bunların arasında fark olabiliyor. Çünkü SandForce kontrolcülü SSD’ler kendilerine gelen veriyi ZIP gibi bir biçimde sıkıştırarak diske yazıyor. Örneğin 100MB kadar içinde MS ofis dökümanları olan bir klasörü kopyaladınız katı hal diskinize. Sıkıştırma ile yazılan veri 10MB kadar bile olabilir. Bu şekilde SSD NAND belleklerin yazma ömründen tasarruf ediyor. Ama boş alandan kullanıcı olarak tasarruf edemiyoruz, 100GB diske 200GB yazamıyoruz mesela. Ayrıca SSD kontrolcümüz NAND bellekler üzerinde çöp toplama ve programlama işlemlerini yaparken kendi de farklı bölümlere yazmalar yapabiliyor. Bu durumda da benim göründüğü gibi diske yazma ile NAND belleğe yazma arasında 200GB gibi bir fark olabiliyor.

Burada bizim dikkat etmemiz gereken Life Curve Status, SSD Life Left gibi değerler öncelikle. Eğer bunlarda görünen değerler eşik yani threshold üzerindeyse verilerimiz tehlikede demektir. Böyle değerler zaten kırmızı işaretli olacak. Bunlara dikkat etmeli, eğer ciddi farklar varsa verilerimizi yedekleyip yeni bir SSD’ye geçmeliyiz.

Katı hal disklerinde kullanılan NAND bellekler ne kadar kısa ömürlü olsa da çoğu disk bir iki bilgisayarı eskitecek durumda. Yani her gün terabaytlarca veri yazmadığımız sürece çoğunun yeterli ömrü var. Kullanım biçimimize dikkat ederek de yazma miktarımızı sınırlayıp SSD ömrümüzü uzatabiliyoruz.