System Center Virtual Machine Manager 2008 (SCVMM) - Comment attacher un LUN supplémentaire à une machine existante dans un cluster Hyper-V -

Téléchargez dès à présent le document en format pdf

 

Article par Cédric Bravo (MVP Virtualisation)

Cédric Bravo est actuellement consultant, architecte infrastructure pour une SSII Gold Partner Microsoft et participe au développement d’offres à valeur ajoutée autour des technologies Microsoft. Speaker aux Techdays 2007, 2008 et 2009 ainsi qu'aux Ms Days 2008, Cédric est aussi co-auteur de Scripting Windows aux éditions Eyrolles, un ouvrage didactique et pratique sur l'automatisation en environnement Microsoft ainsi que le co-président du groupe français des utilisateurs de la virtualisation. A ce titre, il participe régulièrement à des articles dans la presses et à des séminaires autours des technologies de virtualisation.

Spécialiste de la virtualisation et de l'industrialisation des processus d'exploitation, Cédric apporte sa vision des infrastructures dynamiques auprès de grands groupes Français et internationaux.

Sommaire de l'article

  • Etape 1 : Ajouter un LUN supplémentaire à une machine virtuelle existante.
  • Etape 2 : Récupérer le LUN à attacher par son label parmi les disques disponibles dans le cluster.
  • Etape 3 : Formater le chemin d'accès au volume en cluster à partir de son GUID
  • Etape 4 : Récupérer l'objet VM
  • Etape 5 : Ajouter un disque à la machine virtuelle et créer un VHD fixe
  • Etape 6 : That's it

 

SCVMM est un outil fantastique qui permet la gestion des fermes de serveurs de virtualisation ainsi que les machines virtuelles associées.

Il facilite la gestion des fermes de serveurs Hyper-V, Virtual Server, Vmware VI3 et notamment la prise en charge des environnements de clusters de virtualisation.

Bien que la console d’administration graphique ne prévoie pas certains cas de figures spécifiques,  l’installation de SCVMM ajoute plus de 130 Command Let Additionnels dédiés à la gestion des machines virtuelles.

Très simples à prendre en main, ces nouveaux command let permettent de réaliser des scénarios complexes non pris en charge dans l’interface graphique d’administration.

Scénario : Ajouter un LUN supplémentaire à une machine virtuelle existante.

*Sur votre SAN, vous avez créé différents RAID groups afin de refléter les différents usages et niveaux de performances souhaités. *

·        Vous avez créé des LUN sur des RAID 10 pour héberger les partitions système de vos machines virtuelles.

·        Vous avez créé des LUN sur des RAID 5 pour héberger des Données.

Lors de la création ou de la modification d’une machine virtuelle en cluster dans la console d’administration SCVMM, il n’est pas possible de répartir les différents VHD sur des LUNS différents.

Ceci est par contre réalisable avec les Command Let Powershell de SCVMM.

Ajouter un LUN à une machine virtuelle existante

Pour ajouter un nouveau LUN à une machine existante, il faut bien entendu commencer par publier ce LUN dans le bon Storage Group, créer et formater une nouvelle partition dans le gestionnaire de disque et le mettre à disposition comme ressource disque disponible dans l’interface d’administration Failover Cluster de Windows Server 2008.

Dès lors le LUN est disponible pour une attribution par SCVMM.

Note : Afin d’être en mesure d’identifier cette nouvelle partition, donnez lui un Label facilement reconnaissable dans le gestionnaire de disques (Ex : NOMDELAVM_DATA). Dans le cadre d’un cluster, n’attribuez pas de lettre  à votre nouveau disque. L’accès aux disques est géré par les volumes GUID.Pour réaliser ces opérations, votre machine virtuelle doit être en état arrêté (L’ajout de disques à chaud sera possible dans Hyper-V avec Windows Server 2008 R2).

Haut de pageHaut de page  

 

Etape 2 : Récupérer le LUN à attacher par son label parmi les disques disponibles dans le cluster.

# récupérer l’objet Cluster SCVMM
$VMMCluster = Get-VmHostCluster     

#Récupérer les volumes disponibles dans le cluster dont le label est celui que vous avez indiqué lors de la création de la partition

$MyLUN = $VMMCluster.AvailableStorageNode.DiskVolumes | where{$_.isClustered -eq $true}| where{$_.inUse -eq $False}| where{$_.Volumelabel -eq "LABELDUVOLUME"}

Nous récupérons un objet $MyLun qui représente mon volume à rattacher.

Etant donné que je n'assigne pas de lettre de lecteur aux volumes de mon cluster, je dois utiliser son GUID pour y accéder. Les chemins d’accès par GUID sont de la forme \\?\Volume{GUID_DU_DISQUE}.

La propriété Host HostVolumeID, me permet de récupérer le GUID utilisé en cluster. Il est préférable d’utiliser cette propriété plutôt que la propriété Name, qui peut contenir plusieurs GUID selon les cas de figures.

Haut de pageHaut de page

 

Etape 3 : Formater le chemin d'accès au volume en cluster à partir de son GUID

#Mise en forme du chemin d’accès à partir du GUID

$VolPath = "\\?\Volume{" + $MyLUN.HostVolumeID + "}\"     

Maintenant que je connais le chemin d’accès à mon nouveau volume, il ne me reste plus qu’à le rattacher à ma machine virtuelle et à créer mon disque VHD.

Haut de pageHaut de page

Etape 4 : Récupérer l'objet VM

$VM = Get-VM -name "Nom de la machine virtuelle"

 

Haut de pageHaut de page

Etape 5 : Ajouter un disque à la machine virtuelle et créer un VHD fixe

Pour créer un nouveau disque (ici un disque fixe de 40go) et le rattacher à ma machine virtuelle, j'utilise le CmdLet  New-VirtualDiskDrive. Ce command Let utilise l’objet machine virtuelle ($VM) récupéré précédemment ainsi que le chemin d’accès au fichier VHD situé sur mon nouveau LUN ($VolPath).

New-VirtualDiskDrive -VM $VM -SCSI -Bus 0 -LUN 1 -Path $VolPath -Size 40960 -Fixed -Filename "NOMDUDISQUEVHDD"    

 

Note : Dans l’exemple ci-dessus, nous attachons notre VHD à une carte SCSI, il est donc nécessaire que cette carte soit déjà présente dans la machine virtuelle.

Haut de pageHaut de page

 

That’s it !

Votre machine virtuelle dispose maintenant  d’un nouveau disque VHD situé sur un LUN différent.

La dépendance sur le disque est automatiquement rajoutée au niveau de la ressource cluster.

Il ne vous reste plus qu’à redémarrer votre VM et à formater votre nouvelle partition depuis la MMC Disk Management.

Pour plus de facilité, voici le script complet, il vous suffit d’affecter les bonnes valeurs aux variables.
Pour les plus téméraires, vous pouvez très facilement le transformer en fonction de vos besoins et l’intégrer directement à votre session PowerShell SCVMM.

###############################################################################
#
#                   Add-ClusteredLun SCVMM Script
#                   V1.0 du 14/04/2009
#
###############################################################################

$VMMserver   = "SERVEUR_SCVMM"
$VMname      = "NOM_DE_LA_VM"
$VolumeLabel = "LABEL_DU_VOLUME_A_ATTACHER"
$VHDName     = "NOM_DU_VHD_A_CREER" (avec extension .vhd)

$Size = “Taille DU VHD” (en Mo)

# Connexion au serveur SCVMM

get-VMMServer $VMMServer

# Récupération de l’objet Cluster SCVMM

$VMMCluster = Get-VmHostCluster     

#Récupération du volume non utilisé dans le cluster dont le label est celui que vous avez indiqué lors de la création de la partition.

$MyLUN = $VMMCluster.AvailableStorageNode.DiskVolumes | where{$_.isClustered -eq $true}|where{$_.inUse -eq $False}| where{$_.Volumelabel -eq $VolumeLabel}

# Mise en forme du chemin d’accès à partir du GUID

$VolPath = "\\?\Volume{" + $MyLUN.HostVolumeID + "}\"

# Récupération de l’objet machine virtuelle sur lequel on doit attacher le nouveau LUN

$VM = Get-VM -name $VMName

# Attachement du nouveau Disque sur la machine virtuelle.

New-VirtualDiskDrive -VM $VM -SCSI -Bus 0 -LUN 1 -Path $VolPath -Size $Size -Fixed -Filename $VHDName

Haut de pageHaut de page

Pour plus d’informations sur le scripting SCVMM et sur les « command let », vous pouvez vous référer à la documentation suivante :

SCVMM 2008 Scripting Guide

SCVMM Command Let Reference.

Haut de pageHaut de page