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

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

From ArchWiki
Jump to navigation Jump to search

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:

- Storage virtualization (Español)