LVM
Ligne 165 : | Ligne 165 : | ||
Une fois ce point vérifier, récupérer le chemin d'accès du LV avec la commande : | Une fois ce point vérifier, récupérer le chemin d'accès du LV avec la commande : | ||
− | lvdisplay | + | lvdisplay vg_data/lv_data|grep "LV Path"|awk '{print $NF}' |
Puis, lancer la création en ''ext4'' du FS sur le chemin d'accès du LV comme ceci : | Puis, lancer la création en ''ext4'' du FS sur le chemin d'accès du LV comme ceci : | ||
− | mkfs.ext4 /dev/ | + | mkfs.ext4 /dev/vg_data/lv_data |
+ | |||
+ | Pour créer un FS ''ext4'' avec une table d'inode plus grande que celle par défaut, lancer la commande suivante : | ||
+ | mkfs.ext4 -i 8192 /dev/vg_data/lv_data | ||
<u>Exemple de retour :</u> | <u>Exemple de retour :</u> | ||
− | + | {{terminal|text= | |
− | mke2fs 1. | + | [root@myserver ~]# mkfs.ext4 -i 8192 /dev/vg_data/lv_data |
− | + | mke2fs 1.42.9 (28-Dec-2013) | |
− | + | Étiquette de système de fichiers= | |
− | + | Type de système d'exploitation : Linux | |
− | 32768, 98304, 163840, 229376 | + | Taille de bloc=4096 (log=2) |
+ | Taille de fragment=4096 (log=2) | ||
+ | « Stride » = 0 blocs, « Stripe width » = 0 blocs | ||
+ | 1310720 i-noeuds, 2620416 blocs | ||
+ | 131020 blocs (5.00%) réservés pour le super utilisateur | ||
+ | Premier bloc de données=0 | ||
+ | Nombre maximum de blocs du système de fichiers=2151677952 | ||
+ | 80 groupes de blocs | ||
+ | 32768 blocs par groupe, 32768 fragments par groupe | ||
+ | 16384 i-noeuds par groupe | ||
+ | Superblocs de secours stockés sur les blocs : | ||
+ | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 | ||
− | + | Allocation des tables de groupe : complété | |
− | + | Écriture des tables d'i-noeuds : complété | |
− | + | Création du journal (32768 blocs) : complété | |
− | + | Écriture des superblocs et de l'information de comptabilité du système de | |
− | + | fichiers : complété | |
+ | }} | ||
Pour vérifier, lancer la commande : | Pour vérifier, lancer la commande : | ||
Ligne 188 : | Ligne 203 : | ||
<u>Exemple de retour :</u> | <u>Exemple de retour :</u> | ||
− | + | {{terminal|text= | |
− | /dev/ | + | [root@myserver ~]# file -sL /dev/vg_data/lv_data |
− | + | /dev/vg_data/lv_data: Linux rev 1.0 ext4 filesystem data, UUID=35220f75-5881-4be8-8303-c513dc53dae7 (extents) (64bit) (large files) (huge files) | |
+ | }} | ||
== Extension == | == Extension == |
Version actuelle datée du 3 août 2020 à 15:57
Sommaire
Présentation
Cette page a pour objet de lister les gestes techniques relatifs à l'utilisation de LVM sur un serveur Linux.
Lexique
- PV
- Physical Volume
- VG
- Volume Group
- LV
- Logical Volume
- FS
- File System
Création
Création de partition
Pour créer une partition, lancer la commande fdisk
sur le disque concerné :
fdisk /dev/sdb
Le programme est interactif et des renseignements sont à donner pour créer la partition.
Les options sont les suivantes :
- n : pour new partition
- cela va créer une nouvelle partition
- p : pour primary partition
- cela va créer une partition primaire
- 1-4 : pour le choix du numéro de partition à créer
- on ne peut pas créer plus de 4 partitions primaires sur un disque
- un nombre : ce nombre indique que le premier secteur disponible à partir duquel créer la partition
- il faut laisser la valeur par défaut à moins de savoir exactement ce que l'on fait
- Dernier secteur, +secteur ou +taille{K,M,G} : cette option permet de définir la taille de la partition
- la valeur par défaut correspond à la totalité de l'espace disque disponible
- t : pour partition type
- cela permet de choisir le type de partition. Pour faire du LVM, faire le choix 8e.
- w : pour write
- cela permet de valider et d'écrire les nouvelles informations dans la table de partitions du disque
Exemple de retour :
[root@myserver ~]# fdisk -l /dev/sd? Disque /dev/sda : 21.5 Go, 21474836480 octets, 41943040 secteurs Unités = secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x000e4d24 Périphérique Amorçage Début Fin Blocs Id. Système /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 41943039 19921920 8e Linux LVM Disque /dev/sdb : 10.7 Go, 10737418240 octets, 20971520 secteurs Unités = secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets [root@myserver ~]# fdisk /dev/sdb Bienvenue dans fdisk (util-linux 2.23.2). Les modifications resteront en mémoire jusqu'à écriture. Soyez prudent avant d'utiliser la commande d'écriture. Le périphérique ne contient pas de table de partitions reconnue Construction d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0x61095643. Commande (m pour l'aide) : n Type de partition : p primaire (0 primaire(s), 0 étendue(s), 4 libre(s)) e étendue Sélection (p par défaut) : Utilisation de la réponse p par défaut Numéro de partition (1-4, 1 par défaut) : Premier secteur (2048-20971519, 2048 par défaut) : Utilisation de la valeur 2048 par défaut Dernier secteur, +secteur ou +taille{K,M,G} (2048-20971519, 20971519 par défaut) : Utilisation de la valeur 20971519 par défaut La partition 1 de type Linux et de taille 10 GiB est configurée Commande (m pour l'aide) : t Partition 1 sélectionnée Code Hexa (taper L pour afficher tous les codes) :8e Type de partition « Linux » modifié en « Linux LVM » Commande (m pour l'aide) : w La table de partitions a été altérée. Appel d'ioctl() pour relire la table de partitions. Synchronisation des disques. [root@myserver ~]# fdisk -l /dev/sd? Disque /dev/sda : 21.5 Go, 21474836480 octets, 41943040 secteurs Unités = secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x000e4d24 Périphérique Amorçage Début Fin Blocs Id. Système /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 41943039 19921920 8e Linux LVM Disque /dev/sdb : 10.7 Go, 10737418240 octets, 20971520 secteurs Unités = secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x61095643 Périphérique Amorçage Début Fin Blocs Id. Système /dev/sdb1 2048 20971519 10484736 8e Linux LVM
Création de PV
Pour créer un PV (Physical Volume) à partir d'un disque ou d'une partition, lancer la commande suivante :
pvcreate /dev/sdb1
Exemple de retour :
[root@myserver ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created. [root@myserver ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_os lvm2 a-- <19,00g <6,00g /dev/sdb1 lvm2 --- <10,00g <10,00g
Création de VG
Pour créer un VG (Volume Group) à partir d'un ou plusieurs PVs, lancer la commande suivante :
vgcreate vg_data /dev/sdb1
Exemple de retour :
[root@myserver ~]# vgcreate vg_data /dev/sdb1 Volume group "vg_data" successfully created [root@myserver ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_data 1 0 0 wz--n- <10,00g <10,00g vg_os 1 3 0 wz--n- <19,00g <6,00g
Création de LV
Pour créer un LV (Logical Volume), s'assurer préalablement que le VG sur lequel il sera créé dispose de suffisamment d'espace.
Une fois ce point vérifié, lancer la création du LV comme ceci :
lvcreate -L 1G VG_DATA -n LV_DATA_MYDATA
Cette commande aura pour effet de créer un LV nommé LV_DATA_MYDATA
d'une taille de 1G
sur le VG VG_DATA
.
Pour créer un LV avec tout l'espace disque disponible, lancer la commande suivante :
lvcreate -l 100%FREE vg_data -n lv_data
Exemple de retour :
[root@myserver ~]# lvcreate -l 100%FREE vg_data -n lv_data Logical volume "lv_data" created. [root@myserver ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv_data vg_data -wi-a----- <10,00g lv_home vg_os -wi-ao---- 1,00g lv_root vg_os -wi-ao---- 10,00g lv_swap vg_os -wi-ao---- 2,00g
Création de FS
Pour créer un FS, il faut s'assurer que le LV qui l'héberge soit bien créé et qu'il dispose de l'espace désiré.
Une fois ce point vérifier, récupérer le chemin d'accès du LV avec la commande :
lvdisplay vg_data/lv_data|grep "LV Path"|awk '{print $NF}'
Puis, lancer la création en ext4 du FS sur le chemin d'accès du LV comme ceci :
mkfs.ext4 /dev/vg_data/lv_data
Pour créer un FS ext4 avec une table d'inode plus grande que celle par défaut, lancer la commande suivante :
mkfs.ext4 -i 8192 /dev/vg_data/lv_data
Exemple de retour :
[root@myserver ~]# mkfs.ext4 -i 8192 /dev/vg_data/lv_data mke2fs 1.42.9 (28-Dec-2013) Étiquette de système de fichiers= Type de système d'exploitation : Linux Taille de bloc=4096 (log=2) Taille de fragment=4096 (log=2) « Stride » = 0 blocs, « Stripe width » = 0 blocs 1310720 i-noeuds, 2620416 blocs 131020 blocs (5.00%) réservés pour le super utilisateur Premier bloc de données=0 Nombre maximum de blocs du système de fichiers=2151677952 80 groupes de blocs 32768 blocs par groupe, 32768 fragments par groupe 16384 i-noeuds par groupe Superblocs de secours stockés sur les blocs : 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocation des tables de groupe : complété Écriture des tables d'i-noeuds : complété Création du journal (32768 blocs) : complété Écriture des superblocs et de l'information de comptabilité du système de fichiers : complété
Pour vérifier, lancer la commande :
file -sL /dev/VG_DATA/LV_DATA_GDB
Exemple de retour :
[root@myserver ~]# file -sL /dev/vg_data/lv_data /dev/vg_data/lv_data: Linux rev 1.0 ext4 filesystem data, UUID=35220f75-5881-4be8-8303-c513dc53dae7 (extents) (64bit) (large files) (huge files)
Extension
L'exemple utilisé ici est un cas fréquent : le LV dans lequel se trouvent les dossiers dans lesquels les utilisateurs travaillent vient à saturation. Il faut l'agrandir.
Afficher les informations
LV
Sur le serveur myserver par exemple, le LV LV_DATA
monté dans le dossier /data
fait 12 Go et vient à saturation.
Pour visualiser le point de montage, faire :
df -h /data
Exemple de retour :
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VG_DATA-LV_DATA 12G 11G 460M 96% /data
Le LV concerné est donc /dev/mapper/VG_DATA-LV_DATA
, ou plus simplement appelé VG_DATA/LV_DATA
, et est rempli à 96%.
Pour afficher les informations relatives au LV, lancer la commande :
lvs /dev/mapper/VG_DATA-LV_DATA
Exemple de retour :
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert LV_DATA VG_DATA -wi-ao---- 12.00g
VG
Le VG sur lequel se trouve le LV est VG_DATA
. Pour afficher ses informations, taper :
vgs VG_DATA
Exemple de retour :
VG #PV #LV #SN Attr VSize VFree VG_DATA 1 1 0 wz--n- 13.33g 1.33g
Ce la permet de constater qu'il n'y a que 1,33 Go d'espace disponible sur VG_DATA
.
PV
Pour voir les PV associés à VG_DATA
, lancer la commande :
pvs
Exemple de retour :
PV VG Fmt Attr PSize PFree /dev/sda2 VG_SYS lvm2 a-- 19.99g 0 /dev/sdb1 VG_APPLI lvm2 a-- 6.66g 3.05g /dev/sdb2 VG_DATA lvm2 a-- 13.33g 1.33g
Cela indique qu'il y a 3 PV, dont 2 sur le disque dur /dev/sdb, dont 1 étant rattaché au VG VG_DATA
, le PV /dev/sdb2
.
Disque dur
Pour afficher des informations relatives au disque dur /dev/sdb
, lancer la commande :
fdisk -l /dev/sdb*
Exemple de retour :
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors Disk model: Virtual disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x4f477c8d Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 13981013 13978966 6.7G 8e Linux LVM /dev/sdb2 13981696 41943039 27961344 13.3G 8e Linux LVM Disk /dev/sdb1: 6.7 GiB, 7157230592 bytes, 13978966 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdb2: 13.3 GiB, 14316208128 bytes, 27961344 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Ce retour permet de constater qu'il n'y a pas d'espace libre disponible sur /dev/sdb
pour étendre une partition ou en créer de nouvelle. En effet, le disque dur /dev/sdb
fait 20 Go et est composé de 2 partitions faisant respectivement 6,7 Go et 13,3 Go, soit un total de 20 Go.
Réaliser l'extension
Ajout/modification disque dur
Il est possible d'ajouter un disque dur, ou bien d'en étendre un existant. Cette action dépendant du type de machine, et non de Linux ou LVM, elle ne sera pas traitée ici.
Prise en compte modification disque dur
Dans le cas d'une extension de disque dur, après l'extension réalisée, il va falloir passer une commande au système pour mettre à jour ses informations. Par exemple, pour la machine myserver, fonctionnant sous openSUSE Tumbleweed, la commande à passer est :
echo 1 > /sys/block/sdb/device/rescan
Cette commande permet de forcer le scan du disque dur /dev/sdb
. Il faut donc adapter la commande en fonction du disque dur désiré.
Ainsi, en passant la commande :
fdisk -l /dev/sdb
Le retour est le suivant :
Disk /dev/sdb: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: Virtual disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x4f477c8d Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 13981013 13978966 6.7G 8e Linux LVM /dev/sdb2 13981696 41943039 27961344 13.3G 8e Linux LVM
Le disque dur /dev/sdb
qui était originalement à 20 Go fait désormais 25 Go.
Extension partition
Utiliser l'utilitaire de disque fdisk
sur /dev/sdb
en lançant la commande suivante :
fdisk /dev/sdb
Renseigner les valeurs suivantes :
Command
- d
- d pour delete ==> demande la suppression d'une partition
Partition number
- 2
- 2 pour demander la suppression de la partition n°2
Command
- n
- n pour new ==> demande la création d'une nouvelle partition
Select
- p
- p pour primary ==> demande la création d'une partition primaire
Partition number
- 2
- 2 pour indiquer le numéro que portera la partition
First sector
- 13981696
- correspond au numéro de secteur sur le disque à partir duquel la partition commence
- ATTENTION ! : dans le cas d'une extension de partition, il est important de donner exactement le même First sector que la partition précédemment supprimée. Dans le cas contraire, les données seront irrécupérables !
Last sector
- 52428799
- correspond au numéro de secteur sur le disque sur lequel la partition termine. Pour utiliser tout l'espace disponible restant, mettre la valeur maximale proposée.
Do you want to remove the signature?
- N
- N pour No ==> il faut conserver la signature LVM afin que les données ne soient pas perdues.
Command
- w
- w pour write ==> toutes les informations renseignées sont écrites sur le disque à cette étape.
Pour constater la bonne prise en compte de l'extension de partition, taper la commande suivante :
fdisk -l /dev/sdb2
Exemple de retour :
Disk /dev/sdb2: 18.3 GiB, 19684917248 bytes, 38447104 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
La partition /dev/sdb2
qui était originalement à 13,3 Go fait désormais 18,3 Go.
Extension PV
Pour étendre le PV à la taille de la partition précédemment agrandie, taper :
pvresize /dev/sdb2
Exemple de retour :
Physical volume "/dev/sdb2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
Pour constater la bonne prise en compte de l'extension du PV, taper la commande suivante :
pvs /dev/sdb2
Exemple de retour :
PV VG Fmt Attr PSize PFree /dev/sdb2 VG_DATA lvm2 a-- 18.33g 0
Le PV /dev/sdb2
qui était originalement à 13,3 Go fait désormais 18,3 Go.
Extension VG
Dans le cas d'une extension d'un PV, le VG associé n'a pas besoin d'être agrandi.
Toutefois, s'il s'agissait de la création d'un nouveau PV pour agrandir un VG, il aurait fallu taper la commande suivante :
vgextend VG_DATA /dev/sdb3
Extension LV
Pour étendre le LV avec l'espace précédemment mis à disposition sur le VG, taper :
lvextend -l +100%FREE VG_DATA/LV_DATA
Explication de la commande :
- +
- pour indiquer que l'ajoute de l'espace à la quantité déjà existante sur le LV
- 100%FREE
- représente la quantité de l'espace
- correspond à la totalité (100%) de l'espace disponible (FREE) sur le VG
Exemple de retour :
New size given (1621 extents) not larger than existing size (3072 extents)
Pour constater la bonne prise en compte de l'extension du LV, taper la commande suivante :
lvs VG_DATA/LV_DATA
Exemple de retour :
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert LV_DATA VG_DATA -wi-ao---- 18.33g
Le LV VG_DATA/LV_DATA
qui était originalement à 12,0 Go fait désormais 18,33 Go.
Extension FS
Pour étendre le FS avec l'espace précédemment mis à disposition sur le LV, taper :
resize2fs /dev/VG_DATA/LV_DATA
ou
resize2fs /data
Exemple de retour :
resize2fs 1.44.5 (15-Dec-2018) Filesystem at /dev/VG_DATA/LV_DATA is mounted on /data; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/VG_DATA/LV_DATA is now 4805632 (4k) blocks long.
Pour constater la bonne prise en compte de l'extension du LV, taper la commande suivante :
df -h /dev/VG_DATA/LV_DATA
ou
df -h /data
Exemple de retour :
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VG_DATA-LV_DATA 18G 12G 5.8G 67% /data
Le FS /data
qui était originalement à 12 Go fait désormais 18 Go.