复制 Azure OSDisks V DataDisks 和 powershell 将 Lun 设置为 0

问题描述

我有几个问题

我正在复制一些操作系统磁盘和一些数据磁盘,我对两者使用相同的过程,即创建快照,然后从快照创建磁盘。我在网上阅读了一些内容,其中有两个进程似乎是相同的任务。拍摄快照并从快照创建磁盘时,操作系统磁盘和数据磁盘之间有什么区别吗?

此外,我正在尝试附加上述数据磁盘,并且 LUN 编号始终从 1 开始,有谁知道我如何使其从 0 开始。我拥有的代码

$datadisks = Get-Azdisk | ? {$_.name -like "*$ddisk*"} 
$lun = 0

foreach ($disk in $datadisks){

$lun += 1

$vm = Add-AzVMDatadisk -CreateOption Attach -VM $vm -Lun $lun -ManageddiskId $disk.Id
Update-AzVM -VM $vm -ResourceGroupName $VMRG -Verbose

}

提前致谢并道歉,如果这在一篇文章中似乎有很多问题:)

解决方法

操作系统磁盘和数据磁盘快照的行为应与为 VM 拍摄的快照相同,以便能够回滚对磁盘所做的更改,直到它们合并到 VM 上为止。

关于您的其他问题:

foreach ($disk in $dataDisks){

$vm = Add-AzVMDataDisk -CreateOption Attach -VM $vm -Lun $lun -ManagedDiskId $disk.Id
Update-AzVM -VM $vm -ResourceGroupName $VMRG -Verbose
$i++ # You were modifying the variable before it it had finished. 

}