Cuanta razón, y cómo conviene descubrir esto lo antes posible:
"Quiero un producto de calidad que dure y que no me dé problemas. Quiero una garantía y un servicio eficiente. Quiero llegar a casa y que las cosa funcionen. Antes no tenía dinero pero tenía tiempo para coger un destornillador e irme a la tienda a amenazar al vendedor. Ahora tengo dinero pero no tengo tiempo, y prefiero gastarme un poco más comprando tranquilidad."
Vía | El Sentido de la Vida
27/03/06
09/03/06
Debian RAID
En mi despacho en casa dispongo de un servidor Debian Linux que hace multitud de tareas. Desde conexión a internet con cortafuegos (iptables), servidor de ficheros (samba), backups (backuppc), gestión de la red (bind, dhcp), copias de seguridad entre servidores (rsync), descargas p2p (mldonkey) y muchas más cosas que seguro que me olvido ahora mismo.
Se trata de un simple PC, concretamente mi antiguo PC ahora que tengo mi flamante Athlon. Dispone de un disco duro de 160G pero que esta muy justo y ya lo he tenido que cambiar una vez porque petó (yperdí los datos tuve que recurrir a las copias de seguridad, que le vamos a hacer).
Por eso he optado por reinstalar el sistema con mayor capacidad y, sobre todo, fiabilidad. He comprado 3 discos duros de 300G y la idea es montarlo todo sobre RAID.
Antes de ponerme con el servidor, he pillado un PC que había por aquí y lo he utilizado para hacer pruebas (con los 3 discos intentar instalar un Debian).
Tras muchas búsquedas por internet parece que lo de poner un RAID para todas las partes del sistema, especialmente el arranque, no es fácil. Más aún ya que yo quiero RAID 5 para disponer de 600G efectivos de capacidad.
Bien, la configuración que me ha quedado finalmente es la siguiente:
Todos los discos con estas 3 particiones:
¿Cual es el problema de instalar y arrancar sobre RAID?
El problema está básicamente en que habitualmente el kernel carga los módulos de RAID (md, raid1, raid5) como eso... módulos. Por tanto, ha de leerlos de disco... círculo vicioso. Hay dos soluciones posibles: compilar un kernel con soporte incluido de RAID o crear un ramdisk con los módulos para que se pueda cargar.
Otro problema es que tanto la imagen del kernel como el ramdisk estan en /boot así que ... ¿como vamos a poner eso en RAID?
La respuesta es que en realidad no podemos... Sin embargo, tanto LILO como GRUB tienen soporte básico para RAID1 porque en realidad un RAID1 hace que todos los discos tengan lo mismo. De ahí que /boot sea un RAID1 y no un RAID5. Y sí, RAID1 no es exclusivo de 2 discos... puedes hacerlo sobre el número de discos que quieras.
Así que lanzando el Debian Installer simplemente hemos de particionar manualmente los discos con, según mi ejemplo, las tres particiones iguales en los tres discos. Luego, generamos los 3 dispositivos md y les asignamos los sistemas de ficheros correspondientes.
Con esto ya tenemos la redundancia que queríamos. Sin embargo, el gestor de arranque (en mi caso GRUB) sólo está instalado en el MBR del primer disco. Eso hace que si falla el primer disco, no podamos arrancar el sistema. Para solucionar esto nada más sencillo que marcar los otros MBR con el grub. Simplemente al arrancar el sistema normalmente entramos en el prompt de grub (ejecutando 'grub' como root) y ejecutamos los siguientes comandos:
Lo primero es comprobar el estado en /proc/mdstat o con la orden
mdadm -QD /dev/mdX
Y para añadir las particiones que nos falten:
mdadm --manage -a /dev/md2 /dev/hda3
¡Suerte con vuestros intentos!
Se trata de un simple PC, concretamente mi antiguo PC ahora que tengo mi flamante Athlon. Dispone de un disco duro de 160G pero que esta muy justo y ya lo he tenido que cambiar una vez porque petó (y
Por eso he optado por reinstalar el sistema con mayor capacidad y, sobre todo, fiabilidad. He comprado 3 discos duros de 300G y la idea es montarlo todo sobre RAID.
Antes de ponerme con el servidor, he pillado un PC que había por aquí y lo he utilizado para hacer pruebas (con los 3 discos intentar instalar un Debian).
Tras muchas búsquedas por internet parece que lo de poner un RAID para todas las partes del sistema, especialmente el arranque, no es fácil. Más aún ya que yo quiero RAID 5 para disponer de 600G efectivos de capacidad.
Bien, la configuración que me ha quedado finalmente es la siguiente:
Todos los discos con estas 3 particiones:
- 100M
- 500M
- resto (unos 298G)
- /dev/md0 en RAID1 con las tres particiones de 100M para /boot (100M)
- /dev/md1 en RAID5 con las tres particiones de 500M para swap (1G)
- /dev/md2 en RAID5 con las tres particiones de 298G para / (597G)
¿Cual es el problema de instalar y arrancar sobre RAID?
El problema está básicamente en que habitualmente el kernel carga los módulos de RAID (md, raid1, raid5) como eso... módulos. Por tanto, ha de leerlos de disco... círculo vicioso. Hay dos soluciones posibles: compilar un kernel con soporte incluido de RAID o crear un ramdisk con los módulos para que se pueda cargar.
Otro problema es que tanto la imagen del kernel como el ramdisk estan en /boot así que ... ¿como vamos a poner eso en RAID?
La respuesta es que en realidad no podemos... Sin embargo, tanto LILO como GRUB tienen soporte básico para RAID1 porque en realidad un RAID1 hace que todos los discos tengan lo mismo. De ahí que /boot sea un RAID1 y no un RAID5. Y sí, RAID1 no es exclusivo de 2 discos... puedes hacerlo sobre el número de discos que quieras.
Así que lanzando el Debian Installer simplemente hemos de particionar manualmente los discos con, según mi ejemplo, las tres particiones iguales en los tres discos. Luego, generamos los 3 dispositivos md y les asignamos los sistemas de ficheros correspondientes.
Con esto ya tenemos la redundancia que queríamos. Sin embargo, el gestor de arranque (en mi caso GRUB) sólo está instalado en el MBR del primer disco. Eso hace que si falla el primer disco, no podamos arrancar el sistema. Para solucionar esto nada más sencillo que marcar los otros MBR con el grub. Simplemente al arrancar el sistema normalmente entramos en el prompt de grub (ejecutando 'grub' como root) y ejecutamos los siguientes comandos:
- root (hd1,0)
- setup (hd1)
- root (hd2,0)
- setup (hd2)
- quit
Lo primero es comprobar el estado en /proc/mdstat o con la orden
mdadm -QD /dev/mdX
Y para añadir las particiones que nos falten:
mdadm --manage -a /dev/md2 /dev/hda3
¡Suerte con vuestros intentos!
Suscribirse a:
Entradas (Atom)