Waarom mist een thuisserver NVMe-schijven zonder PCIe-bifurcatie?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Een thuisserver kan slechts één SSD detecteren op een multi-NVMe-adapter wanneer de kaart passief meerdere M.2-sockets bedraadt naar één PCIe-slot, maar het platform dat slot als één enkele link blootstelt. De eerste schijf kan een link tot stand brengen, terwijl de andere schijven geen onafhankelijke downstream-verbinding hebben voor de firmware en het besturingssysteem om te enumereren.

PCIe-bifurcatie lost dit op voor compatibele passieve adapters door één brede rootpoortverbinding te verdelen in meerdere smallere links, zoals x16 die x4/x4/x4/x4 wordt. Het is niet vereist voor elke multi-NVMe-kaart: een adapter met een onboard PCIe-switch kan zijn eigen downstream-poorten creëren, hoewel elke schijf dan de upstream-link van de kaart deelt.

Één niet-gesplitste PCIe-link kan niet elke schijf op een passieve adapter blootstellen

Een passieve multi-NVMe-adapter gedraagt zich niet als een opslagcontroller die meerdere SSD's achter één apparaatinterface combineert. Het leidt voornamelijk lane-groepen, referentieklokken, reset-signalen en stroom tussen de randconnector en afzonderlijke M.2-sockets. Elke NVMe SSD blijft zijn eigen PCIe-eindpunt en heeft een bruikbare link naar de hosttopologie nodig.

Als de rootpoort geconfigureerd blijft als één brede link, heeft de host geen aparte logische links gecreëerd voor elke socket op die passieve kaart. Eén SSD kan verschijnen terwijl de andere afwezig blijven voordat een NVMe-driver of bestandssysteem relevant wordt. Dit is waarom het symptoom meestal “slechts één schijf gedetecteerd” is, en niet vier schijven met verminderde capaciteit.

PCIe-bifurcatie creëert meerdere links vanuit één fysieke slot

Bifurcatie verandert de poortconfiguratie aan de CPU- of chipsetzijde. Een fysieke x16-verbinding kan worden verdeeld in twee x8-links, één x8 plus twee x4-links, of vier x4-links wanneer het platform die modi ondersteunt. Elke resulterende link kan trainen met een ander eindpunt op de adapter.

De splitsing wordt niet uitgevoerd door het besturingssysteem na het opstarten. Het hangt af van de PCIe-controller van de processor, de routing van het moederbord en de platformfirmware. De officiële PCIe-bifurcatiecompatibiliteitsrichtlijn van ASUS toont aan dat het aantal M.2-schijven dat een kaart kan blootstellen varieert met het moederbord, de CPU, de slot en de lane-toewijzing.

Passieve en switch-gebaseerde NVMe-adapters bouwen verschillende PCIe-topologieën op

Twee kaarten kunnen hetzelfde aantal M.2-sockets hebben, maar toch heel verschillende eisen aan de host stellen. Een passieve kaart is afhankelijk van de root complex om meerdere links te leveren. Een switch-gebaseerde kaart presenteert een upstream-poort aan de host en creëert meerdere downstream-poorten voor de SSD's.

Adaptertopologie Vereiste aan hostzijde Hoe SSD's zichtbaar worden Bandbreedtegrens
Passieve kaart zonder bifurcatie Één ongesplitste host-link Alleen de socket die is bedraad naar de actieve lane-groep kan enumereren Ongebruikte sockets krijgen geen bandbreedte van de resterende fysieke lanes
Passieve kaart met compatibele bifurcatie Ondersteunde split-modus en bijpassende lane-bedrading Elke SSD traint op zijn eigen door de host gecreëerde link Elke schijf wordt beperkt door zijn toegewezen linkbreedte en generatie
Adapter met een PCIe-switch Één bruikbare upstream-link; host-bifurcatie meestal niet vereist De switch toont aparte downstream-poorten achter één upstream-verbinding Gelijktijdig SSD-verkeer deelt de upstream-bandbreedte van de switch

De PEX 8612-documentatie van Broadcom geeft een concreet switchvoorbeeld met één upstream-verbinding en meerdere downstream-poorten. De exacte chip- en poortbreedtes variëren per kaart, maar het architecturale onderscheid blijft: een switch creëert fan-out; een passief bord verbindt alleen lanes die de host al heeft verdeeld.

Een volledige sleuf garandeert niet zestien bruikbare lanes

Mechanische sleuflengte en elektrisch aantal lanes zijn verschillende eigenschappen. Een connector die fysiek een x16-kaart accepteert, kan bedrading hebben als x8, x4 of zelfs x1. In compacte systemen kan een tweede volledige sleuf lanes verkrijgen van de chipset in plaats van direct van de CPU, of deze delen met een andere M.2-socket, netwerkcontroller of uitbreidingssleuf.

Dit verandert zowel de beschikbare bifurcatiemodi als het aantal schijven dat kan worden aangesloten. Een x4 elektrisch slot kan niet vier onafhankelijke x4-verbindingen leveren alleen omdat de adapter vier sockets heeft. De NVM Express-organisatie merkt op dat M.2 tot een x4 PCIe-verbinding kan ondersteunen; x4 is een veelvoorkomende verbinding met volledige prestaties, geen belofte dat elke hostslot vier lanes levert aan elke geïnstalleerde SSD.

Firmware Bepaalt Welke Bifurcatiemodi het Platform Kan Gebruiken

Bifurcatie-instellingen kunnen verschijnen onder namen zoals PCIe lane-configuratie, slotconfiguratie, of een expliciete x8/x8 of x4/x4/x4/x4 optie. Het beschikbare menu is platformspecifiek. Een CPU kan genoeg lanes hebben terwijl het moederbord de vereiste groepen niet naar dat slot routeert, of de hardware kan een topologie ondersteunen die de firmware niet blootlegt.

Een firmware-update kan ondersteuning toevoegen of corrigeren op sommige platforms, maar kan geen lane-bedrading of controller-mogelijkheden creëren die de hardware mist. De gezaghebbende bron is de handleiding van het moederbord of home server voor de exacte CPU, slot en BIOS-versie. Een algemene verklaring dat “PCIe Gen3 bifurcatie ondersteunt” is onvoldoende omdat de PCIe-generatie niet bepaalt hoe een specifieke rootpoort is gerouteerd of geconfigureerd.

De Ontbrekende Schijven Verdwijnen Tijdens PCI-enumeratie

Bij het opstarten ontdekken platformfirmware en het besturingssysteem PCI-apparaten door de topologie te doorlopen en de configuratieruimte te lezen. De Linux-kernel documentatie legt uit dat apparaten onder een hostbrug kunnen worden gevonden via standaard PCI-enumeratie. Een NVMe-driver kan alleen worden gekoppeld nadat het overeenkomstige PCI-eindpunt is ontdekt en bronnen zijn toegewezen.

Dit lokaliseert de foutgrens. Als de extra SSD's ontbreken in de PCI-apparaatboom, kunnen het wijzigen van partities, RAID-instellingen, bestandssystemen of NAS-opslagpoolsoftware ze niet onthullen. Als elke SSD verschijnt als een PCI-eindpunt maar er één ontbreekt in de opslaginterface, gaat het onderzoek verder dan bifurcatie naar de NVMe-driver, apparaatgezondheid of opslagconfiguratie.

Linkbreedte verandert de prestaties, zelfs nadat elke SSD verschijnt.

Succesvolle enumeratie garandeert niet de volledige doorvoersnelheid per schijf. Een kaart met vier schijven die werkt als x4/x4/x4/x4 geeft elke SSD een bredere onafhankelijke verbinding dan een topologie die minder lanes per schijf toewijst. De PCIe-generatie verandert ook de beschikbare bandbreedte per lane, dus linkbreedte en generatie moeten samen worden gelezen.

Een switch-gebaseerde adapter introduceert een andere beperking. Meerdere downstream SSD's kunnen zichtbaar en individueel snel zijn bij licht gebruik, maar gelijktijdige overdrachten komen samen op de upstream-verbinding. De bespreking van NVM Express over NVMe RAID en uplink bottlenecks legt uit waarom meerdere x4 SSD's een smallere gedeelde verbinding kunnen verzadigen.

Andere NVMe-detectiefouten kunnen lijken op ontbrekende bifurcatie.

Het zien van één schijf in plaats van meerdere duidt sterk op een topologiemismatch bij een passieve adapter, maar is niet doorslaggevend. Een regel voor het delen van lanes kan een sleuf uitschakelen wanneer een andere connector is geplaatst, een bepaalde sleuf kan inactief zijn met de geïnstalleerde CPU, of de socket-naar-lane mapping van de adapter kan vereisen dat schijven in een specifieke volgorde worden geïnstalleerd.

De vormfactor is ook belangrijk. M.2 beschrijft een fysiek module- en connectorfamilie; het betekent niet dat elke M.2-schijf NVMe gebruikt. Een SATA M.2 SSD kan niet werken in een socket die alleen PCIe-signalen draagt. Slechte aansluiting, een niet-ondersteunde PCIe-generatie die door firmware wordt afgedwongen, onvoldoende koeling of een defecte SSD kunnen extra detectie- of stabiliteitssymptomen veroorzaken.

Lees de PCIe Lane Map voordat u een multi-NVMe-configuratie interpreteert.

Begin met de topologie in plaats van het aantal dat op de sleuf staat. Identificeer de elektrische breedte van de sleuf, de CPU- of chipsetbron, ondersteunde bifurcatiemodi, regels voor het delen van lanes en de architectuur van de adapter. Vergelijk vervolgens het beoogde aantal SSD-eindpunten met de daadwerkelijk beschikbare onafhankelijke verbindingen of downstream switchpoorten.

  • Bevestig of de adapter passief is of een PCIe-switch bevat.
  • Controleer het aantal elektrische lanes van het slot in plaats van de fysieke lengte.
  • Verifieer de exacte splitsmodus die voor dat slot en die CPU wordt ondersteund.
  • Bekijk de regels voor gedeelde lanes voor onboard M.2, SATA, netwerk en andere PCIe-apparaten.
  • Scheiding van PCI-endpoint-enumeratie van latere NVMe- en opslagpooldetectie.
  • Controleer de onderhandelde linkbreedte en generatie nadat elke SSD verschijnt.

Deze benadering verklaart zowel capaciteit als prestaties zonder aan te nemen dat elke adapter op dezelfde manier werkt. Lezers die andere uitbreidingsmogelijkheden voor thuisservers evalueren, kunnen deze PCIe versus USB-uitbreidingsvergelijking als aanvullende context gebruiken; de bifurcatiebeslissing zelf hangt nog steeds af van het platform en de adaptertopologie.

FAQ

Heeft elke multi-NVMe-adapter PCIe Bifurcatie nodig?

Nee. Passieve adapters vereisen normaal gesproken compatibele hostbifurcatie omdat ze zelf geen downstream-poorten creëren. Een kaart met een onboard PCIe-switch kan meerdere SSD-endpoints blootleggen via één upstream-link zonder moederbordbifurcatie, hoewel de schijven die uplink delen.

Kan een BIOS-update PCIe Bifurcatie toevoegen?

Het kan een bifurcatie-optie blootleggen of activeren wanneer de CPU-controller en het moederbordrouting dit al ondersteunen. Een firmware-update kan geen fysieke lanes toevoegen, de bedrading van het bord veranderen of een niet-ondersteunde root-port-splitsing mogelijk maken.

Waarom verschijnt er maar één NVMe-schijf op een adapter met vier slots?

De gebruikelijke verklaring is dat een passieve adapter wordt geïnstalleerd in een slot dat nog steeds is geconfigureerd als één PCIe-link, dus alleen de socket die is verbonden met de actieve lane-groep traint succesvol. Slotbedrading, volgorde van populatie, gedeelde lanes, incompatibel M.2-schijftype of apparaatstoring moeten nog worden uitgesloten voordat bifurcatie als bewezen wordt beschouwd.

Combineert PCIe Bifurcatie NVMe-schijven tot RAID?

Nee. Bifurcatie creëert onafhankelijke PCIe-links zodat de host afzonderlijke endpoints kan enumereren. RAID of een andere opslagpoollaag wordt daarna geconfigureerd in firmware, een besturingssysteem of opslagsoftware. Het detecteren van vier schijven en het combineren van vier schijven zijn aparte handelingen.

Tech & AI HUB

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.