Citrix XenServer - Pools et haute disponibilité (HA)

Page 2 / 5

4. Synchroniser la date/heure de vos serveurs via NTP

Comme indiqué précédemment, pour créer un pool de serveurs, il est important que ceux-ci possèdent exactement la même date/heure.
Pour cela, il suffit de synchroniser leur horloge avec un serveur de temps (NTP).

Sur vos serveurs XenServer, allez dans Network and Management Interface.

Puis, Network Time (NTP).
Notez que, par défaut, XenServer possède des serveurs NTP : x.xenserver.pool.ntp.org.

Connectez-vous avec le compte root, si le serveur vous le demande.

Cliquez sur "Remove All NTP Servers" pour supprimer ceux par défaut.

Les serveurs NTP ont été retirés.

Maintenant, sélectionnez "Add an NTP Server".

Et indiquez le nom de domaine ou l'adresse IP d'un serveur NTP.
Si vous avez un serveur Active Directory sur votre réseau interne, vous pouvez indiquer son adresse IP ici (c'est ce que nous avons fait).
Sinon, il existe aussi le serveur NTP de Microsoft avec lequel les ordinateurs sous Windows sont synchronisés : "time.windows.com" ou son IP "40.118.103.7".

Le serveur NTP a été ajouté.

Pour finir, sélectionnez "Enable NTP Time Synchronization".

La synchronisation de la date/heure de votre serveur XenServer avec le serveur de temps souhaité à été activée.

Comme vous pouvez le voir :

  • la synchronisation de la date/heure est activée (NTP is enabled)
  • et le serveur NTP ajouté est : 10.0.0.100

5. Créer un pool homogène de serveurs (même matériel)

Pour créer un pool homogène de serveurs XenServer, il faut en plus respecter cette règle :
- obligation d'utiliser le même modèle de processeur sur tous les serveurs qui feront partie du pool. (excepté si vous voulez créer un pool hétérogène)

Dans notre cas, nous allons utiliser 2 serveurs XenServer en version 6.5.0 avec le même matériel, comme indiqué précédemment.
Comme vous pouvez le voir sur les 2 images ci-dessous, xenserver-1 et xenserver-2 possèdent le même processeur "Intel i5-4460".

Pour créer ce pool homogène, ouvrez XenCenter et allez dans : Pool -> New Pool.
Puis, sélectionnez le serveur qui sera le serveur maître (master) du pool et choisissez les serveurs à y ajouter aussi.
Note : Si le matériel de vos serveurs est identique ou qu'ils utilisent au moins le même modèle de processeur, vous serez en mesure de créer un pool de serveurs avec ceux-ci.

Maintenant, XenCenter se reconnectera automatiquement au serveur maître (master) du pool et affichera vos serveurs sous le noeud [nom de votre pool].

6. Créer un pool hétérogène (matériel différent)

Lorsque vous voulez créer un pool de serveurs avec des serveurs possédant un matériel différent (ou au moins un CPU différent), vous devrez créer un pool hétérogène.
Pour ce tutoriel, nous avons donc aussi installé XenServer sur une machine possédant un processeur légèrement différent que nous avons appelé : xenserver-3.

Pour le moment, le serveur 3 se trouve en dehors du pool et il ne pourra pas y entrer pour le moment.
En effet, comme vous pouvez le voir, le serveur 1 possède un processeur "Intel i5-4460".

Et le serveur 3 possède un processeur Intel i5-2400.

Donc, si vous tentez de l'ajouter dans votre pool, XenCenter affichera le message d'erreur "This server's hardware is incompatible with the master's".
Ce qui signifie que le matériel du serveur 3 (ou en réalité : son processeur) n'est pas compatible avec celui du serveur maître du pool.

Pour résoudre ce problème de compatibilité, vous devrez masquer certaines fonctionnalités du processeur de certains serveurs (ceux du pool ou celui à ajouter dans le pool) pour qu'ils paraissent les mêmes.
Pour effectuer cette opération, vous devrez sortir vos serveurs du pool, car lorsque vous modifierez les fonctionnalités du processeur d'un des serveurs du pool, le serveur concerné devra peut-être incompatible avec ceux qui y sont aussi.

Donc, commencez par sortir vos serveurs du pool, si vous en avez déjà créé un.
Pour cela, sélectionnez chaque serveur un à un et cliquez sur "Pool -> Remove Server".
Conseil : terminez par le serveur maître.

Attention : lorsque vous sortez un serveur XenServer d'un pool de serveur, ses stockages locaux seront définitivement supprimés et réinitialisés.
Donc, vérifiez que ceux-ci ne contiennent aucune donnée avant de les sortir du pool.
De plus, sortir un serveur d'un pool de serveur provoquera un redémarrage automatique du serveur XenServer concerné.

Pour terminer, transformez le dernier serveur (le serveur maître de préférence) en serveur indépendant.
Ce qui fera disparaitre le pool.
Pour cela, cliquez sur "Pool -> Make into standalone server".

Note : ce serveur ne sera pas redémarré automatiquement.

Maintenant, si vous tentez de créer un pool avec vos 3 serveurs, cela ne fonctionnera pas non plus pour la même raison.

Pour régler le problème d'incompatibilité, utilisez les commandes :

  • xe host-cpu-info : affiche les informations techniques concernant le serveur XenServer où vous exécutez cette commande.
  • xe host-list : affiche l'identifiant (uuid), le nom (name-label) et la description (name-description) du serveur XenServer où vous exécutez cette commande.

Les valeurs qui nous intéressent sont :

  • features : qui permet de connaitre les fonctionnalités du processeur (CPU) de votre serveur, et ensuite de trouver quel masque utiliser pour rendre vos serveurs compatibles entre eux.
  • uuid : qui est l'identifiant de votre serveur XenServer dont vous aurez besoin plus tard pour modifier le masque de votre serveur XenServer.

Exécutez les commandes sur tous les serveurs qui devront faire partie du pool.

Résultat pour notre serveur 1 :

Bash

[root@xenserver-1 ~]# xe host-cpu-info
cpu_count: 2
socket_count: 1
vendor: GenuineIntel
speed: 3197.518
modelname: Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
family: 6
model: 60
stepping: 3
flags: fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc nopl nonstop_tsc pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes f16c rdrand hypervisor lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase bmi1 avx2 bmi2
features: f7fa3223-1fabfbff-00000021-2c100800
features_after_reboot: f7fa3223-1fabfbff-00000021-2c100800
physical_features: f7fa3223-1fabfbff-00000021-2c100800
maskable: full

[root@xenserver-1 ~]# xe host-list
uuid ( RO): 5438c96e-8d48-47c9-b290-a360fdf0cad7
name-label ( RW): xenserver-1
name-description ( RW): Default install of XenServer

Résultat pour notre serveur 2 :

Bash

[root@xenserver-2 ~]# xe host-cpu-info
cpu_count: 2
socket_count: 1
vendor: GenuineIntel
speed: 3197.552
modelname: Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz
family: 6
model: 60
stepping: 3
flags: fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc nopl nonstop_tsc pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes f16c rdrand hypervisor lahf_lm abm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase bmi1 avx2 bmi2
features: f7fa3223-1fabfbff-00000021-2c100800
features_after_reboot: f7fa3223-1fabfbff-00000021-2c100800
physical_features: f7fa3223-1fabfbff-00000021-2c100800
maskable: full

[root@xenserver-2 ~]# xe host-list
uuid ( RO): cb30e6d6-1e72-48c6-9533-3910b351a6d5
name-label ( RW): xenserver-2
name-description ( RW): Default install of XenServer

Résultat pour notre serveur 3 :

Bash

[root@xenserver-3 ~]# xe host-cpu-info
cpu_count: 2
socket_count: 1
vendor: GenuineIntel
speed: 3299.076
modelname: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
family: 6
model: 42
stepping: 7
flags: fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc nopl nonstop_tsc pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid
features: 97ba2223-1fabfbff-00000001-28100800
features_after_reboot: 97ba2223-1fabfbff-00000001-28100800
physical_features: 97ba2223-1fabfbff-00000001-28100800
maskable: full

[root@xenserver-3 ~]# xe host-list
uuid ( RO): 3f2f2490-60cc-4efb-829f-dd57da0a1bf9
name-label ( RW): xenserver-3
name-description ( RW): Default install of XenServer

Grâce à ces informations, vous pouvez remarquer que dans notre cas, le processeur des serveurs 1 et 2 est identique, donc la ligne "features" affichée via la commande "xe host-cpu-info" est la même pour ces 2 serveurs.
Mais, le serveur 3 possède un processeur légèrement différent de celui des autres serveurs.
Il fait partie de la même gamme, mais il est un peu plus ancien : "i5-2400" au lieu du "i5-4460".

 

Pour régler le problème, on compare les lignes "features" des différents CPU de nos serveurs.
Et on regarde surtout le début de la valeur.

Serveur 1 et 2 :

Plain Text

features: f7fa3223-1fabfbff-00000021-2c100800

Serveur 3 :

Plain Text

features: 97ba2223-1fabfbff-00000001-28100800

 

En hexadécimal, 97ba2223 est plus petit que f7fa3223
Donc, vous devrez utiliser les fonctionnalités (features) 97.... pour tous les serveurs du pool.
Cela veut aussi dire que XenServer pourra utiliser notre nouveau processeur, comme si il s'agissait d'une ancienne version de notre Intel i5. (Mais, c'est peut-être une simple coïncidence).

Bref, pour régler le problème de compatibilité, il faut donc utiliser la commande "xe host-set-cpu-features" sur les serveurs ayant une ligne "features" différente de "97....".
Dans notre cas, nous allons taper cette commande sur nos serveurs 1 et 2 pour les rendre compatibles avec le serveur 3.

Pour le serveur 1 :

Bash

xe host-set-cpu-features features=97ba2223-1fabfbff-00000001-28100800 uuid=5438c96e-8d48-47c9-b290-a360fdf0cad7

Pour le 2 :

Bash

xe host-set-cpu-features features=97ba2223-1fabfbff-00000001-28100800 uuid=cb30e6d6-1e72-48c6-9533-3910b351a6d5

 

Si vous tapez à nouveau la commande "xe host-cpu-info", vous constaterez un changement.

Pour les serveurs 1 et 2 :

Plain Text

features_after_reboot: 97ba2223-1fabfbff-00000001-28100800
...
features: f7fa3223-1fabfbff-00000021-2c100800
physical_features: f7fa3223-1fabfbff-00000021-2c100800

 

Redémarrez ces 2 serveurs.

Maintenant, si vous tapez à nouveau la commande "xe host-cpu-info" sur tous vos serveurs à joindre au pool, vous verrez qu'ils utiliseront les mêmes fonctionnalités CPU.
Donc, ils seront compatibles entre eux et XenServer vous autorisera à les mettre dans le même pool.

Serveurs 1 et 2 :

Plain Text

features: 97ba2223-1fabfbff-00000001-28100800
features_after_reboot: 97ba2223-1fabfbff-00000001-28100800
physical_features: f7fa3223-1fabfbff-00000021-2c100800

Serveur 3 :

Plain Text

features: 97ba2223-1fabfbff-00000001-28100800
features_after_reboot: 97ba2223-1fabfbff-00000001-28100800
physical_features: 97ba2223-1fabfbff-00000001-28100800

 

Maintenant, comme les processeurs de vos serveurs XenServer utiliseront les mêmes fonctionnalités, vous pourrez créer le pool via XenCenter.
Pour cela, cliquez sur "Pool -> New Pool".
Comme vous pouvez le voir, il n'y a plus de message d'erreurs et vous pouvez donc les mettre tous dans le même pool de serveurs.

Voilà votre pool avec 3 serveurs, dont un utilisant un CPU différent des 2 autres.
Et la haute disponibilité (HA) pourra aussi être activée (comme si il s'agissait d'un pool homogène).
Mais, vous verrez ça dans la suite du tutoriel.

Plus tard, si vous souhaitez remettre les fonctionnalités normales de vos CPUs, il suffira d'utiliser la commande "xe host-reset-cpu-features" sur les serveurs concernés.
Puis de les redémarrer.

Avant le redémarrage, si vous utilisez à nouveau la commande "xe host-cpu-info", celle-ci vous affichera le changement inverse.

Plain Text

features_after_reboot: f7fa3223-1fabfbff-00000021-2c100800
features: 97ba2223-1fabfbff-00000001-28100800
physical_features: f7fa3223-1fabfbff-00000021-2c100800