Archive

Articles taggués ‘Machines Virtuelles’

Afficher tous les Snapshots VMWare en cours

Voici un méthode très rapide pour afficher les snapshots en cours sur tous les VMs de votre vSphere.
VMWare recommande de ne pas créer plus de 2-3 snapshots par VM et que les snapshots n’aient pas un durée supérieur à 24-72 heures.
Il est donc important de contrôler régulièrement la présence des snapshots oubliés.

?View Code POWERSHELL
Get-Vm | Get-Snapshot | ft Name,SizeGB,Created -GroupBy Vm

Un article intéressant sur les Snapshots VMWare: Best practices for virtual machine snapshots in the VMware environment

Identifier et compter les VM démarrées

Ce weekend, je doit arrêter et redémarrer dans un délais relativement court une soixantaine de machines virtuelles.
Le système sur lequel je vais intervenir contient également des VMs qui sont déjà arrêtées et qui ne devront pas être redémarrées.
Pour ne pas oublier une VM lors de l’arrêt ou du démarrage, j’ai créer deux scripts.

Le premier va me permettre d’avoir une image des VMs qui sont démarrées.

?View Code POWERSHELL
$vm = Get-VM | Where-Object { $_.PowerState -eq "PoweredOn" }
$file = ".\VM-StopAndStart.txt"
$resfile = New-Item -ItemType file -Path $file -Force
Add-Content -Path $resfile -Value $vm

J’aurai ainsi dans un fichier la liste des VMs sur lesquelles je dois intervenir. Je le lancerai juste avant le début de l’opération.

Pendant les opérations d’arrêt et de redémarrage, j’utiliserai ce second script.

?View Code POWERSHELL
cls
$inv = Get-Content -Path .\VM-StopAndStart.txt"
$vms = Get-VM
$on = 0
$off = 0
Foreach ($vm in $vms) {
if ($vm.PowerState -eq "PoweredOn" -and $inv -match $vm.name){
Write-Host "$vm is PoweredOn" -ForegroundColor Green
$on++
}
Elseif ($vm.PowerState -eq "PoweredOff" -and $inv -match $vm.name){
Write-Host "$vm must be PoweredOn" -ForegroundColor Red
$off++
}
Elseif ($vm.PowerState -eq "PoweredOff" -and $inv -notmatch $vm.name){
Write-Host "$vm must stay PoweredOff" -ForegroundColor Gray
}
}
Write-Host "`nPoweredOn: $on - PoweredOff: $off`n" -ForegroundColor Magenta

J’aurai donc ainsi rapidement la liste des machines que je dois arrêter ou redémarrer et leur nombre.

Exporter l’état des disques des machines virtuelles

Ce script export dans un fichier la capacité et le taux d’occupation des disques logiques de toutes le machines virtuelles de votre datacenter.
Pour prévenir des problèmes de saturation des disques des machines virtuelles dans un environnement important, je voulais un script qui m’exporte dans un fichier le taux d’occupation des volumes de chacune de VMs sous Windows ou Linux.
Ce script PowerCli consulte toutes les VMs l’architecture et fait un état de chaque disque. Il calcul l’espace en GB et le pourcentage de disque libre.

?View Code POWERSHELL
$date = (Get-Date).ToString("ddMMyyyyhhmmss")
$file = ".\Export_vS\" + $date + "-VMDisksState.csv"
$resfile = New-Item -ItemType file -Path $file -Force
Add-Content -Path $resfile -Value "Name;Volume;Capicty GB;Free GB;Free %"
Get-VM  | foreach { 
$disks = $_.guest.disks
Foreach ($disk in $disks) {
if ( $disk.Capacity -ne $null ){
$FreeSpace = [math]::round([int64]$disk.FreeSpace/1GB,2)
$Pourcent =  [math]::round(([int64]$disk.FreeSpace*100)/$disk.Capacity)
$Capacity = [math]::round([int64]$disk.Capacity/1GB,2)
Add-Content -Path $resfile -Value "$($_.name);$($disk.path);$($Capacity);$($FreeSpace);$($pourcent)"
}
Else {
Add-Content -Path $resfile -Value "$($_.name);Stopped"
}
}
}