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.

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
[email protected] 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:09:47