cz en

Virtualizace

DiProNN – programovatelný síťový prvek s podporou virtuálních strojů

DiProNN – programovatelný síťový prvek s podporou virtuálních strojů

Koncept aktivních/programovatelných sítí umožňuje uživatelem řízené zpracování procházejících dat na specializovaných síťových prvcích. Uživatelé do těchto prvků nahrávají své tzv. aktivní programy, které jsou pak nad procházejícími daty aktivním prvkem prováděny. Tento koncept byl představen jako reakce na určité ustrnutí tradičních počítačových sítí, které sice představují jednoduchou a velmi rychlou infrastrukturu pro přenos dat, avšak které nejsou schopny rychlých a dynamických rekonfigurací či zavádění nových služeb. Příkladem aplikací, které mohou s výhodou využít takovéto zpracování dat uvnitř sítě, jsou aplikace pro přenosy či zpracování multimediálních dat (videokonferenční aplikace, zpracování a distribuce videa, atp.), bezpečnostní aplikace (zabezpečení dat procházejících nedůvěryhodnou síťovou infrastrukturou, bezpečný a spolehlivý multicast, atp.), systémy detekující a řešící útoky na prvky počítačové sítě či dynamicky se adaptující intranetové firewally. Základní otázky, které musí být v rámci návrhu kteréhokoliv aktivního/programovatelného prvku řešeny, jsou:

  • Flexibilita výpočetního prostředí – každý aktivní prvek musí poskytovat nějaké výpočetní prostředí, ve kterém jsou uživatelem nahrané programy zpracovávány. V ideálním případě lze toto prostředí dynamicky přizpůsobovat tak, aby byl daný prvek schopen přijmout a provádět uživatelské aktivní programy určené pro libovolné výpočetní prostředí.
  • Izolace zdrojů a bezpečnost – běžící aktivní programy musí být zabezpečeny a vzájemně izolovány tak, aby se nemohly vzájemně ovlivňovat či kompromitovat.

V rámci tohoto projektu vyvíjíme novou architekturu programovatelného síťového uzlu, na které ilustrujeme, že podstatu těchto problémů lze řešit s využitím virtualizace. Její využití a kombinace s dalšími vhodnými koncepty nám tak umožňuje navrhnout velmi flexibilní a výpočetně silný programovatelný síťový uzel, který svým uživatelům umožňuje vytvářet své aktivní programy pro nejrůznější výpočetní prostředí a dynamicky je skládat do komplexních výpočetních aplikací. Mimo vyšší flexibilitu výpočetního prostředí pak využitá virtualizace umožňuje navrženému aktivnímu uzlu poskytovat silné možnosti zabezpečení a izolace, které mohou být navíc doplněny o rezervace a garance poskytovaných zdrojů.

Přínosy:

Vlastnosti navrženého programovatelného uzlu DiProNN (DiProNN = Distributed Programmable Network Node) lze shrnout do následujících bodů:

Model architecture for implementing the DiProNN.

Modelová architektura pro implementaci uzlu DiProNN.

  • Flexibilita poskytovaných výpočetních prostředí - aktivní programy, které budou na uzlu prováděny, mohou být určeny pro nejrůznější výpočetní prostředí, které daný DiProNN uzel podporuje. Těchto výpočetních prostředí může jediný DiProNN uzel současně podporovat velmi mnoho.
  • Nahrávání výpočetních prostředí – jakmile výpočetní prostředí, která jsou poskytována uzlem, nejsou z nějakého důvodu dostatečná, DiProNN svým uživatelům umožňuje nahrávání aktivních programů zapouzdřených do uživatelských výpočetních prostředí, ve kterých pak bude daný aktivní program prováděn.
  • Komponentové programování – pro zjednodušení definice složitějších výpočetních programů umožňuje DiProNN definici tzv. relací sestávajících z několika jednoúčelových a vzájemně spolupracujících aktivních programů (komponent) spolu s definicí datových toků mezi nimi (na bázi workflow principů). Tyto výpočetní relace pak mohou být kdykoliv přizpůsobovány dynamicky se měnícím podmínkám. Jak plyne z předchozího bodu, každá komponenta takovéto relace (tj. AP) může být určena rozdílnému výpočetnímu prostředí (poskytnutého uzlem nebo nahranému uživatelem).
  • Paralelní/distribuované zpracování – architektura uzlu DiProNN je pro zajištění schopnosti zpracovávat vyšší datové toky v reálném čase založena na PC clusteru umožňujícím jak paralelní, tak distribuované zpracování uživatelských relací. Aktivní programy, které jsou pro paralelní zpracování určeny, pak nemusí být žádným způsobem na tuto skutečnost přizpůsobovány.
  • Komplexní správa zdrojů a podpora kvality služby (QoS) – kvůli možnosti poskytovat rozdílnou prioritu určitým aplikacím, uživatelům či datovým tokům, či kvůli garanci požadované úrovně dostupných výpočetních zdrojů, poskytuje uzel DiProNN možnosti komplexní správy výpočetních zdrojů, čímž svým uživatelům umožňuje specifikovat zdroje požadované každým aktivním programem participujícím na zpracování dané relace.
  • Silné možnosti zabezpečení a izolace zdrojů – z důvodů bezpečnosti jsou běžící aktivní programy vzájemně silně izolovány, takže zákeřný/kompromitovaný aktivní program nedokáže ovlivnit jiný souběžně běžící aktivní program sdílející stejné HW/SW zdroje; tato silná izolace tak zajišťuje, že aktivní programy se nedokáží vzájemně kompromitovat jinou cestou než skrze síť. Jakmile jsou aktivní programy takto silně izolovány, lze také aplikovat mechanismy pro kontrolu/správu využití hardwarových prostředků daného uzlu.
  • Mechanismy pro rychlou vzájemnou komunikaci mezi aktivními programy – jelikož může být zapotřebí vzájemné komunikace mezi výpočetními komponentami dané relace (například z důvodu interní synchronizace či sdílení stavu), a jelikož takováto komunikace musí být zajištěna jak nejrychleji je to možné, poskytuje DiProNN možnost definice tzv. řídících spojení mezi aktivními programy, která jsou pak poskytována specializovaným nízkolatenčním propojením. Aktivní programy však na tuto skutečnost nemusí být žádným způsobem přizpůsobovány, takže mohou využívat nejrůznější nízkolatenční propojení poskytována různými DiProNN uzly.
  • Nezávislost architektury uzlu na využitém virtualizačním systému – architektura uzlu je navržena tak, aby nebyla závislá jak na konkrétním virtualizačním systému, tak na jejich specifickém typu. Uzel využívá pouze standardní mechanismy síťové komunikace, takže může být implementován nad téměř jakýmkoliv existujícím virtualizačním systémem.

Publikace:

REBOK, Tomáš. DiProNN: Distributed Programmable Network Node. Brno : Masarykova univerzita v Brně, 2009. 200 stran. Ph.D. Thesis.

Kontakt:

Tomáš Rebok, xrebok@fi.muni.cz

(c) 2008 SITOLA, Laboratoř pokročilých síťových technologií - Login