Comment créer un volume logique LVM sur une partition créée sur un volume EBS ?

Dernière mise à jour : 25/06/2020

Comment utiliser le gestionnaire de volumes logiques (LVM) pour créer un volume logique (LV) sur une partition créée sur mon volume Amazon Elastic Block Store (Amazon EBS) ?

Brève description

LVM vous permet d'allouer de l'espace disque et de réduire, de remettre en miroir et de redimensionner des volumes logiques. Avec LVM, vous pouvez allouer un volume EBS ou un ensemble de volumes EBS à un ou plusieurs volumes physiques.

Pour utiliser LVM sur votre volume EBS et étendre les partitions :

  1. Créez des volumes physiques (PV) à partir de votre volume EBS.
  2. Créez un groupe de volumes (VG) et ajoutez les volumes physiques dans le groupe de volumes.
  3. Créez un volume logique (LV) et un répertoire de montage sur le LVM.
  4. Créez et montez un système de fichiers.
  5. Redimensionnez le volume logique.

Remarque : pour plus d'informations sur l'utilisation de LVM avec des instances Nitro, consultez le chapitre 11. LVM (Logical Volume Manager) sur le site web du portail client Red Hat.

Solution

Remarque : si vous avez déjà créé le LVM sur votre volume et que vous l'avez monté pour l'utiliser, suivez les instructions à partir de la page Extension du volume logique.

Créer des volumes physiques sur la partition de votre volume EBS

L'unité de stockage physique sous-jacente d'un volume logique LVM est un dispositif de stockage en mode bloc tel qu'une partition d'un volume EBS ou un volume EBS complet.

Remarque : les instances Nitro exposent les volumes EBS en tant que dispositifs de stockage en mode bloc NVMe. Les noms de dispositif de stockage en mode bloc suivent le modèle /dev/nvme1n1, /dev/nvme2n1, /dev/nvme3n1 et ainsi de suite. Si vous utilisez une instance Nitro, remplacez les noms de dispositif dans les étapes suivantes par le nom de dispositif approprié. Pour plus d'informations sur l'attribution de noms de dispositif, consultez Considérations relatives aux noms de dispositif.

1.    Ouvrez la console Amazon Elastic Compute Cloud (Amazon EC2).

2.    Créez votre volume EBS, puis attachez le volume à votre instance.

3.    Utilisez la commande gdisk pour créer une partition. Pour la variable Code Hex ou GUID, entrez 8e00. L'exemple suivant crée la partition /dev/xvdh1 sur /dev/xvdh.

$ sudo gdisk /dev/xvdh
Command (? for help): n
Partition number (1-1218, default 1): 1
First sector (34-20971486, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8e00              
Changed type of partition to 'Linux LVM'
...
OK; writing new GUID partition table (GPT) to /dev/xvdh.
The operation has completed successfully.

Utilisez la commande lsblk pour confirmer la création de la partition :

$ lsblk 
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdh    202:80   0  10G  0 disk 
└─xvdh1 202:81   0  10G  0 part

4.    Utilisez la commande pvcreate pour créer un volume physique à partir de la partition. L'exemple suivant crée un volume physique à partir de /dev/xvdh1.

$ sudo pvcreate /dev/xvdh1
  Physical volume "/dev/xvdh1" successfully created.

Créer des groupes de volumes et ajouter les volumes physiques dans le groupe de volumes

Utilisez la commande vgcreate pour créer un groupe de volumes afin de combiner les nouveaux volumes physiques. L'exemple suivant utilise un volume physique pour créer le groupe de volumes groupexemple1.

$ sudo vgcreate examplegroup1 /dev/xvdh1          
  Volume group "examplegroup1" successfully created

Utilisez vgs ou vgdisplay pour afficher les informations du groupe de volumes :

$ sudo vgs
  VG             #PV #LV #SN Attr   VSize  VFree 
  examplegroup1   1   0   0 wz--n- <10.00g <10.00g

Créer un volume logique (LV) et un répertoire de montage

1.    Utilisez la commande lvcreate pour créer des volumes logiques (partitions) à partir de votre groupe de volumes. L'exemple suivant crée le volume logique de 9 Go, lvexample1 à partir du groupe de volumes groupeexemple1.

$ sudo lvcreate -n lvexample1 -L 9G examplegroup1
  Logical volume "lvexample1" created

Utilisez la commande lvs ou lvdisplay pour afficher les informations du volume logique :

$ sudo lvs
  LV          VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                       
  lvexample1 examplegroup1 -wi-a----- 9.00g 

2.    Utilisez la commande mkdir pour créer un répertoire de montage. L'exemple suivant crée le répertoire /mnt1.

$ sudo mkdir /mnt1

Créer et monter un système de fichiers

1.    Utilisez les commandes suivantes pour créer un système de fichiers et monter les partitions à utiliser.

Exécutez la commande mkfs -t pour créer le système de fichiers. Remarque : remplacez xfs par votre type de système de fichiers, s'il est différent. Par exemple, ext2, ext3 ou ext4.

$ sudo mkfs -t xfs /dev/examplegroup1/lvexample1

Exécutez la commande lsblk -f pour vérifier la création du nouveau système de fichiers. Remarque : le type de système de fichiers que vous avez créé à l'étape précédente s'affiche sous FSTYPE.

$ lsblk -f
NAME                         FSTYPE      LABEL UUID                                   MOUNTPOINT
xvda                                                                                  
├─xvda1                                                                               
└─xvda2                      xfs               66e5e079-770e-4359-a9da-5205c3d8d5af   /                                          
xvdh                                                                                  
└─xvdh1                      LVM2_member       0UnOic-e2ng-XxH5-z0UW-7aTh-RxQK-KMrDqo 
  └─examplegroup1-lvexample1 xfs              5db36052-81d5-4762-8502-6986ff3964e7   

Exécutez la commande mount pour monter le système de fichiers dans le répertoire de montage que vous avez créé à l'étape précédente :

$ sudo mount /dev/examplegroup1/lvexample1 /mnt1

2.    Modifiez les options de montage dans le fichier /etc/fstab afin que le nouveau montage persiste après le redémarrage.

Remarque : remplacez xfs par votre type de système de fichiers dans l'entrée /etc/fstab s'il est différent.

/dev/examplegroup1/lvexample1 /mnt1   xfs     defaults,nofail   0   0

Étendre le volume logique

Il existe deux options pour étendre les volumes logiques :

  • Option 1 : augmenter la taille du volume EBS existant.
  • Option 2 : ajouter des volumes EBS supplémentaires à votre groupe de volumes.

Option 1 : augmenter la taille du volume EBS existant

Remarque : lorsque vous augmentez la taille de votre volume existant, les modifications de taille sont généralement appliquées en quelques secondes lorsque le volume passe à l'état d'optimisation. Les performances du volume sont affectées lorsqu'il est à l'état d'optimisation, mais ne sont pas inférieures à la spécification de configuration source. En fonction de votre type de volume, les changements de performances peuvent prendre de quelques minutes à quelques heures. Pour plus d'informations, consultez Surveillance de l’avancement des modifications de volume.

1.    Modifiez la taille du volume EBS existant.

2.    Installez l'utilitaire growpart :

$ sudo yum install cloud-utils-growpart

Remarque : utilisez la commande suivante pour installer l'utilitaire growpart sur les systèmes Debian ou Ubuntu :

$ sudo apt install -y cloud-guest-utils

3.    Exécutez la commande growpart pour étendre la partition, puis la commande pvresize pour redimensionner le PV. Dans l'exemple suivant, la partition /dev/xvdh1 est étendue.

$ sudo growpart /dev/xvdh 1                            
CHANGED: disk=/dev/xvdh partition=1: start=2048 old: size=20971519,end=16777182 new: size=41940958,end=41943006

$ sudo pvresize /dev/xvdh1                             
  Physical volume "/dev/xvdh1" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Utilisez pvs ou pvdisplay pour afficher les informations du volume physique :

$ sudo pvs
  PV         VG            Fmt  Attr PSize   PFree  
  /dev/xvdh1 examplegroup1 lvm2 a--  <20.00g <13.00g

Utilisez vgs ou vgdisplay pour afficher les informations du groupe de volumes :

$ sudo vgs
  VG            #PV #LV #SN Attr   VSize   VFree  
  examplegroup1   1   1   0 wz--n- <20.00g <13.00g

4.    Exécutez la commande lvextend pour étendre le volume logique :

$ sudo lvextend -L 19G /dev/examplegroup1/lvexample1

Utilisez la commande lvs ou lvdisplay pour afficher les informations du volume logique :

$ sudo lvs
  LV        VG            Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvexample1 examplegroup1 -wi-a----- 19.00g   

5.    Développez le système de fichiers :

Remarque : veillez à entrer le type de système de fichiers correct dans l'entrée /etc/fstab.

Systèmes de fichiers Ext2, Ext3 et Ext4 :

$ sudo resize2fs /dev/examplegroup1/lvexample1

Systèmes de fichiers XFS :

$ sudo yum install xfsprogs
$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Option 2 : ajouter des volumes EBS supplémentaires au groupe de volumes

1.    Créez un autre volume EBS de 10 Go et attachez le volume à l'instance. Créez une partition sur le dispositif /dev/xvdi à l'étape 3 de Créer des volumes physiques sur la partition de votre volume EBS, puis exécutez la commande pvcreate . Dans l'exemple suivant, le nom du dispositif de stockage en mode bloc du volume est /dev/xvdi1.

$ sudo pvcreate /dev/xvdi1
Physical volume "/dev/xvdi1" successfully created.

2.    Utilisez la commande vgextend pour étendre le groupe de volumes et ajouter le nouveau volume. L'exemple suivant étend le groupe de volumes groupeexemple1 pour inclure le volume /dev/xvdi1.

$ sudo vgextend examplegroup1 /dev/xvdi1
  Volume group "examplegroup2" successfully extended

Pour confirmer l'extension, exécutez la commande vgs ou vgdisplay . L'exemple suivant montre qu'il existe désormais deux PV dans le groupe de volumes groupeexemple1.

$ sudo vgs
  VG                       #PV #LV #SN Attr   VSize   VFree   
  examplegroup1            2   1   0 wz--n-  29.99g   20.99g

3.    Exécutez la commande lvextend pour étendre le volume logique :

$ sudo lvextend -L 29G /dev/examplegroup1/lvexample1

4.    Développez le système de fichiers.

Remarque : en fonction de votre cas d'utilisation, suivez les étapes pour les systèmes de fichiers XFS ou Ext2, Ext3 et Ext4.

Systèmes de fichiers Ext2, Ext3 et Ext4 :

$ sudo resize2fs /dev/examplegroup1/lvexample1

Systèmes de fichiers XFS :

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?