复制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
}

提前感谢并道歉,如果这似乎是一个帖子中的很多问题:(

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

关于您的另一个问题:

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. 
}

我已经做了很多订阅迁移,需要能够移动和连接数据磁盘,非常类似。

我总是从这个开始:

$lun = -1
## If multiple Data Disks it will prompt for the LUN, start at 0
foreach ($ddisk in $datadisks) {
$luns = ++$lun
$getddisk = Get-AzDisk -ResourceGroupName $destinationrg -DiskName $ddisk
Write-output $ddisk.id
$newvm = Add-AzVMDataDisk -vm $newvm -Name $ddisk -CreateOption Attach - 
ManagedDiskId $getddisk.id -Caching Readonly -storageaccounttype 
Premium_LRS -Lun $luns
}

最新更新