如何将azure磁盘恢复为以前的快照?

时间:2017-10-18 13:14:01

标签: azure azure-virtual-machine snapshot

我有一个天蓝色的虚拟机,并通过门户网站选择了它的磁盘,并创建了它的快照。我现在如何恢复磁盘的快照(通过门户或CLI)?

我不打算从快照创建新磁盘或虚拟机,只需还原即可。

4 个答案:

答案 0 :(得分:2)

  

我现在如何恢复磁盘的快照(通过门户网站或   CLI)?

您是否想要使用此快照来回滚系统?

不幸的是,目前Azure 支持此功能,我们无法使用快照还原。

在Azure中,我们无法直接还原Azure VM,我们应该从该快照创建磁盘或VM。

默认情况下,用于Azure备份的快照。在Azure恢复服务中,我们可以从快照还原VM。恢复此VM是使用此操作系统磁盘创建新VM,而不是回滚。

答案 1 :(得分:1)

这适用于使用 azure 门户中的云外壳的 Eastus zone 1

$SnapshotName = "my_snapshot"
$SnapshotResourceGroup = "my_resource_group" 
$DiskNameOS = "my_new_snapshotdisk" 
$snapshotinfo = Get-AzSnapshot -ResourceGroupName $SnapshotResourceGroup -SnapshotName $snapshotName
New-AzDisk -DiskName $DiskNameOS (New-AzDiskConfig  -zone 1 -Location eastus -CreateOption Copy -SourceResourceId $snapshotinfo.Id) -ResourceGroupName $SnapshotResourceGroup

之后我进入了门户中的虚拟机,选择了“磁盘”并选择了“交换操作系统磁盘”。

答案 2 :(得分:0)

我使用Set-AzVMOSDisk在Azure PowerShell中成功地做到了。有一个module,不幸的是只能恢复它创建的快照,但是其代码演示了它的工作原理。

总结:

connect 
received status: Connected. Hello!
ask server to join room 
message from room: Welcome to Notifications, 1582428076724 
message from room: Welcome to Notifications, 1582428080023 
message from room: Welcome to Notifications, 1582428082916

答案 3 :(得分:0)

我是用下面的 PS 脚本完成的。它停止 VM,使用快照创建一个新磁盘,然后将 VM 交换到这个新磁盘。已在停止的 VM 上创建快照。

$resourceGroupName = '...' 
$location = 'eastus2' 
$vmName = '...'
$snapshotName = '...' 

$snapshotinfo = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName 

$vm = Get-AzVM `
-ResourceGroupName $resourceGroupName `
-Name $vmName 

Stop-AzVM -ResourceGroupName $resourceGroupName -Name $vm.Name -Force

# Create the new disk that you want to swap in
$newDiskName = $($vmName + "_disk_" + (Get-Date).ToString("yyyyMMddhhmm"))
$newDisk = New-AzDisk -DiskName $newDiskName (New-AzDiskConfig  -zone 1 -Location $location -CreateOption Copy -SourceResourceId $snapshotinfo.Id) -ResourceGroupName $resourceGroupName

Set-AzVMOSDisk -VM $vm -ManagedDiskId $newDisk.Id -Name $newDisk.Name 
Update-AzVM -ResourceGroupName $resourceGroupName -VM $vm 

Start-AzVM -Name $vm.Name -ResourceGroupName $resourceGroupName