Intel-Mellanox 40GBE csak 5-25G-t hoz

Udv,

Elore leszogeznem, hogy nem vagyok expert egyik hasznalt technologiaban sem, ugyhogy konnyen lehet, hogy valami banalis dolog hianyzik, akinek ilyen jut eszebe, ne tartsa magaban!

A felallas a kovetkezo:

Halozat:

Vasak:

OS:

  • Windows Server 2012 R2 + 21.0-s driver
  • Ubuntu 15.10 + 1.5.18-as driver

Mindben 64-512GB RAM es 2db Xeon E5-2630v3/2660v3 van, tehat a gond nem ezekkel lesz.

Miert 40G?

  • A 40G-s NIC konkretan mar olcsobb, mint a 10G-s
  • A 12x40G-s switch (sajnos nem tudom direkt linkelni, de SX1012-re keresve kidobja) 7500 EUR, a legolcsobb 24x10G-s meg 3500, tehat fajlagosan mindossze 7%-kal dragabb
  • A 40G meg akkor sem gond, ha sok lassu node-od van, mert breakout kabellel akar 48 portod is lehet
  • A 24x1TB SSD storage ~8GB/s read-et tud localhost-on, amihez legalabb 7db 10G-s port kene MPIO-val, sok kabel, sok penz foloslegesen

A storage W2012R2 Storage Spaces, RAID10, iSCSI target a Hyper-V cluster-nak (CSV). Utobbi I/O teljesitmenye botranyos, ez egy kovetkezo problema lesz, de a lenyeg, hogy emiatt merult fel bennem, hogy valami a halozattal sem gombolyu.

Eloszor megprobaltam 2db 10GB-os iSCSI target-et csinalni, ezeket felmountoltam egy masik node-on, majd egy 8GB-os ISO-t masoltam egyikrol a masikra. A maximum 900kB/s korul volt, ami joindulattal, overhead-del, mindennel egyutt sem tobb, mint 10G.

Ekkor jott az, hogy iktassuk ki a storage-et, ugy ahogy van. Az eredmeny:

  • Windows-os gepek kozott az atvitel aggregalva (rx/tx) sem tobb soha, mint 5-10G (Passmark es 1-2 masik teszt program)
  • Ubuntus gepek kozott iperf-fel 25G volt a maximalis ertek
  • Bonuszkent Ubuntun a link random elszall, de ez mar megint egy masik problema

Eddig a kovetkezo modositasokat probaltam Windows-on az Intel 10G-s guide-jabol kiindulva:

  • Interrupt Moderation Rate -> off
  • Jumbo Frames -> 9k
  • Flow Control -> off
  • Transmit/Receive buffer -> 4096

Amint azt mar sejtitek, ezek semmi erdemi valtozast nem hoztak. A 9k-t beallitottam a Linuxos node-okon is, illetve a switch-eken is, de ott sem tortent erdemi valtozas.

Ezeket most nagyjabol osszeszedtem fejbol, de ha valakinek kellenek meg konkretabb adatok, holnap azt is tudok adni.

Barkinek barmi otlet, hogy mit lehetne tenni?

Hozzászólások

linux alatt a sysctl paraméterekkel játszottál ?
Nekem már a 10GbE-hez is állítani kellett a default nem volt jó.

Fedora 23, Thinkpad x220

iperf kozben hogy nez ki a CPU hasznalat?

> Bonuszkent Ubuntun a link random elszall, de ez mar megint egy masik problema

Biztos jok a kabelek?

En nem hiszem, hogy a kabellel van a baj, 2 Linuxos es 6 Windows-os gep eseten ez mar kicsit tul sok veletlen lenne. Windows-on sosem szakad le, Ubuntun konstans elojon, de tesztelni eleg nehez, mert teljesen random ido kell neki, hogy elszalljon, van hogy par perc, van hogy 1 het.

Probaltam az 1.4-es driverel es az 1.5-ossel is. Ezen kivul probaltam a 15.10-zel es 16.04-gyel szallitott modulokkal is, mind ugyanugy viselkedik.

Mindenesetre most kicsereltem a kabelt egy Windows-os es Linuxos node kozott, meglatjuk.

Annyit meg hozzatennek, hogy a link nem ugy szall el, hogy megszakad par masodpercre, hanem hogy teljesen meghal. nmcli con down + up nem segit, kernelmodul ujratoltesnel meg konkretan lefagy, csak reboot segit.

Windows reszehez nem szolok inkabb, azzal ilyen szinten meg nem kellett foglalkoznom, linux oldalon amiknek erdemes lehet utana nezni:
- interrupt elosztas tobb cpu-ra (vagy statikusan scriptbol intel driver mellett szokott lenni ilyen, vagy dinamikusan pl irqbalance -al)
- iperf3 -al probald merni, sima iperf mar 10G-nal is hozhat fura eredmenyeket es erdemesebb tobb szalon nezni.
- rx/tx buffer noveles, altalaban alacsonyan van hagyva legacy okokbol (ethtool -g eth0 ; ethtool -G eth0 rx 4096 tx 4096)
- ha csak belso dologra kell es switchen is tudod allitani akkor jumbo frame, bar 10G-t annelkul is siman ki lehet hozni
- txqueuelen erteket lehet novelni interface-ekhez, pl: ip link set eth0 txqueuelen 10000
- sysctl parametereket erdemes megnovelni, illetve parat modositani pl valami hasonlo szerint http://www.nateware.com/linux-network-tuning-for-2013.html
- esetleg kikapcsolni conntrack-et ha ugysincs ra szukseg, akar modul szinten vagy celiranyosabban csak iptables-ben (http://linux.die.net/man/8/iptables NOTRACK opcio)

A linuxos i40e driver meg hagy kivanni valot maga utan, legalabbis 1.5.18-al en is talalkoztam hasonlo furcsasagokkal, ha tudod probald meg esetleg felfrissiteni halokartya firmware-t, ha jol latom 5.04-es a legujabb (felteve ha oem intel kartyad van, kulonben nem biztos hogy menni fog ezzel https://downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-…), ethtool -i eth0 -al meg tudod nezni mi van most rajta.
Illetve alapbol valoszinuleg nalad is bekapcsolva van ntuple filter, azt kikapcsolhatod meg: ethtool -K eth0 ntuple off.

Fu itt sok erdekesseg van, erre ido lesz, mire tudok reagalni, de koszi neked is.

Szerk1: firmware update megvolt 5.04-re, azota a BIOS ezzel fogad:

http://i.imgur.com/3IB5Ful.png

Es belep a BIOS-ba, es mindenfele hibakat dobal. Az EFI driver elvileg valami 1.4-es, gondolom ez a gond. De alapvetoen nem ertem, hogy

1) miert nem jott meg ki emiatt BIOS update
2) miert lep be a BIOS-ba, amikor explicite le van tiltva hibanal a BIOS-ba lepes

Ugyhogy most minden reboot utan KVM-ezni kell, de ha ez megoldja a link elszallast, meg belefer lol.

Ez elírás? "maximum 900kB/s korul volt, ami joindulattal, overhead-del, mindennel egyutt sem tobb, mint 10G"

Ekkora sebességnél (főleg kis csomagméret esetén) nálunk már DPDK-t használnak, egyszerűen nem bírja a Linux network stack.

ez a 40G ugy tunik nekem hogy valojaban 4 db 10GB link csak 1 qsfp+ csatlakozora kivezetve. lehet hogy 1 connectionon belul nem is tud 10g-nel tobbet, ugyanaz mintha lacp trunkolnel 4db 10g portot.

A'rpi

nem hulyeseg amit irt, azert volt regen az MPO24 kabel, hogy 10x1gbit volt Rx, 10x1gbit volt Tx ha 100GbE-t akartal :-) aztan most nemreg jott a 25*GbE mint alapszabvany, es maris mehet MPO12 kabelen (4x25* Rx, 4x25* Tx)

de mivel minden L1-en van, igy L2-tol felfele mar tenyleg egy linkkent latszodik.

(28Gbit igazabol, innen a QSFP28 elnevezes, AFAIK, csak a kodolasok miatt vesztunk sokat)

igen, igy. 100gbe transceiver, idezek:

The MMA1B00-C100 has a standard QSFP28 connector on the electrical side towards the host system
supporting CAUI-4. The optical interface is composed of four optical channels/fibers in each direction,
intended for a parallel multi-mode optical cable via a standard MPO connector. Each channel/fiber
operates at signaling rates up to 25.78125 GBd.

En biztosan megneznem 4.4-es kernellel is, ott eleg dramaian valtozott a tcp stack.

----------------------
while (!sleep) sheep++;