Tuesday, December 23, 2008

En este resumen, estoy asumiendo lo siguiente:

Tenemos configurado un arreglo de discos tipo Mirror (Raid1) basado en software, utilizando Ubuntu Server 8.04 LTS. Tenemos una falla en uno de los discos. Queremos retirar este disco y en su lugar colocar uno completamente nuevo, para reconstruir el arreglo.

Iré extendiendo poco a poco esta guía, inclusive detallando cómo hacer este tipo de arreglos. En el momento, tan sólo es una guía rápida para aquellos que tienen el problema, ya que es importante conocer qué hacer en estos casos.

Pasos a seguir en casos en que uno de los discos duros de un arreglo tipo Mirror falla, utilizando software Raid de Ubuntu:


1) Desconectar el disco duro que está fallando
2) En el bios del equipo, configurar que el arranque (booteo) se haga desde el disco que funciona. (El booteo dual o arranque desde ambos discos se logra con una configuración manual, que luego postearé en este mismo blog, ya que en un arreglo tipo mirror esto es sumamente importante).
3) Esperar a que Linux inicialice. Cuando el disco es removido, esta operación de inicialización puede tardar unos minutos, ya que Linux debe revisar la nueva configuración.
4) Ejecutar el comando en pantalla que saldrá indicando del error y de las particiones faltantes del arreglo (mdadm -R....etc),
este comando asignará al disco que esté funcionando las tareas de inicialización. Debemos pasar el comando cuantas veces sea necesario de acuerdo a los MD que tengamos (arrays). Si tenemos, por ejemplo, MD1, MD2, MD3, etc, por cada uno ejecutaremos la línea de comando mencionada.
Ejemplos:
mdadm -R /dev/md0 mdadm -R /dev/md1


5) Ejecutar el comando "exit", para salir del shell minimalista de recuperación de Linux, y esperar a que el sistema inicialice.
6) Reiniciar el sistema y confirmar que realmente puede bootear de manera normal.
7) Ejecutar los comandos de chequeo y verificación de arreglos.

Ejemplos:
cat /proc/mdstat
mdadm --detail /dev/md0

mdadm --detail /dev/md1



8) Instalar una nueva unidad de disco de manera física, mucho mejor si el nuevo disco posee las mismas características del anterior.
9) Copiar la tabla de particiones desde el disco que está bueno al nuevo (con mucho cuidado de cometer el error de hacer lo contrario):
Por ejemplo, se ha dañado el disco que contenía las particiones sda, entonces, para copiar la tabla de partición desde un segundo disco "sdb" al primer disco "sda", se debe utilizar el comando siguiente:

sfdisk –d /dev/sdb | sfdisk /dev/sda

Con suerte, esto copia desde el actual disco bueno (sdb) la tabla de particiones al nuevo disco.

Si esto no funciona, entonces podemos crear las particiones manualmente. Para esto, utilizamos fdisk y visualizamos el contenido del actual disco (el que está funcionando correctamente):

sudo fdisk -l

Nos dice por ejemplo:

Device Boot Start End Blocks ID System
/dev/sdb1 * 1 13981 3434945 fd Linux raid autodetect
/dev/sdb2 13982 14589 343494 fd Linux raid autodetect

Entonces, anotamos estos datos (start y end de cada partición) y procedemos a crearlas para el nuevo disco:

sudo fdisk /dev/sda

n (new partition)
p (primary)
especificar start y end
w (guardar cambios)

Con esto, creamos particiones iguales que en el actual arreglo, a nivel de bloques.

Luego ejecutamos:

sudo mdadm --detail /dev/md1 para ver la información concerniente a este arreglo. Si nos sale el error:
"mdadm: md device /dev/md1 does not appear to be active", entonces tenemos que activarlo haciendo:

sudo mdadm --assemble /dev/md1

Luego verificamos:

sudo mdadm --detail /dev/md1

Como podremos ver, el arreglo estará en estatus "clean, degraded". Para agregar el nuevo disco, tenemos que hacer:

sudo mdadm --manage /dev/md1 --add /dev/sda2

En caso de que estemos agregando una partición que contenga swap, entonces al agregar la partición al arreglo puede presentarse el siguiente error:

"mdadm: cannot open /dev/sda2: device or resource busy". Esto es así debido a que realmente el recurso está siendo utilizado, ya que es una unidad de swapping.

Para detener el uso de esta partición de swap, debemos ejecutar:

sudo swapoff -a

Entonces podemos proceder nuevamente a agregar la partición al arreglo:

sudo mdadm --manage /dev/md1 --add /dev/sda2

Ahora deberá comenzar de forma automática la sincronización!!!


10) Ejecutar los comandos para agregar las nuevas particiones al arreglo, con lo cual comienza el proceso de reconstrucción.
Ejemplos:
mdadm –-add /dev/md0 /dev/sda1 mdadm –-add /dev/md1 /dev/sda2

11) Esperar a que concluya la sincronización.
12) Hacer ambos discos bootables, para esto, seguir el instructivo al respecto.

Wednesday, April 23, 2008

Welcome 2 Technology!!!

In this Blog you'll find a lot of nice articles about technology, showing you a lot of things related to it. My articles welcomes both kind: Open Source Technology and not-Open. This is my first english-based blog so I'm trying to do my best, but it's kind of hard for me, hehe.

I work as an IT consultant (freelance) and as an IT Manager for a company. I use to implement different kind of products, so I have used both worlds: Microsoft Technologies and Open Source. Personally, and different to a lot of people out there, I don't prefer any of them. Both worlds have a lot of nice things to offer, so I think that the best bet is to learn them both. I know that money matters, but as an IT Manager, regularly I recommend to buy products not only based on costs, but in reliability and easy of use, and that "easy of use" implies me, as an administrator, and the final users, the ones that are going to call you a lot if they find any task hard to do. There are very nice software out there, for personal use and for enterprise too, so why to choose just a few??? Let's "open" our minds, and let's use the best, free or not!

So...how to choose? I would do this way: If I'm working for a little company with limited budget, I'd of course choose Open Source software, and maybe just a few proprietary. But if I'm going to work with a medium size or a company with a not-so-limited budget, I'd choose indifferently. In the last case, I'd choose the best that I could, mixing both.