Device Mapper et LVM

Cet article fait suite à Device Mapper : une explication simple.

Dans cet article, nous allons montrer que la structure sous-jacente de LVM est en fait du Device Mapper.

Pour cela, nous allons :

  • créer deux partitions
    • 100 Mo sur /dev/sdb
    • 50 Mo sur /dev/sdc
  • ajouter ces partitions dans un VG (Volume Group)
  • créer un Volume Logique (LV) dans ce VG.

Ensuite, nous verrons comment ce LV est fabriqué dans le Device Mapper.

 

Avec fdisk, nous avons créé 2 partitions sur 2 disques de 20 Go : /dev/sdb1 (100 Mo) et /dev/sdc1 (50 Mo) :

[root@TEST /]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
(...)
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      206847      102400   83  Linux

Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
(...)
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048      104447       51200   83  Linux

Créons maintenant un VG à partir de ces deux partitions :

[root@TEST /]# vgcreate vg-virtual /dev/sdb1 /dev/sdc1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Volume group "vg-virtual" successfully created

Dans ce VG, créons un LV qui occupe tout l’espace (donc 150 Mo) :

[root@TEST /]# lvcreate -n lv-virtual -l+100%FREE vg-virtual
  Logical volume "lv-virtual" created.

La commande lvs indique bien la création d’un LV de (environ) 150Mo :

[root@TEST /]# lvs
  LV         VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root       centos     -wi-ao----  17.47g
  swap       centos     -wi-ao----   2.00g
  lv-virtual vg-virtual -wi-a----- 144.00m

 

Comment ce LV est-il représenté dans le Device Mapper ?

La commande dmsetup ls nous confirme qu’un device composite (c’est-à-dire composé de plusieurs partitions) a bien été créé :

[root@TEST /]# dmsetup ls
vg--virtual-lv--virtual (253:2)
centos-swap     (253:1)
centos-root     (253:0)

Quelle est la composition de ce device ?

Utilisons la commande dmsetup table :

[root@TEST /]# dmsetup table vg--virtual-lv--virtual
0 196608 linear 8:17 2048
196608 98304 linear 8:33 2048

Nous constatons ici que le device vg–virtual-lv–virtual est composé de deux devices 8:17 et 8:33 qui sont en fait /dev/sdb1 et /dev/sdc1 :

[root@TEST /]# ls -lh /dev/sd[bc]1
brw-rw----. 1 root disk 8, 17 Jan 18 16:11 /dev/sdb1
brw-rw----. 1 root disk 8, 33 Jan 18 16:11 /dev/sdc1

Selon le résultat de dmsetup table, le device est composé de la manière suivante :

  • 0 196608 linear 8:17 2048
    •  Les 196608 premiers secteurs du LV sont en fait 196608 secteurs de /dev/sdb1
      • A partir du secteur 2048 de /dev/sdb1
      • 196608 secteurs de 512 octets = 100663296 octets = 96 Mo
  • 196608 98304 linear 8:33 2048
    •  Les 98304 secteurs suivants du LV sont en fait 98304 secteurs de /dev/sdc1
      • A partir du secteur 2048 de /dev/sdb1
      • 98304 secteurs de 512 octets = 50331648 octets = 48 Mo

Tout cela montre qu’un disque LVM est essentiellement un disque construit avec Device Mapper.

Bien sûr, il ne suffit pas de créer du Device Mapper à la main pour faire appaître un volume LVM (comme on modifierait /etc/passwd et /etc/shadow pour créer un nouvel utilisateur). En effet, LVM stocke des métadatas sur ses volumes qu’il est impossible de créer manuellement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Page not found – Sweet Captcha
Error 404

It look like the page you're looking for doesn't exist, sorry

Search stories by typing keyword and hit enter to begin searching.