Search This Blog

vendredi 10 juillet 2015

Quorum - Cloud Witness - Cluster Hyper-V avec Windows Server 2016

Bonjour à tous,

Nous allons voir aujourd’hui la mise en place d’un cluster Hyper-V sous Windows Server Technical Preview2 (Windows Server 2016) , et la configuration d’un Quorum Witness dans Azure.

Important :
Vous n’avez pas besoin de mettre en place un VPN site à site entre votre Datacenter et Azure pour réaliser cette opération, juste une connexion internet sur le cluster suffit.


Voici le schéma de mon infrastructure :



Les éléments de mon infra sont: 

  1. -          Deux nœuds sous Windows Server TP2
  2. -          Un contrôleur de domaine (on ne le voit pas sur le schéma)
  3. -          Un serveur Windows Server TP2 pour le stockage (Storage Space et Target iSCSI)
  4. -          Une plateforme Microsoft Azure sur laquelle je vais créer un compte de stockage pour le Quorum de mon cluster

Configuration réseau:

J’ai également plusieurs réseaux :

  1. -          Un réseau pour le LAN (192.168.2.0)
  2. -          Un réseau pour le stockage (172.16.0.0)
  3. -          Un réseau pour le HA (10.10.10.0)


Au niveau de chaque serveur j’ai 6 cartes réseaux, vous l’aurez compris, je fais du Nic Teaming (agrégation de carte réseau) j’ai donc deux cartes réseaux par flux réseau.

Voici la configuration du NIC Teaming sur mes deux nœuds de cluster :



En Powershell:


Voici la topologie physique de cette configuration de Nic Teaming :





Configuration stockage 

Au niveau du stockage je dispose d’un serveur Windows Server TP2 avec une Target iSCSI installée dessus, et je profite bien évidement des apports des Storage Space afin de créer des LUNs pour mes deux nœuds pour le stockage des VMs.

Voici le Storage Pool :


Voici le iSCSIVirtualDisk :



Mes deux serveurs sont joints au domaine (lab.net) bien entendu, avec le rôle Hyper-V installé dessus ainsi que la fonctionnalité Failover Clustering.

Et surtout la LUN créé sur mon serveur de stockage est présentée via iSCSI à mes deux nœuds comme ceci  via un target iSCSI :



Remarquer en rouge les deux adresses IP sur le réseau de stockage de mes deux hyperviseur Hyper-V.

En interface graphique également  voici mes deux serveurs qui sont autorisés à se connecter à ma target iSCSI « Target-01 » :



Coté iSCSI  initiator voici la connexion à la Target : (en mettant l’adresse IP de votre serveur de stockage dans « Target » :

Une fois trouvée, vous aurez un pop-up qui vous dit que vous êtes bien connecté.




 Une fois que vous avez connecté un nœud à la LUN via iSCSI initiator ou en PowerShell, vous allez voir dans le disk Management ceci :



Il faut donc :
  1. -          Mettre en ligne le disque
  2. -          Initialiser le disque
  3. -          Créer un volume, choisir sa taille, lui attribuer une lettre, un nom et le formater :D
  Et vous devez avoir ceci sur votre premier nœud :

Votre disque est présent comme s'il était connecté localement à votre nœud (c’est le principe du mode Bloc)





Pour le second nœud, il suffit de le connecter à la Target iSCSI et mettre le volume en ligne simplement comme ceci :



Vous devez voir le disque dans votre deuxième nœud également comme ceci :




Voilà, ici j’ai mes deux nœuds connectés à mon serveur de stockage via iSCSI.

Pour résumé :

  1. -          Deux serveurs Hyper-V  (joint au domaine è lab.net) / avec Hyper-V et Failover clustering installés  sur chaque nœud / les deux nœuds sont attachés à mon serveur de stockage via ma Target iSCSI


Une fois que vous avez ceci, nous allons pouvoir commencer la création de notre cluster.

Pour commencer, nous allons valider notre cluster, pour se faire, allez dans le nœud 1 et ouvrez une console PowerShell en tant qu’admin et faite la commande suivante  afin de tester la configuration et de valider le cluster :
Test-Cluster –Node vNext01.lab.net,vNext02.lab.net

Le test commence :




à la fin du test vous aurez ceci:



Afin de voir le rapport de la validation du cluster il faut se rendre dans 
C:\Windows\Cluster\Reports .


Et vous aurez ceci :


Ouvrez le fichier XML avec IE comme ceci : cliquez droit, faites « Open With » et cliquez sur IE .


Voici le résultat que vous devez obtenir si vous avez bien configuré les prérequis pour un cluster Microsoft :





Tous est vert, je vais donc pouvoir créer mon cluster dans les bonnes conditions.


Pour créer mon cluster j’utilise le script suivant :


Mon cluster aura comme IP : 192.168.2.10 /24 et comme CNO (cluster Name Objet) « Hyper-VCLuster »


Une fois terminée, vous devez aller voir le rapport de création de cluster afin de vérifier si y’a pas d’erreurs :



Le chemin ou se trouve le rapport est : c:\Windows\Cluster\Reports et ouvrez le fichier suivant avec IE :



Tous c’est bien passé comme on peut le voir ici , mon cluster est bien crée.


Remarquez en jaune une petite alerte sur le Quorum et c’est notre sujet dans cet article J et il dits en gros que le cluster n’est pas configuré avec un Quorum Witness. 


Nous allons faire le nécessaire au niveau du Quorum sur Azure J

Configuration d’un Quorum Witness dans Azure


Je me rends dans la console « Failover Cluster Manager »  comme ceci  afin de voir le bon fonctionnement de mon cluster. (pour l’instant il est vide, il n’ya pas de rôle cluster Hyper-V dessus) on verra plus tard.



Nous allons commencer la configuration du Quorum Witness dans Azure, pour cela, il faut créer un compte de stockage comme ceci :

Cliquez sur « NEW » ensuite allez dans « DataServices » ensuite « Storage » et après « QUICK Create »  Mettez le nom de l’URL de votre compte de stockage + choisir la location et le type de réplication:


Une fois terminée, cliquez sur « Create Storage Account » :

La création du compte de stockage commence :




Une fois terminée, allez dans votre compte de stockage que vous venez de créer, et en bas de la page cliques sur « Manage Access Keys »

Vous aurez la fenêtre suivante, vous aurez besoin de la « primary access key » afin que votre serveur puisse joindre votre compte de stockage.

Copier bien cette clé J on aura besoin dans pas longtemps.





Je retourne sur ma console du cluster, je clique droit sur mon cluster « Hyper-VCluster » après je vais sur « More Options » et je vais pour finir dans « Configure Cluster Quorum Settings » :



Vous aurez l’assistant suivant, cliquez sur Next


Choisir le mode avancé comme ceci et cliquez sur Next




Laissez l’option « All Nodes » et cliquez sur Next


Choisir « Configure a cloud Witness » , vous avez compris, c’est ici qu’on va chercher notre compte de stockage que nous avons mis dans Azure J

 

Mettre les informations qu’il faut, c’est-à-dire le Nom de votre compte de stockage Azure, ainsi que la clé qu’on avait récupérée  plus haut dans l’article et cliquez sur Next



Confirmation et récap de vos action, et cliquez sur Next pour commencer la configuration



Voici la configuration terminée avec succès J



Cliquez sur Finish.

Allons faire un tour sur le rapport :

On voit que tout s’est bien passé.




Vérifions dans les ressources du cluster, on voit bien qu’on a un Quorum qui est dans le Cloud d’AZURE.


Vérifions également le compte de stockage  dans Azure : allez dans votre compte de stockage et ensuite allez dans « Containers » :




Vérification en PowerShell :




Une fois que nous avons configuré notre cluster avec le Quorum sur Azure, nous allons pouvoir configurer le stockage CSV pour le stockage des VMs Hyper-V.

Pour cela utilisez la commande suivante :


 Une fois la commande passée vous devez avoir ceci :


Vérification :

On voit bien notre CSV (c:\ClusterStorage\Volume1)



Vérification dans l’explorer :




Une fois le stockage CSV effectué, nous allons paramétrer notre Hyper-V afin qu’il stocke les VMs par défaut dans ce CSV.

Comme ceci  pour les VHDx:




Comme ceci pour les fichiers des VMs :



Je vais maintenant créer une VM et la stocker dans mon CSV comme ceci :

#Création de VM sur mon stockage CSV "C:\ClusterStorage\Volume1\VMs"

# Serveur Windows Server 2012
$SRV01 = "VM01-test01"


# Taille HDD
$SRV01VHD = 10GB

# Location des Vms dans le stockage CSV
$VMLOC = "C:\ClusterStorage\Volume1\VMs"


# Création des VMs "Client"
New-VM -Name $SRV01 -Path $VMLOC -MemoryStartupBytes 512MB -NewVHDPath $VMLOC\$SRV01.vhdx -NewVHDSizeBytes $SRV01VHD


# Démarrage de la VM
Start-VM -Name $SRV01 

Voici la VM créé dans Hyper-V :


Et dans la console d’Hyper-v :



Vérification des fichiers de VMs  au niveau du stockage CSV :

On retrouve bien le VHDx de la VM ainsi que le dossier ou se trouve les fichiers de configuration de la VM 

 


Voici également les fichiers de configuration :


A noter avec les nouveautés de Windows Server 2016 les fichiers de configuration sont (.vmcx) alors qu’avec un Hyper-V  sous Windows Server 2012 R2 les fichiers de configuration étaient en XML.




Une fois la VM crée, nous allons pouvoir ajouter le rôle « Virtual Machine » pour la haute disponibilité des VMs.

Pour cela il suffit de lancer le script suivant :

Add-ClusterVirtualMachineRole -VirtualMachine "VM01-test01" 




Une fois terminée vous devez obtenir ceci :




Vérification dans la console  du cluster :




Et voilà nous venons de finir cet article sur la haute disponibilité d’une infrastructure virtualisée sous Hyper-V avec un Quorum placé dans le Cloud (Microsoft Azure).

Dans cet article nous avons abordé les notions suivantes :
  1. -          La mise en place d’un cluster (FailOver Clustering) Hyper-V
  2. -          La configuration d’un Quorum dans le Cloud (avec Microsoft Azure)
  3. -          La création d’un compte de stockage dans Azure
  4. -          La création de VM clustérisée (qui sont mis en haute dispo )
Dans un prochain article nous verrons :
  1. -          L’administration de notre cluster Hyper-V en termes de bonnes pratiques etc.

En attendant, bonne virtualisation avec Hyper-V et à bientôt

Seyfallah Tagrerout
MVP Hyper-V

< >