Artículo traducido por máquina

Este texto es una traducción automática. Está prevista una versión revisada.

Si recibes una notificación sobre un fallo en el disco duro o detectas anomalías en el sistema, es necesario actuar con rapidez para restablecer la redundancia de tu matriz RAID. En este artículo aprenderás cómo identificar un disco duro defectuoso en un Servidor Dedicado Linux o un Servidor Bare Metal Linux con software RAID, y cómo preparar el servidor para la sustitución del disco defectuoso.

Nota

Este artículo requiere conocimientos básicos de administración de servidores Linux. Si tienes preguntas sobre la sustitución de un disco duro defectuoso o necesitas ayuda, ponte en contacto con Atención al Cliente. Encontrarás la información de contacto en la siguiente página: Atención al Cliente

Para garantizar la máxima disponibilidad frente a fallos, es necesario que monitorices el software RAID de tu servidor. Si recibes un correo electrónico de notificación sobre un disco duro defectuoso o detectas un fallo en un disco duro, debes identificar el disco duro defectuoso y preparar el servidor para la sustitución del soporte de datos afectado. A continuación, ponte en contacto con Atención al Cliente para tramitar el cambio del disco duro.

Advertencia

Los sistemas RAID permiten una mayor disponibilidad frente a fallos y/o una mayor velocidad. Sin embargo, no sustituyen a las copias de seguridad periódicas. Para evitar la pérdida de datos, te recomendamos crear una copia de seguridad con regularidad. Asimismo, asegúrate de crear una copia de seguridad antes de ejecutar los pasos que se indican a continuación para garantizar la seguridad de tus datos.

Encontrarás más información sobre la creación de copias de seguridad en el siguiente índice de nuestro Centro de Ayuda: soluciones de backup
 

Comprobar el estado del software RAID

Interpretación de los resultados

RAID intacto: un RAID que funciona correctamente se indica mediante el estado [UU] (en RAID 1) o [UUUU] (en RAID 5/6 con 4 discos duros). Cada «U» significa «Up» (operativo).

Dispositivo defectuoso o ausente: un [_U] o [U_] indica que falta un disco duro o que no está sincronizado.

Marca de fallo: una (F) detrás de un dispositivo (p. ej.: sdb1[2](F)) significa que el sistema ya ha marcado el disco como defectuoso («faulty») a nivel de software.

En configuraciones con 2 SSD (sistema operativo) y discos duros adicionales (datos), verás varios dispositivos md:

  • md1, md2, md127 o similares (a menudo RAID 1 para el arranque/raíz)
  • md11 o similares (a menudo RAID 5 o 6 para datos)

Comprueba todas las secciones de la salida para ver si faltan marcas «Us» o «(F)». Aquí tienes un ejemplo de un RAID intacto:

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
read_ahead 1024 sectors
md2 : active raid1 sda3[1] sdb3[0]
262016 blocks [2/2] [UU]

md1 : active raid1 sda2[1] sdb2[0]
119684160 blocks [2/2] [UU]

md0 : active raid1 sda1[1] sdb1[0]
102208 blocks [2/2] [UU]

unused devices: <none>

El ejemplo anterior muestra tres dispositivos múltiples o matrices RAID (md0, md1, md2). Para cada una de estas unidades lógicas se indica de qué particiones se compone y en qué unidades se encuentran dichas particiones. La unidad lógica md0 está compuesta por las particiones sda1 y sdb1. En la línea que aparece debajo de cada unidad lógica, al final de la misma, entre corchetes, se muestra el estado de cada una de las particiones.

Si falta un disco duro o está defectuoso, esto suele indicarse con un [_U] o un [U_]. Una (F) detrás de una partición (p. ej.: sdb3[2] (F)) significa que se ha marcado como «faulty» (defectuosa).

En el siguiente ejemplo, todas las unidades lógicas tienen montada una única partición, que se encuentra en el disco duro sda. La partición correspondiente, que se encuentra en el segundo disco duro sdb, no está montada. Esto también se puede reconocer por la entrada [_U]. Las particiones no montadas del disco duro sdb indican que dicho disco duro presenta un error o un fallo.

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 sda1[1]
102208 blocks [2/1] [_U]

md1 : active raid1 sda2[1]
119684160 blocks [2/1] [_U]

md2 : active raid1 sda3[1]
262016 blocks [2/1] [_U]

unused devices: <none>

En el siguiente ejemplo, un disco duro defectuoso sigue integrado en la matriz RAID. Esto se puede apreciar por la información (F) que se muestra junto a md1.

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2](F)
439553856 blocks super 1.0 [2/1] [U_]
bitmap: 1/4 pages [4KB], 65536KB chunk

md1 : active raid1 sdb1[2](F) sda1[0]
19529600 blocks super 1.0 [2/1] [U_]

unused devices: <none>

Diagnóstico de errores de disco duro

Para detectar errores de disco duro, te recomendamos proceder de la siguiente manera:

Instala el programa smartctl. smartctl, que se trata de un programa de línea de comandos que permite monitorizar discos mediante la tecnología SMART (Self-Monitoring, Analysis and Reporting Technology). Con este programa podrás comprobar si un disco duro está defectuoso. Forma parte de Smartmontools. Esta herramienta está disponible en forma de paquetes para numerosas distribuciones de Linux. Encontrarás más información en la siguiente página: Paquetes de Smartmontools

Nota

En algunos casos puede ocurrir que no se pueda detectar un fallo de disco duro mediante los valores SMART. Por ello, te recomendamos analizar adicionalmente el archivo de registro /var/log/messages.

Instalar Smartctl

El comando de instalación varía en función del sistema operativo que utilices. Ejecuta el comando adecuado para tu distribución:

  • Para instalar smartctl, inicia sesión en el servidor como persona administradora.

  • Instala los paquetes necesarios según su distribución:

    AlmaLinux 9 y 10, así como Rocky Linux 9 y 10:

    dnf install smartmontools

    Debian 12 y 13, así como Ubuntu 24.04 y 26.04:

    sudo apt-get install smartmontools

 
Consultar la información del disco duro

Para ver una lista de los discos duros, introduce el siguiente comando:

smartctl --scan

Por ejemplo:

[root@localhost ~]# smartctl --scan

/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device

Para obtener información detallada que te ayude a diagnosticar el fallo, introduce el siguiente comando:

smartctl -iHAl error [NOMBRE DEL DISCO DURO]

Nota

  • Las interfaces de los dispositivos deben indicarse en el siguiente formato:

    Dispositivos SCSI / SATA:

    smartctl -iHAl error /dev/sd[a-z]

    Ejemplo:

    [root@localhost ~] # smartctl -iHAl error /dev/sda

  • Los dispositivos NVMe utilizan denominaciones diferentes, por ejemplo, /dev/nvme0 o /dev/nvme0n1, y, dependiendo de la consulta, requieren herramientas distintas o complementarias.

Tras introducir el comando, se muestra, por ejemplo, la siguiente información:


			[root@localhost ~]# smartctl -iHAl error /dev/sda
smartctl 6.5 7 de mayo de 2016 r4318 [x86_64-linux-3.10.0-862.14.4.el7.x86_64] (compilación local)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== INICIO DE LA SECCIÓN DE INFORMACIÓN ===
Modelo del dispositivo:     HGST HUS722T1TALA604
Número de serie:    WMC6N0K2RW66
Identificador de dispositivo LU WWN: 5 0014ee 004722db0
Versión de firmware: RAGNWA07
Capacidad útil:    1 000 204 886 016 bytes [1,00 TB]
Tamaño del sector:      512 bytes lógicos/físicos
Velocidad de rotación:    7200 rpm
Formato:      3,5 pulgadas
El dispositivo:        no figura en la base de datos de smartctl [para más detalles, utiliza: -P showall]
La versión ATA es:   ACS-3 T13/2161-D revisión 5
La versión SATA es:  SATA 3.1, 6,0 Gb/s (actual: 6,0 Gb/s)
La hora local es:    viernes, 3 de mayo, 07:45:14 de 2019 UTC
Compatibilidad con SMART: Disponible; el dispositivo cuenta con capacidad SMART.
Compatibilidad con SMART: Activada

=== INICIO DE LA SECCIÓN DE DATOS SMART DE LECTURA ===
Resultado de la prueba de autoevaluación del estado general de SMART: APROBADO

Número de revisión de la estructura de datos de los atributos SMART: 16
Atributos SMART específicos del fabricante con umbrales:
N.º ID NOMBRE_ATRIBUTO          INDICADOR     VALOR MÁXIMO UMBRAL TIPO      ACTUALIZADO     CUÁNDO FALLÓ VALOR_BRUTO
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fallo  Siempre      0
  3 Spin_Up_Time            0x0027   183   183   021    Pre-fail  Siempre      3833
  4 Start_Stop_Count        0x0032   100   100   000    Antigüedad   Siempre      9
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Siempre      0
  7 Tasa de errores de búsqueda         0x002e   200   200   000    Antigüedad   Siempre      0
  9 Horas de funcionamiento          0x0032   097   097   000    Antigüedad   Siempre      2560
 10 Spin_Retry_Count        0x0032   100   253   000    Antigüedad   Siempre      0
 11 Recuento de reintentos de calibración 0x0032   100   253   000    Antigüedad   Siempre      0
 12 Power_Cycle_Count       0x0032   100   100   000    Antigüedad   Siempre      9
 16 Atributo desconocido       0x0022   000   200   000    Antigüedad   Siempre      26802171994
183 Bloque_defectuoso_en_tiempo_de_ejecución       0x0032   100   100   000    Antigüedad   Siempre      0
192 Recuento de retracción al apagado 0x0032   200   200   000    Antigüedad   Siempre      4
193 Load_Cycle_Count        0x0032   200   200   000    Antigüedad   Siempre      67
194 Temperatura_en_grados_Celsius     0x0022   116   111   000    Antigüedad   Siempre      31
196 Recuento de eventos de reasignación 0x0032   200   200   000    Antigüedad   Siempre      0
197 Sector_pendiente_actual  0x0032   200   200   000    Antigüedad   Siempre      0
198 Errores_incorregibles_fuera_de_línea   0x0030   100   253   000    Antigüedad   Fuera de línea     0
199 Recuento de errores UDMA_CRC    0x0032   200   200   000    Antigüedad   Siempre      0
200 Tasa de error multizona   0x0008   100   253   000    Antigüedad   Fuera de línea     0

Versión del registro de errores SMART: 1
No hay errores registrados
		

Interpretación de los parámetros y diagnóstico de errores

Analice la información detallada que ha obtenido mediante el comando
smartctl -iHAl error [NOMBRE DEL DISCO DURO] ha obtenido. En la primera sección se muestra información que le permitirá identificar el disco duro:


			=== INICIO DE LA SECCIÓN DE INFORMACIÓN ===
Modelo del dispositivo:     HGST HUS722T1TALA604
Número de serie:    WMC6N0K2RW66
Identificador de dispositivo LU WWN: 5 0014ee 004722db0
Versión de firmware: RAGNWA07
Capacidad útil:    1 000 204 886 016 bytes [1,00 TB]
Tamaño del sector:      512 bytes lógicos/físicos
Velocidad de rotación:    7200 rpm
Formato:      3,5 pulgadas
El dispositivo:        no figura en la base de datos de smartctl [para más detalles, utiliza: -P showall]
Versión ATA:   ACS-3 T13/2161-D revisión 5
Versión SATA:  SATA 3.1, 6,0 Gb/s (actual: 6,0 Gb/s)
La hora local es:    viernes, 3 de mayo, 07:45:14 de 2019 UTC
Compatibilidad con SMART: Disponible; el dispositivo es compatible con SMART.
Compatibilidad con SMART: Activada
		

En esta sección se muestran, entre otros datos, el modelo del dispositivo y el número de serie del disco duro comprobado.

En la segunda sección, Smartctl evalúa el estado actual del disco duro. Si no aparece el valor «PASSED», sino, por ejemplo, «Failed» o «UNKNOWN», debe solicitar la sustitución del disco duro en cuestión lo antes posible.


			=== INICIO DE LA SECCIÓN DE DATOS DE READ SMART ===
Resultado de la autoevaluación general de salud de SMART: APROBADO
		

En la tercera sección se detallan los VALORES SMART calculados. Junto a cada valor porcentual actual (VALUE), se indican el peor valor jamás registrado (WORST) y el valor límite correspondiente (THRESH). Si el valor porcentual actual (VALUE) o el peor valor jamás registrado (WORST) supera el valor umbral (THRESH), se muestra una advertencia SMART en la columna WHEN_FAILED (por ejemplo, FAILING_NOW).


			Número de revisión de la estructura de datos de los atributos SMART: 16
Atributos SMART específicos del fabricante con umbrales:
N.º ID NOMBRE_ATRIBUTO          INDICADOR     VALOR MÁXIMO UMBRAL TIPO      ACTUALIZADO     CUANDO FALLÓ VALOR_BRUTO
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fallo  Siempre      0
  3 Spin_Up_Time            0x0027   183   183   021    Pre-fail  Siempre      3833
  4 Start_Stop_Count        0x0032   100   100   000    Antigüedad   Siempre      9
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Siempre      0
  7 Tasa de errores de búsqueda         0x002e   200   200   000    Antigüedad   Siempre      0
  9 Horas_de_funcionamiento          0x0032   097   097   000    Antigüedad   Siempre      2560
 10 Spin_Retry_Count        0x0032   100   253   000    Antigüedad   Siempre      0
 11 Recuento de reintentos de calibración 0x0032   100   253   000    Antigüedad   Siempre      0
 12 Power_Cycle_Count       0x0032   100   100   000    Antigüedad   Siempre      9
 16 Atributo desconocido       0x0022   000   200   000    Antigüedad   Siempre      26802171994
183 Bloque_defectuoso_en_tiempo_de_ejecución       0x0032   100   100   000    Antigüedad   Siempre      0
192 Recuento de retracción al apagado 0x0032   200   200   000    Antigüedad   Siempre      4
193 Load_Cycle_Count        0x0032   200   200   000    Antigüedad   Siempre      67
194 Temperatura_en_grados_Celsius     0x0022   116   111   000    Antigüedad   Siempre      31
196 Recuento de eventos de reasignación 0x0032   200   200   000    Antigüedad   Siempre      0
197 Sector_pendiente_actual  0x0032   200   200   000    Antigüedad   Siempre      0
198 Errores_incorregibles_fuera_de_línea   0x0030   100   253   000    Antigüedad   Fuera de línea     0
199 Recuento de errores UDMA_CRC    0x0032   200   200   000    Antigüedad   Siempre      0
200 Tasa_de_errores_multizona   0x0008   100   253   000    Antigüedad   Fuera de línea     0
		

Los siguientes parámetros pueden indicar un fallo inminente del disco duro antes de que aparezca una advertencia SMART:

Reallocated_Sector_Ct: este parámetro indica el número de sectores que ya se han reasignado debido a errores de lectura. Cuando un sector ya no se puede leer, escribir o comprobar correctamente, el controlador le asigna automáticamente un sector de sustitución procedente de la zona de reserva del disco duro. El sector original defectuoso se marca de forma permanente como defectuoso y deja de utilizarse.

Nota

Un valor superior a cero no es necesariamente motivo de preocupación, siempre que se mantenga estable durante un periodo prolongado. Sin embargo, un indicador crítico de un fallo inminente del disco duro es un número cada vez mayor de sectores reasignados. Por lo tanto, para detectar un defecto a tiempo, debe registrar este valor periódicamente y, en caso de que se produzca un aumento continuo, solicitar inmediatamente la sustitución del disco.

Current_Pending_Sector: Indica el número de sectores inestables que están a la espera de un remapeo. Cuando un sector no se puede leer ni escribir correctamente, se le asigna inicialmente el estado «Current Pending Sector». En este estado, el sector no se reasigna, ya que se desconocen los datos que contiene. Solo tras varios intentos fallidos de lectura o escritura se asigna un sector de sustitución y el sector defectuoso se marca de forma permanente como ilegible. El valor «Current_Pending_Sector» es un indicador importante de que es necesario sustituir el disco duro. Si este valor es distinto de cero, a menudo significa que el disco duro está a punto de fallar.

Offline_Uncorrectable: indica el número de errores no corregibles durante el acceso de lectura y escritura a los sectores.

La última sección se refiere al registro interno del disco duro. Aquí se registran los errores cuando el disco duro no ha procesado correctamente las tareas del ###SERVIDOR###. Si en esta sección se muestra un número de errores de al menos dos dígitos, debe solicitar la sustitución del disco duro lo antes posible.

Consultar información detallada sobre la sustitución del disco duro

Para poder tramitar la sustitución del disco duro defectuoso, se necesita la siguiente información:

  • Denominación del disco duro en el RAID (p. ej., sda)

  • Número de serie

  • Modelo

  • Archivo de registro (opcional)

Crear un registro SMART

Para generar un registro SMART completo, introduce el siguiente comando:

smartctl -x [NOMBRE DEL DISCO DURO]

Ejemplo:

[root@localhost ~]# smartctl -x /dev/sda

Si ya no es posible acceder al disco duro mediante smartctl, puede obtener la información necesaria con el programa hdparm. Para instalar hdparm:

AlmaLinux 9 y AlmaLinux 10, Rocky Linux 9 y Rocky Linux 10

dnf -y install hdparm

Debian 12 y 13, así como Ubuntu 24.04 y 26.04:

sudo apt-get update
sudo apt-get install hdparm

A continuación, introduce el siguiente comando para obtener la información necesaria para el cambio de disco duro:

hdparm -i /dev/sda

Notas

  • Si el registro SMART se ha creado tal y como se describe anteriormente, esta información es suficiente. A continuación, puede solicitar la sustitución del disco duro defectuoso. Para ello, póngase en contacto con el servicio de atención al cliente.

  • Si no puede consultar el número de serie del disco duro defectuoso mediante smartctl, también puede facilitar al servicio de atención al cliente el número de serie del disco duro o discos duros que funcionan correctamente.

  • hdparm es adecuado principalmente para discos duros SATA/ATA clásicos y no es compatible con dispositivos NVMe. Si en su sistema se utilizan unidades NVMe, la información necesaria sobre los dispositivos no se puede obtener con hdparm, sino que, por lo general, se debe utilizar herramientas NVMe específicas de la distribución, como nvme-cli. No obstante, este artículo describe la sustitución de discos duros clásicos en configuraciones RAID por software con nombres de dispositivos como /dev/sda y /dev/sdb.

Preparar el servidor para la sustitución del disco duro

En el siguiente ejemplo se supone que hay que sustituir el segundo disco duro (sdb). Durante la comprobación del estado, se muestra, por ejemplo, el siguiente estado del RAID de software:

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2]
439553856 bloques super 1.0 [2/1] [UU]

md1 : activo raid1 sdb1[2] sda1[0]
19 529 600 bloques super 1.0 [2/1] [UU]

Dispositivos no utilizados: <ninguno>

En este ejemplo, el segundo disco duro (sdb) sigue integrado en el RAID y, por lo tanto, sigue en funcionamiento.

Marcar manualmente el dispositivo RAID como «faulty» para eliminarlo del RAID

Para eliminar el disco duro defectuoso de la matriz RAID, márquelo como «faulty». Para ello, introduzca el siguiente comando:

[root@localhost ~]# mdadm RUTA_DEL_ARRAY_RAID -f RUTA_DEL_DISCO_DURO

En los ejemplos que se muestran a continuación, se marcan como «faulty» los discos duros sdb3 y sdb1, respectivamente:

[root@localhost ~]# mdadm /dev/md3 -f /dev/sdb3
mdadm: se ha marcado /dev/sdb3 como defectuoso en /dev/md3

[root@localhost ~]# mdadm /dev/md1 -f /dev/sdb1
mdadm: se ha marcado /dev/sdb1 como defectuoso en /dev/md1

Tras introducir el comando, el RAID presenta el siguiente estado:

[root@localhost ~]# cat /proc/mdstat

Personalidades: [raid1]
md3 : activo raid1 sda3[0] sdb3[2](F)
439553856 bloques super 1.0 [2/1] [U_]

md1 : activo raid1 sdb1[2](F) sda1[0]
19 529 600 bloques super 1.0 [2/1] [U_]

Dispositivos no utilizados: <ninguno>

Eliminar una partición del RAID

Para eliminar una partición del RAID, introduzca el siguiente comando:

[root@localhost ~]# mdadm -r /RUTA_DEL_ARRAY_RAID /RUTA_DEL_DISCO

En los ejemplos que se muestran a continuación, se eliminan los discos duros sdb3 y sdb1 de los RAID md3 y md1, respectivamente:

[root@localhost ~]# mdadm -r/dev/md3 /dev/sdb3
mdadm: se ha eliminado en caliente /dev/sdb3 de /dev/md3

[root@localhost ~]# mdadm -r /dev/md1 /dev/sdb1
mdadm: se ha eliminado en caliente /dev/sdb1 de /dev/md1

A continuación, compruebe el estado del RAID. En este ejemplo, el RAID que se ha preparado para la sustitución de discos duros presenta el siguiente estado final:

[root@localhost ~]# cat /proc/mdstat

Personalidades: [raid1]
md3 : raid1 activo sda3[0]
439553856 bloques super 1.0 [2/1] [U_]

md1 : activo raid1 sda1[0]
19 529 600 bloques super 1.0 [2/1] [U_]

Dispositivos no utilizados: <ninguno>

Comprobar las particiones de swap utilizadas

Compruebe qué particiones de intercambio utiliza el sistema operativo. Para ello, introduzca el siguiente comando:

[root@localhost ~]# cat /proc/swaps

Nombre de archivo Tipo Tamaño Usado Prioridad
/dev/sda2 partición 9765884 0 -1
/dev/sdb2 partición 9765884 0 -2

Como alternativa, puede comprobar qué particiones de swap están definidas en fstab introduciendo el siguiente comando:

[root@localhost ~]# grep swap /etc/fstab
/dev/sda2 none swap sw
/dev/sdb2 none swap sw

Desactivar la partición de swap en el dispositivo defectuoso

Desactive la partición de swap del disco duro defectuoso para que pueda ser sustituido. Para ello, introduzca el siguiente comando:

[root@localhost ~]# swapoff RUTA_DE_LA_PARTICIÓN

Ejemplo:

[root@localhost ~]# swapoff /dev/sdb2

Nota

Si no se desactiva la partición de intercambio del disco duro defectuoso y se sustituye dicho disco, la partición de intercambio aparecerá con el estado «deleted» en /proc/swaps.

Solicitar la sustitución del disco duro

Ahora ya puede solicitar la sustitución del disco duro defectuoso. Para ello, póngase en contacto con Atención al Cliente. Encontrará los datos de contacto en la siguiente página: Atención al Cliente

Pasos necesarios tras la sustitución del disco duro

Tras sustituir el disco duro defectuoso, es necesario que reconstruya el RAID de software. Encontrará más información sobre cómo reconstruir un RAID de software en el siguiente artículo: Reconstruir un RAID de software (Linux)