A veces el rendimiento de nuestro sistema se degrada de tal forma que trabajar con archivos se ralentiza o el acceso a nuestro servidor de datos es demasiado lento. Uno de los posibles factores será la red pero otro muy habitual será un disco duro fallido. Lo podemos comprobar leyendo /var/log/messages que es donde nos indicará linux que el disco está fallando, también en consola aparecerán errores de IO.
Para solucionar este percance tenemos varios comandos interesantes que no estará mal aprender.
Comenzaremos instalando las utilidades que probablemente no hayamos instalado antes:
apt-get install hdparm smartmontools
Una vez instaladas éstas identificaremos los discos en nuestro sistema e intentaremos localizar el/los que están fallando:
df -h
nos proporciona una lista de los discos junto con varias características:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1,9G 151M 1,8G 8% /boot
/dev/sdb1 1,9T 33M 1,9T 1% /mnt/disk1
podemos ver que nos indica el dispositivo físico del que se trata, el tamaño, el espacio utilizado, el disponible, el tanto por ciento usado y el punto de anclaje donde está montado.
Con el comando:
fdisk -l
identificaremos las particiones de los discos en el sistema.
Con la herramienta hdparm que hemos instalado previamente obtendremos un informe detallado de las características de fabricación del disco:
hdparm -I /dev/sdb
nos proporciona el siguiente informe (sólo un extracto del total que es mucho más completo):
ATA device, with non-removable media
Model Number: WDC WD20EARS-00MVWB0
Serial Number: WD-WCAZA2938738
Firmware Revision: 51.0AB51
Transport: Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
–
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 3907029168
Logical/Physical Sector size: 512 bytes
device size with M = 1024*1024: 1907729 MBytes
device size with M = 1000*1000: 2000398 MBytes (2000 GB)
cache/buffer size = unknown
Ahora que ya tenemos identificado el disco y sus características comprobaremos las salud de un disco cualquiera.
En primer lugar comprobamos que el disco soporta la tecnología SMART (sistema implementado en la mayoría de discos ATA-3, IDE y SCSI-3).
La comprobación más básica:
smartctl -i /dev/sdb
Activaremos SMART:
smartctl -s on -d ata /dev/sdb
SMART está operativo si se nos muestra por pantalla:
smartctl version 5.33 [x86_64-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
El mensaje tipo cuando un disco se encuentra fallando es :
WHEN_FAILED : FAILING_NOW
Podemos obtener información más detallada del fallo con el comando:
smartctl –atributes –log=selftest /dev/sdb
Smartctl puede hacer variostipos de comprobaciones, la primera, que se ejecuta con -s se denomina online test y no tiene efecto en el disco mientras se ejecuta. La segunda, -d, puede degradar nuestro disco y finalmente la tercera, ejecutada con -o tiene carácter periódico y automático, programable.
La comprobación extendida del disco se realiza con la siguiente opción:
smartctl -d ata -t long /dev/sdb
para comprobar si se han producido errores:
smartctl -d ata -l selftest /dev/sdb