Etiqueta: RAID

  • Configuración de volumen RAID por Software en Linux

    INCOMPLETO/OBSOLETO Procedimiento para la configuración de un volumen RAID (en este caso RAID5) por Software (sin controladora RAID física) en Linux (Kubuntu 7.10 Gutsy Gibbon)

    Aunque incompleto o no válido del todo lo dejo para que sirva de orientación sobre lo que hay que hacer.

    En primer lugar hay que preparar las particiones que vayamos a utilizar para formar el volumen RAID5 (por lo menos 3). Puesto que se trata de una implementación por software tengo entendido, aunque no lo he probado, que se podría hasta utilizar más de una partición de un mismo disco físico, aunque esto sólo tendría lógica para realizar pruebas pues en caso de fallo de un disco que aloje más de una partición participante en el volumen RAID5 perderíamos la información del volumen.

    Si necesitamos crear la partición en el disco utilizaremos fdisk:

    $ sudo fdisk /dev/sda
    El número de cilindros para este disco está establecido en 14946.
    
    No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
    
    podría causar problemas con:
    
    1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
    
    2) software de arranque o particionamiento de otros sistemas operativos
    
       (p.ej. FDISK de DOS, FDISK de OS/2)Orden (m para obtener ayuda): n
    
    Acción de la orden
    
    e   Partición extendida
    
       p   Partición primaria (1-4)
    
    p
    
    Número de partición (1-4): 1
    
    Primer cilindro (1-14946, valor predeterminado 1):
    
    Se está utilizando el valor predeterminado 1
    
    Último cilindro o +tamaño o +tamañoM o +tamañoK (1-14946, valor predeterminado 14946): +17408M
    
    Orden (m para obtener ayuda): p
    
    Disco /dev/sda: 122.9 GB, 122942324736 bytes
    
    255 cabezas, 63 sectores/pistas, 14946 cilindros
    
    Unidades = cilindros de 16065 * 512 = 8225280 bytes
    
    Disk identifier: 0x25312531
    
    Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
    
    /dev/sda1               1        2117    17004771   83  Linux
    
    Orden (m para obtener ayuda): t
    
    Se ha seleccionado la partición 1
    
    Código hexadecimal (escriba L para ver los códigos): fd
    
    Se ha cambiado el tipo de sistema de la partición 1 por fd (Linux raid autodetect)
    
    Orden (m para obtener ayuda): p
    
    Disco /dev/sda: 122.9 GB, 122942324736 bytes
    
    255 cabezas, 63 sectores/pistas, 14946 cilindros
    
    Unidades = cilindros de 16065 * 512 = 8225280 bytes
    
    Disk identifier: 0x25312531
    
    Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
    
    /dev/sda1               1        2117    17004771   fd  Linux raid autodetect
    
    Orden (m para obtener ayuda): w
    
    ¡Se ha modificado la tabla de particiones!
    
    Llamando a ioctl() para volver a leer la tabla de particiones.
    
    Se están sincronizando los discos.
    
    $

    He elegido 17408 Mb como tamaño porque en uno de los discos a utilizar solo tengo eso disponible. Con la orden t se especifica el identificador de la partición, el valor hexadecimal fd representa el tipo «Linux raid autodetect».

    De igual modo crearemos otras dos particiones o estableceremos su identificador de tipo a fd en el caso de que ya exista la partición.

    En mi caso, debido a que las otras particiones que voy a incluir en el volumen RAID se encontraban en discos que contenían otras particiones utilizadas por el sistema, al escribir la tabla de particiones obtenía el siguiente mensaje:

    ¡Se ha modificado la tabla de particiones!
    Llamando a ioctl() para volver a leer la tabla de particiones.
    ATENCIÓN: La relectura de la tabla de particiones falló con el
    
    error 16: Dispositivo ó recurso ocupado.
    
    El núcleo todavía usa la tabla antigua.
    
    La nueva tabla se usará en el próximo reinicio.
    
    Se están sincronizando los discos.

    Por lo que tuve que reiniciar el sistema.

    El comando partprobe puede hacer que el núcleo actualice su tabla de particiones, evitando tener que reiniciar.

    $ sudo partprobe

    Una vez reiniciado el sistema con disponibles las tres particiones tipo fd (Linux raid autodetect) se instala el paquete mdadm:

     $ sudo apt-get install mdadm

    A continuación creamos el volumen RAID, le llamaré /dev/md0, será un volumen RAID5, por tanto selecciono nivel 5 y puesto que lo monto sobre 3 particiones (podrían ser más pero no menos para el nivel 5) indico el número de dispositivos y el nombre de cada uno de ellos:

    $ sudo /sbin/mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 \
    	 /dev/hda2 /dev/sda1 /dev/sdb2

    Ahora tenemos que crear una partición:

    $ sudo fdisk /dev/md0
    El dispositivo no contiene una tabla de particiones DOS válida ni una etiqueta de disco Sun o SGI o OSF
    Building a new DOS disklabel with disk identifier 0xcb76e3ca.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    El número de cilindros para este disco está establecido en 8502336.
    No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
    podría causar problemas con:
    1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
    2) software de arranque o particionamiento de otros sistemas operativos
       (p.ej. FDISK de DOS, FDISK de OS/2)
    Atención: el indicador 0x0000 inválido de la tabla de particiones 4 se corregirá mediante w(rite)
    Orden (m para obtener ayuda): n
    Acción de la orden
    e   Partición extendida
       p   Partición primaria (1-4)
    p
    Número de partición (1-4): 1
    Primer cilindro (1-8502336, valor predeterminado 1):
    Se está utilizando el valor predeterminado 1
    Último cilindro o +tamaño o +tamañoM o +tamañoK (1-8502336, valor predeterminado 8502336):
    Se está utilizando el valor predeterminado 8502336
    Orden (m para obtener ayuda): w
    ¡Se ha modificado la tabla de particiones!
    Llamando a ioctl() para volver a leer la tabla de particiones.
    ATENCIÓN: La relectura de la tabla de particiones falló con el
    error 22: Argumento inválido.
    El núcleo todavía usa la tabla antigua.
    La nueva tabla se usará en el próximo reinicio.
    Se están sincronizando los discos.

    Reiniciamos de nuevo.