mai 19

Script d’automatisation de déploiement de VMs

Bonjour à tous,

Dans le cadre d’un de mes projets de POC, j’ai été amené à developper un script capable de :

– Déployer l’ensemble des VMs

– Déployer les VMs d’une business Units

– Déployer une VMs

– Gérer les snapshot et le retour sur le dernier snapshot

– De supprimer les VMs

– De gérer l’alimentation des VMs

Voici le script :

###########################################################
# POC.ps1                                            #
# Nicolas EHRMAN - EMC Consultant - 12/11/2013 - v1.0     #
# Purpose of the script :                                 #
# Deploy a large environment automatically with the       #
# creation of a Customization and deployment of VMs       #
###########################################################

###########################################
# Connection to VCenter Server Management #
###########################################

# Connection to vCenter Server
Function ConnectVI($VCenter)
    {
        $cred=get-credential
        $vc=connect-viserver -server $VCenter -credential $cred
    }

# Disconnection from vCenter
Function DisconnectVI($VCenter)
    {
        Disconnect-viserver -server $VCenter -confirm:$false
    }

#######################
# Snapshot Management #
#######################

# Take a snapshot
Function Snapshot($Scope)
{
    ConnectVI $VCenter
    if($Scope -eq "ALL")
        {
        ParseCSVALL $Scope
        }
    ElseIf($Scope -like "DEMO*")
        {
        ParseCSVDEMOCode $Scope
        }
    ElseIf($Scope -like "Test*")
        {
        ParseCSVVM $Scope
        }
}

# Creation of the Snapshot - Function
Function TakeSnapshot($vmname, $DEMOCode)
{
        New-Snapshot -VM $vmname -Name "Snapshot_Before_Bench"
}

# Revert to last snapshot
Function RevertSnapshot($Scope)
{
    ConnectVI $VCenter
    if($Scope -eq "ALL")
        {
        ParseCSVALL $Scope
        }
    ElseIf($Scope -like "DEMO*")
        {
        ParseCSVDEMOCode $Scope
        }
    ElseIf($Scope -like "Test*")
        {
        ParseCSVVM $Scope
        }
}

# Revert to the last Snapshot - Function
Function RevertToLastSnapshot($vmname)
{
get-snapshot -VM $vmname -Name "Snapshot_Before_Bench" | set-vm -VM $vmname -confirm:$False
}

#######################
# Cleaning Management #
#######################

# Delete all VMs or VMs in a DEMO
Function DeleteVMs($Scope)
{
    ConnectVI $VCenter
    if($Scope -eq "ALL")
        {
        ParseCSVALL $Scope
        }
    ElseIf($Scope -like "DEMO*")
        {
        ParseCSVDEMOCode $Scope
        }
    ElseIf($Scope -like "Test*")
        {
        ParseCSVVM $Scope
        }
}

# Delete permanently VMs in Scope
Function Delete($vmname,$vcenter)
{
        Write-Host "Attention, vous etes sur le point de supprimer definitivement des VMs." -ForegroundColor Red
        Write-Host "Etes vous sur de vouloir continuer" -ForegroundColor Red
        $Answer=Read-Host "Oui / Non"
        If ($Answer -eq "Oui")
        {
            remove-VM -VM $vmname -deletepermanently -confirm:$False
        }
        Else{
            Write-Host "Le script s'est termine." -foregroundColor Yellow
            DisconnectVI $VCenter
            exit
        }
}

#########################
# PowerState Management #
#########################

# Power Off
Function PowerOff($Scope)
{
    ConnectVI $VCenter
    if($Scope -eq "ALL")
        {
        ParseCSVALL $Scope
        }
    ElseIf($Scope -like "DEMO*")
        {
        ParseCSVDEMOCode $Scope
        }
    ElseIf($Scope -like "Test*")
        {
        ParseCSVVM $Scope
        }
}

# Power On
Function PowerOn($Scope)
{
    ConnectVI $VCenter
    if($Scope -eq "ALL")
        {
        ParseCSVALL $Scope
        }
    ElseIf($Scope -like "DEMO*")
        {
        ParseCSVDEMOCode $Scope
        }
    ElseIf($Scope -like "Test*")
        {
        ParseCSVVM $Scope
        }
}

# Power Off All VMs or VMs in a DEMO
Function PowerOff-VM($vmname)
{
  if((Get-VM $vmname).powerstate -eq "PoweredOff"){
    Write-Host "$vmname est deja eteinte"}
       else{
         Shutdown-VMGuest -VM (Get-VM $vmname) -Confirm:$false | Out-Null
         Write-Host "Arret de la VM $vmname"
       do {
         $status = (get-VM $vmname).PowerState
         }until($status -eq "PoweredOff")
       }
}

# Power On All VMs or VMs in a DEMO
Function PowerOn-VM($Scope)
{
    if((Get-VM $vmname).powerstate -eq "PoweredOn"){
    Write-Host "$vmname est deja demarree"}
    else{
        Start-VM -VM (Get-VM $vmname) -Confirm:$false | Out-Null
Write-Host "Demarrage de la VM $vmname"
do {
$status = (get-VM $vmname).PowerState
}until($status -eq "PoweredOn")
}
}

#####################
# Deployement Tasks #
#####################

# Deploy all VMs or only one by one DEMO
Function Deploy($Scope)
{
    ConnectVI $VCenter
    if($Scope -eq "ALL")
        {
        ParseCSVALL $Scope
        }
    ElseIf($Scope -like "DEMO*")
        {
        ParseCSVDEMOCode $Scope
        }
    ElseIf($Scope -like "Test*")
        {
        ParseCSVVM $Scope
        }
}

# Create Guest Customization
Function GuestCusto($Customization,$vc)
{
New-OSCustomizationSpec -OSType Linux -Server $vc -Name $Customization -Type NonPersistent -DnsServer $Dns -DnsSuffix $Suffix -NamingScheme VM -Domain $Domain
}

# Set IP address into Customization
Function SetIp($Customization, $IPaddress, $Netmask, $gw)
{
    Get-OSCustomizationNicMapping -OSCustomizationSpec $Customization | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $IPaddress -SubnetMask $Netmask -DefaultGateway $gw
}

# Clone VM
Function CloneVM($vmname, $VMHost, $Datastore, $template, $Customization)
{
    # No more than 10 Cloning operations at a time
    do{sleep 10}while(
    (get-task -status running |? name -eq "CloneVM_Task").count -eq 10)
    # Create the new VM from template
    $tasktab[(New-Vm -Name $vmname -VMhost $VMhost -Datastore $datastore -Template $template -OSCustomizationSpec $Customization -DiskStorageFormat $FormatDisk -RunAsync).id] = $vmname
}

######################
# Work with CSV File #
######################

# Import CSV File
Function ImportCSV()
    {
        $DEMOPOCCSV = Import-Csv C:\POC_DEMO\Deploy_POC_DEMO.csv -delimiter ";"
        return $DEMOPOCCSV
    }

# Parse CSV for DEMO Code
Function ParseCSVDEMOCode($Scope)
{
    $DEMOPOCCSV = ImportCSV
    foreach ($row in ($DEMOPOCCSV | where-object {$_.DEMOCode -eq $Scope})) {
            $vmname = $row.VmName
            $Customization = $row.Customization
            $VMhost = $row.VMhost
            $datastore = $row.Datastore
            $template = $row.Template
            $IPaddress = $row.IP
            $Netmask = $row.Netmask
            $Gw = $row.Gateway
            $DEMOCode = $row.DEMOCode
            $Dns = $row.dns
            $Suffix = $row.DNSSuffix
            $Domain = $row.Domain
            $DEMOCode = $row.DEMOCode
            $FormatDisk = $row.FormatDisk
                if($Action -eq "Deploy"){
                    GuestCusto $Customization $vc
                    SetIP $Customization $IPaddress $Netmask $gw
                    CloneVM $vmname $VMHost $Datastore $template $Customization $FormatDisk
                }
                Elseif($Action -eq "TakeSnapshot"){
                    PowerOff-VM $vmname
                    TakeSnapshot $vmname $DEMOCode
                    PowerOn-VM $vmname
                    }
                Elseif($Action -eq "Delete"){
                    Delete $vmname
                    }
                Elseif($Action -eq "PowerOff"){
                    PowerOff-VM $vmname
                    }
                Elseif($Action -eq "PowerOn"){
                    PowerOn-VM $vmname
                    }
                Elseif($Action -eq "RevertSnapshot"){
                    RevertToLastSnapshot $vmname
                    }
            }
If($DEMOCode.lenght -eq "")
    {
    write-host "Probleme avec le scope:"$Scope
    }
}

# Parse CSV for VM
Function ParseCSVVM($Scope)
{
    $DEMOPOCCSV = ImportCSV
    foreach ($row in ($DEMOPOCCSV | where-object {$_.VMname -eq $Scope})) {
            $vmname = $row.VmName
            $Customization = $row.Customization
            $VMhost = $row.VMhost
            $datastore = $row.Datastore
            $template = $row.Template
            $IPaddress = $row.IP
            $Netmask = $row.Netmask
            $Gw = $row.Gateway
            $DEMOCode = $row.DEMOCode
            $Dns = $row.dns
            $Suffix = $row.DNSSuffix
            $Domain = $row.Domain
            $DEMOCode = $row.DEMOCode
            $FormatDisk = $row.FormatDisk
                if($Action -eq "Deploy"){
                    GuestCusto $Customization $vc
                    SetIP $Customization $IPaddress $Netmask $gw
                    CloneVM $vmname $VMHost $Datastore $template $Customization $FormatDisk
                }
                Elseif($Action -eq "TakeSnapshot"){
                    PowerOff-VM $vmname
                    TakeSnapshot $vmname $DEMOCode
                    PowerOn-VM $vmname
                    }
                Elseif($Action -eq "Delete"){
                    Delete $vmname
                    }
                Elseif($Action -eq "PowerOff"){
                    PowerOff-VM $vmname
                    }
                Elseif($Action -eq "PowerOn"){
                    PowerOn-VM $vmname
                    }
                Elseif($Action -eq "RevertSnapshot"){
                    RevertToLastSnapshot $vmname
                    }
            }
If($vmname.lenght -eq "")
    {
    write-host "Probleme avec le scope:"$Scope
    }
}

# Parse CSV for All
Function ParseCSVALL($Scope,$Action)
{
    $DEMOPOCCSV = ImportCSV
    foreach ($row in $DEMOPOCCSV2) {
            $vmname = $row.VmName
            $Customization = $row.Customization
            $VMhost = $row.VMhost
            $datastore = $row.Datastore
            $template = $row.Template
            $IPaddress = $row.IP
            $Netmask = $row.Netmask
            $Gw = $row.Gateway
            $DEMOCode = $row.DEMOCode
            $Dns = $row.dns
            $Suffix = $row.DNSSuffix
            $Domain = $row.Domain
            $DEMOCode = $row.DEMOCode
            $FormatDisk = $row.FormatDisk
                if($Action -eq "Deploy"){
                    GuestCusto $Customization $vc
                    SetIP $Customization $IPaddress $Netmask $gw
                    CloneVM $vmname $VMHost $Datastore $template $Customization $FormatDisk
                }
                Elseif($Action -eq "TakeSnapshot"){
                    PowerOff-VM $vmname
                    TakeSnapshot $vmname $DEMOCode
                    PowerOn-VM $vmname
                    }
                Elseif($Action -eq "Delete"){
                    PowerOff-VM $vmname
                    Delete $vmname
                    }
                Elseif($Action -eq "PowerOff"){
                    PowerOff-VM $vmname
                    }
                Elseif($Action -eq "PowerOn"){
                    PowerOn-VM $vmname
                    }
                    Elseif($Action -eq "RevertSnapshot"){
                    PowerOff-VM $vmname
                    RevertToLastSnapshot $vmname
                    }
            }
}
###############
# Main Script #
###############

$SnapingLoaded = get-pssnapin | Where-Object{$_.name -like "*VMware*"}
If(!$SnapingLoaded){
Add-PSSnapin VMware.VimAutomation.Core
}

# HashTables

$Tasktab= @{}

if(!$args.length -eq 4)
{
    Write-host("Usage: Scriptname.ps1 deploy|takesnapshot|revertsnapshot|PowerOff|PowerOn|Delete ALL|DEMOx|VM vCenterIP@ CSVPathFile")
    }else{
    $Scope=$args[1]
    $VCenter=$args[2]
    $CSVPath=$args[3]
    $Action=$args[0]
    switch ($args[0])
    {
        Deploy{Deploy $Scope}
        TakeSnapshot{Snapshot $Scope}
        RevertSnapshot{RevertSnapshot $Scope}
        PowerOff{Poweroff $Scope}
        PowerOn{PowerOn $Scope}
        Delete{DeleteVMs $Scope}
        Default{Write-Host("L'action doit etre deploy, takesnapshot, revertsnapshot, PowerOff, PowerOn ou Delete")}
    } 

    # Start each VM who is completed
        $runningTasks = $taskTab.Count
        while($runningTasks -gt 0){
        Get-Task | % {
            if($taskTab.ContainsKey($_.Id) -and $_.State -eq "Success"){
            Get-VM $taskTab[$_.Id] | Start-VM
            $taskTab.Remove($_.Id)
            $runningTasks--
        }
        elseif($taskTab.ContainsKey($_.Id) -and $_.State -eq "Error"){
            $taskTab.Remove($_.Id)
            $runningTasks--
        }
  }
  Start-Sleep -Seconds 15
  }
}

Bien sûr, comme vous pouvez le constater, ce script s’appuie sur un fichier CSV mais on pourra imaginer quelque chose de plus poussé avec une connexion à une base de données par exemple. Ou pourquoi une fonction qui pourrait créer un nombre de VMs automatiquement en les appellant VM01 to VMXX.

Bref, je vais continuer à travailler dessus quand j’aurai du temps.

A bientôt.

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/152

août 12

Comment virtualiser un serveur SLES 9 avec Converter 5.1

Lors d’un de mes projets, je me suis retrouvé face à la nécessité de réaliser des virtualisations physiques vers virtuels pour un certain nombre de machine physiques qui tournait sous Suse Linux Enterprise Server 9 (SP1 et SP3) avec des disques en LVM.

Malheureusement, on ne trouve pas grand chose sur le net et même chez VMware pour nous aider dans cette tâche.

Voila donc pourquoi je vous faire part de mon expérience sur ce type de migration P2V.

1) Conversion de la machine physique à l’aide VMware Converter 5.1

Autant vous dire que je ne vais pas détailler cette phase car j’imagine que tout le monde sait le faire tellement c’est simple.

Il faut juste penser à ne pas cocher la case “Reconfigure destination Virtual machine” car cette étape plante lors de la migration et du coup votre job est en failed.

2) Démarrage en mode rescue
Du fait que la reconfiguration ne peut se faire automatiquement, il est nécessaire de booter sur l’image ISO du CD d’installation 1 de SLES 9.

Pour cela, il faut, depuis le vSphere Client, éxecuter les actions suivantes :

Ouvrez la console de la VM cible
Démarrez la VM en cliquant sur le bouton « Activer »
Lors du boot de la VM, appuyez sur la touche « ECHAP » pour aller dans le menu de sélection des périphériques de boot
Cliquez sur le bouton du lecteur « CD »
Sélectionnez « Connecter ISO depuis un disque local … »
Sélectionnez l’ISO SU910.001.ISO qui se trouve dans « D:\USERS\U131881\DESKTOP\SFR »
Dans la console de la VM, sélectionnez « CD ROM Drive »
La VM boote sur l’image ISO SLES 9

Une fois que la VM a booté sur le CD, il y a plusieurs options de démarrage. Il faut sélectionner la suivante :
RESCUE

La VM démarre en mode RESCUE. Cela nous permettra d’avoir accès aux disques et de reconfigurer la machine.

Une fois le mode RESCUE démarré, il est demandé de rentrer un compte d’utilisateur. Tapez :

# root

Le démarrage en mode RESCUE est terminé. Il faut désormais reconfigurer les disques de la VM.

3) Reconfiguration du stockage
Maintenant que la VM est booté et accessible, il faut reconfigurer les éléments liés au stockage comme la FSTAB, GRUB et également modifié les modules qui seront lancés au démarrage de la VM.

3.1) Démarrer device-mapper et LVM

Tout d’abord, avec la version 9 du CD d’installation SUSE, le device mapper ainsi que LVM ne sont pas chargés par défaut au démarrage. Pour les lancer, tapez les commandes suivantes :

# /etc/init.d/boot.device-mapper start
# /etc/init.d/boot.lvm start

Une fois les modules device-mapper et LVM démarrés, lancez les commandes suivantes :

# lvm vgscan
# lvm vgdisplay
# lvm lvdisplay

Vous devez voir l’ensemble de vos volumes apparaitre.

3.2) Monter le volume ROOTLV

Une fois cette étape réalisée, il faut monter le volume ROOTLV dans /mnt.

# mount /dev/rootvg/rootlv /mnt

Il faut monter également les volumes /dev et /proc :

# mount –bind /dev /mnt/dev
# mount –bind /proc /mnt/proc

3.3) Changer le répertoire ROOT

Maintenant, il faut faire un CHROOT pour changer le répertoire ROOT de la machine :

# chroot /mnt

3.4) Modifier le fichier FSTAB

Ensuite, il faut modifier le fichier fstab pour remplacer l’entrée /boot :

# vi /etc/fstab

Remplacer l’entrée /dev/cciss/c0d0px     / boot par /dev/sda1    /boot

Enregistrez les changements en tapant :wq

3.5) Montage de l’ensemble des volumes

Maintenant, il faut monter l’ensemble des volumes du ROOTVG et également le /boot :

# mount –a

Vérifiez que l’ensemble des volumes sont montés correctement :

# mount

L’ensemble des volumes doivent apparaitre. Si ce n’est pas le cas, faites :

# mv /etc/mtab /etc/mtab.old

Et rebooter la machine virtuelle.

3.6) Modification du fichier KERNEL et MKINITRD

Du fait que la machine est désormais exécutée dans un environnement virtuel, il est nécessaire de modifier les modules qui seront lancés au démarrage de la machine.

Pour cela, il faut modifier le fichier KERNEL :

# vi /etc/sysconfig/kernel

Rechercher la ligne INITRD_MODULES= et y ajouter :

Si SLES 9 SP1 : BusLogic
Si SLES 9 SP3 : mptspi

Enregistrez les modification en tapant :wq

Une fois cela fait, il faut lancez la commande MKINITRD pour recréer le RMADISK :

# mkinitrd

Attention, avant de passer à l’étape suivante, il ne doit y avoir aucunes erreurs lors de l’éxécution de cette commande.

3.7) Reconfiguration de GRUB

Pour finir, il faut reconfigurer le boot loader GRUB pour qu’il puisse prendre en compte les changements de configuration du stockage.

Pour cela, exécuter les commandes suivantes :

# mv /boot/grub/device.map /dev/grub/device.map.old
# grub-install /dev/sda

Vérifiez que la commande s’est exécutée correctement.

3.8) Vérification et reconfiguration des Nodes LVM

Dans certains cas, il est possible que l’ordre des volumes ait changé entre le serveur source et la VM cible.

Pour cela, il faut vérifier que les informations contenues dans /dev/mapper et lvm lvdisplay soient identiques :

# ll /dev/mapper

Noter les ID des volumes

# lvm lvdispay | less

Comparez les informations récupérées précédemment avec celles affichées via la commande lvm lvdisplay.

Si les informations ne sont pas cohérentes, tapez les commandes suivantes :

# mv /dev/mapper /dev/mapper.old
# lvm vgmknodes

Revérifiez les informations et passer à l’étape suivante.

3.9) Arrêt de la VM

Maintenant que le stockage est reconfiguré, il faut rebooter la VM pour démarrer sur les disques locaux.

# exit
# shutdown –h

3.10) Modification du contrôleur SCSI

ATTENTION, ne pas oublier de modifier, dans les paramètres de la VM, le type de contrôleur SCSI en fonction des modules configurés dans le fichier KERNEL.

3.11) Vérification du démarrage correcte de la VM

Activer la VM et vérifiez que la machine démarre correctement.
Vérifiez également les logs.

3.12) Arrêt du serveur physique

Arrêter le serveur physique après la vérification de la VM cible.

4) Installation des VMware Tools

Maintenant que la machine virtuelle est prête et fonctionnelle, il faut installer les VMware Tools.
Pour cela, faites les étapes suivantes :

Depuis la console de la VM, cliquez sur le menu « VM »
Sélectionnez « Invité / Installer/Mettre à jour les VMware Tools »

VMware va monter l’image ISO des VMware tools sur la machine virtuelle.

Maintenant, il faut monter l’ISO pour y avoir accès depuis la ligne de commande de la VM :

# cd /media/cdrom <= permet de vérifier si le répertoire /media/cdrom est existant ou non
# mkdir /media/cdrom <= si le répertoire /media/cdrom n’est pas déjà existant
# mount /dev/hda /media/cdrom <= Monte l’ISO dans le répertoire CDROM
# cd /media/cdrom
# cp VMwarxxxx.tar.gz /tmp
# cd /tmp
# tar –xzvf VMwarxxxx.tar.gz
# cd vmware-tools-distrib
# ./vmware-install.pl

Suivez les instructions et répondez aux questions d’installation des VMware tools. Dans la plupart des cas, les options par défaut sont coorectes.

Rebooter ensuite la VM.

 

Et voila !!!! :)

Maintenant, vous avez une VM SLES 9 qui fonctionne parfaitement sous un environnement VMware.

En espérant que cela vous soit utile.

A bientôt

 

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/140

oct 26

Comment faire fonctionner Hyper-V 3.0 dans WorkStation 9.0

Bonjour à tous,

 

Aujourd’hui, on va faire fonctionner un Hyper-V 3 (2012) en tant que VM dans un VMware WorkStation 9.0.

Pour cela; c’est très simple.

1) Après avoir créer votre VM, allez modifier le fichier vmx de celle-ci pour y ajouter la ligne suivante:

hypervisor.cpuid.v0 = « FALSE »

2) Ensuite, si ce n’est pas d”jà fait, il faut modifier la VM Dans WorkStation pour déclarer qu’il s’agit d’Hyper-V.

image

Et voila, plus de message d’erreur lors de l’installation du rôle Hyper-V sur votre serveur 2012.

 

Bonne virtualisation et à bientôt.

 

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/139

sept 10

Comment installer Hyper-V 3.0 sur Windows 2012 Server Core

Bonjour à tous,

Aujourd’hui je vais vous détailler la procédure que j’ai utilisé pour installer Hyper-V 3.0 sur un serveur Windows 2012 Datacenter installé en mode CORE.

Effectivement, Microsoft, avec sa version 3.0 de son hyperviseur, a quand même fait une énorme avancée dans le monde de la virtualisation et moi, expert vmware, j’admet qu’ils ont permis l’intégration de nouvelles fonctionnalités comme le live migration sans disques partagés par exemple.

1) Après avoir installer votre machine en Windows 2012 Server, faites un “CTRL-ALT-SUPPR” pour avoir accès au login :

ScreenShot002

2) Entrez vos informations d’identification  et faites “entrée” :

ScreenShot003

3) Depuis notre belle fenêtre DOS, lancez la commande “sconfig”. Celle-ci va nous permettre de configurer le nom de la machine, son adresse réseau, son activation, l’heure et la date, etc …

ScreenShot004

4) Configurez le nom du serveur en choisissant l’option 2 :

ScreenShot005ScreenShot006

Attention, le serveur va vous demander de redémarrer. Afin de ne pas perdre trop de temps on clique sur “No”.

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/134

juil 17

PowerShell : Identification de l’espace disque restant sur des serveurs

Bonjour à tous,

Aujourd’hui, je me suis dit “ tiens j’aurai bien besoin d’un petit script qui me remonte l’espace disque restant sur une partie ou l’ensemble de mes serveurs ou VMs”.

 

Et voila :

Get-WMIObject Win32_LogicalDisk -filter “DriveType=3″ -computer (Get-Content c:\scripts\serveurs.txt) | Select SystemName,DeviceID,VolumeName,@{Name=”size(GB)”;Expression={“{0:N1}” -f($_.size/1gb)}},@{Name=”freespace(GB)”;Expression={“{0:N1}” -f($_.freespace/1gb)}} | Out-GridView

 

C’est tout simple, mais ça permet d’avoir une vue rapide des serveurs qui sont en manques d’espace disque. Il suffit juste de créer un fichier texte avec l’ensemble des serveurs que vous souhaitez analyser.

 

Bien sûr, il pourra être améliorer mais c’est déjà une bonne base (On pourrait imaginer par exemple un envoi par mail quotidien pour faire un suivi avec des niveaux couleurs pour les différents seuils pour une lecture plus rapide).

 

A bientôt.

 

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/97

nov 19

VEEAM BACKUP ACADEMY

Bonjour à tous,

 

VEEAM a créer un site web qui permet de se former et de se certifier sur la sauvegarde et la restauration des environnements virtualisés (VMware / Hyper-V).

 

http://www.backupacademy.com/

 

Les vidéos sont fortes intéressantes et permettent de revoir des choses qu’il est possible d’oublier comme le fonctionnement des snapshots entre les différentes versions d’ESX et d’autres choses du genre.

 

Pour finir, vous pouvez passer un examen pour avoir un certificat comme celui-ci.

 

cert.php

 

Allez, à vos vidéos et votre certification. Smile

 

A+

 

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/94

juin 13

VMware vSphere : Comment aligner les partitions VMDK à l’Offset 64 avant d’installer un OS ou une partition de données ??

Bonjour à tous,

Aujourd’hui, je vais vous parler d’un truc super important que beaucoup de gens oublies lors du déploiement de VM ou de la création de Template : L’alignement des partitions.

Effectivement, pour tous les OS antérieurs à Windows 2008 (Bloc de 1 Mo), il faut impérativement aligner les partitions dans les disques VMDK à l’Offset 64.

De base, un Windows 2003 crée une partition à un Offset de 63 ce qui décale les blocs et donc réduit nettement les performances au niveau du SAN.

Netapp a écrit un papier dessus : http://media.netapp.com/documents/tr-3747.pdf

 

On va donc voir, dans cette article, comment aligner une partition avec l’outil Gparted.

 

Télécharger Gparted : http://sourceforge.net/projects/gparted/files/

1. On boote sur le live CD de Gparted. Ensuite, on clique sur l’onglet terminal :

image

2. On va ensuite créer une partition. On va donc lancer la commande fdisk.

Attention, il faut bien faire débuter la partition à l’offset 64 comme montrer ci dessous.

image

3. Ensuite, on vérifie via la commande fdisk –lu que la partition créée est bien alignée.

 

Attention, ne surtout pas formater avec le disque d’installation de Windows.

 

Et voilà, maintenant vous avez une partition alignée. Je vous conseille de le faire sur des Templates, ça vous évitera  de refaire cette amnip à chaque fois.

 

A+

 

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/90

avr 14

Problème de provisionning avec View Composer et les Linked Clones dans View 4.6

Bonsoir à tous,

Un de mes collègues a eu un soucis étrange chez un de ses clients. Il installe toute sa plateforme View CS, View vCenter et View Composer.

Jusque là tout va bien.

Puis vient le temps de créer un pool avec un master déjà existant de Windows XP (Qui fonctionnait très bien sous View 4.5).

Et la, une erreur apparaît. Il commence bien à cloner et à créer le replica mais dès que la customisation des VMs approche, il plante lamentablement.

Voici l’erreur :

Impossible de trouver le fichier [DATASTORES]VM/sdd

Le soucis c’est que le message d’erreur n’est pas du tout explicite et il n’arrive pas à provisionner les VMs.

Après pas mal de recherche, il s’avère, le petit coquin, que si on installe les serveurs Windows 2008 R2 en français et ben le provisionning foire.

Après avoir tout repassé dans la langue de Shakespeare, plus aucun problème de provisionning alors que le master et tous les comptes et la config sont identiques.

Donc, maintenant vous êtes prévenus.

Installer les serveurs Windows 2008 R2 en anglais sinon y’a des chances que vous soyez obligé de tout refaire.

A bientôt.

Nicolas

======================= Update du 31 Mai 2011 ============================

Bonjour à tous,

 

Voici l’explication du problème et vous allez voir c’est tout bête.

En fait le service “VMware Unified File Access”  a besoin de créer un dossier temporaire “C:\Windows\TEMP\vmware-temp\vmware-System\vmount-temp”. UFA utilise le compte System qui en français s’écrit “Système” et donc il n’arrive pas à créer le dossier car il utilise le nom du compte de service pour la création du dossier.

Pour résoudre ce problème sans réinstaller en Anglais, Il faut donc créer un compte d’administration local sans caractère “à la française” sur la machine et l’associer au service UFA.

Et hop le tour est joué.

A bientôt.

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/82

fév 08

VMware Partner Exchange 2011 : Jour 1 à 3

Bonjour à tous,

Je vous écrit en direct de ma salle de formation au VMware Partner Exchange 2011 à Orlando.

Voila maintenant 3 jours que je suis en formation béta VMware vCloud : Architecturing the Cloud

Et je peux vous dire que c’est très intéressant mais pas beaucoup plus. J’ai la chance de faire partie des premier former officiellement au design du Cloud VMware.

Cela concerne les produits suivants :

vSphere + vCenter

vCloud Director 1.0

ChargeBack

vShield Edge

Mon avis la dessus :

Je trouve malgré tout que le cloud selon VMware est très contraignant et restrictif pour le moment. Il est très compliqué de faire de l’optimisation du stockage avec ce type de solution et le réseau devient vite une énorme usine à gaz.

bref, mon avis, même si ça se déploie énormément aux USA, le produit est encore un peu jeune pour nous français. :)

info importante qui n’a rien à voir, je vais tenter dans la semaine la version Béta de la certification Desktop de VMware.

Je vous ferai un feedback par la suite.

A bientôt.

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/83

fév 03

P2V d’une VM SLES de XEN vers vSphere

Bonsoir à tous,

Aujourd’hui, j’ai passé mon après midi pour migrer via vConverter une VM SLES sous XEN vers vSphere 4.1.

Contexte :

Serveur Novell SUSE 10 SP3 hébergé sur un serveur XEN

Kernel XEN qui ne peut fonctionner sous vSphere 4.1

Impossible de faire du V2V avec l’outil vConverter car type de VM non supportée

Procédure suivie :

P2V de la VM via vConverter

Démarrage en mode rescue via le DVD

Mise à jour de la VM en précisant bien le fait qu’il faut remettre le kernel-default

Nettoyage de Grub pour supprimer toutes traces du Kernel XEN

Validation de la VM pour mise en prod

Et voila, je vous fait partager mon expérience sur ce sujet car y’a pas des masses de doc sur comment virtualiser correctement une VM XEN qui de plus est en paravirtualisée.

Bonne soirée et à bientôt.

Nicolas

Share

Lien Permanent pour cet article : http://www.my-v-world.fr/archives/80

Articles plus anciens «

» Articles plus récents