PowerCLI için faydalı scriptler ve komutlar

PowerCLI için faydalı scriptler ve komutlar
Adem YETİM tarafından 6 sene önce eklendi. 1,725 kez okundu.

VMware ortamındaki sanal makinaların yönetimi ve performans iyileştirmesi yapmak için PowerCLI Toolkit` ni kullanarak sanal sistemleriniz ile ilgili iş süreclerini otomatize edebilirsiniz aşağıdaki örnek komut satırları ve scriptler bu sürecin hızlandırmasında size yardımcı olacaktır;

 Get-VM ile CPU Rezervasyonu

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.CPUReservationMhz -ne ‘0’}

“0” CPU Rezervasyon komutu:

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.CPUReservationMhz -ne ‘0’} | Set-VMResourceConfiguration -CPUReservationMhz 0

 

Get-VM ile CPU Limiti

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.CPULimitMhz -ne ‘-1’}

Sınırsız CPU limit komutu:

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.CPULimitMhz -ne ‘-1’} | Set-VMResourceConfiguration -CPULimitMhz $null

 

Get-VM ile Bellek Rezervasyonu

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.MemReservationMB -ne ‘0’}

“0” Bellek Rezevasyon komutu:

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.MemReservationMB -ne ‘0’} | Set-VMResourceConfiguration -MemReservationMB 0

 

Get-VM ile Bellek Limiti

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.MemLimitMB -ne ‘-1’}

Sınırsız Bellek limit komutu:

Kaynak Kodu
Get-VM | Get-VMResourceConfiguration | where {$_.MemLimitMB -ne ‘-1’} | Set-VMResourceConfiguration -MemLimitMB $null

 

Sanal Makinaların VMWare Tools Versiyonu

Kaynak Kodu
get-vm |% { get-view $_.id } | select Name, @{ Name=”;ToolsVersion”;; Expression={$_.config.tools.toolsVersion}}

 

Vmhost Sunucularının Versiyonu

Kaynak Kodu
get-vmhost | where-object { $_.version -eq “4.1.0” } | select name,version

 

Get-Datastore ile sanal sistemler için kullanılan storage kapasite bilgisi:

Kaynak Kodu
Get-Cluster “Cluster İsmi” | Get-VM | Select Name, @{N=”Datastore”;E={Get-Datastore -vm $_}}, UsedSpaceGB, ProvisionedSpaceGB | sort Name | Export-Csv G:\Scripts\datastore.csv

 

Cluster daki Hostların path sayıları

Kaynak Kodu
Get-Cluster “Cluster İsmi” | Get-VMHost | where {$_.State -eq “Connected”} | Select Name, @{N=”TotalPaths”;E={($_ | Get-ScsiLun | Get-ScsiLunPath | Measure-Object).Count}}

 

Cluster daki tüm hostların Storage lerini Scan etme

Kaynak Kodu
ForEach ($esxhost in (Get-Cluster “Cluster İsmi” | Get-VMHost)) {Get-VmHostStorage $esxhost -RescanAllHba}

 

Scriptler

Aşağıdaki kodları çalıştırabilmek için textfile olarak “.ps1” uzantısında kaydedip  powershell komut satırında çalıştırabilirsiniz.

Ballooning ve Swapping ile Resource Pools

Kaynak Kodu

$myCol = @()

foreach($clus in (Get-Cluster)){

 foreach($rp in (Get-ResourcePool -Location $clus | Get-View | Where-Object `

  {$_.Name -ne "Resources" -and `

   $_.Summary.QuickStats.BalloonedMemory -ne "0"})){

   $Details = "" | Select-Object Cluster, ResourcePool, `

   SwappedMemory ,BalloonedMemory

    $Details.Cluster = $clus.Name

    $Details.ResourcePool = $rp.Name

    $Details.SwappedMemory = $rp.Summary.QuickStats.SwappedMemory

    $Details.BalloonedMemory = $rp.Summary.QuickStats.BalloonedMemory

    $myCol += $Details
  }
}

$myCol

 

Ballooning ve Swapping ile Sanal Makinalar

Kaynak Kodu

$myCol = @()

foreach($vm in (Get-View -ViewType VirtualMachine | Where-Object `

  {$_.Summary.QuickStats.BalloonedMemory -ne "0"})){

   $Details = "" | Select-Object VM, `

   SwappedMemory ,BalloonedMemory

    $Details.VM = $vm.Name

    $Details.SwappedMemory = $vm.Summary.QuickStats.SwappedMemory

    $Details.BalloonedMemory = $vm.Summary.QuickStats.BalloonedMemory

    $myCol += $Details

  }

$myCol

 

VMs Network Bilgisi

Kaynak Kodu

(get-vm) | %{

  $vm = $_

  echo $vm.name----

  $vm.Guest.Nics | %{

    $vminfo = $_

    echo $vminfo.NetworkName $vminfo.IPAddress $vminfo.MacAddress

    echo ";`n";
  }
}

 

VMs Açılış Süresi

Kaynak Kodu

$LastBootProp = @{

  Name = 'LastBootTime'

    Expression = {

      ( Get-Date ) - ( New-TimeSpan -Seconds $_.Summary.QuickStats.UptimeSeconds )

    }

}

Get-View -ViewType VirtualMachine -Property Name, Summary.QuickStats.UptimeSeconds | Select Name, $LastBootProp
       }

 

VMs Uptime Bilgisi

Bu sorgulama host makinalarının uptime bilgilerini gösterir :

Kaynak Kodu

$vms = get-vm | where { ($_.PowerState -eq "PoweredOn") } | get-view | where { ($_.Guest.GuestFamily -eq "windowsGuest") }

foreach ($vm in $vms) {

   $vmname = $vm.name

   $hostname = $vm.Guest.HostName

   write-host "Starting with $vmname with hostname $hostname"

   Get-WmiObject -computer $hostname

   $objUptime = (Get-WmiObject -computer $hostname -class Win32_PerfFormattedData_PerfOS_System).SystemUpTime

   write-host "$vmname heeft $objUptime as uptime"

}

 

  • Burhan Abdiler: Elinize sağlık Fatih Bey , detaylı incelemeniz konuyu tamamen açıklayıcı nitelikte ....
  • Tufan ULU: Adem kardeşim, tebrik ediyorum ve başarılarının devamını diliyorum,...
  • Rafet Arslanyı lmaz: Adem Hocam, Tebrikler.. Umarım devamıda gelir :)...
  • Serkan ERSAN: Çok başarılı ve güzel bir anlatım olmuş. Emeğinize sağlık, teşekkürler....
  • Adrenalin .: Teşekkürler Adem Bey....

1 Yorum Bulunuyor

  1. Cemal
    Nisan 11, 2012 - 8:01 am

    Faydalı makale, eline sağlık hocam.

Yorum ekleyin

Doğrulama Kodunuz : 16210668

ÖNEMLİ:
Yorumlarınızı eklerken lütfen girmiş olduğunuz bilgilerin size ait olduğundan emin olunuz. Geçersiz posta adresleri iel yapılan yorumlara yanıt vermek istenildiğinde size ulaşamayacağımız için, geçerli / aktif olarak kullandığınız posta adresiniz ile yorum eklemeniz daha sağlıklı olacaktır. Her yorum yazarı tarafından sorumlu tutulur.

Sayfa başı

Güncellemeler, yeni eklenen içeriklerden anında haberdar olmak için mail listemize adınızı soyadınızı ve posta adresinizi yazarak abone olabilirsiniz.

Adınız Soyadınız
E posta adresiniz
Kaydol