Lvmraid

De SME Server Wiki

grâce a lvm et raid1 par défaut sur sme vous pouvez gérer facilement les disques, voir même changer un disque ou deux et retoucher la taille des partitions.

voir http://forums.ixus.fr/viewtopic.php?t=38235&start=15 http://wiki.contribs.org/Raid#Upgrading_the_Hard_Drive_Size


Attention cette manipulation est réservée à des administrateurs qui sont à l'aise avec Linux. Vous devez être certain de ce que vous faites. En effet il est facile, si l'on est pas à l'aise de formater le lecteur contenant les données au lieu de votre nouveau disque.

Sur un serveur Physique

Installer le premier nouveau disque

Éteindre le serveur et installer un des nouveaux disques en débranchant un des anciens. Faites attention de débrancher tout disque USB qui ne serve à autre chose (comme pour faire une sauvegarde).

Relancez votre serveur.

Nous utiliserons ici sdb comme nom de disque ajouté a chaque étape en considérant que le disque précédemment ajouté passe sous le nom sda à l'étape suivante. Il est de votre responsabilité de vérifier quel est le bon nom de disque, et d'adapter le how to.

Ajout du premier nouveau disque dans l'array raid

Une fois redémarré vous pouvez constater que le raid focntionne en degradé :

cat /proc/mdstat

partitionner le disque

Avant tout vérifier la taille de la partition boot

df /boot

devrait retourner :

Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
/dev/md1                101018     20802     75000  22% /boot

Vous devez ensuite créer les partitions raid

/!\ Attention sdb n'est peut être pas le nom de votre disque ajouté /!\

fdisk /dev/sdb

taper : p pour afficher la table de partition: celle-ci doit être vide si votre disque est neuf, si ce n'est pas le cas vous vous apprêtez probablement à détruire un des disques système !!!

taper: n p 1 puis 1 et +101018K pour la taille de la partition boot (a changer suivant votre cas)


ensuite deuxième partition: n p 2 puis compléter le disque avec la deuxième partition (taper sur entrer pour utiliser tout)


choisissez de mettre un système raid linux sur chacune des partitions: tapez t puis 1 puis fd choisissez de mettre un système raid linux sur chacune des partitions: tapez t puis 2 puis fd

ajouter le drapeau de boot : a puis 1

terminez en quittant fdisk en écrivant la table de partition: tapez w

ajouter les disques dans les array raid

En observant le raid avec cat /proc/mdstat vous pouvez constater qu'il y'a deux array (un pour le boot et un pour le systeme) il faut donc ajouter les partitions créées a ces deux array : (en admetant que md1 est le array boot et md2 est l'array système ce qui est à vérifier avec mdstat)

mdadm /dev/md1 --add /dev/sdb1
mdadm /dev/md2 --add /dev/sdb2

maintenant vos disques sont ajoutés et (a condition que les partitions soient au moins aussi grosses que les anciennes) les array vont synchroniser les données:

vérifiez l'avancée avec:

watch -n 3 cat /proc/mdstat

attendez que tout soit synchronisé

grub et la mbr

grub

puis dans la console grub (a condition que sdb soit bien le nom de votre lecteur):

device (hd0) /dev/sdb
root (hd0,0)
setup (hd0)

Installer le deuxième nouveau disque

éteindre le serveur retirer le deuxième ancien disque, ajouter le nouveau tout rebrancher et redémarrer.

ajouter le deuxième nouveau disque

partitioner le disque

D'abord verifier la taille de la partition boot

df /boot

devrait retourner :

Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
/dev/md1                101018     20802     75000  22% /boot

Vous devez d'abord créer les partitions raid (attention sdb n'est pas forcement le nom de votre disque ajouté)

fdisk /dev/sdb

taper n p 1 puis 1 et 101018K pour la taille de la partition boot, a changer suivant votre cas)


ensuite deuxième partition: n p 2 puis compléter le disque avec la deuxième partition (taper sur entrer pour utiliser tout)


choisissez de mettre un système raid linux sur chacune des partitions: tapez t puis 1 puis fd choisissez de mettre un système raid linux sur chacune des partitions: tapez t puis 2 puis fd


ajouter le drapeau de boot : a puis 1

terminez en quittant fdisk en écrivant la table de partition: tapez w


alternativement tapez :

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

grub et la mbr

grub

puis dans la console grub (a condition que sdb soit bien le nom de votre lecteur):

device (hd0) /dev/sdb
root (hd0,0)
setup (hd0)

ajouter les disques dans les array raid

En observant le raid avec cat /proc/mdstats vous pouvez constater qu'il y'a deux array (un pour le boot et un pour le système) il faut donc ajouter les partitions créées a ces deux array : (en admetant que md1 est le array boot et md2 est l'array système ce qui est à vérifier avec mdstats)

mdadm /dev/md1 --add /dev/sdb1
mdadm /dev/md2 --add /dev/sdb2

maintenant vos disques sont ajoutés et (a condition que les partitions soient au moins aussi grosses que les anciennes) les array vont synchroniser les données:

vérifiez l'avancée avec:

watch -n 3 cat /proc/mdstat

attendez que tout soit synchronisé

agrandir l'espace

D'abord augmenter la taille du raid :

mdadm --grow /dev/md1 --size=max
mdadm --grow /dev/md2 --size=max

Ensuite augmenter la taille du volume LVM

pvresize /dev/md1
pvresize /dev/md2

Enfin augmenter la taille du groupe de volume LVM.

lvresize -l +$(vgdisplay -c main | cut -d: -f16) main/root

ou si vous avez installé votre sme en 7 RC

lvresize -l +$(vgdisplay -c vg_primary | cut -d: -f16) vg_primary/lv_root

vous pouvez vérifier cela en tapant "df -h" si vous pouvez lire "/dev/mapper/vg_primary-lv_root" c'est la deuxième ligne que vous devez utiliser, sinon "/dev/mapper/main-root" c'est la première qui vous est utile. Attention  : [-l (L minuscule)]


ext2online -C0 /dev/main/root 

ou

ext2online -C0 /dev/mapper/vg_primary-lv_root

attention  : [-C0 pour tiret C zero]

   * These instructions should work for any raid level you have as long as you have >= 2 drives
   * If you have disabled lvm 
  1. you don't need the pvresize or lvresize command
  2. the final line becomes ext2online -C0 /dev/md2 (or whatever / is mounted to)

resize machine vmware

d'abord:

C:\Program Files\VMware\VMware Server>vmware-vdiskmanager -x 8GB "F:\Documents\My Virtual Machines\VMWP-SME7\sme7pre1.vmdk"
C:\Program Files\VMware\VMware Server>vmware-vdiskmanager -c -s 8GB -a ide -t 1
"F:\Documents\My Virtual Machines\VMWP-SME7\sme7pre2.vmdk"

puis modifier le fichier de la machine pour ajouter le disque

ensuite meme chose que ajout de disque


  1. Freeing /dev/sda:
  2. First, removing all RAID1 partitions on /dev/sda:
mdadm /dev/md1 --fail /dev/sda3 --remove /dev/sda3
mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1
  1. Then, stopping the swapspace on /dev/sda:

swapoff /dev/sda2

  1. Then, altering the partition tables:
fdisk /dev/sda
 #entering 'w' at the end to write. This should go OK now.
  1. Start using the partitions again:
swapon /dev/sda2
mdadm /dev/md0 --add /dev/sda1
mdadm /dev/md1 --add /dev/sda3
  1. wait for both md devices to be fully synced
  2. (check /proc/mdstat)
  1. same with /dev/sdb
mdadm /dev/md1 --fail /dev/sdb3 --remove /dev/sdb3
mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1
fdisk /dev/sdb
mdadm /dev/md0 --add /dev/sdb1
  1. don't add /dev/sdb3 yet, to have a spare copy while resize2fs-ing
mdadm --grow /dev/md1 --size=max
resize2fs /dev/md1
  1. If the resize2fs-ing went OK, we can now add /dev/sdb3:
mdadm /dev/md1 --add /dev/sdb3


resize SME9 on proxmox with degraded raid 1 and LVM

add a second virtual disk. If you choose virtio you will not need to reboot.

let's consider old drive /dev/sda, new drive /dev/vda

partitioning:

sfdisk -d /dev/sda | sfdisk /dev/vda

then you can use cfdisk or fdisk to resize the last partition of cda to tak the whole size available.


check your raid status, in order to be certain which one is boot (should be md0) and main system (should be md1)

cat /proc/mdstat

add new drive

mdadm /dev/md0 --add /dev/vda1
mdadm /dev/md1 --add /dev/vda2

wait for sync

watch cat /proc/mdstat

intiialize grub for vda

device (hd0) /dev/vda
root (hd0,0)
setup (hd0)


fails old drive out of raid

 mdadm /dev/md1 --fail /dev/sda2 --remove /dev/sda2


grow raid

mdadm --grow /dev/md1 --size=max

grow lvm volume

pvresize /dev/md1

grow Logical volume root

lvresize -l +$(vgdisplay -c main | cut -d: -f16) main/root
lvresize --extents 100%FREE --resizefs /dev/main/root

grow filesystem online

resize2fs /dev/main/root


test a reboot


remove first drive totally

 mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1

and remove it from proxmox side. or alternatively you can keep it by using console and the raid option to put it back after resizing it in proxmox

http://www.debian-administration.org/articles/424