Retourner à la gestion des types de stockage
LVM-THIN
Il s'agit de l'un des stockages utilisé par défaut lors d'une installation.
Le stockage LVM-THIN, lors d'une nouvelle installation se trouve dans le LV data, s'agissant d'un stockage par bloc, sont contenu ne sera donc pas disponible via un chemin d'accès présent sur le système.
LVM alloue normalement des blocs lorsque vous créez un volume. Les pools LVM-THIN allouent plutôt des blocs lorsqu'ils sont écrits. Ce comportement s'appelle le «thin-provisioning», car les volumes peuvent être beaucoup plus volumineux que l'espace physiquement disponible.
Ce type de stockage correspond a un LV présent sur le système.
Les images disques qu'il contient, lorsqu'il y en a de créer, sont vu comme des LVs par le système.
root@px1:~# lvdisplay ... --- Logical volume --- LV Name data VG Name pve LV UUID ke10go-u1wr-zoBM-uizH-kgN2-WjLJ-H1jccq LV Write Access read/write LV Creation host, time proxmox, 2018-08-10 19:24:29 +0200 LV Pool metadata data_tmeta LV Pool data data_tdata LV Status available # open 3 LV Size 25.37 GiB Allocated pool data 2.89% Allocated metadata 0.05% Current LE 6495 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4 --- Logical volume --- LV Path /dev/pve/vm-100-disk-1 LV Name vm-100-disk-1 VG Name pve LV UUID d13bdJ-JzJp-hK5t-7lRa-4vSP-UUVR-n3iyAK LV Write Access read/write LV Creation host, time px1, 2018-08-25 21:41:05 +0200 LV Pool name data LV Status available # open 0 LV Size 8.00 GiB Mapped size 9.18% Current LE 2048 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:6 --- Logical volume --- LV Path /dev/pve/vm-101-disk-1 LV Name vm-101-disk-1 VG Name pve LV UUID 8qA6eA-NIHH-NnNN-WIte-RlSm-nwEF-DrhzZG LV Write Access read/write LV Creation host, time px1, 2018-08-25 21:43:34 +0200 LV Pool name data LV Status available # open 0 LV Size 10.00 GiB Mapped size 0.00% Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:7
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. Il est possible de faire des snapshots et des clones.
Attention:
Il n'est pas possible de partager ce stockage.
Important:
Ce type de stockage utilisant un LV et dans le cas où l'installation se ferait sur un cluster, il faudra créer le même LV avec les mêmes propriétés 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/sdb3.
Créer le PV et le VG, que nous allons nommer “vglocalthin”.
root@px1:~# pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created. root@px1:~# vgcreate vglocalthin /dev/sdb3 Volume group "vglocalthin" successfully created
Créer ensuite le LV de nom “lvlocalthin” de 7Go, le reste étant destiné aux metadatas.
root@px1:~# lvcreate -L 7G -n lvlocalthin vglocalthin Logical volume "lvlocalthin" created. root@px1:~# lvconvert --type thin-pool vglocalthin/lvlocalthin WARNING: Converting logical volume vglocalthin/lvlocalthin to thin pool's data volume with metadata wiping. THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.) Do you really want to convert vglocalthin/lvlocalthin? [y/n]: y Converted vglocalthin/lvlocalthin to thin pool.
Du point de vue de l'hyperviseur, celui-ci est juste un LV du système. Il n'est pas encore utilisable.
Ajout
Il ne reste plus qu'à déclarer à Proxmox que ce LV est un nouveau stockage utilisable pour le cluster.
Pour cela, nous allons utiliser la commande:
pvesh create
Les options que nous utiliserons sont:
- storage: Le nom de notre stockage (ici “lvmthin-volume”).
- type: Le type de stockage que nous souhaitons utiliser (ici “lvmthin” pour LVM-THIN).
- content: Pour le type de contenu autorisé a utiliser ce stockage, ici les images disque de VM et Conteneurs.
- vgname: Le nom du VG (ici “vglocalthin”).
- thinpool: Le nom du LV Thin (ici “lvlocalthin”).
root@px1:~# pvesh create /storage -storage=lvmthin-volume -type=lvmthin -content=images,rootdir -vgname=vglocalthin -thinpool=lvlocalthin 200 OK
Vous pouvez voir que notre nouveau stockage a bien été ajouté avec la commande:
pvesh get /storage/<nom-du-volume>
root@px3:~# pvesh get /storage/lvmthin-volume 200 OK { "content" : "rootdir,images", "digest" : "0a12d4b44fcd41a7ffda9a7deac069db199122b6", "storage" : "lvmthin-volume", "thinpool" : "lvlocalthin", "type" : "lvmthin", "vgname" : "vglocalthin" }
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 de stocker que 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 images disque de VM.
Pour cela, nous allons utiliser la commande:
pvesh set
Note:
Pour rajouter 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 modifier les types de contenu autorisé dans notre stockage:
root@px1:~# pvesh set /storage/lvmthin-volume -content=images 200 OK
Comme vous pouvez le constater, la modification s'est bien déroulé:
root@px3:~# pvesh get /storage/lvmthin-volume 200 OK { "content" : "images", "digest" : "c4536281fa415f9ab4fb739ccafbb7d1e2f910c1", "storage" : "lvmthin-volume", "thinpool" : "lvlocalthin", "type" : "lvmthin", "vgname" : "vglocalthin" }
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/lvmthin-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/lvmthin-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-THIN”).
Une nouvelle fenêtre apparaît, reportez-vous aux propriétés communes pour plus d'informations.
Remplissez les champs ID, Volume group, Thin Pool et Content:
- ID: Correspond au nom que vous souhaitez donner a ce stockage.
- Volume group: Correspond au nom du VG du stockage.
- Thin Pool: Correspond au nom du LV Thin du stockage.
- Content: Correspond au contenu que vous souhaitez autoriser sur ce stockage, ici 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 conteneur soit disponible sur ce stockage.
Cliquez sur “Container” pour désactiver ce type de contenu du stockage.
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)
