使用 PowerShell 从快照创建托管磁盘
此脚本基于快照创建托管磁盘。 可以使用它基于 OS 和数据磁盘的快照还原虚拟机。 基于相应的快照创建 OS 和数据托管磁盘,然后通过附加托管磁盘创建新的虚拟机。 还可以通过附加基于快照创建的数据磁盘来还原现有 VM 的数据磁盘。
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
示例脚本
#Provide the subscription Id
$subscriptionId = 'yourSubscriptionId'
#Provide the name of your resource group
$resourceGroupName ='yourResourceGroupName'
#Provide the name of the snapshot that will be used to create Managed Disks
$snapshotName = 'yourSnapshotName'
#Provide the name of the Managed Disk
$diskName = 'yourManagedDiskName'
#Provide the size of the disks in GB. It should be greater than the VHD file size.
$diskSize = '128'
#Provide the storage type for Managed Disk. Acceptable values are Standard_LRS, Premium_LRS, PremiumV2_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS and StandardSSD_ZRS.
$storageType = 'Premium_LRS'
#Required for Premium SSD v2 and Ultra Disks
#Provide the Availability Zone you'd like the disk to be created in, default is 1
$zone=1
#Provide the Azure region (e.g. chinanorth) where Managed Disks will be located.
#This location should be same as the snapshot location
#Get all the Azure location using command below:
#Get-AzLocation
$location = 'chinanorth'
#Set the context to the subscription Id where Managed Disk will be created
Select-AzSubscription -SubscriptionId $SubscriptionId
$snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
#If you're creating a Premium SSD v2 or an Ultra Disk, add "-Zone $zone" to the end of the command
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id -DiskSizeGB $diskSize
New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName
性能影响 - 后台复制过程
从快照创建托管磁盘时,会启动后台复制过程。 你可以在此过程运行时将磁盘附加到 VM,但此操作会影响性能(4k 磁盘会受到读取影响,512e 受到读写影响)。 对于超级磁盘和高级 SSD v2,可以使用 Azure CLI 检查后台复制过程的状态。 Azure PowerShell 模块当前不支持此操作。
重要
不能使用以下部分来获取除超级磁盘或高级 SSD v2 以外的磁盘类型的后台复制过程状态。 其他磁盘类型始终会报告 100%。
脚本说明
此脚本使用以下命令基于快照创建托管磁盘。 表中的每条命令均链接到特定于命令的文档。
命令 | 注释 |
---|---|
Get-AzSnapshot | 获取快照属性。 |
New-AzDiskConfig | 创建用于磁盘创建的磁盘配置。 包括父快照的资源 ID、与父快照位置相同的位置以及存储类型。 |
New-AzDisk | 使用磁盘配置、磁盘名称和作为参数传递的资源组名称创建磁盘。 |
后续步骤
有关 Azure PowerShell 模块的详细信息,请参阅 Azure PowerShell 文档。
可以在 Azure Windows VM 文档中找到其他虚拟机 PowerShell 脚本示例。