Créer un Cluster Windows avec VMWare

Les ordinateurs qui utilisent un système d’exploitation Windows Server peuvent mettre plusieurs machines en grappe pour distribuer les ressources ou créer de la redondance dans les systèmes. Par exemple, un serveur web peut être mis sur deux machines qui se partagent la charge.

Pour créer un tel système physiquement, il faut deux cartes réseaux et un système de disques partagés qui sont souvent reliés par fibre optique. Pour les cartes réseaux, une est connectée sur l’Internet et l’autre sur un réseau privé entre les membres du cluster. Le but de la connexion locale est de faire un « heartbeat » pour que les ordinateurs sachent lesquels sont allumés et fonctionnels.

Pour configurer deux machines à utiliser un même disque sur des machines virtuelles VMWare, il faut éditer à la main les fichiers de configuration. Voici donc comment configurer un cluster avec VMWare. Le côté sur Windows étant le même en vrai qu’en virtuel, ce bout n’est pas inclus.

Le réseau
Avec l’interface de VMWare server, il suffit d’ajouter deux cartes réseaux :

  • Une « bridge » qui accédera à Internet
  • Une « custom » qui peut être mise par exemple sur « VMnet2 » pour le heartbeat privé

Les disques partagés
Avec l’interface graphique de VMWare, il faut créer un disque ou en prendre un déjà existant et le cocher « indépendant » (qui est dans les options avancées). C’est à faire pour les deux machines séparément.

Par la suite, lorsque la machine est fermée, il faut éditer manuellement le fichier .VMX des machines qui utilisent ce disque. Il faut ajouter les lignes suivantes :

diskLib.dataCacheMaxSize = « 0 »
diskLib.dataCacheMaxReadAheadSize = « 0 »
diskLib.dataCacheMinReadAheadSize = « 0 »
diskLib.dataCachePageSize = « 4096 »
diskLib.maxUnsyncedWrites = « 0 »
disk.locking = « FALSE »

scsi1.present = « TRUE »
scsi1.virtualDev = « lsilogic »
scsi1.sharedBus = « virtua »

Ensuite, il faut modifier les lignes pour chacun des disques pour qu’elles ressemblent à ceci :

scsi1:1.present = « TRUE »
scsi1:1.fileName = « C:\Virtual Machines\Cluster Disks\quorum.vmdk »
scsi1:1.deviceType = « disk »
scsi1:1.virtualDev = « lsilogic »
scsi1:1.redo = «  »
scsi1:1.mode = « independent-persistent »

N’oubliez pas d’ajuster les nombre pour « scsi1 :1 » selon le nombre déjà écrit dans le fichier.

Le principe derrière les disques partagés
Les 5 premières lignes servent à faire en sorte que les données ne soient pas perdues dans le cache durant un failover à un autre node.
La ligne suivante, « disk.locking =  FALSE  », permet à plusieurs machines virtuelles d’être démarrées en même temps avec les mêmes disques.

Les trois lignes pour le « scsi1 » servent à créer un bus virtuel qui est partagé entre les différentes machines. C’est ce qui permet de faire croire à Windows que les disques sont des disques sur fibre optique.

Pour terminer, la ligne :
scsi1:1.virtualDev = « lsilogic »
fait en sorte que le bus virtuel soit utilisé pour ce disque en particulier. Chacun des disques doit donc avoir ces lignes avec le bon numéro de port SCSI.