Zde se nacházíte: martin-kucera.com » Linux OS » Systém » Vytváření RAID na bežícím systému

Vytváření RAID na bežícím systému

Jedná se o softwarový RAID s mdadm. Předpokládá použití LVM. Celý přechod je možné realizovat bez restartu za plného vytížení systému uživatelům pod zadkem...

Předpokládejme, že původní disk je /dev/sda a jsou na něm dva oddíly.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          31      248976   83  Linux
/dev/sda2              32       77825   624880305   8e  Linux LVM

Na malém oddílu sda1 je adresář /boot a na sda2 je LVM.

Nejdříve na novém disku vytvořím oddíly:

#fdisk /dev/sdb
n t fd p   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          31      248976   fd  Linux raid autodetect
/dev/sdb2              32       77825   624880305   fd  Linux raid autodetect
w

Jde to i jednoduššeji:

#sfdisk -d /dev/sda | sfdisk /dev/sdb

jen musíme změnit typ na Linux raid autodetect. Vytvořím degradovaný RAID 1:

#mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
#mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
#cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active (auto-read-only) raid1 sdb2[1]
      624880192 blocks [2/1] [_U]

md0 : active (auto-read-only) raid1 sdb1[1]
      248896 blocks [2/1] [_U]

unused devices: <none>

Nastavím mdadm.conf na správné hodnoty:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Takže mohu vytvořit fyzické volume:

#pvcreate /dev/md1
Physical volume "/dev/md1" successfully created

No a rozšířím stávající volume group:

#vgextend nazev_vg /dev/md1

Zbavím se původního disku (pvmove dost dlouho trvá, proto -v):

#pvmove -v /dev/sda2
#vgreduce nazev_vg /dev/sda2

/boot mám na samostatném oddílu /dev/sda1. Od teď bude na /dev/md0

#mkfs.ext2 /dev/md0
#mount /dev/md0 /mnt
#cd /boot
#cp -dpRx . /mnt/

V /etc/fstab změním v řádku s /boot /dev/sda1 na /dev/md0

#umount /boot/
#mount /boot/
#pvremove /dev/sda2

Pomocí pvdisplay a cat /proc/mdstat ověřím, zda jsem nezapoměl původní disk odpojit. Původní disk připojíme do stávajícího RAIDu:

#fdisk /dev/sda
t 1 fd t 2 fd
p
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          31      248976   fd  Linux raid autodetect
/dev/sda2              32       77825   624880305   fd  Linux raid autodetect
w
#mdadm --add /dev/md0 /dev/sda1
#mdadm --add /dev/md1 /dev/sda2

Teď se můžu mrknout do /proc/mdstat (watch cat /proc/mdstat):

     Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[2] sdb2[1]
  624880192 blocks [2/1] [_U]
  [>....................]  recovery =  0.1% (871232/624880192) finish=131.2min speed=79202K/sec

md0 : active raid1 sda1[0] sdb1[1]
  248896 blocks [2/2] [UU]

unused devices: <none>

Až je pole synchronizované, nastavím mdadm.conf na novou situaci:

cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

S grubem není potřeba dělat skoro nic. Jen nastavím, aby se po pádu jednoho disku nabootovalo automaticky z druhého. V /boot/grub/menu.lst najdu řádek s default 0:

default         0
fallback        1

a na konci souboru zkopíruju první kernel a změním root na hd1,0

title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd1,0)
kernel          /vmlinuz-2.6.26-1-686 root=/dev/mapper/nazev_vg-root ro quiet
initrd          /initrd.img-2.6.26-1-686

a nainstaluju grub na oba disky:

#grub
grub> root (hd0,0)
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)
grub> quit

Po updatování ramdisku

update-initramfs -u

je věc hotová.


Nahoru ↑

martin-kucera.com

Na mých stránkách bych vás chtěl seznámit s problematikou stavby pasivního domu v českých podmínkách. Také bych vám rád nabídl své služby v oblasti webových aplikací a django-hostingu.

 ©2009  Martin Kucera   W3C  XHTML 1.1   W3C  CSS 2.1   TOPlist TOPlist