همانطور که در بخش اول یا نصب NSX Manager اشاره کردیم، یکی از وظایف مهم NSX Manager ایجاد لایه Control Plane و پس از آن ایجاد لایه Data Plane میباشد. در این بخش به معرفی لایه Control Plane و نحوه پیاده سازی آن خواهیم پرداخت و در پست بعدی لایه Data Plane را ایجاد خواهیم کرد.
لایه Control Plane
در پست های قبلی عنوان کردیم که NSX محصول SDN شرکت VMware می باشد و میتواند با تفکیک لایه های مختلف شبکه به لایه های Management، Control و Data آنها را از یکدیگر مستقل کند.
پس از ایجاد لایه Management که به وسیله نصب NSX Manager صورت گرفت، باید لایه کنترلی را ایجاد کنیم. از لایه کنترلی یا Control Plane برای متمرکز کردن نگهداری MAC Table ها، ARP Tableها ، VTEP Tableها و در شرایط خاصی Routing Tableها استفاده می شود. (در مورد VTEP Tables در پست های بعدی توضیح داده خواهد شد)
لایه Control Plane در NSX به وسیله دیپلوی کردن حداقل یک و حداکثر 3 ماشین مجازی توسط NSX manager ایجاد می شود که با یکدیگر درون یک کلاستر با نام controller Cluster قرار میگیرند و به صورت اکید توصیه میشود که تعداد 3 عدد کنترلر (ماشین مجازی) در محیط های عملیاتی برای ایجاد HA و Scale کردن استفاده شود، به عبارت دیگر کنترلرها علاوه بر اینکه Redundant هم هستند، تسک های مختلف روی آنها توزیع می شود و می توانند در شرایطی که Load بالایی در محیط وجود دارد به یکدیگر در انجام تسک ها کمک کنند.
ایجاد لایه Control Plane
در ادامه به پیاده سازی لایه Control Plane خواهیم پرداخت:
1. برای ایجاد Control Plane پس از کلیک کردن بر روی آیکون NSX Manager در صفحه Home وی سنتر به قسمت Installation and Upgrades می رویم. کلیه مراحل نصب NSX در داخل این قسمت صورت خواهد گرفت که اولین بخش مربوط به ایجاد کنترلرها می باشد.
2. در بخش management زیر بخش NSX Controllers Nodes را انتخاب میکنیم.
3.در بخش Common Controller Attributes مشخصات مشترک همه کنترلرهایی که قرار است در زیرساخت ما دیپلوی شوند را وارد میکنیم که شامل تنظیمات DNS، NTP و Syslog server می باشد.
4.در قسمت ADD می توانیم کنترلرها را ایجاد کنیم. پسوردی که در این قسمت وارد میکنیم باید پیچیدگی داشته باشد و حداقل 12 کاراکتر ضروری است. دقت شود که پسورد فقط در ایجاد کنتلر اول پرسیده می شود و برای کنترلرهای دوم و سوم نیازی به پسورد نیست و از همین پسورد استفاده خواهد شد.
5.تنظیمات مربوط به کنترلر که به صورت یک ماشین مجازی ایجاد خواهد شد را وارد میکنیم.
– در قسمت نام از یک نام مشترک برای همه کنترلرها استفاده کنید زیرا به صورت اتوماتیک عبارت nsx-controller-n به ادامه آن افزوده خواهد شد.(n شماره کنترلر می باشد)
-در قسمت Compute resource حتی الامکان از کلاستری استفاده کنید که قابلیت های HA و DRS برروی آن فعال شده است و ترجیحا از Anti affinity Rules برای جداسازی این کنترلرها از همدیگر استفاده کنید. دقت کنید که کنترلرها می بایست در همان کلاستری باشند که قرار است سرویس های NSX در آن ارایه شود.
– در قسمت Datastores از دیتااستورهای ریموت یا Shared Storage استفاده کنید .
– در قسمت Connected to باید پورت گروپی را که قرار است کنترلرها در آن نتورک باشند انتخاب کنیم. این پورت گروپ میتواند روی VSS یا VDS باشد.
– در قسمت IP Pool یک رنج آی پی مشخص برای کنترلرها مشخص میکنیم که در این قسمت برای ایجاد هر کنترلر نیاز به یک آی پی می باشد
6.پس از وارد کردن اطلاعات مورد نیاز برای ایجاد کنترلر، بر روی finish کلیک می کنیم تا پروسه نصب شروع شود. همانطور که در تصویر مشخص است کنترلر از دیپلوی کردن یک VM توسط NSX Manager ایجاد میشود. دقت شود که در هر مرحله باید یک کنترلر نصب شود و نمیتوان همه آنها را با هم ایجاد کرد.
پس از نصب موفقیت آمیز کنترلر اول ، می توانیم VM مربوط به آن را در داخل وی سنتر مشاهده کنیم. اگر به هر دلیلی مشکلی در نصب کنترلر داشته باشیم، عملیات نصب متوقف خواهد شد و VM بعدی با شماره بالاتر ایجاد خواهد شد. به عنوان مثال ممکن است کنترلرهای ما دارای شماره های 9 و 10 و 11 باشند.
در شکل زیر قسمت connected نمایانگر ارتباط برقرار شده بین کنترلر و NSX manager می باشد.
7.پس از ایجاد کنترلر اول، با همان ترتیب قبلی اقدام به ایجاد نودهای دوم و سوم خواهیم کرد. که در نهایت می بایست مانند شکل زیر همه کنترلرها ایجاد شده، به NSX Manager متصل باشند و با یکدیگر تشکیل یک کلاستر بدهند. در قسمت Peers ارتباط هر کنترلر با نودهای دیگر نمایش داده میشود.
برای اطمینان از صحت عملکرد کنترلرها می توانید با لاگین کردن از طریق SSH از دستورات زیر استفاده کنید:
Show controller-cluster status
Show controller-cluster startup nodes
Show controller-cluster history
نقش کنترلرها در NSX:
هماتطور که قبلا نیز اشاره کردیم از کنترلرها برای ایجاد لایه کنترلی استفاده میکنیم که به این معنی است که هر دیتایی که قرار است از لایه زیرین یا Data plane خارج شود نیاز به اطلاعاتی همچون MAC، ARP و یا اطلاعات مربوط به VTEP در سطح هاست ها را دارد که این اطلاعات توسط لایه کنترلی فراهم می شود و لایه data plane نگهدارنده اطلاعاتی از این دست نخواهد بود.
نگهداری اطلاعاتی از قبیل ARP در سطح کنترلرها موجب خواهد شد که دیگر نیازی به ارایه این اطلاعات از طریق سوییچ های فیزیکی بالادست نباشد و به طور چشمگیری این نوع ترافیک ها در شبکه کاهش پیدا خواهند کرد که به آن ARP Suppression گفته می شود.
همه کنترلرها دارای نقش ها یا role های مشترکی می باشند که یکی از کنترلرها در هر نقش به عنوان Master است و تسک های مربوط به آن زا بین دیگر کنترلرها تقسیم میکند. در صورتی که یکی از کنترلرها دچار مشکل شود تسک های مربوط به آن کنترلر بین دیگر کنترلرها تقسیم میشود. از دست رفتن یک کنترلر در محیط مشکلی به وجود نخواهد آورد و میتواند به راحتی با یک کنترلر جدید جایگزین شود.
وجود حداقل یک کنترلر در زیرساخت ضروری است و در حالتی که دو کنترلر از سه کنترلر دچار مشکل شوند کنترلر باقی مانده به حالت read-only تغییر وضعیت خواهد داد و اطلاعات جدید مربوط به MAC، ARP و … در آن نوشته نخواهد شد.
منابع لازم برای ایجاد هر کنترلر 4 عدد vcpu و 4 گیگابایت مموری می باشد.
برای دیدن نقش ها در کنترلرها از دستور زیر استفاده میکنیم:
Show controller-cluster role
برای عملکرد صحیح، کنترلرها می بایست همیشه در حالت متصل به یکدیگر و درون یک کلاستر باشند.
در بخش دوم به نحوه ایجاد لایه Control Plane (لایه کنترلی) پرداختیم و در بخش بعدی به ایجاد لایه data plane خواهیم پرداخت. لطفا سوالات خود را دربخش نظرات با ما در میان بگذارید.