Introduction

Dans le but de découpler et isoler les services sans se ruiner, la virtualisation des machines est lourdement utilisé au ResEl. Quasiment tous les serveurs et services sont virtualisés.

L'hypervision permet, par design, de gérer facilement les machines sans avoir de conflit entre les différents services. Elle a aussi l'avantage de permettre des migrations rapides de services d'une machine vers une autre, permettant par exemple, la mise en place de redondance.

Infrastructure

La stack d'hypervision au ResEl est entièrement gérée à l'aide de Proxmox. Il s'agit d'une solution complète de virtualisation basée sur KVM, qui permet d'administrer facilement les serveurs et propose tout ce dont on a besoin : haute disponibilité, stockage sur le SAN en iSCSI.

Le ResEl possède actuellement 3 groupes d'hyperviseurs, 1 au I11 à Brest qui est l'hyperviseur principal, 1 au I1 à Brest qui est de secours et 1 à Rennes pour les services rennais.

Attention : Même si toutes les informations ici ne sont pas forcément importantes pour la tâche que vous allez exécuter, il est important de tout lire et d'aller voir vers les liens donnés avant d'entreprendre la moindre action sur les hyperviseurs. Trop souvent cette année (2016) nous nous sommes retrouvés avec des problèmes car la compréhension des hyperviseurs était limitée.

Utilisation

Proxmox pousse une interface web, authentification via le compte ResEl Admin, qui permet de configurer et d'intéragir simplement avec les VM.

Selon le pool voulu, l'interface est différente :

Bug avec écran tactile et Firefox electrolysis

Actuellement, il existe un bug sur l'UI lorsqu'on utilise Firefox/electrolysis, (le mode multi-process) avec un ordinateur sur Linux et un écran tactile. Ce bug empêche d'utiliser l'interface de Proxmox avec la souris. Déplacer la souris sélectionne les boutons (:hover) mais le clique gauche n'actionne pas le bouton.

Il existe un workaround qui consiste à paramètrer dom.w3c_touch_events.enabled (dans about:config) à 0. On peut aussi utiliser les flèches directionnelles et la touche entrée.

Le bug vient du fait que ExtJS6 (utilisé par Proxmox) utilise une l'API dépréciée pour savoir le tactile est supporté, et Firefox le gère mal. Le problème est répertorié sur le bugtracker mozzila #1301327 et sur une issue chez Sencha.

Outils de ligne de commande utiles :

Commandes utiles sur un hyperviseur :

  • pve*
  • *_tools
  • clustat -I -l -s pvevm:<id_vm> `-x|
  • clusvcadm -M pvevm:<id_vm> -m <noeud_hyperv>
  • pvecm s (équivalent cman_tool status)
  • pvecm n (équivalent cman_tool nodes)
  • corosync-cfgtool
  • cman_tool
  • fence_tool
  • group_tool
  • css_tool
  • dlm_tool
  • rg_test rules
  • service pve-cluster status
  • service cman status
  • service rgmanager status
  • ovs-vsctl --timeout=5 -- --may-exist add-port vmbr1 pub tag=<vlan_num> -- set Interface pub type=internal
  • tail -f /var/log/cluster/*.log
  • watch -n 1 " service pve-cluster status; service cman status; service rgmanager status; echo; pvecm n; clustat; fence_tool ls"

Maintenance

En root :

  1. Migrer les VMs hors du noeud concerné
  2. Couper les services de clustering : service rgmanager stop, service cman stop
  3. export http_proxy=http://pegase.adm:3128/ (si la machine n'est pas autorisée à accéder au net)
  4. apt-get update
  5. apt-get dist-upgrade
  6. apt-get install
  7. reboot

Le noeud doit redémarrer et rejoindre le cluster sans problème.

Configuration

Proxmox

Intégration du LDAP

L'intégration du LDAP à proxmox est aujourd'hui minimale, il faut quand même ajouter les personnes au groupe administrators pour qu'ils puissent faire des choses utiles sur Proxmox. Celui-ci ne fait que la vérification du mot de passe. C'est un bug connu.

Configuration du LDAP :

Realm Base DN UID Attribute Default Server SSL Comment (nom au login)
admin.resel.fr ou=admins,dc=resel,dc=enst-bretagne,dc=fr uid oui ldap.adm.resel.fr non (TODO!) LDAP Admin
resel.fr ou=people,dc=maisel,dc=enst-bretagne,dc=fr uid non ldap.adm.resel.fr non (TODO!) LDAP Utilisateur

Voir : http://wiki.ucc.asn.au/Proxmox#Info_for_Administrators

Configuration diverses

La plus part des services du ResEl (backuppc, ntp, syslog, icinga, dns se configurent comme sur toutes les autres machines au ResEl. Je vous recommande d'aller voir pour ceci le guide d'installation d'un serveur

Configuration DNS

Pour éviter que le cluster tombe en cas de problème DNS il est recommandé d'ajouter les entrées statiques du cluster sur les noeuds. Modfifier le fichier /etc/host/ et mettre les entrées suivantes :

# Cluster
172.22.5.10 camille camille.sto
172.22.5.11 nikita nikita.sto
172.22.5.13 proxima proxima.sto

172.22.5.5 sanizator sanizator.sto

Configuration SSH

Il faut créer des comptes utilisateurs dédiés pour les administrateurs de l'hyperviseur (pas besoin de compte pour gérer simplement proxmox). Les droits root sont donnés par sudo (à installer). Attention cependant, les noeuds échangent entre eux en SSH (à priori avec le compte root), il faut faire attention à ne pas les bloquer en autorisant qu'un certain groupe à se connecter ou en refusant complètement une connexion root. L'option sshd PermitRootLogin without-password devrait fonctionner.

Lien utiles

Articles connexes

Ressources externes