【问题标题】:How to revert an azure disk back to its former snapshot?如何将 azure 磁盘恢复到以前的快照?
【发布时间】:2018-03-30 09:07:04
【问题描述】:

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

我不希望从快照创建新磁盘或虚拟机,只是还原。

【问题讨论】:

    标签: azure azure-virtual-machine snapshot


    【解决方案1】:

    我现在如何恢复到磁盘的快照(通过门户或 命令行界面)?

    您的意思是要使用此快照来回滚您的系统?

    很遗憾,目前 Azure 支持此功能,我们无法使用快照恢复。

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

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

    【讨论】:

    • 感谢您的简洁说明
    • 我遇到了同样的问题,Azure 支持将虚拟机恢复为快照的方式吗?我创建了磁盘快照,但没有找到恢复到此快照的方法
    【解决方案2】:

    这适用于使用 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
    

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

    【讨论】:

      【解决方案3】:

      我使用 Set-AzVMOSDisk 使用 Azure PowerShell 成功完成了此操作。有一个 module 很遗憾只能恢复它创建的快照,但它的代码演示了它是如何工作的。

      总结:

      Get-AzSnapshot -ResourceGroupName "..." # to find the Disk ID
      $vm = Get-AzVM -Name "..."
      $old_disk = Get-AzDisk -Name $vm.StorageProfile.OsDisk.name
      $diskconf = New-AzDiskConfig -AccountType $old_disk.sku.name -Location $old_disk.Location -SourceResourceId "Id of the disk" -CreateOption Copy
      $newdisk = NewAzDisk -Disk $diskconf -ResourceGroupName "..." -DiskName "OS_disk_$((New-Guid).ToString())"
      Set-AzVMOSDisk -VM $vm -ManagedDiskId $newdisk.Id -Name $newdisk.Name
      Update-AzVM -ResourceGroupName "..." -VM $vm
      

      【讨论】:

        【解决方案4】:

        我是用下面的 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 
        

        【讨论】:

          猜你喜欢
          • 2019-06-21
          • 2019-11-25
          • 2019-04-19
          • 2017-07-08
          • 1970-01-01
          • 1970-01-01
          • 2015-11-22
          • 1970-01-01
          • 2021-11-14
          相关资源
          最近更新 更多