S.M.A.R.T monitoring o como evitar lágrimas y sudores con tus discos duros

Imagínate el siguiente escenario: un día cualquiera llegas a casa por la noche y enciendes el ordenador para leer el correo y ver las novedades en debianhackers, que se rumorea que tienen nuevos fichajes. El arranque es normal, sin mensajes apocalípticos ni volcados de pila y, entonces, al iniciar la sesión en gnome, aparece un mensaje que no habías visto antes.

Fallo inminente del disco duro... Good news, everyone!

Es muy tranquilizador leer, en color rojo y mayúsculas, los mensajes FALLANDO y EL FALLO DEL DISCO ES INMINENTE e, inmediatamente debajo, Respaldar todos los datos y reemplazar el disco. Lo que realmente te pone de mala uva es saber que el dispositivo tiene menos de un año de uso, que es disco principal del ordenador y que es de un terabyte, el mayor espacio de almacenamiento del que has disfrutado nunca y donde tienes absolutamente todo. ¿Dónde se supone que voy a volcar los datos? ¿Cuántos de mis discos duros de 12 gigabytes necesitaré para respaldar a semejante monstruo? Las preguntas surgen sin cesar…

Un momento después, más tranquilo y de vuelta de la cocina con una taza de café (la noche no va a ser larga, va a ser eterna, intuyes), te tomas un tiempo en analizar el mensaje antes de dejarte llevar por el pánico.

Monitorización S.M.A.R.T. en gnome3 - palimpsest

palimpsest (Utilidad de discos) a pleno rendimiento

El programa que muestra el mensaje es palimpsest, también conocido como la Utilidad de discos, que forma parte del paquete gnome-disk-utility y que desconocías completamente. Este programa se encarga, principalmente de realizar ciertas operaciones con discos duros y particiones (particionado, asignación del sistema de ficheros, etiquetado, montaje, desmontaje) y de la monitorización S.M.A.R.T. de los mismos.

A esas horas de la noche, leer de qué va la monitorización smart (voy a omitir los puntos en el resto de la entrada), mientras haces una copia de seguridad de todo fichero valioso que puebla tu disco duro, para qué negarlo, se hace cuesta arriba. Pero recuerdas (porque ya te las habías visto con ella) que es una tecnología que incorporan las placas base y los discos duros para prevenir muertes súbitas y lágrimas de desconsuelo. En otras palabras, monitoriza ciertos valores de los discos para prevenir la aparición de fallos o, en caso de que ocurran (shit happens), para disponer de un tiempo precioso con el que salvar tu información.

En este caso, el parámetro díscolo, Contador de sectores reubicados no te suena de nada, así que decides ver qué test te deja efectuar palimpsest, en la opción Ejecutar autocomprobación.

Autocomprobación SMART

A eso de las dos de la mañana, con todos los datos salvados en tres discos duros convenientemente desconectados y puestos sobre la mesa (ya no te fías ni de la electricidad), te das cuenta que da igual que realices un test u otro porque todos terminan en un par de segundos, con el mismo resultados: dos frases escritas en color rojo y letras mayúsculas que, a esas horas, ya no te parecen tan feas.

Así pues, smart funciona y, aunque esos mensajes apocalípticos asustan bastante por muy curtido que esté uno, finalmente reconoces que la otra opción, esa en que sabes que el dispositivo está mal en el mismo instante en que certificas su defunción, es mucho peor. La comunicación entre placa base y monitor smart permite comprar tiempo, que es mucho.

¿Cómo termina esta historia? Instalando el programa que la marca del disco duro ha creado (sólo para windows, por supuesto) para volver a otros errores escritos en color rojo y mayúsculas y una invitación a enviarlo a Alemania para su sustitución por otro nuevo. Mientras tanto, instalas Debian en otro disco duro, más modesto y viejo, para seguir tirando.

Un mes después de ver por primera vez el mensaje (creo que terminaré tatuándomelo en el pecho), recibes una caja con un terabyte de espacio, limpio, nuevo, esperando particiones y datos y comienzas a instalar Debian a eso de la medianoche.

 

[tip] Conocer a qué repositorio pertenece un paquete desde consola

Para aquellos que tengáis activados varios repositorios y estéis interesados en el tipo de licencia del sofware que instaláis en vuestras máquinas, dejo este pequeño tip. Muy sencillo, y probablemente archiconocido, pero nunca está de más recordar estas cosillas que por ser de lo más básico, tendemos a olvidar o dejar de lado.

Veámoslo con un ejemplo sencillo, supongamos que quiero saber en qué repositorio se encuentra en paquete clustalx:

Como vemos, la salida nos indica que el paquete se encuentra licenciado bajo LGPL y que está en los repositorios main de Debian.

Fácil ¿verdad? 😉

 

Debian y su gran respeto / compromiso con la comunidad. Debian “Lenny” 5.0.10 released (actualiza tu server)

El pasado 9 de Febrero, fuimos testigos del final de Lenny con este anuncio, Ahí se decía bien claro que no entrarían más actualizaciones de seguridad en la rama 5.x.

Lenny UpdatedPero al igual que pasó con Debian 4.x (Etch), te das cuenta de lo que significa el término “compromiso” y “comunidad“. Sí, desde Debian son conscientes al igual que lo soy yo en mi día a día con los servers, que muchos de ellos (por los motivos que sea) siguen sin haber sido actualizados a la versión 6 (Squeeze) y te sorprenden (una vez más) liberando la versión 5.0.10 de Lenny y con ello, (anuncio oficial con todos los cambios) solventado muchos problemas de seguridad, algunos de un impacto “alto” caso de ser explotados.

… 

 

Para programar, primero entiende a tu ordenador

¿De verdad crees que conoces con exactitud la arquitectura de tu ordenador? Si quieres programar, lo mejor que puedes hacer, es conocer con precisión, como está formado tu ordenador y que función exacta cumple cada componente.

En este artículo, intentaremos “destripar” virtualmente nuestro ordenador, para poder entenderlo, ayudándonos del comando lshw, al cual podremos acceder como super-usuario.

Arquitectura de computadoras: conociendo el hardware

El hardware es todo elemento físico involucrado en una computadora o cualquier tipo de dispositivo electrónico inteligente.

Un ordenador, con respecto al hardware, se encuentra compuesto por una serie de dispositivos, clasificados según la función que éstos desempeñen. Dicha clasificación, se compone de:

  • Dispositivos de entrada
  • Dispositivos de salida
  • Dispositivos de comunicación
  • Dispositivos de almacenamiento
  • Dispositivos de cómputo

Los dispositivos de entrada son todos aquellos que permiten la entrada de datos a un ordenador. Estos dispositivos, son los que permiten al usuario interactuar con el ordenador. Ejemplos: teclado, mouse (ratón), micrófono, webcam, scanner, etc.

Los dispositivos de salida, son todos aquellos que permiten mostrar la información procesada por el ordenador. Ejemplos: monitor, impresora, auriculares, altavoces, etc.

Los dispositivos de comunicación son aquellos que permiten la comunicación entre dos o más ordenadores. Ejemplos: modem, router, placa de red, bluetooth, etc.

Los dispositivos de almacenamiento, son todos aquellos que permiten almacenar datos en el ordenador. Ejemplos: disco duro, pendrive, disket, CD, DVD, etc.

Los dispositivos de cómputo, son aquellos encargados de realizar las operaciones de control necesarias, sobre el resto de los dispositivos del ordenador. Estos dispositivos, se encuentran disponibles, en todos los ordenadores, y los mismos se describen a continuación.

CPU

La CPU (Central Processing Unit – Unidad Central de Procesamiento), también llamada procesador o microprocesador, es un circuito microscópico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y del proceso de datos en las computadoras.

Generalmente, la CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. El microprocesador de la CPU está formado por una unidad aritmético-lógica que realiza cálculos y comparaciones y toma decisiones lógicas (determinando si una afirmación es cierta o falsa mediante las reglas del álgebra de Boole.

Para aceptar órdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a través de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo un disco duro), los dispositivos de entrada (por ejemplo un teclado o un mouse) y los dispositivos de salida (por ejemplo un monitor o una impresora).

Cuando se ejecuta un programa, el registro de la CPU, llamado contador de programa, lleva la cuenta de la siguiente instrucción del programa, para garantizar que las instrucciones se ejecuten en la secuencia adecuada. La unidad de control de la CPU coordina y temporiza las funciones de la CPU, tras lo cual recupera la siguiente instrucción desde la memoria.

En una secuencia típica, la CPU localiza la instrucción en el dispositivo de almacenamiento correspondiente. La instrucción viaja por el bus desde la memoria hasta la CPU, donde se almacena en el registro de instrucción. Entretanto, el contador de programa se incrementa en uno para prepararse para la siguiente instrucción.

A continuación, la instrucción actual es analizada por un decodificador, que determina lo que hará la instrucción. Cualquier dato requerido por la instrucción es recuperado desde el dispositivo de almacenamiento correspondiente y se almacena en el registro de datos de la CPU. A continuación, la CPU ejecuta la instrucción y, los resultados se almacenan en otro registro o se copian en una dirección de memoria determinada[0].

Memoria
La memoria es la encargada de almacenar toda la información que el ordenador se encuentra utilizando. Existen tres tipos de memoria: memoria RAM, memoria ROM y memoria caché.

Listando componentes de memoria

Memoria RAM

La memoria RAM (Random Access Memory), es la memoria desde la cual, el procesador recibe las instrucciones y guarda los resultados. Se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan “de acceso aleatorio” (random access) porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible.

Durante el encendido del ordenador, la rutina POST verifica que los módulos de memoria RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres (motherboard) emiten una serie de pitidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS[1] (memoria ROM) puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma[2].

Filtrando la memoria RAM

Memoria ROM

La memoria ROM (Read Only Memory), es permanente, ya que lo que permanece en la ROM no se pierde aunque el ordenador se apague. Su función principal es guardar información inicial que el ordenador necesita para colocarse en marcha una vez que se enciende. Permite solo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía. Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente para contener el firmware (programa que está estrechamente ligado a hardware específico, y es poco probable que requiera actualizaciones frecuentes) u otro contenido vital para el funcionamiento del dispositivo, como los programas que ponen en marcha el ordenador y realizan los diagnósticos[3].

Filtrando la memoria ROM (también llamada BIOS)

Memoria caché

La memoria caché es aquella que se usa como puente entre el CPU y la memoria RAM para evitar demoras en el procesamiento de los datos. Existen varios núcleos de esta memoria (denominados con la letra L y un número, por ejemplo L1). Cuanto menor el número más rápida es la memoria. Por proximidad a la CPU, es mucho más rápida que la memoria RAM y también, mucho mas pequeña.

Filtrando la memoria caché

Bus de datos
El bus de datos (o canal de datos) es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados.

Notas adicionales sobre el comando lshw
Como hemos podido notar, el comando lshw nos permite listar el hardware de nuestro equipo. En este artículo, hemos utilizado el comando lshw con las siguientes opciones:

  • -short
    Utilizada para listar el hardware en formato compacto.
  • -C tipo_de_componente
    Utilizada para filtrar la salida, por el tipo de componente indicado.

Otras opciones pueden conocerse mediante man lshw.

También hemos concatenado (con |) el comando lshw con el comando grep patrón a fin de que la salida de lshw sea a la vez, filtrada por el patrón indicado. Cuando utilizamos la opción -i del comando grep, lo hicimos para que la búsqueda no distinga entre mayúsculas y minúsculas.

[0] Fuente: http://es.wikiversity.org/wiki/Estructura_del_computador
[1] En este caso, el término BIOS hace referencia a la memoria ROM (descripta anteriormente), y NO, al Sistema Básico de Entrada y Salida.
[2] Fuente: http://es.wikipedia.org/wiki/Memoria_RAM
[3] Fuente: http://es.wikipedia.org/wiki/Memoria_ROM