# Partitionnement LVM

## Partitionnement LVM sous Linux <a href="#partitionnement-lvm-sous-linux" id="partitionnement-lvm-sous-linux"></a>

Le partitionnement LVM (Logical Volume Manager) permet une gestion flexible et dynamique des volumes de stockage sur Linux. Voici une documentation synthétique pour comprendre et utiliser LVM dans un contexte d'administration système.

### **Qu'est-ce que LVM ?**

LVM est un gestionnaire de volumes logiques qui permet de créer, redimensionner, supprimer et déplacer des partitions (volumes logiques) de manière souple, sans les contraintes des partitions classiques. Il facilite aussi l’ajout de nouveaux disques à chaud et la gestion de snapshots.

### Concepts de base <a href="#concepts-de-base" id="concepts-de-base"></a>

* **PV (Physical Volume)** : Disque ou partition physique initialisée pour LVM (ex : /dev/sdb1).
* **VG (Volume Group)** : Groupe de volumes physiques, formant un espace de stockage unifié.
* **LV (Logical Volume)** : Partition logique créée dans un VG, utilisée comme un disque classique (montée, formatée, etc.).

Ci-joint un schéma recap

<img src="/files/XSeX52rRi7AArwApjlvb" alt="" data-size="original">

### Commandes principales <a href="#commandes-principales" id="commandes-principales"></a>

### 1. Préparation du disque

Initialiser un disque ou une partition pour LVM :

```bash
sudo pvcreate /dev/sdb1
```

### 2. Création d’un groupe de volumes

Créer un VG nommé `vgdata` :

```sh
sudo vgcreate vgdata /dev/sdb1
```

### 3. Création d’un volume logique

Créer un LV de 20 Go nommé `data` dans le VG `vgdata` :

```bash
sudo lvcreate -L 20G -n data vgdata
```

### 4. Formatage et montage

Formater le volume logique :

```bash
sudo mkfs.ext4 /dev/vgdata/data
```

Créer un point de montage et monter le volume :

```bash
sudo mkdir /mnt/data
sudo mount /dev/vgdata/data /mnt/data
```

### 5. Vérification

Lister les volumes physiques, groupes et volumes logiques :

```bash
sudo pvs    # Volumes physiques
sudo vgs    # Groupes de volumes
sudo lvs    # Volumes logiques
```

### Redimensionnement <a href="#redimensionnement" id="redimensionnement"></a>

* **Agrandir un LV** (exemple +10G) :

  ```bash
  sudo lvextend -L +10G /dev/vgdata/data
  sudo resize2fs /dev/vgdata/data
  ```
* **Réduire un LV** (après sauvegarde et démontage) :

  ```bash
  sudo umount /mnt/data
  sudo e2fsck -f /dev/vgdata/data
  sudo resize2fs /dev/vgdata/data 15G
  sudo lvreduce -L 15G /dev/vgdata/data
  sudo mount /dev/vgdata/data /mnt/data
  ```

### Ajout d’un nouveau disque au VG <a href="#ajout-dun-nouveau-disque-au-vg" id="ajout-dun-nouveau-disque-au-vg"></a>

1. Initialiser le disque :

   ```bash
   sudo pvcreate /dev/sdc1
   ```
2. Ajouter au VG :

   ```bash
   sudo vgextend vgdata /dev/sdc1
   ```

### Montage automatique (fstab) <a href="#montage-automatique-fstab" id="montage-automatique-fstab"></a>

#### Pour un montage persistant, ajouter dans `/etc/fstab` :

```bash
/dev/vgdata/data  /mnt/data  ext4  defaults  0  2
```

#### Ou utiliser l’UUID obtenu avec `blkid`.

1. **Lister les UUIDs des partitions**

   Exécute la commande suivante en root pour afficher les UUID de toutes les partitions :

   ```bash
   sudo blkid
   ```

   Exemple de sortie :

   ```bash
   /dev/sda1: UUID="8bf33340-e94c-4c4c-981d-35e73f8bc65c" TYPE="ext4"
   /dev/sda2: UUID="ac56a704-260b-45f5-85ac-e1b451bb79bc" TYPE="swap"
   ```

   Chaque ligne indique l’UUID associé à une partition précise.
2. **Utiliser l’UUID pour le montage automatique**

   Pour monter une partition via son UUID (par exemple dans `/etc/fstab`), utilise la ligne suivante :

   ```bash
   UUID=8bf33340-e94c-4c4c-981d-35e73f8bc65c   /mnt/data   ext4   defaults   0  2
   ```

   Cela permet de garantir que la bonne partition sera montée, même si l’ordre des disques change.
3. **Lister les liens UUID dans /dev**

   On peut aussi voir les liens symboliques vers les partitions par UUID :

   ```bash
   ls -l /dev/disk/by-uuid
   ```

   Cela montre à quel périphérique chaque UUID correspond.
4. **Mettre à jour le cache blkid**

   Si on vient de modifier les partitions, il peut être utile de rafraîchir le cache :

   ```bash
   sudo blkid -g
   sudo blkid
   ```

   Ainsi, on obtiendra  les UUIDs à jour.

En résumé, `sudo blkid`  donne l’UUID de chaque partition, qu'on peut ensuite utiliser dans des fichiers de configuration (comme `/etc/fstab`) pour des montages fiables et persistants.

### Avantages de LVM <a href="#avantages-de-lvm" id="avantages-de-lvm"></a>

* Redimensionnement facile des volumes
* Ajout de disques à chaud
* Snapshots pour sauvegardes instantanées
* Gestion centralisée de l’espace disque


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki-tech.fikara.io/administration-linux/partitionnement-lvm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
