为了规避兼容性和成本障碍我将 SSD 驱动器与较新的 HP ProLiant Gen8 服务器结合使用,我正在努力验证平台上基于 PCIe 的 SSD。我一直在尝试一款有趣的产品其他世界计算叫做Accelsior E2。
这是一个基本的设计;带有Marvell 6Gbps SATA RAID 控制器以及连接到卡的两个 SSD“刀片”。这些可以传递到操作系统以进行软件 RAID(虚拟文件系统,例如)或利用硬件 RAID0 条带或 RAID1 镜像对。好极了。它实际上只是将控制器和磁盘压缩成非常小的外形尺寸。
问题:
看看这个 PCIe 连接器。这是一个PCie x2接口。物理PCIe 插槽/通道大小通常x1、x4、x8 和 x16,电气连接通常为 x1、x4、x8 和 x16。没问题。我用过x1 卡在之前的服务器中。
我开始在启动的系统上测试此卡的性能,发现无论服务器/插槽/BIOS 配置如何,读/写速度都会被限制到 ~410 MB/s。使用的服务器是 HP ProLiant G6、G7 和 Gen8(Nehalem、Westmere 和 Sandy Bridge)系统,带有 x4 和 x8 PCIe 插槽。查看卡的 BIOS 发现设备协商:PCIe 2.0 5.0Gbps x1
- 因此它只使用一个 PCIe 通道而不是两个,因此只有一半的宣传带宽可用。
有什么方法可以强制 PCIe 设备以不同的速度运行?
我的研究表明,PCIe x2 的通道宽度有点奇怪……PCI Express 标准显然不需要与 x2 车道宽度兼容,所以我猜测我的服务器上的控制器正在回落到 x1...我有什么补救措施吗?
缩写输出。请注意和行lspci -vvv
之间的区别。LnkSta
LnkCap
05:00.0 SATA controller: Marvell Technology Group Ltd. Device 9230 (rev 10) (prog-if 01 [AHCI 1.0])
Subsystem: Marvell Technology Group Ltd. Device 9230
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 5GT/s, Width x2, ASPM L0s L1, Latency L0 <512ns, L1 <64us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Kernel driver in use: ahci
Kernel modules: ahci
答案1
这是 OWS 的官方答案,现在另一个答案是,是否可以强制 hp 控制器将其提升到 x2 宽度,这将需要更多的研究。-)
答案2
我又在稍有不同的 HP 平台上尝试了一次,2U HP ProLiant DL380p Gen8 与 1U DL360p Gen8。我收到了正确的结果使用这种硬件组合。
当前的 Gen8 主机固件现在允许 PCIe 链路以适当的速度进行协商,因此这些设备与 ProLiant DL380p Gen8 服务器兼容。
Speed 5GT/s, Width x2, ASPM L0s L1, Latency L0 <512ns, L1 <64us
LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
答案3
我手头有一台 IBM 服务器,里面有一张 Broadcom 4×1GbE 卡……从 2.0x4 降到了 2.0x2:
0b:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
Subsystem: IBM Device 03a9
Capabilities: [ac] Express (v2) Endpoint, MSI 00
LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s L1, Latency L0 <2us, L1 <2us
LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
它有一个 x4 连接器,我猜测只有插入 PCIe v1 插槽时才能充分使用,因此在 PCIe v2 插槽中使用时似乎会协商到 x2(因为 5GT/s 双向对于 4×1GbE 来说已经足够)。
你的卡会发生同样的事情吗?
(如果没有,我的答案是:使用 IBM 而不是 HP :P)