将托管操作系统磁盘快照还原到现有VM

时间:2017-04-20 15:40:20

标签: powershell azure azure-powershell azure-managed-disk

与此one类似,但仅限PowerShell以及托管磁盘和现有VM。

我拍了一张托管操作系统磁盘的快照,想要恢复它,但无法弄清楚如何。我已经尝试了很多东西,但现在认为即使取消分配VM,也无法分离操作系统磁盘。无论我通过reference多少,我找不到任何东西来帮助我将快照恢复到现有磁盘。这甚至可能吗?

2 个答案:

答案 0 :(得分:3)

  

我找不到任何可以帮助我将快照恢复到现有的快照   磁盘。这甚至可能吗?

据我所知,Azure 支持将快照还原到现有磁盘。

但我们可以使用快照创建托管磁盘并附加到现有VM。

以下是PowerShell脚本使用快照创建托管磁盘:

PS C:\Users> $resourceGroupName = 'vm'
PS C:\Users> $snapshotResourceGroupName = 'vm'
PS C:\Users> $snapshotName = 'manageddisk1'
PS C:\Users> $managedDiskType = 'StandardLRS'
PS C:\Users> $location = 'eastus'
PS C:\Users> $managedDiskCreateOption = 'Copy'
PS C:\Users> $diskName = 'manageddisk2'
PS C:\Users> $snapshot = Get-AzureRmSnapshot -SnapshotName $snapshotName -ResourceGroupName $snapshotResourceGr
oupName
PS C:\Users> $diskConfig = New-AzureRmDiskConfig -AccountType $managedDiskType -Location $location -CreateOptio
n $managedDiskCreateOption -SourceResourceId $snapshot.Id
PS C:\Users> New-AzureRmDisk -DiskName $diskName -Disk $diskConfig -ResourceGroupName $resourceGroupName


AccountType        : StandardLRS
TimeCreated        : 4/21/2017 1:26:27 PM
OsType             : Windows
CreationData       : Microsoft.Azure.Management.Compute.Models.CreationData
DiskSizeGB         : 128
EncryptionSettings :
OwnerId            :
ProvisioningState  : Succeeded
Id                 : /subscriptions/5384xxxx-xxxx-xxxx-xxxx-xxxxe29axxxx/resourceGroups/vm/providers/Microsoft.Compute/
                     disks/manageddisk2
Name               : manageddisk2
Type               : Microsoft.Compute/disks
Location           : eastus
Tags               :

如果要将其附加到现有VM,我们可以使用此脚本:

PS C:\Users> $datadisk2 = Get-AzureRmDisk -ResourceGroupName vm -DiskName manageddisk2
PS C:\Users> $vmName = 'jasonvm'
PS C:\Users> $rgname = 'vm'
PS C:\Users> $dataDiskName = 'manageddisk2'
PS C:\Users> $vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName
PS C:\Users> $vm = Add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataD
isk2.Id -Lun 2
PS C:\Users> Update-AzureRmVM -VM $vm -ResourceGroupName $rgName

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK

通过这种方式,我们可以在Azure VM中找到此托管磁盘: enter image description here

答案 1 :(得分:1)

New-AzureRMDiskConfig命令有一个开关-SourceResourceId,可用于指向您创建的快照。

例如:

$diskConfig = New-AzureRMDiskConfig -CreateOption Copy -SourceResourceId <<id>> -Location westus -DiskSizeGB 64 -AccountType StandardLRS

资源ID是您的托管磁盘快照的ID,可以在门户网站中该快照的属性下找到。

之后,您将从此磁盘配置创建一个新磁盘。例如

$disk = New-AzureRmDisk -DiskName "name" -Disk $diskConfig -ResourceGroupName rgname

运行后,您将在目标资源组中看到一个新磁盘。然后,您可以使用它来创建VM或根据需要进行附加。

  

更新:可以找到官方文档here。请注意   在那个例子中,他们使用-CreateOption Import而不是   像我一样复制。