Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
SSD ve NVMe sürücüler yazılan veri miktarına göre yıpranır ve çoğu zaman ani değil, yavaş yavaş arızaya gider. NVMe ve SSD sağlık izleme ile bir sürücünün ne kadar ömrünün kaldığını, hata sayaçlarını ve sıcaklığını önceden görür, arıza olmadan yedekleme veya değişim planlayabilirsiniz.
Bu rehber sistem yöneticilerine yöneliktir. smartctl (smartmontools paketi) ve nvme-cli ile sürücü durumunu okuyacak, kısa/uzun testleri çalıştıracak ve smartd ile e-posta uyarısı kuracağız. Süre yaklaşık 20-30 dakikadır. Okuma komutları güvenlidir ve sürücüye veri yazmaz.
Gereksinimler
- Linux çalışan bir sunucu (Debian, Ubuntu, AlmaLinux veya Rocky) ve sudo yetkisi
- Bir veya daha fazla NVMe ya da SATA SSD
- smartmontools ve nvme-cli paketleri
- Uyarı e-postası için çalışan bir yerel posta aktarıcısı (isteğe bağlı)
- Donanım RAID denetleyicisi kullanıyorsanız, denetleyiciye özgü smartctl seçenekleri (
-d) gerekebilir
Adım adım SSD ve NVMe sağlık izleme
1. Araçları kurun ve sürücüleri listeleyin
Her iki aile için paketler standart depolardadır. Sürücü adlarını öğrenmek için lsblk ve nvme list komutlarını kullanın.
# Debian / Ubuntu
sudo apt update
sudo apt install smartmontools nvme-cli
# AlmaLinux / Rocky
sudo dnf install smartmontools nvme-cli
lsblk -d -o NAME,MODEL,SIZE,ROTA
sudo nvme list
sudo smartctl --scanROTA sütununda 0 değeri SSD anlamına gelir. NVMe sürücüler /dev/nvme0n1 gibi görünür; smartctl'de denetleyici cihazı olan /dev/nvme0 adını kullanırız.
2. NVMe sağlığını nvme-cli ile okuyun
NVMe sürücülerde sağlık bilgisi standart bir günlük sayfasında (SMART/Health Information) bulunur. Aşağıdaki komut bu sayfayı gösterir.
sudo nvme smart-log /dev/nvme0Çıktıdaki kritik alanlar şunlardır:
- critical_warning: 0 olmalıdır; sıfırdan farklıysa sürücü bir kritik durum bildiriyor demektir.
- percentage_used: Üreticinin tahmin ettiği ömür tüketimi yüzdesidir. 100'e yaklaştıkça değişim planlayın.
- available_spare ve available_spare_threshold: Yedek blok yüzdesi eşiğin altına inmemelidir.
- media_errors ve num_err_log_entries: Artmaya devam eden bir değer sorun işaretidir.
- unsafe_shutdowns: Ani güç kesintisi sayısıdır; çok artıyorsa güç altyapısına bakın.
- temperature: Sürekli yüksek sıcaklık ömrü kısaltır.
3. smartctl ile ayrıntılı bilgi alın
smartctl hem NVMe hem SATA için aynı komut ailesiyle çalışır. Genel sağlık özeti ve tüm öznitelikler için:
sudo smartctl -H /dev/nvme0
sudo smartctl -a /dev/nvme0SATA SSD'de öznitelik tablosu için -A kullanılır. Öznitelik adları üreticiye göre değişir; aşırı yorum yapmadan önce sürücünüzün üretici belgesine bakın.
sudo smartctl -H /dev/sda
sudo smartctl -A /dev/sda
sudo smartctl -i /dev/sdaSATA SSD'lerde sık görülen öznitelikler Reallocated_Sector_Ct, Wear_Leveling_Count veya Media_Wearout_Indicator, Power_On_Hours ve Temperature_Celsiusdir. Bir değerin sıfırdan farklı olması tek başına arıza sayılmaz; zaman içinde artış hızı önemlidir.
4. Kendi kendine testleri çalıştırın
Kısa test dakikalar içinde tamamlanır; uzun test tüm yüzeyi tarar ve daha uzun sürer. Testler okuma yapar, veriyi değiştirmez ama diski meşgul eder; yoğun saatlerde uzun testi çalıştırmayın.
sudo smartctl -t short /dev/sda
sudo smartctl -l selftest /dev/sda
# NVMe için
sudo nvme device-self-test /dev/nvme0 -s 1
sudo nvme self-test-log /dev/nvme0Bazı NVMe sürücüler veya eski nvme-cli sürümleri kendi kendine testi desteklemeyebilir; bu durumda komut hata verir ve zararsızdır. Uzun test için SATA'da -t long, NVMe'de -s 2 kullanılır.
5. smartd ile sürekli izleme ve uyarı kurun
smartd arka planda sürücüleri periyodik kontrol eder ve sorun görürse uyarı gönderir. Yapılandırma dosyası Debian ve Ubuntu'da /etc/smartd.conf, AlmaLinux ve Rocky'de /etc/smartmontools/smartd.conf yolundadır. Aşağıdaki kural bulunan tüm sürücüleri izler ve sorunu root'a e-posta ile bildirir. smartd, DEVICESCAN satırından sonraki satırları yok saydığı için dosyadaki mevcut DEVICESCAN satırını bu satırla değiştirin.
# Debian / Ubuntu (RHEL tabanlıda /etc/smartmontools/smartd.conf)
sudo cp -a /etc/smartd.conf /etc/smartd.conf.yedek
sudo nano /etc/smartd.confDEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) -m rootBu satır tüm öznitelikleri izler, her gün 02:00'de kısa, her cumartesi 03:00'te uzun test planlar ve uyarıyı root'a gönderir; -o ve -S yalnızca SATA için anlamlıdır. -m için kullanılan e-posta adresini gerçek bir adrese yönlendirin ve sunucunuzda posta gönderiminin çalıştığını ayrıca doğrulayın. Ardından servisi etkinleştirin:
# Debian / Ubuntu
sudo systemctl enable --now smartmontools
# AlmaLinux / Rocky
sudo systemctl enable --now smartd6. Değerleri düzenli kaydedin
Yıpranma yüzdesinin zaman içindeki eğilimini görmek için günlük bir kayıt tutmak değerlidir. Basit bir betik ile sağlık çıktısını tarihli bir dosyaya ekleyebilirsiniz; bu komut cron veya systemd timer ile günlük çalıştırılabilir.
sudo mkdir -p /var/log/disk-saglik
sudo sh -c 'date >> /var/log/disk-saglik/nvme0.log; nvme smart-log /dev/nvme0 >> /var/log/disk-saglik/nvme0.log'Doğrulama
Önce sağlık özetinin olumlu olduğunu, ardından smartd'nin sürücüleri tanıyıp çalıştığını doğrulayın.
sudo smartctl -H /dev/nvme0
sudo nvme smart-log /dev/nvme0 | grep -E 'critical_warning|percentage_used|available_spare'
sudo systemctl status smartmontools
journalctl -u smartmontools -n 20 --no-pagerBeklenen sonuç: smartctl çıktısında sağlık testi PASSED, critical_warning değeri 0, servis active (running) ve günlükte izlenen sürücülerin listesi. RHEL tabanlı sistemlerde servis adı smartd olduğundan systemctl status smartd kullanın.
Sık karşılaşılan sorunlar
- smartctl 'Permission denied' veriyor: Komutu sudo ile çalıştırın; sürücü cihazlarına yalnızca root erişebilir.
- 'Unable to detect device type' hatası: Sürücü bir RAID denetleyicisinin arkasındadır. Denetleyici tipine uygun
-dseçeneğini (örneğin-d megaraid,N) resmî smartctl belgesinden bulun. - Sanal makinede SMART verisi yok: Sanal diskler fiziksel SMART bilgisini iletmez. İzlemeyi fiziksel ana makinede yapın.
- smartd uyarı e-postası gelmiyor: Sunucuda posta gönderimi yapılandırılmamış olabilir.
-madresini ve yerel posta aktarıcısını kontrol edin. - percentage_used 100'ü aştı: Bu, sürücünün garantili yazma ömrünün tüketildiğini gösterir, hemen arıza anlamına gelmez ama yedekleyip değişim planlamanın zamanıdır.
Güvenlik ve bakım notları
- Sağlık verisi iyi görünse bile düzenli yedek alın; SSD'ler uyarısız da arızalanabilir.
- Yıpranma yüzdesi için bir uyarı eşiği belirleyin (örneğin yüzde 80) ve değişimi bu eşikte planlayın.
- Aynı tip ve aynı yaşta sürücüler birlikte yıprandığı için RAID dizilerinde sürücüleri farklı zamanlarda değiştirmeyi düşünün.
- Testleri yoğun saatlerin dışında çalıştırın; uzun test G/Ç performansını etkileyebilir.
- smartd günlüklerini ve uyarı adresini periyodik olarak test edin; sessiz bir izleme sistemi izleme olmamasından kötüdür.
- Yıpranma ve yazma yükünü azaltmak için gereksiz günlükleme ve sık swap kullanımını gözden geçirin.
Sık sorulan sorular
percentage_used değeri ne anlama gelir?
Üreticinin ömür tahminine göre sürücünün ne kadarını tükettiğini gösteren yüzdedir. 100 ulaşıldığında sürücü hemen bozulmaz ama garantili dayanıklılığı bitmiştir; değişimi planlamalısınız.
SMART 'PASSED' demesi sürücünün sağlam olduğu anlamına mı gelir?
Hayır. Genel sağlık sonucu yalnızca üreticinin belirlediği eşiklerin aşılıp aşılmadığını gösterir. Öznitelikleri, hata sayaçlarını ve eğilimleri de izlemeniz gerekir.
NVMe sürücülerde de smartd kullanabilir miyim?
Evet. smartmontools NVMe'yi destekler; DEVICESCAN satırı NVMe sürücüleri de bulur. Bazı eski sürümler NVMe testi için sınırlı olabilir, bu durumda nvme-cli çıktısını ayrıca izleyin.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- Prometheus node_exporter ile sunucu izleme ve temel uyarılarLinux sunucunuzu Prometheus node_exporter ile izleyin: kurulum, güvenli erişim, scrape yapılandırması ve disk, bellek, CPU için temel uyarı kuralları.
- Dedicated sunucuda donanım ve stres testi (memtester, stress-ng, fio)Yeni teslim alınan dedicated sunucuyu üretime almadan önce memtester, stress-ng ve fio ile RAM, CPU ve disk stres testlerinden geçirin; sonuçları nasıl yorumlayacağınızı öğrenin.
- Dedicated sunucuda ağ bonding (active-backup ve LACP) ile yedekli bağlantı (netplan ve NetworkManager)Dedicated sunucunuzdaki iki ağ kartını bonding ile birleştirin: active-backup ve LACP (802.3ad) kurulumu, netplan ve NetworkManager örnekleri, failover testi.
- Colocation’a sunucu yerleştirmeden önce yapılacaklarSunucuyu colocation veri merkezine göndermeden önce envanter, BMC ve ağ ayarları, güvenlik, yedek ve test adımlarını tamamlayarak kesintisiz bir yerleştirme planlayın.