Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Cum ne dam seama cand un HDD urmeaza sa cedeze? HDD-urile sunt ieftine si usor de inlocuit, dar datele de fiecare data sunt un subiect sensibil. Asa ca trebuie sa ne facem un obicei din testarea HDD-urilor ca sa ne asiguram ca scadem sansele ca datele nostre sau ale firmei sa se piarda. Pentru testarea HDD-urilor in Linux folosesc trei utilitare: smartmontools, HDSentinel si stress. Am mai scris un articol despre cum se testeaza HDD-urile cu stress, deci nu voi relua explicatiile. Voi prezenta in schimb, pe scurt, smartmontools si HDSentinel – doua utilitare care imi sunt la indemana de fiecare data cand am suspiciuni ca vreunul din HDD-uri ar avea probleme.

Smartmontools

Smartmontools e un utilitare care se foloseste de sistemul de monitorizare a HDD-urilor S.M.A.R.T. pentru a afisa detalii legate de starea de sanatate a HDD-urilor. Putem afla cat timp au fost tinute in functiune HDD-urile, daca au aparut erori de citire/scriere etc.

Pentru o testare rapida vom folosi comanda smartctl -t short /dev/sdb, unde /dev/sdb e HDD-ul pe care vrem sa-l testam.

[email protected]:~# smartctl -t short /dev/sdb
 
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Mon Jun 18 17:19:14 2012
 
Use smartctl -X to abort test.
[email protected]:~#

In rezultatul comenzii ni se spune ca trebuie sa asteptam un minut pentru ca testul sa se finalizeze. Dupa un minut vom rula smartctl -l selftest /dev/sdb ca sa vedem rezultatul testarii:

[email protected]:~# smartctl -l selftest /dev/sdb
 
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     14408         -
# 2  Extended offline    Completed without error       00%     14057         -
# 3  Short offline       Completed without error       00%      3799         -
 
[email protected]:~#

Rezultatul testului ne spune ca HDD-ul a fost folosit 14408 de ore in total iar la status apare „Completed without error„, deci avem un HDD bun.

Testul scurt e pentru a identifica problemele evidente, cum ar fi cele de alimentare. Pentru un test care sa verifice toti parametri HDD-ului in loc de smartctl -t short /dev/sdb vom rula smartctl -t long /dev/sdb (inlocuim short cu long). Testul va dura ceva mai mult, probabil peste o ora, dar rezultatul va fi mai relevant. In rezultatul de mai sus, pe linia #2, se poate vedea rezultatul pentru „Extended offline” – din fericire si la testul extins HDD-ul e bun.

Pe langa testare, smartctl ne poate da si alte informatii importante legate de starea HDD-urilor. Pentru asta vom folosi parametru „-A” care afiseaza toate informatiile relevante:

[email protected]:~# smartctl -A /dev/sdb
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   112   099   006    Pre-fail  Always       -       47747783
......................... %< ......................... 
194 Temperature_Celsius     0x0022   041   048   000    Old_age   Always       -       41 (0 15 0 0)
195 Hardware_ECC_Recovered  0x001a   023   012   000    Old_age   Always       -       47747783
......................... %< ......................... 
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       1827842034
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       790958064
 
[email protected]:~#

In rezultat putem vedea de exemplu temperatura HDD-ului pe linia Temperature_Celsius sau numarul total de blocuri (LBA) scrise sau citite pe liniile Total_LBAs_Written respectiv Total_LBAs_Read.

HDSentinel

Al doilea utilitar de care spuneam este HDSentinel. Versiunea pentru Linux este gratuita, trebuie doar descarcata, decomprimata si schimbate permisiunile in 755.

Chiar daca nu este folosit pentru testare, ne prezinta cateva date legate de HDD-uri din care ne putem da seama daca HDD-ul are probleme sau nu. De exemplu, ca sa verificam HDD-urile din sistem vom rula doar comanda „./HDSentinel„:

[email protected]:~# ./HDSentinel
Examining hard disk configuration ...
 
HDD Device  1: /dev/sdb
HDD Model ID : ST3500418AS
HDD Serial No: 9VMECL7R
HDD Revision : CC38
HDD Size     : 476940 MB
Interface    : S-ATA II
Temperature  : 41 °C
Highest Temp.: 48 °C
Health       : 100 %
Performance  : 100 %
Power on time: 600 days, 8 hours
Est. lifetime: more than 1000 days
 
HDD Device  2: /dev/sdc
HDD Model ID : ST3160827AS
HDD Serial No: 5MT25CBK
HDD Revision : 3.42
HDD Size     : 152627 MB
Interface    : S-ATA
Temperature  : 39 °C
Highest Temp.: 47 °C
Health       : 100 %
Performance  : 100 %
Power on time: 1369 days, 17 hours
Est. lifetime: more than 455 days
 
[email protected]:~#

In cazul HDD-ului de mai devreme vedem atat Health cat si Performance sunt la 100%, deci HDD-ul este bun si mai poate fi folosit o perioada lunga de timp. O alta informatie interesanta este „Est. lifetime” care la /dev/sdb este mai mare de 1000 de zile dar la /dev/sdc este 455 de zile. Chiar daca nu e o problema majora, pentru ca atat Health cat si Performance sunt la 100% si pentru al doilea HDD, e un semn ca in curand va trebui inlocuit preventiv.

Asadar, folosind impreuna cele trei comenzi (smartctl, HDSentinel si stress) ne putem da repede seama daca HDD-urile folosite functioneaza in parametri normali si daca trebuie sa avem in vedere inlocuirea vreunuia. E foarte important sa testam HDD-urile atat cu stress cat si cu smartctl pentru ca abordarea este diferita si exista posibilitatea ca HDD-ul sa treaca de un test dar sa il pice pe celalalt.

Linux

10 Responses so far.

  1. URAGANU says:

    Excelent. Multumim mult.

  2. Julio says:

    foarte tare… nu stiam de HDSentinel… eu folosesc FreeBSD si nu exista varianta in ports pt el… nice

  3. Sergiu Tot says:

    Merci de aprecieri! Ma bucur ca il gasiti util 😀

    Julio, am discutat cu producatorul anul trecut. Voia sa faca o varianta pentru FreeBSD dar nu are timp omul si o tot amana, plus ca nici nu are cerere. Sunt putini sysadmini care prefera FreeBSD 🙂

  4. Julio says:

    Pai eu nu sunt sysadmin :).

    Sunt un simplu dezvoltator de aplicatii web caruia i-a fost recomandat acum vreo 5-6 de un prieten sa le dezvolte in FreeBSD in loc de Windows. Recent am inceput sa lucrez si pe Ubuntu. Sincer, mi se pare mai „sysadmin-ish” FreeBSD-ul prin comparatie 🙂
    Cum imi place sa invat indiferent de domeniu, mi-am facut un web-server acasa (in loc sa-mi cumpar un VPS) pe care mi-l administrez singur. Asta evident presupune sa il monitorizez via zabbix. Si in felul acesta am ajuns la smartmontools pt monitorizarea hdd-ului – de departe cea mai importanta parte de monitorizare pt mine 🙂

    Teoretic e posibil sa mearga HDSentinelul si fara sa fie portat in FreeBSD. Trebuie sa verific dupa ce activez `linux compatibiliy` daca merge.

    keep up the good work 😉

  5. Sergiu Tot says:

    Da, e mai „sysadmin-ish” FreeBSD si chiar daca treburile sunt putin mai complicate decat „yum install httpd” il poti face sa dea un randament formidabil. Pacat ca firmele mari nu ofera suport pentru aplicatii pe FreeBSD. Ex. odata cu versiunea noua de cPanel (11.32) FreeBSD nu mai e suportat.

    HDSentinel am incercat pe FreeBSD 7.2 (parca) si nu a mers cu linux compatibility. Incearca si tu, poate reusesti. Eu nu am insistat prea mult, ca pe servere nu-mi place sa am carpeli 🙂

    Merci de apreciere 😉

  6. Lucian says:

    Dar badblocks ce are ? Nu il foloseste nimeni ? Eu il folosesc, la unele teste cu smartctl a detectat hardul OK, dar cu badblocks am gasit cateva baduri pe la sfarsit de hard.

  7. Sergiu Tot says:

    Nu are nimic, doar ca nu l-am folosit. O sa arunc o privire in zilele astea sa vad ce stie. Merci de info 😉

  8. Parchet masiv says:

    Multumim pentru instructiuni!

  9. Catalin says:

    Multumesc tare mult pentru acest tutorial. Am un HDD un pic mai vechi si pe care am cateva date importante si nu as vrea sa am probleme pana imi cumpar altul. O sa vad cum sta treaba si daca trebuie schimbat.

  10. Despre monitoare says:

    Multumesc mult de acest exemplu. Mi-au fost de folos.