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 ↑
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.