【发布时间】:2020-06-21 01:11:01
【问题描述】:
我正在尝试创建一个脚本,该脚本将创建 2 个存储空间池,每个池有 4 个磁盘。但是,由于缓存要求,我需要将具有 LUN0-3 的磁盘用于 pool1,将具有 LUN4-7 的磁盘用于 pool2。我使用以下脚本创建了 2 个池,但每次运行它都会从不同的磁盘创建池(参见屏幕截图):
$disks = Get-PhysicalDisk -CanPool $true | select -first ((Get-PhysicalDisk -CanPool $true).count/2)
New-StoragePool -FriendlyName "DataPool" -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks $disks | New-VirtualDisk -FriendlyName "DataDisk" -UseMaximumSize -NumberOfColumns $disks.Count -ResiliencySettingName "Simple" -ProvisioningType Fixed | Initialize-Disk -Confirm:$False -PassThru | New-Partition -DriveLetter S –UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "SQLDATA" -AllocationUnitSize 65536 -Confirm:$false
$disks2 = Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName "LogsPool" -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks $disks2 | New-VirtualDisk -FriendlyName "LogsDisk" -UseMaximumSize -NumberOfColumns $disks.Count -ResiliencySettingName "Simple" -ProvisioningType Fixed | Initialize-Disk -Confirm:$False -PassThru | New-Partition -DriveLetter L –UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "SQLLOGS" -AllocationUnitSize 65536 -Confirm:$false
【问题讨论】:
-
Pool1 必须有 LUN0、LUN1、LUN2、LUN3 的磁盘。但是在 deploymen1 上,根据屏幕截图 2,它有 LUN4、LUN3、LUN6、LUN2。在部署 2 中,它具有 LUN 3、LUN 1、LUN 2、LUN 5。因此无法设置正确的缓存。我可以做嵌套部署工作,但我正在寻找 PowerShell 代码,所以它更...有效?
-
好吧,我没有能力复制你的环境,但你为什么不过滤它们呢?
-
不知道能不能。所有值都完全相同。 i.stack.imgur.com/Bq7n9.png 至少在 SQL Server 2016 上,在 SQL Server 2014 上的值可能不同(但我需要 2016)。
-
你能显示
Get-PhysicalDisk -CanPool $true | gm的输出吗
标签: powershell