Table des matières

Ceph

Mise en place d'un cluster

Cette méthodologie décrie la mise en place d'un cluster composé de trois serveurs.

Schéma réseau

Schéma réseau

Schéma du cluster Ceph

Schéma cluster Ceph

Pré-requis

Installation de Ceph

L'ID des OSD (ceph-X = osd.X) dépend du serveur installé. Ce référer au schéma du cluster Ceph.

Configuration de Ceph

Remarque : Le fsid peut-être généré avec la commande uuidgen (paquet Debian uuid-runtime).

Configuration des monitors

Configuration des OSD

Gestion des volumes Ceph

Lister les volumes d'un pool

rbd list --pool=[pool]

Avec :

Afficher les détails d'un volume

rbd info [pool]/[volume]

Avec :

Supprimer un volume

rbd rm [pool]/[volume]

Avec :

Agrandir un volume utilisé comme disque d'une machine virtuelle

Sans arrêter la VM

Utiliser la commande virsh suivante :

virsh blockresize --domain [mavm] --path "[volume]" --size [newsize]

Avec :

La modification est normalement propagé jusqu'au système d'exploitation de la VM. Il faut ensuite faire en sorte que la VM utilise ce nouvelle espace. Par exemple, si le volume est utilisé directement comme un volume physique LVM, vous pouvez suivre la procédure décrite ici.

Avec arrêt de la VM

Réduire un volume utilisé comme un disque d'une machine virtuelle

Cette procédure étant potentiellement risqué, vous pouvez par précaution effectuer maintenant un snapshot du volume de la VM. Si la procédure ne se déroule pas correctement, pour pourrez toujours revenir en arrière et sinon vous pourrez la supprimer.

Créer un snapshot d'un volume

rbd snap create [pool]/[volume]@[snap]

Avec :

Lister les snapshot d'un volume

rbd snap list [pool]/[nom-vm]

Avec :

Remettre un volume à l'état d'un snapshot précédent

Cette opération consite a écraser toutes les modifications faites depuis un snapshot. Cette modification est irréversible. Il est cependant possible de faire un nouveau snapshot avant la restauration afin de pouvoir revenir à l'état précédent si nécessaire.

rbd snap rollback [pool]/[volume]@[snap]

Avec :

Cette opération peut prendre pas mal de temps. Cette durée augmente en fonction de la taille du snapshot et de la quantité de modifications faitent depuis la création du snapshot.

Supprimer un snapshot d'un volume

rbd snap rm [pool]/[volume]@[snap]

Avec :

Utilisation du cluster Ceph dans Libvirt

Installation de libvirt

Configuration de libvirt pour utiliser le cluster Ceph

A faire sur ceph1 :

Le nombre 200 utilisé lors de la création du pool libvirt correspond aux nombres de Placement Group calculé selon la méthode officielle expliqué ici.

On peut désormais utiliser un volume ceph en tant que disque d'une machine virtuelle. Pour cela, voila un exemple de configuration d'un disque ceph d'une machine virtuelle :

    <disk type='network' device='disk'>
      <driver name='qemu' cache='none'/>
      <auth username='libvirt'>
        <secret type='ceph' uuid='9b*******************************27e'/>
      </auth>
      <source protocol='rbd' name='libvirt/[nom volume]'>
        <host name='192.168.0.1' port='6789'/>
        <host name='192.168.0.2' port='6789'/>
        <host name='192.168.0.3' port='6789'/>
      </source>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
Pour attacher un disque ceph à une VM en cours d'exectution, créé un fichier xml contenant juste la déclaration du disque (juste la balise <disk/>) et ajouter le disque ensuite avec la commande suivante :
virsh attach-device [nom-vm] [/chemin/fichier.xml] --persistent

L'option –persitent permet que ce disque soit systématiquement attaché à la VM au moment de son démarrage.

Supervision de Ceph avec Nagios

On va mette ici en place trois checks différent :

Mise en place :

La supervision de l'état du cluster peut normalement être fait sur un seul des nœuds du cluster. Vous pouvez par exemple configurer une VIP (avec pacemaker par exemple) sur le cluster pour faire la supervision sur celle-ci uniquement.