如何更换Azure Scale Set VM OS磁盘(从快照还原)

时间:2019-03-06 20:07:53

标签: azure azure-virtual-machine

是否可以替换Linux Azure Scale Set VM上的OS磁盘?我正在尝试从每个虚拟机的操作系统和数据磁盘具有唯一信息的快照中还原多个节点群集。通过将比例集模型修改为不包含数据磁盘,将单个VM手动更新为最新模型,然后将恢复的数据磁盘添加到VM,可以替换原始数据磁盘。我未能成功将缩放比例集模型修改为没有OS磁盘(尝试使用空的StorageProfile或StorageProfile.OsDisk节进行更新-没有错误,但模型未更改)。我也尝试过在OS磁盘上复制快照,但是收到“找不到磁盘xxx”错误。有没有办法从快照还原比例集?

1 个答案:

答案 0 :(得分:1)

您可以为虚拟机规模集实例创建快照,并从该快照创建托管磁盘。

实现该Azure PowerShell的步骤:

  1. 从虚拟机规模集的实例创建快照:

    $ rgname =“ myResourceGroup”     $ vmssname =“ myVMScaleSet”     $ Id = 0     $ location =“美国东部”

    $vmss1 = Get-AzVmssVM -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $Id     
    $snapshotconfig = New-AzSnapshotConfig -Location $location -AccountType Standard_LRS -OsType Windows -CreateOption Copy -SourceUri $vmss1.StorageProfile.OsDisk.ManagedDisk.id
    New-AzSnapshot -ResourceGroupName $rgname -SnapshotName 'mySnapshot' -Snapshot $snapshotconfig
    
  2. 从快照创建托管磁盘:

    $ snapshotName =“ myShapshot” $ snapshot = Get-AzSnapshot -ResourceGroupName $ rgname -SnapshotName $ snapshotName
    $ diskConfig = New-AzDiskConfig -AccountType Premium_LRS-位置$ location -CreateOption复制-SourceResourceId $ snapshot.Id $ osDisk = New-AzDisk -Disk $ diskConfig -ResourceGroupName $ rgname -DiskName($ snapshotName +'_Disk')

参考文档:https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-faq#how-do-i-take-a-snapshot-of-a-virtual-machine-scale-set-instance