7 Mart 2013 Perşembe

HYPER-V R2’DE VHD BOYUTU NASIL ARTTIRILIR ?


HYPER-V R2’DE VHD BOYUTU NASIL ARTTIRILIR ?

Hyper-V Manager konsolunu açın.
Disk boyunutu arttırmak için alttaki resimde göreceğiniz Edit Disk seçeneğine tıklayın.



Açılış ekranını next tuşuna basarak geçin. Boyutunun arttırılmasını istediğiniz VHD dosyasını browse tuşuna basarak seçin. ( bu uygulama yapılırken, VHD’nin kullanımda olmadığını ve VM’in saved status konumunda olmadığına dikkat edin.) ayrıca bu uygulamanın snapshot’lar ile çalışan vhd’lerde yapılmamasına dikkat ediniz.


VHD’yi seçtikten sonra Next tuşuna bastığımızda aşağıdaki gibi 3 seçenek karşımıza çıkar.
Bunlardan birincisi; compact seçeneği, bu VHD’deki disk boyutunu küçültür. Bu küçültme işlemi, VHD’nin içinde kullanılmayan alanı kaldırarak yapmaktadır.
Diğer bir seçenek olan convert ise, Dynamic Disk’ten fixed Disk’e dönüştürmek için kullanılır. Bir hatırlatma yapmakta fayda var. Dynamic disk’ten fixed size diske bir VHD’yi dönüştürmek istemeniz durumunda Fiziksel Disk’inizin I/O performansının çok iyi olması gerekmektedir. Aksi halde yavaşlık problemi yaşayabilirsiniz.
Üçüncü seçenek olan  Expand’i tıklayıp Next tuşuna basın. Karşınıza aşağıdaki gibi bir pencere çıkacaktır.


Diskin boyutunu yükseltmek istediğiniz boyutu yazıp Next tuşuna basın ve finish ile yapmak istediğiniz işlemi tamamlayın.
Artık VHD’nizin kapasitesi artmış durumdadır.



Tüm bunları GUI aracılığı ile de yapmak istemezseniz aşağıdaki PowerShell script’i kullanarak da birkaç saniyede bu işlemi yapabilirsiniz.
Kırmızı ile belirtilen alana disk’inizin bulunduğu path’i ve yükseltilmesi gereken boyutu yazmanız gerekmektedir.

# Expanding a VHD

param(
    [string]$vhdPath = $(throw "D:\Data.vhd"),
    [string]$vhdSize = $(throw "2000")
)

# Size in bytes
$MB = [System.UInt64] $vhdSize*1024*1024

$ImageMgtService = get-wmiobject -class "Msvm_ImageManagementService" -namespace "root\virtualization"

# creating a dynamic vhd
$result = $ImageMgtService.ExpandVirtualHardDisk($vhdPath,$MB)

if($result.ReturnValue -eq 4096){
    $job = [wmi]$result.Job
    # waiting the job
    while($job.jobstate -lt 7){$job.get()}
    # Return some error code
    return $job.ErrorCode
}  
return $result.ReturnValue
------------------------------------------------------------------------------------------------------



Hiç yorum yok: