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.
- Informations sur le pool principal à Brest
- Informations sur le pool secondaire à Brest
- Informations sur le pool de Rennes
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
(équivalentcman_tool status
) -
pvecm n
(équivalentcman_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 :
- Migrer les VMs hors du noeud concerné
- Couper les services de clustering : service rgmanager stop, service cman stop
- export http_proxy=http://pegase.adm:3128/ (si la machine n'est pas autorisée à accéder au net)
apt-get update
apt-get dist-upgrade
-
apt-get install
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
- Informations sur le pool principal à Brest
- Informations sur le pool secondaire à Brest
- Informations sur le pool de Rennes