tuto:virtualisation:cluster_dedibox

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tuto:virtualisation:cluster_dedibox [26/07/2013 20:12]
dani
tuto:virtualisation:cluster_dedibox [18/10/2013 18:02] (Version actuelle)
dani [Déclaration des pools de stockage libvirt]
Ligne 1: Ligne 1:
 ====== Cluster HA entre deux dedibox ====== ====== Cluster HA entre deux dedibox ======
  
-<note important>Cette page est en cours de rédaction, elle sert pour l'instant de prise de note, ne suivez pas ces instructions à moins de savoir exactement ce que vous faites</note> +<note>Sauf mention contraire, toutes les commandes sont à lancer sur les deux hyperviseurs. Seule la gestion de gluster peut se faire depuis un seul des deux</note>
- +
-<note>Sauf mention contraire, toutes les commandes sont à lancer sur les deux hyperviseurs. Seules la gestion de gluster peut se faire depuis un seul des deux</note>+
  
 ===== But ===== ===== But =====
Ligne 25: Ligne 23:
   * [[http://www.centos.org|CentOS]] 6 x86_64 (système hôte)   * [[http://www.centos.org|CentOS]] 6 x86_64 (système hôte)
   * [[http://libvirt.org|libvirt]] (API de gestion de la virtualisation)   * [[http://libvirt.org|libvirt]] (API de gestion de la virtualisation)
-  * [[http://wiki.qemu.org/|qemu]]-kvm-rhev (l'hyperviseur, version RHEV)+  * [[http://wiki.qemu.org/|qemu]]-kvm (l'hyperviseur)
   * [[http://virt-manager.org/|virt-manager]] (l'interface graphique de gestion des machines virtuelles)   * [[http://virt-manager.org/|virt-manager]] (l'interface graphique de gestion des machines virtuelles)
   * [[http://www.gluster.org/|GlusterFS]] (solution de stockage distribué)   * [[http://www.gluster.org/|GlusterFS]] (solution de stockage distribué)
Ligne 53: Ligne 51:
  
  
-La première étape est d'installer une CentOS 6 (6.4 étant la dernière version actuellement) en édition x86_64. CentOS n'étant plus supportée par l'installateur d'Online, il faut d'abord installer n'importe quel système (une debian par exemple), puis, une fois installé, on peut accéder à l'interface iLO (ou iDRAC selon la marque du serveur, iLO pour les IBM, iDRAC pour les Dell). On peut ensuite charger un applet java (oui, beurk, mais c'est toujours mieux que de l'activeX :-) ) pour prendre la main sur la console du serveur (une sorte de KVM sur IP) ainsi qu'un lecteur CD virtuel. Il faut simplement connecter une ISO netinstall de CentOS dans ce lecteur virtuel et redémarrer le serveur, qui va s'amorcer dessus. L'amorce peut prendre du temps selon la vitesse de votre connexion, puisque l'image netinstall sera streamée depuis votre poste.+La première étape est d'installer une CentOS 6 (6.4 étant la dernière version actuellement) en édition x86_64. CentOS n'étant plus supportée par l'installateur d'Online ((CentOS 6.4 est de nouveaux disponible maintenant, mais l'installation via le média virtuelle reste possible)), il faut d'abord installer n'importe quel système (une debian par exemple), puis, une fois installé, on peut accéder à l'interface iLO (ou iDRAC selon la marque du serveur, iLO pour les IBM, iDRAC pour les Dell). On peut ensuite charger un applet java (oui, beurk, mais c'est toujours mieux que de l'activeX :-) ) pour prendre la main sur la console du serveur (une sorte de KVM sur IP) ainsi qu'un lecteur CD virtuel. Il faut simplement connecter une ISO netinstall de CentOS dans ce lecteur virtuel et redémarrer le serveur, qui va s'amorcer dessus. L'amorce peut prendre du temps selon la vitesse de votre connexion, puisque l'image netinstall sera streamée depuis votre poste.
  
  
Ligne 65: Ligne 63:
       * l'IP privée (réseau RPN) de hyp2 est 10.25.9.47       * l'IP privée (réseau RPN) de hyp2 est 10.25.9.47
     * LVM a été utilisé pour gérer le partitionnement, et l'unique groupe de volumes (VG) se nomme **main**     * LVM a été utilisé pour gérer le partitionnement, et l'unique groupe de volumes (VG) se nomme **main**
- 
 ===== Désactivation des services ===== ===== Désactivation des services =====
  
Ligne 88: Ligne 85:
 <code bash> <code bash>
 echo "vm.swappiness=0" >> /etc/sysctl.conf echo "vm.swappiness=0" >> /etc/sysctl.conf
 +echo "vm.vfs_cache_pressure=10000" >> /etc/sysctl.conf
 echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
 sysctl -p sysctl -p
 </code> </code>
  
-Avec cette configuration, le swap ne devrait être utilisé que pour éviter un OOM (dans la pratique, il semble que le swap soit toujours un peu utilisé, même si moins qu'avant. La version 6.4 de CentOS semble utiliser beaucoup plus facilement le swap, esperont que ce comportement soit corrigé dans la 6.5) +Avec cette configuration, le swap ne devrait être utilisé que pour éviter un OOM (dans la pratique, il semble que le swap soit toujours un peu utilisé, même si moins qu'avant. La version 6.4 de CentOS semble utiliser beaucoup plus facilement le swap, espérons que ce comportement soit corrigé dans la 6.5)
 ===== Préparation de l'environnement ===== ===== Préparation de l'environnement =====
 Dans cette étape, nous allons, sur chacun des hyperviseurs, créer quelques fichiers texte simples, qui contiennent des variables. Ça simplifiera la suite Dans cette étape, nous allons, sur chacun des hyperviseurs, créer quelques fichiers texte simples, qui contiennent des variables. Ça simplifiera la suite
Ligne 144: Ligne 141:
 <code bash> <code bash>
 wget -P /etc/yum.repos.d/ \ wget -P /etc/yum.repos.d/ \
-  http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.2/RHEL/glusterfs-epel.repo+  http://download.gluster.org/pub/gluster/glusterfs/3.4/LATEST/RHEL/glusterfs-epel.repo
 </code> </code>
  
-<note tip>La version 3.4 apporte des performances en hausses (et pas qu'un peu, sur mes tests, ça double les vitesses d'écriture dans les invités). Malheureusement, il présente quelques problème de fiabilité pour l'instant (les volumes GlusterFS ne redémarrent pas après un redémarrage de l'hôte, obligé de lancer gluster volume start vmstore force etc...). En attendant que ça se stabilise, peut-être avec la 3.4.1, on reste sur la série 3.3, plus mature</note> 
 ===== Installation des outils de virtualisation ===== ===== Installation des outils de virtualisation =====
  
Ligne 175: Ligne 171:
 KSM_SLEEP_MSEC=5 KSM_SLEEP_MSEC=5
 KSM_NPAGES_BOOST=600 KSM_NPAGES_BOOST=600
-KSM_NPAGES_DECAY=-100+KSM_NPAGES_DECAY=-200
 KSM_NPAGES_MIN=64 KSM_NPAGES_MIN=64
 KSM_NPAGES_MAX=4094 KSM_NPAGES_MAX=4094
-KSM_THRES_COEF=30 +KSM_THRES_COEF=45 
-KSM_THRES_CONST=6144+KSM_THRES_CONST=9144
 LOGFILE=/var/log/ksmtuned.log LOGFILE=/var/log/ksmtuned.log
 DEBUG=1 DEBUG=1
Ligne 199: Ligne 195:
  
 <note>vous pouvez ajuster la configuration de ksmtuned, regardez le fichier /etc/ksmtuned.conf.default pour avoir une explication sur les différents paramètres</note> <note>vous pouvez ajuster la configuration de ksmtuned, regardez le fichier /etc/ksmtuned.conf.default pour avoir une explication sur les différents paramètres</note>
- 
 ==== Configuration de base de libvirt ==== ==== Configuration de base de libvirt ====
  
Ligne 450: Ligne 445:
 gluster volume set sanlock nfs.disable on gluster volume set sanlock nfs.disable on
 gluster volume set sanlock network.ping-timeout 5 gluster volume set sanlock network.ping-timeout 5
-gluster volume set sanlock network.frame-timeout 300+gluster volume set sanlock network.frame-timeout 10
 </code> </code>
  
Ligne 553: Ligne 548:
 </code> </code>
  
-On va aussi créer un second pool pour le stockage des images des VM. Vous pouvez créer autant de pool que nécessaire, par exemple, un pool (aka répertoire dans le volume Gluster) par client par exemple+On va aussi créer un second pool pour le stockage des images des VM. Vous pouvez créer autant de pool que nécessaire, par exemple, un pool (aka répertoire dans le volume Gluster) par client
  
 <code bash> <code bash>
Ligne 1265: Ligne 1260:
 </code> </code>
  
-TODO: si ce script fonctionne très bien en exécution manuelle, il ne contact pas l'hyperviseur distant pendant un arrêt (il est pourtant appelé au tout début de la phase d'arrêt) et se contente de mettre les VM en pause. Elles peuvent être réveillées immédiatement sur le second, mais ça demande une intervention manuelle, et c'est justement pas le but :-/+<note important>si ce script fonctionne très bien en exécution manuelle, il ne contact pas l'hyperviseur distant pendant un arrêt (il est pourtant appelé au tout début de la phase d'arrêt) et se contente de mettre les VM en pause. Elles peuvent être réveillées immédiatement sur le second, mais ça demande une intervention manuelle, et c'est justement pas le but :-/ Si quelqu'un à une idée, je suis preneur</note>
  
 ====== Créer un invité ====== ====== Créer un invité ======
Ligne 1297: Ligne 1292:
   * Installez les composants glusterfs   * Installez les composants glusterfs
   * Récupérez l'UUID de l'hôte qui vient d'être réinstallé (cet UUID peut se récupérer sur le serveur encore fonctionnel dans le répertoire /var/lib/glusterd/peers<uuid>   * Récupérez l'UUID de l'hôte qui vient d'être réinstallé (cet UUID peut se récupérer sur le serveur encore fonctionnel dans le répertoire /var/lib/glusterd/peers<uuid>
-  * Restorez cet UUID sur le novueau serveur dans le fichier /var/lib/glusterd/glusterd.info. Ce fichier doit ressembler à quelques chose comme ça:+  * Restaurez cet UUID sur le nouveau serveur dans le fichier /var/lib/glusterd/glusterd.info. Ce fichier doit ressembler à quelques chose comme ça:
 <file ini glusterd.info> <file ini glusterd.info>
 UUID=34de250b-fba2-462f-8f68-e19cdee31111 UUID=34de250b-fba2-462f-8f68-e19cdee31111
Ligne 1329: Ligne 1324:
   * <todo #>Mesure perf GlusterFS sur du Gigabit</todo>   * <todo #>Mesure perf GlusterFS sur du Gigabit</todo>
   * <todo>Migrer automatiquement les VM vers l'autre hyperviseur pendant l'arrêt ?</todo>   * <todo>Migrer automatiquement les VM vers l'autre hyperviseur pendant l'arrêt ?</todo>
-  * <todo>Solution de sauvegardes à chaud des VM</todo>+  * <todo #>Solution de sauvegardes à chaud des VM</todo>
   * <todo #>Scripts d'ajout des interfaces OpenVPN tab au bridge correspondant</todo>   * <todo #>Scripts d'ajout des interfaces OpenVPN tab au bridge correspondant</todo>
   * <todo #>Script d'ajout de nouveau réseau privé</todo>   * <todo #>Script d'ajout de nouveau réseau privé</todo>
  • tuto/virtualisation/cluster_dedibox.1374862353.txt.gz
  • Dernière modification: 26/07/2013 20:12
  • de dani