如何确定分配给 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 上的数据驱动器

如何将 csv 数据中的动态驱动器访问权限分配给谷歌驱动器文件夹?

Linux:如何将 USB 驱动程序分配给设备 [关闭]

永久数据存储 Azure VM

USB设备驱动程序1

如何在 Azure VM 上安装 NVIDIA 图形驱动程序