Convert a single drive system to RAID (Español) - ArchWiki

# Convert a single drive system to RAID (Español)

Esto cubre la instalación de un segundo disco después de tener un sistema que ya esté corriendo con uno solo. Antes cerciórate de tener a salvo toda tu información (backup).

## Disco primario: déjalo para conseguir la info y grabarlo. Utilicé cfdisk.

Nota: no cambies cualquier cosa, solo presiona TAB para salir.

    cfdisk /dev/<tu_antiguo_dispositivo>

    disc1       Boot, NC    Primary   Linux ext2                          41.13
    disc2                   Primary   Linux swap / Solaris               271.44
    disc3                   Primary   Linux ext3                       82030.72

## Disco secundario: instalación usando cfdisk.

    cfdisk /dev/<tu_nuevo_dispositivo>

    disc1       Boot        Primary   Linux raid autodetect               41.13
    disc2                   Primary   Linux raid autodetect              271.44
    disc3                   Primary   Linux raid autodetect            82030.72
    Hint --> Linux raid autodetect is type: FD

## Creamos los nodos md para los dispositivos:

    mknod /dev/md0 b 9 0
    mknod /dev/md1 b 9 1
    mknod /dev/md2 b 9 2
    mknod /dev/md3 b 9 3
    ...

## Creamos los dispositivos RAID

    [root@svn ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/<yournewdevice-partitionA>
    mdadm: array /dev/md0 started.
    [root@svn ~]# mdadm --create /dev/md1 --level 1 --raid-devices=2 missing /dev/<yournewdevice-partitionB>
    mdadm: array /dev/md1 started.
    [root@svn ~]# mdadm --create /dev/md2 --level 1 --raid-devices=2 missing /dev/<yournewdevice-partitionC>
    mdadm: array /dev/md2 started.
    ...
    You may be asked: 'Continue creating array? y' if the disk was already formated.
    [root@svn ~]#

## Chequea /proc/mdstat

Todos los dispositivos están intactos pero se degradan:

    [root@svn ~]# cat /proc/mdstat
    Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10]
    md2 : active raid1 sdb3[1]
         80108032 blocks [2/1] [_U]

    md1 : active raid1 sdb2[1]
         264960 blocks [2/1] [_U]

    md0 : active raid1 sdb1[1]
         40064 blocks [2/1] [_U]

    unused devices: <none>
    [root@svn ~]#

## Creamos los sistemas de archivos que necesitemos utilizando las herramientas de creación.

Nota: nuestro /boot es ext2, / es ext3.

    [root@svn ~]# mke2fs -j /dev/md0
    mke2fs 1.38 (30-Jun-2005)
    Filesystem label=
    OS type: Linux
    Block size=1024 (log=0)
    Fragment size=1024 (log=0)
    10040 inodes, 40064 blocks
    2003 blocks (5.00%) reserved for the super user
    First data block=1
    5 block groups
    8192 blocks per group, 8192 fragments per group
    2008 inodes per group
    Superblock backups stored on blocks:
           8193, 24577

    Writing inode tables: done
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    This filesystem will be automatically checked every 35 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.

    * mkswap
    [root@svn ~]# mkswap /dev/md1
    Setting up swapspace version 1, size = 271314 kB
    no label, UUID=9d746813-2d6b-4706-a56a-ecfd108f3fe9

    * mkfs.ext3 for /
    [root@svn ~]# mkfs.ext3 -j /dev/md2
    mke2fs 1.38 (30-Jun-2005)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    10027008 inodes, 20027008 blocks
    1001350 blocks (5.00%) reserved for the super user
    First data block=0
    612 block groups
    32768 blocks per group, 32768 fragments per group
    16384 inodes per group
    Superblock backups stored on blocks:
           32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
           4096000, 7962624, 11239424

    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done

    This filesystem will be automatically checked every 25 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [root@svn ~]#

## Montamos y copiamos la información.

    # mount new raid /
    [root@svn ~]# mount /dev/md<where you assigned-/-number> /mnt/
    # mount new raid /boot
    [root@svn ~]# mkdir /mnt/boot
    [root@svn ~]# mount /dev/md<where you assigned-/boot-number> /mnt/boot/
    # add dirs and mount all other partitions
    You need to do this for every partition you had on old disk, to create the new raid device exactly the same.
    ...
    # copy / to new /raid/
    [root@svn ~]# cd /mnt
    [root@svn mnt]# tar -C / -clspf - . | tar -xlspvf -
    # copy /boot to new /raid/boot
    cd /mnt/boot

[root@svn boot]# tar -C /boot -clspf - . | tar -xlspvf -

    # copy other partitions
    You need to do this for every partition you had on old disk, to create the new raid device exactly the same.
    ...

## Nota: PASO CRUCIAL

Editar /mnt/boot/grub/menu.lst Nota: debe parecerse a: Añadir "fallback 1" a menú.lst

    ----- snip -----
    default   0
    color light-blue/black light-cyan/blue

    ## fallback disc1
    fallback 1

    # (0) Arch Linux
    title  Arch Linux  [Disc0: /boot/vmlinuz26]
    root   (hd0,0)
    #kernel /vmlinuz26 root=/dev/discs/disc0/part3 ro
    kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>
    md=<all your md devices,
    please refer mkinitcpio howto for correct syntax,
    but don't add the old disk partitions at this point> ro

    # (1) Arch Linux
    title  Arch Linux  [Disc1: /boot/vmlinuz26]
    root   (hd1,0)
    #kernel /vmlinuz26 root=/dev/discs/disc1/part3 ro
    kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>
    md=<all your md devices,
    please refer mkinitcpio howto for correct syntax,
    but don't add the old disk partitions at this point> ro
    ----- snip -----

## Instalar: vi /mnt/etc/fstab para el nuevo dispositivo md.

Acabo de comentar las líneas hacia fuera.

    #/dev/discs/disc0/part3 / ext3 defaults 0 1
    /dev/md2 / ext3 defaults 0 1
    #/dev/discs/disc0/part1 /boot ext2 defaults 0 1
    /dev/md0 /boot ext2 defaults 0 1
    #/dev/discs/disc0/part2 swap swap defaults 0 0
    /dev/md1 swap swap defaults 0 0

Montar /proc y /sys para el nuevo raid.

    mount --bind /sys /mnt/sys
    mound --bind /proc /mnt/proc

## Ejecutamos chroot dentro del nuevo sistema RAID y reconstruimos initrd.

    chroot /mnt
    # edit /etc/mkinitcpio.conf to include 'raid' in HOOKS and place it before 'autodetect'
    mkinitcpio -g /boot/kernel26.img
    pacman -Rd udev
    pacman -S udev
    exit

## Instalamos GRUB en el nuevo RAID de discos, cambiando los números de acuerdo a la instalación.

    [root@svn /]#grub
    grub> root (hd1,0)
    Filesystem type is ext2fs, partition type 0xfd

    grub> setup (hd1)
    Checking if "/boot/grub/stage1" exists... yes
    Checking if "/boot/grub/stage2" exists... yes
    Checking if "/boot/grub/e2fs_stage1_5" exists... yes
    Running "embed /boot/grub/e2fs_stage1_5 (hd1)"...  16 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd1) (hd1)1+16 p

(hd1,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded

    Done
    grub>quit
    [root@svn /]#

Reiniciamos con el nuevo disco RAID y no, dentro del disco viejo podríamos necesitar hacer algunos ajustes en el BIOS.

    /sbin/reboot

Cruzamos los dedos ;) Si el sistema bootea bien, agrega los dispositivos md que faltan al RAID.

    [root@svn ~]# mdadm /dev/md0 -a /dev/<old-disk-partitionA>
    mdadm: hot added /dev/<old-disk-partitionA>
    [root@svn ~]# mdadm /dev/md1 -a /dev/<old-disk-partitionB>
    mdadm: hot added /dev/<old-disk-partitionB>
    [root@svn ~]# mdadm /dev/md2 -a /dev/<old-disk-partitionC>
    mdadm: hot added /dev/<old-disk-partitionC>
    ...
    [root@svn ~]

## Chequeamos con mdstat

Verificamos que el RAID se haya construído:

    [root@svn ~]# cat /proc/mdstat
    Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [raid6] [raid10]
    md1 : active raid1 sda2[0] sdb2[1]
         264960 blocks [2/2] [UU]

    md2 : active raid1 sda3[2] sdb3[1]
         80108032 blocks [2/1] [_U]
         [>....................]  recovery =  1.2% (1002176/80108032) finish=42.0min speed=31318K/sec
    md0 : active raid1 sda1[0] sdb1[1]
         40064 blocks [2/2] [UU]

    unused devices: <none>
    [root@svn ~]#

## Finalizamos la configuración de grub

    ----- snip -----
    # (0) Arch Linux
    title  Arch Linux  [Disc0: /boot/vmlinuz26]
    root   (hd0,0)
    #kernel /vmlinuz26 root=/dev/discs/disc0/part3 ro
    kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>
    md=<all your md devices,
    please refer mkinitcpio howto for correct syntax,
    add the old disk partitions at this point> ro

    # (1) Arch Linux
    title  Arch Linux  [Disc1: /boot/vmlinuz26]
    root   (hd1,0)
    #kernel /vmlinuz26 root=/dev/discs/disc1/part3 ro
    kernel /vmlinuz26 root=/dev/md<where you assigned-/-number>
    md=<all your md devices,
    please refer mkinitcpio howto for correct syntax,
    add the old disk partitions at this point> ro
    ----- snip -----

## Finalizamos initrd.

    edit /etc/mkinitcpio.conf
    you can now place 'raid' hook behind autodetect and rebuild initrd
    mkinitpcio -g /boot/kernel26.img

## Cambiamos el orden de arranque en la BIOS nuevamente.

Terminamos, disfruta de tu nueva configuración RAID.

Category:

- File systems (Español)