Namestitev in nastavitev programa smartctl za proaktivno spremljanje stanja diskov
Uvod
smartctl je konzolni pripomoček iz paketa smartmontools, namenjen delovanju s tehnologijo S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology), ki je vgrajena v sodobne pomnilniške enote.
Primeri uporabe:
- strežniki gostiteljskih podjetij;
- VPS/VDS vozlišča;
- namenski strežniki;
- datotečni strežniki;
- sistemi za varnostno kopiranje;
- podjetniške infrastrukture.
Katere naloge rešuje:
- zgodnje odkrivanje poslabšanja stanja diskov;
- napovedovanje okvar diskov;
- zmanjšanje tveganja izgube podatkov;
- avtomatizacija spremljanja stanja trdih diskov (HDD), SSD in NVMe;
- analiza fizičnih težav v diskovnem podsistemu.
Proaktivno spremljanje SMART vam omogoča, da odkrijete težavo še pred dejansko okvaro diska, kar je ključnega pomena za produkcijska okolja.
Zahteve in predpogoji
Podprti operacijski sistemi in različice
Linux:
- Debian 10+
- Ubuntu 18.04+
- RHEL / AlmaLinux / Rocky Linux 8+
- CentOS 7 (podprt, vendar zastarel)
- FreeBSD 12+
Windows (prek smartmontools, omejena uporaba)
Spodnji primeri so navedeni za Linux.
Potrebna programska oprema in paketi:
- paket smartmontools
- dostop do /dev/sdX, /dev/nvmeX
- nameščen sistem systemd (za smartd)
Dostopne pravice:
- potrebne so pravice root
- ali dostop prek sudo
Predhodni pregledi
Pregled seznama diskov v sistemu:
lsblk -d -o NAME,MODEL
Pregled in osnovni pojmi
Ključni izrazi
- SMART – vgrajen sistem za samodiagnostiko diskov
- Atributi – atributi stanja (Reallocated_Sector_Ct, Pending_Sectors itd.)
- Samopreizkus – vgrajeni testi diska
- smartctl – orodje CLI za upravljanje sistema SMART
- smartd – demon za samodejno spremljanje
Kako deluje
- Disk samostojno zbira statistične podatke
- smartctl prebere te podatke
- smartd analizira mejne vrednosti in dogodke
- Ob pojavu težav se pošljejo obvestila
Logika delovanja
Disk > Atributi SMART > smartctl > smartd > dnevnik / e-pošta / spremljanje
Osnovna nastavitev in uporaba smartctl
Namestitev programa smartmontools
Delovanje s sistemom SMART ni mogoče brez nameščenega paketa smartmontools, ki vključuje orodja smartctl (ročno delo z diski) in smartd (demon za spremljanje v ozadju).
Namestitev se izvede s standardnimi orodji za upravljanje paketov v distribuciji.
Debian / Ubuntu
sudo apt update sudo apt install smartmontools
RHEL / AlmaLinux / Rocky Linux
sudo dnf install smartmontools
Po namestitvi so orodja na voljo v sistemu in so pripravljena za uporabo brez dodatne inicializacije.
Preverjanje različice in razpoložljivosti smartctl
Kot prvi korak je priporočljivo preveriti, ali je program pravilno nameščen in na voljo v sistemu:
smartctl --version
Ukaz izpiše različico paketa in seznam podprtih tehnologij.
To vam omogoča:
- preverite, ali uporabljate najnovejšo različico;
- preverite podporo za NVMe, RAID in druge vrste naprav.
Preverjanje podpore za tehnologijo SMART na določenem disku
Nato je treba preveriti, ali disk sam podpira tehnologijo SMART in ali je ta omogočena na ravni naprave.
sudo smartctl -i /dev/sda
Primer pravilnega izpisa:
SMART support is: Available - device has SMART capability. SMART support is: Enabled
- Na voljo – disk fizično podpira tehnologijo SMART;
- Omogočeno – zbiranje podatkov SMART je vklopljeno in na voljo za branje.
Če je tehnologija SMART podprta, vendar onemogočena, se to pogosto pojavi pri novih ali prej neuporabljenih diskih. V takem primeru jo je treba omogočiti ročno:
sudo smartctl -s on /dev/sda
Po tem je priporočljivo ponovno izvesti ukaz smartctl -i, da se prepričate, da je SMART aktiviran.
Pregled atributov SMART in začetna ocena stanja
Glavna praktična vrednost sistema SMART leži v njegovih atributih – številčnih vrednostih, ki odražajo stanje površine diska, mehanike in elektronike.
Za ogled atributov uporabite ukaz:
sudo smartctl -A /dev/sda
Izpis vsebuje tabelo atributov s trenutnimi vrednostmi in zgodovino. Najprej je treba pozornost nameniti naslednjim kazalnikom:
Ključna polja v izpisu:
- VALUE (trenutna vrednost): normalizirana vrednost atributa (običajno od 1 do 100, pri čemer je 100 idealna vrednost). Disk se šteje za okvarjenega, če je VALUE ≤ THRESH.
- WORST (najslabša vrednost): Najslabša vrednost, ki je bila dosežena med delovanjem diska.
- THRESH (prag): najmanjša dovoljena vrednost za VALUE. Preseganje praga (VALUE ≤ THRESH) je znak kritičnega stanja.
- RAW_VALUE: »Surova«, nenormalizirana vrednost atributa. To je tisto, kar je treba analizirati za oceno obrabe in štetje dogodkov.
Ključni atributi za HDD (tradicionalne trde diske):
- Reallocated_Sector_Ct: Povečanje kaže na fizično poslabšanje površine.
- Current_Pending_Sector (sektorji, ki čakajo na ponovno dodelitev): nestabilni sektorji. Že ena sama vrednost, ki ni nič, je opozorilni znak.
- Offline_Uncorrectable (Nepopravljive napake): sektorji, ki jih ni bilo mogoče prebrati.
- Power_On_Hours: Skupni čas delovanja diska.
Ključni atributi za SSD-je:
- Retired_Block_Count: Ekvivalent Reallocated_Sector_Ct za HDD-je. Prikazuje število blokov, ki so bili umaknjeni iz uporabe. Tudi nizka vrednost z VALUE=100 je lahko normalna.
- Reallocated_Event_Count: Število dogodkov ponovne dodelitve.
- SSD_Life_Left ali Percentage Used/Media Wearout Indicator: Odstotek preostale življenjske dobe (ali obrabe). Nizka vrednost (npr. <10 %) je znak neizbežne okvare.
- Wear_Range_Delta: Kazalnik enakomernosti obrabe po pomnilniških celicah.
- Power_On_Hours_and_Msec: Skupni čas delovanja.
- Lifetime_Writes_GiB / Lifetime_Reads_GiB (atributi 241, 242): Skupna količina zapisanih/prebranih podatkov.
Ključni atributi za NVMe (prek smartctl -a /dev/nvme0):
- Percentage Used: Odstotek porabljene vzdržljivosti pri pisanju. Glavni kazalnik obrabe.
- Napake celovitosti medija in podatkov: Napake celovitosti podatkov.
- Kritično opozorilo: Oznake kritičnih opozoril.
- Temperatura: Trenutna temperatura.
V tej fazi si skrbnik pridobi splošno razumevanje stanja diska in lahko prepozna očitne znake težav.
Napredna konfiguracija in praktični scenariji
SMART podpira vgrajene samopreverjanja, ki jih izvaja sam disk brez vpletenosti operacijskega sistema.
Kratek test je namenjen hitremu pregledu ključnih komponent:
sudo smartctl -t short /dev/sda
Dolgi test opravi skeniranje celotne površine in traja znatno dlje:
sudo smartctl -t long /dev/sda
Po zaključku testa je treba preveriti rezultate:
sudo smartctl -l selftest /dev/sda
Izpis prikazuje:
- vrsto testa;
- stanje zaključka;
- prisotnost ali odsotnost napak.
Neuspešen test je neposreden razlog za pripravo na zamenjavo diska.
Delo z RAID-krmilniki
Strojni RAID-krmilniki pogosto skrivajo podatke SMART pred sistemom. V takih primerih je treba izrecno navesti vrsto naprave.
Primer za LSI krmilnik:
smartctl -a -d megaraid,0 /dev/sda
Kjer:
- -a – ključ za izpis vseh razpoložljivih podatkov SMART (atributi, dnevniki, napake, splošna ocena stanja).
- -d - ključ za določitev tipa naprave.
- megaraid – sporoči gonilniku SMART, da je disk priključen na krmilnik LSI/Broadcom (pogosto uporabljen v strežnikih).
- 0 – številka fizičnega diska (PD, Physical Drive) v RAID-nizu. To ni sda, ampak edinstvena identifikacijska številka, ki jo dodeli krmilnik. Najdete jo z uporabo programa za upravljanje krmilnika (npr. storcli ali MegaCLI).
- /dev/sda – v tem kontekstu to ni dejanski disk, ampak psevdo-naprava, ki v sistemu predstavlja sam RAID-krmilnik. Običajno je to /dev/sgX (SCSI Generic) ali preprosto /dev/sda, če je krmilnik ustvaril virtualni disk.
Tipična napaka, če vrsta naprave ni določena:
SMART support is: Unavailable
To ne pomeni, da je SMART nedostopen – pomeni le, da smartctl ni mogel samodejno določiti poti do fizičnega diska. Rešitev je pravilna določitev parametra -d.
Diagnostika in odpravljanje težav
Znaki morebitnih napak:
- povečanje vrednosti Reallocated_Sector_Ct;
- vrednost Current_Pending_Sector, ki ni enaka nič;
- napake pri programiranju/brisanju (Program_Fail_Count, Erase_Fail_Count);
- napake pri samopreverjanju;
- povečanje zakasnitve I/O;
- napake v sistemskih dnevnikih.
Analiza dnevnikov
journalctl -u smartd
dmesg | grep -i error
Pojasnilo:
- Čakajoči sektorji > 0 – visoko tveganje za okvaro;
- Število ponovno dodeljenih sektorjev narašča – postopno poslabšanje delovanja;
- Samopreizkus NEUSPEŠEN – disk je treba zamenjati.
Ugotavljanje vzrokov težav
Da bi izključili lažne pozitivne rezultate, je pomembno, da se podatki SMART uskladijo z dejansko obremenitvijo.
iostat -x 1 iotop
Preverjanje, kje je disk priključen:
lsblk -o NAME,SERIAL,MOUNTPOINT
Prepoznavanje krmilnikov:
lspci | grep -i raid
Dodatni kazalniki:
- temperatura nad 50 °C;
- povečanje števila napak CRC;
- nestabilne vrednosti SMART.
Nastavitev obvestil za skrbnika, ko se kazalniki SMART približujejo mejnim vrednostim
Sama prisotnost podatkov SMART še ne zagotavlja varnosti infrastrukture. Ključni element spremljanja je pravočasno obveščanje administratorja v trenutku, ko se stanje diska začne poslabševati, vendar do okvare še ni prišlo.
Mehanizem obveščanja vam omogoča:
- zgodaj odkrijete poslabšanje stanja diska;
- vnaprej načrtujete zamenjavo diska;
- izogniti se nujnim izpadom in izgubi podatkov;
- delovanje v okviru načrtovanih časovnih okvirjev za vzdrževanje.
V programu smartmontools je za pošiljanje obvestil odgovoren demon smartd. Samodejno spremlja spremembe v SMART-atributih in se odziva na odstopanja od norme.
Načelo delovanja obvestil smartd
Daemon smartd deluje kot storitev v ozadju in opravlja naslednje naloge:
- Redno preverja atribute SMART diska.
- Primerja trenutne vrednosti s: tovarniškimi pragovi, prejšnjimi vrednostmi (dinamika sprememb).
- Zazna: povečanje kritičnih atributov, pojav novih napak, neuspešne samopreverjanja.
- Ustvari obvestilo in ga pošlje skrbniku.
Zahteve za delovanje obvestil
Pred konfiguracijo je treba zagotoviti naslednje:
- da je v sistemu nameščen in pravilno konfiguriran MTA (Postfix, Exim, Sendmail, ssmtp);
- da je strežnik sposoben pošiljati odhodno pošto;
- da je določen e-poštni naslov skrbnika za prejemanje obvestil.
Primer konfiguracije ssmtp – lahkega in preprostega MTA za pošiljanje e-pošte iz sistema
Namestitev:
# For Debian/Ubuntu sudo apt update && sudo apt install ssmtp mailutils -y # For RHEL sudo dnf install ssmtp mailx
Ustvarite konfiguracijsko datoteko
sudo nano /etc/ssmtp/ssmtp.conf
in uredite vsebino:
# 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
Shranite datoteko in nastavite dostopna dovoljenja:
sudo chmod 640 /etc/ssmtp/ssmtp.conf sudo chown root:mail /etc/ssmtp/ssmtp.conf
Nastavite pošiljatelje (prezivke):
sudo nano /etc/ssmtp/revaliases
root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587
Za uspešno pošiljanje sporočil morajo biti na strežniku odprta naslednja vrata: 587 (glavno za pošiljanje s šifriranjem STARTTLS) ali 25 (standardni SMTP), 465 (varen SMTP s SSL), če so to predvidena v konfiguraciji.
Osnovni preizkus pošiljanja e-pošte:
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] – naslov prejemnika, na katerega bo poslano sporočilo.
Če e-pošta ni dostavljena, je nadaljnja konfiguracija smartd brez smisla, dokler se težave z dostavo e-pošte ne rešijo.
Konfiguracija obvestil SMART se izvede v datoteki:
/etc/smartd.conf
Primer preproste delujoče konfiguracije:
/dev/sda -a -o on -S on -m [email protected]
Parametri:
- /dev/sda – disk, ki se nadzoruje;
- -a – celoten nabor preverjanj;
- -S on – omogočeno shranjevanje atributov med ponovnimi zagoni;
- -o on – aktivirano je samodejno zbiranje podatkov v načinu brez povezave;
- -m – obvestila se pošiljajo na navedeni e-poštni naslov.
Od tega trenutka naprej bo smartd v ozadju začel spremljati stanje diska.
Obvestila ob približevanju mejnim vrednostim
Ključna značilnost programa smartd je, da spremlja spremembe vrednosti atributov, ne le njihovo kritično preseganje.
- V praksi to pomeni, da se obvestilo lahko pošlje:
- ob prvem pojavu Current_Pending_Sector;
- ob povečanju vrednosti Reallocated_Sector_Ct, tudi če prag še ni bil dosežen;
- ob zaznavi napak pri samopreverjanju;
- ob poslabšanju parametrov NVMe.
Najpomembnejši kazalniki zgodnje okvare:
- Reallocated_Sector_Ct
- Current_Pending_Sector
- Offline_Uncorrectable
- Napake celovitosti medija in podatkov (NVMe)
- Odstotek porabe (SSD/NVMe)
Že najmanjše spremembe teh parametrov je treba obravnavati kot razlog za pozornost.
Uporaba samopreverjanj kot vira obvestil
Za večjo informativnost priporočamo, da spremljanje atributov kombinirate z rednimi samopreverjanji.
Primer konfiguracije z urnikom:
/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]
Način delovanja:
- vsak dan se opravi kratek test;
- enkrat tedensko se izvede celoten test;
- ob kakršni koli napaki pri testiranju administrator prejme obvestilo.
Upravljanje pogostosti in obsega obvestil
Da bi se izognili prekomernemu številu opozoril, se uporablja parameter -M once
Primer:
/dev/sda -a -m [email protected] -M once
V tem načinu:
- se obvestilo pošlje ob prvem zaznanju težave;
- nadaljnja obvestila se ne ponavljajo, dokler vzrok ni odpravljen.
Za preizkus sistema obveščanja lahko uporabite -M test
Tako lahko preverite, ali je smartd sposoben pošiljati sporočila, ne da bi čakal na dejansko napako.
Zaključek
V okviru tega priročnika je bil sistematično pregledan celoten cikel implementacije in delovanja smartctl ter demon smartd kot orodja za proaktivno spremljanje stanja diskov. Obravnavana so bila osnovna načela delovanja SMART, praktične metode za analizo atributov, zagon in interpretacija samopreverjanj, posebnosti dela z NVMe-diskami in RAID-krmilniki ter diagnostične metode in tehnike za ugotavljanje temeljnih vzrokov težav. Posebna pozornost je bila namenjena konfiguraciji obvestil, ki omogočajo odkrivanje poslabšanja stanja diska v zgodnjih fazah, še preden pride do kritične okvare.
Pravilno konfigurirano spremljanje SMART je sestavni del zanesljive strežniške infrastrukture in ga je treba obravnavati kot obvezen operativni standard. Uporaba orodij smartctl in smartd sistemskemu administratorju omogoča prehod od reaktivnega reševanja incidentov k premišljenemu in obvladljivemu vzdrževanju diskovnega podsistema, s čimer se zmanjšajo tveganja za izpad delovanja, izgubo podatkov in nenačrtovane incidente, hkrati pa se ustvari trdna podlaga za nadaljnjo avtomatizacijo in integracijo s centraliziranimi sistemi spremljanja.