24 novembro 2008

Verificar disco rígido com Sanity Smartmontools (Debian e Ubuntu)

Este guia mostra como instalar e usar o pacote smartmontools sobre o Debian Etch e Ubuntu 7.10. O pacote prevê smartmontools utilitários para verificar os discos rígidos para o disco degradação e fracasso, usando o auto-controlo, Análise e Tecnologia Reporting System (SMART) incorporado na maioria dos modernos discos rígidos SCSI e ATA.


Eu não emitir qualquer garantia de que isso irá funcionar para você!

Instalando Smartmontools

A fim de instalar smartmontools, todos nós temos de fazer é correr:

#apt-get install smartmontools

O smartmontools pacote vem com dois utilitários, que smartctl você pode usar para verificar os discos rígidos na linha de comando, e smartd, um daemon que controla os discos rígidos em um determinado intervalo de logs e alertas / erros para o syslog e também podem enviar avisos e erros de um determinado endereço de e-mail (geralmente o administrador do sistema).

Utilizando Smartctl

Antes de podermos utilizar smartctl, temos de descobrir como os nossos discos rígidos são nomeadas. Você pode fazer isso, por exemplo, ao correr:

#df –h

ou

#fdisk –l

Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1       19269   154778211   83  Linux
/dev/hda2           19270       19457     1510110    5  Extended
/dev/hda5           19270       19457     1510078+  82  Linux swap / Solaris
server1:~#

Como você vê, meu disco rígido é chamado / dev / hda.
Agora que sabemos o nome do nosso disco, podemos correr smartctl como segue:


#smartctl-a / dev / hda


Se você executá-lo pela primeira vez, você provavelmente vai ver algo como isto:

server1:~# smartctl -a /dev/hda
smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model:     ST3160022ACE
Serial Number:    5JS3XTZX
Firmware Version: 9.01
User Capacity:    160,041,885,696 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
Local Time is:    Tue Apr  8 18:58:44 2008 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Disabled
SMART Disabled. Use option -s with argument 'on' to enable it.
server1:~#

Se você executá-la pela primeira vez, você provavelmente vai ver algo como isto:

server1:~# smartctl -a /dev/hda
smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model:     ST3160022ACE
Serial Number:    5JS3XTZX
Firmware Version: 9.01
User Capacity:    160,041,885,696 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
Local Time is:    Tue Apr  8 18:58:44 2008 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Disabled

SMART Disabled. Use option -s with argument 'on' to enable it.
server1:~#

Então SMART está desativado, para habilitá-lo, precisamos de executar o comando novamente com o parâmetro-s em:

server1:~# smartctl -s on -a /dev/hda
smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model:     ST3160022ACE
Serial Number:    5JS3XTZX
Firmware Version: 9.01
User Capacity:    160,041,885,696 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
Local Time is:    Tue Apr  8 18:59:14 2008 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Disabled
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                 (15556) seconds.
Offline data collection
capabilities:                    (0x5b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 111) minutes.
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   059   056   006    Pre-fail  Always       -       163692057
  3 Spin_Up_Time            0x0003   096   096   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       0
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   100   253   030    Pre-fail  Always       -       722959
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       55
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       37
194 Temperature_Celsius     0x0022   039   046   000    Old_age   Always       -       39
195 Hardware_ECC_Recovered  0x001a   059   056   000    Old_age   Always       -       163692057
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   199   000    Old_age   Always       -       1
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 TA_Increase_Count       0x0032   100   253   000    Old_age   Always       -       0
SMART Error Log Version: 1
ATA Error Count: 1
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 1 occurred at disk power-on lifetime: 28 hours (1 days + 4 hours)
  When the command that caused the error occurred, the device was active or idle.
  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  84 51 00 5d 4c 85 e0  Error: ICRC, ABRT at LBA = 0x00854c5d = 8735837
  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 00 5d 4c 85 e0 00      05:05:31.855  READ DMA EXT
  25 00 00 5d 4b 85 e0 00      05:05:31.810  READ DMA EXT
  25 00 00 5d 4a 85 e0 00      05:05:31.773  READ DMA EXT
  25 00 00 5d 49 85 e0 00      05:05:31.737  READ DMA EXT
  25 00 00 5d 48 85 e0 00      05:05:31.651  READ DMA EXT
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%        54         -
# 2  Short offline       Aborted by host               80%        54         -
# 3  Short offline       Completed without error       00%        54         -
SMART Selective self-test log data structure revision number 1
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
server1:~#

Agora que a SMART está ativado, não precisamos de mudar o-s mais, o que significa que agora você pode ligar smartctl como no primeiro exemplo.
Para saber mais sobre smartctl e como ela pode ser usada, dê uma olhada na página smartctl man:


#man smartctl

Utilizando Smartd

Smartctl é um bom instrumento, mas você tem que executá-lo manualmente. Claro, seria bom ter alguns daemon que monitora o nosso disco rígido em intervalos específicos e de registros e / ou nos e-mails se algo está errado com o disco rígido para que possamos reagir antes de ele falhar completamente. Smartd é justamente o que precisamos.

Para utilizar smartd, temos que modificar o / etc / default / smartmontools primeiro e descomente a start_smartd = sim e smartd_opts = "- intervalo = 1800" linhas (definir o intervalo de monitorização para qualquer valor (em segundos) que preferir; 1800 significa 30 minutos):

#vi /etc/default/smartmontools

# Defaults for smartmontools initscript (/etc/init.d/smartmontools)
# This is a POSIX shell fragment

# List of devices you want to explicitly enable S.M.A.R.T. for
# Not needed (and not recommended) if the device is monitored by smartd
#enable_smart="/dev/hda /dev/hdb"

# uncomment to start smartd on system startup
start_smartd=yes

# uncomment to pass additional options to smartd on startup
smartd_opts="--interval=1800"


Avançar é preciso configurar o smartd arquivo de configuração / etc / smartd.conf. Você devia dar uma olhada



#man smartd



para aprender mais sobre as opções disponíveis configuração e também verificar os exemplos que estão no arquivo / etc / smartd.conf.





#vi / etc / smartd.conf



Para o começo da seguinte configuração é bem:



DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner


DEVICESCAN significa que smartd acompanhará todos os discos rígidos que pode encontrar. 


O parâmetro-m indica o usuário ou endereço de e-mail smartd que vai enviar alertas / erros para. 


Por exemplo, para monitorizar apenas / dev / hda e enviar alertas / erros de admin@example.com, 


você pode usar a seguinte configuração vez:


/dev/hda  -m admin@example.com -M exec /usr/share/smartmontools/smartd-runner


Depois, começamos smartd:


#/etc/init.d/smartmontools start


Agora se você dê uma olhada em / var / log / syslog, você deve encontrar as mensagens de inicialização smartd lá:


#tail -n50 /var/log/syslog


[...]

Apr  8 19:12:17 server1 smartd[3731]: smartd version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen

Apr  8 19:12:17 server1 smartd[3731]: Home page is http://smartmontools.sourceforge.net/


Apr  8 19:12:17 server1 smartd[3731]: Opened configuration file /etc/smartd.conf


Apr  8 19:12:17 server1 smartd[3731]: Drive: DEVICESCAN, implied '-a' Directive on line 22 of file /etc/smartd.conf


Apr  8 19:12:17 server1 smartd[3731]: Configuration file /etc/smartd.conf was parsed, found DEVICESCAN, scanning devices


Apr  8 19:12:17 server1 smartd[3731]: Problem creating device name scan list


Apr  8 19:12:17 server1 smartd[3731]: Device: /dev/hda, opened


Apr  8 19:12:17 server1 smartd[3731]: Device: /dev/hda, not found in smartd database.


Apr  8 19:12:17 server1 smartd[3731]: Device: /dev/hda, is SMART capable. Adding to "monitor" list.


Apr  8 19:12:17 server1 smartd[3731]: Device: /dev/hdc, opened


Apr  8 19:12:17 server1 smartd[3731]: Device: /dev/hdc, packet devices [this device CD/DVD] not SMART capable


Apr  8 19:12:17 server1 smartd[3731]: Monitoring 1 ATA and 0 SCSI devices


Apr  8 19:12:17 server1 smartd[3733]: smartd has fork()ed into background mode. New PID=3733.


Apr  8 19:12:17 server1 smartd[3733]: file /var/run/smartd.pid written containing PID 3733


[...]



Se smartd encontra algo interessante sobre o seu disco rígido ou erros / avisos, que também irá registrar esses eventos, como por exemplo:



Apr  8 19:36:01 server2 smartd[13160]: Device: /dev/hda, SMART Usage Attribute: 194 Temperature_Celsius changed from 36 to 37



Erros e avisos também será enviado para um usuário / endereço de e-mail, se você disse smartd a fazê-lo.



fonte: Smartmontools: http://smartmontools.sourceforge.net



Tradução: José Carlos – http://sixsideweb.blogspot.com

Postar um comentário