W celu ominięcia kompatybilności i barier kosztów korzystania z dysków SSD z nowszymi serwerami HP ProLiant Gen8 pracuję nad weryfikacją dysków SSD opartych na PCIe na platformie. Eksperymentowałem z ciekawym produktem firmy Other World Computing o nazwie Accelsior E2 .
To jest podstawowy projekt; karta PCIe z kontrolerem SATA RAID Marvell 6 Gb / s i dwoma „ostrzami” SSD podłączonymi do karty. Można je przekazać do systemu operacyjnego w celu uzyskania oprogramowania RAID ( na przykład ZFS ) lub wykorzystać jako sprzętowy pasek RAID0 lub parę kopii lustrzanych RAID1. Fajne To tak naprawdę tylko kompaktowanie kontrolera i dysków w naprawdę małym formacie.
Problem:
Spójrz na to złącze PCIe. To interfejs PCie x2 . Fizyczne rozmiary gniazd / linii PCIe to zwykle x1, x4, x8 i x16 , przy czym połączenia elektryczne to zwykle x1, x4, x8 i x16. W porządku. Wcześniej używałem kart x1 na serwerach.
Zacząłem testować wydajność tej karty w uruchomionym systemie i odkryłem, że prędkości odczytu / zapisu spadły do ~ 410 MB / s, niezależnie od konfiguracji serwera / gniazda / BIOS. Wykorzystywane serwery to systemy HP ProLiant G6, G7 i Gen8 (Nehalem, Westmere i Sandy Bridge) z gniazdami PCIe x4 i x8. Patrząc na BIOS karty, okazało się, że urządzenie negocjowało: PCIe 2.0 5.0Gbps x1
- Więc używa tylko jednego toru PCIe zamiast dwóch, więc dostępna jest tylko połowa reklamowanego pasma.
Czy istnieje sposób, aby zmusić urządzenie PCIe do pracy z inną prędkością?
Moje badania pokazują, że PCIe x2 jest trochę dziwną szerokością linii ... Standard PCI Express najwyraźniej nie wymaga kompatybilności z szerokością linii x2 , więc domyślam się, że kontrolery na moich serwerach spadają do x1 ... Mam jakieś regres?
Skrócone lspci -vvv
wyjście. Zwróć uwagę na różnicę między wierszami LnkSta
i 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