Esta web utiliza cookies, puedes ver nuestra política de cookies aquí. Si continuas navegando estás aceptándola

Raid Linear en Linux


Como ya se mencionó en la introducción a RAID en Linux, un raid linear nos permite utilizar dos particiones como si de una mas grande se tratase.

Aquí detellaremos los pasos necesarios para montar este tipo de RAID bajo Linux.

Para este modo lo mas sencillo será separar la partición  /boot de /:

fdisk -l /dev/vda
Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200     4196351     1048576   82  Linux swap / Solaris
/dev/vda3         4196352    67108863    31456256   fd  Linux raid autodetect
fdisk -l /dev/vdb
Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    41943039    20970496   fd  Linux raid autodetect

Creamos el array:

mdadm --create --metadata=0.9 --verbose /dev/md0 --level=linear --raid-devices=2  /dev/vda3 /dev/vdb1

NOTA: Es muy importante el parámetro --metadata=0.9 ya que si deja por defecto grub original no sabe ensamblar las unidades como un raid y no encontrará lapartición root al arrancar.

Podemos ver el array con:

cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath] 
md0 : active linear vdb1[1] vda3[0]
      52424704 blocks super 1.2 0k rounding
      
unused devices:

Generamos los sistemas de ficheros en la partición de /boot y en el array que será /:

mkfs.ext2 /dev/vda1
mkfs.ext4 /dev/md0

Seguimos con la instalación:

mkswap /dev/vda2
swapon /dev/vda2

mount /dev/md0 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/vda1 /mnt/gentoo/boot

date ssssss

cd /mnt/gentoo

links http://www.gentoo.org/main/en/mirrors.xml
releases amd64
current-stage3
stage3

tar xvjpf stage3-*.tar.bz2

cat > /mnt/gentoo/etc/portage/make.conf <<- EOF
USE="mmx sse sse2 -gpm -ipv6 "
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j4"

GENTOO_MIRRORS="rsync://de-mirror.org/gentoo/"

SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
EOF

cp -L /etc/resolv.conf /mnt/gentoo/etc/

mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev

chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"

mkdir /usr/portage
emerge-webrsync

emerge --sync

cp /usr/share/zoneinfo/Europe/Madrid /etc/localtime
echo "Europe/Madrid" > /etc/timezone

eselect profile list

emerge gentoo-sources

cd /usr/src/linux
make menuconfig

cat > /etc/fstab <<- EOF
/dev/md0                /               ext4            noatime         0 1
/dev/vda1                /boot            ext2            auto,noatime    1 2
/dev/vda2               none            swap            sw              0 0
EOF

echo "hostname="LINEAR"" > /etc/conf.d/hostname

nano -w /etc/conf.d/net
config_eth0="dhcp"

config_eth0="IP/MASCARA"
routes_eth0="default via GW"

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default

sed -e '11s/$/ LINEAR/' -i /etc/hosts

passwd

sed -i 's/keymap="us"/keymap="es"/g' /etc/conf.d/keymaps

cat > /etc/locale.gen <<- EOF
es_ES.utf8 UTF-8
es_ES@euro ISO-8859-15
EOF

locale-gen

cat > /etc/env.d/02locale <<- EOF
LANG="es_ES.utf8"
LC_COLLATE="C"
EOF

env-update && source /etc/profile

emerge syslog-ng
rc-update add syslog-ng default

emerge vixie-cron
rc-update add vixie-cron default

rc-update add sshd default

emerge grub

emerge dhcpcd

cat > /boot/grub/grub.conf <<- EOF
default 0
timeout 30
title Gentoo Linux 3.7.10
root (hd0,0)
kernel /boot/vmlinuz-3.10.7-gentoo-KVM-kr0m-RAID root=/dev/md0
EOF

grep -v rootfs /proc/mounts > /etc/mtab

NOTA: Si es una virtual con disco vritio:

echo "(hd0)   /dev/vda" >> /boot/grub/device.map
grub-install --no-floppy /dev/vda

Las nuevas versiones de udev utilizan el sistema de nombramiento de las intefaces tipo BSD, para deshabilitarlo:

echo "# Dummy comment to disable new udev naming schema, by Kr0m;)" > /etc/udev/rules.d/80-net-name-slot.rules

emerge eix
eix-sync
emerge sys-fs/mdadm
mdadm --detail --scan > /etc/mdadm.conf
cat /etc/mdadm.conf

rc-update add mdadm boot
rc-update add mdraid boot

exit
cd
umount -l /mnt/gentoo/dev/shm
umount -l /mnt/gentoo/dev/pts
umount -l /mnt/gentoo/boot
umount -l /mnt/gentoo/proc
reboot

mv /etc/portage/make.conf /etc/
ln -s /etc/make.conf /etc/portage/make.conf

mdadm --detail /dev/md0
    Number   Major   Minor   RaidDevice State
       0     253        3        0      active sync   /dev/vda3
       1     253       17        1      active sync   /dev/vdb1

Lo malo de linear es que se queda con el tamaño fijo, si intentamos ampliarlo:

mdadm --grow /dev/md0 --raid-devices=3
mdadm: linear array /dev/md0 cannot be reshaped.

Tendriamos que utilizar LVM para ello.


Autor: Kr0m -- 01/09/2013 12:53:47