如何确定分配给 Azure 驱动器的字母?
Posted
技术标签:
【中文标题】如何确定分配给 Azure 驱动器的字母?【英文标题】:How to determine what letter is assigned to Azure drive? 【发布时间】:2016-01-27 05:16:07 【问题描述】:我的 Azure VM 有两个附加磁盘。一个需要de删除,另一个包含数据库:)
如何确定我的目标驱动器是什么? oO
官方文档说“分离前检查”.. 好的 - 怎么样?!.. 他们展示的唯一内容是如何获取操作系统磁盘,但其他两个磁盘不包含操作系统。
我知道如何找到操作系统磁盘,但在我的情况下不需要:
# Get storage account name
$myServiceName = "bla"
$myVMname = "bla"
# Get Virtual machine
$vm = Get-AzureVM -ServiceName $myServiceName -Name $myVMname
# Get storage account name and path to vhd
$vmOSDisk = $vm | Get-AzureOSDisk;
这个命令也没有告诉我任何有用的信息:
Get-AzureDisk | Get-AzureDisk | Format-list DiskName, AttachedTo, DiskSizeInGB, OS
我尝试缩小音量以查看powershell中的变化,但它不起作用。
更新: 不幸的是,有 Win Server 2008 R2,它不支持“get-disk”。但我可以改用其他功能
$drive = gwmi Win32_DiskPartition
$drive
我可以使用来自
的东西Win32_LogicalDisk Win32_MappedLogicalDisk Win32_DiskPartition Win32_DiskDrive Win32_LogicalDiskRootDirectory Win32_DiskQuota Win32_LogonSessionMappedDisk Win32_LogicalDiskToPartition Win32_DiskDrivePhysicalMedia Win32_DiskDriveToDiskPartition Win32_OfflineFilesDiskSpaceLimit
相反,但如果我理解正确,则没有必要。磁盘管理器中的order是什么意思? 那么在 D:\ 之后添加的磁盘会得到从零开始的 LUN 编号吗?
所以我成功删除了第一卷,认为 E 的 LUN 为零,而 H 的 LUN 为 1
【问题讨论】:
添加磁盘的顺序可能与 LUN 不一致,请注意。我通过向 VM 添加两个磁盘来测试我的理论。它们被添加为 LUN 0(磁盘 2)和 1(磁盘 3)。然后我删除了第一个磁盘并专门为 LUN 5 添加了一个新磁盘。磁盘管理器将新磁盘显示为磁盘 2,因为它替换了我删除的磁盘;但是,它是 LUN 5。 Ufff)希望MS能在功能中加入这个能力)现在很晦涩.. 【参考方案1】:如果你使用的是 Azure 资源管理器,答案会略有不同。
首先,远程进入目标机器并运行以下 PowerShell:
get-disk | format-list number, path
接下来,在运行 Azure PowerShell cmdlet 的机器上执行以下操作:
get-AzureRmVm -ResourceGroupName yourResourceGroupName -Name yourVmName
get-AzureRmVm 的输出将为您提供数据磁盘及其属性的列表,包括 LUN 编号。
【讨论】:
【参考方案2】:将磁盘附加到 Azure VM 时,LUN(逻辑单元号)必须与其关联。如果您通过门户附加,它可能会默认此编号,但该编号对于每个磁盘必须是唯一的。值可以是 0-15,因为您可以附加的最大数据磁盘数是 16。弄清楚 LUN 是确定哪个驱动器是哪个驱动器的关键。
首先,远程进入目标机器并运行以下 PowerShell:
get-disk | format-list number, path
这将输出驱动器列表及其驱动器号(插槽)和路径。对于数据磁盘,路径将类似于:
\?\scsi#disk&ven_msft&prod_virtual_disk#000001#57f56307-b6bf-19d0-94f2-00a0c91efb8b
请特别注意 disk#000001# 位。据我所知,那里的数字与 LUN 匹配。在这种情况下,它表示它是 LUN 1。
查看要删除的驱动器的磁盘管理屏幕,并记下左侧的磁盘编号。将其与上述命令返回的编号匹配以找到 LUN 编号,然后您可以匹配要删除的驱动器的 LUN。
接下来,在运行 Azure PowerShell cmdlet 表单的机器上执行以下操作:
get-azurevm iaasdiag | Get-AzureDataDisk | ft MediaLink, Lun
这将拉回存储中磁盘的名称和 LUN 值。
这应该为您提供远程计算机上的磁盘到存储磁盘的映射。
我认为可能有一种方法可以更好地在 PowerShell 中获取 LUN,但我并没有忽略这一点。我做了一些测试,结果似乎证明了这一点。
注意:这种类型的匹配可能是 Azure 中存储系统的某些内部工作原理。虽然它现在可以工作,但它也可能在未来发生变化,恕不另行通知。如果他们有更好的方法来确定这一点,那就太好了。
【讨论】:
嗨!感谢您的回复,我希望我能理解它)用您的回答更新了第一篇文章以上是关于如何确定分配给 Azure 驱动器的字母?的主要内容,如果未能解决你的问题,请参考以下文章
Azure VM 使用 D: 盘作为 Windows VM 上的数据驱动器