Dans le cadre de la préparation à l'examen RHCSA, nous avons déjà appris à gérer les partitions sur disque. Les partitions sont utiles pour séparer l'espace disque (par exemple, séparer les fichiers liés à la base de données des fichiers liés au serveur Web), mais nous avons une solution beaucoup plus flexible qui peut séparer ou agréger l'espace de stockage.
Cette solution s'appelle LVM, le gestionnaire de volumes logiques. LVM nous permet de voir plusieurs disques comme un seul système de fichiers, surmontant ainsi les limitations du site d'un disque physique. Nous pouvons également créer une mise en miroir de logiciels sur des disques à protéger ou des données écrites sur le système de fichiers. Dans ce tutoriel, nous couvrirons les bases :nous gérerons les trois couches de LVM, les volumes physiques, les groupes de volumes et les volumes logiques.
Dans ce didacticiel, vous apprendrez :
- Comment créer et supprimer des volumes physiques
- Comment attribuer des volumes physiques à des groupes de volumes
- Comment créer et supprimer des volumes logiques
Création d'un nouveau volume physique avec LVM.
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Red Hat Enterprise Linux 8.1 |
Logiciel | LVM 2.03 |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Avec LVM, nous avons trois couches qui se superposent :physical volumes
(pv), qui ressemblent beaucoup à des partitions, marquées uniquement pour une utilisation LVM. Nous pouvons créer un volume physique à partir d'une partition de disque ou d'un disque brut entier. Si nous avons l'intention d'utiliser un disque uniquement comme volume physique LVM, nous n'avons pas besoin de créer une partition dessus en premier. La couche suivante est un volume group
(vg). Comme son nom l'indique, il s'agit simplement du regroupement de volumes physiques. À cette couche, nous pouvons agréger tout l'espace du volume physique sous-jacent dans une unité de stockage plus grande. En plus des groupes de volumes, nous pouvons créer la couche finale, logical volumes
(lv). Ceux-ci peuvent contenir des systèmes de fichiers dans lesquels nous pouvons stocker nos données.
L'une des principales caractéristiques de LVM est que nous pouvons ajouter un autre volume physique à un groupe de volumes à la volée, et nous pouvons également modifier la taille d'un volume logique pendant que le système est en cours d'exécution. Ainsi, si nous manquons d'espace, nous pouvons évoluer sans arrêter un système.
Les abréviations des calques sont de bons rappels quand on traite de LVM. Les commandes qui fonctionnent sur différentes couches commencent toutes par ces abréviations, par exemple, si nous travaillons avec des volumes physiques, la commande pour en créer un sera pvcreate
, la commande pour répertorier les volumes physiques existants sera pvdisplay
, etc. Même si nous devons le faire rarement, il est facile de deviner ou de trouver la bonne commande, car cette convention de dénomination est cohérente sur toutes les couches.
Pour ce didacticiel, nous avons ajouté aux disques, 2 Go de taille chacun pour notre machine de laboratoire. Ils sont reconnus comme /dev/sdb
et /dev/sdc
sur notre système, tandis que /dev/sda
contient le système d'exploitation, auquel nous ne toucherons pas lors des étapes suivantes.
Comment créer et supprimer des volumes physiques
Comment créer un volume physique
Pour créer un volume physique, nous utiliserons pvcreate
. Nous allons créer un volume physique de 2 Go sur les deux sdb
, et sdc
.
# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. # pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.
Nous pouvons vérifier si nous avons bien fait les choses en listant nos volumes physiques. Nous utiliserons pvdisplay
.
# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name rhel PV Size <14.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 3583 Free PE 0 Allocated PE 3583 PV UUID rfezEa-GlgW-jWUX-Zixs-Ydw0-EsZS-nk3JDH "/dev/sdb" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID V2PUv4-O9eQ-jFvQ-UmQf-dmq3-caF9-xmxYGj "/dev/sdc" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID PWTs7Q-x3wD-RyXj-ertn-Sh2N-CiXb-ayDc1q
La machine de laboratoire utilise déjà LVM dans sa configuration par défaut (comme la plupart des distributions de nos jours), c'est pourquoi /dev/sda2
est montré. Nous sommes intéressés par nos deux nouveaux volumes physiques, que nous pouvons maintenant vérifier.
Comment supprimer un volume physique
Pour supprimer un volume physique, nous avons le pvremove
commande. Ne supprimez pas un volume physique contenant des données écrites qui sont nécessaires.
# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped.
Comment attribuer des volumes physiques à des groupes de volumes
Création d'un groupe de volumes à partir de volumes physiques.
Après avoir recréé le sdc
supprimé volume physique, nous avons tout ce dont nous avons besoin pour créer un groupe de volumes pouvant contenir un volume logique. Nous pourrions créer un "groupe" de volumes qui n'a qu'un seul volume physique - ce qui est le cas exact de la valeur par défaut sda2
- mais pour démontrer l'agrégation de stockage, nous utiliserons nos deux nouveaux volumes physiques pour créer un groupe de volumes appelé "données" qui dispose de 4 Go d'espace disque disponible.
Nous pouvons créer un groupe de volumes avec vgcreate
. Tout ce dont nous avons besoin est de spécifier le nom du VG et les volumes physiques qui seront membres du groupe de volumes.
# vgcreate data /dev/sdb /dev/sdc Volume group "data" successfully created
Nous pouvons lister les propriétés de notre nouveau groupe de volumes avec vgdisplay
.
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 0 / 0 Free PE / Size 1022 / 3.99 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
A noter la taille VG de près de 4 Go, soit la somme des deux volumes physiques. Ce ne sera pas exactement la somme des volumes, car un espace est réservé aux métadonnées.
Comment créer et supprimer des volumes logiques
En plus d'un groupe de volumes, nous pouvons créer des volumes logiques qui à leur tour peuvent contenir des systèmes de fichiers. L'installation par défaut sur de nombreuses distributions sépare le stockage de cette façon, par exemple, les données de l'utilisateur sont conservées sur le /home
volume logique et les journaux système sont stockés sur le /var
le volume. Dans le cas où un utilisateur remplit le volume d'accueil, le système global pourra toujours écrire des journaux, et ses services continueront donc à fonctionner pendant que l'administrateur système peut gérer l'utilisateur devenu sauvage.
Comment créer un volume logique
Nous allons créer deux volumes logiques, le premier appelé "database" avec 2 Go de taille, l'autre appelé "webserver" avec 500 Mo d'espace disque. Comme vous pouvez le deviner à partir des exemples ci-dessus, la commande que nous utiliserons est lvcreate
.
# lvcreate -L 2G -n database data Logical volume "database" created. # lvcreate -L 500M -n webserver data Logical volume "webserver" created.
Nous pouvons afficher nos propriétés de volume avec lvdisplay <volume path>
, ou nous pouvons lister tous nos volumes logiques si nous ne fournissons pas d'argument pour lvdisplay
. Bien que cela puisse fournir une sortie longue sur certains systèmes, cela est utile dans un environnement inconnu, car les chemins de volume peuvent varier en fonction de la distribution et de la version.
# lvdisplay /dev/data/database --- Logical volume --- LV Path /dev/data/database LV Name database VG Name data LV UUID D7f9An-G0dd-kEGw-OGrP-HZlA-dQlX-yBbQbi LV Write Access read/write LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:24 +0100 LV Status available # open 0 LV Size 2.00 GiB Current LE 512 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 # lvdisplay /dev/data/webserver --- Logical volume --- LV Path /dev/data/webserver LV Name webserver VG Name data LV UUID 7Ldt79-aw0i-Oydm-4d0I-JaVe-Zd8m-xKpvrD LV Write Access read/write LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:38 +0100 LV Status available # open 0 LV Size 500.00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:3
Si nous vérifions notre groupe de volumes à ce stade, nous pouvons remarquer l'espace que les volumes logiques utilisent à partir du groupe de volumes.
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 637 / <2.49 GiB Free PE / Size 385 / 1.50 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Comment supprimer un volume logique
Pour libérer de l'espace ou réorganiser les volumes, nous pouvons supprimer les volumes logiques avec lvremove
.
Ne supprimez pas les volumes logiques qui contiennent des données précieuses. Cela détruira les données sur le volume.
Il y a des ceintures de sécurité intégrées, il est révolu le temps où l'essuyage de notre système n'avait pas à attendre une invite. Au moins, lors de l'utilisation des commandes LVM.
# lvremove /dev/data/webserver Do you really want to remove active logical volume data/webserver? [y/n]: y Logical volume "webserver" successfully removed
Une autre liste de groupes de volumes montre que les 500 Mo du webserver
le volume est maintenant rajouté à la taille libre du groupe de volumes :
# vgdisplay data --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.99 GiB PE Size 4.00 MiB Total PE 1022 Alloc PE / Size 512 / 2.00 GiB Free PE / Size 510 / 1.99 GiB VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Exercices
- Créez deux groupes de volumes et créez des volumes logiques sur chacun d'eux avec le même nom.
- Ajoutez un autre volume physique à votre groupe de volumes, puis créez un volume logique qui occupe tout le groupe de volumes. Essayez maintenant de supprimer l'un des volumes physiques.
- Essayez de créer un volume logique ayant la taille exacte du groupe de volumes.
- Créez un autre volume physique sur un disque, ajoutez-le à votre groupe de volumes, puis éteignez la machine et retirez le disque. Qu'est-ce que
vgdisplay
dire sur le disque manquant ? - Ajoutez à nouveau le disque précédemment supprimé. Est-il reconnu au prochain démarrage ?