我正在使用 Server 2016 存储空间。
我已经通过 powershell 在存储池中创建了一个虚拟磁盘(FriendlyName“vDisk”),我还通过 gui 创建了另一个虚拟磁盘(FriendlyName“test”)。
我创建的虚拟磁盘显示它使用了哪些物理磁盘,但我用 powershell 创建的虚拟磁盘却没有显示。这是为什么?
Get-VirtualDisk -FriendlyName vDisk | Get-PhysicalDisk
-什么也没显示
Get-VirtualDisk -FriendlyName test | Get-PhysicalDisk
-显示硬盘列表
我比较了虚拟磁盘,两者都已初始化,其他设置没有不同。我更新了主机缓存、存储提供程序缓存,并更新了“vDisk”。
有人知道为什么通过
New-VirtualDisk -FriendlyName vDisk -ResiliencySettingName Mirror -PhysicalDisksToUse $disks -StoragePoolFriendlyName Pool -UseMaximumSize
没有显示其物理驱动器,就像 GUI 创建的一样?
更新:我注意到,当我不使用 New-VirtualDisk 的参数“-PhysicalDisksToUse”时,可以通过以下方式显示物理磁盘
Get-VirtualDisk -FriendlyName vDisk | Get-PhysicalDisk
答案1
我发现了自己的错误。
我最初使用一个变量来定义哪个物理磁盘应用于我的虚拟磁盘。
我只想使用 HDD,所以
$disks = Get-PhysicalDisk | ? {$_.MediaType -eq 'HDD'}
然后我想创建我的虚拟磁盘。
New-VirtualDisk -FriendlyName vDisk -ResiliencySettingName Mirror -StoragePoolFriendlyName Pool -Size 930GB -PhysicalDisksToUse $disks
我没有考虑我的第一个命令,Get-PhysicalDisk 也返回系统驱动器 - 而不仅仅是池中的磁盘!
不知何故,cmdlet“New-VirtualDisk”能够在$disks-array 中使用系统驱动器创建虚拟磁盘。 - 我认为这是不可能的
我应该将变量定义为
$disks = Get-StoragePool -FriendlyName Pool | Get-PhysicalDisk | ? {$_.MediaType -eq 'HDD'}