[Dédié] LVM - Gestion des FS Imprimer

  • 0

Préambule

Information sur les abréviations :

LVM = Logical Volume Manager, désigne la couche logicielle permettant de gérer les VG et les LV

PV = Physical Volume, désigne la partition sur le disque physique

VG = Volume Groupe , désigne la couche en dessous des PV, peut en contenir un ou plusieurs

LV = Logical Volume,  correspond à la « partition » dans un disque dur pour un VG, contient le FS

FS = Filesystem, Conteneur des données, sous linux c’est du ext3 pour les redhat 5.x et du ext4 pour les 6.x, correspond à NTFS/FAT sous windows.

Ajout d’un disque dans un VG

On vérifie la liste des disques de manière synthétique en utilisant le listing scsi.

[serveur]/root# lsscsi
[0:0:0:0]   disk    VMware Virtual disk 1.0 /dev/sda
[0:0:1:0]   disk    VMware Virtual disk 1.0 /dev/sdb
[0:0:2:0]   disk    VMware Virtual disk 1.0 /dev/sdc
[0:0:3:0]   disk    VMware Virtual disk 1.0 /dev/sdd
[1:0:0:0]   disk    VMware Virtual disk 1.0 /dev/sde
[1:0:1:0]   disk    VMware Virtual disk 1.0 /dev/sdf
[1:0:2:0]   disk    VMware Virtual disk 1.0 /dev/sdg
[1:0:3:0]   disk    VMware Virtual disk 1.0 /dev/sdh

-Rescan des disques.

[serveur]/root# rescan-scsi-bus.sh
Host adapter 0 (mptspi) found.
 
Host adapter 1 (mptspi) found.
Host adapter 2 (mptspi) found.
Host adapter 3 (mptspi) found.
Scanning SCSI subsystem for new devices
Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning for device 0 0 0 0 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning for device 0 0 1 0 ...
OLD: Host: scsi0 Channel: 00 Id: 01 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning for device 0 0 2 0 ...
OLD: Host: scsi0 Channel: 00 Id: 02 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning for device 0 0 3 0 ...
OLD: Host: scsi0 Channel: 00 Id: 03 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning host 1 channels  0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning for device 1 0 0 0 ...
OLD: Host: scsi1 Channel: 00 Id: 00 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning for device 1 0 1 0 ...
OLD: Host: scsi1 Channel: 00 Id: 01 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning for device 1 0 2 0 ...
NEW: Host: scsi1 Channel: 00 Id: 02 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
open error: /dev/sg9: No such file or directory
Scanning for device 1 0 2 0 ...
OLD: Host: scsi1 Channel: 00 Id: 02 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning host 2 channels  0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning for device 2 0 0 0 ...
OLD: Host: scsi2 Channel: 00 Id: 00 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning for device 2 0 1 0 ...
OLD: Host: scsi2 Channel: 00 Id: 01 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
      Type:   Direct-Access                    ANSI SCSI revision: 02
Scanning host 3 channels  0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning for device 3 0 0 0 ...
OLD: Host: scsi3 Channel: 00 Id: 00 Lun: 00
      Vendor: HP       Model: Ultrium 3-SCSI   Rev: R210
      Type:   Sequential-Access                ANSI SCSI revision: 03
1 new device(s) found.
0 device(s) removed.

-Vérification de la présence du nouveau disque, on voit que le sdi est apparu.

[serveur]/root# lsscsi
[0:0:0:0]   disk    VMware Virtual disk 1.0 /dev/sda
[0:0:1:0]   disk    VMware Virtual disk 1.0 /dev/sdb
[0:0:2:0]   disk    VMware Virtual disk 1.0 /dev/sdc
[0:0:3:0]   disk    VMware Virtual disk 1.0 /dev/sdd
[1:0:0:0]   disk    VMware Virtual disk 1.0 /dev/sde
[1:0:1:0]   disk    VMware Virtual disk 1.0 /dev/sdf
[1:0:2:0]   disk    VMware Virtual disk 1.0 /dev/sdg
[1:0:3:0]   disk    VMware Virtual disk 1.0 /dev/sdh
[1:0:3:0]   disk    VMware Virtual disk 1.0 /dev/sdi

-On s'assure qu'il n'est pas déjà utilisé :

[root@serveur ~]# pvs |grep sdi

-Augmenter le VG avec le disque nouvellement ajouté :

[serveur]/root# vgextend notes01_vg /dev/sdi
No physical volume label read from /dev/sdi
Physical volume "/dev/sdi" successfully created
Volume group "notes01_vg" successfully extended

-Vérifier la taille disponible sur le VG

[serveur]/root# vgs
VG  #PV #LV #SN Attr    VSize   VFree
bin_vg      1   3   0   wz--n-  19.99G      240.00M
data_vg     1   3   0   wz--n-  20.00G      9.51G
notes01_vg  2   3   0   wz--n-  1.02T       60.01G
notes02_vg  1   3   0   wz--n-  1023.99G    20.00M
notes03_vg  1   3   0   wz--n-  680.00G     24.00M
notes04_vg  1   3   0   wz--n-  1023.99G    121.02G
root_vg     1   5   0   wz--n-  13.88G      3.84G
root_vg_alt 1   5   0   wz--n-  13.88G      3.84G

-Cas du rescan qui ne passe pas

[root@serveur ~]# lsscsi
[0:0:0:0] disk VMware Virtual disk 1.0 /dev/sda
[0:0:1:0] disk VMware Virtual disk 1.0 /dev/sdb
[0:0:2:0] disk VMware Virtual disk 1.0 /dev/sdc
[0:0:3:0] disk VMware Virtual disk 1.0 /dev/sdd
[0:0:4:0] disk VMware Virtual disk 1.0 /dev/sde
[0:0:5:0] disk VMware Virtual disk 1.0 /dev/sdf
[0:0:6:0] disk VMware Virtual disk 1.0 /dev/sdg
[root@serveur ~]# rescan-scsi-bus.sh
Host adapter 0 (mptspi) found.
Scanning SCSI subsystem for new devices
Scanning host 0 for SCSI target IDs 0 1 2 3 4 5 6 7, all LUNs
Scanning for device 0 0 0 0 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Scanning for device 0 0 1 0 ...
OLD: Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Scanning for device 0 0 2 0 ...
OLD: Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Scanning for device 0 0 3 0 ...
OLD: Host: scsi0 Channel: 00 Id: 03 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Scanning for device 0 0 4 0 ...
OLD: Host: scsi0 Channel: 00 Id: 04 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Scanning for device 0 0 5 0 ...
OLD: Host: scsi0 Channel: 00 Id: 05 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Scanning for device 0 0 6 0 ...
OLD: Host: scsi0 Channel: 00 Id: 06 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Scanning for device 0 0 7 0 ...
OLD:
NEW:
0 new device(s) found.
0 device(s) removed.

Ici pas de nouveaux device trouvés, mais on peux tester cette commande (dans cet exemple, l'id 7 n'ajoute rien, j'ai donc fait l'id 8 : se référer au scan précédent pour voir les id existantes) :

[root@serveur ~]# rescan-scsi-bus.sh --hosts=0 --luns=0 --ids=8
Host adapter 0 (mptspi) found.
Scanning SCSI subsystem for new devices
Scanning host 0 for SCSI target IDs 8, LUNs 0
Scanning for device 0 0 8 0 ...
OLD:
NEW: Host: scsi0 Channel: 00 Id: 08 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
1 new device(s) found.
0 device(s) removed.

Si ne nouveau disque n'est toujours pas identifié, réaliser le scan via scsi_host

echo "- - -" > /sys/class/scsi_host/$(grep mpt /sys/class/scsi_host/host?/proc_name | awk -F "/" '{print $5}')/scan

On rescanne les devices et on voie que le device /dev/sdh s'est ajouté

[root@serveur ~]# lsscsi
[0:0:0:0] disk VMware Virtual disk 1.0 /dev/sda
[0:0:1:0] disk VMware Virtual disk 1.0 /dev/sdb
[0:0:2:0] disk VMware Virtual disk 1.0 /dev/sdc
[0:0:3:0] disk VMware Virtual disk 1.0 /dev/sdd
[0:0:4:0] disk VMware Virtual disk 1.0 /dev/sde
[0:0:5:0] disk VMware Virtual disk 1.0 /dev/sdf
[0:0:6:0] disk VMware Virtual disk 1.0 /dev/sdg
[0:0:8:0] disk VMware Virtual disk 1.0 /dev/sdh

On peut du coup continuer les actions classiques.

 

Créer un filesystem avec son volume logique associé

-Vérification de la présence et du montage du FS.

[serveur]/root# df -k /srv/domino/notes01
Cannot find file system /srv/domino/notes01

-Créer le LV dans le VG notes01.

[serveur]/root# lvcreate -n lvdata01 -L 1000G notes01
  Logical volume "lvdata01" created

-Vérification de la création du LV.

[serveur]/root# lvs |grep lvdata01
  lvdata01             notes01_vg  -wi-ao 1013.89G

-Formater le LV.

[serveur]/root# mkfs -t ext3 /dev/notes01/lvdata
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
131072 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

-Ajouter le point de montage dans la fstab pour obtenir ceci.

[serveur]/root# cat /etc/fstab | grep lvdata01
/dev/notes01_vg/lvdata01         /srv/domino/notes01 ext3 noatime 1 2

-Monter la partition sur le dossier puis vérification du point de montage (nécessite la présence du dossier cible de montage).

[serveur]/root# mount /srv/domino/notes01
[serveur]/root# df -h /srv/domino/notes01
Filesystem  Size    Used    Avail   Use%    Mounted on
/dev/mapper/notes01_vg-lvdata01 999G    99G 900G    5%  /srv/domino/notes01

Augmenter un LV.

Nous allons ici augmenter le LV lvdata01 qui est dans le VG notes01 (cas EXT4) et passer le LV lv_appli_ssie à 100 Go (fixer une taille définie) (cas XFS)

-Cette étape nécessite de l’espace libre sur le VG. Si pas d’espace libre, il faudra appliquer le chapitre Ajout d’un disque dans un VG. (cas EXT4)

[serveur]/root# vgs | egrep (notes01|VG)
VG              #PV #LV #SN Attr    VSize   VFree
notes01_vg      2   3   0   wz--n-  1.02T   60.01G

-Prendre les références du VG et du FS à augmenter. (cas EXT4)

[serveur]/root# df –k /srv/domino/notes01
Filesystem                  1K-blocks       Used                Available       Use%    Mounted on
/dev/notes01/lvdata         01984840164     665094304           309743552       69%     /srv/domino/notes01

-Étendre le LV - Deux exemples : A gauche via un ajout de 60G (d'où le +) et a droite sous xfs via un resize global à 100G (Attention donc d'être en dessous des 100 à l'origine)

[serveur]/root# lvresize -L +60G /dev/notes01_vg/lvdata01
  Extending logical volume lvdata01 to 1013.89 GB
  Logical volume lvdata01 successfully resized
[root@serveur]# lvresize -L 100G /dev/data_vg/lv_appli_ssie
  Size of logical volume data_vg/lv_appli_ssie changed from 99.94 GiB (25585 extents) to 100.00 GiB (25600 extents).
  Logical volume lv_appli_ssie successfully resized

-Appliquer l’extension au niveau FileSystem (seule l’enveloppe a été augmentée jusqu’à présent).

[serveur]/root# resize2fs /dev/notes01_vg/lvdata01
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/mapper/notes01_vg-lvdata01 is mounted on /srv/domino/notes01; on-line resizing required
Performing an on-line resize of /dev/mapper/notes01_vg-lvdata01 to 265786368 (4k) blocks.
The filesystem on /dev/mapper/notes01_vg-lvdata01 is now 265786368 blocks long.
[root@serveur]# xfs_growfs /appli/ssie7
meta-data=/dev/mapper/data_vg-lv_appli_ssie isize=256 agcount=4, agsize=68096 blks
            = sectsz=512 attr=2, projid32bit=1
            = crc=0 finobt=0
data       = bsize=4096 blocks=272384, imaxpct=25
            = sunit=0 swidth=0 blks
naming    =version 2 bsize=4096 ascii-ci=0 ftype=0
log        =internal bsize=4096 blocks=2560, version=2
            = sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 272384 to 26214400

-Vérifier que l’opération a abouti.

 

[serveur]/root# df –g /srv/domino/notes01
Filesystem                      1K-blocks   Used        Available   Use%    Mounted on
/dev/mapper/notes01_vg-lvdata01 1046786740  990410748   45746948    65%     /srv/domino/notes01
[root@serveur ~]# df -h /appli/ssie7
Filesystem                          Size Used   Avail   Use%    Mounted on
/dev/mapper/data_vg-lv_appli_ssie   100G 45M    100G    1%      /appli/ssie7

NB : lvresize a une option "-r" qui permet de « tout » faire pour vous et qui est documentée pour redhat 6.x. Cela fonctionne également sur la redhat 5.x :

(non vérifié pour XFS)

[serveur]/root# lvresize -r -L +60G /dev/notes01_vg/lvdata01

Reconstruction d’un VG puis LV à partir d’un fichier de backup LVM et disque vide.

Ce type de manipulation nous est surtout utile lors de la reconstruction d’un serveur qui aurait perdu le « data_vg » ou autre VG non recréé automatiquement.

-Le principe.

A chaque opération faite sous LVM, des fichiers de backup de la conf actuelle et un historique sont stockés dans /etc/LVM/Ces fichiers se basent sur les UUID des PV pour recréer les VG, or, les disques n’étant plus les mêmes, il faut recréer les UUID. Les UUID sont des identifiants uniques attribués à un disque (dans notre cas) qui permettent, dans le cas de LVM, de s’affranchir de l’utilisation de l’appellation /dev/sd* (appellation pouvant changer selon la position du disque dans la machine)

-Recréer la/les partitions utilisées dans le VG.

Ici, nous n’aurons qu’une seule partition à recréer , la sdc1Se référer à la section Vérification de la présence du nouveau disque.

-Se faciliter la vie

Normalement, vous aurez à faire ça en console vmware donc pas de souris pour copier/coller, hors les uuid sont long…très long…on va donc activer la souris.

[serveur]/root# /etc/init.d/gpm start
Starting console mouse services :                [ ok]

-Identifier les informations pour la restauration.On va utiliser la commande vgcfgrestore pour cela, en spécifiant le nom du VG (ici data_vg) à restaurer. Il va nous indiquer qu’il ne trouve pas un device, on va donc récupérer l’UUID de ce device.

[serveur]/root# vgcfgrestore data_vg
Couldn’t find device with uuid GDxShe-oTtL-1d2I-mphF-OG1C-xmuC-Hu8BbN.
Cannot restore Volume Group data_vg with 1 PVs marked as missing.
Restore failed.

Autre solution pour récupérer les uuid : regarder dans les backup dans /etc/lvm/backup :

[serveur]/root# cat /etc/lvm/backup/data_vg |grep -A2 pv
        max_pv = 0
        metadata_copies = 0
                pv0 {
                        id = "GDxShe-oTtL-1d2I-mphF-OG1C-xmuC-Hu8BbN"
                        device = "/dev/sdc2"    # Hint only
                                        "pv0", 0
                                ]
                        }
                                        "pv0", 2048
                                ]
                        }
                                        "pv0", 2298
                                ]
                        }

-Recréation du PV. Maintenant qu’on a le bon UUID, on peut recréer le PV avec pvcreate et en spécifiant le fichier de backup de LVM et la partition de destination.

[serveur]/root# pvcreate –uuid GDxShe-oTtL-1d2I-mphF-OG1C-xmuC-Hu8BbN dev/sdc1
Couldn’t find device with uuid GDxShe-oTtL-1d2I-mphF-OG1C-xmuC-Hu8BbN.
Physical volume “/dev/sdc1” successfully created

-Recréation des VG/LV. Maintenant qu’on a l’enveloppe pour le VG, on le recrée, ainsi que tous les LV en dessous :

[serveur]/root# vgcfgrestore data_vg
 
Restored volume group data_vg

-Reformatage des partitions pour l’exploitation/!\ Attention, avec cette commande, vous formatez TOUTES les partitions du VG ! /!\/!\ Le mkfs.ext3 est à adapter en mkfs.ext4 si besoin. /!\

[serveur]/root# for i in /dev/data_vg/*;do echo $i;done
/dev/data_vg/lv_app
/dev/data_vg/lvlego
/dev/data_vg/lvlogiciels
[serveur]/root#for i in /dev/data_vg/*;do mkfs.ext3 $i;done
(pas de retour car pas de serveur pour le faire)

-Pensez à adapter/vérifier la fstab et les points de montage et montez tout.

<table border="

Cette réponse était-elle pertinente?

« Retour