Gazdaságos 10Gbit

Van két HP Proliant ML350 G6 vasam. A két gép között kellene valahogy gazdaságos módon a mostani gigabitesnél gyorsabb(*) hálózati kapcsolatot megvalósítani. (több gigabites port LACP-vel trönkölése nyilván nem játszik, mert akkor egy szál max. 1Gbittel tud forgalmazni, kivéve ha mindkét végén Linux van, round-robin módban, jól sejtem?)

A legegyszerűbb 10GbE kártya, amit találtam, az Intel AT2 (i82598EB) ami kb. 135.000 Ft+ÁFA/darab. Egyetlen link kedvéért tehát legalább 270.000 Ft+ÁFA-t kell leszurkolnom, ami erősen elgondolkodtat, hogy egyáltalán akarom-e? (Van ennél jobb ötlete valakinek?)

A következő kérdés pedig előbb-utóbb az lesz, hogy mi a legolcsóbb, legalább 2 darab 10GbE portot tartalmazó switch...

(*) nyilván nem akarok 1-1 géppel 10Gb-et plafonig kitömni, már a 2Gb is egy nagyszerű előrelépés volna.

Hozzászólások

Amennyiben <10m-en belül van a két gép, akkor a legolcsóbb ethernet megoldás két 10g ethernet kártya, aminek SFP+ portja van, és egy Twinax kábel.

(Szerintem LACP-t a legtöbb oprendszer támogat, de nincs ezzel közvetlen tapasztalatom.)

A kábelt sok esetben nem fogod tudni 30 centire betolni, különösen ha fullos kábel rendezővel van beszerelve. Az rögtön +1-1 méter, hogy egy minimális ráhagyásról ne beszéljünk. Tehát érdemes a kábelhosszokra figyelni, még ha itt nem is lényeges. :) A 2x1Gbittel sokkal olcsóbban megúszod a dolgot és a LACP-nál csak a megfelelő LACP módot kell beállítani oszt szaladni fog. Minden esetre, ha csak időbe kerül a tesztje akkor próbáld ki.

Ha a "sima" gbites portjaid intel kártyákból jönnek akkor 16384-es MTU-t (egyébként 9k) is be tudsz állítani valamint egy kis TCP tuninggal feljebb lehet picit tornázni a kraftot. Ez a 2x1G-s összefogásra is igaz, de ha a 10G-be belevágsz akkor ott főleg.

> A kábelt sok esetben nem fogod tudni 30 centire betolni, különösen ha fullos
> kábel rendezővel van beszerelve. Az rögtön +1-1 méter, hogy egy minimális
> ráhagyásról ne beszéljünk.

Ha akár a réz, akár az üveg nem visz át akkora távolságot, ami két, közvetlenül egymás mellett elhelyezett gép között van, akkor azt ne nevezzük hálózati közegnek :)

(Márpedig a 10GBase-T szabvány elvileg nem csak papíron, illetőleg laboratóriumi körülmények között működik)

> És mi fogja kitölteni az a 10G-t?

Semmi. Olvassál! :)

"nyilván nem akarok 1-1 géppel 10Gb-et plafonig kitömni, már a 2Gb is egy nagyszerű előrelépés volna."

Közönséges fájltranszfer megy, némiképpen nagyobb fájlokkal. A jelenleg elérhető kb. 110MByte/sec pillanatnyilag a palacknyak. (A RAID röhögve kiszolgálja ennek a két-háromszorosát)

ettercsannel mukodhet lin es win kozott is... csak intel kartya kell a win oldalra, mert abba van biztos teaming.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Ha a 4x1Gbit trönköd két végére odateszel két loadbalancer eszközt, ami képes arra, hogy a trönk komponensei között per-packet alapon elossza a forgalmat, akkor egy felette lévő OSI layeren ki fogod tudni forgalmazi a 4Gbitet.

Az LACP/etherchannel/bonding/mittudomén viszont alapból Layer2-ben, per-MAC alapon működik, és két MAC között by default sosem fogsz wirespeed fölé menni. Néhány eszköz támogat IP hash alapú mókát, amikor per-IP illetőleg per-port alapon tudja neked szétdobálni a forgalmat, de egy TCP stream akkor is max. wirespeed marad.

A Linux bonding megoldásában van propietary load balancer, így két, "szembefordított" Linux között tudsz 4Gbitet forgalmazni.

ISDN esetében multilink PPP-t csinálsz, így az abba enkapszulált IP protokollod már ki tudja tömni a dupla sávszélt. Tessék nézelődni az OSI layerek terén :)

Szerintem kellene neki, bar nyilvan nem vagyok halozatos... de ez a valtogatas joval a TCP/IP szint alatt megy, mindket gep szamara az etterchannel 1 darab interfeszkent latszik. Nyilvan mindket oldalra bondingot kell konfiguralni a kabelekre, meghozza pont ugyanugy beallitottat, de ez annyira sztem nem bonyi. Mindenesetre szerintem a TCP nem is fogja tudni, hogy hany kabelen ment at, mert a tuloldalon egyben, egymas utan jonnek ki a packetek a bonding/teaming interfeszbol. Talan, ha L2-ben lehetnek problemak, de L3 es felette semmikepp.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

elvileg én is igy gondoltam, aztán a gyakorlat mást mutatott, nálam sokkal nagyobb tudású szakemberek meg felvilágosítottak, hogy az elméletem hibás, s a gyakorlat nem fog változni emiatt, egy-egy szálon nem fogok tudni 1Gbit-nél nagyobb sávszélen forgalmazni.
Én 4db 1Gbit-es interfacet fogtam össze, iperf mutatott rá 960-970Mbit-et, viszont ezt négy gép felé tudta.... De olyan sohasem volt, hogy egybe lett volna 4Gbit sebesség...

Mindenesetre szerintem a TCP nem is fogja tudni, hogy hany kabelen ment at, mert a tuloldalon egyben, egymas utan jonnek ki a packetek a bonding/teaming interfeszbol
De sajnos tudja, mert eppenhogy nem garantalja semmi, hogy sorrendhelyesen jonnek ki a bonding intefacebol. Default parameterekkel a TCP nem viseli igazan jol, ha a csomagok sorrendje megvaltozik. Eleg sokat kell jatszogatni a beallitasokkal, hogy legalabb valamennyire ki tudjad hasznalni a tobb link egyuttes ateresztokepesseget.

Amit irtam az a round robin uzemmodra igaz (es ez afaik nem szabvanyos, a Linuxos bonding driver tudja, de hogy mas is tudja-e az kerdeses). A tobbi uzemmodban (pl 802.3ad) egy stream csomagjai egyaltalan nincsenek szetosztva a ket interfesz kozott, vagyis egy kapcsolat nem tud egyszeres link sebesseg felett menni, cserebe viszont nincs gond a csomagok sorrendjevel.
---
Internet Memetikai Tanszék

Add el a két szervert, vegyél egy nagyobbat, virtualizálj, és virtuális hálókártyán menni fog a 10 GB :) Nem ismerem a helyzeted, de még akár magát a másolást is teljesen megúszhatod így.

--
joco voltam szevasz

Sok hasznos tippet olvastam itt, köszi! (mondjuk, h subscribe)
Csak egy felvetés a tapasztaltabbakhoz: Ilyen kis távolságokra (max. 2m) nem létezik valami, ami - akár sok-sok éren, mint pl. a SCSI régen - kvázi alapi bus sebességen összeköthet 2 gépet?

Nem iSCSI, a SCSI-t (a régi klasszikust) csak azért említettem, hogy régen nem próbálták 1 érpárba vagy 1 optikai szálba beletuszkolni/-modulálni az adatforgalmat, hanem kikábelezték a 8/16/32 bites adatbuszt az eszközök között. 1 racken belül 1-2m-en megoldható lenne akár 64 biten is - 100m-eken persze nem.

Egy kis problémát vet fel, hogy ekkora sebességnél már nehéz garantálni, hogy a párhuzamos adatok egyszerre érkezzenek, ne csússzon széjjel a kommunikáció. Külön szinkronizációt kéne bevezetni a szálak közt, az meg nagyobb overhead-del járna...
Értsd: sebesség szempontjából jobban megéri a soros kommunikáció mint a párhuzamos.

+1 a felvetés teljesen jó volt, sőt, vannak optimális megoldások is a szinkronizálásra (csak az ilyen eszközök horror árban vannak).
Annyi történik, hogy egyrészt olyan minőségü kábelt használnak, hogy a szálak közötti különbségek ne legyenek annyira nagyok, másrészt x időközönként szinkronizálnak (mérik a szálak késleltetését) és szálanként használnak egy buffer-t. A megfelelő eltolásokkal a legnagyobb latency-vel rendelkező szállal fognak közlekedni az adatok, a két oldalt meg megfelelően potyognak ki a bufferből.

Szóval az elved teljesen jó, csak tényleg horror árban vannak ezek a dolgok. Én is egyszer láttam ilyen eszközt és kissebb fajta szent tehénként kezelték, a maga majd 30 milles árával (azt hiszem szálanként 4 Gbit, 32 szállal, max ~1m). Arra már nem emlékszem, hogy ez hogy kapcsolódott a géphez, mivel ekkora adatmennyiséget azért fogadni is teljesítmény;)

Bár a gépről nincsenek információim, de ezekszerint valami custom cucc lehet. Az egészet mérés adatgyűjtésre használták

Ha mérés adatgyűjtés, akkor nem lehet, hogy az adatok nagy részét maga a kártya feldolgozta és úgy adta át a gép felé?
Mert ha jól nézem (kövezzetek meg, de most googliztam csak utána), egy PCI-X buszos kártya tulajdonképpen ki sem tud tölteni egy 10G-s hálózatot, de PCI-E-ből is min 2x kell hozzá?

jó link. ahogy nézegettem, beugrott egy olyan h IPoverSATA(3) - ilyen nincsen még? anno volt IPoverSCSI, annak a mintájára esetleg...
a SATA3-as portok kb ingyen vannak és mindenhova integrálva - rövidtávú pont-pont összeköttetésekre tökjó lehetne (pl az épített storage és a kiszolgált gépek közé) és a 600mbyte/s sokkal több mint a 125mbyte/s (gigE)

Nem fölé, hanem helyette. Éltem a feltételezéssel, hogy a "gigabitesnél gyorsabb hálózati kapcsolat" alatt Ethernetet ért a kérdező. Ezt erősíti a "közönséges fájltranszfer" megfogalmazás is, tehát FTP, NFS, CIFS vagy hasonló protokollon kell adatot átadni a szerverek között.

Az ötlet értelmes, van is ilyen, és nem is túl drága.

az egyik az infiniband, a másik a pci-e. Mindkettő alaplapi csatlakozószabványnak indult, és mindkettő képes 'kilógni a gépből'.
Az infiniband az gyakorlatilag csak gépek közötti összeköttetésre van használva, ámbár alaplapi (kártyafogadó) csatlakozásra is alkalmas.
A pci-e pont fordítva, szinte csak alaplapi csatlakoztatásra használják, nem igazán mászik ki a gépből.

Egy 16 Gbit infiniband kártya ára alatta van a 10G eth kártya árának.
A probléma ezzel az, hogy mindenki IP -re fejleszt, nem infinibandre.
Így ez a busz-összeköttetésen van valami IP felület, és így mindenestűl már egy picit alá esik a 10G eth sebességének.

Végigolvastam a hozzászólásokat. Ezért én a helyedben FC-ben(2, 4 Gb-es kártyák olcsók) vagy iSCSI-ban gondolkodnék. iSCSI-nál megfelelő multipath beállítással elérheted a kívánt működést. Persze számolj nagy overheaddel is.

Tudtommal 10GE-nél kötelező a switch(direkt link nem működik) réz átviteli közeg esetében, így nem úsznád meg olcsón. Javítson ki valaki, ha tévedek.

Akkor ha van 2 gbit port mindkét szerverben, adni kell mindkettőre más más ip-t, és egyszerre pl 2 ftp/2 nfs stb vel mehet a több mint 1 gibt.

Fedora 16, Thinkpad x61s

Helló

Ez itt talán megfelelő lehet

szombathelyi cég, rendes kiszolgálás futáros megoldással is szállítanak, precízek, szépen becsomagolva, sérülésmentesen szoktak megjönni tőlük a motyók.

http://www.interbolt.eu/category/h%C3%ADrlev%C3%A9l/interbolteu-h%C3%AD…

datasheet:

http://www.sandirect.com/documents/qlogic_QLE2464_datasheet.pdf

elméletileg ez tudja azt ami neked kell...

IP (FC-IP)

üdv

Balooo

------------------------

Nincs a világon se jó, se rossz. A gondolkodás teszi azzá... (W. Shakespeare)

2 linux direktben összekötve 2x1 gigabiten, round-robin bonding:

iperf -c 10.x.x.y
------------------------------------------------------------
Client connecting to 10.x.x.y, TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.x.x.x port 28867 connected with 10.x.x.y port 5001
[ 3] 0.0-10.0 sec 1.78 GBytes 1.53 Gbits/sec

+ az egyéb forgalom, amit most nem tudtam kikapcsolni ezen a linken. Mivel direktben vannak összekötve, ezért out of order sem jelentkezik a csomagoknál.

Egyszer meg az egytemen egy kollegammal kiserleteztunk vele es nekunk is 1,4 Gbit/s korul jott ki. Ha raszanjuk az idot TCP tuningra talan tudtunk valamelyest javitani rajta, de ezek szerint nagyjabol ez a realis ami ebbol a megoldasbol kihozhato.

Mi is ket crossover kabeles osszekotessel csinaltuk. A tanszeken nem talaltunk egyetlen olyan switchet sem, aminel a ket porton round-robinban bejovo forgalom ne csak egy porton ment volna ki a masik node iranyaba. Pedig managelheto switch volt mind megfeleloen felkonfiguralt port bondinggal, igaz nagyjabol a 100eFt koruli es az alatti artartomanyban.
---
Internet Memetikai Tanszék

linux round-robin bondinghoz ket olcso, buta, egyszeru switch kell (abszolult szimetrikus konfigban).

Az en mereseim meg rosszabbak, olyan +10% -ot sikerult merni, merhetoen es jol lathatoan gyorsabb, mint az 1 Gbit, de nem sokkal.

iSCSI-t mertem, diszk terhelo programokkal. Olyan helyen, ahol a diszk 400MByte/s felett tudodtt irni, es 600MByte/s felett olvasni, es mertem cca 125MByte/s iscsi atvitelt, (1 etherneten 110MB/sec) a cpu nem volt agyonterhelve, a diszk sem, megsem ment feljebb. A meres orakig tartott.

Azt hiszem az 1.4 Gbit/s mar bekapcsolt jumbo frame-ekkel es valami tcp window parameter allitgatas utan jott ki. Nyilvan ezen lehetett volna meg tovabb optimalizalni, de mar nem sokat. Mi csak siman netcat-tal mertuk, bar vegul nalunk is iSCSI volt a cel. Aztan maradt alb uzemmodban, hogy legalabb tobb initiator kozott ertelmesen szorja szet a forgalmat.
---
Internet Memetikai Tanszék

messzire vezet ez a kérdés-sor.

A rr bondding kontra iSCSI tesztbe belefektettünk cca 5 munkanapot. Ha nem is minden igényt, de legalább az összes saját kérdés megválaszolását szerettem volna, akkor az mintegy 150 munkanap.

Setup, test, mért nem megy ez jobban? nyomoz-nyomoz-nyomoz, lejárt az idő.

Sajnálom.

Abban a felállásban, amikor még nem szolgált ki aktívan a gép, akkor simán meg volt a 2 gigabit/s körüli érték. De ahogy írtam is, a round-robint csak akkor érdemes használni, ha direktben kötöd össze a gépeket, vagy max 1 aktív eszköz van a kettő között (ebben az esetben már lassabb).