Spremljanje zdravja diska s smartctl in smartd | INTROSERV
EUR
european

EUR

usa

USD

Slovenia Sl
Ex. VAT Ex. VAT 0%

Spremljanje zdravja diska s smartctl in smartd

Uvod

smartctl je konzolna pripomoček iz paketa smartmontools, zasnovan za delo s tehnologijo S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology), ki je implementirana v sodobnih pomnilniških pogonih.

Primeri uporabe:

  • strežniki gostiteljskih podjetij;
  • VPS/VDS vozlišča;
  • namenski strežniki;
  • datotečni strežniki;
  • sistemi za varnostno kopiranje;
  • korporativne infrastrukture.

Kakšne naloge rešuje:

  • zgodnje odkrivanje degradacije diska;
  • napovedovanje okvar pogona;
  • zmanjšanje tveganja izgube podatkov;
  • avtomatizacija spremljanja zdravja HDD, SSD, NVMe;
  • analiza fizičnih težav v diskovnem podsistemu.

Info

Proaktivno spremljanje SMART omogoča prepoznavanje težave pred dejansko okvaro diska, kar je kritično pomembno za proizvodna okolja.

Zahteve in predpogoji

Podprti OS in različice:

Linux:

  • Debian 10+
  • Ubuntu 18.04+
  • RHEL / AlmaLinux / Rocky Linux 8+
  • CentOS 7 (podprto, vendar zastarelo)
  • FreeBSD 12+

Windows (prek smartmontools, omejena uporaba)

Primeri spodaj so podani za Linux.

Potreben programska oprema in paketi:

  • paket smartmontools
  • dostop do /dev/sdX, /dev/nvmeX
  • nameščen systemd (za smartd)

Dostopne pravice:

  • potrebne so privilegije root
  • ali dostop prek sudo

Predhodni pregledi

Ogled seznama diskov v sistemu:

lsblk -d -o NAME,MODEL

Pregled in osnovni pojmi

Ključni izrazi

  • SMART – vgrajen sistem samodiagnoze diska
  • Atributi – atributi stanja (Reallocated_Sector_Ct, Pending_Sectors, itd.)
  • Samotest – vgrajeni testi pogona
  • smartctl – CLI pripomoček za upravljanje SMART
  • smartd – avtomatski nadzorni demon

Kako deluje

  1. Disk samostojno zbira statistiko
  2. smartctl bere te podatke
  3. smartd analizira mejne vrednosti in dogodke
  4. Obvestila se pošljejo, ko se pojavijo težave

Logika poteka dela

Disk > SMART atributi > smartctl > smartd > dnevnik / e-pošta / spremljanje

Osnovna nastavitev in uporaba smartctl

Namestitev pripomočka smartmontools

Delo s SMART ni mogoče brez nameščenega paketa smartmontools, ki vključuje pripomočke smartctl (ročna obdelava diskov) in smartd (demon za spremljanje v ozadju).

Namestitev se izvede z uporabo standardnih orodij za upravljanje paketov distribucije.

Debian / Ubuntu

sudo apt update

sudo apt install smartmontools

RHEL / AlmaLinux / Rocky Linux

sudo dnf install smartmontools

Po namestitvi so pripomočki na voljo v sistemu in pripravljeni za uporabo brez dodatne inicializacije.

Preverjanje različice in razpoložljivosti smartctl

Kot prvi korak je priporočljivo preveriti, ali je pripomoček pravilno nameščen in na voljo v sistemu:

smartctl --version

Ukaz izpiše različico paketa in seznam podprtih tehnologij.

To vam omogoča:

  • zagotoviti, da se uporablja posodobljena različica;
  • preveriti podporo za NVMe, RAID in druge vrste naprav.

Preverjanje podpore SMART na določenem disku

Nato je potrebno preveriti, ali pogon sam podpira tehnologijo SMART in ali je omogočena na ravni naprave.

sudo smartctl -i /dev/sda

Primer pravilnega izhoda:

SMART support is: Available - device has SMART capability. SMART support is: Enabled

Available – disk fizično podpira SMART;
Enabled – zbiranje podatkov SMART je vklopljeno in na voljo za branje.

Če je SMART podprt, vendar onemogočen, je to pogosto vidno na novih ali prej neuporabljenih diskih. V takem primeru ga je potrebno omogočiti ročno:

sudo smartctl -s on /dev/sda

Po tem je priporočljivo ponovno zagnati ukaz smartctl -i za zagotovitev, da je SMART aktiviran.

Ogled atributov SMART in začetna ocena zdravja

Glavna praktična vrednost SMART leži v njegovih atributih – številčne vrednosti, ki odražajo stanje površine diska, mehanike in elektronike.

Za ogled atributov uporabite ukaz:

sudo smartctl -A /dev/sda

Izhod vsebuje tabelo atributov z njihovimi trenutnimi vrednostmi in zgodovino. Najprej je treba biti pozoren na naslednje kazalnike:

Ključna polja v izhodu:

  • VALUE (Trenutna vrednost): Normalizirana vrednost atributa (običajno od 1 do 100, 100 je idealno). Disk se šteje za pokvarjenega, če 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 (tradicionalni trdi diski):

  • Reallocated_Sector_Ct: Povečanje kaže na fizično degradacijo površine.
  • Current_Pending_Sector (Sektorji v čakanju na prerazporeditev): Nestabilni sektorji. Tudi ena sama nenulna vrednost 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:

  • Retired_Block_Count: Ekvivalent Reallocated_Sector_Ct za HDD. Prikazuje število blokov, ki so bili izločeni iz uporabe. Tudi nizka vrednost z VALUE=100 je lahko normalna.
  • Reallocated_Event_Count: Število dogodkov prerazporeditve.
  • SSD_Life_Left ali Percentage Used/Media Wearout Indicator: Odstotek preostale življenjske dobe (ali obrabe). Nizka vrednost (npr. <10%) je znak bližajoče se 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 zapisovanja. Glavni kazalnik obrabe.
  • Media and Data Integrity Errors: Napake integritete podatkov.
  • Critical Warning: Kritične opozorilne zastavice.
  • Temperature: Trenutna temperatura.

Na tej stopnji administrator pridobi splošno razumevanje stanja diska in lahko prepozna očitne znake težav.

Napredna konfiguracija in praktični scenariji

SMART podpira vgrajene samoteste, ki jih izvaja sam pogon brez sodelovanja operacijskega sistema.

Kratki test je zasnovan za hitro preverjanje ključnih komponent:

sudo smartctl -t short /dev/sda

Dolg test izvaja popolno skeniranje površine in traja bistveno več časa:

sudo smartctl -t long /dev/sda

Po zaključku testa je potrebno preveriti rezultate:

sudo smartctl -l selftest /dev/sda

Izhod prikazuje:

  • vrsto testa;
  • status 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 potrebno izrecno določiti vrsto naprave.

Primer za LSI krmilnik:

smartctl -a -d megaraid,0 /dev/sda

Kjer:

  • -a – ključ za izpis vseh razpoložljivih informacij SMART (atributi, dnevniki, napake, splošna ocena zdravja).
  • -d – ključ za določitev vrste naprave.
  • megaraid – pove SMART gonilniku, da je disk za LSI/Broadcom krmilnikom (pogosto uporabljen v strežnikih).
  • 0 – številka fizičnega diska (PD, Physical Drive) v RAID polju. To ni sda, ampak edinstven ID, ki ga dodeli krmilnik. Najdete ga lahko z uporabo pripomočka za upravljanje krmilnika (npr. storcli ali MegaCLI).
  • /dev/sda – v tem kontekstu to ni pravi disk, ampak psevdo-naprava, ki predstavlja RAID krmilnik sam v sistemu. Običajno je to /dev/sgX (SCSI Generic) ali preprosto /dev/sda, če je krmilnik ustvaril virtualni disk.

Tipična napaka, ko vrsta naprave ni določena:

SMART support is: Unavailable

To ne pomeni, da SMART ni na voljo – le da smartctl ni mogel samodejno določiti poti do fizičnega diska. Rešitev je pravilno določiti parameter -d.

Diagnostika in odpravljanje težav

Znaki možnih okvar:

  • povečanje vrednosti Reallocated_Sector_Ct;
  • neničelni Current_Pending_Sector;
  • napake pri programiranju/brisanju (Program_Fail_Count, Erase_Fail_Count);
  • napake samotesta;
  • povečanje zakasnitve I/O;
  • sporočila o napakah v sistemskih dnevnikih.

Analiza dnevnikov:

journalctl -u smartd

dmesg | grep -i error

Pojasnilo:
Pending Sectors > 0 – visoko tveganje okvare;
Reallocated Sectors se povečujejo – progresivna degradacija;
Samotest NI USPEL – disk je treba zamenjati.

Prepoznavanje virov težav

Za izključitev lažnih pozitivnih rezultatov je pomembno povezati podatke SMART z dejansko obremenitvijo.

iostat -x 1

iotop

Preverjanje, kje je disk priključen:

lsblk -o NAME,SERIAL,MOUNTPOINT

Prepoznavanje krmilnikov:

lspci | grep -i raid

Dodatne metrike:

  • temperatura nad 50 °C;
  • povečanje napak CRC;
  • nestabilne vrednosti SMART.

Konfiguracija obvestil administratorja, ko se meritve SMART približajo mejam

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 slabšati, vendar okvara še ni nastopila.

Mehanizem obveščanja omogoča:

  • odkrivanje degradacije pogona v zgodnji fazi;
  • vnaprejšnje načrtovanje zamenjave diska;
  • izogibanje izrednim izpadom in izgubi podatkov;
  • delovanje v okviru načrtovanih vzdrževalnih oken.

V smartmontools je za pošiljanje obvestil odgovoren demon smartd. Samodejno spremlja spremembe atributov SMART in se odziva na odstopanja od norme.

Načelo delovanja obvestil smartd

Demon smartd deluje kot storitev v ozadju in izvaja naslednje naloge:

  1. Periodično anketira atribute SMART diska.
  2. Primerja trenutne vrednosti z: tovarniškimi pragovi, prejšnjimi vrednostmi (dinamika sprememb).
  3. Prepoznava: rast kritičnih atributov, pojav novih napak, neuspehe samotestov.
  4. Ustvari obvestilo in ga pošlje administratorju.

Zahteve za delovanje obvestil

Pred konfiguracijo je potrebno zagotoviti naslednje:

  • v sistemu je nameščen in pravilno konfiguriran MTA (Postfix, Exim, Sendmail, ssmtp);
  • strežnik je sposoben pošiljati odhodno pošto;
  • definiran je e-poštni naslov administratorja za prejemanje obvestil.

Primer konfiguracije ssmtp – lahek in enostaven MTA za pošiljanje pošte iz sistema.

Namestitev:

Debian/Ubuntu:

sudo apt update && sudo apt install ssmtp mailutils -y

RHEL:

sudo dnf install ssmtp mailx

Ustvarite konfiguracijsko datoteko:

sudo nano /etc/ssmtp/ssmtp.conf

in uredite vsebino:

# Privzeti naslov pošiljatelja [email protected] # SMTP strežnik in vrata vašega ponudnika e-pošte mailhub=smtp.your-domain.com:587 # Alternativni primer: # mailhub=smtp.gmail.com:587 # Za Gmail # Prijavne poverilnice [email protected] AuthPass=your-password # Nastavitve šifriranja UseSTARTTLS=YES # Uporabi STARTTLS UseTLS=YES # Uporabi TLS FromLineOverride=YES # Dovoli prepis naslova pošiljatelja # Ime gostitelja (določite ime vašega strežnika) hostname=server1.your-domain.com # lahko uporabite hostname=localhost ali določite dejansko ime sistema

Shranite datoteko in konfigurirajte dostopne pravice:

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 uspešno pošiljanje sporočil morajo biti na strežniku odprta naslednja vrata: 587 (primarna za pošiljanje s šifriranjem STARTTLS), ali 25 (standardni SMTP), 465 (varni SMTP s SSL), če so predvidena s konfiguracijo.

Osnovni test pošiljanja pošte:

echo "SMART testno sporočilo" | mail -s "SMART test obvestila" [email protected]

Lahko izrecno določite pošiljatelja:

echo "SMART testno sporočilo" | mail -s "SMART test obvestila" -a "From: [email protected]" [email protected]

Ali prek ssmtp neposredno:

echo "SMART testno sporočilo" | ssmtp [email protected]

[email protected] – naslov prejemnika, kamor bo poslano sporočilo.

Info

Če e-pošta ni dostavljena, nadaljnja konfiguracija smartd ni smiselna, dokler težave z dostavo pošte niso rešene.

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 spremlja;
  • -a – celoten nabor preverjanj;
  • -S on – shranjevanje atributov med ponovnimi zagoni je omogočeno;
  • -o on – samodejno zbiranje podatkov brez povezave je aktivirano;
  • -m – obvestila se pošljejo na določen e-poštni naslov.

Od tega trenutka bo smartd začel spremljati stanje diska v ozadju.

Obvestila ob približevanju mejnih vrednosti

Ključna značilnost smartd je, da spremlja spremembe vrednosti atributov, ne le njihovega kritičnega preseganja.

V praksi to pomeni, da se lahko obvestilo pošlje:

  • ob prvem pojavu Current_Pending_Sector;
  • ob povečanju Reallocated_Sector_Ct, tudi če prag še ni dosežen;
  • ob zaznavi napak samotesta;
  • ob degradaciji parametrov NVMe.

Najpomembnejši atributi zgodnje okvare:

  • Reallocated_Sector_Ct
  • Current_Pending_Sector
  • Offline_Uncorrectable
  • Media and Data Integrity Errors (NVMe)
  • Percentage Used (SSD/NVMe)

Tudi minimalne spremembe teh parametrov je treba obravnavati kot razlog za pozornost.

Uporaba samotestov kot vira obvestil

Za povečanje informativnosti je priporočljivo kombinirati spremljanje atributov z rednimi samotesti.

Primer konfiguracije z urnikom:

/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]

Logika delovanja:

  • kratek test se izvaja dnevno;
  • polni test se izvaja enkrat tedensko;
  • ob vsakem neuspehu testa administrator prejme obvestilo.

Upravljanje pogostosti in obsega obvestil

Da bi se izognili prekomernim opozorilom, se uporablja parameter -M once:

/dev/sda -a -m [email protected] -M once

V tem načinu:

  • obvestilo se pošlje ob prvem zaznavanju težave;
  • nadaljnja sporočila se ne podvajajo, dokler vzrok ni odpravljen.

Za testiranje sistema obvestil lahko uporabite -M test. To vam omogoča, da preverite, ali je smartd sposoben pošiljati sporočila, ne da bi čakali na dejansko napako.

Zaključek

V okviru tega priročnika je bil sistematično pregledan celoten cikel implementacije in delovanja smartctl in demona smartd kot orodja za proaktivno spremljanje zdravja diskov. Pokriti so bili osnovni principi delovanja SMART, praktične metode za analizo atributov, zagon in interpretacija samotestov, posebnosti dela z NVMe pogoni in RAID krmilniki, kot tudi diagnostične metode in tehnike za prepoznavanje osnovnih vzrokov težav. Posebna pozornost je bila namenjena konfiguraciji obvestil, ki omogočajo zaznavanje degradacije pogona 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 obvezni operativni standard. Uporaba smartctl in smartd omogoča sistemskemu administratorju prehod iz reaktivnega reševanja incidentov na zavestno, obvladljivo vzdrževanje diskovnega podsistema, zmanjšanje tveganj izpadov, izgube podatkov in nepredvidenih incidentov, hkrati pa ustvarja trdno podlago za nadaljnjo avtomatizacijo in integracijo s centraliziranimi sistemi spremljanja.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA