از مشکلات رایج در شبکههای کامپیوتری می توان به محدودیتهای دسترسی (مشکلات ناشی از اختلالات طولانی) و مقیاس پذیری (محدودیت کلاینتهای متصل به سرور) اشاره کرد. اگر پیشبینی ریکوئستها به سرور قابل برآورد نباشد و یا اینکه بهدنبال سرعت بالا در اتصالات و کاهش قطعی سرویس باشیم، از قابلیت لود بالانس در شبکه کمک میگیریم. اما اینکه لود بالانسینگ چیست و چگونه در شبکههای کامپیوتری کار میکند، در ادامه متوجه خواهید شد.
در صورتیکه به دنبال یک تیم متخصص در زمینه پشتیبانی شبکه هستید، مجموعه رایانه کمک آماده ارائه خدمات شبکه به صورت ریموت و حضوری به سازمانها و اشخاص است.
✴️✴️شما میتوانید از طریق تلفن های ثابت با شماره 9099071540 یا 9099070192 (با تلفن ثابت ) یا از طریق "صفحه تماس از موبایل" با کارشناسان متخصص ما اقدام کنید.
همکاران ما در تمام طول هفته آماده اند تا پاسخگوی سوالات فنی شما باشند
آنچه در این مقاله می خوانیم:
✅قابلیت لود بالانسینگ چیست؟
✅تعریف لود بالانسینگ (Load Balancing)
✅توزیع ترافیک به کمک لود بالانسینگ به چه معناست؟
✅Load Balancer چگونه کار میکند؟
✅نحوه توزیع ریکوئستها در لود بالانسینگ
✅بررسی انواع لود بالانسینگها
✅معرفی الگوریتمهای پیشرفته
✅جمع بندی نهایی
قابلیت لود بالانسینگ چیست؟
لود بالانسینگ (Load Balancing) به معنای توزیع فشار کاری بین سرورهای مختلف با هدف کاهش بار ترافیک در شبکه است. فرآیند تعادل بار عملیات محاسباتی را بین دو یا چند سرور تقسیم میکند تا فشار وارده بر روی هر سرور تقلیل یافته، عملکرد بهبود پیدا کرده و زمان پاسخدهی به حداقل برسد. اهمیت این قابلیت زمانی مشخص میشود که در یک شبکه یک یا چند سرور از کار بیفتند؛ درآنصورت قابلیت لود بالانس کمک میکند وظایف بین سایر سرورها توزیع شود.
❗ برای مطالعه درباره مفاهیم و اهداف شبکه، از مقاله شبکه کامپیوتری چیست؟ بازدید نمایید.
تعریف لود بالانسینگ (Load Balancing)
در تعریف لود بالانسینگ، بخش "Load" به معنای حجم منابع مصرف شده از سیستم میزبان، هاست و یا سرور است که شامل منابع نرمافزاری مثل وب سرور، منابع سختافزاری همچون پردازنده و رمِ سرور و یا منابع شبکهای چون پهنای باند میشوند. هرکدام از این منابع دارای ظرفیت مشخص بوده و میزان فشاری که بر هرکدام وارد میشود را با مفهوم Load بیان میکنیم.
مفهوم "Balancing" به معنای مدیریت و ایجاد تعادل در عرضه و تقاضای منابع سرور است که با هدف افزایش سرعت و کاهش قطعی در شبکه صورت میگیرد. باتوجه به این تعاریف، برای پیادهسازی تعادل بار و جلوگیری از Single Point Failure در شبکه، به حداقل دو سرور مجزا نیاز داریم که در آن مدیریت درخواستها بر عهده سرویس لود بالانسر (Load Balancer) خواهد بود.
توزیع ترافیک به کمک لود بالانسینگ به چه معناست؟
قابلیت Load Balancing به ما کمک میکند در شبکه تعادل ایجاد کرده و بهرهوری را بالا ببریم. در شبکههایی که کارایی و سرعت از اهمیت ویژهای برخوردار است و یا زمانی که تعداد درخواستها به سمت سرور قابل پیشبینی نیست، با کمک لود بالانسر یک دامنه اطمینان ایجاد میکنیم. برای اینکه درک این مفهوم برای شما ملموستر شود، با چند مثال به توضیح آن میپردازیم:
⬅ فرض کنید در پمپ بنزین هستید و تنها یک جایگاه برای بنزین زدن درنظر گرفته شده. همین موضوع باعث کندی کار و ایجاد صف طولانی میشود. حال اگر تعداد لاینهای جایگاه افزایش یافته و به چهار برسد، هم صفها کوتاهتر میشوند و هم سرعت سوخترسانی 4 برابر میگردد.درست مثل زمانی که شما پیکربندی رم دو کاناله بر روی کامیپوتر خود را انجام میدهید.
⬅ یا مثلاً زمانی که یک سایت پربازدید همچون سایت سنجش در مقاطع خاص با افزایش بازدید مواجه میشود، وجود یک یا چند سرور کمکی که با هم لود بالانس شدهاند، از دان شدن سایت جلوگیری کرده و اجازه میدهد به کاربران بیشتری بهطور هم زمان خدمات ارائه شود. در این شرایط حتی اگر تعدادی از سرورها به مشکل بخورد سرورهای پشتیبان برای جایگزینی وجود خواهند داشت.
توزیع بار در Load Balancing هم به این صورت انجام میشود و با تقسیم درخواستها بین سرورهای متعدد، زمان انتظار کاربر به حداقل میرسد. این موضوع در مباحث تجربه کاربری نیز از اهمیت بالایی برخوردار است.
همانطور که در تصویر بالا مشاهده میکنید، هر سیستم تعادل بار از دو بخش تشکیل میشود (حداقل دو سرور میزبان و یک سرویس لود بالانسر) و به صورت سخت افزاری و نرم افزاری قابل پیادهسازی است (البته نوع سختافزاری آن ثمربخشتر است). به کمک این متد، میتوان در زمان بالا رفتن مصرف منابع، سرورهای جدیدی را به Server Pool افزود تا بخشی از ترافیک روی آنها توزیع شود. قابلیت فوق حتی در سرویسهای DHCP هم قابل اجراست، بهاینترتیب اگر یک سرویس از مدار شبکه خارج شود، دیگری جای آن را پُر میکند.
Load Balancer چگونه کار میکند؟
فرآیند لودبالانسینگ توسط برنامه یا ابزاری به نام Load Balancer انجام میشود. همانطور که پیشتر اشاره شد، این ابزار میتواند به شکل سختافزار یا نرمافزار بهکار برده شود. در لودبالانسرِ سخت افزاری یک دستگاه لود بالانسینگ اختصاصی در شبکه نصب میشود اما فرم نرمافزاری در فضای ابری، ویرچوال ماشین و یا سرور قابل اجرا است. جالب است بدانید لودبالانسینگ تنها به سرورها محدود نشده و لینکهای اینترنت را هم شامل میشود و اکثر CDNها از این قابلیت بهره میبرند.
نکته دیگر اینکه Load Balancer ها در لایههای مختلفی قابل فعالسازی هستند. بهطور مثال در خطوط اینترنت لود بالانسینگ در لایه 3 و 2 و در اپلیکیشنها در لایه 7 و 4 فعالاند.
روش کار این گونه است که لودبالانسر بین کلاینت و سرور قرار میگیرد و هنگام از دسترس خارج شدن یک سرور، مشکل را تشخیص داده و درخواستها را به سمت دیگر سرورهای در دسترس میفرستد. تمامی این فرآیند که Route کردن نام دارد طی چند ثانیه و به صورت خودکار انجام میشود و کاربر حتی متوجه بروز اختلال و جابهجایی نخواهد شد. بنابراین به لطف لود بالانسر میزان در دسترس بودن شبکه به حداکثر رسیده و از تعداد قطعیها به شدت کاسته میشود.
در زمان فعال بودن لود بالانسینگ هر درخواستی که سمت سرور میرود توسط لودبالانسر به سرور معینی تخصیص داده میشود. اینکه هر درخواست کاربر بر چه اساس توزیع میشود را الگوریتمهای لود بالانسینگ تعریف میکنند که در دو دسته استاتیک و داینامیک جای میگیرند و در ادامه مقاله بیشتر به آنها خواهیم پرداخت.
نحوه توزیع ریکوئستها در لود بالانسینگ
هر سرور مجازی کلاسترهای اختصاصی از سرویسها دارد که هر کدام دارای لیستی از قابلیتهای هاست هستند. طی فرآیند مانیتورینگ، سرورها بررسی شده و بهگونهای لیست میشوند که هاستهای در دسترس، اولویتبندی شده در آن قرار بگیرند. سپس لود بالانسر با کمک این لیست و الگوریتم خود و کلاستر، شروع به توزیع درخواستها میکند.
یکی از رایجترین الگوریتمهای موجود، الگوریتم Round Robin است که در آن نخستین درخواست به نخستین سرورِ در دسترس اختصاص می یابد و به همین ترتیب دومین درخواست به سرور دوم و در انتهای لیست چرخه از نو آغاز میشود. این الگوریتم به شدت ساده است و در آن حجم درخواستها و میزان فشار، یکسان برآورد شده که در شرایط واقعی صادق نیست. اما در الگوریتمهای سطحِ بالا و پیشرفته، علاوه بر حجم درخواستها به متغیرهایی چون تعداد ارتباطات سرور، راندمان سرورها و میزان پاسخگویی برای ترافیک کنونی نیز توجه میشود.
بررسی انواع لود بالانسینگها
برای توسعه زیرساخت یک اپلیکیشن سرور، بهترین راه استفاده از لودبالانسرها است که در صورت افزایش ریکوئست کاربران، منابع مورد نیاز را تامین کرده و امکان اضافه شدن منابع سختافزاری و نرمافزاری جدید را به شبکه ممکن کنند. توانایی هدایت ترافیک و انعطاف بالای لود بالانسرها در سه نوع زیر قابل تعریف است:
✅ نوع اول: لود بالانس لایه 4
در نوع اول هدایت ترافیک به کمک دیتای حاصل از لایههای نتورک و ترانسپورت همچون IP و پورت TCP انجام میشود.
✅ نوع دوم: لود بالانس لایه 7
لود بالانس نرمافزاری که در لایه 7 فعالیت میکند و برای هدایت ترافیک از دیتای حاصل از لایه اپلیکیشن همچون هیدرهای HTTP استفاده میکند.
✅ نوع دوم: لود بالانس GSLB
Global Server Load Balancing یا بهطور مختصر GSLB برای سرورهایی در فواصل جغرافیایی دور از هم کاربرد دارد.
معرفی الگوریتمهای پیشرفته
✅ Round Robin
الگوریتم Round robin که در قسمتهای قبل به آن اشاره داشتیم، یکی از سادهترین الگوریتمهای لود بالانسینگ است که در آن یک لیست چرخشی برای اختصاص درخواست کاربر به سرورهای مجازی ایجاد میشود. با وجود سادگی اجرا، نکته منفی در این الگوریتم عدم توجه به بار فعلی هر سرور است که شبکه را با خطر ارسال فشار کاری زیاد برای یک سرور روبهرو میکند.
✅ Least Response Time
در الگوریتم Least Response Time درخواستهای کاربر به سروری ارجاع داده میشود که زمان پاسخگویی کوتاهتر و بار کاری کمتری داشته باشد. مطابق این الگوریتم سرعت پاسخدهی سنجهای برای فشار کاری سرور بوده و تجربه کاربری بهتری را رقم میزند. بنابراین درخواستها هر بار به سمت خلوتترین سرور خواهند رفت.
✅ Least Bandwidth
الگوریتم Least Bandwidth اولویت ارسال درخواستها را با شاخص آزاد بودن پهنای باند تنظیم میکند. بهاینترتیب سروری که کمترین میزان ترافیک را داشته باشد، مقصد ارجاع درخواستهای جدید خواهد بود.
✅ Least Connection Method
در الگوریتم Least Connection Method اولویت با سرویسی خواهد بود که حداقل ارتباط و استفاده را داشته باشد.
✅ Hashing
این الگوریتم با هشِ دادههای ورودی و رمزگشایی آنها، میتواند درخواستها را به سرور مناسب منتقل کند. دادههای مورد بررسی در این الگوریتم شامل آدرس IP، نام دامنه و شماره پورت هستند.
✅ Least Packets
در الگوریتم Least Packets اولویت ارجاع با سروری است که کمترین بسته دریافتی را داشته باشد.
✅ Custom Load
در الگوریتم Custom Load سرویسی که دارای کمترین تراکنش فعال باشد برای ارجاع درخواستها اولویت پیدا میکند. بهاینترتیب لود بالانسر فشار روی سرورها را از طریق SNMP درخواست کرده و بر اساس حداکثر بار تعریف شدهای که توسط سرپرست تعریف شده اولویتبندی میکند. این الگوریتم از ترکیب دیتاهای CPU، زمان پاسخدهی، تجربه کاربری و حافظه استفاده خواهد کرد.
جمع بندی نهایی
در این مقاله سعی کردیم بهصورت قابل فهم مباحث مربوط به لود بالانسینگ در شبکه را توضیح دهیم. بهاینمنظور اشارهای به تعریف لود بالانس و لود بالانسر داشتیم، درباره روش کار آنها صحبت کردیم و الگوریتمهایی که در کارکرد این سرویس تاثیرگذار هستند را به شما معرفی نمودیم. امیدواریم این مطلب توانسته باشد اطلاعات مورد نیاز شما را ارائه دهد البته اگر هنوز سؤال بیپاسخی در ذهنتان مانده کافی است از طریق کامنت با کارشناسان ما در میان بگذارید. بخش دیدگاه ها متعلق به شماست.
در پایان لازم است اشاره کنیم که میتوانید برای رفع مشکلات شبکههای کامپیوتری و دریافت خدمات پشتیبانی شبکه از یک تیم متخصص، از طریق تلفن های ثابت با شماره 9099071540 یا 9099070192 (با تلفن ثابت ) یا از طریق "صفحه تماس از موبایل" با کارشناسان متخصص ما اقدام کنید.
همکاران ما در تمام طول هفته آماده اند تا پاسخگوی سوالات فنی شما باشند
قابل توجه شما کاربر گرامی: محتوای این صفحه صرفاً برای اطلاع رسانی است در صورتی که تسلط کافی برای انجام موارد فنی مقاله ندارید حتما از کارشناس فنی کمک بگیرید.