LVM

From Tuxunix
Jump to: navigation, search

Ajouter de l'espace au volume group déjà présent

Ajout espace sur le "/" à chaud :

#> fdisk /dev/sdb
#> n (ajout partition)
#> w (ecrire la partition)
#> vgextend VolGroup00 /dev/sdb1
#> lvextend -r -L+9G /dev/VolGroup00/LogVol00
#> resize2fs /dev/VolGroup00/LogVol00

Création d'un VG

Ajouter disque, puis :

vgcreate vg_data /dev/sdb
vgcreate vg_others /dev/sdc

Creer un VL

lvcreate -n d_data -L +9g vg_data
mkfs.ext4 /dev/vg_data/d_data
tune2fs -m 1 /dev/vg_data/d_data

Creer un LV qui utilise tout l'espace libre disponible

lvcreate -n NAME -l 100%FREE vg0

Forcer le système à détecter un nouveau disque

echo "- - -" > /sys/class/scsi_host/hostX/scan

Etendre un volumes disque sur une VM via LVM (A chaud)

  • identifier le volume à agrandir
[root@vd2401 ~]# pvs
 PV         VG        Fmt  Attr PSize  PFree
 /dev/sda3  rootvg    lvm2 a--  12.88g      0
 /dev/sda4  rootvg    lvm2 a--   4.97g   3.62g
 /dev/sdb   vg_data   lvm2 a--  10.00g      0  je veux agrandir le vg_data de 4go (donc /dev/sdb)
  • identifier son chemin scsi physique
[root@vd2401 ~]# ls -ld /sys/block/sd*/device
lrwxrwxrwx 1 root root 0 Dec 23 23:00 /sys/block/sda/device -> ../../../2:0:0:0
lrwxrwxrwx 1 root root 0 Dec 23 23:00 /sys/block/sdb/device -> ../../../2:0:2:0  ici
  • Sur vSphere Client, agrandir le disque SCSI(0:2) Disque dur 3 de la VM

Augmenter la taille de 10go à 14go, puis OK.

  • Indiquer au serveur de rescanner le disque
 echo 1 > /sys/block/sdb/device/rescan  (attention sdb dans notre chemin pour notre disk)
  • Rescanner le disk
[root@vd2401 ~]# pvresize /dev/sdb
Physical volume "/dev/sdb" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
  • Vérifier
[root@vd2401 ~]# vgs
 VG        #PV #LV #SN Attr   VSize  VFree
 rootvg      2  13   0 wz--n- 17.84g   3.62g
 vg_data     1   1   0 wz--n- 14.00g   4.00g  Ok
  • Etendre le lv
lvextend -r -L+9G /dev/vg_data/l_data

Commande utiles

Lister les informations :

pvs
lvs

Creation LV en masse

while read a b; do lvcreate -L ${b}m -n d_${a}user1 vg_soft ;done < lst_app

Reconstruire les volumes groupes

il faut déterminer les UID correspondants pour chaque volumes : Aperçues des LV manquants (pvck /dev/sdb)

lvs -a -o +devies
lvscan -a

Affiche les UUID des Volumes

vgcfgrestore vg_soft

Reconfiguration du VG depuis le backup LVM

pvcreate /dev/sde --uuid XXXX-XXXx-XXXX-XXXx-XXXX --restore file /etc/lvm/backup/vg_soft
vgcfgrestore vg_soft

activation

vgchange -ay 
pvs
lvs

On peu maintenant formater le(s) fs

mkfs.ext4 /dev/vg_soft/s_soft

Migrer des VG sur Baie différente

  • scan des nouveaux disques alloué : sscan -d && sscan -v
#> vgextend vg_xxx /dev/mapper/mpatham
#> pvmove -b /dev/mapper/mpatho /dev/mapper/mpatham
#> lvs -a -o+devices (Pourcentage d'avancement du move)

Suppression des anciens VG :

#> vgreduce vg_base /dev/mapper/mpatho

Suppression des anciens disques :

lstDevice="mpatho mpathx"

for i in $lstDevice; do
 lstSd=$(multipath -ll $i |grep sd | awk '{print $3}')
 dmsetup remove $i
 echo "remove $i"
 for j in $lstSd; do
       echo 1 >/sys/block/${j}/device/delete
       echo "Remove /sys/block/${j}/device/delete"
 done
done
  • Script sscan (RedHat) :
File:Sscan.txt


LVM HA

  • Allocation disque partagés

Coté system (sur les 2 serveurs) :

#> lunscan

Dans le fichier "/etc/lvm/lvm.conf"

locking_type = 1
use_lvmetad = 0
  • Identifier les volumes locaux à ne pas prendre en compte en HA :
#> vgs --noheadings -o vg_name

Les ajouter à la configuration lvm :

volume_list = [ "vg_root", "vg_data" ]

Command qui desactive et stop tous les processus "lvmetad" immediatement :

#> lvmconf --enable-halvm --services --startstopservices


Ensuite réaliser un dracut :

#> dracut -f


Création du VG et LV sur un seul serveur :

#> vgcreate vg_p_data /dev/mapper/mpathc
 Physical volume "/dev/mapper/mpathc" successfully created.
 Volume group "vg_p_data" successfully created
 

Connecter vous sur l'autre serveur puis vérifier que le vg_p est bien présent :

#> pvs
 PV                  VG       Fmt  Attr PSize   PFree
 /dev/mapper/mpatha2 vg_root   lvm2 a--  <35.38g  20.15g
 /dev/mapper/mpathb  vg_p_data lvm2 a--  <32.00g <32.00g
 /dev/nvme0n1        vg_data  lvm2 a--   <1.46t      0
 

Création du volume logique :

#> lvcreate -L30G -n icinga vg_p_data --config 'activation {volume_list = "vg_p_data"}'
#> mkfs.xfs /dev/mapper/vg_p_data-icinga


  • Ajout du volume au Cluster PCS :

Ajout du tag :

#> vgchange vg_p_data --addtag nomServer

Création des resources :

#> pcs resource create vg_p_data LVM volgrpname=vg_p_data exclusive=true
#> pcs resource create icinga Filesystem device="/dev/vg_p_data/icinga" directory="/mnt/conf fstype="xfs"
#> pcs resource create icinga Filesystem device="/dev/vg_p_data/icinga" directory="/mnt/conf" fstype="xfs"

Ajout des contraintes :

#> pcs constraint colocation add vip with vg_p_data INFINITY
#> pcs constraint colocation add vip with icinga INFINITY