InfiniBand támogatás a Linux kernelben

Címkék

Egy kis mese:

1965-ben Dr. Gordon Moore megfigyelte, hogy az ipar képes minden évben megkétszerezni az egy die-ra szerelt tranzisztorok számát, és ezzel megszületett Moore törvénye, amely (többé-kevésbé) majd 40 éven keresztül igaznak bizonyult.

Ahogy a tranzisztorok száma nőtt, úgy lettek egyre erősebbek a számítógépek. Sajnos a hardvergyártás területei közül nem mindegyik tudott lépést tartani ezzel a fejlődéssel. Ahhoz, hogy az erős processzorok előnyei megmutatkozhassanak, erős IO alrendszerre is szükség lett volna. Az elmúlt pár évben egyre jobban bebizonyosodott, hogy a jelenlegi shared-bus architektúrájú IO alrendszerek a legszűkebb keresztmetszetek a szerverek felépítésében.

Felismerték ezt a neves hardver gyártók is, és megfogalmazódott a jövő: ki kell dobni a shared-bus-t, és ki kell fejleszteni a jövő IO alrendszerét. Jó szokás szerint ismét kétfelé indult el a fejlesztés. Az egyik vonal a Future I/O kezdeményezés volt, amelynek a tagjai a Compaq, IBM, és a Hewlett Packard voltak. A másik vonal a Next-Generation I/O volt, olyan tagokkal, mint a Dell, Hitachi, Intel, NEC, Siemens, és a Sun Microsystems. Amikor a fejlesztések eredményeként megjelentek az első specifikációk, a két szervezet úgy döntött, hogy egyesítik erőfeszítéseiket, és mindegyik hozza azt, ami a saját megoldásában a legjobb. Ennek eredményeképpen 1999. augusztusában 7 iparágvezető cég - a Compaq, Dell, Hewlett-Packard, IBM, Intel, Microsoft, és a Sun Microsystems - megalapította az InfiniBand Trade Association-t (ITA).

A vezető hardvergyártók úgy gondolják, hogy az InfiniBand architektúra a jövő, a megoldás az IO bottleneck-ekre. A specifikáció szerint az InfiniBand egy olyan architektúra összekapcsolás, amely a jövő szervereinek és akár munkaállomásainak, desktopjainak IO alrendszerét köti össze.


InfiniBand architektúra alapú System Area Network

Az architektúra egy olyan új nagy sebességű switched fabric (storage-okban, SAN-okban járatosaknak ismerős lehet) alrendszer, amely a processzor node-okat és az IO node-okat egy System Area Network-ké alakítja. Ami miatt nagyszerű az egész: az architektúra független a host operációs rendszerektől és a processzor platformtól.

Az InfiniBand-ről bővebben itt és itt.

A jó hír, hogy a Linux kernel hamarosan fel lesz készítve az InfiniBand fabric támogatásra. Roland Dreier ma elküldte azt a 24 patch-ből álló patchset-et, amely a core támogatást implementálja a Linux kernelbe.

A thread itt.

Hozzászólások

"A vezető hardvergyártók úgy gondolják, hogy az InfiniBand architektúra a jövő, a megoldás az IO bottleneck-ekre."

Szerintem a "bottleneck" nyugodtan fordítható szűkkeresztmetszetnek...

"Ami miatt nagyszerű az egész: az architektúra független a host operációs rendszerektől és a processzor platformtól."

Akkor tulképpen miért is kell a linuxba támogatás hozzá? :)

A kommunikacio fuggetlen az operacios rendszerektol es a processzoroktol.

The InfiniBand architecture provides memory-protected, simul-

taneous user-level access to the HCA for multiple applications. It

accomplishes this by bypassing the operating system and CPU for

data transfer from the application memory space to the HCA or to

a remote end point.

Kvót

by bypassing the operating system and CPU for data transfer from the application memory space to the HCA or to a remote end point.

/Kvót

Hmm, hmm hol is láttunk ilyet?! 1394?!

Memory protected, de elvileg a firewire-nak is annak kéne lennie, mégis kikerülhető...

Jó tudom, zárt datacenter meg ilyenek, de akkor is, elég csak egy eszközt megtörni egy rendszerben és máris hozzáférés van az összeshez.

Mindenesetre remélem, hogy a reklámszöveg nem szó szerint így igaz és amúgy pedig egy alapos formális verifikálásnak alávetették ezt a dolgot.

Ez alapján a vinyókat, a floppyt, a cdromot, és az összes többi perifériát is elkönyvelheted a "nem biztonságos" kategóriába. Az InfiniBand fizikailag a számítógépen belül létező architektúra. Ha a számítógépedhez fizikailag más is hozzáfér, az már nem a te számítógéped.

Igen, de az általad felsorolt perifériákkal nem tudsz dma-t kezdeményezni a memória tetszőleges területére anélkül, hogy a kernel erre kifejezetten engedélyt adna. A firewire témával is pont az volt a baj, hogy kívülről a kernel teljes tudta és kontrollja nélkül lehetett memória olvasás/írás műveletet kezdeményezni a teljes rendszermemória bármely címére. Elvileg egy jól megcsinált dma-nak úgy kell működnie, hogy a kernel driver először lefoglal egy kis memóriatartományt puffernek, majd felprogramozza a perifériát erre a tartományra ahova az későbbiekben dma-zhat. És a perifériának semmilyen körülmények között nem szabad máshova dma-zni tök mindegy, hogy mit kötnek rá, milyen adatot kap kívülről.

A fizikai hozzáférésnek pedig vannak fokozatai. Nyilván ha valaki teljesen szétbarmolja a gépet, akkor azellennemvéd. Viszont sok olyan hely van (géptermek) ahol fizikailag hozzáférnek a gépekhez, de nem szerelhetik szét azokat. Hogy egy pendrive-ot köt valaki rá, az egy mindennapos dolog, és a gépnek ilyen módón nem szabad feltörhetőnek lennie még akkor sem, ha az egy kipreparált pendrive vagy ipod vagy akármi.

Egyébként nem is kell fizikailag hozzáférni, hogy baj legyen. Elég, ha van a rendszerben 1 db gyenge pont, ami távolról kihasználható. Innentől kezdve - egy hibás architektúrában - semmiféle óvintézkedést nem lehet tenni a támadó feltartóztatása érdekében, mert az egy darab feltört gépppel ki tudja cserélni a memóriatartalmát a többi, egyébként szoftver szempontból tökéletesen védett gépnek is. 3 rétegű webes alkalmazás szerver architektúra megvan? Na ott a webszervert ha megtöri valaki, akkor még mindig legalább 2 tűzfal és egy alkalmazás szerver áll közte és az adatbázis között, úgyhogy sokat nem ér vele. Legalábbis, ha nem hibásan tervezett hálózati interfész köti őket össze.

A bajt én ott látom, hogy ez az infiniband egyszerre túl sok minden akar lenni. Egyrészt egy kommunikációs felület clusterekhez, meg lazán csatolt többprocesszoros rendszerekhez. Ide kell az, hogy az egyes csomópontok belássanak a másik memóriájába. Viszont ez így nyilván alkalmatlan egy általános hálózati közegnek, holott az is a célkitűzések között van.