Proaktif disk sağlığı izleme amacıyla smartctl’in kurulumu ve yapılandırılması
Giriş
smartctl, modern depolama sürücülerinde uygulanan S.M.A.R.T. (Kendi Kendini İzleme, Analiz ve Raporlama Teknolojisi) teknolojisiyle çalışmak üzere tasarlanmış, smartmontools paketine ait bir konsol yardımcı programıdır.
Kullanım örnekleri:
- 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 öngörülmesi;
- veri kaybı riskinin azaltılması;
- HDD, SSD ve NVMe sağlık durumunun izlenmesinin otomasyonu;
- disk alt sistemindeki fiziksel sorunların analizi.
Proaktif SMART izleme, gerçek bir disk arızası meydana gelmeden önce sorunu tespit etmenizi sağlar; bu, üretim ortamları için hayati önem taşır.
Gereksinimler ve ön koşullar
Desteklenen işletim sistemleri ve sürümleri
Linux:
- Debian 10+
- Ubuntu 18.04 ve üzeri
- RHEL / AlmaLinux / Rocky Linux 8+
- CentOS 7 (desteklenir, ancak güncel değildir)
- FreeBSD 12+
Windows (smartmontools aracılığıyla, sınırlı kullanım)
Aşağıdaki örnekler Linux için verilmiştir.
Gerekli yazılım ve paketler:
- smartmontools paketi
- /dev/sdX, /dev/nvmeX erişimi
- yüklü systemd (smartd için)
Erişim hakları:
- root ayrıcalıkları gereklidir
- veya sudo aracılığıyla erişim
Ön kontroller
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 tanılama sistemi
- Özellikler - durum özellikleri (Reallocated_Sector_Ct, Pending_Sectors vb.)
- Kendi kendine test - yerleşik sürücü testleri
- smartctl - SMART yönetimi için CLI yardımcı programı
- smartd - otomatik izleme arka plan programı
Nasıl çalışır
- Disk, istatistikleri bağımsız olarak toplar
- smartctl bu verileri okur
- smartd, eşik değerlerini ve olayları analiz eder
- Sorunlar ortaya çıktığında bildirimler gönderilir
İş akışı mantığı
Disk > SMART özellikleri > smartctl > smartd > günlük / e-posta / izleme
smartctl'nin temel kurulumu ve kullanımı
smartmontools yardımcı programının kurulumu
SMART ile çalışmak, smartctl yardımcı programlarını (disklerle manuel çalışma) ve smartd'yi (arka planda çalışan izleme arka plan programı) içeren smartmontools paketi yüklenmeden mümkün değildir.
Yükleme, 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, yardımcı programlar sistemde kullanılabilir hale gelir ve ek bir başlatma işlemi gerektirmeden kullanıma hazırdır.
smartctl'nin sürümünü ve kullanılabilirliğini kontrol etme
İlk adım olarak, yardımcı programın doğru şekilde kurulduğunu ve sistemde mevcut olduğunu doğrulamanız önerilir:
smartctl --version
Komut, paket sürümünü ve desteklenen teknolojilerin bir listesini görüntüler.
Bu sayede şunları yapabilirsiniz:
- güncel bir sürümün kullanıldığından emin olmak;
- NVMe, RAID ve diğer aygıt türlerinin desteklenip desteklenmediğini kontrol etmek.
Belirli bir diskte SMART desteğini kontrol etme
Ardından, sürücünün kendisinin SMART teknolojisini destekleyip desteklemediğini ve cihaz düzeyinde etkinleştirilip etkinleştirilmediğini kontrol etmek gerekir.
sudo smartctl -i /dev/sda
Doğru çıktı örneği:
SMART support is: Available - device has SMART capability. SMART support is: Enabled
- Kullanılabilir - disk fiziksel olarak SMART'ı destekliyor;
- Etkin - SMART veri toplama özelliği açıktır ve okunmaya hazırdır.
SMART destekleniyor ancak devre dışı bırakılmışsa, bu durum genellikle yeni veya daha önce kullanılmamış disklerde görülür. Böyle bir 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 komutunun yeniden çalıştırılması önerilir.
SMART özniteliklerini görüntüleme ve ilk durum değerlendirmesi
SMART'ın temel pratik değeri, diskin yüzeyinin, mekanik ve elektronik bileşenlerinin durumunu yansıtan sayısal değerler olan özelliklerinde yatmaktadır.
Özellikleri görüntülemek için şu komutu kullanın:
sudo smartctl -A /dev/sda
Çıktı, özniteliklerin mevcut değerlerini ve geçmişini içeren bir tablo içerir. Her şeyden önce, aşağıdaki göstergelere dikkat edilmelidir:
Çıktıdaki ana alanlar:
- VALUE (Mevcut Değer): Özelliğin normalleştirilmiş değeri (genellikle 1 ile 100 arasında, 100 ideal değerdir). VALUE ≤ THRESH ise disk arızalı 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 izin verilen minimum 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 değer budur.
HDD (geleneksel sabit sürücüler) için temel öznitelikler:
- Reallocated_Sector_Ct: Artış, fiziksel yüzey bozulmasına işaret eder.
- Current_Pending_Sector (Yeniden tahsis edilmeyi bekleyen sektörler): Kararsız sektörler. Sıfırdan farklı tek bir 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 temel özellikler:
- Retired_Block_Count: HDD'ler için Reallocated_Sector_Ct'ye eşdeğer bir değerdir. Hizmet dışı bırakılan blok sayısını gösterir. VALUE=100 gibi düşük bir değer bile normal olabilir.
- Reallocated_Event_Count: Yeniden tahsis olaylarının sayısı.
- SSD_Life_Left veya Percentage Used/Media Wearout Indicator: Kalan ömür (veya aşınma) yüzdesi. Düşük bir değer (örn. <%10), arızanın yakında gerçekleşeceğinin işaretidir.
- Wear_Range_Delta: Bellek hücreleri arasındaki aşınmanın eşitliğini gösteren bir gösterge.
- Power_On_Hours_and_Msec: Toplam çalışma süresi.
- Lifetime_Writes_GiB / Lifetime_Reads_GiB (Özellikler 241, 242): Yazılan/okunan toplam veri hacmi.
NVMe için temel özellikler (smartctl -a /dev/nvme0 komutu ile):
- Percentage Used: Tüketilen yazma dayanıklılığının 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: Anlık sıcaklık.
Bu aşamada, yönetici diskin durumu hakkında genel bir fikir edinir ve sorunların bariz belirtilerini tespit edebilir.
Gelişmiş yapılandırma ve pratik senaryolar
SMART, işletim sisteminin müdahalesi olmadan sürücünün kendisi tarafından gerçekleştirilen yerleşik otomatik testleri destekler.
Kısa test, temel 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 çok 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ıda şunlar gösterilir:
- test türü;
- tamamlanma durumu;
- hataların olup olmadığı.
Başarısız bir test, disk değiştirmeye hazırlanmak için doğrudan bir nedendir.
RAID denetleyicileriyle çalışma
Donanım RAID denetleyicileri genellikle SMART verilerini sistemden gizler. Bu tür durumlarda, aygıt türü açıkça belirtilmelidir.
LSI denetleyicisi örneği:
smartctl -a -d megaraid,0 /dev/sda
Burada:
- -a - mevcut tüm SMART bilgilerini (özellikler, günlükler, hatalar, genel sağlık değerlendirmesi) çıkarmak için anahtar.
- -d - aygıt türünü belirtmek için kullanılan anahtar.
- megaraid - SMART sürücüsüne, diskin bir LSI/Broadcom denetleyicisi arkasında olduğunu bildirir (genellikle sunucularda kullanılır).
- 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 yardımcı programı (örn. storcli veya MegaCLI) kullanılarak bulunabilir.
- /dev/sda - bu bağlamda bu, gerçek disk değil, sistemdeki RAID denetleyicisinin kendisini temsil eden bir sözde aygıttır. Genellikle bu, /dev/sgX (SCSI Generic) veya denetleyici sanal bir disk oluşturmuşsa basitçe /dev/sda şeklindedir.
Aygıt türü belirtilmediğinde ortaya çıkan tipik hata:
SMART support is: Unavailable
Bu, SMART'ın kullanılamadığı anlamına gelmez; yalnızca smartctl'in fiziksel diske giden yolu otomatik olarak belirleyemediği anlamına gelir. Çözüm, -d parametresini doğru şekilde belirtmektir.
Teşhis ve sorun giderme
Olası arızaların belirtileri:
- Reallocated_Sector_Ct değerinde artış;
- Current_Pending_Sector değerinin sıfırdan farklı olması;
- programlama/silme hataları (Program_Fail_Count, Erase_Fail_Count);
- otomatik test hataları;
- I/O gecikmesinde artış;
- sistem günlüklerindeki hata mesajları.
Günlük analizi
journalctl -u smartd
dmesg | grep -i error
Açıklama:
- Bekleyen Sektörler > 0 - yüksek arıza riski;
- Yeniden tahsis edilen sektörler artıyor - kademeli bozulma;
- Kendi kendine test BAŞARISIZ - disk değiştirilmelidir.
Sorunların kaynaklarını belirleme
Yanlış pozitif sonuçları ortadan kaldırmak için, SMART verilerini gerçek yük ile ilişkilendirmek önemlidir.
iostat -x 1 iotop
Diskin nereye takılı olduğunu kontrol etme:
lsblk -o NAME,SERIAL,MOUNTPOINT
Denetleyicilerin belirlenmesi:
lspci | grep -i raid
Ek ölçümler:
- 50 °C'nin üzerindeki sıcaklık;
- CRC hatalarında artış;
- kararsız SMART değerleri.
SMART ölçümleri eşik değerlerine yaklaştığında yönetici bildirimlerinin yapılandırılması
SMART verilerinin varlığı tek başına altyapı güvenliğini garanti etmez. İzlemenin önemli bir unsuru, diskin durumu bozulmaya başladığı ancak henüz arıza meydana gelmediği anda yöneticiye zamanında bildirimde bulunmaktır.
Bildirim mekanizması şunları yapmanızı sağlar:
- sürücüdeki bozulmayı erken aşamada tespit etmek;
- disk değişimini önceden planlamak;
- acil durum kaynaklı kesintileri ve veri kaybını önlemek;
- planlı bakım zaman aralıkları içinde çalışmak.
Smartmontools'ta, smartd arka plan programı bildirimleri göndermekten sorumludur. SMART özelliklerindeki değişiklikleri otomatik olarak izler ve normalden sapmalara tepki verir.
smartd bildirimlerinin çalışma prensibi
smartd arka plan programı, bir arka plan hizmeti olarak çalışır ve aşağıdaki görevleri yerine getirir:
- Disk SMART özelliklerini periyodik olarak kontrol eder.
- Mevcut değerleri fabrika eşik değerleriyle ve önceki değerlerle (değişim dinamikleri) karşılaştırır.
- Aşağıdakileri algılar: kritik özelliklerdeki artış, yeni hataların ortaya çıkması, otomatik test hataları.
- Bir bildirim oluşturur ve bunu yöneticiye gönderir.
Bildirimlerin çalışması için gereksinimler
Yapılandırma öncesinde aşağıdakilerin sağlanması gerekir:
- sistemde bir MTA (Postfix, Exim, Sendmail, ssmtp) kurulmuş ve doğru şekilde yapılandırılmış olmalıdır;
- sunucunun giden posta gönderebilmesi;
- bildirimleri almak üzere yöneticinin e-posta adresi tanımlanmış olmalıdır.
ssmtp yapılandırma örneği - sistemden e-posta göndermek için hafif ve basit bir MTA
Kurulum:
# For Debian/Ubuntu sudo apt update && sudo apt install ssmtp mailutils -y # For RHEL sudo dnf install ssmtp mailx
Yapılandırma dosyasını oluşturun
sudo nano /etc/ssmtp/ssmtp.conf
ve içeriğini düzenleyin:
# Default sender address [email protected] # SMTP server and port of your email provider mailhub=smtp.your-domain.com:587 # Alternative example: # mailhub=smtp.gmail.com:587 # For Gmail # Authentication credentials [email protected] AuthPass=your-password # Encryption settings UseSTARTTLS=YES # Use STARTTLS UseTLS=YES # Use TLS FromLineOverride=YES # Allow overriding the sender address # Hostname (specify your server's name) hostname=server1.your-domain.com # you can use hostname=localhost or specify the system's actual hostname
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önderenleri (takma adları) yapılandırın:
sudo nano /etc/ssmtp/revaliases
root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587
Mesajların başarıyla gönderilebilmesi için, sunucuda aşağıdaki bağlantı noktalarının açık olması gerekir: 587 (STARTTLS şifrelemeli gönderim için birincil), veya 25 (standart SMTP), 465 (SSL ile güvenli SMTP), eğer yapılandırmada öngörülmüşse.
Temel posta gönderme testi:
echo "SMART test message" | mail -s "SMART notification test" [email protected] # You can explicitly specify the sender echo "SMART test message" | mail -s "SMART notification test" -a "From: [email protected]" [email protected] # Via ssmtp directly echo "SMART test message" | ssmtp [email protected]
[email protected] – mesajın gönderileceği alıcı adresi.
E-posta teslim edilmezse, posta teslimat sorunları çözülene kadar smartd'nin daha fazla yapılandırılması anlamsızdır.
SMART bildirim yapılandırması şu dosyada yapılır:
/etc/smartd.conf
Basit ve çalışan bir yapılandırma örneği:
/dev/sda -a -o on -S on -m [email protected]
Parametreler:
- /dev/sda - izlenen disk;
- -a - tam kontrol seti;
- -S on - yeniden başlatmalar arasında öznitelik kaydetme özelliği etkinleştirilir;
- -o on - otomatik çevrimdışı veri toplama etkinleştirilir;
- -m - bildirimler belirtilen e-posta adresine gönderilir.
Bu noktadan itibaren smartd, arka planda disk durumunu izlemeye başlayacaktır.
Eşik değerlere yaklaşıldığında bildirimler
smartd'nin temel bir özelliği, yalnızca kritik eşik değerlerin aşılmasını değil, öznitelik değerlerindeki değişiklikleri de izlemesidir.
- Uygulamada bu, bir bildirimin şu durumlarda gönderilebileceği anlamına gelir:
- Current_Pending_Sector ilk kez ortaya çıktığında;
- Reallocated_Sector_Ct değerinde bir artış olduğunda, eşik değere henüz ulaşılmamış olsa bile;
- otomatik test hataları tespit edildiğinde;
- NVMe parametrelerinde bozulma meydana geldiğinde.
Erken arızanın en önemli özellikleri:
- Reallocated_Sector_Ct
- Current_Pending_Sector
- Çevrimdışı_Düzeltilemez
- Medya ve Veri Bütünlüğü Hataları (NVMe)
- Kullanım Yüzdesi (SSD/NVMe)
Bu parametrelerdeki en ufak değişiklikler bile dikkat edilmesi gereken bir neden olarak değerlendirilmelidir.
Bildirim kaynağı olarak otomatik testlerin kullanılması
Bilgilendirici niteliği artırmak için, öznitelik izlemeyi düzenli kendi kendine testlerle birleştirmeniz önerilir.
Zamanlamalı örnek yapılandırma:
/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]
Çalışma mantığı:
- her gün kısa bir test yapılır;
- haftada bir kez tam bir test yapılır;
- herhangi bir test başarısızlığı durumunda, yönetici bir bildirim alır.
Bildirim sıklığı ve hacminin yönetimi
Aşırı uyarıları önlemek için -M once parametresi kullanılır
Örnek:
/dev/sda -a -m [email protected] -M once
Bu modda:
- bir sorun ilk kez tespit edildiğinde bir bildirim gönderilir;
- nedeni giderilene kadar sonraki mesajlar tekrarlanmaz.
Bildirim sistemini test etmek için -M test komutunu kullanabilirsiniz
Bu, smartd'nin gerçek bir hata oluşmasını beklemeden mesaj gönderebildiğini doğrulamanızı sağlar.
Sonuç
Bu kılavuz kapsamında, proaktif disk sağlığı izleme aracı olarak smartctl ve smartd arka plan programının tam uygulama ve çalışma döngüsü sistematik olarak incelenmiştir. SMART çalışmasının temel ilkeleri, öznitelik analizi için pratik yöntemler, otomatik testlerin başlatılması ve yorumlanması, NVMe sürücüler ve RAID denetleyicileriyle çalışmanın özellikleri ile sorunların temel nedenlerini belirlemeye yönelik tanılama yöntemleri ve teknikleri ele alınmıştır. Kritik bir arıza meydana gelmeden önce bile sürücüdeki bozulmanın erken aşamalarda tespit edilmesini sağlayan bildirimlerin yapılandırılmasına özel önem verilmiştir.
Doğru şekilde 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 araçlarının kullanımı, sistem yöneticisinin reaktif olay çözümünden disk alt sisteminin bilinçli ve yönetilebilir bakımına geçmesini sağlar; bu da kesinti, veri kaybı ve planlanmamış olay risklerini azaltırken, daha ileri otomasyon ve merkezi izleme sistemleriyle entegrasyon için sağlam bir temel oluşturur.