VMware

Farklı zaman aralıklarında (dakika, saat, günlük) VM değişim oranının tahmini

Geçenlerde projelerden birinde sanal makinelerin belirli bir süre disk değişiminin nasıl görüleceği ile ilgili bir soru geldi. Siteler arasında replikasyon yapmayı planlıyorduk ve müşteri, sanal makinelerin replikasyonu için ne kadar bant genişliğine ihtiyaç duyduğunu öğrenmek istiyor. Aslında, 15 dakikalık bir RPO için iki site arasındaki bant genişliğinin ne olması gerektiğini ve mevcut bant genişliğinin hangi RPO için uygun olduğunu bilmek istiyor. İzleme araçlarına sahip değiller ve izleme sistemini kurmaya karar vermiyorlar.

VMware’deki bir veri merkezindeki sanal makineler için tüm disk yazma işlemlerini görmenin bir yolunu bulamadım, ancak bir VM’nin sanal diskinde harika çalışan ve kaç tane yazma olduğunu öğrenmeyi kolaylaştıran gerçek zamanlı bir değişiklik buldum.

Yukarıdaki şekilde görebileceğiniz gibi, yazma hızını gerçek zamanlı olarak belirlemek için vCenter’ın Gelişmiş Performans özelliğini kullanıyoruz. Bu iyi bir çözüm ama yeterli değil çünkü veri merkezindeki tüm sanal makineler için disk yazma işlemlerine ihtiyacım var. Bu yüzden, her bir sanal makine için bu değeri toplamanın bir yolunu bulmam gerekiyor ve ardından, belirli bir süre içinde depolamaya kaç yazmanın gönderildiğini ve ne kadar verinin değiştiğini belirleyebilirim. Böylece bir senaryo yazmaya başladım! Komut dosyasının kendisinin iyi ve eksiksiz olduğunu ve bir veri merkezindeki sanal makinelerin tüm yazma işlemlerini farklı zaman aralıklarında kolayca alabileceğini düşünüyorum.

#######
# Connect to vCenter Server
#######

Connect-VIServer -Server "vCenter IP Address" -User "Your Username" -Password "Your Password"

#######
# Create a new table to store the write rate along with the timestamp
#######

$table = @()

#######
# Retrieve all powered virtual machines in the data center, filtering according to your own requirements, e.g. all virtual machines in a specific host or datastore
#######

$vms = @((Get-VM | where {$_.PowerState -eq "PoweredOn"}) | Sort Name)

#######
# Specify how long you want the script to run. If you want it to run for 15 minutes, please enter "-Minutes 15"
#######

$timeout = new-timespan -Hours 8

#######
# Calculation of hard disk write rate of each virtual machine and sum per time unit
#######

$sw = [diagnostics.stopwatch]::StartNew()
while ($sw.elapsed -lt $timeout){
$writedata = 0 ;
foreach ($VM in $VMs){
	Get-Stat -Entity $vm -Stat "disk.write.average" -maxsamples 1 -Realtime -Instance "" | %{
		$Details = "" | select Time, Writedata
        $Details.Time = $_.Timestamp
        $writedata += $_.Value
        $Details.Writedata = $writedata		
	}
}

#######
# Specify the interval at which the script should be executed
#######

start-sleep -seconds 60
$table += $Details
}

#######
# Specify output location 
#######

$table | Export-Csv C:\dailychange.csv -NoTypeInformation

Aşağıdaki şekilde gördüğünüz gibi sanal makine yazma hızını her dakika için KB (KiloByte) olarak alıyorum, yani ortamımdaki dakika dakika değişimleri gösteriyor ve ortamım sadece bir test olduğu için, sayıların değeri düşük.

Serkan Çataltaş

1987 Yılında Malatya'da doğdu. Netaş'ta çalışmalarına devam etmektedir.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir