如何将 Azure 磁盘恢复到以前的快照?
How to revert an azure disk back to its former snapshot?
我有一个 Azure 虚拟机,通过门户选择了它的磁盘,并创建了它的快照。我现在如何恢复到磁盘的快照(通过门户或 CLI)?
我不想从快照创建新磁盘或 VM,只是恢复原状。
How do I now revert back to that snapshot for the Disk (via portal or
CLI)?
您是说要使用此快照来回滚您的系统吗?
遗憾的是,目前 Azure 不支持此功能,我们无法使用快照恢复。
在 Azure 中,我们不能直接还原 Azure VM,我们应该从该快照创建磁盘或 VM。
默认情况下,快照用于 Azure 备份。在 Azure 恢复服务中,我们可以从快照中恢复 VM。还原此 VM 是使用此 OS 磁盘创建新 VM,而不是回滚。
我使用 Azure PowerShell 成功地做到了,使用 Set-AzVMOSDisk. There is a 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
这在 Azure 门户
中使用云 shell 适用于 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
之后我转到门户中的 VM,选择“磁盘”并选择“交换 os 磁盘”。
我是用下面的 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
我有一个 Azure 虚拟机,通过门户选择了它的磁盘,并创建了它的快照。我现在如何恢复到磁盘的快照(通过门户或 CLI)?
我不想从快照创建新磁盘或 VM,只是恢复原状。
How do I now revert back to that snapshot for the Disk (via portal or CLI)?
您是说要使用此快照来回滚您的系统吗?
遗憾的是,目前 Azure 不支持此功能,我们无法使用快照恢复。
在 Azure 中,我们不能直接还原 Azure VM,我们应该从该快照创建磁盘或 VM。
默认情况下,快照用于 Azure 备份。在 Azure 恢复服务中,我们可以从快照中恢复 VM。还原此 VM 是使用此 OS 磁盘创建新 VM,而不是回滚。
我使用 Azure PowerShell 成功地做到了,使用 Set-AzVMOSDisk. There is a 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
这在 Azure 门户
中使用云 shell 适用于 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
之后我转到门户中的 VM,选择“磁盘”并选择“交换 os 磁盘”。
我是用下面的 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