Em um esforço para contornar as barreiras de compatibilidade e custo ao uso de unidades SSD com servidores HP ProLiant Gen8 mais recentes, estou trabalhando para validar SSDs baseados em PCIe na plataforma. Eu tenho experimentado um produto interessante da Other World Computing chamado Accelsior E2 .
Este é um design básico; uma placa PCIe com um controlador SATA RAID Marvell de 6 Gbps e dois "blades" SSD conectados à placa. Eles podem ser passados para o SO para RAID de software ( ZFS , por exemplo) ou alavancados como uma faixa RAID0 de hardware ou par espelhado RAID1. Bacana. É realmente apenas compactar um controlador e discos em um formato realmente pequeno.
O problema:
Olhe para esse conector PCIe. Essa é uma interface PCie x2 . Os tamanhos físicos de slots / faixas PCIe são tipicamente x1, x4, x8 e x16 , com as conexões elétricas geralmente sendo x1, x4, x8 e x16. Isso é bom. Eu usei cartões x1 em servidores antes.
Comecei a testar o desempenho desta placa em um sistema inicializado e descobri que as velocidades de leitura / gravação eram limitadas a ~ 410 MB / s, independentemente da configuração do servidor / slot / BIOS. Os servidores em uso foram os sistemas HP ProLiant G6, G7 e Gen8 (Nehalem, Westmere e Sandy Bridge) com slots PCIe x4 e x8. Observar o BIOS da placa mostrou que o dispositivo negociava: PCIe 2.0 5.0Gbps x1
- Portanto, ele usa apenas uma pista PCIe em vez de duas, portanto, apenas metade da largura de banda anunciada está disponível.
Existe alguma maneira de forçar um dispositivo PCIe a funcionar em uma velocidade diferente?
Minha pesquisa mostra que o PCIe x2 tem uma largura de faixa ímpar ... O padrão PCI Express aparentemente não requer compatibilidade com as larguras de faixa x2 , portanto, meu palpite é que os controladores nos meus servidores estão voltando para x1 ... Eu tenho algum recurso?
lspci -vvv
Saída abreviada . Observe a diferença entre as linhas LnkSta
e 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
fonte
Respostas:
Essa é a resposta oficial da OWS, agora outra resposta, se for possível forçar o hp controller a subir até a largura x2, que exigirá mais pesquisas. -)
fonte
Manufacturer: HP Product Name: ProLiant DL180 G6
Tentei novamente em uma plataforma HP ligeiramente diferente, a 2U HP ProLiant DL380p Gen8 versus a 1U DL360p Gen8. Recebi os resultados adequados usando essa combinação de hardware.
O firmware atual do host Gen8 agora permite que os links PCIe negociem nas velocidades adequadas, para que esses dispositivos sejam compatíveis com os servidores ProLiant DL380p Gen8.
fonte
Tenho em mãos um servidor IBM com uma placa Broadcom 4 × 1GbE ... negociado de 2,0x4 para 2,0x2:
Tinha um conector x4 que eu estou supondo que só é plenamente utilizado quando colocado em um slot PCIe v1, por isso parece que ele está negociando para baixo para x2 quando usado em um slot PCIe v2 (desde 5GT / s bidirecional é suficiente para 4 × 1GbE )
O mesmo pode estar acontecendo com seu cartão?
(Caso contrário, minha resposta é: use IBM em vez de HP: P)
fonte