1 de Septiembre, 2005

Aprovechando discos viejos: RAID por software

Voy acumulando PCs muertos durante un tiempo, bajo la promesa de revisarlos para ver qué se puede reutilizar y llevar a reciclar al resto. Pues hoy ya he decidido que tenía bastante material (y muy poco espacio físico libre :D).

Sonia no tiene una máquina para trabajar en casa (no cuenta el 486, no), así que pretendo solucionar eso, y además darle acceso a elxwifi más adelante (pero eso será otra historia).

Entre la basura que tenía por aquí he podido conseguir:

CPU: Pentium II a 350Mhz
RAM: 196 MB (pc133)
Discos: dos, un 4GB Seagate y un 2GB Western Digital (ruidoso)
LAN: Realtek 8029 (AS)
Otros: GeForce 256 (AGP), regrabadora Liteon 52x24x52x y una Sound Blaster nosequé :)

Es una máquina principalmente para trabajar (ofimática), y la única red a la que accederá será elxwifi (802.11b vía bridge, por eso solo 10mbps).

El principal problema son obviamente los discos. Debido al trabajo, Sonia depende de algunas aplicaciones especializadas que solo funcionan en Microsoft Windows (sabe Dios que he intentado buscar solución, pero la tienen atada de pies y manos :'(), así que voy a destinar 3GB a un Windows 2000 Profesional (que mal lo paso instalando estas cosas), lo que me deja otros 3GB para Ubuntu Linux.

Tener una particion de 1GB y un disco de 2GB puede parecer un problema, pero trabajando con Software Libre vamos a intentar que sea una ventaja gracias a implementar un RAID por software.

Felipe me recomendaba un Raid 1, que realiza replica de los datos y aportaría seguridad mediante redundancia. Es decir, si un disco se rompe, el otro seguiría funcionando, y no perdería datos. Lamentablemente no puedo permitirme esta opción; lo que necesito es aprovechar toda la capacidad que me dan los dos discos, así que mi mejor apuesta es un Raid 0 o simplemente trabajar con un RAID en modo lineal (concatenando todas las paticiones en un solo disco virtual, pero sin repartir los datos equitativamente como haría el otro; creo :P).

Lo primero que hay que hacer es poner cada disco en un canal IDE distinto, de forma que el Raid 0 nos permita ganar velocidad al poder trabajar en paralelo, y además emplear todo el espacio disponible.

Quiero apuntar antes de seguir más adelante que hay posibilidades más simples que nos permitirían aprovechar, por ejemplo, discos pequeños de 1 o 2 GB, simplemente poniéndolo en otro canal IDE distinto al principal y usándolo como swap. Esta opción es interesante para máquinas justas de memoria, en las que un aumento de velocidad en las tareas de intercambio a disco sería apreciable.

En mi caso, y como parto de una instalación nueva, voy a usar las opciones que nos proporciona el fabricante (Ubuntu Linux) para montar el RAID. Esto significa que no voy a poder poner capturas de pantalla o copiar el contenido literal del instalador, pero sí puedo indicar los pasos que he seguido.

La instalación (de la versión 5.04, aka Hoary) se realiza normalmente hasta que llegamos a Particionado de discos:

  1. Elegimos Editar manualmente la tabla de particiones, lo que nos lleva a Particionado de discos.
  2. En mi caso voy a hacer una partición para swap en el disco uno donde queda 1GB libre, creando una partición con el resto, y una sola partición para todo el disco 2. Hay que tener en cuenta que las particiones para el RAID se tienen que marcar en Utilizar como eligiendo Volumen físico para RAID.
  3. Elegimos, siempre dentro de Particionado de discos, Configurar RAID software.
  4. Nos advierte el instalador claramente que tenemos que guardar los cambios hechos en las particiones y que una vez configurado el RAID no podremos realizar modificaciones en el mismo. En mi caso me informa que se han cambiado las tablas de particiones de ambos discos y que hay que dar formato a la segunda partición del primero para emplearla como intercambio (swap). Contesto a la pregunta sobre escribir los cambios y configurar el RAID.
  5. Ahora nos da tres acciones para configurar multi-discos: Crear un dispositivo MD, Borrar un dispositivo MD y Terminar. Creamos nuestro nuevo disco virtual con la primera opción y elegimos RAID0 en el siguiente menú.
  6. Ahora tenemos que indicar las particiones que van a forma parte del RAID. A mi me aparecen dos (las marcadas como volumen físico para RAID), y en este caso son esas dos :). Seleccionamos y elegimos Continuar, y a continuación Terminar.
  7. Ahora nos llevan a Particionado de discos, donde podemos ver el nuevo dispositivo RAID0, con el tamaño concatenado de las dos particiones (2.6GB en este caso, he usado 512MB para el swap en primer disco). Elegimos la única partición disponible y la usamos con el sistema de ficheros que nos interese y en el punto de montaje que queramos (ext3 y / -la raíz, no tengo más particiones- en mi caso).
  8. Elegimos Finalizar el particionado y escribir los cambios en el disco y continuamos con la instalación normalmente.

Teniendo en cuenta el resultado, es impresionante lo fácil que es configurar un RAID por Software con Ubuntu.

Tampoco voy a obtener un rendimiento óptimo, ya que el espacio disponible en el disco uno para el RAID es muy pequeño, pero teniendo en cuenta que el swap está en ese disco y que he podido aprovechar al máximo el espacio libre que me quedaba obteniendo un disco virtual más grande, estoy muy contento :D. Tengo como referencia la instalación en un Pentium II de características similares y sin RAID y estoy apreciando velocidad, aunque es un comentario subjetivo donde los haya ;).

Menos mal que me ha dado alegrías la instalación de Ubuntu, porque hay que ver la mala leche que le entra a uno cuando instala el otro sistema operativo...

Anotación por Juan J. Martínez, clasificada en: raid, linux.

Hay 3 comentarios

Gravatar

Yo tengo una instalación de una debian sarge sobre un RAID 1 por software (el mismo instalador que ubuntu) en dos discos duros en canales diferentes (hda y hdc).
La semana pasada se rompió el hda y el sistema no arrancaba ya que grub estaba en el hda; así que arranque con una live, monté la partición raid (md0) y ejecute un 'grub-install /dev/hdc' para grabar el cargador en el disco duro que quedaba, reinicié y a funcionar :)
De momento como aún se esta esperando el disco duro de repuesto sigue con un sólo disco duro, cuando que tenga que hacer la replicación de datos tendré que ver si se replica automágicamente :D

por josefu, en 2005-09-01 20:18:31

Gravatar

Si configuras el giga que te queda en el primer disco como partición para el RAID y pones la partición de swap en el segundo disco te hubiesen quedado 2 gigas sobre los que se efectuarían escrituras en paralelo, frente al giga que tienes actualmente (512Mb x 2).

Saludos y felicidades por la bitácora ... tus artículos me han sacado de mas de un apuro y me han dado muchas ideas.

por un lector habitual, en 2005-09-02 20:11:08

Gravatar

¡Que fallo! Tienes toda la razón, esa sin duda es la mejor opción.

De todas formas el artículo no comenta lo obvio: los discos viejos pueden fallar. Eso mismo me ha ocurrido a mi :'( El disco de 2GB ha participado en el RAID durante un par de horas aproximadamente... luego ha pedido cortésmente que le dejaran descansar en paz.

Lástima :)

por Juanjo, en 2005-09-03 01:29:25

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: