KVM, acte III : Le stockage

san

Suite de la série d’articles sur KVM :

  1. Présentation et installation
  2. Manipulation des VMs
  3. Gestion du stockage
  4. Gestion du réseau
  5. Jongler avec ses VMs comme le manchot du logo

 

Aujourd’hui on parle du stockage :

 

Les pools

 

Les pools sont des espaces de stockage accessibles par KVM (idéalement en réseau mais pas obligatoirement).

Les types de stockage les plus courants sont :

  • Système de fichier de l’hôte (ext4 ou autre)
  • LVM (particulièrement bien géré avec KVM)
  • NFS : système de fichier réseau du monde *n*x
  • iSCSI : Utilisé sur les serveurs de stockage (SAN). C’est le plus adapté mais aussi le plus coûteux.

 

Pools en système de fichier

 

En admettant que vous avez créé un dossier /data/vms avec beaucoup d’espace libre :

# Création du pool, démarrage, démarrage automatique 
virsh pool-define-as  dir --target /data/vms
virsh pool-start 
virsh pool-autostart 

 

Pools en NFS

 

Vous devez d’abord disposer d’un montage NFS (admettons sur /nfs/vms)

# Création du pool, démarrage, démarrage auto
virsh pool-define-as  nfs --target /nfs/vms
virsh pool-start 
virsh pool-autostart 

 

Pools LVM

 

Pour faire vite, LVM est un système de gestion des partitions très souple. D’autres que moi l’ont déjà bien expliqué.

En admettant que ayez une partition /dev/sda2 de libre sur l’hyperviseur :

# Création d'un volume physique puis d'un groupe de volumes
pvcreate /dev/sda2
vgcreate  /dev/sda2
# Création d'un Pool, démarrage et démarrage automatique
virsh pool-define-as  logical --source-name  --target /dev/ --source-format lvm2
virsh pool-start 
virsh pool-autostart 

 

Pools iSCSI

 

Pour créer un pool iSCSI, il vous faut un serveur iSCSI (un SAN) et il vous faut connaître l’IQN (le nom de la cible iSCSI).

iscsiadm est le client iSCSI sous Linux.

# Recherche de cible à partir de l'adresse du serveur iscsi
iscsiadm -m discovery -t sendtargets -p 
# Création du pool, démarrage, démarrage auto
pool-define-as  iscsi --target /dev/disk/by-path --source-host  --source-dev 
virsh pool-start 
virsh pool-autostart 

 

Les volumes

 

Les volumes sont les disques virtuels qu’on va affecter plus tard aux VMs.

Deux formats sont vraiment natifs chez KVM : QCow2 vs raw

Row : Un volume de type données brutes. Si vous créez un volume de 80Go, il utilise 80Go d’espace. Impossible de faire des snapshots (on peut utiliser les snapshots LVM si ont a LVM).

QCow : Excellent. Permet les snapshots et ne réserve que l’espace disque réellement utilisé. Utilise la technique très performante du copy on write.

 

Opérations basiques :

 

Créer un volume :

vol-create-as    --format qcow2

Cloner un volume :

vol-clone --pool   

Etendre un volume (en filesystem puis en LVM) :

vol-resize  --pool VMs 2G
lvextend /dev// -L+1G

Cloner un volume d’un pool à un autre :

Il faut télécharger le volume d’un pool en local puis uploader le fichier local sur l’autre volume :

vol-download --pool   
vol-create-as    --format qcow2
vol-upload --pool   

Sur le même sujet :