Azure Üzerinde Resource Taşıma İşlemleri – Managed Disk’in Farklı Region’a Taşınması

Bu makalemde taşıma süreçlerinizde oldukça işinize yarayacak bir script’ten bahsedeceğim. Azure kullanan şirketler belli sebeplerden ötürü kaynaklarını farklı lokasyonlarda konuşlandırabilirler. Tabi bu da farklı lokasyonlara VPN yapma gerekliliğini ve ek maliyetleri ortaya çıkartır. Bizim önerdiğimiz her zaman kaynakların şirkete en yakın olan data center üzerinde tutulmasıdır. Bu bağlamda tek bir VNET içerisinde farklı subnetlerde kaynaklar yapılandırılabilir. Bunun sonucunda da tek bir VPN gateway ile Azure ortamını onpremise ortam ile bağlayabilirsiniz.

Bunlara ek olarak suncuların birbirleri ile farklı lokasyonlarda olması, bazen bu sunucular arasında data alışverişi olması durumunda ekstra data transfer maliyetine sebep olacaktır. Ayrıca bir birleri ile iletişim kuracak sunucular farklı lokasyonlarda olursa iletişim performansı da oldukça düşecektir.

Tüm bu sebeplerden ötürü birbirleri ile ilişkili kaynakların aynı lokasyonda olmasını şiddetle öneriyoruz. Hatta tüm ortamın aynı lokasyonda olmasını, FKM merkezinin farklı bir lokasyonda bulunmasını tavsiye ediyoruz.

Şimdi bu anlattığım konuların taşıma ile ne ilgisi var diye düşünebilir siniz. :) Oldukça ilgili aslında. Şirketler belki promosyonlardan ötürü belkide yanlışlıkla Azure ortamlarını farklı lokasyonlarda oluşturabilirler. Daha sonrasında da yukarıdaki sınırlılıkları öğrenip tüm ortamını tek bir lokasyonda toplamak isteyebilirler. İşte tam bu noktada da sıkıntılar başlar.

Bazı kaynaklar location base olduğu için taşınamazlar. Bu sebeple bunları bilip bazı önlemler almamız gerekebilir.

Backup’ta bunlardan birisi. Makinelerin backup’larını alıp diğer lokasyona restore etmek isteyebilirsiniz. Ancak böyle birşey ne yazıkki mümkün değil. Çünkü backup lokasyona bağlı bir servis ve alınan backup’ları ne yazıkki farklı lokasyonlara götüremiyoruz.

ASR teknolojisi ile makineleri lokasyonlar arasında taşımam mümkün. Bununda sınırlılığı şu an preview olması ve tüm region’larda desteklenmemesi. Destekleniyor olsa dahi Managed Disk’e sahip VM’ler ne yazıkki ASR ile taşınmıyor.

Tüm bu sınırlılıklardan ötürü bir script yardımı ile Managed Disklerin farklı bir lokasyona kopyalanmasını sağlayabiliyoruz. Tabi bu kopyalama ile asıl yapılan şey Managed Diskin VHD’ye dönüştürülüp kopyalanması işlemidir. Bu işlem sonunda elimizde istediğimiz lokasyonda Managed Diskin bir VHD kopyası bulunacaktır. Sonrasında bu VHD’yi direkt olarak kullanabileceğimiz gibi Managed bir disk’e kaynak olarak gösterip de kullanabiliriz.

Aşağıdaki script üzerinde yapılan işlemleri adım adım açıkladım.

#Managed disk’in bulunduğu subscription ID’si.

$subscriptionId “Subscription ID”

#Managed Disk’in bulunduğu resource group.
$resourceGroupName =“Managed Disk’in Resource Group ismi”
#Managed Disk ismi.
$diskName=“Managed Disk İsmi”
#Access signature duration
$sasExpiryDuration=“17400”
#Diskin kopyalanacağı storage account ismi.
$storageAccountName=“Storage Account İsmi”
#Diskin storage account içerisinde kopyalanacağı container ismi.
$storageContainerName=“vhds”
#Hedef storage account’a erişmeyi sağlayan storage account key’i.
$storageAccountKey=‘Storage Account Key’i’
#Oluşturulacak kopya diskin ismi. (Vhd uzantılı olmalı)
$destinationVHDFileName=“diskname.vhd”
#Managed diskin bulunduğu subscription context’i.
Select-AzureRmSubscription -SubscriptionId $SubscriptionId
#Kopyalama işlemi için SAS token oluşturma işlemi.
$sas=Grant-AzureRmDiskAccess -ResourceGroupName $ResourceGroupName -DiskName $diskName -DurationInSecond $sasExpiryDuration -Access Read

#Vhd kopyalanırken kullanılacak storage context’in oluşturulması
$destinationContext New-AzureStorageContext –StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey

#Managed diskin VHD olarak kopyalanması
Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName

#Kopayalama işleminin monitor edilmesi
Get-AzureStorageBlobCopyState -Context $destinationContext -Blob $destinationVHDFileName -Container vhds

Bu işlemin ardından vhd kopyalandıktan sonra managed disk bölümüne gelerek tekrardan bu VHD’yi kaynak olarak gösterip Managed Disk oluşturulabilir.

Managed Disk oluşturulurken aşağıdaki resimdeki gibi browse butonuna basılarak ilgili vhd gösterilip, eğer bu bir OS diski ise işletim sistemi türü seçilip managed disk oluşturulabilir.

Resim – 1

Taşıma sırasında dikkat edilmesi gereken bir diğer önemli nokta ise SAS Token Duration’dır. Bu bizim Managed Disk’ten kopyalama yaparken erişim iznimizin olacağı süreyi ifade eder. Eğer disk boyutu büyükse ve bu süre küçük tutulursa süre dolduğunda authentication ile alakalı hata alınacaktır.Bu sebeple bu sürenin iyi hesap edilip yazılması gerekir. Önerim olabildiğinde bu süreyi geniş tutmanız olacaktır.

Bir sonraki makalede görüşmek üzere.

Kolay Gelsin.3Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-us/azure/virtual-machines/scripts/virtual-machines-windows-powershell-sample-copy-managed-disks-to-same-or-different-subscription

https://docs.microsoft.com/en-us/azure/virtual-machines/scripts/virtual-machines-windows-powershell-sample-create-vm-from-managed-os-disks

Fırat

TAGs: Azure ARM, Azure Resource Manager Move Process, Azure ARM Move, Move Azure Resource to another subscription,Azure resource copy, Move ASM to ARM, Azure Resource Manager Powershell, Azure ARM Move limitation,ARM Infrastructure, Move Managed Disk from one one subscription to another,Managed Disk Copy Options,Copy managed disk to another region

Yazı gezinmesi

Mobil sürümden çık