PowerShell。使用正确的磁盘创建2个存储空间池
我正在尝试创建一个脚本,该脚本将创建2个存储空间池,每个池有4个磁盘。但是,由于缓存要求,我需要使用带有LUN0-3的磁盘用于pool1,使用带有LUN4-7的磁盘用于pool2。我使用以下脚本创建2个池,但每次运行它时,它都会从不同的磁盘创建池(请参见屏幕截图): 我怎样才能让它工作?PowerShell。使用正确的磁盘创建2个存储空间池,powershell,Powershell,我正在尝试创建一个脚本,该脚本将创建2个存储空间池,每个池有4个磁盘。但是,由于缓存要求,我需要使用带有LUN0-3的磁盘用于pool1,使用带有LUN4-7的磁盘用于pool2。我使用以下脚本创建2个池,但每次运行它时,它都会从不同的磁盘创建池(请参见屏幕截图): 我怎样才能让它工作? 尝试此操作对这些磁盘进行排序您能按设备ID对它们进行排序以获得正确的磁盘吗 $disks = Get-PhysicalDisk -CanPool $true | Sort-Object deviceid
尝试此操作对这些磁盘进行排序您能按设备ID对它们进行排序以获得正确的磁盘吗
$disks = Get-PhysicalDisk -CanPool $true | Sort-Object deviceid | select -first ((Get-PhysicalDisk -CanPool $true).count/2)
或者以其他方式使用deviceId显式指定磁盘0-3和4-7有点晚,但是:我使用驱动器序列号或唯一ID来确保获得正确的驱动器 下面是一个使用serialnumber的真实示例。这是我创建奇偶校验空间的日志,我总是记录我如何创建存储空间。我在这里省略了不用于存储空间的驱动器:
Get-PhysicalDisk | ft friendlyname,canpool,cannotpoolreason,size,uniqueid,SerialNumber,Usage
friendlyname canpool CannotPoolReason size uniqueid SerialNumber Usage
------------ ------- ---------------- ---- -------- ------------ -----
ST33000651AS True 3000592982016 5000C5002DFAB4EE 9XK0EC9S Auto-Select
WDC WD30EFRX-68AX9N0 True 3000592982016 50014E6EADFAE1EF WD-WMC1T3418930 Auto-Select
WDC WD30EFRX-68AX9N0 True 3000592982016 50014E6E58A5BD05 WD-WMC1T3536082 Auto-Select
New-StoragePool -FriendlyName Pool-F -StorageSubSystemFriendlyName "Windows Storage*" -LogicalSectorSizeDefault 4096 -PhysicalDisks (Get-PhysicalDisk | ?{"9XK0EC9S;WD-WMC1T3418930;WD-WMC1T3536082".Contains($_.SerialNumber)})
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly Size AllocatedSize
------------ ----------------- ------------ ------------ ---------- ---- -------------
Pool-F OK Healthy False False 8.19 TB 768 MB
我可以使用唯一ID:
New-StoragePool -FriendlyName Pool-F -StorageSubSystemFriendlyName "Windows Storage*" -LogicalSectorSizeDefault 4096 -PhysicalDisks (Get-PhysicalDisk | ?{"5000C5002DFAB4EE;50014E6EADFAE1EF;50014E6E58A5BD05".Contains($_.uniqueid)})
在您的情况下,您也可以使用PhysicalLocation或ObjectID作为选择器。。。下面列出了它现在的外观以及物理位置:
Get-PhysicalDisk | ft friendlyname,canpool,cannotpoolreason,size,uniqueid,SerialNumber,PhysicalLocation,Usage
friendlyname canpool CannotPoolReason size uniqueid SerialNumber PhysicalLocation Usage
------------ ------- ---------------- ---- -------- ------------ ---------------- -----
WDC WD30EFRX-68AX9N0 False In a Pool 3000592982016 50014E6EADFAE1EF WD-WMC1T3418930 PCI Slot 1 : Bus 4 : Device 0 : Function 0 : Adapter 1 : Port 1 Auto-Select
WDC WD30EFRX-68AX9N0 False In a Pool 3000592982016 50014E6E58A5BD05 WD-WMC1T3536082 Integrated : Bus 1 : Device 0 : Function 1 : Adapter 0 : Port 3 Auto-Select
ST33000651AS False In a Pool 3000592982016 5000C5002DFAB4EE 9XK0EC9S Integrated : Bus 1 : Device 0 : Function 1 : Adapter 0 : Port 4 Auto-Select
池1必须具有LUN0、LUN1、LUN2、LUN3的磁盘。但在deploymen1上,根据屏幕截图2,它有LUN4、LUN3、LUN6、LUN2。在部署2中,它有LUN 3、LUN 1、LUN 2和LUN 5。使得无法设置正确的缓存。我可以做嵌套部署工作,但我正在寻找PowerShell代码,所以它更。。。有效吗?我没有能力复制你的环境,但你为什么不过滤它们呢?我不知道我能不能。所有值都完全相同。至少在SQL Server 2016上,在SQL Server 2014上的值可能不同(但我需要2016)。您能否在这里显示
Get PhysicalDisk-CanPool$true | gm
的输出?嘿,恐怕这不起作用:(我猜预期值是这样的:Msft虚拟磁盘True OK Health Auto Select 1023 GB
(使用Get PhysicalDisk
),但实际值是:Integrated:Adapter 3:Port 0:Target 0:LUN 2
(使用(Get PhysicalDisk-canpool$True).PhysicalLocation |排序
)
New-StoragePool -FriendlyName Pool-F -StorageSubSystemFriendlyName "Windows Storage*" -LogicalSectorSizeDefault 4096 -PhysicalDisks (Get-PhysicalDisk | ?{"5000C5002DFAB4EE;50014E6EADFAE1EF;50014E6E58A5BD05".Contains($_.uniqueid)})
Get-PhysicalDisk | ft friendlyname,canpool,cannotpoolreason,size,uniqueid,SerialNumber,PhysicalLocation,Usage
friendlyname canpool CannotPoolReason size uniqueid SerialNumber PhysicalLocation Usage
------------ ------- ---------------- ---- -------- ------------ ---------------- -----
WDC WD30EFRX-68AX9N0 False In a Pool 3000592982016 50014E6EADFAE1EF WD-WMC1T3418930 PCI Slot 1 : Bus 4 : Device 0 : Function 0 : Adapter 1 : Port 1 Auto-Select
WDC WD30EFRX-68AX9N0 False In a Pool 3000592982016 50014E6E58A5BD05 WD-WMC1T3536082 Integrated : Bus 1 : Device 0 : Function 1 : Adapter 0 : Port 3 Auto-Select
ST33000651AS False In a Pool 3000592982016 5000C5002DFAB4EE 9XK0EC9S Integrated : Bus 1 : Device 0 : Function 1 : Adapter 0 : Port 4 Auto-Select