PowerCLI – Datastore Boş Alan Raporlama

Bu yazımda sıkça kullandığım bir PowerCLI script’ini paylaşmak istiyorum. Bir sistem yöneticisi düzenli olarak elinde ki kaynakları ve kullanım oranlarını gözlemleyebilmeli ve raporlamalıdır. Bu script ortamımızda bulunan bütün datastore’ları tarayıp içlerinde 100GB ve altında boş alanı olan datastore’ları listeliyor. Eğer çok büyük ve yoğun bir ortamınız varsa bu tip raporlamalar hayatınızı ciddi anlamda kurtarabilir.

vCenter içerisinde Alert tanımlamakta aynı şekilde bir kontrol ve uyarı öğesi olarak kullanılabilir Burada ki amacım toplu bir bakışı sağlayıp manuel işten de kurtulmaktı. Aynı zamanda bir scheduled task veya orchestrator yardımıyla günün belli saatlerinde size raporlar yollanmasını sağlayabilirsiniz.

Scripti adım adım incelersek:

  • İlk satırında vCenter’a tanımlı tüm DS’leri alarak kapasitelerini çıkartıyor
  • İkinci satırda DS’lerde ki boş alanları hesaplıyor
  • Üçüncü satırda datastore’un boş alanını kapasitesine bölerek yüzde değerini hesaplıyor
  • Son satırımızdaysa sadece boş alanı 100 GB’dan küçük olanları alıyor ve DS adı Scratch veya Local olan DS’leri rapora katmıyor.
Add-PSSnapin VMware.VimAutomation.Core

Connect-VIServer vc.emrebozlak.local

Get-Datastore | select Name, @{N="Capacity(GB)";E={[Math]::Round($_.CapacityMB/1024,2)}}, @{N="FreeSpaceGB"; E={[Math]::Round($_.FreeSpaceMB/1024,2)}}, @{N="Free Space (%)";E={[math]::Round(((100* ($_.FreeSpaceMB))/ ($_.CapacityMB)),0)}} | sort -Property "Free Space (%)" |Where-Object {$_.FreeSpaceGB -lt '100' } | where {$_.Name -notmatch "Scratch|Local"}

Scripte bazı değişiklikler yapmak isteyebilirsiniz mesela son satırda ki kısmında 100 yerine istediğiniz bir sayıyı yazarak rapora ne kadarlık boş alanı kalmış DS’lerin dâhil edileceğini belirlersiniz.

Where-Object {$_.FreeSpaceGB -lt '100' }

Farklı bir yaklaşımla raporlamanızı GB yerine boş alanın yüzdesi üzerinden yapmak isteyebilirsiniz. Bunun içinde aynı satırı şu şekilde değiştirirseniz boş alan/kapasite oranı yüzde 10 altında ki DS’ler listelenir.

Where-Object {$_. Free Space (%) -lt '10'}

Yukarıda ki script’in çıktısı aşağıda ki gibi bir konsol çıktı olacaktır.

 

Name           : DS1

Capacity(GB)   : 3071.75

FreeSpaceGB    : 95.29

Free Space (%) : 3

 

Name           : DS2

Capacity(GB)   : 3071.75

FreeSpaceGB    : 95.85

Free Space (%) : 3

 

Name           : Tier3

Capacity(GB)   : 99.75

FreeSpaceGB    : 3.80

Free Space (%) : 4

 

Umarım işinize yarar 🙂 Okuduğunuz için teşekkür ederim.

Bu blog yazısı Emre Bozlak tarafından paylaşılmıştır. Referans vererek istediğiniz gibi kullanabilirsiniz. Eğer bir sorunuz olursa eposta veya sosyal medya hesaplarım üzerinden bana ulaşabilirsiniz. Yazılarımı Twitter'dan @emrebozlak veya RSS üzerinden takip edebilirsiniz.

Leave a comment