Table des matières

Retourner à la gestion des types de stockage


LVM

Le stockage LVM, est un volume avec un VG et PV de votre choix.

Ce stockage étant en mode bloc, il ne sera pas possible d'y accèder via une arborescence de répertoire “classique”.
Vous pouvez rajouter autant de stockage de ce type que vous le souhaitez, tant que les noms de VG diffère.

Note:

Permet le stockage:

  • Des images disques de VM
  • Des images disques de Conteneurs

S'agissant d'un stockage par bloc, il ne permet que le format d'images brut.

Attention:

Il n'est pas possible de faire des snapshots ni de clones, de plus le partage de ce stockage n'est pas supporté.

Important:

Ce type de stockage utilisant un PV et VG, et dans le cas où l'installation se ferait sur un cluster, il faudra créer le volume avec les mêmes propriétés et nom sur TOUS LES NOEUDS !

Ligne de commande

Important:

Attention: S'agissant d'un cluster, l'ajout du LV doit être valide sur l'ensemble des noeuds du cluster. Ce qui signifie que les opérations suivantes sont à faire sur TOUS LES NOEUDS !

Admettons que nous ayons un disque/partition de 10Go /dev/sdb.

root@px1:~# fdisk -l /dev/sdb
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Partitionner ce disque avec une seule partition et penser a le passer en type 'Linux LVM' (option → t, type → 8e):

root@px1:~# fdisk /dev/sdb
 
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x4d04f22e.
 
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 
 
Using default response p.
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): 
 
Created a new partition 1 of type 'Linux' and of size 10 GiB.
 
Command (m for help): t
Partition number (1,2, default 2): 
Partition type (type L to list all types): 8e
 
Changed type of partition 'Linux' to 'Linux LVM'.
 
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Créer le PV et le VG avec le nom 'vglocal':

root@px1:/mnt/pve# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
root@px1:/mnt/pve# pvs
  PV         VG  Fmt  Attr PSize  PFree 
  /dev/sda3  pve lvm2 a--  49.75g  6.12g
  /dev/sdb1      lvm2 ---  10.00g 10.00g
root@px1:/mnt/pve# vgcreate vglocal /dev/sdb1
  Volume group "vglocal" successfully created
root@px1:/mnt/pve# vgs
  VG      #PV #LV #SN Attr   VSize  VFree 
  pve       1   5   0 wz--n- 49.75g  6.12g
  vglocal   1   0   0 wz--n- 10.00g 10.00g

Votre nouveau disque est prêt a être utilisé.

Du point de vue de l'hyperviseur, celui-ci est juste un VG. Il n'est pas encore utilisable.

Ajout

Il ne reste plus qu'à déclarer à Proxmox que ce VG est un nouveau stockage utilisable pour le cluster.

Pour cela, nous allons utiliser la commande:

pvesh create

Les options que nous utiliserons sont:

root@px1:~# pvesh create /storage -storage=lvm-volume -type=lvm -content=images,rootdir -vgname=vglocal
200 OK

Vous pouvez voir que notre nouveau stockage a bien été ajouté avec la commande:

pvesh get /storage/<nom-du-volume>
root@px1:~# pvesh get /storage/lvm-volume
200 OK
{
   "content" : "rootdir,images",
   "digest" : "acea97736e5db8dc7eb5c0e64e202e5a0036d1bf",
   "storage" : "lvm-volume",
   "type" : "lvm",
   "vgname" : "vglocal"
}

Attention:

Attention, bien que ce partage soit disponible sur l'ensemble des noeuds, cela ne signifie pas qu'il est partagé.
Ainsi, si l'on stocke un contenu sur le noeud 1, celui-ci ne sera pas disponible sur le noeud 2 ou même 3.

Pour le déplacement de VM, cela suppose, suivant la taille des volumes définis, des temps de déplacement plus ou moins long.
A savoir que des mécanisme de réplication sont disponible (Voir la page Gestion du cluster)

Modification

Précédemment, nous avons ajouter un stockage supplémentaire a notre cluster, néanmoins, nous ne lui avons donnés la possibilités que de stocker deux types de contenu, des images disque de VM et de Conteneur.

Nous allons modifier notre stockage, afin de lui permettre de stocker uniquement des conteneurs (rootdir).
Pour cela, nous allons utiliser la commande:

pvesh set

Note:

Pour modifier un type de contenu, nous devons absolument lui renseigner tous les types de contenu du stockage, autrement, nous écraserons les valeurs précédentes.
Pour ce stockage seul deux types de contenu sont autorisés.

Important:

Attention, comme vous vous en doutez, modifier des options d'un stockage en cours d'utilisation n'est pas sans conséquences.
En particulier si des VMs/Conteneurs tournent au moment de l'opération et que vous oubliez de rajouter les précédents types de contenu, les VMs sont immédiatement inaccessibles.

La modification de type de contenu pour un stockage ne veux pas dire que ceux-ci ont été supprimé physiquement sur le(s) disque(s) !
Pensez donc a faire le nettoyage dans les dossiers après où avant modification sur chaque noeuds. (Voir page Gestion du cluster)

Pour ne laisser que les images de conteneur a notre stockage:

root@px1:~# pvesh set /storage/lvm-volume -content=rootdir
200 OK

Comme vous pouvez le constater, la modification s'est bien déroulé:

root@px1:~# pvesh get /storage/lvm-volume
200 OK
{
   "content" : "rootdir",
   "digest" : "e4253c2e232b9287972832a485f2242e78886860",
   "storage" : "lvm-volume",
   "type" : "lvm",
   "vgname" : "vglocal"
}

Suppression

Important:

Avant de supprimer un stockage de notre cluster, il faut s'assurer que celui-ci ne contient plus aucune données en cours d'utilisation.

Faute de quoi, les ressources utilisés ne seront plus disponibles.

Pour obtenir le contenu du volume, nous allons utiliser la commande:

pvesh get /nodes/<nom_d_un_noeud>/storage/<nom_du_volume>/content

<nom_d_un_noeud>: Dans le cas d'un cluster, les volumes étant déclarés sur l'ensemble des noeuds et non partagés dans leurs contenu, il faudra lancer la commande pour obtenir le contenu du volume de chaque noeuds.
<nom_du_volume>: Nom du volume pour lequel on souhaite afficher le contenu.

root@px1:~# pvesh get /nodes/px1/storage/lvm-volume/content
200 OK
[]

Le contenu de ce volume étant vide, nous pouvons donc le supprimer sans craintes.
Autrement, nous aurions eu une sortie nous listant tout le contenu présent.

Important:

La suppression d'un stockage ne veux pas dire que le contenu de celui-ci a été supprimé physiquement sur le disque !
Pensez donc a faire le nettoyage dans les dossiers après où avant modification sur chaque noeuds. (Voir page Gestion du cluster)

Pour supprimer notre stockage, nous allons utiliser la commande:

pvesh delete /storage/<nom_du_stockage_a_supprimer>
root@px1:~# pvesh delete /storage/lvm-volume
200 OK

On peux constater que la suppression s'est bien déroulé:

root@px1:~# pvesh get /storage
200 OK
[
   {
      "content" : "images,rootdir",
      "digest" : "cc3b0b34aad25f896e9120df80da9e3f04af81a8",
      "storage" : "local-lvm",
      "thinpool" : "data",
      "type" : "lvmthin",
      "vgname" : "pve"
   },
   {
      "content" : "vztmpl,backup,iso",
      "digest" : "cc3b0b34aad25f896e9120df80da9e3f04af81a8",
      "path" : "/var/lib/vz",
      "storage" : "local",
      "type" : "dir"
   }
]

Interface web

Important:

Attention: S'agissant d'un cluster, l'ajout du LV doit être valide sur l'ensemble des noeuds du cluster. Ce qui signifie que les opérations suivantes sont à faire sur TOUS LES NOEUDS !

Ajout

Dans la vue “Server”, sélectionnez “Datacenter”, puis “Storage” et enfin cliquez sur “Add”:

Sélectionnez le type de stockage que vous souhaitez ajouter au cluster (ici “LVM”).

Une nouvelle fenêtre apparaît, reportez-vous aux propriétés communes pour plus d'informations.
Remplissez les champs ID et Volume group:

Dans le champ “Content”, correspondant au contenu que vous souhaitez autoriser sur ce stockage, sélectionnez “Disk image” et “Container”. (Seul type de contenu autorisé pour ce type de stockage)

Choisissez si vous souhaitez que ce stockage soit disponible sur l'intégralité du cluster où seulement sur certains noeuds.
Dans notre cas, ce stockage est disponible sur l'ensemble du cluster.

La case à cocher doit être sur “Enabled” pour que ce stockage soit actif, puis cliquer sur “Add”.

Une fois validé, le stockage est disponible sur l'ensemble du cluster.

Tout comme pour le stockage de type “Directory”, si vous cliquez sur “Search”, vous verrez le même stockage apparaître trois fois, mais sur des noeuds différents.

Attention:

Attention, bien que ce partage soit disponible sur l'ensemble des noeuds, cela ne signifie pas qu'il est partagé.
Ainsi, si l'on stocke un contenu sur le noeud 1, celui-ci ne sera pas disponible sur le noeud 2 ou même 3.

Pour le déplacement de VM, cela suppose, suivant la taille des volumes définis, des temps de déplacement plus ou moins long.
A savoir que des mécanismes de réplication sont disponible (Voir la page Gestion du cluster)

Modification

Pour modifier un stockage, sélectionnez le, lorsque vous êtes dans la gestion du stockage du Datacenter, puis cliquez sur le bouton “Edit”:

Admettions que nous ne souhaitons pas que les images disque des VMs soit disponible sur ce stockage.
Cliquez sur “Disk image” pour désactiver ce type de contenu du stockage.
Puis, cliquez sur le bouton “Ok” pour valider le changement.

Une fois valider, vous verrez que les types de contenu disponible pour ce stockage ont été changé.

Important:

Attention, comme vous vous en doutez, modifier des options d'un stockage en cours d'utilisation n'est pas sans conséquences.
En particulier si des VMs/Conteneurs tournent au moment de l'opération et que vous oubliez de rajouter les précédents types de contenu, les VMs sont immédiatement inaccessibles.

La modification de type de contenu pour un stockage ne veux pas dire que ceux-ci ont été supprimé physiquement sur le(s) disque(s) !
Pensez donc a faire le nettoyage dans les dossiers après où avant modification sur chaque noeuds. (Voir page Gestion du cluster)

Suppression

Important:

Avant de supprimer un stockage de notre cluster, il faut s'assurer que celui-ci ne contient plus aucune données en cours d'utilisation.

Faute de quoi, les ressources utilisés ne seront plus disponibles.

Pour supprimer un stockage, sélectionnez le, lorsque vous êtes dans la gestion du stockage du Datacenter, puis cliquez sur le bouton “Remove”:

Dans la fenêtre de confirmation, cliquez sur “Yes”.

Une fois valider, vous verrez que la liste des stockages disponible a changé et que celui que nous venons de supprimer n'y est plus.

Important:

La suppression d'un stockage ne veux pas dire que le contenu de celui-ci a été supprimé physiquement sur le disque !
Pensez donc a faire le nettoyage dans les dossiers après où avant modification sur chaque noeuds. (Voir page Gestion du cluster)


Retourner à la gestion des types de stockage