Difference between revisions of "LVM"

From Tuxunix
Jump to: navigation, search
(LVM HA)
 
Line 139: Line 139:
 
Coté system (sur les 2 serveurs) :
 
Coté system (sur les 2 serveurs) :
  
#> lunscan
+
#> lunscan
  
 
Dans le fichier "/etc/lvm/lvm.conf"
 
Dans le fichier "/etc/lvm/lvm.conf"
  
locking_type = 1
+
locking_type = 1
use_lvmetad = 0
+
use_lvmetad = 0
  
 
*Identifier les volumes locaux à ne pas prendre en compte en HA :
 
*Identifier les volumes locaux à ne pas prendre en compte en HA :
  
#> vgs --noheadings -o vg_name
+
#> vgs --noheadings -o vg_name
 
Les ajouter à la configuration lvm :
 
Les ajouter à la configuration lvm :
  
volume_list = [ "vg_root", "vg_data" ]
+
volume_list = [ "vg_root", "vg_data" ]
  
 
Command qui desactive et stop tous les processus "lvmetad" immediatement :
 
Command qui desactive et stop tous les processus "lvmetad" immediatement :
  
#> lvmconf --enable-halvm --services --startstopservices
+
#> lvmconf --enable-halvm --services --startstopservices
  
  
 
Ensuite réaliser un dracut :
 
Ensuite réaliser un dracut :
  
#> dracut -f
+
#> dracut -f
  
  
 
Création du VG et LV sur un seul serveur :
 
Création du VG et LV sur un seul serveur :
  
#> vgcreate vg_p_data /dev/mapper/mpathc
+
#> vgcreate vg_p_data /dev/mapper/mpathc
 
   Physical volume "/dev/mapper/mpathc" successfully created.
 
   Physical volume "/dev/mapper/mpathc" successfully created.
 
   Volume group "vg_p_data" successfully created
 
   Volume group "vg_p_data" successfully created
Line 171: Line 171:
 
Connecter vous sur l'autre serveur puis vérifier que le vg_p est bien présent :  
 
Connecter vous sur l'autre serveur puis vérifier que le vg_p est bien présent :  
  
#> pvs
+
#> pvs
 
   PV                  VG      Fmt  Attr PSize  PFree
 
   PV                  VG      Fmt  Attr PSize  PFree
 
   /dev/mapper/mpatha2 vg_root  lvm2 a--  <35.38g  20.15g
 
   /dev/mapper/mpatha2 vg_root  lvm2 a--  <35.38g  20.15g
Line 179: Line 179:
 
Création du volume logique :
 
Création du volume logique :
  
#> lvcreate -L30G -n icinga vg_p_data --config 'activation {volume_list = "vg_p_data"}'
+
#> lvcreate -L30G -n icinga vg_p_data --config 'activation {volume_list = "vg_p_data"}'
#> mkfs.xfs /dev/mapper/vg_p_data-icinga
+
#> mkfs.xfs /dev/mapper/vg_p_data-icinga
  
  
Line 187: Line 187:
 
Ajout du tag :
 
Ajout du tag :
  
#> vgchange vg_p_data --addtag nomServer
+
#> vgchange vg_p_data --addtag nomServer
  
 
Création des resources :
 
Création des resources :
  
#> pcs resource create vg_p_data LVM volgrpname=vg_p_data exclusive=true
+
#> 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"
#> 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 :
 
Ajout des contraintes :
  
#> pcs constraint colocation add vip with vg_p_data INFINITY
+
#> pcs constraint colocation add vip with vg_p_data INFINITY
#> pcs constraint colocation add vip with icinga INFINITY
+
#> pcs constraint colocation add vip with icinga INFINITY

Latest revision as of 14:30, 30 October 2018

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