miércoles, 22 de agosto de 2012

Muerte de un software RAID en Ubuntu linux

Escribe un comentario

RAID espejo (RAID 1) por hardware (fakeraid, controladora SATA barata) compartido por linux y windows a la vez, sobre los mismos archivos: Lo hice, lo entendí, funciona y puedo explicarlo!!

Motivación:

No tener que renunciar a nada. Me gusta usar ubuntu linux para el día a día, utilizar LibreOffice y muchas aplicaciones web. Pero también entiendo que Microsoft Office es la suite ofimática más productiva por el momento, que ahora con Skydrive está más potenciada, si cabe, para trabajo colaborativo en línea. Y que utilizar MS Office dentro de linux usando Wine (programa que permite instalar aplicaciones para Windows dentro de Linux) es problemático cuando trabajas con Access por fallos relativos a librerías que no encuentra o que no funcionan como se esperaba.

Por otro lado la única manera de visualizar correctamente documentos de MS Office online es a través de Office Web Apps de Skydrive pero no hay aplicación de escritorio de Skydrive para linux y si tienes MS Office instalado con Wine la opción de editar documentos con MS Office de Skydrive no lo detecta (buen trabajo, Microsoft, en un mundo en el que el sistema operativo ya no tiene la importancia que antaño has conseguido anclar tu mayor valor, la ofimática, a tu propio sistema operativo)

Por otro lado quiero que mis datos estén en todo momento respaldados por una copia de seguridad, pero no quiero tener que andar programando copias de seguridad en discos externos USB ni otras particiones ni nada de eso que luego te hace perder tiempo de recuperación de datos. Por todo ello es que he montado un RAID espejo utilizando 2 discos de 1TB. Así, si uno de los dos discos falla no pasa nada puesto que toda la información estaría duplicada en el otro.

Nudos a resolver:

Para trabajar con MS Office y organizar los documentos de forma productiva necesito tener un Windows instalado. Como mi máquina no es muy potente la opción de usar una máquina virtual con Windows la descarto. Para poder usar Skydrive, en concreto, necesitas Windows7. Este nudo se resuelve mediante un arranque dual. Utilizo un disco donde pongo los sistemas operativos, particionados a conciencia, y si instalas primero windows y posteriormente linux no hay ningún misterio en este paso, puesto que los procesos de instalación de Ubuntu, Mint y otros vienen sobradamente preparados para coexistir con Windows.

El segundo nudo, el más importante, es tener el RAID espejo con los datos accesible por igual para los dos sistemas operativos. Este nudo NO se resuleve si en linux utilizas RAID por software (mdadm) de manera que tienes que utilizar en linux RAID por hardware a pesar que tu controladora sea de las de gama económica o de las que hacen RAID integradas en la placa base (dmraid, dicho sea de paso menos documentado en internet)

Las dificultades:

Entrar en la BIOS de la controladora RAID para asegurarte que estableces el conjunto RAID adecuadamente. Esto, por así decirlo, hace unas marcas en los discos que indican que forman parte de un conjunto RAID. Dichas marcas permiten al sistema operativo reconocer qué discos corresponden con los componentes del conjunto RAID y de esa manera identificarlos y evitar que hagas cosas indebidas a los discos por separado que podrían destruir el conjunto RAID (como por ejemplo crear una nueva tabla de particiones en uno de los discos).

En la instalación de Windows es necesario utilizar el CD con los controladores de la controladora para que detecte y muestre el conjunto RAID.

Todas las controladoras llevan drivers para Windows y para linux, si tienes suerte, tu controladora estará dentro de las soportadas por el demonio dmraid (yo tuve dicha suerte a partir de Ubuntu 12.04). Si es así, en una instalación de linux, o usando el LiveCD, podrás ver el conjunto RAID montado y acceder a él.

Entender los mensajes que te dan las aplicaciones tradicionales de linux respecto a los discos que tienes, sus tablas de particiones y los tipos de particiones que en ellos hay. Estoy hablando del comando fdisk (la salida que da para las particiones de los discos RAID y para el conjunto RAID son confusas, no me valen), de la aplicación Gparted (detecta el conjunto RAID muy claramente, pero no lo particiona bien) y la fantástica herramienta de gestión de discos de mismo nombre, Disk Manager, creada por © 2007-2009 Red Hat, de la que pongo unas capturas de pantalla. Si formateas el RAID con Windows entonces no será necesario.

Lo que menos me gusta, tener que formatear el conjunto RAID con el sistema de archivos NTFS. No olvidemos que quiero acceder a los mismos archivos desde los dos sistemas operativos y nativamente Windows sólo trabaja con NTFS (de FAT32 no quiero hablar, todavía estoy intentando olvidar que ha existido semejante crueldad).

Solución más fácil posible de todas las alternativas posibles:

Instalar Windows en el disco de sistemas operativos. Al elegir o crear la partición usar sólo la mitad del disco.

Finalizada la instalación instalar el driver de la controladora, acceder al conjunto RAID y particionarlo en NTFS con un nombre de etiqueta que lo identifique adecuadamente (yo usé dataraid).

Mover las carpetas de usuario al disco NTFS (mis documentos, mis imágenes, mis vídeos). http://www.youtube.com/watch?v=kKTNmoq2zXI&t=1m37s

Instalar Dropbox, skydrive, etc.. en modo avanzado para que el instalador te permita cambiar la opción para que la carpeta a sincronizar esté en el RAID.

-->
Instalar Ubuntu en el disco de sistemas operativos seleccionando el espacio libre junto a Windows. Al final creará el arranque dual (menú para elegir si quieres arrancar Windows o Linux).


Es más fácil asignar un punto de montaje al conjunto RAID en el instalador de linux que tener que hacerlo manualmente a posteriori. Esta segunda opción supone añadir una entrada en el archivo /etc/fstab para lo cual necesitas identificar el conjunto RAID con la partición NTFS mediante su UUID que te proporciona el comando blkid y con el tipo de archivos ntfs-3g. Usar las opciones por defecto es siempre una buena opción, sin embargo resulta imprescindible tener en cuenta los nombres de archivo que usas en Linux para que sean compatibles con Windows (opción windows_names que no permitirá nombres como este “Screenshot from 2012-08-22 08:38:30.png”) y por otro lado permitir al usuario principal tener control del sistema de archivos (opciones uid, gid, etc...) http://www.tuxera.com/community/ntfs-3g-advanced/ownership-and-permissions/#options
Yo antes lo tenía así
UUID=7878B10E78B0CBDE /media/dataraid auto defaults 0 0
Pero me cambié a
UUID=7878B10E78B0CBDE /media/dataraid ntfs uid=1000,gid=1000,windows_names 0 0

Asignar un punto de montaje es para que al arrancar linux los archivos ya sean visibles. Es importante si vamos a trabajar sobre esta unidad con documentos y aplicaciones tipo dropbox para evitar que nos den mensajes de error en tanto no hayamos accedido manualmente al conjunto RAID haciendo doble click sobre él.

Crear enlaces simbólicos en la carpeta de usuario hacia las carpetas del disco RAID, las mismas que estás usando en Windows. Respecto a crear el punto de montaje /home sobre la partición RAID NTFS en la instalación de linux el hacer enlaces simbólicos te da las siguientes ventajas:

      Puedes elegir una por una las carpetas que quieres tener en común con la instalación de Windows, al igual que hemos hecho desde Windows para Linux

      No tendrás en el RAID las carpetas de configuración de los programas, de manera que ante una futura recuperación del sistema o reinstalación no mezclamos problemáticas de archivos y datos con problemáticas de configuraciones y programas.

      Los datos que tienes en el RAID no estarán en una subcarpeta de un único usuario, por lo tanto serán accesibles para todos (para lo bueno como para lo malo, tanto en Windows como Linux, a no ser que configures permisos y dueños)

¿cómo? En la carpeta donde están los datos haces un enlace simbólico (lo que en Windows se conoce como acceso directo). Lo renombras con el mismo nombre que las carpetas de usuario. Por último lo copias dentro de la carpeta de usuario de manera que se combina (lo más limpio es que no haya ningún archivo en las carpetas de usuario antes de hacer este cambio).

Instalar dropbox configurado para usar la misma carpeta que en Windows. También se puede hacer lo mismo con UbuntuOne.

A disfrutar!! 

dmraid y disk manager

Cuando arrancas el sistema operativo con el RAID montado desde BIOS si es detectado por dmraid aparece como dm-0 pero indica sin tabla de particiones ni formato
La unidad dm-1 y sucesivas, si las hay, aparecen a medida que realizas particiones. En este caso sólo hice una con formato NTFS. La información sigue indicando que no hay tabla de particiones.

Cada disco por separado indica que forma parte de un conjunto RAID y puedes consultar el disgnóstico SMART, pero también indica que no hay tabla de particiones.

Anexo

Mi antiguo problema con mdadm que no se montaba automáticamente venía por el tipo de partición en el disco. Había creado el RAID con partición RAID de Linux en vez de Autodetección de RAID Linux. En la imagen del RAID de pruebas se observan los componentes del conjunto correctamente.

Con arrancar un LiveCD e instalar mdadm podías montar el conjunto RAID y acceder a los datos para recuperación

  1. Escribir en el terminal: sudo apt-get install mdadm
  2. Ejecutar la acción: sudo mdadm assemble --scan



 Muy sencillo, ya estuvieran todos los discos componentes del conjunto como si no (degradado).

0 comentarios:

Publicar un comentario