Management des environnements virtuels

Cette section regroupe les informations sur les solutions de management des environnements virtualisés. Proposez vos articles ou de nouvelles catégories pour cette section.



Automatiser la restauration d'une machine virtuelle avec DPM 2010 PDF Imprimer Envoyer
Note des utilisateurs: / 4
MauvaisTrès bien 

Automatiser la restauration d'une machine virtuelle avec DPM 2010 et Powershell

DPM 2010 est une solution de sauvegarde pour vos machines virtuelles simple et rapide.

La sauvegarde sur disque, la synchronisation en mode bloc des répliquas et l'utilisation du protocole BITS pour les transferts en fait la solution idéale pour la sauvegarde de vos machines virtuelles Hyper-V, même sur des sites distants.

Comme la quasi-totalité des produits serveurs de Microsoft, DPM 2010 intègre une ligne de commande Powershell terriblement efficace.

Dans cet article, nous allons détailler comment automatiser la restauration de la dernière sauvegarde d'une machine virtuelle avec le DPM Management Shell.

Pour mener à bien cette restauration nous allons réaliser les étapes suivantes.

  1. Connexion au serveur DPM
  2. Récupération de la source de donnée
  3. Récupération du point de restauration
  4. Définition des options de restauration
  5. Exécution de la restauration.

Consultez la suite de cet article sur Technet.

 
SCVMM 2012 Disponible en RC PDF Imprimer Envoyer

La sortie de SCVMM 2012 approche à grand pas.

 

System Center Virtual Machine Manager est bien plus qu'une nouvelle version de SCVMM, c'est une véritable petite révolution capable d'amener les entreprises ayant adoptées Hyper-V vers le Cloud Privé !

Télécharger la version d'évaluation au format VHD directement depuis ce lien (Attention c'est gros).

 

Au menu des nouvelles fonctionalités :

  • Gestion des serveurs Hyper-V
    • Déployement automatique des serveurs et clusters Hyper-V directement sur les serveurs physiques
    • Orchestration du patch management des clusters Hyper-V 
    • Gestion des Hosts XenServer et VMware
    • Gestion des pools d'adresse IP, MAC et des VIP (Load Balancers)
    • Gestion des pools de stockage et des LUN  ...
Lire la suite...
 
SCVMM Administration avancée - Techdays 2011 PDF Imprimer Envoyer
Note des utilisateurs: / 3
MauvaisTrès bien 

Avec quelques semaines de retard, voici la session plénière que j'ai eu le plaisir de co-animer avec Fabrice Meillon aux Techday's 2011.

En plus de la maquette présentée par Fabrice, vous pourrez voir un serveur SCVMM 2008 R2 installé sur notre data center sous VMware Esxi pour illustrer la capacité de SCVMM à manager des serveurs Vmware. Oui, vous avez bien lu, un serveur SCVMM 2008 R2 installé sur une ferme Vsphere et administrant ces mêmes serveurs :=)
 
En effet, c'est peu connu, SCVMM 2008 R2 est capable d'administrer des clusters Esx et Esxi en se branchant sur le serveur Vsphere. Vous devez donc posséder un serveur Vsphere.
Le principal avantage est bien entendu de gérer ses serveurs Esx / Esxi et Hyper-V depuis une console unique, mais aussi de bénéficier de tous les CmdLets Powershell offerts par SCVMM comme brièvement illustré dans la vidéo.



On notera que du coté VMware, certains experts prédisent le support de Hyper-V dans la suite de management d'ici 2013.

 
Automatiser la migration de vos machines virtuelles avec SCVMM 2008R2 (Part 2-2) PDF Imprimer Envoyer
Note des utilisateurs: / 6
MauvaisTrès bien 

System Center Virtual Machine Manager 2008 R2 (SCVMM) – Automatiser la migration de vos machines virtuelles (Partie 2-2)

Rappel de l’épisode précédent (Automatiser la migration de vos machines virtuelles avec SCVMM 2008 R2 Part 1-2)           

Dans le cadre d’une migration depuis un Cluster Hyper-V 2008 R1 vers un nouveau cluster Hyper-V 2008 R2, vous souhaitez automatiser le déplacement de vos machines virtuelles.

Le processus de migration est long et fastidieux. Les contraintes horaires sont fortes et il est souvent nécessaire de procéder en horaires non ouvrés pour assurer le transfert de vos machines virtuelles.

Heureusement, PowerShell et les différents Cmdlet de SCVMM 2008 R2 permettent d’automatiser ces tâches efficacement en quelques lignes.

Dans la première partie de cet article, nous avons vu comment effectuer les opérations suivantes grâce à Powershell.

 

  • Créer un GUID de job SCVMM
  • Stopper une machine virtuelle
  • Récupérer et reconfigurer ses cartes réseau virtuelles
  • Déplacer la machine virtuelle

 

Dans cette partie, nous allons voir comment il est possible de réutiliser ces connaissances pour déplacer un grand nombre de machine de façon automatique.

Pour cela, nous allons d’abord étudier comment créer une liste de machines virtuelles.

Ensuite, nous verrons comment exécuter notre script de migration pour chacune d’entre elles.

Nous verrons aussi comment tirer partis des fonctionnalités asynchrones de SCVMM pour obtenir des informations sur l’avancement du déplacement pour chaque machine.

 

Etape 1 : Créer une liste de machine à déplacer

Il existe de nombreuses méthodes pour créer sa liste de machine à déplacer, vous pouvez par exemple interroger SCVMM pour qu’il vous donne la liste des machines virtuelles hébergée sur un serveur Hyper-V en particulier.

 

# Connexion au serveur SCVMM (La connexion est valable pour toute la session powershell)

Get-VMMServer "Nom Du serveur SCVMM"

Get-VM |Where{$_.hostName –eq "Nom du serveur Hyper-V"}|forEach{$_.name} >ListeVM.txt

 

Le script ci-dessous permet d’obtenir rapidement un fichier contenant la liste des machines virtuelles présente sur un serveur Hyper-V donné.

Vous pouvez aussi tout simplement créer votre fichier manuellement, l’important étant que les noms de machines relevées correspondent exactement aux noms de machines définis dans SCVMM.

Dans le cadre d’une migration assurez-vous qu’aucun des points suivants ne soit vrai, ils pourraient faire échouer le déplacement :

·         Présence d’images ISO dans les lecteurs CDROM des machines

·         Présences de points de restauration non compatibles avec la version du serveur cible

·         Machines virtuelles en état « pause » ou en « save state »

·         Ressources insuffisantes sur le serveur Hyper-V ciblé

·         Temps du déplacement estimé trop important par rapport aux niveaux de services souhaités

 

Etape 2 : Parcourir la liste des machines à déplacer

Comme son nom l’indique, PowerShell est vraiment très puissant, ainsi, la récupération des machines virtuelles de votre liste se résume à quelques lignes.

 

# Récupération du contenu du fichier dans un tableau

$VMList = Get-Content "VMList.txt"

 

$VMList contient alors un tableau dont chaque ligne contient le nom d’une machine virtuelle.

Pour en énumérer le contenu, nous utiliseront la fonction « ForEach » de Powershell.

 

# Enumération du tableau

$VMList |Foreach{$_}

 

Note : La variable spéciale « $_ » représente l’objet en cour passé à travers le « Pipe » pour chaque énumération. Dans notre cas, cet objet est une chaine de texte pour chaque ligne du tableau (le nom de nos machines virtuelles).

En rassemblant les informations de la première partie de cet article, nous avons maintenant tous les éléments nécessaires à la conception de notre script.

 

#Connexion au serveur SCVMM

Get-vmmserver localhost

#Récupération du contenu du fichier VM dans un tableau

$VmCol = Get-content vm.txt

#Enumération du tableau

$VmCol|Foreach{

  $VmName = $_

  #Arrêt de la machine virtuelle en cours d'énumération ($_)

  Shutdown-VM $VmName

  #Création d'un GUID de JOB

  $NewJobGroup = [System.Guid]::NewGuid()

  #Récupération de la ou les cartes réseau de la machine virtuelle

  $VirtualNetworkAdapter = Get-VirtualNetworkAdapter -VMMServer localhost -All | where {$_.name -eq $VmName}

  #Enumération des cartes réseau

  $VirtualNetworkAdapters|Foreach{

    #configuration du réseau cible sous condition du réseau source

    switch ($VirtualNetworkAdapters.VirtualNetWork){

        #Configuration à "Nom_Lan_Cible1" si réseau source égal "Nom réseau 1"

        "Nom réseau 1" {

           Set-VirtualNetworkAdapter -VirtualNetworkAdapter $_ -VirtualNetwork "Nom_Lan_Cible1" -RunAsynchronously -JobGroup $NewJobGroup

         }

        #Configuration à "Nom_Lan_Cible2" si réseau source égal "Nom réseau 2"

        "Nom réseau 2" {

           Set-VirtualNetworkAdapter -VirtualNetworkAdapter $_ -VirtualNetwork "Nom_Lan_Cible2" -RunAsynchronously -JobGroup $NewJobGroup

         }

    }

  }

  #Récupération de l'objet host (serveur Hyper-V cible)

  $VMHost = Get-VMHost -VMMServer localhost |where {$_.Name -eq "Host Cible"}

  #Déplacement de la machine virtuelle sur le CSV Volume1

  Move-VM -VM $VM –VMHost "FQDN du serveur Cible" -Path "C:\ClusterStorage\Volume1" -RunAsynchronously -UseLAN -JobGroup $NewJobGroup

}

 

Mais ce n’est pas tout à fait terminé, il nous manque quelque chose de très important. En effet, la commande de déplacement étant asynchrone, ce script aurait pour effet de provoquer le déplacement simultané de toutes les machines décrites le fichier source, ce qui ne manquerai pas de de saturer le réseau et les disques.

Pour m’assurer que les machines virtuelles sont déplacées une par une, je dois être en mesure de récupérer l’état d’avancement des jobs exécuté par SCVMM. Ceci est réalisable en définissant une variable rattachée à mon job et qui va me permettre d’en récupérer les informations.

Pour cela, il me suffit de rajouter le paramètre « –JobVariable » dans ma commande Move-VM pour définir la variable attachée à mon job en cours (ici nous l’appellerons tout simplement « job »).

 

Move-VM -VM $VM -VMHost $VMHost -Path "C:\ClusterStorage\Volume1" -RunAsynchronously -UseLAN -JobGroup $NewJobGroup -jobvariable "job"

 

Je peux désormais invoquer un objet « $job » représentant le job lancé.

Étant donné que je ne souhaite déplacer mes machines qu’une par une, il me suffit de créer une boucle vérifiant l’état du job avant de procéder à une autre machine.

  While($job.status -eq "Running"){

    Start-Sleep -seconds 5;           

  }

Afin de ne pas trop solliciter le système, je place une temporisation qui aura pour effet d’interroger le statut du job toutes les 5 secondes.

 

La touche du chef…

SCVMM fournis un Cmd-Let (Write-Progress) permettant d’afficher une barre de progression dans votre fenêtre ligne de commande. Cette barre de progression pourra vous informer de l’état d’avancement de votre job. La propriété « CurrentStep » de mon objet Job me renseigne sur l’étape en cours, et la propriété « ProgressValue » sur le pourcentage de complétion.

 

  $JobNameString= $job.CmdletName+ " " +$job.resultname

  While($job.status -eq "Running"){

    Write-progress -activity "$JobNameString" -status $Job.CurrentStep -PercentComplete $Job.progressValue;

    Start-Sleep –seconds 5;      

  }

 

That’s it!

Nous avons maintenant notre script complet, tester le soigneusement et évitez de traiter de trop gros volumes à la fois.

 

###############################################################################

#

#                   Migrate-VM SCVMM Script

#                   V1.0 du 15/06/2010

#

###############################################################################

 

# Ce script est fournit tel quel sans aucune garantie ni support

# Son utilisation relève de votre propre responsabilité

 

#Connexion au serveur SCVMM

Get-vmmserver localhost

 

#Récupération du contenu du fichier VM dans un tableau

$VmCol = Get-content vm.txt

 

#Enumération du tableau

$VmCol|Foreach{

 

  #Création d'un GUID de JOB

  $NewJobGroup = [System.Guid]::NewGuid()

 

  #Récupération de l'objet VM

  $VM = Get-VM -VMMServer localhost -Name "$_"

 

  #Arrêt de la machine virtuelle en cours d'énumération ($_)

  Shutdown-VM $VM

 

  #Récupération de la ou les cartes réseau de la machine virtuelle

  $VirtualNetworkAdapter = Get-VirtualNetworkAdapter -All | where {$_.name -eq $VM.name}

 

  #Enumération des cartes réseau

  $VirtualNetworkAdapters|Foreach{

 

    #configuration du réseau cible sous condition du réseau source

    switch ($VirtualNetworkAdapters.VirtualNetWork){

        #Configuration à "Nom_Lan_Cible1" si réseau source égal "Nom réseau 1"

        "Nom réseau 1" {

           Set-VirtualNetworkAdapter -VirtualNetworkAdapter $_ -VirtualNetwork "Nom_Lan_Cible1" -RunAsynchronously -JobGroup $NewJobGroup

         }

        #Configuration à "Nom_Lan_Cible2" si réseau source égal "Nom réseau 2"

        "Nom réseau 2" {

           Set-VirtualNetworkAdapter -VirtualNetworkAdapter $_ -VirtualNetwork "Nom_Lan_Cible2" -RunAsynchronously -JobGroup $NewJobGroup

         }

    }

  }

 

  #Récupération de l'objet host (serveur Hyper-V cible)

  $VMHost = Get-VMHost | where {$_.Name -eq "Host Cible"}

 

  #Déplacement de la machine virtuelle sur le CSV Volume1

  Move-VM -VM $VM -VMHost $VMHost -Path "C:\ClusterStorage\Volume1" -RunAsynchronously -UseLAN -JobGroup $NewJobGroup -jobvariable "job"

 

  #Formatter l'affichage du nom du Job

  $JobNameString= $job.CmdletName+ " " +$job.resultname

 

  #Vérifier que le job est terminé

  While($job.status -eq "Running"){

    Write-progress -activity "$JobNameString" -status $Job.CurrentStep -PercentComplete $Job.progressValue

    Start-Sleep -seconds 5

  }

  #Un fois que le job est terminé, attendre encore 5 secondes (par sécurité)

  Start-Sleep -seconds 5

 

  #On redémarre la machine virtuelle

  start-vm $vm.name

}

 
Automatiser la migration de vos machines virtuelles avec SCVMM 2008R2 (Part 1-2) PDF Imprimer Envoyer
Note des utilisateurs: / 3
MauvaisTrès bien 

System Center Virtual Machine Manager 2008 R2 (SCVMM) – Automatiser la migration de vos machines virtuelle (Part 1-2)

Source Technet par Cédric Bravo.

SCVMM 2008R2 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.

 


 

Basé sur Powershell, l’installation de la console d’administration de SCVMM 2008 R2 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  d’automatisation complexes.

 

Scénario : Automatiser la migration de vos machines virtuelles d’un cluster à un autre

Dans le cadre d’une migration depuis un Cluster Hyper-V 2008 R1 vers un nouveau cluster Hyper-V 2008 R2, vous souhaitez automatiser le déplacement de vos machines virtuelles.

Le processus de migration est long et fastidieux. Les contraintes sont fortes et il est souvent nécessaire de procéder en horaires non ouvrés pour assurer le transfert de vos machines virtuelles.

Heureusement, PowerShell et les différents Cmdlet de SCVMM 2008 R2 permettent d’automatiser ces tâches efficacement en quelques lignes.

 

Se connecter au serveur SCVMM.

Pour exécuter des commandes SCVMM, il est nécessaire d’établir une connexion au serveur à l’aide du Cmd-Let « Get-SCVMMServer »

La connexion au serveur SCVMM est un pré requis systématique à toute commande SCVMM.

PS>get-VMMServer "Myserver"

 


Une fois la connexion invoquée, celle-ci est valable pendant toute la session Powershell.

 

Identifier les machines que vous souhaitez migrer.

Avant de réaliser votre script de migration il est nécessaire d’identifier la liste des machines virtuelle à déplacer.

Dans le cadre d’une migration depuis un serveur Hyper-V R1 vers hyper-V R2, vérifier les points suivants :

·         Retirer les images ISO montées dans le lecteur CDROM de la machine virtuelle.

·         Supprimer tous les points de restauration. Pour compléter la fusion des disques différentiels utilisés par les points de restauration, vous devez stopper la machine virtuelle et attendre que la fusion soit complétée.

Note : l’état d’avancement de la fusion des disques n’est pas disponible dans SCVMM, vous devez consulter la console Hyper-V.

Une fois votre liste constituée et vos machines vérifiées, vous pouvez concevoir votre script de migration. Dans un premier temps, nous allons concevoir un script capable de migrer un seule machine, puis, dans la deuxième partie de cet article, nous l’adapterons pour qu’il soit en mesure de migrer toutes les machines définie dans notre fichier.

Pour réaliser cette opération,  nous avons besoin de passer par les étapes suivantes.

 

Etape 1 : Créer un GUID de Job SCVMM

Dans le monde du scripting, les commandes sont exécutées lignes par lignes de manière séquentielle.

SCVMM possède un système de commande « asynchrone », c'est-à-dire qu’il est possible de récupérer la main directement après la prise en compte d’une commande, celle-ci étant mise dans une file de tâches à exécuter en arrière plan, les « Jobs SCVMM ». Certaines commandes SCVMM nécessitent d’êtres groupées au sein d’un même job pour fonctionner. SCVMM assure de manière transparente l’ordonnancement de ces tâches.

Dans SCVMM, chaque job est caractérisé par un identifiant unique, le GUID, pour assigner des tâches à un job, il suffit de lui assigner un identifiant unique.

Pour créer ce GUID, il est nécessaire d’utiliser la classe Dot Net  [System::Guid]

P>$NewJobGroup = [System.Guid]::NewGuid()

 

Etape 2 : Stopper la machine virtuelle.

Lors d’une migration d’un cluster Hyper-V  à un autre, la machine doit être stoppée (en effet la migration live n’est disponible qu’au sein d’un même cluster). De plus le scénario illustré ici concerne le déplacement de machines virtuelles située sur un cluster Hyper-V R1, vers un cluster Hyper-V R2 (utilisant des Clustered Shared Volumes).

Dans un premier temps, nous allons récupérer l’objet qui représente notre machine virtuelle avec le Cmd-Let Get-VM, puis nous pourrons l’arrêter proprement à l’aide du Cmd-Let Shutdown-VM.

L’objet machine virtuelle ainsi récupéré pourra nous servir pour des usages futurs dans notre script.

#Récupérer l’objet machine virtuelle.

$VmName = "Nom de la machine virtuelle à stopper"

$VM = Get-Vm $VmName

#Stopper la machine virtuelle

Shutdown-VM $VM

 

Etape 3 : Reconfigurer les cartes réseau

Lors du déplacement, il est nécessaire de reconfigurer les attachements réseau des cartes virtuelles  afin de les raccorder au nouveau réseau disponible sur la machine cible.

Dans un premier temps, nous allons récupérer les objets représentant nos cartes réseaux à l’aide du Cmd-Let Get-VirtualNetworkAdapter. Puis nous utiliserons le Cmd-Let Set-VirtualNetworkAdapter pour reconfigurer la carte réseau.

Comme le nouveau réseau ne sera disponible qu’une fois la machine virtuelle déplacée sur le nouveau serveur Hyper-V, nous allons préciser que nous souhaitons une exécution asynchrone et assigner la reconfiguration de notre carte au GUID de job récupéré précédemment.

Le paramètre « -All » du Cmd-Let Get-VirtualNetwokAdapter stipule que nous souhaitons récupérer toutes les cartes réseau de toutes les machines virtuelles gérées par SCVMM.

#Récupération des objets cartes réseau

 $VirtualNetworkAdapter = Get-VirtualNetworkAdapter -All | where {$_.name -eq $vm.name}

Set-VirtualNetworkAdapter -VirtualNetworkAdapter $VirtualNetworkAdapter –VirtualNetwork "Nom_Lan_Cible" -RunAsynchronously -JobGroup $NewJobGroup

 

Note : La variable “$_” représente l’objet en cour passé à travers le « pipe » lors de chaque itération. Ici nous récupérons tous les objets carte réseau gérés par SCVMM, puis nous filtrons ces objets pour ne retenir que ceux dont la propriété « Name » est égale à la propriété « Name » de notre objet $VM. En effet, la propriété « Name » des objets carte réseau est identique à la propriété « Name » des machines virtuelles.

La commande sera mise en file d’attente et ordonnancée automatiquement par SCVMM à la suite de la commande Move-VM que nous allons utiliser plus bas.

Attention, si votre machine virtuelle comporte plus d’une carte réseau, la variable $VirtualNetworkAdapter  ne contiendra pas un objet « Carte réseau » mais un tableau d’objet carte réseau.

Pour palier à cette éventualité, il convient de traiter le résultat comme suit.

#Récupération des objets cartes réseau

 $VirtualNetworkAdapters = Get-VirtualNetworkAdapter -All | where {$_.name -eq $vm.name}

$VirtualNetworkAdapters|Foreach{

    Set-VirtualNetworkAdapter -VirtualNetworkAdapter $_ -VirtualNetwork "Nom_Lan_Cible" -RunAsynchronously -JobGroup $NewJobGroup

}

Cependant, ce script ne fonctionne que si vos cartes sont toutes reliées sur le même réseau. Dans le cas contraire, il est nécessaire de gérer de nouvelles conditions (par exemple avec le nom du réseau sur lequel la machine est actuellement connecté, récupérable par la propriété « VirtualNetwork »)

#Récupération des objets carte réseau

 $VirtualNetworkAdapters = Get-VirtualNetworkAdapter -All | where {$_.name -eq $vm.name}

$VirtualNetworkAdapters|Foreach{

  switch ($VirtualNetworkAdapters.VirtualNetWork){

        "Nom_LAN1" {

           Set-VirtualNetworkAdapter -VirtualNetworkAdapter $_ -VirtualNetwork "Nom_Lan_Cible1" -RunAsynchronously -JobGroup $NewJobGroup

         }

        "Nom_LAN2" {

           Set-VirtualNetworkAdapter -VirtualNetworkAdapter $_ -VirtualNetwork "Nom_Lan_Cible2" -RunAsynchronously -JobGroup $NewJobGroup

         }

    }

}

Ici, nous récupérons le nom du réseau sur lequel la carte est connectée et nous la reconfigurons sur le réseau cible en fonction de ce nom. La fonction « Switch » nous permet ici de préciser une action spécifique pour différente valeur renvoyée par la propriété « VirtualNetwork »

Etape 4 : Déplacer la machine virtuelle

Voila enfin le moment de demander le déplacement de notre machine virtuelle.

Le déplacement  de la machine virtuelle est effectué grâce au Cmd-Let Move-VM en précisant le nom de la machine virtuelle ($VM.name), le serveur Hyper-V ciblé et le volume sur lequel sera stocké la machine virtuelle.

Nous n’oublierons pas non plus d’indiquer une exécution asynchrone de la commande en y associant le GUID du job créé précédemment.

Le paramètre « –UseLAN » indique que le transfert s’effectuera par le réseau.

Move-VM -VM $VM.name -VMHost $VMHost -Path "C:\ClusterStorage\Volume1" –UseLAN -RunAsynchronously -JobGroup $NewJobGroup

That’s it !

Nous venons de migrer notre première machine virtuelle entièrement à l’aide de la ligne de commande !

Ok, ne nous emballons pas trop, il reste encore à attendre la fin de la migration et à redémarrer manuellement la machine. De plus, migrer une seule machine virtuelle par ligne de commande n’est pas d’un grand intérêt.

Pour cette raison nous verrons dans la prochaine partie de cet article comment constituer une liste de machine virtuelle pour alimenter notre script et comment suivre l’avancement des jobs de façon à automatiser le déplacement  d’un grand nombre de machines.

 

Automatiser la migration de vos machines virtuelles avec SCVMM 2008 R2 Part 2-2

 

Pour les CMd-Let SCVMM, vous pouvez consulter les documents suivants.

SCVMM 2008 Scripting Guide

SCVMM Command Let Reference.

 
« DébutPrécédent12SuivantFin »

Page 1 sur 2

Search GuVirt

Partagez l'article

Liens sponsorisés

Joomla! is Free Software released under the GNU/GPL License.