مطالب فصل
Switch load balancing
Switch load balancing
در این قسمت قصد داریم به بحث load balancing در vSwitch ها بپردازیم.
در ابتدا نگاه گذرایی به موارد مربوط به load balancing کرده، سپس در مورد design و حالت های مختلف آن صحبت خواهیم کرد. برای این منظور وارد ESXI میشویم و از قسمت Networking، تب Virtual switches، سوئیچ مورد نظر را انتخاب کرده و Edit settings را میزنیم.
و از بخش NIC teaming میتوانیم تنظیمات مربوط به load balancing را انجام دهیم.
Load balancing چیست؟
خب اصلا load balancing چی هست؟! در واقع Load balancing تصمیم میگیرد که از چه طریق میتوانیم vNIC ها را به pNIC سرور assign کنیم، یا مثلا نحوه assign کردن VM ها به vmnic ها یا pNIC ها به چه صورت است، که با انجام این کارها میتوانیم load balancing را راه اندازی کرده و throughput شبکه را بهبود ببخشیم. به یاد داشته باشیم که load balancing به این معنا نیست که اگر شما مثلا دوتا کارت شبکه فیزیکی 10G داشته باشید یعنی دوتا pNIC با پهنای باند 10G بعد از load balancing بتوانید پهنای باند 20G داشته باشید. فقط load balancing به شما اجازه میدهد که به جای اینکه pNIC های شما بیکار بمانند بتوانیم بر اساس یک سری از الگوریتم های موجود از pNIC های خود بهترین استفاده را کنیم.
در ادامه داخل فیلم آموزشی این فصل به صورت کامل درباره load balancing و انواع آن به صورت عملی انجام شده و سناریو های مختلف به صورت کاملا detail وار توضیح داده شده است
Route by originating port-ID
خب اولین متدی که بررسی میکنیم، متد Route by originating port-ID میباشد.
Route by originating port-ID
در شکل زیر، یک Standard switch (VSS-1) داریم که دارای دو Port group به نام های PG-1 و PG-2 میباشد. در قسمت بالا، Virtual Machines یا VM ها با نام های A، B، C و D قرار دارند که هر کدام vNIC های مخصوص به خود را دارند که این vNIC ها متصل به Port-ID های خود میباشند؛ مثلا vmnic مربوط به VM-A به Port-ID 9 در Port group 1 و vmnic مربوط به VM-B به Port-ID 10 در Port group 1 متصل میباشد و به این صورت ادامه دارد. هم چنین امکان تنظیم اینکه VM ها در کدام PG باشند در VSS وجود دارد،
روند اتصال این موارد به این صورت میباشد که در ابتدا vNIC ها به Port-ID های داخل PG، سپس از Port-ID ها با استفاده از متد load balancing به یکی از pNIC ها assign میشوند.
زمانی که VM-1 روشن میشود، vNIC آن به یکی از Port-ID ها (مثلا Port-ID 9 که به صورت random انتخاب شده) وصل شده و سپس از Port-ID به pNIC-1 متصل میشود. در ادامه VM های 2، 3، 4 و 5 نیز به ترتیب به Port-ID های 10، 11، 12 و 13 متصل میشوند. همانطور که میدانید، منظور از pNIC همان کارت شبکه های فیزیکی هستند که به pSwitch یا همان سوئیچ سخت افزاری متصل میشوند. فقط به خاطر داشته باشید که در محیط های سروری، کارت شبکه ها همانند شکل، به صورت جدا از هم و تک پورت نیستند، در شکل زیر بخاطر داشتن ظاهری ساده و مفهومی از کارت شبکه تک پورت استفاده کرده ایم وگرنه کارت شبکه های 4 پورت نیز وجود دارند.
به شکل زیر توجه کنید.
همانطور که مشاهده میکنید، VM-3 دارای 2 کارت شبکه است. به نظر شما زمانی که کارت شبکه های A، B و C را به Port-ID های 9، 10 و 11 و سپس به pNIC های 1، 2 و 3 متصل کردیم و دیگر pNIC ای وجود نداشت تا کارت شبکه D از طریق Port-ID 12 به آن متصل شود، VSS در این شرایط چه تصمیمی میگیرد؟ در چنین شرایطی روال کار به این صورت است که کارت شبکه D را از طریق Port-ID 12 به pNIC 1 متصل میکند. هم چنین کارت شبکه E نیز از طریق Port-ID 13 به pNIC 2 متصل میشود.
اگر بخواهیم شماتیک آن را ساده تر ببینیم، در ابتدا Virtual NIC (vNIC) ها را داریم که به Port-ID ها متصل میشوند و از طریق Port-ID با Physical NIC (pNIC) ها ارتباط برقرار میکنند و در نهایت به Physical Switch (pSwitch) میرسند.
نکته 1:
Port-ID ها کاملا به صورت random به vNIC ها اختصاص پیدا میکنند.
نکته 2:
هر Port group دارای تعداد زیادی از Port-ID ها میباشد که تنظیمات مربوط به تعداد Port-ID ها فقط در VDS امکان پذیر است؛ که مثلا PG-1 بیشتر از 10 عدد Port-ID نداشته باشد.
مزایا و معایب متد Route by originating port-ID:
مزایا:
1- این متد قابلیت استفاده بر روی هر topology را دارد، چه توپولوژی های High level و چه توپولوژی هایی که از یک سوئیچ unmanaged استفاده میکنند که هیچ گونه limitation ای در توپولوژی وجود ندارد.
سوال:
منظور از محدودیت یا limitation چیست؟ ما یک سری load balancing ای داریم که بایستی feature های آن را بر روی سوئیچ فیزیکی یا pSwitch فعال کنیم (در ادامه با این feature ها آشنا میشویم)، اما در متد Route by originating port-ID و هم چنین متد Route by MAC دیگر نیاز نیست در سمت سوئیچ فیزیکی تنظیمات خاصی را اعمال نمایید، چرا که کاملا مستقل از هم هستند، حتی اگر توپولوژی پیچیده ای داشته باشید و بخاطر یک سری از امکانات و redundancy ها یک pSwitch دیگر به توپولوژی اضافه کنید، باز میتوانید از این روش load balancing استفاده نمایید.
2. هم چنین این روش Overhead خاصی برای CPU ESXI ایجاد نمیکند.
نکته: vNIC ها همیشه یک مسیر مشخص دارند و هیچ گاه از دو مسیر به یک pSwitch متصل نمیشوند؛ یعنی شما هیچ وقت در این روش، مشکل اینکه یکبار بسته را از مسیر اول و بار دیگر از مسیر دوم بفرستد را ندارید. مثلا امکان اینکه یکی از vNIC ها بتواند از هر سه pNIC موجود در شکل بسته ای را ارسال کند، وجود ندارد. چون در بحث load balancing به نوع Application ای که در VM ها پیاده سازی میشود، وابستگی زیادی داریم. فرض کنید اگر سرویس VOIP را راه اندازی کنید، بحث های Delay و Jitter خیلی مهم است؛ مثلا بسته ارسالی از pNIC 1 با ارسال همان بسته از pNIC 2، بسته در هر ارسال Delay و Jitter و هم چنین پهنای باند متفاوتی را تجربه خواهد کرد.
ترجیح شما در خصوص سرویس هایی مانند VOIP، Streaming و هر سرویسی که نیاز به live protocol دارد، این است که Delay و Jitter ثابتی داشته باشد. حالا اگر Jitter کمی هم داشت ولی Delay ثابتی داشته باشد، یک روز مقدار آن 5 و روز دیگر 10 نباشد. پس باید طوری load balancing کنیم که VM ها بر روی pNIC های مختلفی قرار نگیرند تا برای این سرویس ها مشکلی ایجاد نشود. قابل ذکر است دلیل اینکه در این روش نیازی به config کردن سوئیچ فیزیکی نیست، بخاطر این است که vNIC ها همیشه یک pNIC مشخص دارند تا زمانی که آن pNIC، fail شود.
معایب:
1. ممکن است طی شرایطی هر کدام از pNIC هایی که در یک تیم قرار گرفته اند، ترافیک بیشتر یا سنگین تری را از خود عبور دهند. خب منظور ما چی بود از این جمله؟! ESXI هیچ دیدی نسبت به Application هایی که بر روی VM راه اندازی میشوند، ندارد و اطلاعی ندارد کدام Application یا کدام OS پهنای باند بیشتر یا کمتری نیاز دارد. ممکن است به pNIC-1، VM هایی که پهنای باند کمتری نیاز دارند متصل شوند یا ممکن است همه VM هایی که به پهنای باند بیشتری نیاز دارند به pNIC-2 متصل شوند، در واقع هیچ کنترلی در این مورد ندارید که تعیین کنید VM-1 از pNIC خلوت تری استفاده کند زیرا این کار به صورت random انجام میشود. پس این امکان وجود دارد که یکی از pNIC های شما به طور اتفاقی ترافیک سنگین تری را از خود عبور دهد و load بالاتری داشته باشد که نتیجه آن، این میشود که شما احساس میکنید در VM، Network و پهنای باند ضعیفی دارید. دلیل اینکه چنین شرایطی اتفاق میافتد این است که VM-2 یا VM-3 به طور اشتباه دقیقا بر روی همان pNIC ای قرار میگیرد که VM های سنگین بر روی آن assign شده اند.
شما فرض کنید سه سرویس Video streaming، VOIP و یک سرویس وبسایتی به طور اتفاقی بر روی یک pNIC قرار گرفته اند و همین باعث شده تا کیفیت شبکه ای کمتری داشته باشند، در حالیکه اگر سرویس VOIP از pNIC-1، سرویس وبسایت از pNIC-2 و سرویس Video streaming از pNIC-3 استفاده میکردند، پهنای باند و کیفیت Network ای بهتری داشتند.
2. Admin شبکه هیچ کنترلی بر روی Assignment vNIC ها روی pNIC ها ندارد و نمیتواند هیچ تنظیمی بر روی آن ها انجام دهد.
نکته:
برای حل این مشکل میتوانید برای VM های پر ترافیک خود یک PG جدا ساخته و ترتیب pNIC ها را در آن ها متفاوت قرار دهید تا همه VM ها بر روی یک pNIC قرار نگیرند؛ مثلا در PG-1 ترتیب pNIC ها به صورت 1، 2 و 3 و در PG-2 این ترتیب به صورت 3، 2 و 1 باشد.
Route by MAC Address
Route by MAC Address
همانطور که گفتیم، ما یک متد دیگر به نام Route by MAC address داریم که این متد نیز بر اساس Port-ID کار میکند و مزایا و معایب یکسانی با Route by originating port-ID دارد، تنها تفاوت آن در این است که به جای استفاده از Port-ID جهت اتصال Port-ID ها به pNIC ها، از MAC address استفاده میکند. مثلا فرض کنید MAC address، VM-1 را 001، VM-2 را 010 و VM-3 را 100 در نظر میگیرد، و هر کدام را به ترتیب به pNIC های 1، 2 و 3 متصل میکند. اساس کار این متد نیز به این صورت است و هیچ عملا فرقی با متد اول ندارد که بخواهیم آن ها را با هم مقایسه کنیم.
خب برای تنظیم مواردی که با هم صحبت کردیم، در ESXI قسمت Networking، تب Virtual switches، سوئیچ مورد نظر (vSwitch1) را انتخاب کرده و Edit settings را میزنیم.
و سپس از بخش NIC teaming میتوانیم تنظیمات مربوط به load balancing را انجام دهیم. همانطور که مشاهده میکنید، load balancing به صورت پیش فرض بر روی Route based on originating port-ID قرار دارد. گزینه های Route based on IP hash و Route based on source MAC hash نیز وجود دارند که گزینه
Route based on source MAC hash همانند گزینه Route based on originating port-ID میباشد و دقیقا مانند آن کار میکند.
قسمت پایین مربوط به teaming میباشد که در این قسمت vmnic-1 (pNIC-1)، vmnic-2 (pNIC-2) و vmnic-3 (pNIC-3) را مشاهده میکنید. شما میتوانید با استفاده از گزینه های Move up و Move down ترتیب گزینه ها را تغییر دهید و هر کدام که از pNIC ها را که مایل بودید در اولویت قرار دهید؛ بدون هیچ محدودیت و نکته قابل ذکری! (البته این رو داخل پرانتز بگم که تمامی این تنظیمات در سطح PG نیز قابل انجام است.)
اگر شما vmnic-1 را که همان pNIC-1 است را در اولویت قرار دهید، زمانی که تا vmnic-3 تعداد vNIC ها پر شد، برای assign کردن vNIC یک VM جدید، دوباره به vmnic-1 متصل میشود.

با عرض پوزش ، دسترسی کامل به محتوای فصل ، فقط برای کاربرانی که فصل رو خریداری کرده اند ، امکان پذیر می باشد.
برای ثبت نظر ابتدا وارد حساب کاربری خود شوید
ورود به حساب کاربریهیچ نظری ارسال نشده است! اولین نظر را شما ارسال کنید...