Praćenje zdravlja diska s pomoću smartctl i smartd
Uvod
smartctl je konzolna uslužna aplikacija iz paketa smartmontools, dizajnirana za rad s tehnologijom S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) implementiranom u modernim pogonskim uređajima za pohranu.
Primjeri upotrebe:
- poslužitelji hosting tvrtki;
- VPS/VDS čvorovi;
- namjenski poslužitelji;
- datotečni poslužitelji;
- sustavi za sigurnosne kopije;
- korporativne infrastrukture.
Koje zadatke rješava:
- rano otkrivanje degradacije diska;
- predviđanje kvarova pogona;
- smanjenje rizika od gubitka podataka;
- automatizacija nadzora zdravlja HDD, SSD, NVMe;
- analiza fizičkih problema u podsustavu diska.
Proaktivno SMART praćenje omogućuje identificiranje problema prije stvarnog kvara diska, što je kritično važno za proizvodna okruženja.
Zahtjevi i preduvjeti
Podržani OS i verzije:
Linux:
- Debian 10+
- Ubuntu 18.04+
- RHEL / AlmaLinux / Rocky Linux 8+
- CentOS 7 (podržan, ali zastario)
- FreeBSD 12+
Windows (putem smartmontools, ograničena upotreba)
Primjeri u nastavku su za Linux.
Potrebni softver i paketi:
- paket smartmontools
- pristup /dev/sdX, /dev/nvmeX
- instaliran systemd (za smartd)
Prava pristupa:
- potrebne root privilegije
- ili pristup putem sudo
Preliminarne provjere
Pregled popisa diskova u sustavu:
lsblk -d -o NAME,MODEL
Pregled i osnovni pojmovi
Ključni pojmovi
- SMART – ugrađeni sustav samodijagnostike diska
- Atributi – atributi stanja (Reallocated_Sector_Ct, Pending_Sectors, itd.)
- Self-test – ugrađeni testovi pogona
- smartctl – CLI uslužni program za upravljanje SMART-om
- smartd – automatski nadzorni demon
Kako radi
- Disk samostalno prikuplja statistiku
- smartctl čita te podatke
- smartd analizira granične vrijednosti i događaje
- Obavijesti se šalju kada se pojave problemi
Logika tijeka rada
Disk > SMART atributi > smartctl > smartd > zapisnik / email / nadzor
Osnovna postavka i upotreba smartctl-a
Instalacija uslužnog programa smartmontools
Rad s SMART-om nije moguć bez instaliranog paketa smartmontools, koji uključuje uslužne programe smartctl (ručni rad s diskovima) i smartd (demon za nadzor u pozadini).
Instalacija se izvodi pomoću standardnih alata za upravljanje paketima distribucije.
Debian / Ubuntu
sudo apt update
sudo apt install smartmontools
RHEL / AlmaLinux / Rocky Linux
sudo dnf install smartmontools
Nakon instalacije, uslužni programi postaju dostupni u sustavu i spremni su za upotrebu bez dodatne inicijalizacije.
Provjera verzije i dostupnosti smartctl-a
Kao prvi korak, preporučuje se provjeriti je li uslužni program ispravno instaliran i dostupan u sustavu:
smartctl --version
Naredba ispisuje verziju paketa i popis podržanih tehnologija.
Ovo vam omogućuje:
- osigurati da se koristi ažurirana verzija;
- provjeriti podršku za NVMe, RAID i druge vrste uređaja.
Provjera podrške za SMART na određenom disku
Sljedeće, potrebno je provjeriti podržava li sam pogon SMART tehnologiju i je li omogućena na razini uređaja.
sudo smartctl -i /dev/sda
Primjer ispravnog izlaza:
SMART support is: Available - device has SMART capability. SMART support is: Enabled
Available – disk fizički podržava SMART;
Enabled – prikupljanje SMART podataka je uključeno i dostupno za čitanje.
Ako je SMART podržan, ali onemogućen, to se često vidi na novim ili prethodno neiskorištenim diskovima. U takvom slučaju, potrebno ga je ručno omogućiti:
sudo smartctl -s on /dev/sda
Nakon toga, preporučuje se ponovno pokrenuti naredbu smartctl -i kako biste osigurali da je SMART aktiviran.
Pregled SMART atributa i početna procjena zdravlja
Glavna praktična vrijednost SMART-a leži u njegovim atributima – numeričkim vrijednostima koje odražavaju stanje površine diska, mehanike i elektronike.
Za pregled atributa, koristite naredbu:
sudo smartctl -A /dev/sda
Izlaz sadrži tablicu atributa s njihovim trenutnim vrijednostima i poviješću. Prije svega, pažnju treba obratiti na sljedeće pokazatelje:
Ključna polja u izlazu:
- VALUE (Trenutna vrijednost): Normalizirana vrijednost atributa (obično od 1 do 100, 100 je idealno). Disk se smatra neispravnim ako je VALUE ≤ THRESH.
- WORST (Najgora vrijednost): Najgora vrijednost koja je postignuta tijekom rada diska.
- THRESH (Prag): Minimalna dopuštena vrijednost za VALUE. Prekoračenje praga (VALUE ≤ THRESH) znak je kritičnog stanja.
- RAW_VALUE: "Sirova", nenormalizirana vrijednost atributa. Ovo je ono što treba analizirati za procjenu trošenja i brojanje događaja.
Ključni atributi za HDD (tradicionalni tvrdi diskovi):
- Reallocated_Sector_Ct: Povećanje ukazuje na fizičku degradaciju površine.
- Current_Pending_Sector (Sektori na čekanju za premještanje): Nestabilni sektori. Čak i jedna nenulta vrijednost je znak upozorenja.
- Offline_Uncorrectable (Nepopravljive pogreške): Sektori koji se nisu mogli pročitati.
- Power_On_Hours: Ukupno vrijeme rada diska.
Ključni atributi za SSD-ove:
- Retired_Block_Count: Ekvivalent Reallocated_Sector_Ct za HDD-ove. Prikazuje broj blokova izvan upotrebe. Čak i niska vrijednost s VALUE=100 može biti normalna.
- Reallocated_Event_Count: Broj događaja premještanja.
- SSD_Life_Left ili Percentage Used/Media Wearout Indicator: Postotak preostalog vijeka trajanja (ili trošenja). Niska vrijednost (npr. <10%) znak je nadolazećeg kvara.
- Wear_Range_Delta: Pokazatelj ravnomjernosti trošenja po memorijskim ćelijama.
- Power_On_Hours_and_Msec: Ukupno vrijeme rada.
- Lifetime_Writes_GiB / Lifetime_Reads_GiB (Atributi 241, 242): Ukupni volumen podataka napisanih/pročitanih.
Ključni atributi za NVMe (putem smartctl -a /dev/nvme0):
- Percentage Used: Postotak potrošnje izdržljivosti pisanja. Primarni pokazatelj trošenja.
- Media and Data Integrity Errors: Pogreške integriteta podataka.
- Critical Warning: Zastavice kritičnih upozorenja.
- Temperature: Trenutna temperatura.
U ovoj fazi, administrator stječe opće razumijevanje stanja diska i može identificirati očite znakove problema.
Napredna konfiguracija i praktični scenariji
SMART podržava ugrađene samoprovjere, koje izvodi sam pogon bez sudjelovanja operativnog sustava.
Kratki test je dizajniran za brzu provjeru ključnih komponenti:
sudo smartctl -t short /dev/sda
Dugi test izvodi potpuni pregled površine i traje znatno više vremena:
sudo smartctl -t long /dev/sda
Nakon završetka testa, potrebno je provjeriti rezultate:
sudo smartctl -l selftest /dev/sda
Izlaz pokazuje:
- vrstu testa;
- status završetka;
- prisutnost ili odsutnost pogrešaka.
Neuspješan test je izravan razlog za pripremu zamjene diska.
Rad s RAID kontrolerima
Hardverski RAID kontroleri često skrivaju SMART podatke od sustava. U takvim slučajevima, potrebno je eksplicitno navesti vrstu uređaja.
Primjer za LSI kontroler:
smartctl -a -d megaraid,0 /dev/sda
Gdje:
- -a – ključ za ispis svih dostupnih SMART informacija (atributi, zapisnici, pogreške, ukupna procjena zdravlja).
- -d – ključ za specificiranje vrste uređaja.
- megaraid – govori SMART upravljačkom programu da je disk iza LSI/Broadcom kontrolera (često korišten u poslužiteljima).
- 0 – broj fizičkog diska (PD, Physical Drive) u RAID nizu. Ovo nije sda, već jedinstveni ID koji dodjeljuje kontroler. Može se pronaći pomoću alata za upravljanje kontrolerom (npr. storcli ili MegaCLI).
- /dev/sda – u ovom kontekstu, ovo nije pravi disk, već pseudo-uređaj koji predstavlja sam RAID kontroler u sustavu. Obično je to /dev/sgX (SCSI Generic) ili jednostavno /dev/sda ako je kontroler stvorio virtualni disk.
Tipična pogreška kada vrsta uređaja nije specificirana:
SMART support is: Unavailable
To ne znači da SMART nije dostupan – samo da smartctl nije mogao automatski odrediti put do fizičkog diska. Rješenje je ispravno specificirati parametar -d.
Dijagnostika i rješavanje problema
Znakovi mogućih kvarova:
- povećanje vrijednosti Reallocated_Sector_Ct;
- nenulta Current_Pending_Sector;
- pogreške programa/brisanja (Program_Fail_Count, Erase_Fail_Count);
- pogreške samoprovjere;
- povećanje latencije I/O;
- poruke o pogreškama u sistemskim zapisnicima.
Analiza zapisnika:
journalctl -u smartd
dmesg | grep -i error
Objašnjenje:
Pending Sectors > 0 – visok rizik od kvara;
Reallocated Sectors se povećavaju – progresivna degradacija;
Self-test FAILED – disk mora biti zamijenjen.
Identifikacija izvora problema
Kako bi se isključili lažni pozitivni rezultati, važno je povezati SMART podatke s stvarnim opterećenjem.
iostat -x 1
iotop
Provjera gdje je disk montiran:
lsblk -o NAME,SERIAL,MOUNTPOINT
Identifikacija kontrolera:
lspci | grep -i raid
Dodatne metrike:
- temperatura iznad 50 °C;
- povećanje CRC pogrešaka;
- nestabilne SMART vrijednosti.
Konfiguracija obavijesti administratora kada SMART metrike dosegnu granične vrijednosti
Sama prisutnost SMART podataka još ne jamči sigurnost infrastrukture. Ključni element nadzora je pravovremena obavijest administratora u trenutku kada stanje diska počne propadati, ali kvar još nije nastupio.
Mehanizam obavijesti omogućuje vam:
- otkriti degradaciju pogona u ranoj fazi;
- planirati zamjenu diska unaprijed;
- izbjeći hitne zastoje i gubitak podataka;
- raditi unutar planiranih prozora održavanja.
U smartmontools, demon smartd je odgovoran za slanje obavijesti. Automatski prati promjene u SMART atributima i reagira na odstupanja od norme.
Načelo rada smartd obavijesti
Demon smartd funkcionira kao pozadinska usluga i obavlja sljedeće zadatke:
- Povremeno ispituje SMART atribute diska.
- Uspoređuje trenutne vrijednosti s: tvorničkim pragovima, prethodnim vrijednostima (dinamika promjena).
- Otkriva: rast kritičnih atributa, pojavu novih pogrešaka, neuspjehe samoprovjere.
- Generira obavijest i šalje je administratoru.
Zahtjevi za rad obavijesti
Prije konfiguracije, potrebno je osigurati sljedeće:
- u sustavu je instaliran i ispravno konfiguriran MTA (Postfix, Exim, Sendmail, ssmtp);
- poslužitelj je sposoban slati odlaznu poštu;
- definirana je adresa e-pošte administratora za primanje obavijesti.
Primjer konfiguracije ssmtp – laganog i jednostavnog MTA za slanje pošte iz sustava.
Instalacija:
Debian/Ubuntu:
sudo apt update && sudo apt install ssmtp mailutils -y
RHEL:
sudo dnf install ssmtp mailx
Kreirajte konfiguracijsku datoteku:
sudo nano /etc/ssmtp/ssmtp.conf
i uredite sadržaj:
# Zadana adresa pošiljatelja [email protected] # SMTP poslužitelj i port vašeg pružatelja usluga e-pošte mailhub=smtp.your-domain.com:587 # Alternativni primjer: # mailhub=smtp.gmail.com:587 # Za Gmail # Podaci za autentifikaciju [email protected] AuthPass=your-password # Postavke enkripcije UseSTARTTLS=YES # Koristi STARTTLS UseTLS=YES # Koristi TLS FromLineOverride=YES # Dozvoli prepisivanje adrese pošiljatelja # Ime hosta (navedite ime vašeg poslužitelja) hostname=server1.your-domain.com # možete koristiti hostname=localhost ili navesti stvarno ime sustava
Spremite datoteku i konfigurirajte prava pristupa:
sudo chmod 640 /etc/ssmtp/ssmtp.conf
sudo chown root:mail /etc/ssmtp/ssmtp.conf
Konfigurirajte pošiljatelje (revaliases):
sudo nano /etc/ssmtp/revaliases
root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587
Za uspješno slanje poruka, sljedeći portovi moraju biti otvoreni na poslužitelju: 587 (primarni za slanje s STARTTLS enkripcijom), ili 25 (standardni SMTP), 465 (sigurni SMTP s SSL-om), ako su predviđeni konfiguracijom.
Osnovni test slanja pošte:
echo "SMART testna poruka" | mail -s "SMART test obavijesti" [email protected]
Možete eksplicitno navesti pošiljatelja:
echo "SMART testna poruka" | mail -s "SMART test obavijesti" -a "From: [email protected]" [email protected]
Ili izravno putem ssmtp:
echo "SMART testna poruka" | ssmtp [email protected]
[email protected] – adresa primatelja na koju će poruka biti poslana.
Ako e-pošta nije isporučena, daljnja konfiguracija smartd-a je besmislena dok se ne riješe problemi s isporukom pošte.
Konfiguracija SMART obavijesti obavlja se u datoteci:
/etc/smartd.conf
Primjer jednostavne radne konfiguracije:
/dev/sda -a -o on -S on -m [email protected]
Parametri:
- /dev/sda – disk koji se nadzire;
- -a – potpuni skup provjera;
- -S on – spremanje atributa između ponovnih pokretanja je omogućeno;
- -o on – automatsko prikupljanje podataka izvan mreže je aktivirano;
- -m – obavijesti se šalju na navedenu e-poštu.
Od ovog trenutka, smartd će početi pratiti stanje diska u pozadini.
Obavijesti kada se približavaju granične vrijednosti
Ključna značajka smartd-a je da prati promjene u vrijednostima atributa, a ne samo njihovo kritično prekoračenje.
U praksi, to znači da se obavijest može poslati:
- pri prvom pojavljivanju Current_Pending_Sector;
- pri povećanju Reallocated_Sector_Ct, čak i ako prag još nije dosegnut;
- pri otkrivanju pogrešaka samoprovjere;
- pri degradaciji NVMe parametara.
Najznačajniji atributi ranog kvara:
- Reallocated_Sector_Ct
- Current_Pending_Sector
- Offline_Uncorrectable
- Media and Data Integrity Errors (NVMe)
- Percentage Used (SSD/NVMe)
Čak i minimalne promjene u tim parametrima trebaju se smatrati razlogom za pažnju.
Korištenje samoprovjera kao izvora obavijesti
Kako bi se povećala informativnost, preporučuje se kombinirati praćenje atributa s redovitim samoprovjerama.
Primjer konfiguracije s rasporedom:
/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]
Logika rada:
- kratki test se izvodi svakodnevno;
- puni test se izvodi jednom tjedno;
- pri bilo kojem neuspjehu testa, administrator prima obavijest.
Upravljanje učestalošću i volumenom obavijesti
Kako bi se izbjegle prekomjerne obavijesti, koristi se parametar -M once:
/dev/sda -a -m [email protected] -M once
U ovom načinu:
- obavijest se šalje pri prvom otkrivanju problema;
- naknadne poruke se ne dupliciraju dok se uzrok ne riješi.
Za testiranje sustava obavijesti, možete koristiti -M test. Ovo vam omogućuje da provjerite je li smartd sposoban slati poruke bez čekanja na stvarnu pogrešku.
Zaključak
U okviru ovog priručnika, sustavno je pregledan cijeli ciklus implementacije i rada smartctl-a i demona smartd kao alata za proaktivno praćenje zdravlja diska. Obrađeni su osnovni principi rada SMART-a, praktične metode za analizu atributa, pokretanje i interpretacija samoprovjera, specifičnosti rada s NVMe pogonima i RAID kontrolerima, kao i dijagnostičke metode i tehnike za identifikaciju uzroka problema. Posebna pažnja posvećena je konfiguraciji obavijesti, koje omogućuju otkrivanje degradacije pogona u ranim fazama, čak i prije nego što dođe do kritičnog kvara.
Ispravno konfigurirano SMART praćenje sastavni je dio pouzdane poslužiteljske infrastrukture i treba se smatrati obveznim operativnim standardom. Korištenje smartctl-a i smartd-a omogućuje sistemskom administratoru prelazak s reaktivnog rješavanja incidenata na svjesno, upravljivo održavanje podsustava diska, smanjujući rizike od zastoja, gubitka podataka i neplaniranih incidenata, dok također stvara čvrstu osnovu za daljnju automatizaciju i integraciju s centraliziranim sustavima nadzora.