smartctl ve smartd ile Disk Sağlığı İzleme
Giriş
smartctl, modern depolama sürücülerinde uygulanan S.M.A.R.T. (Kendi Kendini İzleme, Analiz ve Raporlama Teknolojisi) teknolojisi ile çalışmak üzere tasarlanmış smartmontools paketinden bir konsol aracıdır.
Kullanım durumları:
- barındırma şirketlerinin sunucuları;
- VPS/VDS düğümleri;
- özel sunucular;
- dosya sunucuları;
- yedekleme sistemleri;
- kurumsal altyapılar.
Çözdüğü görevler:
- disk bozulmasının erken tespiti;
- sürücü arızalarının tahmini;
- veri kaybı riskinin azaltılması;
- HDD, SSD, NVMe sağlık izleme otomasyonu;
- disk alt sistemindeki fiziksel sorunların analizi.
Proaktif SMART izleme, gerçek bir disk arızasından önce bir sorunu tanımlamanıza olanak tanır, bu da üretim ortamları için kritik öneme sahiptir.
Gereksinimler ve ön koşullar
Desteklenen işletim sistemleri ve sürümleri:
Linux:
- Debian 10+
- Ubuntu 18.04+
- RHEL / AlmaLinux / Rocky Linux 8+
- CentOS 7 (destekleniyor, ancak güncel değil)
- FreeBSD 12+
Windows (smartmontools aracılığıyla, sınırlı kullanım)
Aşağıdaki örnekler Linux için sağlanmıştır.
Gerekli yazılım ve paketler:
- smartmontools paketi
- /dev/sdX, /dev/nvmeX erişimi
- kurulu systemd (smartd için)
Erişim hakları:
- root ayrıcalıkları gereklidir
- veya sudo aracılığıyla erişim
Ön kontrol
Sistemdeki disklerin listesini görüntüleme:
lsblk -d -o NAME,MODEL
Genel Bakış ve Temel Kavramlar
Anahtar terimler
- SMART – yerleşik disk kendi kendine teşhis sistemi
- Öznitelikler – durum öznitelikleri (Reallocated_Sector_Ct, Pending_Sectors, vb.)
- Kendi kendine test – yerleşik sürücü testleri
- smartctl – SMART yönetimi için CLI aracı
- smartd – otomatik izleme daemoni
Nasıl çalışır
- Disk bağımsız olarak istatistik toplar
- smartctl bu verileri okur
- smartd eşik değerleri ve olayları analiz eder
- Sorunlar meydana geldiğinde bildirimler gönderilir
İş akışı mantığı
Disk > SMART öznitelikleri > smartctl > smartd > günlük / e-posta / izleme
smartctl'nin Temel Kurulumu ve Kullanımı
smartmontools aracının kurulumu
SMART ile çalışmak, smartctl (disklerle manuel çalışma) ve smartd (arka plan izleme daemoni) araçlarını içeren smartmontools paketi olmadan mümkün değildir.
Kurulum, dağıtımın standart paket yöneticisi araçları kullanılarak gerçekleştirilir.
Debian / Ubuntu
sudo apt update
sudo apt install smartmontools
RHEL / AlmaLinux / Rocky Linux
sudo dnf install smartmontools
Kurulumdan sonra, araçlar sistemde kullanılabilir hale gelir ve ek bir başlatma gerektirmeden kullanıma hazırdır.
smartctl'nin sürümünü ve kullanılabilirliğini kontrol etme
İlk adım olarak, aracın doğru bir şekilde kurulduğunu ve sistemde mevcut olduğunu doğrulamak önerilir:
smartctl --version
Komut, paket sürümünü ve desteklenen teknolojilerin bir listesini çıktılar.
Bu, şunları yapmanıza olanak tanır:
- güncel bir sürümün kullanıldığından emin olun;
- NVMe, RAID ve diğer cihaz türlerinin desteğini kontrol edin.
Belirli bir diskte SMART desteğini kontrol etme
Sonraki adım, sürücünün kendisinin SMART teknolojisini destekleyip desteklemediğini ve cihaz düzeyinde etkin olup olmadığını kontrol etmektir.
sudo smartctl -i /dev/sda
Doğru çıktının örneği:
SMART support is: Available - device has SMART capability. SMART support is: Enabled
Available – disk fiziksel olarak SMART'ı destekliyor;
Enabled – SMART veri toplama etkinleştirilmiş ve okumaya hazır.
SMART destekleniyor ancak devre dışı bırakılmışsa, bu genellikle yeni veya daha önce kullanılmamış disklerde görülür. Bu durumda, manuel olarak etkinleştirilmesi gerekir:
sudo smartctl -s on /dev/sda
Bundan sonra, SMART'ın etkinleştirildiğinden emin olmak için smartctl -i komutunu yeniden çalıştırmanız önerilir.
SMART özniteliklerini görüntüleme ve başlangıç sağlık değerlendirmesi
SMART'ın ana pratik değeri, diskin yüzeyi, mekanikleri ve elektroniğinin durumunu yansıtan sayısal değerler olan özniteliklerinde yatar.
Öznitelikleri görüntülemek için şu komutu kullanın:
sudo smartctl -A /dev/sda
Çıktı, mevcut değerleri ve geçmişi ile özniteliklerin bir tablosunu içerir. Öncelikle aşağıdaki göstergelere dikkat edilmelidir:
Çıktıdaki anahtar alanlar:
- VALUE (Mevcut Değer): Özniteliğin normalleştirilmiş değeri (genellikle 1'den 100'e kadar, 100 ideal). VALUE ≤ THRESH ise disk hatalı kabul edilir.
- WORST (En Kötü Değer): Diskin çalışması sırasında ulaşılan en kötü değer.
- THRESH (Eşik): VALUE için minimum izin verilen değer. Eşiğin aşılması (VALUE ≤ THRESH) kritik bir durumun işaretidir.
- RAW_VALUE: Özniteliğin "ham", normalleştirilmemiş değeri. Aşınmayı değerlendirmek ve olayları saymak için analiz edilmesi gereken budur.
HDD (geleneksel sabit diskler) için anahtar öznitelikler:
- Reallocated_Sector_Ct: Artış, fiziksel yüzey bozulmasını gösterir.
- Current_Pending_Sector (Yeniden tahsis bekleyen sektörler): Kararsız sektörler. Tek bir sıfır olmayan değer bile bir uyarı işaretidir.
- Offline_Uncorrectable (Düzeltilemeyen hatalar): Okunamayan sektörler.
- Power_On_Hours: Diskin toplam çalışma süresi.
SSD'ler için anahtar öznitelikler:
- Retired_Block_Count: HDD'ler için Reallocated_Sector_Ct'nin eşdeğeri. Hizmet dışı bırakılan blokların sayısını gösterir. VALUE=100 ile düşük bir değer bile normal olabilir.
- Reallocated_Event_Count: Yeniden tahsis olaylarının sayısı.
- SSD_Life_Left veya Kullanılan Yüzde/Medya Aşınma Göstergesi: Kalan ömrün (veya aşınmanın) yüzdesi. Düşük bir değer (örneğin, <10%) yaklaşan bir arızanın işaretidir.
- Wear_Range_Delta: Bellek hücreleri arasında aşınmanın eşitliğinin bir göstergesi.
- Power_On_Hours_and_Msec: Toplam çalışma süresi.
- Lifetime_Writes_GiB / Lifetime_Reads_GiB (Öznitelikler 241, 242): Yazılan/okunan toplam veri hacmi.
NVMe için anahtar öznitelikler (smartctl -a /dev/nvme0 aracılığıyla):
- Kullanılan Yüzde: Yazma dayanıklılığının tüketilen yüzdesi. Aşınmanın birincil göstergesi.
- Medya ve Veri Bütünlüğü Hataları: Veri bütünlüğü hataları.
- Kritik Uyarı: Kritik uyarı bayrakları.
- Sıcaklık: Mevcut sıcaklık.
Bu aşamada, yönetici diskin durumu hakkında genel bir anlayış kazanır ve sorunların belirgin işaretlerini tanımlayabilir.
Gelişmiş yapılandırma ve pratik senaryolar
SMART, işletim sistemi müdahalesi olmadan sürücü tarafından gerçekleştirilen yerleşik kendi kendine testleri destekler.
Kısa test, anahtar bileşenlerin hızlı bir şekilde kontrol edilmesi için tasarlanmıştır:
sudo smartctl -t short /dev/sda
Uzun test, tam bir yüzey taraması gerçekleştirir ve önemli ölçüde daha fazla zaman alır:
sudo smartctl -t long /dev/sda
Test tamamlandıktan sonra sonuçların kontrol edilmesi gerekir:
sudo smartctl -l selftest /dev/sda
Çıktı şunları belirtir:
- testin türü;
- tamamlama durumu;
- hataların varlığı veya yokluğu.
Başarısız bir test, disk değişimi için doğrudan bir neden teşkil eder.
RAID denetleyicileri ile çalışma
Donanım RAID denetleyicileri genellikle SMART verilerini sistemden gizler. Bu gibi durumlarda, cihaz türü açıkça belirtilmelidir.
Bir LSI denetleyicisi için örnek:
smartctl -a -d megaraid,0 /dev/sda
Burada:
- -a – mevcut tüm SMART bilgilerini (öznitelikler, günlükler, hatalar, genel sağlık değerlendirmesi) çıktılar.
- -d – cihaz türünü belirtmek için anahtar.
- megaraid – SMART sürücüsüne diskin bir LSI/Broadcom denetleyicisinin arkasında olduğunu (genellikle sunucularda kullanılır) bildirir.
- 0 – RAID dizisindeki fiziksel disk numarası (PD, Fiziksel Sürücü). Bu sda değil, denetleyici tarafından atanan benzersiz bir kimliktir. Denetleyici yönetim aracı (örneğin, storcli veya MegaCLI) kullanılarak bulunabilir.
- /dev/sda – bu bağlamda, bu gerçek disk değil, sistemde RAID denetleyicisini temsil eden bir sahte cihazdır. Genellikle bu /dev/sgX (SCSI Genel) veya denetleyici bir sanal disk oluşturduysa sadece /dev/sda'dır.
Cihaz türü belirtilmediğinde tipik hata:
SMART support is: Unavailable
Bu, SMART'ın mevcut olmadığı anlamına gelmez – sadece smartctl'nin fiziksel diske giden yolu otomatik olarak belirleyemediği anlamına gelir. Çözüm, -d parametresini doğru bir şekilde belirtmektir.
Tanılama ve sorun giderme
Olası arızaların işaretleri:
- Reallocated_Sector_Ct değerinde artış;
- sıfır olmayan Current_Pending_Sector;
- program/silme hataları (Program_Fail_Count, Erase_Fail_Count);
- kendi kendine test hataları;
- I/O gecikmesinde artış;
- sistem günlüklerinde hata mesajları.
Günlük analizi:
journalctl -u smartd
dmesg | grep -i error
Açıklama:
Pending Sectors > 0 – yüksek arıza riski;
Reallocated Sectors artıyor – ilerleyen bozulma;
Self-test FAILED – disk değiştirilmelidir.
Sorun kaynaklarını belirleme
Yanlış pozitifleri dışlamak için, SMART verilerini gerçek yük ile ilişkilendirmek önemlidir.
iostat -x 1
iotop
Diskin nereye monte edildiğini kontrol etme:
lsblk -o NAME,SERIAL,MOUNTPOINT
Denetleyicileri tanımlama:
lspci | grep -i raid
Ek metrikler:
- 50 °C üzerinde sıcaklık;
- CRC hatalarında artış;
- kararsız SMART değerleri.
SMART metrikleri eşik değerlere yaklaştığında yönetici bildirimlerini yapılandırma
SMART verilerinin varlığı, altyapı güvenliğini garanti etmez. İzlemenin anahtarı, diskin durumu bozulmaya başladığında, ancak arıza henüz gerçekleşmeden önce yöneticiye zamanında bildirimde bulunmaktır.
Bildirim mekanizması şunları yapmanıza olanak tanır:
- sürücü bozulmasını erken aşamada tespit etme;
- disk değişimini önceden planlama;
- acil duruşları ve veri kaybını önleme;
- planlı bakım pencereleri içinde çalıştırma.
Smartmontools'da, smartd daemon bildirimleri göndermekten sorumludur. SMART özniteliklerindeki değişiklikleri otomatik olarak izler ve normdan sapmalara yanıt verir.
smartd bildirimlerinin çalışma prensibi
Smartd daemon, bir arka plan hizmeti olarak çalışır ve aşağıdaki görevleri yerine getirir:
- Disk SMART özniteliklerini periyodik olarak sorgular.
- Mevcut değerleri şunlarla karşılaştırır: fabrika eşikleri, önceki değerler (değişim dinamikleri).
- Şunları tespit eder: kritik özniteliklerin büyümesi, yeni hataların ortaya çıkması, kendi kendine test hataları.
- Bir bildirim oluşturur ve yöneticisine gönderir.
Bildirimlerin çalışması için gereksinimler
Yapılandırmadan önce, aşağıdakilerin sağlanması gerekir:
- Sistemde bir MTA (Postfix, Exim, Sendmail, ssmtp) kurulu ve doğru yapılandırılmıştır;
- Sunucu, giden postaları gönderebilecek durumdadır;
- Bildirimleri almak için yöneticinin e-posta adresi tanımlanmıştır.
ssmtp'nin yapılandırma örneği – sistemden posta göndermek için hafif ve basit bir MTA.
Kurulum:
Debian/Ubuntu:
sudo apt update && sudo apt install ssmtp mailutils -y
RHEL:
sudo dnf install ssmtp mailx
Yapılandırma dosyasını oluşturun:
sudo nano /etc/ssmtp/ssmtp.conf
ve içeriği düzenleyin:
# Varsayılan gönderici adresi [email protected] # E-posta sağlayıcınızın SMTP sunucusu ve portu mailhub=smtp.your-domain.com:587 # Alternatif örnek: # mailhub=smtp.gmail.com:587 # Gmail için # Kimlik doğrulama bilgileri [email protected] AuthPass=your-password # Şifreleme ayarları UseSTARTTLS=YES # STARTTLS kullan UseTLS=YES # TLS kullan FromLineOverride=YES # Gönderici adresinin üzerine yazılmasına izin ver # Hostname (sunucunuzun adını belirtin) hostname=server1.your-domain.com # hostname=localhost veya sistemin gerçek hostname'ini belirtebilirsiniz
Dosyayı kaydedin ve erişim izinlerini yapılandırın:
sudo chmod 640 /etc/ssmtp/ssmtp.conf
sudo chown root:mail /etc/ssmtp/ssmtp.conf
Göndericileri yapılandırın (revaliases):
sudo nano /etc/ssmtp/revaliases
root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587
Mesaj gönderiminin başarılı olması için, sunucuda şu portların açık olması gerekir: 587 (STARTTLS şifrelemesi ile gönderim için birincil), veya 25 (standart SMTP), 465 (SSL ile güvenli SMTP), eğer yapılandırma tarafından sağlanıyorsa.
Temel posta gönderme testi:
echo "SMART test mesajı" | mail -s "SMART bildirim testi" [email protected]
Göndericiyi açıkça belirtebilirsiniz:
echo "SMART test mesajı" | mail -s "SMART bildirim testi" -a "From: [email protected]" [email protected]
Veya doğrudan ssmtp aracılığıyla:
echo "SMART test mesajı" | ssmtp [email protected]
[email protected] – mesajın gönderileceği alıcı adresi.
E-posta teslim edilmezse, smartd'nin daha fazla yapılandırılması, posta teslim sorunları çözülene kadar anlamsızdır.
SMART bildirim yapılandırması şu dosyada yapılır:
/etc/smartd.conf
Basit bir çalışma yapılandırmasının örneği:
/dev/sda -a -o on -S on -m [email protected]
Parametreler:
- /dev/sda – izlenen disk;
- -a – tam kontrol seti;
- -S on – özniteliklerin yeniden başlatmalar arasında kaydedilmesi etkinleştirilmiştir;
- -o on – otomatik çevrimdışı veri toplama etkinleştirilmiştir;
- -m – belirtilen e-posta adresine bildirimler gönderilir.
Bu noktadan itibaren, smartd arka planda disk durumunu izlemeye başlayacaktır.
Eşik değerlere yaklaşırken bildirimler
Smartd'nin anahtar özelliği, yalnızca kritik aşımı değil, öznitelik değerlerindeki değişiklikleri izlemesidir.
Pratikte bu, bir bildirimin gönderilebileceği anlamına gelir:
- Current_Pending_Sector'un ilk ortaya çıkışında;
- Reallocated_Sector_Ct'nin artışında, eşik henüz aşılmamış olsa bile;
- kendi kendine test hatalarının tespitinde;
- NVMe parametrelerinin bozulmasında.
Erken arızanın en önemli öznitelikleri:
- Reallocated_Sector_Ct
- Current_Pending_Sector
- Offline_Uncorrectable
- Medya ve Veri Bütünlüğü Hataları (NVMe)
- Kullanılan Yüzde (SSD/NVMe)
Bu parametrelerdeki en küçük değişiklikler bile dikkat edilmesi gereken bir neden olarak kabul edilmelidir.
Bildirim kaynağı olarak kendi kendine testleri kullanma
Bilgilendiriciliği artırmak için, öznitelik izlemenin düzenli kendi kendine testlerle birleştirilmesi önerilir.
Bir programla örnek yapılandırma:
/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]
Çalışma mantığı:
- kısa bir test günlük olarak gerçekleştirilir;
- tam bir test haftada bir kez gerçekleştirilir;
- herhangi bir test hatasında, yönetici bir bildirim alır.
Bildirim sıklığını ve hacmini yönetme
Aşırı uyarılardan kaçınmak için -M once parametresi kullanılır:
/dev/sda -a -m [email protected] -M once
Bu modda:
- bir sorun ilk tespit edildiğinde bir bildirim gönderilir;
- neden çözülene kadar sonraki mesajlar yinelenmez.
Bildirim sistemini test etmek için -M test kullanılabilir. Bu, smartd'nin mesaj gönderebildiğini doğrulamanıza olanak tanır, gerçek bir hata beklemeden.
Sonuç
Bu kılavuz kapsamında, smartctl ve smartd daemon'un proaktif disk sağlık izleme aracı olarak uygulanması ve çalıştırılmasının tam döngüsü sistematik olarak incelenmiştir. SMART'ın temel çalışma prensipleri, öznitelik analizi için pratik yöntemler, kendi kendine testlerin başlatılması ve yorumlanması, NVMe sürücüler ve RAID denetleyicileri ile çalışma özellikleri, tanılama yöntemleri ve sorunların kök nedenlerini belirleme teknikleri ele alınmıştır. Bildirimlerin yapılandırılmasına özel önem verilmiştir, bu da kritik bir arıza meydana gelmeden önce bile sürücü bozulmasını erken aşamalarda tespit etmeyi sağlar.
Doğru yapılandırılmış SMART izleme, güvenilir bir sunucu altyapısının ayrılmaz bir parçasıdır ve zorunlu bir operasyonel standart olarak kabul edilmelidir. Smartctl ve smartd'nin kullanımı, sistem yöneticisinin reaktif olay çözümünden, disk alt sisteminin bilinçli, yönetilebilir bakımına geçmesine olanak tanır, duruş, veri kaybı ve planlanmamış olayların risklerini azaltır ve merkezi izleme sistemleri ile daha fazla otomasyon ve entegrasyon için sağlam bir temel oluşturur.