将托管 OS 磁盘快照还原到现有 VM
Restore managed OS disk snapshot to existing VM
与此类似 但 powershell 独占并且具有托管磁盘和现有 VM。
我拍了一张托管 OS 磁盘的快照,想恢复它,但不知道如何恢复。我尝试了很多方法,但现在认为即使解除分配 VM 也无法分离 OS 磁盘。无论我如何仔细研究 reference,我都找不到任何可以帮助我将快照恢复到现有磁盘的东西。这甚至可能吗?
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 或根据需要附加。
UPDATE: Official documentation can be found here. Please note
that in that example they use the -CreateOption Import
rather than
Copy like I did.
I can't find anything to help me restore a snapshot to an existing
disk. Is this even possible?
据我所知,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中找到这个托管磁盘了:
与此类似
我拍了一张托管 OS 磁盘的快照,想恢复它,但不知道如何恢复。我尝试了很多方法,但现在认为即使解除分配 VM 也无法分离 OS 磁盘。无论我如何仔细研究 reference,我都找不到任何可以帮助我将快照恢复到现有磁盘的东西。这甚至可能吗?
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 或根据需要附加。
UPDATE: Official documentation can be found here. Please note that in that example they use the
-CreateOption Import
rather than Copy like I did.
I can't find anything to help me restore a snapshot to an existing disk. Is this even possible?
据我所知,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中找到这个托管磁盘了: