معرفی کنترلر ONOS

Open Network Operating System (یا به اختصار ONOS)

ONOS، یک سیستم عامل توزیع شده باز و یک پلتفرم کنترلر SDN، به منظور دستیابی به مقیاس پذیری و دسترس پذیری بالا می‌­باشد.

هدف ONOS، پشتیبانی از چندین پروتکل متعدد در واسط­های جنوبی به منظور برقراری ارتباط با دیوایس های مختلف و نمایش API ها در واسط­‌های شمالی به منظور تطابق با نیازهای کاربردی فراهم کنندگان سرویس و توسعه دهندگان اپلیکیشن می­باشد.

مزایای ONOS

  • ایجاد یک پلتفرم کنترلی برای فراهم کنندگان سرویس، به منظور حل مشکلات سیستم­‌های توزیع شده ازجمله دسترس پذیری بالا، مقیاس پذیری و کارایی.
  • مدیریت اجزای شبکه مانند سوئیچ­ها و لینک­ها و اجرای برنامه های نرم افزاری یا ماژول­ها برای ارائه سرویس­های ارتباطی به میزبان­های انتهایی و شبکه‌های همسایه.
  • ارائه برخی از انواع قابلیت های عملکردی مشابه سیستم عامل های سرور ازجمله، API ها و انتزاع ها، تخصیص منابع و مجوزها، هم­چنین نرم افزار درتعامل با کاربر مانند CLI و GUI و اپلیکیشن های سیستمی.
  • مدیریت کل شبکه به صورت یک دیوایس واحد، درنتیجه سهولت قابل توجهی در مدیریت شبکه.
  • عملکرد پلتفرم و اپلیکیشن­های ONOS، به عنوان یک کنترلر قابل توسعه، ماژولار و توزیع شده .
  • مهم­ترین مزیت سیستم عامل، ارائه پلتفرم مفید و قابل استفاده برای برنامه های نرم افزاری طراحی شده برای اپلیکیشن یا مورد کاربرد خاص، ازجمله مسیریابی سفارشی ارتباطات، مدیریت، یا نظارت سرویس­ها برای شبکه های مبتنی بر نرم افزار.
  • اجرا به صورت یک سیستم توزیعی بین چندین سرور واجازه استفاده ازمنابع CPU و حافظه چندین سرور هم­زمان با ارائه تحمل‌پذیری خرابی هنگام مواجه شدن با خرابی سرور.
  • ارائه گراف شبکه و نمایی از کل شبکه به صورت انتزاعی و فارغ از بخش شمالی، که با وجود توزیع فیزیکی بین چندین سرویس دهنده، به صورت منطقی متمرکز هستند.
  • پشتیبانی بالقوه از ارتقاء سخت افزار و نرم افزار بدون وقفه در ترافیک شبکه.

برای بررسی برخی از نمونه کارهایی که می­توان با ONOS و نرم افزار نوشته شده قابل اجراروی ONOS، انجام داد به آدرس https://wiki.onosproject.org/display/ONOS/Applications+and+Use+Cases مراجعه کنید.

معماری ONOS

هسته ONOS و سرویس‌­های مرکزی، همانند اپلیکیشن‌­ها، در جاوا و تحت عنوان بسته های نرم افزاری (bundle) نوشته شده اند، که در container Karaf OSGi لود شده‌اند. OSGi یک سیستم مولفه ای برای جاوا می­باشد که به ماژول ها اجازه نصب و اجرا به طور پویا در یک JVM را می­‌دهد. از آن­جایی که ONOS در JVM اجرا می­‌شود، می­توان آن را بر روی چندین پلتفرم سیستم عامل لایه زیرین، مانند اوبونتو و OS X اجرا نمود.

تصویر 1 معماری ONOS راSماری  نشان می‌­دهد، که می‌­توان حضور چندین نمونه از پلتفرم ONOS، به عبارتی طبیعت توزیع شده سیستم را درآن مشاهده نمود. معماری ONOS به صورت مجموعه سه لایه ای از چندین زیرسیستم است، که هر زیرسیستم یک سرویس را تحقق می­‌بخشد و به عنوان ترکیبی از مولفه های حاضر در سه لایه مختلف اپلیکیشن، هسته و لایه های پروتکل جنوبی  پیاده‌سازی می­‌گردد.

ONOS شامل چندین پایگاه داده با دسترس پذیری بالا، تعاملات قابل اطمینان، مقیاس پذیری و رویکردهای بهبود عملکرد همانند تکنیک­‌های تکرار، سازگاری قوی و پارتیشن بندی موجود و هم­چنین یک پروتکل مبتنی بر شایعات به منظور هماهنگی بین چندین کنترلر می­‌باشد و به منظور مدیریت اعضای خوشه‌اش از Hazelcast ، یک خوشه داده نرم افزاری متن باز مبتنی بر جاوا در حافظه، استفاده می­‌کند.

ONOS از چندین پروتکل بخش جنوبی از جمله، Openflow، NetConf و غیره برای ارتباط با دیوایس‌­های مختلف شبکه پشتیبانی می­‌کند. همانند سایر کنترلرها، (مثل ODL)، از مفهوم ارائه دهندگان استفاده می‌­کند، که برای  هر پروتکل بخش جنوبی، پیچیدگی پروتکل (رفتار و نیازمندی خاص هر پروتکل) را از سایر مولفه های پلتفرم کنترلر پنهان می­‌کند. این ارائه دهندگان سرویس، تمامی توصیفات لازم عناصر شبکه را برای لایه مرکزی فراهم می­‌کنند. هم­چنین قابلیت ”pluggable “ دارد، یعنی هر کسی می­تواند دیوایس/پروتکل خاص خود را توسعه دهد و در هسته رجیستر کند.

 

تصویر1: معماری ONOS

تصویر1: معماری  ONOS

خوشه ها (clusters)

معماری های توزیع شده موجود، مانند Onix، Hyper Flow، ٍElastiCon، Disco و… با چالش‌­های مختلفی مانند انتخاب master، توزیع و مدیریت حالت شبکه و … روبرو هستند، که باید به بررسی آن ها پرداخت. در ONOS، برخلاف سایر کنترلرها، پشتیبانی از معماری توزیع شده، یکی از اصول طراحی می‌­باشد، نه یک حمایت پس از طراحی. ONOS، مشابه سایر معماری های توزیع شده بخش کنترلر SDN، می­تواند به عنوان مجموعه ای از سرورهای کنترلر که برای دست­یابی به انعطاف پذیری، تحمل‌پذیری خرابی و مدیریت بهتر لود، با هم هم­کاری می­‌کنند، توسعه یابد.  در مورد “هماهنگی خوشه”، هر کنترلر،  از زیرمجموعه ای از اطلاعات شبکه آگاه می‌­باشد، و آن را بین سایراعضای خوشه به عنوان رویدادهایی توسط کنترلری که آن اطلاعات را مدیریت می­‌کند، به اشتراک می‌­گذارد (تصویر 2) از این­ رو، زیرسیستم­ها(سرویس­ها) ی متفاوتی جهت تولید رویدادها ذخیره می­‌شوند و شامل مکانیسم توزیع شده می­‌باشند. به طور مثال، یک زیرسیستم خوشه، پیوستن گره ها و خروج از خوشه را مدیریت می­‌کند، که با استفاده از ساختارهای توزیع شده   Hazelcast (با قابلیت سازگاری بسیار بالا) پیاده سازی می‌­گردد.

تصویر2: هماهنگی در منبع توزیع شده ONOS

تصویر2: هماهنگی منبع توزیع شده ONOS

در یک محیط خوشه‌ای (با چندین نمونه کنترلر)، ممکن است خرابی های مختلفی اعم از خرابی کامل (crash)، یک گره، به طوری که گره دیگر در خوشه قادر به دریافت به روزرسانی­‌ها از سایرین نباشد، رخ دهد. برای بررسی این مساله ONOS، از رویکردی مانند مکانیسم ضد آنتروپی استفاده می­‌کند، که مبتنی بر پروتکل شایعات و کاوش دوره ای گره ها می‌­باشد.

در مجموع، ONOS یک پروژه متن باز با حمایت جامعه ای از توسعه دهندگان و کاربران در حال گسترش می­‌باشد. به منظور کسب اطلاعات بیشتر درمورد طراحی داخلی ONOS، می­توانید به آدرس https://wiki.onosproject.org/display/ONOS/Architecture+and+Internals+Guide و کسب اطلاعات درباره توسعه اپلیکیشن­‌های ONOS،  به آدرس https://wiki.onosproject.org/display/ONOS/Developer+Guide مراجعه کنید.

 

 

مراجع

http://thenewstack.io/open-source-sdn-controllers-part-vii-onos

https://wiki.onosproject.org/pages/viewpage.action?pageId=2851517

معرفی کنترلر ONOS
میانگین 1 امتیاز از 1 رای

(2) دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *