本文介绍如何在复制Azure VM 时排除磁盘。 可以排除磁盘以优化已使用复制带宽或这些磁盘使用的目标端资源。 目前,此功能只能通过Azure PowerShell使用。
Note
建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
先决条件
开始之前:
- 请确保了解 灾难恢复体系结构和组件。
- 查看所有组件的支持要求。
- 确保具有 AzureRm PowerShell“Az”模块。 若要安装或更新 PowerShell,请参阅安装Azure PowerShell模块。
- 请确保您已创建恢复服务保管库,并且至少已对虚拟机执行过一次保护。 如果尚未完成这些操作,请按照使用 Azure PowerShell 为Azure虚拟机设置灾难恢复的过程进行操作。
- 如果您要查找有关向已启用复制的 Azure VM 添加磁盘的信息,请参阅这篇文章。
为何从复制中排除磁盘
可能需要从复制中排除磁盘,因为:
在排除的磁盘上变动的数据并不重要,也不需要复制。
你希望通过不复制数据来保存存储和网络资源。
如何从复制中排除磁盘
在本示例中,我们将一台位于中国东部 2 区域、包含一个操作系统磁盘和三个数据磁盘的虚拟机复制到中国北部 3 区域。 虚拟机的名称为 AzureDemoVM。 排除磁盘 1,保留磁盘 2 和 3。
获取要复制的虚拟机的详细信息
# Get details of the virtual machine
$VM = Get-AzVM -ResourceGroupName "A2AdemoRG" -Name "AzureDemoVM"
Write-Output $VM
ResourceGroupName : A2AdemoRG
Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/A2AdemoRG/providers/Microsoft.Compute/virtualMachines/AzureDemoVM
VmId : 1b864902-c7ea-499a-ad0f-65da2930b81b
Name : AzureDemoVM
Type : Microsoft.Compute/virtualMachines
Location : chinaeast2
Tags : {}
DiagnosticsProfile : {BootDiagnostics}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
获取有关虚拟机磁盘的详细信息。 稍后在开始复制 VM 时,将使用此信息。
$OSDiskVhdURI = $VM.StorageProfile.OsDisk.Vhd
$DataDisk1VhdURI = $VM.StorageProfile.DataDisks[0].Vhd
复制 Azure 虚拟机
对于以下示例,我们假设已有缓存存储帐户、复制策略和映射。 如果没有这些内容,请按照使用Azure PowerShell为Azure虚拟机设置灾难恢复过程。
使用托管磁盘复制Azure虚拟机。
#Get the resource group that the virtual machine must be created in when failed over.
$RecoveryRG = Get-AzResourceGroup -Name "a2ademorecoveryrg" -Location "China North 3"
#Specify replication properties for each disk of the VM that is to be replicated (create disk replication configuration).
#OsDisk
$OSdiskId = $vm.StorageProfile.OsDisk.ManagedDisk.Id
$RecoveryOSDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType
$RecoveryReplicaDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType
$OSDiskReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $ChinaEast2CacheStorageAccount.Id `
-DiskId $OSdiskId -RecoveryResourceGroupId $RecoveryRG.ResourceId -RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType `
-RecoveryTargetDiskAccountType $RecoveryOSDiskAccountType
# Data Disk 1 i.e StorageProfile.DataDisks[0] is excluded, so we will provide it during the time of replication.
# Data disk 2
$datadiskId2 = $vm.StorageProfile.DataDisks[1].ManagedDisk.id
$RecoveryReplicaDiskAccountType = $vm.StorageProfile.DataDisks[1]. StorageAccountType
$RecoveryTargetDiskAccountType = $vm.StorageProfile.DataDisks[1]. StorageAccountType
$DataDisk2ReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $ChinaEast2CacheStorageAccount.Id `
-DiskId $datadiskId2 -RecoveryResourceGroupId $RecoveryRG.ResourceId -RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType `
-RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
# Data Disk 3
$datadiskId3 = $vm.StorageProfile.DataDisks[2].ManagedDisk.id
$RecoveryReplicaDiskAccountType = $vm.StorageProfile.DataDisks[2]. StorageAccountType
$RecoveryTargetDiskAccountType = $vm.StorageProfile.DataDisks[2]. StorageAccountType
$DataDisk3ReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $ChinaEast2CacheStorageAccount.Id `
-DiskId $datadiskId3 -RecoveryResourceGroupId $RecoveryRG.ResourceId -RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType `
-RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
#Create a list of disk replication configuration objects for the disks of the virtual machine that are to be replicated.
$diskconfigs = @()
$diskconfigs += $OSDiskReplicationConfig, $DataDisk2ReplicationConfig, $DataDisk3ReplicationConfig
#Start replication by creating a replication protected item. Using a GUID for the name of the replication protected item to ensure uniqueness of name.
$TempASRJob = New-ASRReplicationProtectedItem -AzureToAzure -AzureVmId $VM.Id -Name (New-Guid).Guid -ProtectionContainerMapping $EusToWusPCMapping -AzureToAzureDiskReplicationConfiguration $diskconfigs -RecoveryResourceGroupId $RecoveryRG.ResourceId
启动复制操作成功后,VM 数据将复制到恢复区域。
可以转到Azure门户,并在“复制的项”下查看复制的 VM。
复制过程首先会在恢复区域中为虚拟机的复制磁盘预置一个副本。 此阶段称为初始复制阶段。
初始复制完成后,复制将进入差异同步阶段。 此时,虚拟机受到保护。 选择受保护的虚拟机以查看是否排除了任何磁盘。
后续步骤
- 了解如何 运行测试故障转移。