Azure PowerShell ve CLI kullanarak bir sanal makineyi Bölgesel kullanılabilirlik alanından Bölgesel kullanılabilirlik alanına taşıma
Bu makalede, Azure tek örnekli VM'leri bölgesel kullanılabilirlik alanlarından bölgesel kullanılabilirlik alanlarına taşımak için Azure PowerShell ve CLI cmdlet'lerini kullanma ayrıntıları verilmiştir. Kullanılabilirlik alanı, bir Azure bölgesinde fiziksel olarak ayrılmış bir alandır. Uygulamalarınızı ve verilerinizi olası olmayan bir hataya veya veri merkezinin tamamının kaybına karşı korumak için kullanılabilirlik alanlarını kullanın.
Kullanılabilirlik alanı kullanmak için, desteklenen bir Azure bölgesinde sanal makinenizi oluşturun.
Önkoşullar
Taşıma işlemine başlamadan önce aşağıdaki gereksinimleri doğrulayın:
Gereksinim | Açıklama |
---|---|
Abonelik izinleri | Taşımak istediğiniz kaynakları içeren abonelikte Sahip erişimine sahip olduğunuzdan emin olun. Yönetilen kimlik şu izinlere ihtiyaç duyar: - Katkıda Bulunan rolüyle sağlanan kullanıcı aboneliğinde kaynak yazma veya oluşturma izni. - Rol atamaları oluşturma izni. Genellikle Sahip veya Kullanıcı Erişimi Yöneticisi rolleriyle ya da rol atamaları veya yazma izni atanmış özel bir rolle Microsoft.Authorization kullanılabilir. Veri paylaşımı kaynağının yönetilen kimliğine zaten Azure veri deposuna erişim izni verildiyse, bu izin gerekli değildir. Azure rolleri hakkında daha fazla bilgi edinin. |
VM desteği | Desteklenen bölgeleri gözden geçirin . - Desteklenen işlem, depolama ve ağ ayarlarını denetleyin. |
VM sistem durumu | Taşımak istediğiniz VM'lerin bölgesel taşımayı denemeden önce iyi durumda olması gerekir. Vm bölgesel taşımayı denemeden önce tüm bekleyen yeniden başlatmaların ve zorunlu güncelleştirmelerin tamamlandığından ve Sanal Makinenin çalıştığından ve iyi durumda olduğundan emin olun. |
PowerShell ve CLI gereksinimlerini gözden geçirme
Taşıma kaynaklarının çoğu, azure portalını, PowerShell'i veya CLI'yı kullanarak birkaç özel durumla aynıdır.
İşlem | Portal | PowerShell/CLI |
---|---|---|
Taşıma koleksiyonu oluşturma | Taşıma koleksiyonu (taşıdığınız tüm bölgesel VM'lerin listesi) otomatik olarak oluşturulur. Gerekli kimlik izinleri portal tarafından arka uçta atanır. | PowerShell cmdlet'lerini veya CLI cmdlet'lerini kullanarak şunları yapabilirsiniz: - Koleksiyona yönetilen kimlik atayın. - Koleksiyona bölgesel VM'ler ekleyin. |
Kaynak taşıma işlemleri | Adımları doğrulayın ve Kullanıcı ayarı değişikliklerini doğrular. Taşımayı başlatma, taşıma işlemini başlatır ve hedef bölgede kaynak VM'nin bir kopyasını oluşturur. Ayrıca, yeni oluşturulan VM'nin hedef bölgede taşınmasını son haline de ekler. | PowerShell cmdlet'leri veya CLI cmdlet'leri : - Koleksiyona bölgesel VM'ler ekleme - Bağımlılıkları çözme - Taşıma işlemini gerçekleştirin. - Taşımayı işleyin. |
Örnek değerler
Betik örneklerimizde şu değerleri kullanırız:
Ayar | Value |
---|---|
Subscription ID | subscription-id |
Bölgeyi Taşı | Doğu ABD |
Kaynak grubu (taşıma koleksiyonu için meta verileri tutma) | RegionToZone-DemoMCRG |
Koleksiyon adını taşıma | RegionToZone-DemoMC |
Taşıma koleksiyonunun konumu | eastus2euap |
IdentityType | SystemAssigned |
VM adı | demoVM-MoveResource |
Taşıma Türü | RegionToZone |
Azure'da oturum açma
Connect-AzAccount
komutuyla Azure aboneliğinizde oturum açın ve ekrandaki yönergeleri izleyin.
Connect-AzAccount –Subscription "<subscription-id>"
Taşıma koleksiyonunu ayarlama
MoveCollection nesnesi, taşımak istediğiniz kaynaklar hakkındaki meta verileri ve yapılandırma bilgilerini depolar. Taşıma koleksiyonu ayarlamak için aşağıdakileri yapın:
- Taşıma koleksiyonu için bir kaynak grubu oluşturun.
- MoveCollection kaynağının oluşturulabilmesi için hizmet sağlayıcısını aboneliğe kaydedin.
- Yönetilen kimlikle MoveCollection nesnesini oluşturun. MoveCollection nesnesinin Kaynak Taşıyıcı hizmetinin bulunduğu aboneliğe erişebilmesi için, abonelik tarafından güvenilen sistem tarafından atanan yönetilen kimliğe (eski adıyla Yönetilen Hizmet Kimliği (MSI)) ihtiyacı vardır.
- Yönetilen kimlik için Kaynak Taşıyıcı aboneliğine erişim izni verin.
Bir kaynak grubu oluştur
New-AzResourceGroup ile koleksiyon meta verilerini ve yapılandırma bilgilerini taşıma için bir kaynak grubu oluşturmak üzere aşağıdaki cmdlet'i kullanın. Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.
New-AzResourceGroup -Name "RegionToZone-DemoMCRG" -Location "EastUS"
Çıktı:
Çıktı, yönetilen diskin VM ile aynı kullanılabilirlik alanında olduğunu gösterir:
ResourceGroupName : RegionToZone-DemoMCRG
Location : eastus
ProvisioningState : Succeeded
Tags :
Name Value
======= ========
Created 20230908
ResourceId : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG
Kaynak sağlayıcısını kaydetme
MoveCollection kaynağının aşağıdaki gibi oluşturulabilmesi için Microsoft.Migrate kaynak sağlayıcısını kaydedin:
Register-AzResourceProvider -ProviderNamespace Microsoft.Migrate
Kayıt için bekleyin:
While(((Get-AzResourceProvider -ProviderNamespace Microsoft.Migrate)| where {$_.RegistrationState -eq "Registered" -and $_.ResourceTypes.ResourceTypeName -eq "moveCollections"}|measure).Count -eq 0) { Start-Sleep -Seconds 5 Write-Output "Waiting for registration to complete." }
MoveCollection nesnesi oluşturma
MoveCollection nesnesi oluşturun ve ona aşağıdaki gibi bir yönetilen kimlik atayın:
New-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" -MoveRegion "eastus" -Location "eastus2euap" -IdentityType "SystemAssigned" -MoveType "RegionToZone"
Çıktı:
Etag Location Name
---- -------- ----
"3a00c441-0000-3400-0000-64fac1b30000" eastus2euap RegionToZone-DemoMC
Not
Bölgesel-bölgesel taşıma için MoveType
parametresi RegionToZone olarak ayarlanmalıdır ve MoveRegion
parametre de bölgesel taşıma yapılan kaynakların bulunduğu konum olarak ayarlanmalıdır. ve parametrelerinin SourceRegion
TargetRegion
gerekli olmadığından ve null olarak ayarlanması gerektiğinden emin olun.
Yönetilen kimliğe erişim izni verme
Yönetilen kimliğe Kaynak Taşıyıcı aboneliğine aşağıdaki gibi erişim verin. Abonelik sahibi olmanız gerekir.
MoveCollection nesnesinden kimlik ayrıntılarını alın.
$moveCollection = Get-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" $identityPrincipalId = $moveCollection.IdentityPrincipalId
Azure Kaynak Taşıyıcı'nın kaynakları taşımaya yardımcı olması için aboneliğinize erişebilmesi için gerekli rolleri kimliğe atayın. Taşıma için gerekli izinler listesini gözden geçirin.
New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName Contributor -Scope "/subscriptions/<subscription-id>"" New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName "User Access Administrator" -Scope "/subscriptions/<subscription-id>"
Taşıma koleksiyonuna bölgesel VM'ler ekleme
Taşımak istediğiniz mevcut kaynak kaynaklarının kimliklerini alın. Hedef kaynak ayarları nesnesini oluşturun ve taşıma koleksiyonuna kaynak ekleyin.
Not
Taşıma koleksiyonuna eklenen kaynaklar aynı abonelikte olmalıdır, ancak farklı kaynak gruplarında olabilir.
Hedef kaynak ayarı nesnesini aşağıdaki gibi oluşturun:
$targetResourceSettingsObj = New-Object Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings $targetResourceSettingsObj.ResourceType = "Microsoft.Compute/virtualMachines" $targetResourceSettingsObj.TargetResourceName = "RegionToZone-demoTargetVm" $targetResourceSettingsObj.TargetAvailabilityZone = "2"
Çıktı
ResourceType TargetResourceGroupName TargetResourceName TargetAvailabilitySetId TargetAvailabilityZone TargetVMSize UserManagedIdentity ------------ ----------------------- ------------------ ----------------------- ---------------------- ------------ ------------------- Microsoft.Compute/virtualMachines RegionToZone-demoTargetVm 2
Kaynak ekleme
Add-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -SourceId "/subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm" -Name "demoVM-MoveResource" -ResourceSetting $targetResourceSettingsObj
Çıktı
DependsOn : {} DependsOnOverride : {} ErrorsPropertiesCode : ErrorsPropertiesDetail : ErrorsPropertiesMessage : ErrorsPropertiesTarget : ExistingTargetId : Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/Re gionToZone-DemoMC/moveResources/demoVM-MoveResource IsResolveRequired : False JobStatusJobName : JobStatusJobProgress : MoveStatusErrorsPropertiesCode : DependencyComputationPending MoveStatusErrorsPropertiesDetail : {} MoveStatusErrorsPropertiesMessage : The dependency computation is not completed for resource - /subscriptions/<Subscription-id>/resourcegroups/PS-demo-R egionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm'. Possible Causes: Dependency computation is pending for resource. Recommended Action: Validate dependencies to compute the dependencies. MoveStatusErrorsPropertiesTarget : MoveStatusMoveState : MovePending Name : demoVM-MoveResource ProvisioningState : Succeeded ResourceSetting : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings SourceId : /subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/ RegionToZone-demoSourceVm SourceResourceSetting : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings SystemDataCreatedAt : 9/8/2023 6:48:11 AM SystemDataCreatedBy : xxxxx@microsoft.com SystemDataCreatedByType : User SystemDataLastModifiedAt : 9/8/2023 6:48:11 AM SystemDataLastModifiedBy : xxxxx@microsoft.com SystemDataLastModifiedByType : User TargetId : Type :
Ayarları değiştirme
Azure VM'lerini ve ilişkili kaynakları taşırken hedef ayarlarını değiştirebilirsiniz. Taşıma koleksiyonunu doğrulamadan önce yalnızca hedef ayarlarını değiştirmenizi öneririz.
Değiştirebileceğiniz ayarlar şunlardır:
- Sanal makine ayarları: Kaynak grubu, VM adı, VM kullanılabilirlik alanı, VM SKU'su, VM anahtar kasası ve Disk şifreleme kümesi.
- Ağ kaynağı ayarları: Ağ arabirimleri, sanal ağlar (VNet/) ve ağ güvenlik grupları/ağ arabirimleri için şunları yapabilirsiniz:
- Hedef bölgede mevcut bir ağ kaynağını kullanın.
- Farklı bir ada sahip yeni bir kaynak oluşturun.
- Genel IP/Yük Dengeleyici: SKU ve Bölge
Ayarları aşağıdaki gibi değiştirin:
Özelliklerini düzenlemek istediğiniz taşıma kaynağını alın. Örneğin, bir VM'yi almak için şunu çalıştırın:
$moveResourceObj = Get-AzResourceMoverMoveResource -MoveCollectionName " RegionToZone-DemoMCRG " -ResourceGroupName " RegionToZone-DemoMC " -Name "PSDemoVM"
Kaynak ayarını hedef kaynak ayarı nesnesine kopyalayın.
$TargetResourceSettingObj = $moveResourceObj.ResourceSetting
Hedef kaynak ayarı nesnesinde parametresini ayarlayın. Örneğin, hedef VM'nin adını değiştirmek için:
$TargetResourceSettingObj.TargetResourceName="PSDemoVM-target"
Taşıma kaynağı hedef ayarlarını güncelleştirin. Bu örnekte, VM'nin adını PSDemoVM yerine PSDemoVMTarget olarak değiştiriyoruz.
Update-AzResourceMoverMoveResource -ResourceGroupName " RegionToZone-DemoMCRG " -MoveCollectionName " RegionToZone-DemoMC -SourceId "/subscriptions/<Subscription-d>/resourceGroups/PSDemoRM/providers/Microsoft.Compute/virtualMachines/PSDemoVM" -Name "PSDemoVM" -ResourceSetting $TargetResourceSettingObj
Bağımlılıkları çözme
Eklediğiniz bölgesel VM'lerin diğer kaynaklara bağımlılıkları olup olmadığını denetleyin ve gerektiğinde ekleyin.
Bağımlılıkları aşağıdaki gibi çözün:
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Çıkış (bağımlılıklar mevcut olduğunda)
AdditionalInfo : Code : Detail : EndTime : EndTime : 9/8/2023 6:52:14 AM Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/operations/bc68354b-ec1f-44cb-92ab-fb3b4ad90229 Message : Name : bc68354b-ec1f-44cb-92ab-fb3b4ad90229 Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any StartTime : 9/8/2023 6:51:50 AM Status : Succeeded
Taşıma koleksiyonuna eklenen kaynakların listesini almak için:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" $list.Name
Çıktı:
demoVM-MoveResource mr_regiontozone-demosourcevm661_d6f18900-3b87-4fb5-9bdf-12da2f9fb185 mr_regiontozone-demosourcevm-vnet_d8536bf5-2d5f-4778-9650-32d0570bc41a mr_regiontozone-demosourcevm-ip_6af03f1f-eae8-4541-83f5-97a2506cfc3e mr_regiontozone-demosourcevm-nsg_98d68420-d7ff-4e2d-b758-25a6df80fca7 mr_nrms-timkbo3hy3nnmregiontozone-demosourcevm-vnet_f474c880-4823-4ed3-b761-96df6500f6a3
Kaynakları kaynak koleksiyonundan kaldırmak için bu yönergeleri izleyin.
VM SKU'su, Kota ve Kapasite doğrulamalarını Kullanılabilirlik Alanları
Azure, seçilen Kullanılabilirlik Alanında sanal makine SKU'su olmadığında veya yeterli Kota veya Kapasite olmadığında öneriler sağlar. Burada bu önerilerin bazı örnekleri ve sanal makine SKU'su kullanılamıyorsa yapılması gereken eylemler verilmiştir.
VM SKU'su kullanılamıyor
Kaynak sanal makine boyutu Standard_DC1ds_v3
seçili kullanılabilirlik alanında 1
kullanılamadığında.
Önerilen Eylem: Aynı kullanılabilirlik alanında farklı bir sanal makine boyutu seçin veya ilgili önerilen VM boyutuna sahip farklı bir kullanılabilirlik alanı seçin.
Öneriler:
- SKU: Standard_DC1ds_v3, Bölgeler: [ 2 ]
- SKU: Standard_DC2ds_v3, Bölgeler: [ 2 ]
- SKU: Standard_DC4ds_v3, Bölgeler: [ 2 ]
- SKU: Standard_DC1s_v3, Bölgeler: [ 2 ]
- SKU: Standard_D2ds_v5, Bölgeler: [ 2, 3 ]
- SKU: Standard_D2as_v4, Bölgeler: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, Bölgeler: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, Bölgeler: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Bölgeler: [ 2, 3 ]
Kapasite önerileri
Seçili kullanılabilirlik alanında 1
geçerli seçim sanal makine boyutu Standard_DC1ds_v3
için kapasite önerileri.
Önerilen Eylem: Başarılı bir dağıtım olasılığını artırmak için Azure önerilen diğer sanal makine boyutlarını ve bölgelerini tanımlamıştır. Sorunsuz bir şekilde dağıtmak için, aynı kullanılabilirlik alanında farklı bir VM boyutu veya ilgili sanal makine boyutuna sahip farklı bir kullanılabilirlik alanı seçin.
Öneriler:
- SKU: Standard_DC1ds_v3, Bölgeler: [ 2 ]
- SKU: Standard_DC2ds_v3, Bölgeler: [ 2 ]
- SKU: Standard_DC4ds_v3, Bölgeler: [ 2 ]
- SKU: Standard_DC1s_v3, Bölgeler: [ 2 ]
- SKU: Standard_D2ds_v5, Bölgeler: [ 2, 3 ]
- SKU: Standard_D2as_v4, Bölgeler: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, Bölgeler: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, Bölgeler: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Bölgeler: [ 2, 3 ]
Önerileri ele alın
VM SKU'sunun bulunamadığını veya kapasite sorunu olduğu durumları ele almak için taşıma kaynağını güncelleştirin ve ardından çözümle'yi yeniden çalıştırın. Başvuru örneği aşağıda verilmiştir:
Sanal makine taşıma kaynak nesnesini önerilere göre yeni Bölgeye veya SKU'ya güncelleştirin.
$targetResourceSettingsObj.TargetVmSize = "Standard_DC1ds_v3" $targetResourceSettingsObj.TargetAvailabilityZone = "3"
Sanal makine taşıma kaynağını güncelleştirme
Add-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -SourceId "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Compute/virtualMachines/vmtwo" -Name "demoVM-MoveResource2" -ResourceSetting $targetResourceSettingsObj
Çözümle'leri yeniden çalıştırın
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Yetersiz Kota
Seçilen sanal makine, kota yetersiz olduğundan kullanılabilirlik alanına taşınamıyor.
Önerilen Eylem: Yeterli olmayan kota bulundu. Bağlantıya bakın ve desteğe başvurun.
VM kaynaklarını taşımayı başlatma
Invoke-AzResourceMoverInitiateMove -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource") -MoveResourceInputType "MoveResourceId"
Çıktı
AdditionalInfo :
Code :
Detail :
EndTime : 9/8/2023 7:07:58 AM
Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/o
perations/d3e06ac3-a961-4045-8301-aee7f6911160
Message :
Name : d3e06ac3-a961-4045-8301-aee7f6911160
Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
StartTime : 9/8/2023 7:01:31 AM
Status : Succeeded
İşleme
İlk taşıma işleminden sonra taşımayı işlemeli veya atmalısınız. İşleme , hedef bölgeye taşıma işlemini tamamlar.
Taşımayı aşağıdaki gibi işleyin:
Invoke-AzResourceMover-VMZonalMoveCommit -ResourceGroupName "RG-MoveCollection-demoRMS" -MoveCollectionName "PS-centralus-westcentralus-demoRMS" -MoveResource $('psdemovm111', 'PSDemoRM-vnet','PSDemoVM-nsg', ‘PSDemoVM’) -MoveResourceInputType "MoveResourceId"
Çıktı:
AdditionalInfo :
Code :
Detail :
EndTime : 9/22/2023 5:26:55 AM
Id : /subscriptions/e80eb9fa-c996-4435-aa32-5af6f3d3077c/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/operations/35dd1d93-ba70-4dc9-a17f-7d8ba48678d8
Message :
Name : 35dd1d93-ba70-4dc9-a17f-7d8ba48678d8
Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
StartTime : 9/22/2023 5:26:54 AM
Status : Succeeded
Kaynağı kaldırma
Aşağıdaki cmdlet'leri kullanarak tek bir kaynağı veya birden çok kaynağı kaldırabilirsiniz MoveCollection
:
Taşıma koleksiyonuna eklenen taşıma kaynaklarının listesini alın:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Bulduğunuz taşıma kaynaklarını kaldırın:
Invoke-AzResourceMoverBulkRemove -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>" -MoveResource $($list.Name)
Taşıma koleksiyonunu kaldırın:
Remove-AzResourceMoverMoveCollection -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Not
Yönetilen kimlik yetkilendirme sorunlarını gözlemlerseniz, bu adımları yeniden izleyerek yönetilen kimlikler erişimini yeniden etkinleştirin.
Kaynak bölgesel VM'leri silme
Taşıma işlemini tamamladıktan ve kaynakların hedef bölgede beklendiği gibi çalıştığını doğruladıktan sonra, şu kaynakları kullanarak her kaynak kaynağını silebilirsiniz:
Sonraki adımlar
Portal aracılığıyla tek örnekli Azure VM'lerini bölgesel yapılandırmadan bölgesel yapılandırmaya taşımayı öğrenin.