Linux Apesta (Linux Sucks)

Por curiosidad me he encontrado un vídeo en youtube que explica de forma sencilla y cómica el absurdo de los FORKs en el mundo de las distribuciones de Linux y Software Libre en general. Por ejemplo el escritorio CINNAMON (fork de GNOME) en la distro de Linux Mint o el proyecto LibreSSL (fork de OpenSSL). Son unos 45 minutos donde Bryan Lunduke de forma divertida hace críticas de como se gestionan los proyectos de Fedora y Ubuntu, el motivo de porqué se eternizan proyectos como el nuevo servidor X Wayland, … temas que en Linux apestan 🙂 …

Router de Jazztel con OpenWrt

Al cambiar de domicilio, he tenido que dar de baja la línea de Jazztel y darme alta en el nuevo domicilio con un nuevo número de teléfono. En el alta me han proporcionado un nuevo router y como el antiguo se quedó sin uso le he instalado una versión de OpenWrt. El modelo de Router es Comtrend AR-5387un y el firmware junto con los detalles de la instalación lo podéis ver en el siguiente hilo del foro de la comunidad SeguridadWireless:

http://foro.seguridadwireless.net/openwrt/openwrt-en-comtrend-ar5387un/

La versión que he instalado ha sido:

Firmware Openwrt
luci + kmod-brcmsmac + wpad-mini + kmod-usb-ohci + kmod-usb2 + kmod-usb-storage + kmod-fs-ext4 + kmod-ath9k-htc + kmod-brcmfmac + kmod-carl9170 + kmod-libertas-usb + kmod-net-zd1201 + kmod-p54-usb + kmod-rt2500-usb + kmod-rt2800-usb + kmod-rt73-usb + kmod-rtl8187 + kmod-rtl8192cu + kmod-zd1211rw
r38342

Lo que más me ha gustado una vez instalada es su facilidad para configurarla como WDS y sus gráficas de red en tiempo real 😛

Luci-test-velocidad

test-de-velocidad3

Como el router tiene un puerto USB hay versiones de OpenWrt con cliente Bittorrent …

http://wiki.openwrt.org/doc/uci/transmission

Así que creo que voy a tener juguete para entretenerme durante un rato 🙂

El Caos de la Interoperatividad en Fibra Óptica

Entre administradores de entornos de almacenamiento en fibra es conocido el problema que hay con la compatibilidad entre dispositivos de proveedores diferentes, por ejemplo, al añadir una cabina de discos  a una SAN y que no funcione con el failover (multipath) ya existente en el servidor porque no están en la matriz de interoperatividad de fabricantes. Dejaré en este post unas notas relativas a estos problemas.

Primeramente definiré Interoperatividad:

La Interoperatividad es la condición mediante la cual sistemas heterogéneos pueden intercambiar procesos o datos ( procedente de la Wikipedia ) o la capacidad de los productos de diferentes fabricantes puedan operar conjuntamente ( procedente de BNET).

En entornos de almacenamiento en fibra la Interoperatividad es bastante compleja, cumpliéndose que si toda una red SAN no está en la lista de compatibilidad de hardware de los vendedores no operará de la forma esperada. Hace algunos años, el acceder a información de interoperatividad era un trabajo frustante debido a que esta información no era pública por parte de la mayoría de fabricantes y por lástima en muchos casos usada de forma interesada comercialmente. En la actualidad se ha realizado un gran esfuerzo por la mayoría de ellos, creándose una tendencia cada vez más recia en comunicar esta información, al mismo tiempo que los grandes proveedores de soluciones de almacenamiento se ajustan a estándares para universalizar sus productos y flexibilizar una mayor integración en cualquier entorno heterogéneo cada vez más común.

En almacenamiento hay diferentes organismos para mejorar estos grandes problemas de incompatibilidades entre diferentes proveedores, de forma que establecen estándares y protocolos para una mejor comunicación e integración de dispositivos de almacenamiento. Entre todas ellas es destacable es el trabajajo que realiza SNIA (Storage Networking Industry Association) cuyo proposito es encabezar en la industria el desarrollo y promoción de estándares, tecnologías y servicios educacionales para apoderar la gestión de información. Todos los grandes fabricantes de almacenamiento son miembros de la SNIA y de forma paulatina va creciendo un marco de interoperatividad entre todos ellos. Aún así, debido al proceso lento de salida y aceptación de estos estándares se realizan de forma independiente muchas alianzas tecnológicas entre diferentes fabricantes que es su mayoría pretenden impulsar propios productos de avanzada tecnología consiguiendo en gran cantidad de casos ser pioneros y mejorar su cartera de productos y especificaciones y por consiguiente competir comercialmente, forzando que el resto de competidores tecnológicos acepten e integren estas nuevas especificaciones aún no estandarizadas, por esta necesidad de compatibilidad en entornos heterogéneos y para que no penalice su imagen comercial.

A continuación se aportará  información junto con enlaces de  los proveedores de almacenamiento para el conocimiento de la Interoperabilidad de sus productos con las de otros fabricantes.

Algunas Tablas de Interoperatividad y HCL ( Listas de compatibilidad Hardware )

Fabricantes

Emulex

Emulex es unos de los líderes en interoperatividad en SAN, su reputación “It Just Works” se basa en un compromiso con los estándares, abierto al soporte de software y hardware, y al testeo extensivo de interoperatividad.

A continuación se listan sus Tablas de Interoperatividad con los siguientes fabricantes :

3Leaf Networks
3PAR
AdventNet
Bloombase
Brocade / McDATA
Bull
CA
CipherMax
Cisco
Citrix
Cloverleaf
Commvault
Compellent
Crossroads
DataCore
Data Domain
Decru
Dell
DinoStor
Dot Hill
EMC
Enhance Technology
Exabyte
Fabric7
FalconStor
Fujitsu
Fujitsu Siemens
Hitachi Data Systems
HP
Huawei Symantec
IBM
Infortrend
iQstor
LSI
Microsoft
MonoSphere
MTI
NEC
NeoScale
NetApp
Nexsan
Novell
Oracle
Overland
Parallels
Pillar Data
Plasmon
PolyServe
QLogic
Quantum
Red Hat
Sanbolic
Scalent
Solid Access
Spectra Logic
Sun Microsystems
StoreAge
Symantec
Texas Memory Systems
Unisys
Virtual Iron
VMware
Xyratex

Información y enlaces procedente de Emulex.

QLogic

QLogic presenta un magnífico trabajo disponible en su web de interoperatividad al igual que de su historia altamente recomendable disponible en su web, que recopila sus productos, soluciones y servicios que proporcionan, al igual que su certificaciones con distintos proveedores de soluciones SAN. Un documento nada habitual en esta tecnología.

A continuación se listan las Tablas de Interoperatividad con los siguientes fabricantes :

3PAR | AC&NC | Apple | ATTO Technology | BlueArc | Compellent | Dell | Dell EqualLogic | DNF | Dot Hill | EMC | Enhance Technology | Fujitsu Computer Products of America | Fujitsu Computer Systems | Hewlett-Packard | Hitachi Data Systems | Hitachi Global StorageTechnologies | HP LeftHand SAN (aka LeftHand Networks) | IBM | Infortrend | Intransa | iQstor | iStor | LSI | Matrox | NEC | NetApp | Nexsan | Overland | Pillar | Promise | Qualstar | Quantum | RELDATA | Seagra | SEPATON | Spectra Logic | StoneFly | StoreVault | Sun Microsystems | Symantec | Tandberg Data | Texas Memory Systems | Thales nCipher | Winchester Systems | Xiotech | Xyratex

Información y enlaces procedentes de QLogic.

Brocade – McData

Brocade pone a disposición un documento con la compatibilidad/interoperatividad de sus productos en la sección de compatibilidad enlazable aquí llamado Brocade Data Center Ready.

Sun Microsystems

Proporciona un listado de soluciones de almacenamiento certificadas con Microsoft en el siguiente documento:

http://www.sun.com/software/windows/storage_cert.pdf

En su sección de almacenamiento y servidores individualmente es completada con tablas de soportabilidad/certificación/interoperatividad de cada dispositivo, y una sección genérica a la Interoperatividad de todos sus productos.

IBM

Presenta una sección de productos para SAN:

http://www-03.ibm.com/systems/uk/storage/san/index.html

Cada dispositivo va acompañado de un documento de Interoperatividad llamado Interoperability Matrix.

EMC

Proporcionan un documento con las matrices de interoperatividad en la sección de Interoperatividad de su portal. Sus  clientes  pueden utilizar una herramienta de navegación para la interoperatividad en Powerlink.

HP

Sección de almacenamiento en su portal:

http://welcome.hp.com/country/es/es/leb/storage.html

NETAPP

Sección de Interoperatividad en su portal:

http://www.netapp.com/us/technology/interop.html

VMWARE

Dispone uns sección para consultas de compatibilidad desde su web con distintos proveedores:

http://www.vmware.com/resources/compatibility/search.php?action=base&deviceCategory=san

Proporciona un documento con las matrices de compatibilidad completa Storage/SAN Compatibility Guide.

….  sólo son algunos proveedores de fibra.

No existen más que dos reglas para escribir: Tener algo que decir y decirlo

Esta frase de Oscar Wilde da inicio al libro Redes Privadas Virtuales de mi buen amigo Javier Andrés Alonso que hoy por fin recibí en casa vía editorial Ra-Ma. En el primer vistazo al libro lo que más me ha llamado la atención ha sido su finalidad  puramente práctica junto con el grosor, casi 900 páginas, … todo un tratado de seguridad, redes y encriptación única en su género y en castellano.

Ha sido muy emotivo este primer encuentro con su libro y que me ha traido recuerdos del antiguo equipo de mucha calidad del GateDefender (Javi, Dani, Patri y yo),  compañeros del equipo de desarrollo y de managers. Son muchas horas codo con codo, analizando tráfico de red, buscando la forma de que “explotaran” las nuevas releases o buscando el entrecotte para la dieta multiproteica de Iván ,  aunque destacaría esas clases magistrales que tanto me ayudaron para hacerme con el producto y adentrarme en el mundo de la seguridad informática. Se hace irónico encontrar mi nombre en los agradecimientos del libro, … , aprendí mucho de su poesía en directo y sigo aprendiendo de su prosa escrita MAESTRO!!!

Reparar discos con sectores defectuosos en Linux

Se trata del error hardware más frecuente en cualquier tipo de servidor/ordenador o dispositivo dedicado de almacenamiento:

Fallos de disco duro con errores de escritura

Lo aconsejable en estos casos sería hacer un backup del disco que presenta problemas y sustituirlo. Con la frecuencia que estos errores se presentan, provocadas por factores de entorno (humedad, temperatura, vibraciones, fallos electricos o mecánicos, … ) o por fin de vida útil, la prevención es la herramienta más eficaz de forma que:

Se disponga de un sistema que controle dichas variables de entorno (Utilizar herramientas de monitorización basadas en SMART) y El sistema tenga tolerancia a fallos de disco ( por ejemplo RAID1,5) de forma que cuando presenta un fallo, el disco es aislado y solicita a su administrador que lo sustituya, previniendo las pérdidas de datos y su acceso , ya sea por recostrucción automática en disco auxiliar (spare) y/o recreación de la información (algoritmos de paridad).

No siempre se administran sistemas con un diseño previsor a estos tipos de errores, pueden ser por deficiencias provocadas por los presupuestos de la empresa ( el disco duro históricamente era un soporte de almacenamiento bastante caro) o por algo muy “typical spanish”:

El aprendizaje a base de palos porque no hay previsión.

Por ejemplo, errores hardware en el almacenamiento que provoca caida de algunos de los servicios básicos de una empresa, incluso con pérdidas  datos valiosos e irrecuperables.  Esto generará entonces un replanteamiento de la seguridad en el almacenamiento. Una auditoría y una inversión acorde con el valor y cantidad de datos eliminaría este riesgo, no olvidemos que se suele cumplir la máxima de:

Se tiene lo que se paga

Aún así, sean técnicos o responsables de sistemas de una empresa, convertidos en unos Mc Gyver, tratan de cubrir muchas deficiencias de las instalaciones informáticas, al recaer en ellos la responsabilidad de mantener unas instalaciones inseguras y con bajo presupuesto … Me refiero a esos Googleadores natos, con el destornillador siempre a mano,

que tienen disponibilidad absoluta cuando el jefe lo llama a las 12 de la noche porque no puede conectarse a la VPN de la empresa desde su casa.

La migración de entornos a Linux es una opción muy típica para estas instalaciones, debido a la compatibilidad con el hardware, facilidad de control y supervisión y por lo tanto seguridad, con paquetes completos para estas labores de administración sin ningún coste (para los más arerriesgados), o disponer de un soporte de todo el software de una distribución Enterprise a bajo precio.

En la actualidad, debido al aumento de capacidad y la bajada de precios del disco duro, hasta un usuario particular puede permitirse pagarse el hardware para un sistema raid tolerante a fallos de disco en el PC de su casa, …, tema pendiente para otro post.

Volviendo al tema que tocamos ahora, que hacer cuando hay que reparar unos sectores defectuosos, por ejemplo de un disco sin garantía o contrato de soporte o simplemente testear cuales son esos sectores para valorar el riesgo. Se pueden usar herramientas específicas para esta causa, que tienen los fabricantes de discos y que están basado en la tecnología SMART. Poniendo un ejemplo, en la creación de un raid 5 para uso doméstico, me encontré que la herramienta de software  para raid mdadm se negaba a integrar en el nuevo volumen uno de los discos de tera y medio comprados específicamente para esta función. La finalización del paso de creación del raid  (mdadm –create) terminaba con un sistema degradado. Después de varias búsquedas por internet, por sintomatología determino que es error de escritura para un sector de la LBA específico, por lo que me dispongo abrir un caso a Soporte de Seagate. Soporte me solicitó usar una herramienta propia para diagnóstico y reparación de sectores defectuosos, pero el consejero Google me llevó por otros derroteros, e intenté repararlo con herramientas propias de la distribución. Por equivalencia, como estas herramientas de diagnóstico se basan en SMART instalé smartmontools, paquete de aplicaciones que incluye Debian y demás distros en linux para diagnóstico de discos con SMART implementado.   Lo que a continuación expondré son unos pasos prácticos para en primer momento diagnóstico, y si es posible reparación.

Para diagnosticar y reparar, en el campo que sea lo primero es formarse y el conocimiento no aparece de forma espontánea, viene después de mucho trabajo y experiencia, aunque una cultura de base acelera el proceso de aprendizaje de forma exponencial. Dejo varios links para este propósito:

Básico

Procedente de la Wikipedia: Una magnífica introducción al disco duro, componentes físicos, divisiones físicas y lógicas, formas de direccionamientos, tecnologías usadas,  … , Un trabajo inmejorable de síntesis en un artículo y en castellano!

Procedente de Wikipedia: Definición de tecnología SMART,  parámetros que controla para diagnóstico de error y en castellano.

Procedente de Monografías: Aunque es información básica, en ocasiones obsoleta y orientado a entornos de Microsoft. Se definen conceptos básicos como tiempos de acceso o buffer de disco interesantes.

Procedente de Wikipedia: Definición, historia, especificaciones,… sobre discos SATA (Serial-ATA).

Google: El oráculo de Delfos, hasta ahora …  responde preguntas y sobre todo crea nuevas para seguirte respondiendo.

Herramientas referidas en este post

smartmontools – Paquete que contiene dos utilidades smartctl y smartd, para controlar y monitorizar sistemas de almacenamiento que usan SMART.

sg3-tools – Paquete para enviar comandos scsi a dispositivos scsi.

Seatools for DOS: Herramienta de Seagate para diagnóstico y reparación de discos.

Procedimiento de diagnóstico de sectores defectuosos

En este ejemplo se tratará de un entorno GNU/Linux, distribución Debian, al usar sus repositorios se usará la utilidad de paquetes nativas (apt-get) de la distribución, de forma análoga se usará yum en las variantes de Red Hat, Yast en Novell/Suse, …

En un sistema Debian, podremos tirar de repositorio para instalar el paquete smartmontools:

Comprobar que está en repositorio:

nas-ferras:~# apt-cache search smartmontools
smart-notifier – graphical hard disk health status notifier
smartmontools – control and monitor storage systems using S.M.A.R.T.

Instalar paquete smartmontools:

nas-ferras:~# apt-get install smartmontools
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Se instalarán los siguientes paquetes NUEVOS:
smartmontools
0 actualizados, 1 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 0B/332kB de archivos.
Se utilizarán 848kB de espacio de disco adicional después de esta operación.
Seleccionando el paquete smartmontools previamente no seleccionado.
(Leyendo la base de datos …
91982 ficheros y directorios instalados actualmente.)
Desempaquetando smartmontools (de …/smartmontools_5.38-2+lenny1_amd64.deb) …
Procesando disparadores para man-db …
Configurando smartmontools (5.38-2+lenny1) …
Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools (warning).

Comprobar la versión instalada:

nas-ferras:~# dpkg -l smartmontools
Desired=Unknown/Install/Remove/Purge/Hold
| Estado=No/Instalado/Config-files/Desempaquetado/Fallo-config/Medio-inst/espera-disparo/pendiente-disparo
|/ Err?=(ninguno)/Retenido/Requiere-reinst/X=ambos problemas (Estado,Err: mayúsc.=malo)
||/ Nombre                            Versión                          Descripción
+++-=================================-=================================-==================================================================================
ii  smartmontools                     5.38-2+lenny1                     control and monitor storage systems using S.M.A.R.T.

DIAGNÓSTICO

Ejecución de test sobre disco sospechoso:

Se puede usar la versión short o long:

nas-ferras:~# smartctl -t long /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: “Execute SMART Extended self-test routine immediately in off-line mode”.
Drive command “Execute SMART Extended self-test routine immediately in off-line mode” successful.
Testing has begun.
Please wait 255 minutes for test to complete.
Test will complete after Wed Oct 14 01:13:52 2009

Use smartctl -X to abort test.

Una revisión del log mostrará los resultados de los diferentes tests ejecutados sobre el disco de la siguiente forma:

nas-ferras:~# smartctl -l selftest /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== 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  Extended offline    Completed: read failure       90%        99         2597324513
# 2  Extended offline    Completed: read failure       90%        62         2597324513
# 3  Short offline       Completed: read failure       90%        61         2597324513
# 4  Short offline       Completed: read failure       90%        61         2597324513
# 5  Short offline       Completed: read failure       90%        61         2597324513
# 6  Short offline       Completed: read failure       90%        60         2597324513
# 7  Extended offline    Completed: read failure       90%        60         2597324513
# 8  Extended offline    Completed: read failure       90%        58         2597324513
# 9  Extended offline    Completed: read failure       90%        58         2597324513
#10  Extended offline    Completed: read failure       90%        58         2597324513

Que apunta en todos sus test ejecutados a fallos de lectura en el sector 2597324513.

Ya tenemos diagnóstico,  un sector está defectuoso, siendo el causante de que mdadm no lo quiera integrar como elemento en el raid5, etiquetándolo como disco en fallo.

REPARACIÓN

La reparación será una reasignación del sector en fallo, para un disco SCSI/Fibra sería posible realizarlo con las herramientas del paquete sg3-utils siguiendo los siguientes pasos: Instalación #apt-get install sg3-utils, confirmación del sector defectuoso #sg_verify –lba=2597324513 /dev/sda y reasignar el sector en el firmware del disco con # sg_reassign –grown /dev/sda #sg_reassign –address=2597324513 /dev/sda. Más detallado se encuentra éste procedimiento basado en un caso práctico en éste link.

Para nuestro caso, se trata de un disco SATA, en principio no podemos disfrutar de las sg3-utils para los tipo SCSI, pero una pregunta a Google responde que este paquete en versiones actuales ya tiene soporte para este tipo de discos y trataremos de probar suerte.

nas-ferras:~# sg_verify –lba=2597324513 /dev/sda
verify (10):  Descriptor format, current;  Sense key: Medium Error
Additional sense: Unrecovered read error – auto reallocate failed
Descriptor type: Information
0x0000ffff9ad006e1
medium or hardware error, reported lba=0xffff9ad006e1
nas-ferras:~# sg_reassign –address=2597324513 /dev/sda
REASSIGN BLOCKS not supported
nas-ferras:~# sg_verify –lba=2597324513 /dev/sda
verify (10):  Descriptor format, current;  Sense key: Medium Error
Additional sense: Unrecovered read error – auto reallocate failed
Descriptor type: Information
0x0000ffff9ad006e1
medium or hardware error, reported lba=0xffff9ad006e1

En un principio no responde nada parecido a dispositivo no soportado por la herramienta y la información que proporciona es coherente, pareciendo que interactúa con dispositivos SATA. Pero partiendo  de que se trata de una herramienta que a bajo nivel trabaja con dd, tampoco parece raro que detecte errores de lectura para cualquier dispositivo ya que no tendría porque usar los driver sg ( SCSI generic) para dispositivos SCSI y fibra en esta comprobación.

Nos quitará las dudas cuando forzaremos la reasignación del sector(reallocate):

nas-ferras:~# sg_reassign –grown /dev/sda
READ DEFECT DATA (10) not supported

nas-ferras:~# sg_reassign –address=2597324513 /dev/sda
REASSIGN BLOCKS not supported

En un principio parece que esta tools no está preparada para la reasignación de sectores en dispositivos  SATA, o el firmware del disco no es compatible con las sg3-tools. De todas formas no encuentro referencias a que interactúe con dispositivos SATA en ninguna parte del man de sg3-tools o sg_reassign.

Persistiendo en la forma de realizar una reasignación del sector defectuoso desde linux, se formatea el disco en ext3 y se sigue la guía Bad block HOWTO for smartmontools para el caso de una partición extended:

Se formatea en ext3

nas-ferras:~#mkfs.ext3 /dev/sda2

Se recogen los atributos de la partición /dev/sda:

nas-ferras:~# smartctl -A /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== 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   103   097   006    Pre-fail  Always       –       88063229
3 Spin_Up_Time            0x0003   100   100   000    Pre-fail  Always       –       0
4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       –       45
5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       –       2
7 Seek_Error_Rate         0x000f   100   253   030    Pre-fail  Always       –       675601
9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       –       103
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       –       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       –       45
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       –       0
187 Reported_Uncorrect      0x0032   060   060   000    Old_age   Always       –       40
188 Unknown_Attribute       0x0032   100   093   000    Old_age   Always       –       59
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       –       0
190 Airflow_Temperature_Cel 0x0022   061   055   045    Old_age   Always       –       39 (Lifetime Min/Max 25/40)
194 Temperature_Celsius     0x0022   039   045   000    Old_age   Always       –       39 (0 21 0 0)
195 Hardware_ECC_Recovered  0x001a   039   030   000    Old_age   Always       –       88063229
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       –       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      –       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       –       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      –       59180354371687
241 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      –       3587000442
242 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      –       3852047273

Se busca comienzo de la partición sda2:

nas-ferras:~# fdisk -lu /dev/sda

Disco /dev/sda: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, 2930277168 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Disk identifier: 0x0009ec06

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *          63    29302559    14651248+  83  Linux
/dev/sda2        29302560 2930272064  1450484752+  83  Linux

Como sda2 empieza en el sector 293302560 y el sector en error es 2597324513, para obtener la posición del sector en error relativo a la partición sda2 hay que hacer la resta 2597324513 – 293302560 = 2304021953.

Para saber el tamaño de bloque usado por el sistema de ficheros en sda2 :

nas-ferras:~# tune2fs -l /dev/sda2 | grep Block
Block count:              362621188
Block size:               4096
Blocks per group:         32768

Para finalizar las cuentas nos queda por saber que bloque del sistema de ficheros contiene esta LBA. Que sigue la siguiente ecuación

  b = (int)((L-S)*512/B)
Donde:
b = Número de bloque en el sistema de ficheros
B = Tamaño de bloque en bytes del sistema de fichero
L = LBA del sector defectuoso
S = Sector de comienzo de la partición que muestra la herramienta fdisk -lu
y (int) que denota la parte entera.

En nuestro ejemplo quedaría así:

b=((int)(2597324513 - 293302560)*512/4096)= (int) 288002744,125=288002744

Comprobamos que el bloque no está en uso:

nas-ferras:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs:  open /dev/sda2

debugfs:  testb 288002744
Block 288002744 not in use

Y por último realizar un dd para forzar un reallocate del sector defectuoso como se describe en la guía:

nas-ferras:~# dd if=/dev/zero of=/dev/sda2 bs=4096 count=1 seek=288002744
1+0 records in
1+0 records out
4096 bytes (4,1 kB) copied, 0,000607736 s, 6,7 MB/s

Ejecuto test dos veces:

nas-ferras:~# smartctl -t short /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== 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 Wed Oct 14 01:14:43 2009

Sorpresa !! No se ha producido una nueva reasignación de sectores, se puede comprobar mirando del atributo Reallocated_Sector_Ct en la salida del comando smartctl -A /dev/sda:

nas-ferras:~# smartctl -A /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== 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   103   097   006    Pre-fail  Always       –       89275771
3 Spin_Up_Time            0x0003   100   100   000    Pre-fail  Always       –       0
4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       –       46
5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       –       2
7 Seek_Error_Rate         0x000f   100   253   030    Pre-fail  Always       –       679040
9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       –       104
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       –       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       –       46
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       –       0
187 Reported_Uncorrect      0x0032   060   060   000    Old_age   Always       –       40
188 Unknown_Attribute       0x0032   098   093   000    Old_age   Always       –       61
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       –       0
190 Airflow_Temperature_Cel 0x0022   066   055   045    Old_age   Always       –       34 (Lifetime Min/Max 26/34)
194 Temperature_Celsius     0x0022   034   045   000    Old_age   Always       –       34 (0 21 0 0)
195 Hardware_ECC_Recovered  0x001a   038   030   000    Old_age   Always       –       89275771
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       –       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      –       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       –       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      –       143872814481511
241 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      –       3587013738
242 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      –       3874184123

Y lógicamente los resultados de los test ejecutados después del dd, siguen dando fallo en mismo sector:

nas-ferras:~# smartctl -l selftest /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== 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: read failure       90%       103         2597324513
# 2  Short offline       Completed: read failure       90%       103         2597324513
# 3  Extended offline    Completed: read failure       90%        99         2597324513
# 4  Extended offline    Completed: read failure       90%        62         2597324513
# 5  Short offline       Completed: read failure       90%        61         2597324513
# 6  Short offline       Completed: read failure       90%        61         2597324513
# 7  Short offline       Completed: read failure       90%        61         2597324513
# 8  Short offline       Completed: read failure       90%        60         2597324513
# 9  Extended offline    Completed: read failure       90%        60         2597324513
#10  Extended offline    Completed: read failure       90%        58         2597324513
#11  Extended offline    Completed: read failure       90%        58         2597324513
#12  Extended offline    Completed: read failure       90%        58         2597324513

Tampoco este HOWTO nos lleva a la reparación del sector defectuoso.

Herramienta SEATOOLS for DOS

Queda usar la herramienta propia de Seagate llamada SEATOOLS, que se trata de un LiveCD basado en FreeDOS que posee una interfaz gráfica que reconoce los discos SATA y proporciona herramientas de diagnóstico, reparación y configuración. Esta herramienta se puede descargar desde el siguiente link.

Los resultados de ejecución de esta herramienta han sido eficaces, detecta en su Basic Test Short  el sector defectuoso, y en su Basic Test Long en su finalización solicita la reparación del mismo. Con la reparación ha pasado los test del mdadm  e integrado en el raid5 sin problemas. Sólo queda tenerlo un tiempo en observación para comprobar que es sólamente un error puntual en el sector o el disco es inestable con tendencia a errores.

Conclusiones:

  • Herramientas basadas en SMART como smartctl, es eficaz en el diagnóstico de sectores defectuosos.
  • La herramientas de diagnóstico propias de los fabricantes de discos, pueden ser el único medio para la reparación de sectores defectuosos. Además, automatizan el proceso de análisis y reparación de forma cómoda. Cuyo único inconveniente en la herramienta usada es que al ser LiveCD se necesita reiniciar el ordenador y dejarlo fuera de servicio varias horas mientras se ejecuta el análisis de disco. Una integración en el sistema operativo de esta herramienta sería lo ideal si no se quieren parar los servicios de la máquina durante tanto tiempo. Otra opción, la que usé, es apagar el ordenador, extraer el disco y ponerlo en otro PC para que ejecute el diagnóstico, cuya parada fue de pocos minutos (apagar, extraer disco y encender).
  • De forma preventiva es altamente aconsejable usar otra herramienta como smartd perteneciente al mismo paquete de smartmontools, que realiza un continua monitorización del estado de los discos, quedando pendiente debido a su extensión para otro post.