GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer le stockage sous Linux avec LVM

Logical Volume Manager (LVM) est un système de type RAID basé sur un logiciel qui vous permet de créer des "pools" de stockage et d'ajouter de l'espace disque dur à ces pools si nécessaire. Il existe de nombreuses raisons de l'utiliser, en particulier dans un centre de données ou tout autre endroit où les exigences de stockage changent avec le temps. Cependant, de nombreuses distributions Linux l'utilisent par défaut pour les installations de bureau, car les utilisateurs trouvent la flexibilité pratique et il existe certaines fonctionnalités de chiffrement intégrées que la structure LVM simplifie.

Cependant, si vous n'êtes pas habitué à voir un volume LVM lors du démarrage d'un Live CD à des fins de sauvetage ou de migration de données, LVM peut prêter à confusion car le montage La commande ne peut pas monter les volumes LVM. Pour cela, vous devez installer les outils LVM. Il y a de fortes chances que votre distribution dispose d'utilitaires LVM, s'ils ne sont pas déjà installés.

Ce didacticiel explique comment créer et gérer des volumes LVM.

Créer un pool LVM

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Cet article suppose que vous avez une connaissance pratique de la façon d'interagir avec les disques durs sous Linux. Si vous avez besoin de plus d'informations sur les bases avant de continuer, lisez mon introduction aux disques durs sous Linux.

Habituellement, vous n'avez pas du tout besoin de configurer LVM. Lorsque vous installez Linux, il crée souvent par défaut un "pool" virtuel de stockage et ajoute le ou les disques durs de votre machine à ce pool. Cependant, la création manuelle d'un pool de stockage LVM est un excellent moyen d'apprendre ce qui se passe dans les coulisses.

Vous pouvez vous entraîner avec deux clés USB de rechange de n'importe quelle taille, ou deux disques durs, ou une machine virtuelle avec deux lecteurs imaginaires définis.

Tout d'abord, formatez le lecteur imaginaire /dev/sdx afin que vous disposiez d'un nouveau disque prêt à l'emploi pour cette démonstration.

# echo "warning, this ERASES everything on this drive."
warning, this ERASES everything on this drive.
# dd if=/dev/zero of=/dev/sdx count=8196
# parted /dev/sdx print | grep Disk
Disk /dev/sdx: 100GB
# parted /dev/sdx mklabel gpt
# parted /dev/sdx mkpart primary 1s 100%

Cette commande LVM crée un pool de stockage. Un pool peut être composé d'un ou de plusieurs disques, et actuellement il en est composé d'un seul. Cet exemple de pool de stockage est nommé billiards , mais vous pouvez l'appeler n'importe quoi.

# vgcreate billiards /dev/sdx1

Vous disposez maintenant d'un grand bassin nébuleux d'espace de stockage. Il est temps de le distribuer. Pour créer deux volumes logiques (vous pouvez les considérer comme des lecteurs virtuels), un appelé vol0 et l'autre appelé vol1 , saisissez ce qui suit :

# lvcreate billiards 49G --name vol0
# lvcreate billiards 49G --name vol1

Vous avez maintenant deux volumes découpés dans un pool de stockage, mais aucun d'eux n'a encore de système de fichiers. Pour créer un système de fichiers sur chaque volume, vous devez apporter le billard groupe de volumes en ligne.

# vgchange --activate y billiards

Créez maintenant les systèmes de fichiers. Le -L L'option fournit une étiquette pour le lecteur, qui s'affiche lorsque le lecteur est monté sur votre bureau. Le chemin d'accès au volume est un peu différent des chemins de périphérique habituels auxquels vous êtes habitué car il s'agit de périphériques virtuels dans un pool de stockage LVM.

# mkfs.ext4 -L finance /dev/billiards/vol0
# mkfs.ext4 -L production /dev/billiards/vol1

Vous pouvez monter ces nouveaux volumes sur votre bureau ou depuis un terminal.

# mkdir -p /mnt/vol0 /mnt/vol1
# mount /dev/billiards/vol0 /mnt/vol0
# mount /dev/billiards/vol1 /mnt/vol1

Ajouter de l'espace à votre piscine

Jusqu'à présent, LVM n'a fourni rien de plus que le partitionnement d'un disque :deux sections distinctes d'espace disque sur un seul disque physique (dans cet exemple, 49 Go et 49 Go sur un disque de 100 Go). Imaginez maintenant que le service financier ait besoin de plus d'espace. Traditionnellement, il fallait restructurer. Peut-être déplaceriez-vous les données du service financier vers un nouveau disque physique dédié, ou ajouteriez-vous un disque, puis utiliseriez-vous un lien symbolique laid pour fournir aux utilisateurs un accès facile à leur espace de stockage supplémentaire. Avec LVM, cependant, tout ce que vous avez à faire est d'étendre le pool de stockage.

Vous pouvez ajouter de l'espace à votre pool en formatant un autre disque et en l'utilisant pour créer plus d'espace supplémentaire.

Commencez par créer une partition sur le nouveau lecteur que vous ajoutez au pool.

# part /dev/sdy mkpart primary 1s 100%

Ensuite, utilisez le vgextend commande pour marquer le nouveau lecteur comme faisant partie du pool.

# vgextend billiards /dev/sdy1

Enfin, dédiez une partie du pool de stockage nouvellement disponible au volume logique approprié.

# lvextend -L +49G /dev/billiards/vol0

Bien sûr, l'expansion n'a pas besoin d'être aussi linéaire. Imaginez que le département de production ait soudainement besoin de 100 To d'espace supplémentaire. Avec LVM, vous pouvez ajouter autant de disques physiques que nécessaire, en ajoutant chacun et en utilisant vgextend pour créer un pool de stockage de 100 To, puis en utilisant lvextend pour "étirer" l'espace de stockage du service de production sur 100 To d'espace disponible.

Utilisez des utilitaires pour comprendre votre structure de stockage

Une fois que vous commencez à utiliser LVM sérieusement, le paysage du stockage peut devenir écrasant. Deux commandes permettent de collecter des informations sur la structure de votre infrastructure de stockage.

Tout d'abord, il y a vgdisplay , qui affiche des informations sur vos groupes de volumes (vous pouvez les considérer comme les gros disques virtuels de haut niveau de LVM).

# vgdisplay
  --- Volume group ---
  VG Name               billiards
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <237.47 GiB
  PE Size               4.00 MiB
  Total PE              60792
  Alloc PE / Size       60792 / <237.47 GiB
  Free  PE / Size       0 / 0  
  VG UUID               j5RlhN-Co4Q-7d99-eM3K-G77R-eDJO-nMR9Yg

Le second est lvdisplay , qui affiche des informations sur vos volumes logiques (vous pouvez les considérer comme des lecteurs orientés vers l'utilisateur).

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/billiards/finance
  LV Name                finance
  VG Name                billiards
  LV UUID                qPgRhr-s0rS-YJHK-0Cl3-5MME-87OJ-vjjYRT
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-12-16 07:31:01 +1300
  LV Status              available
  # open                 1
  LV Size                149.68 GiB
  Current LE             46511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

[...]

Utiliser LVM dans un environnement de secours

Le "problème" avec LVM est qu'il enveloppe les partitions d'une manière qui n'est pas familière à de nombreux utilisateurs administratifs habitués au partitionnement de disque traditionnel. Dans des circonstances normales, les lecteurs LVM sont activés et montés de manière assez invisible pendant le processus de démarrage ou l'intégration du bureau LVM. Ce n'est pas quelque chose auquel vous devez généralement penser. Cela ne devient problématique que lorsque vous vous retrouvez en mode de récupération après un problème avec votre système.

Si vous devez monter un volume "caché" dans la structure de LVM, vous devez vous assurer que la chaîne d'outils LVM est installée. Si vous avez accès à votre /usr/sbin répertoire, vous avez probablement accès à toutes vos commandes LVM habituelles. Mais si vous avez démarré dans un shell minimal ou un environnement de secours, vous ne disposez peut-être pas de ces outils. Un bon environnement de secours a LVM installé, donc si vous êtes dans un shell minimal, trouvez un système de secours qui le fait. Si vous utilisez un disque de secours et que LVM n'est pas installé, installez-le manuellement ou trouvez un disque de secours qui l'a déjà.

Par souci de répétition et de clarté, voici comment monter un volume LVM.

# vgchange --activate y
2 logical volume(s) in volume group "billiards" now active
# mkdir /mnt/finance
# mount /dev/billiards/finance /mnt/finance

Intégrer LVM avec le chiffrement LUKS

De nombreuses distributions Linux utilisent LVM par défaut lors de l'installation du système d'exploitation. Cela permet une extension de stockage ultérieure, mais s'intègre également parfaitement au chiffrement de disque fourni par la chaîne d'outils de chiffrement Linux Unified Key Setup (LUKS).

Le cryptage est assez important, et il existe deux façons de crypter les choses :vous pouvez crypter fichier par fichier avec un outil comme GnuPG, ou vous pouvez crypter une partition entière. Sous Linux, le chiffrement d'une partition est facile avec LUKS, qui, étant complètement intégré à Linux au moyen de modules de noyau, permet de monter des disques pour une lecture et une écriture transparentes.

Le cryptage de l'intégralité de votre disque principal est généralement une option lors de l'installation. Vous choisissez de chiffrer l'intégralité de votre lecteur ou uniquement votre partition personnelle lorsque vous y êtes invité, et à partir de ce moment, vous utilisez LUKS. Il est pratiquement invisible pour vous, mis à part une invite de mot de passe lors du démarrage.

Si votre distribution n'offre pas cette option lors de l'installation, ou si vous souhaitez simplement chiffrer manuellement un lecteur ou une partition, vous pouvez le faire.

Vous pouvez suivre cet exemple en utilisant un disque de secours; J'ai utilisé une petite clé USB de 4 Go.

Tout d'abord, branchez le lecteur sur votre ordinateur. Assurez-vous que vous pouvez effacer le lecteur en toute sécurité et utilisez lsblk pour localiser le lecteur sur votre système.

Si le lecteur n'est pas déjà partitionné, partitionnez-le maintenant. Si vous ne savez pas comment partitionner un disque, consultez le lien ci-dessus pour obtenir des instructions.

Vous pouvez maintenant configurer le cryptage. Tout d'abord, formatez la partition avec le cryptsetup commande.

# cryptsetup luksFormat /dev/sdx1

Notez que vous chiffrez la partition , pas le disque physique lui-même. Vous verrez un avertissement indiquant que LUKS va effacer votre disque; vous devez l'accepter pour continuer. Vous serez invité à créer une phrase de passe, alors faites-le. N'oubliez pas cette phrase secrète. Sans lui, vous ne pourrez plus jamais accéder à ce lecteur !

Vous avez chiffré la partition de la clé USB, mais il n'y a pas encore de système de fichiers sur la clé. Bien sûr, vous ne pouvez pas écrire un système de fichiers sur le lecteur pendant que vous en êtes verrouillé, alors ouvrez d'abord le lecteur avec LUKS. Vous pouvez fournir un nom convivial pour votre lecteur ; pour cet exemple, j'ai utilisé mySafeDrive .

# cryptsetup luksOpen /dev/sdx1 mySafeDrive

Saisissez votre phrase de passe pour ouvrir le lecteur.

Regardez dans /dev/mapper et vous verrez que vous avez monté le volume avec tous les autres volumes LVM que vous pourriez avoir, ce qui signifie que vous avez maintenant accès à ce lecteur. Le nom personnalisé (par exemple, mySafeDrive) est un lien symbolique vers un indicateur généré automatiquement dans /dev/mapper . Vous pouvez utiliser l'un ou l'autre chemin lorsque vous travaillez sur ce lecteur.

# ls -l /dev/mapper/mySafeDrive
lrwxrwxrwx. 1 root root 7 Oct 24 03:58 /dev/mapper/mySafeDrive -> ../dm-4

Créez votre système de fichiers.

# mkfs.ext4 -o Linux -L mySafeExt4Drive /dev/mapper/mySafeDrive

Maintenant, faites un ls -lh sur /dev/mapper et vous verrez que mySafeDrive est en fait un lien symbolique vers un autre dev ; probablement /dev/dm0 ou similaire. C'est le système de fichiers que vous pouvez monter :

# mount /dev/mapper/mySafeExt4Drive /mnt/hd

Maintenant, le système de fichiers sur le lecteur crypté est monté. Vous pouvez lire et écrire des fichiers comme vous vous en doutez avec n'importe quel lecteur.

Utiliser des lecteurs chiffrés avec le bureau

LUKS est intégré au noyau, votre système Linux sait donc parfaitement comment le gérer. Détachez le lecteur, rebranchez-le et montez-le à partir de votre bureau. Dans le gestionnaire de fichiers Dolphin de KDE, vous serez invité à entrer un mot de passe avant que le lecteur ne soit déchiffré et monté.

L'utilisation de LVM et de LUKS est simple et vous offre une flexibilité en tant qu'utilisateur et administrateur. Étant étroitement intégré à Linux lui-même, il est bien pris en charge et constitue un excellent moyen d'ajouter une couche de sécurité à vos données. Essayez-le dès aujourd'hui !


Linux
  1. Comment gérer les capacités des fichiers Linux

  2. Comment gérer le mot de passe du compte sous Linux

  3. Comment gérer les services Systemd avec Systemctl sous Linux

  4. Comment gérer plusieurs versions de Python avec Pyenv sous Linux

  5. Comment gérer les postes de travail Linux avec des politiques

Comment gérer plusieurs versions de Java avec jEnv sous Linux

Comment gérer les versions de Nodejs avec n sous Linux

Comment créer un groupe de volumes sous Linux avec LVM

Comment sécuriser les serveurs Linux avec SE Linux

Comment gérer à distance un serveur Linux avec SSH

Comment gérer le stockage avec GParted Linux