SMARTMONTOOLS ile Sabit diskleri kontrol etmek

Arızalı sabit diskler her zaman bilgisayarların en can sıkan parçaları olmaya devam edecekler. Fanlarla birlikte bilgisayarların demirbaş hareketli parçalarından biri oldukları için, kolayca çöpe koyup kurtulamadığınız gibi, yıllar içerisinde bu ikili size varlıklarını her daim hatırlatacak. Peki Linux üzerinde bir sabit diskin sağlığını nasıl kontrol ederiz?

Öncelikle anlaşılması gereken, sabit disklerin her zaman  “dağ gibi adamdı küt diye gitti anlamadık” formatında ölmedikleridir, en azından 7/24 sabit, titreşimsiz bir alanda, UPS altında saklıyorsanız böyledir, bu tip “ideal” koşullarda  bağıra bağıra, çığlık çığlığa ölürler ki, bu çığlıkları duyup önceden tüm verinizi yedekleyip, can sıkıntısının önüne geçebilirsiniz. Bir ikincisi, günümüzde piyasadaki disklerin tamamı SMART ile gelirler. SMART, çok basitçe işletim sisteminizden disklerin durumunu sorgulama, istatistikleri/sıcaklığı alma ve hatta disklerin kendi self-testlerinin sonuçlarını okuma, ve test yapma olanağı sağlar.

Bir diskte okuma arızalarının yaşanmaya başlanması ilk etapta dosya sisteminde tutarsızlıklar olarak dönebilir, burada karşınıza çıkabilecek durumlardan ilki, dosya sisteminizin ansızın read-only (salt okunur) duruma geçmesi olur Linux’ta. Windows ‘da ise bir uyarı balonu, veya her açılışta karşınıza fırlayan bir CHKDSK olarak gelebilir. Tabii ki dosya sisteminde tutarsızlık demek, illa ki diskte bir sıkıntı demek değil. Diskin size ilk atacağı çığlıkları ise dmesg komutunun çıktısında görebilirsiniz. Linux’ta diskler sd harfiyle başlayıp alfabedeki ilk harfi alırlar. 3 sabit diskiniz varsa, ilk bağlanan sda, son bağlanan sdc olacaktır. DMESG’de [sda] ile başlayan hatalar okumaya başlamış olabilirsiniz, bu ilk sabit diskte bir sıkıntı olma ihtimalini gösteriyor olabilir.

Olmayabilir de. Hala pek çok etken mevcut, daha iyi anlamanın yolu diske sormak. Burada ilk yapacağımız iş, sudo apt-get install smartmontools yaparak SMART izleme araçlarını Linux dağıtımımıza kurmak olacak. Daha sonra sudo smartctl -a  /dev/sda komutunu çalıştırabiliriz. Diskiniz 2.ci diskse sda ‘yı sdb yaparsınız. Karşınıza çok uzun bir çıktı gelmiş olmalı.

Çıktıyı anlamak

Karşımıza çıkan bu uzun çıktının ilk bölümünde, Information Section ‘un altındaki bilgiler diskin geneline ait. Model adı, seri numarası gibi genel bilgiler. Bunlara eğer diskin garantisi devam ediyorsa, üreticinin sitesinden garanti durumunu kontrol etmek için ihtiyaç duyma ihtimaliniz var.  “Vendor Specific SMART Attributes with Thresholds:” kısmına kadar devam edin. Buradaki satırlar önemli. Bazılarının önünde Pre-fail yazıyor olabilir, bu genellikle yanlış anlaşılabiliyor, Pre-fail her zaman diskiniz arıza çıkarmak üzere demek değil. Asıl bakılacak yerler WHEN_FAILED ve RAW_VALUE kısımları. Yanlış anımsamıyorsam, bir araştırmanın  sonuçları, bir kez sıkıntı yaşamış bir sabit diskin arızalanması ihtimalini, mükemmel bir durumdaki bir diskin arıza ihtimalinden 30 kat yüksek hesaplıyor. Bu da bu tabloyu epeyce önemli kılıyor, şunları kontrol ediyoruz:

  • Herhangi bir satırın WHEN_FAILED kısmı dolu mu? Eğer sadece bir çizgi varsa sorun yok, eğer FAILING_NOW görüyorsanız şuan bir sıkıntı mevcut, IN_THE_PAST görüyorsanız daha önceden bir sıkıntı yaşanmış. Her ikisi de kötüye işaret.
  • Current_Pending_Sector ve Offline_Uncorrectable değerleri 0 mı? Eğer sıfırsa bir sorun yok, değilse bunlar için şüpheli sektörler denebilir. Buradaki sayıyı not edin, eğer bir süre içinde artmıyorsa problem yok, gittikçe artıyorsa riskli. 0 çok iyi durumda demek.
  • Reallocated_Sector_Ct kısmındaki değere çok dikkat edin. 0’dan fazlaysa diskte arızalı bloklar (bad sector) mevcut ve artık kullanım dışı bırakılmışlar. Arızalı sektörler için kanser yakıştırması yapılabilir, bu diske artık güvenebilmeniz çok güç. Verilerinizi halen yapabiliyorken yedekleyin. Diskin halen iş görmesi mümkün olabilir, buradaki sayı gittikçe artmıyorsa, daha önemsiz verileriniz için depo olarak kullanabilirsiniz belki.
  • Reallocated_Sector_Ct yanında, Raw_Read_Error_Rate ve Seek_Error_Rate ‘e de bir bakın.0 sa sorun yok, değilse, çok küçük bir sayı kabul edilebilir, eğer artmıyorsa. Büyük bir sayıysa diskiniz oldukça riskli bir durumda demek.
  • Diskin hatalarına da bir bakmak isteyebilirsiniz. Çıktıda eğer “No Errors Logged” görüyorsanız henüz hiç hata yok ve herşey iyi, “ATA Error Count: XXXX  (device log contains only the most recent five errors)” gibi bir satır görüyorsanız diskin yine hazin bir sona gitme ihtimali epeyce artıyor. Altında en son kaydedilmiş 5 hatayı okuyabilirsiniz.

Testler

Diskinizde eğer daha önce bir test çalışmışsa üstteki komutun çıktısında, sonlara doğru test çıktılarını alacaksınız, muhtemelen şuna benzeyecek:

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       90%     25798         110327592
# 2  Short offline       Completed: read failure       90%     25797         110327592
# 3  Short offline       Completed: read failure       90%     25773         110327592
# 4  Short offline       Completed: read failure       90%     25770         1241846
# 5  Short offline       Completed: read failure       90%     25767         1241846
# 6  Short offline       Completed: read failure       90%     25767         1241846
# 7  Short offline       Completed: read failure       90%     25766         1241846
# 8  Short offline       Completed: read failure       90%     25766         1241846
# 9  Short offline       Completed: read failure       90%     25766         1241846
#10  Short offline       Completed without error       00%     16656         –

Bu yakında ömrünü dolduracak bir diskin test çıktısı. Eğer Status ‘un altında Completed without error görüyorsanız test başarılı demek. Testlerin de türleri var tabii ki, Short, Long ve Conveyance olarak 3 farklı modda test çalıştırabiliyorsunuz. Eğer sizden önce çalıştırılmış bir test varsa, çıktıyı dikkate almadan önce LifeTime kısmına bakın. Az önce dikkatle incelediğimiz tabloda Power_on_hours ile yakın bir değer değilse eski bir testin çıktısıdır, sizin yenisini yapmanız gerekecek. Yukarıdaki disk, ömrünün 16656 ‘cı saatinde sorunsuzmuş, ancak 25766 ‘da okuma hataları mevcut.

Bir test çalıştırmak için yapmanız gereken, sudo smartctl -t <short/long/conveyance> /dev/sda yapmak. Seçtiğiniz türdeki test çalıştırıldıktan sonra, yine sudo smartctl -a /dev/sda yapıp, sonuçları oradan okuyabilirsiniz. Bir kısa testin çalıştırılması birkaç dakika, uzun bir test ise saatler alabilir.

Sürekli kontrol

Fırsat bulursam başka bir yazımda anlatmak istediğim bir diğer işlevsel disk aracı da SMARTD. Smartd, arka planda bekleyip belli aralıklarla disklerinizin SMART çıktılarını alıp, bunlara göre diskin ısısını kaydeden, herhangi bir diskte arıza riski oluşursa syslog ‘a kaydedip, bundan haberdar olmanızı sağlayan, özellikle önemli verilerinizi sakladığınız küçük ev sunucularının olmazsa olmazı bir araç. Üstelik kullanımı da oldukça kolay, bir anlatımı şu adreste mevcut: http://smartmontools.sourceforge.net/man/smartd.8.html

Kendi disklerim

Eh, bu kadar SMART’ı kurcalamamın esas sebebi, disklerimden birinin problem çıkartıyor olması oldu, diskin markası Seagate, bir de kendime mini bir tablo yaptım:

  • Seagate Barracuda 7200.11 (500GB). 25798 saattir çalışıyor, 365 kere çalıştırılmış. 344 bad sector ile çok yakında mefta olacak.
  • Samsung Spinpoint F3 (1TB). 9189 saattir çalışıyor, 124 kere çalıştırılmış. 1 zayıf/yavaş sektör mevcut, sağlıklı görünüyor.
  • Samsung HD161HJ (160GB). Saatleri farklı hesaplıyor, yaklaşık 1400 gün çalışmış, 730 kere çalıştırılmış. bu da 33600 saat demek. Tamamen sağlıklı görünüyor.

Seagate ‘in verileri halen okunabilir durumda, ancak yakında tamamen çalışmaz hale geleceği belli. Yerine ise şimdiden bir başka Samsung Spinpoint F3 (1TB) düşünüyorum, sanırım Seagate ‘ten aldığım ilk, ve son disk de Barracuda olacak. Bu model, bir dönem firmware sıkıntıları ve sürekli arızalarıyla tüm Internet medyasında haber olmuş, Seagate ‘in marka değerini ciddi anlamda sarsmıştı. Demek ki neymiş? Aldığınız şey ne olursa olsun, birileri ondan çok şikayetçiyse bildikleri bir şey varmış. Bu da bu uzun yazının özeti olsun.

 

2 yorum yapılmış

  1. Aranel Surion

    Merhaba, epeyce geç cevapladığımdan muhtemelen işinize yaramayacak ama, belki başkasına yarar: Reallocated_Sector_Ct ve Current_Pending_Sector ‘ün 0 olması iyi, yalnız Runtime_Bad_Block ‘u önümüzdeki günlerde dikkatli takip edin, bu sayı gittikçe artıyorsa sıkıntı habercisi olabilir. Ayrıca Airflow_Temperature_Cel ‘e göre, bir ara diskiniz fazla ısınmış. Soğutma sıkıntısı yaşıyor olabilirsiniz.

  2. merhaba’ sizin dediginiz gibi smartctl ile yaptigim analizde;

    ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
    1 Raw_Read_Error_Rate 0x000f 114 099 006 Pre-fail Always – 80517984
    3 Spin_Up_Time 0x0003 095 094 000 Pre-fail Always – 0
    4 Start_Stop_Count 0x0032 100 100 020 Old_age Always – 917
    5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always – 0
    7 Seek_Error_Rate 0x000f 069 060 030 Pre-fail Always – 8101884
    9 Power_On_Hours 0x0032 098 098 000 Old_age Always – 2259
    10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always – 0
    12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always – 901
    183 Runtime_Bad_Block 0x0032 098 098 000 Old_age Always – 2
    184 End-to-End_Error 0x0032 100 100 099 Old_age Always – 0
    187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always – 0
    188 Command_Timeout 0x0032 100 099 000 Old_age Always – 4295032833
    189 High_Fly_Writes 0x003a 100 100 000 Old_age Always – 0
    190 Airflow_Temperature_Cel 0x0022 061 045 045 Old_age Always In_the_past 39 (Min/Max 31/39)
    191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always – 0
    192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always – 878
    193 Load_Cycle_Count 0x0032 096 096 000 Old_age Always – 9902
    194 Temperature_Celsius 0x0022 039 055 000 Old_age Always – 39 (0 20 0 0 0)
    197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always – 0
    198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline – 0
    199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always – 0
    240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline – 171678432756885
    241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline – 23368561349080
    242 Total_LBAs_Read 0x0000 100 253

    ciktiyi aldim diskimin durumu nasil acaba
    tesekkurler

Yorum Yazın