[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: install Raid + LVM sur P5GDC



pascal a écrit :

Comme à nouveau personne ne m'a répondu j'ai moins de scrupule à me répondre et à changer pour revenir à mon pb principal qui est l'installation LVM + Raid sur une P5GDC "de luxe".

salut,


Mais si on répond, un peu de patience...

bon on va essayer de t'aider, le raid+lvm je connais un peu et ses galères de boot aussi : ;-)


Résumons t'as 2 disques IDE PATA (hda et hdc) et tu veux faire du raid1+lvm dessus , c'est bien cela ?


ton probleme avec grub, c'est que grub sait pas bien gérer les device en raid (enfin d'après mes connaissances de grub) lilo apparemment se débrouille mieux avec le raid

solution : si c'est du raid-1, tu ne mets pas root=/dev/md0 mais l'une des partitions qui constitue le raid1 de /boot et de / et pas faire de LVM sur ces 2 partoches.


question : je vois que tu parles de pb avec un lecteur CD/DVD ? il est pas branché sur le meme controleur que l'un des 2 disques (ça c'est très très mauvais raid soft => 1 HD en master par controleur IDE et rien d'autre)


Quand j'installe une machine en raid1 sur une CM "ancienne génération" (ça marche aussi pour des controleurs SATA souvent vu comme des HD SCSI) avec 2 controleurs IDE je procède de la manière suivante :

1) je taille les disques **exactement** de la meme manière

2) j'installe une debian mini sur hda avec le CD ROM branché (cette debian servira de rescue en cas de problème sur la vrai debian raid+lvm)

3) une fois OK, arret machine, je débranche le lecteur CD, je branche le 2e disque (hdc) à la place du lecteur CD, reboot

2) je m'arrange à terme pour mettre grub sur le MBR des 2 disques (si hda lache il faut pouvoir booter sur hdc)

3) j'evite le plus possible le raid1 et LVM "partout" (notemment / et /boot) si la machine est pas hyper-critique et accepte un arret pour changement de disque. de plus mettre /boot et / dans un LVM ne présente aucun intéret, tu retaille rarement / ou /boot ; je mets 200 Mo pour /boot et 1-1.5G pour / et c'est largement suffisant


Sinon faut recompiler le noyau pour le support du raid (md) et de LVM et surtout pas d'initrd (en plus avec la disparition de devfs utilisé par LVM au profit de udev, je nage un peu là...)

Voici une config que j'ai fait y a qques temps pour une machine de tests de vservers

1 PC athlonXP avec 2 HD IDE/PATA 80Go (donc vu comme hda et hdc)

Découpage des disques

hda1, hdc1 = swap (512 Mo x 2)
hda2, hdc2 = linux rescue (2 fois) (1 Go x 2)
hda5, hdc5 = /dev/md0 = /boot (200 Mo x 2)
hda6, hdc6 = /dev/md1 = / (1 Go x 2)
hda7, hdc7 = /dev/md2 = /dev/vg0 (LVM de ~ 75 Go) => pour /usr, /tmp /home, /var /root tout ça en LV avec de la marge , j'ai pas tout alloué

étape 1) install debian "rescue"
--------------------------------

=> but éviter de devoir booter sur un live CD, et avoir un linux "rescue" sous la main en cas de pépin

install classique + paquets lvm2, mdmadm, reiserfsprogs etc autres outils systeme/reseau

Donc on a une debian sur hda2, le swap sur hda1 et hdc1, on installe grub sur hda



étape 2) création des 3 raid1 (on est sous la debian "rescue")
--------------------------------------------------------------

=> mdadm --create ....

pas oublier de générer le /etc/mdadm/mdadm.conf avec la commande
# mdadm --detail --scan >> /etc/mdadm.conf

[root@maggie:~]# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid5] [multipath] [faulty]
md1 : active raid1 hdc6[1] hda6[0]
      1461760 blocks [2/2] [UU]

md2 : active raid1 hdc7[1] hda7[0]
      75039488 blocks [2/2] [UU]

md0 : active raid1 hdc5[1] hda5[0]
      192640 blocks [2/2] [UU]


[root@maggie:~]# cat /etc/mdadm/mdadm.conf
DEVICE partitions
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=71b3bfb5:fac1a1e3:471eef35:7fc3992b
   devices=/dev/hda7,/dev/hdc7
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=cd4ade31:c36a6e13:0b27d47e:ab4284fb
   devices=/dev/hda6,/dev/hdc6
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=613c60aa:f45bbfda:e7ad05a1:b758c957
   devices=/dev/hda5,/dev/hdc5
MAILADDR        raidmaster


là on reboot pour voir si les 3 raid1 sont bien montés automatiquement avec mdadm -F (cf /etc/init.d/mdadm) => faire un cat /proc/mdstat



3) installation de LVM "à la main" sur /dev/md2 :
-----------------------------------------------

Création du volume group vg0 :

# pvcreate /dev/md2
# vgcreate -A n vg0 /dev/md2

Création des volumes logiques (LV) :

# lvcreate -A n -L300 -n lvtmp vg0
# lvcreate -A n -L500 -n lvroot vg0
# lvcreate -A n -L1500 -n lvusr vg0
# lvcreate -A n -L1500 -n lvvar vg0
# lvcreate -A n -L10000 -n lvhome vg0

Formatage des partitions (ext3 partout sur cette machine) :
mkfs.ext3 -m1 -Lboot /dev/md0
mkfs.ext3 -m1 -Lroot /dev/md1
mkfs.ext3 -m1 -Ltmp /dev/vg0/lvtmp
mkfs.ext3 -m1 -Lhome /dev/vg0/lvroot
mkfs.ext3 -m1 -Lusr /dev/vg0/lvusr
mkfs.ext3 -m1 -Lvar /dev/vg0/lvvar
mkfs.ext3 -m1 -Lhome /dev/vg0/lvhome


on reboot, on prend tjs la debian "rescue" sur hda2 et on vérifie que le LVM est OK

# vgdisplay -v


etape 4)
Transfert du systeme debian de base de hda2 -> devices md0,md1 et le LVM
-------------------------------------------------------------------------

# cd /mnt
# mkdir fs
# mount /dev/md1 /mnt/fs
# mount /dev/md0 /mnt/fs/boot
# cd /mnt/fs
# mount /dev/vg0/lvtmp tmp
# mount /dev/vg0/lvroot root
# mount /dev/vg0/lvusr usr
# mount /dev/vg0/lvvar var
# mount /dev/vg0/lvhome home


# mount
/dev/hda2 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/md1 on /mnt/fs type ext3 (rw)
/dev/md0 on /mnt/fs/boot type ext3 (rw)
/dev/mapper/vg0-lvtmp on /mnt/fs/tmp type ext3 (rw)
/dev/mapper/vg0-lvroot on /mnt/fs/root type ext3 (rw)
/dev/mapper/vg0-lvusr on /mnt/fs/usr type ext3 (rw)
/dev/mapper/vg0-lvvar on /mnt/fs/var type ext3 (rw)
/dev/mapper/vg0-lvhome on /mnt/fs/home type ext3 (rw)


Recopie de la debian "rescue" vers la debian de "production" :
# cp -avx / . &


Ensuite modifie le fichier /mnt/fs/etc/fstab pour coller à cela :

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/md1 / ext3 usrquota,grpquota,errors=remount-ro 0 1
/dev/md0        /boot   ext3    defaults        0       0
/dev/mapper/vg0-lvroot  /root   ext3 defaults       0       0
/dev/mapper/vg0-lvtmp   /tmp    ext3 defaults       0       0
/dev/mapper/vg0-lvusr   /usr    ext3 defaults       0       0
/dev/mapper/vg0-lvvar   /var    ext3 defaults       0       0
/dev/mapper/vg0-lvhome  /home   ext3 rw,usrquota,grpquota        0       0
/dev/hda1       none            swap    sw              0       0
/dev/hdc1       none            swap    sw              0       0
/dev/hda2       /mnt/rescue      ext3    defaults        0       0



Ensuite on modifie /boot/grub/menu.lst, ajout :


title           raid1+lvm2  (boot=hda5,root=md1)
root		(hd0,4)
kernel          /vmlinuz-2.6.8-2-386 root=/dev/md1 ro
initrd         /initrd.img-2.6.8-2-386

bon ici j'avais déjà recompilé un kernel avec en dur le support du raid, du fs ext3 etc etc pour pas m'embeter avec mkinitrd


sinon tu peux mettre
title           raid1+lvm2  (boot=hda5,root=hda6)
root            (hd0,4)
kernel          /vmlinuz-2.6.8-2-386 root=/dev/hda6 ro
initrd         /initrd.img-2.6.8-2-386


t'es en raid1 donc ce qu'il y a sur hda6 = ce qu'il y a sur hdc6 pas => besoin de s'embeter avec root=/dev/md1 dans le boot grub


etape 5) rebooter et prier

tu choisis l'entrée grub correpondant à ton raid+lvm


Conseils :

1) ici tout est en raid-1 (/, /boot et le LVM), j'avoue que maintenant quand j'ai pas bcp de temps je ne fais plus qu'un seul raid1 (le LVM) et je rsync ou dd regulièrement via un cron /boot de hda5 --> hdc5 et / de hda6 vers hdc6 qui sont des partoches "classiques"


mais bon éviter surtout LVM sur /boot et / je pense, comme je l'ai dit : aucun intéret et bcp bcp de galères pour pas grand chose : a 100 euro les 200G, ca me dérange pas de "perdre" de 1.5 Go pour /boot et / du moment qu'ils sont synchro sur les 2 HD


2) bien mettre grub également sur le 2e disque (hdc)

et avoir des entrées grub qui permettent de booter indifféremment sur hda ou hdc (donc dupliquer chaque entrée grub)


Ne pas oublier que le grub a été installé intialement par la debian rescue (hda2) donc les modifs sont a faire dans le fichier menu.lst de cette partoche ou alors re-installer grub une fois la debian "production raid1+lmv2" opérationnelle

3) bien dupliquer régulièrement les partoches non RAID1 entre hda et hdc et surtout installer grub sur le 2e disque si hda crame => plus de boot possible sauf à remettre un lecteur CD alors qu'avec un grub opérationnel sur hdc, on débranche hda, on change de nappe et zou on redémarre en mode dégradé (après au calme, on remet un disque neuf, et on reconstruit les 3 raid1 et on remet tout de suite un grub sur le nouveau disque)

rem : cela m'est déjà réellement arrivé sur cette machine (un des 2 disque 80Go a lâché, hda en plus), et ben là méthode elle fonctionne et j'ai pu reconstruire tranquille au soir le raid avec un disque neuf et j'ai rien paumé !


Voilà, j'espère avoir été clair et surtout que ça aide....



--
Arnaud





Reply to: