GNU/Linux >> Tutoriels Linux >  >> Linux

Un guide pour débutants sur LVM

Version 1.0
Auteur :Falko Timme
Dernière mise à jour :2015-02-09

Ce guide montre comment travailler avec LVM (Logical Volume Management) sous Linux. Il décrit également comment utiliser LVM avec RAID1 dans un chapitre supplémentaire. Comme LVM est un sujet plutôt abstrait, cet article est livré avec une image Debian Etch VMware que vous pouvez télécharger et démarrer, et sur ce système Debian Etch, vous pouvez exécuter toutes les commandes que j'exécute ici et comparer vos résultats avec les miens. Grâce à cette approche pratique, vous devriez vous habituer très rapidement à LVM.

Cependant, je ne garantis pas que ce tutoriel fonctionnera pour vous !

1 Remarque préliminaire

Ce tutoriel a été inspiré par deux articles que j'ai lus :

  • http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
  • http://www.debian-administration.org/articles/410

Ce sont d'excellents articles, mais difficiles à comprendre si vous n'avez jamais travaillé avec LVM auparavant. C'est pourquoi j'ai créé cette image Debian Etch VMware que vous pouvez télécharger et exécuter dans VMware Server ou VMware Player (voir https://www.howtoforge.com/import_vmware_images pour savoir comment faire).

J'ai installé tous les outils dont nous avons besoin au cours de ce guide sur le système Debian Etch (en exécutant

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) pour que vous n'ayez pas à vous en soucier.

Le réseau du système Debian Etch est configuré via DHCP, vous n'avez donc pas à vous soucier des adresses IP en conflit. Le mot de passe root est howtoforge. Vous pouvez également vous connecter à ce système avec un client SSH comme PuTTY. Pour connaître l'adresse IP du système Debian Etch, exécutez

ifconfig

Le système possède six disques durs SCSI, /dev/sda - /dev/sdf. /dev/sda est utilisé pour le système Debian Etch lui-même, tandis que nous utiliserons /dev/sdb - /dev/sdf pour LVM et RAID. /dev/sdb - /dev/sdf ont chacun 80 Go d'espace disque. Au début, nous agirons comme si chacun n'avait que 25 Go d'espace disque (donc en utilisant seulement 25 Go sur chacun d'eux), et au cours du didacticiel, nous "remplacerons" nos disques durs de 25 Go par des disques durs de 80 Go, démontrant ainsi comment vous pouvez remplacer les petits disques durs par de plus grands dans LVM.

L'article http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html utilise des disques durs de 250Go et 800Go, mais certaines commandes comme pvmove prennent longtemps avec de telles tailles de disque dur, c'est pourquoi j'ai décidé d'utiliser des disques durs de 25 Go et 80 Go (c'est suffisant pour comprendre comment fonctionne LVM).

1.1 Résumé

Téléchargez cette image Debian Etch VMware (~ 310 Mo) et démarrez-la comme ceci. Connectez-vous en tant que root avec le mot de passe howtoforge.

2 Disposition LVM

Fondamentalement, LVM ressemble à ceci :

Vous avez un ou plusieurs volumes physiques (/dev/sdb1 - /dev/sde1 dans notre exemple), et sur ces volumes physiques vous créez un ou plusieurs groupes de volumes (par exemple fileserver), et dans chaque groupe de volumes vous pouvez créer un ou plusieurs volumes logiques. Si vous utilisez plusieurs volumes physiques, chaque volume logique peut être plus grand que l'un des volumes physiques sous-jacents (mais bien sûr, la somme des volumes logiques ne peut pas dépasser l'espace total offert par les volumes physiques).

Il est recommandé de ne pas allouer tout l'espace aux volumes logiques, mais de laisser un peu d'espace inutilisé. Vous pourrez ainsi agrandir ultérieurement un ou plusieurs volumes logiques si vous en ressentez le besoin.

Dans cet exemple, nous allons créer un groupe de volumes appelé fileserver, et nous allons également créer les volumes logiques /dev/fileserver/share, /dev/fileserver/backup et /dev/fileserver/media (qui n'utiliseront que la moitié de l'espace offerts par nos volumes physiques pour l'instant - de cette façon, nous pouvons passer à RAID1 plus tard (également décrit dans ce tutoriel)).

3 Notre première configuration LVM

Découvrons nos disques durs :

fdisk -l

La sortie ressemble à ceci :

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Il n'y a pas encore de partitions sur /dev/sdb - /dev/sdf. Nous allons créer les partitions /dev/sdb1, /dev/sdc1, /dev/sdd1 et /dev/sde1 et laisser /dev/sdf intact pour le moment. Nous agissons comme si nos disques durs n'avaient que 25 Go d'espace au lieu de 80 Go pour l'instant, donc nous attribuons 25 Go à /dev/sdb1, /dev/sdc1, /dev/sdd1 et /dev/sde1 :

fdisk /dev/sdb

server1 :~# fdisk /dev/sdb

Le nombre de cylindres pour ce disque est défini sur 10443.
Il n'y a rien de mal à cela, mais c'est plus que 1024,
 et pourrait dans certaines configurations provoquer des problèmes avec :
1) les logiciels qui s'exécutent au démarrage (par exemple, les anciennes versions de LILO)
2) le démarrage et le partitionnement des logiciels à partir d'autres OS
   (par exemple, DOS FDISK, OS/2 FDISK)

Commande (m pour l'aide) : <-- m
Commande action
   a   bascule un drapeau amorçable
   b   edit bsd disklabel
   c   activer l'indicateur de compatibilité dos 
   d   supprimer une partition
   l   lister les types de partition connus 
   m   imprimer ce menu 
   n   ajouter une nouvelle partition 
   o   créer une nouvelle table de partition DOS vide
   p   imprimer la table de partition 
   q   quitter sans enregistrer les modifications
   s   créer une nouvelle étiquette de disque Sun vide
   t   changer l'identifiant système d'une partition
   u modifier les unités d'affichage/d'entrée
   v   vérifier la table de partition    w   écrire la table sur le disque et quitter
   x   fonctionnalité supplémentaire (experts uniquement)

Commande (m pour l'aide) : <-- n
Commande action
e   étendu
   p   partition principale (1-4)
<-- p
Numéro de partition (1-4) : <-- 1
Premier cylindre (1-10443, par défaut 1) :<--
En utilisant la valeur par défaut 1
Dernier cylindre ou +taille ou +taille M ou +taille K (1-10443, 10443 par défaut) : <-- +25 000 M

Commande (m pour l'aide) : <-- t
Partition sélectionnée 1
Code hexadécimal (tapez L pour répertorier les codes) : <-- L

 0  Vide 1E Hidden W95 FAT1 80 Old Minix be Solaris Boot
1 FAT12 24 NEC DOS 81 MINIX / Old Lin BF Solaris
2 Root Xenix 39 Plan 9 82 Linux Swap / SO C1 DRDOS / SEC (FAT- 3 xenix usr 3c partitionmagic 83 Linux C4 drdos / sec (fat-
4 fat16 <32m 40 Venix 80286 84 OS / 2 Hidden C:C6 DRDOS / SEC (FAT-
5 étendu 41 pp C Boot de préparation 85 Linux étendu C7 Syrinx
6 FAT16 42 SFS 86 NTFS Volume Set da non-fs Données
7 HPFS / NTFS 4D QNX4.x 87 NTFS Volume Set DB CP / M / CTOS /. Br /> 8 AIX 4E QNX4.x 2nd Partie 88 Linux PlainText de Dell Utility
9 AIX Bootable 4F QNX4.x 3rd Part 8E Linux LVM DF BOOTIT
A OS / 2 Boot Manage 50 Ontrack DM 93 AMOEBA E1 DOS ACCESS
B W95 FAT32 51 ONTRACK DM6 AUX 94 AMOEBA BBT E3 DOS R / O
C W95 FAT32 (LBA) 52 CP / M 9F BSD / OS E4 SpeedStor
E W95 FAT16 ( LBA) 53 Ontrack DM6 AUX A0 IBM Thinkpad HI EB Beos Fs
F W95 Ext'd (LBA) 54 ONTRACKDM6 A5 FREEBSD EE EFI GPT
10 OPUS 55 EZ-DRIVE A6 OpenBSD EF EFI (FAT-12 /16/
11  FAT12 caché    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS F1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor A9 NetBSD F4 SpeedStor
16 Hidden Fat16 63 GNU HURD OU SYS AB DARWIN BOOT F2 DOS SECONDAIRE
fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c F HiddenAT 3 W97 /> Code hexadécimal (tapez L pour répertorier les codes) : <-- 8e
Modification du type de système de la partition 1 à 8e (Linux LVM)

Commande (m pour l'aide) : <-- w
La table de partition a été modifiée !

Appel ioctl() pour relire la table de partition .
Synchronisation des disques.

Maintenant on fait la même chose pour les disques durs /dev/sdc - /dev/sde :

fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

Puis lancez

fdisk -l

de nouveau. Le résultat devrait ressembler à ceci :

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Maintenant, nous préparons nos nouvelles partitions pour LVM :

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Inversons cette dernière action à des fins d'entraînement :

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Labels on physical volume "/dev/sdb1" successfully wiped
  Labels on physical volume "/dev/sdc1" successfully wiped
  Labels on physical volume "/dev/sdd1" successfully wiped
  Labels on physical volume "/dev/sde1" successfully wiped

Puis lancez

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

encore :

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Maintenant lancez

pvdisplay

pour connaître l'état actuel de vos volumes physiques :

server1:~# pvdisplay
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU

  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B

  --- NEW Physical volume ---
  PV Name               /dev/sdd1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B

  --- NEW Physical volume ---
  PV Name               /dev/sde1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6

Linux
  1. Créer des volumes logiques sous Linux avec LVM

  2. Le guide complet du débutant sur LVM sous Linux

  3. CentOS / RHEL 7 :Guide du débutant sur le pare-feu

  4. Guide du débutant sur NFS dans CentOS / RHEL

  5. CentOS / RHEL :Guide du débutant sur cron

Guide de diffusion Spark pour les débutants

Définir une adresse IP statique sur Ubuntu :un guide pour les débutants

Un guide du débutant pour comprendre sudo sur Ubuntu

Un guide du débutant sur les tâches Cron

Guide du débutant pour l'administration des utilisateurs et des groupes sous Linux

Guide du débutant sur la gestion des utilisateurs MySQL