{{tag>sysadmin linux gnu lvm lv}} ====== Création d'un volume logique LVM ====== ===== Prérequis ===== Pour les besoins de l'exercice, on crée un disque virtuel, un fichier de 20 MO que l'on monte comme un périphérique de type bloc via losetup. C'est sur ce périphérique que nous allons travailler. $ cd /tmp $ dd if=/dev/zero of=/tmp/vdisk bs=1M count=20 $ sudo losetup /dev/loop0 vdisk Si les commandes se sont exécutées sans erreur, l'invocation de **losetup** sans argument doit retourner les périphériques disponibles: NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE /dev/loop0 0 0 0 0 /tmp/vdisk ===== Création du PV ===== Pour pouvoir être reconnu comme un volume physique et être utilisé par LVM le périphérique de type bloc doit contenir une structure spécifique: le descripteur de groupe de volume (volume group descriptor). C'est le rôle de la commande **pvcreate**: Le descripteur de groupe de volume vient s’inscrire au début du périphérique de type bloc, il peut écraser selon les cas la table des partitions ou le système de fichier préexistant et rendre tout accès aux données préexistantes impossible. **pvcreate** doit être utilisée avec précaution en s'assurant du périphérique cible. $ sudo pvcreate /dev/loop0 La commande retourne: Physical volume "/dev/loop0" successfully created La commande **pvscan** analyse les périphériques de type bloc du système et liste les volumes physiques LVM disponibles. Nous en avons un à présent: $sudo pvscan PV /dev/loop0 lvm2 [20,00 MiB] Total: 1 [20,00 MiB] / in use: 0 [0 ] / in no VG: 1 [20,00 MiB] Nous avons bien 1 PV sur le périphérique /dev/loop0 d'une taille de 20 Mo. La dernière ligne donne plusieurs informations: * Les nombre total de PV et leur taille 1 PV de 20 Mo * Le nombre de PV utilisés dans des groupes de volumes, ici 0, * Le nombre de PV non intégrés à des groupes de volumes ici 1. ===== Création du groupe de volume ===== Ici on crée le groupe de volume en lui associant un premier volume physique, notre volume PV précédemment créé: $ sudo vgcreate --physicalextentsize 1M vgtest /dev/loop0 Par défaut les PE font 4Mo, l'option **%%--physicalextentsize%%** permet de spécifier la taille des PE pour le groupe de volume vgtest. La commande **vgdisplay** permet d'afficher les détails pour les groupes de volumes existants $ vgdisplay --- Volume group --- VG Name vgtest System ID Format lvm2 Metadata Areas 1 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 1 Act PV 1 VG Size 19,00 MiB PE Size 1,00 MiB Total PE 19 Alloc PE / Size 0 / 0 Free PE / Size 19 / 19,00 MiB VG UUID EOXsXM-2YuQ-7ncX-24zT-0w93-wJC4-BEFjSM Ici un seul groupe de volume existe vgtest, aucun volume logique pour l'instant (Cur LV), PE Size est bien de 1 Mo, 19 PE sont disponibles, aucuns PE n'est alloué. ===== Création du volume logique ===== La création du volume logique se fait sur un groupe de volume existant, dans notre cas vgtest. A la création on peut spécifier la taille du volume logique en octets (option **%%--size%%**) ou en PE (option **%%--extents%%**). Ici on définit un volume logique lvtest de 15 Mo: $ sudo lvcreate --size 15M --name lvtest vgtest Logical volume "lvtest" created Une nouvelle invocation de **vgdisplay** affichera qu' un volume logique existe sur vgtest (Cur LV) que 15 PE sont alloués et qu'il en reste 4. Pour afficher les attributs détaillés du volume logique: $ sudo lvdisplay /dev/vgtest/lvtest ===== Création/montage du système de fichier ===== Maintenant que le volume logique existe, il est disponible grâce au mapper. On peut créer le système de fichier de son choix et le monter sur arborescence logique. $ sudo mkfs.ext4 /dev/vgtest/lvtest $ sudo mkdir /mnt/storage $ sudo mount /dev/vgtest/lvtest /mnt/storage ===== Références ===== * http://tldp.org/HOWTO/LVM-HOWTO/