Motivatie
Na ruim 10 jaar was mijn cloud server aan vervanging toe, hij zat echt aan zijn max met 32G geheugen, en een core i7 van de Nehalem generatie. Hoewel alles nog wel werkte, merkte ik toch dat bij veel toepassingen de boel wat traag werd, en er wat weinig geheugen was voor de verschillende VM's die ik run. Het werkt allemaal nog wel, maar niet meer van harte, dus tijd voor iets nieuws.
Beslissingstraject
De Threadripper van AMD had ik al een tijdje in de gaten gehouden, en het leek me geweldig om weer eens met een goede, en krachtige AMD CPU een machine te bouwen (had ik al niet meer gedaan sinds de eerste Athlons op de markt kwamen), Threadripper leek uitermate geschikt, maar welk bord, en welke CPU te kiezen? Vooral met de nieuwe TRX40 borden, wil ik nog wel een X399 bord? De TRX40 heeft PCIE 4.0, en doorgaans meer M.2 slots, en werkt met 3e generatie CPU's (en misschien ook wel met de 4e generatie?). Daar staat tegenover dat je zelden meer (eerder minder) dan 4 PCIE x16 slots hebt, en nu de 2e generatie CPU's hier en daar behoorlijk afgeprijsd zijn.
Uiteindelijk toch gegaan voor dit bord, een X399 (dus vorige generatie), maar wel met veel aantrekkelijke features:
- Veel PCIE slots: 5x PCIE 3.0 x16/x8 en 1x PCIE 2.0 x4
- Support tot 256G RAM
- Onboard ASPEED 2500 voor VGA & IPMI/IKVM
- Dual M.2 slots
- Dual 10G NICs met SRIOV
Eerste indruk
Layout is prima, ik kan overal goed bij, en connectors zijn handig geplaatst. Plaatsen van de IO-Shield was wel even wat 'prutsen', maar was toch niet echt een probleem.
Bij het inbouwen bleek wel dat ik 1 van de stand-off's uit de kast moest schroeven, omdat die precies onder een DRAM slot zat. Wel even goed de manual checken, en blijven opletten als je aan de build begint.
Proxmox, GPU/PCIE passthrough
PCIE passthrough werkt prima, alleen het bovenste slot heeft een ongelukkige IOMMU groep, waardoor ik een pcie_acs_override flag moest gebruiken voor mijn USB3 controller. De andere 5 slots hebben daar geen last van.
De machine draait 3 terminals met elk een GPU & USB3 controller via PCIE passthrough, 1 ervan gebruik ik voor remote gaming via Steamlink (van Windows 10 naar een Apple-TV), werkt prima, en ik neem vrijwel geen lag waar. Een andere terminal gebruik ik voor development werk met dual 4K schermen, en dat werkt ook vlot.
Daarnaast nog een VM waarin docker containers runnen (o.a. voor samba, Time Machine backup, wiki, en nextcloud), en verder spin ik nogal eens een paar nieuwe Linux VM's op om te experimenteren of evalueren.
Doorgaans is nogal lastig om uit te vinden of een bord goed te gebruiken is met IOMMU/PCIE passthrough, en het blijft altijd een beetje gokken. Deze lijkt voor mijn gebruik goed te voldoen.
De beide (10G!) Ethernet controllers zijn gebaseerd op de Intel X550-AT2 chip, die zou volgens spec IO-SRV moeten supporter, en in Linux zie ik inderdaad dat er controls voor IO-SRV zijn waarmee ik daarvan gebruik zou moeten kunnen maken.
Echter ben ik er tot nu toe niet in geslaagd om dat werkend te krijgen. Er lijkt telkens een 'write error' op te treden wanneer ik virtual devices wil creëren. Na wat zoeken online, lijkt de meest waarschijnlijke reden een gebrekkig Bios (of instelling in Bios), de enige optie die ik kon vinden in de Bios is een algemene 'support IO-SRV' optie, die staat aan, maar heeft niet het gewenste effect. Voor nu heb ik het er even bij gelaten, het is voor mijn gebruik ook niet dringend nodig, de meest netwerk intensieve taken lopen toch in Linux en die heeft prima virtio drivers voor de guest. (en Windows 10 trouwens ook).
Na nog eens wat meer puzzelen, en het nog eens wat meer gericht zoeken en lezen op verschillende fora, ben ik er inmiddels achter dat om dit werkend te krijgen je inderdaad naast 'support IO-SRV' nog een paar extra settings in de UEFI settings expliciet op 'enabled' moet zetten, te weten ACS (Access Control Services) en ARI (Alternative Routing ID Interpretation). Deze opties zijn te vinden in het AMD CBS menu, bij XGBE options, en stonden bij mij op 'auto'. Nadat ik deze op 'enabled' had gezet leek alles naar wens te werken, en zelfs in Windows 11 is er een goede driver voor. (ik edit dit nu op een Windows 11 VM, met de IOSRV network driver, en GPU & USB passed through, alles werkt naar wens)
Een kleine eigenaardigheid die ik wel opmerkte: De Sonnet Allegro PRO USB3 kaart die ik gebruik, lijkt alleen te werken in het top slot (PCIE 2.0 x4). Dit slot is echter ook net degene met onhandige IOMMU grouping (o.a. de X399 SATA controller zit in dezelfde groep, en nog wat andere chipset devices).
Of de Sonnet nu geen PCIE 3.0 support, of dat de PCIE 3.0 slots niet de functionaliteit bieden die de Sonnet nodig heeft (b.v. om de bus op te delen in 4x PCIE x1) weet ik niet. Met de parameter 'pcie_acs_override=downstream,multifunction' toegevoegd aan de linux kernel commandline is dat probleem opgelost (note: dit schakelt wel een hardware security feature uit, weet dus waar je mee bezig bent als je dit gebruikt).
Overig
Het valt op dat met name de onboard LAN controller nogal warm wordt, wellicht komt dat mede omdat ik voor waterkoeling heb gekozen, en er moet wel bij vermeld dat het machientje op zolder staat, en het met een buitentemperatuur van >35 graden de afgelopen week daar sowieso al warm is (~33 graden binnen). Leuk dat je met IPMI dat nu goed en gemakkelijk kunt monitoren.
Overklokken doe ik doorgaans niet, het bord lijkt er wel mogelijkheden voor te bieden (de G-Skill RAM draait meteen al op 3200 Mhz, hetgeen al als OC wordt aangemerkt), daarover kan ik dus helaas weinig uitweiden.
Ik ben doorgaans ook geen LED fan, en het stoorde me dus allerminst dat dit bord daar geen voorzieningen voor heeft. Ik had aanvankelijk ook gekozen hebben voor Ram modules zonder LED, maar die bleken niet op voorraad, vandaar dan maar de G.Skill modules. Toch moet ik bekennen dat de led bars van de Ram modules door het donker getinte glas van de Define 7 XL er wel leuk uit vind zien, al heb ik geen idee hoe ik die vanuit Proxmox (Linux) zou kunnen instellen.
Misschien zal ik mijn mening daarover toch eens moeten herzien ;-)