لود بالانسینگ چیست و چگونه کار میکند؟ | انواع آن
تا دو دهه پیش وبسایتها با دو مشکل عمده مواجه بودند: مقیاسپذیری (محدودیت چند کلاینت برای دسترسی همزمان به چند سرور) و دسترسی (خرابیهای طولانی). در دنیای امروز کاربر سرعت میخواهد. به محض آنکه احساس کند وقتش را تلف کردهاید، بیرودربایستی صفحه را میبندد و سراغ سایت دیگری میرود. از طرفی تاخیرهای طولانی بهرهوری کارکنان داخلی کسبوکار را تا حد زیادی کاهش میدهد. راه حلی که معرفی شد لود بالانسینگ بود. در این مقاله همراه ما باشید تا ببینیم لود بالانسینگ چیست و چطور کار میکند.
لود بالانسینگ چیست؟
قبل از هرچیز ببینیم لود بالانسینگ چیست و چه مفهومی دارد.
تمرکز لود بالانسینگ (Load Balancing) روی عیبیابی توزیع ترافیک روی چند سرور است. با وجود صدها درخواست کلاینت در هر دقیقه، سرورها نمیتوانند همیشه اطلاعات موردنیاز کاربر را بهسرعت و با کیفیت بالا در اختیار او بگذارند. از طرفی ذرهای تاخیر برای کاربر پذیرفته نیست و اگر احساس ناامیدی کند، خیلی زود صفحه را میبندد و سراغ سایت دیگری میرود.
اینجاست که مفهوم لود بالانسینگ وارد عمل میشود و بهعنوان کارگردان یک مجموعه بزرگ، کل ترافیک را به سرورهای خاصی در «مزرعه سرور» یا «استخر سرور» هدایت میکند. به این ترتیب با جلوگیری از حمل بار بیش از حد روی هر سرور، دسترسی و پاسخگویی برنامه و شبکه بهینه خواهد شد.
لود بالانسینگ چهکار میکند؟
اگر بخواهیم عملکرد لود بالانسینگ را در یک جمله خلاصه کنیم، میتوانیم بگوییم کل بار ترافیک شبکه و فشار کاری را بین چند سرور بکاند توزیع میکند تا هیچ سروری اضافه بار نداشته باشد. چه نتیجهای دارد؟ سرعت پاسخگویی برنامهها بیشتر و تجربه کاربری به مراتب بهتر میشود. اما وظایف لود بالانسینگ چیست؟
لود بالانسر در یک دیتاسنتر یا ابر عمومی قرار میگیرد و این مسئولیتها را بهعهده دارد:
- درخواستهای دریافتی بین سرور و کاربر نهایی را مدیریت میکند.
- سلامت سرورها را مدام بررسی میکند تا از توانایی آنها برای رسیدگی به درخواستها مطمئن شود.
- در صورت لزوم سرورهای ناسالم حذف و در صورت بازیابی مجددا به مزرعه سرور اضافه میشوند.
- برخی از آنها برای مقابله با افزایش تقاضا، سرورهای کاربردی مجازی میسازند.
- برای بهبود عملکرد و امنیت در کنترلرهای تحویل برنامه (ADC) گنجانده میشوند.
- برخی از جنبههای لود بالانسینگ به پایداری بیشتر برنامهها کمک میکنند.
بهطور کلی از مهمترین وظایف این تکنولوژی میتوان به مدیریت افزایش ترافیک، اطمینان از حداقل زمان پاسخگویی و عملکرد و قابلیت اطمینان منابع محاسباتی اشاره کرد.
چند نوع لود بالانسر داریم؟
انواع خاصی لود بالانسر داریم که میتوان در شرایط مختلف برای شبکه در نظر گرفت. برای مثال ممکن است برای پایگاه داده رابطهای خود به لود بالانسینگ SQL Server، برای عیبیابی در چندین موقعیت جغرافیایی به لود بالانسینگ جهانی یا برای اطمینان از عملکرد نام دامنه به لود بالانسینگ سرور DNS احتیاج داشته باشید. در ادامه با انواع لود بالانسینگ آشنا میشویم.
۱. لود بالانسینگ شبکه (Network Load Balancing)
این نوع از لود بالانسینگ همانطور که از نامش پیداست از اطلاعات لایه شبکه برای تصمیمگیری در مورد ارسال ترافیک شبکه استفاده میکند. در این روش لود بالانسینگ لایه ۴ اتفاق میافتد که برای مدیریت همه اشکال ترافیک TCP/UDP طراحی شده و سریعترین راهحل ممکن است. البته این روش در مورد توزیع ترافیک بین سرورها عملکرد چندان خوبی ندارد.
۲. لود بالانسینگ HTTP یا HTTPS
این یکی از قدیمیترین اشکال لود بالانسینگ محسوب میشود که روی لایه ۷ (لایه کاربردی) کار میکند و از انعطافپذیری بالایی برخوردار است. به کمک این مدل میتوان تصمیمات توزیع را بر اساس اطلاعات یک آدرس HTTP اتخاذ کرد.
۳. تعادل بار داخلی (Internal Load Balancing)
این مورد تقریبا مشابه لود بالانسینگ شبکه است؛ با این تفاوت که میتوان از آن برای متعادلسازی زیرساختهای داخلی استفاده کرد.
رایانش مه چیست؟ برای اطلاعات بیشتر مقاله مورد نظر را مطالعه نمایید.
تفاوت لود بالانسر نرم افزاری و لود بالانسر سخت افزاری
یکی از ویژگیهای لود بالانسرها این است که هم بهعنوان لوازم سخت افزاری و هم بهعنوان یک ابزار نزم افزاری تعریف میشوند. اما تفاوت این دو لود بالانسینگ چیست؟
- لوازم سخت افزاری نرم افزارهای اختصاصی اجرا میکنند که برای کارکردن روی CPU های سفارشی بهینه شدهاند. در این حالت هرچه ترافیک بیشتر میشود، وسایل لود بالانسینگ بیشتری برای کنترل حجم به سرور اضافه میشود.
- لود بالانسرهای نرمافزاری معمولا روی سختافزار استاندارد x86 اینتل ارزانتر اجرا میشوند. با نصب نرم افزار در محیطهای ابری مثل AWS EC2 نیاز به وجود سخت افزارهای فیزیکی از بین میرود.
منظور از لود بالانسر مجازی چیست؟
لود بالانسر مجازی یک برنامه نرم افزاری است که با محیطهای SDN کار میکند؛ صرفنظر از اینکه ابر خصوصی، عمومی یا ترکیبی (چند ابری) باشند و نسبت به راه حلهای سخت افزاری هزینه کمتری دارد. البته عملکرد لود بالانسر مجازی بهطور کامل محدود به عملکرد سخت افزار زیرساخت است.
تکنیکهای مورد استفاده در لود بالانسیگ چیست؟
اما بپردازیم به اینکه تکنیکهای مورد استفاده در لود بالانسینگ چیست و عملا چطور کار میکند. هر لود بالانسر برای آنکه سرور یا مزرعه سرور مقصد برای دریافت درخواست کاربر را انتخاب کند، به معیارها و الگوریتمهای مختلفی متکی است. برخی از آنها عبارتاند از:
۱. روش Round Robin
در این روش درخواستهای کلاینت به صورت چرخشی در سرورهای برنامه توزیع میشود. برای مثال اگر سه سرور برنامه داشته باشید، اولین درخواست به اولین سرور، دومین درخواست به دومین سرور و سومین درخواست به سومین سرور فرستاده میشود. با این فرض که همه سرورها ویژگیهای دسترسی، محاسباتی و مدیریتی یکسان دارند.
۲. روش Weighted Round Robin
در این مدل Round Robin ویژگیهای سرور نیز در نظر گرفته میشود. هر سرور بر اساس قابلیتهای مدیریتی خود وزنی دارد که نشانگر تعداد اتصالات فعال آن است. هرچه این وزن بیشتر باشد، سرور درخواستهای بیشتری دریافت خواهد کرد.
۳. روش Least Connections
و اما مدل لود Least Connections بالانسینگ چیست؟ این یکی از تکنیکهای پویاست که تعداد اتصالهای فعال را در نظر میگیرد و درخواستهای کلاینک را به سروری با کمترین تعداد اتصالات فعال هدایت میکند.
۴. روش Weighted Least Connections
این روش نیز بر اساس متد Least Connections طراحی شده و بر اساس ظرفیت اتصال سرورها، وزنی به آنها اختصاص میدهد که معیار انتخاب آن محسوب میشود. به این ترتیب میزان ترافیک اختصاصیافته به هر سرور تعیین میشود.
۵. روش Source IP Hash
در این تکنیک با استفاده از آدرس IP مبدا و مقصد کلاینت و سرور یک هش منحصربهفرد ایجاد میشود. سپس هر کلاینت با توجه به این کلید به سرور خاصی متصل خواهد شد. حتی اگر کلاینت جلسه ارتباطی را قطع کند، امکان تولید مجدد آن وجود دارد و درخواست کلاینت به همان سروری هدایت میشود که قبلاً از آن استفاده میکرد.
۶. روش Least Response Time
در این تکنیک سروری انتخاب میشود که در حال حاضر کمترین اتصال فعال و کمترین میانگین زمان پاسخ را داشته باشد.
۷. روش Least Pending Request
درخواستهای معلق کلاینتها نظارت میشوند و بین سرورهای در دسترس توزیع میشوند.
۸. روش Resource Based (Adaptive)
در این تکنیک باید عاملی روی سرور نصب شود که میزان ترافیک فعلی را به لود بالانسر گزارش دهد. این عامل وضعیت دسترسی سرورها و منابع را نظارت میکند تا لود بالانسر راحتتر بتواند تصمیم بگیرد.
۹. روش Fixed Weighting
در تکنیک وزنگذاری ثابت مدیر بر اساس معیارهای انتخابی خود وزنی به به هر سرور میدهد تا قابلیتهای مدیریت ترافیک آنها را تعیین کند. سروری که بالاترین وزن را داشته باشد، بیشترین ترافیک را دریافت میکند و اگر از کار بیافتند، ترافیک به سرور بعدی با بالاترین وزن هدایت میشود.
۱۰. روش Least Bandwidth
و آخرین تکنیکی که معرفی میکنیم حداقل پهنای باند است که در آن لود بالانسر ترافیک برنامه را بر حسب مگابیت (Mbps) در ثانیه اندازهگیری کرده و درخواستها را به سروری با کمترین مقدار مگابیت در ثانیه ارسال میکند.
مطالعه مقاله تجهیزات امنیتی شبکه از دست ندهید.
مزیتهای لود بالانسینگ چیست؟
اکنون که تقریبا با این مفهوم آشنا شدهایم و کارکردش را میشناسیم، بیایید با فواید استفاده از آن آشنا شویم و ببینیم مزیتهای لود بالانسینگ چیست.
- مقیاسپذیری (Scalability) – لود بالانسر فشار کار را بهگونهای یکنواخت روی سرورهای موجود پخش کرده و با این کار مقیاسپذیری بیشتری فراهم میکند.
- افزونگی (Redundancy) – ترافیک برنامهها به دو یا چند سرور ارسال میشوند؛ این یعنی حتی اگر یکی از سرورها از کار بیافتند، لود بالانسر کاملا خودکار ترافیک را به سرورهای دیگر منتقل میکند.
- انعطافپذیری (Flexibility) – با وجود لود بالانسینگ همیشه یک سرور برای دریافت بارهای برنامههای مختلف در دسترس است. به این ترتیب نگهداری و مدیریت باقی سرورها با انعطافپذیری بیشتری انجام میشود
- امنیت (Security) –از دیگر مزیتهای عالی لود بالانسینگ میتوان به جلوگیری از حملات انکار سرویس (DDoS) اشاره کرد. با لود بالانسینگ میتوان ترافیک شبکه و برنامه را به یک سرور دیگر آفلود کرد و این کار از ترافیک در برابر حملات سایبری خطرناک محافظت میکند.
- تداوم جلسه (Session Persistence) – منظور از تداوم جلسه اطمینان از ارسال تمام دادههای کاربر در طول سشن به سرور است. هرگونه تغییر سرور در میانه راه مشکلات عملکردی و عدم ذخیره دادهها را به همراه خواهد داشت. در حالی که یکی از بزرگترین مزیتهای لود بالانسینگ توانایی مدیریت حجم زیادی از دادههای ذخیره شده است.
- لود بالانیسنگ جهانی – امکان پیادهسازی لود بالانسینگ در مقیاس جهانی یکی از قابلیتهای پرکاربرد این تکنولوژی است که میتوان به کمک آن از سرورها در موقعیتهای جغرافیایی مختلف استفاده کرد. قبول کنیم یا نه، هر روز شرکتهای بیشتری در پی راهی برای استقرار برنامههای کاربردی مبتنی بر ابر خود در مراکز داده و ابرهای عمومی (Public Cloud) هستند.
چند نکته مهم برای بهینهسازی لود بالانسینگ
برای آنکه مطمئن شوید برنامه وب به بهترین شکل ممکن با لود بالانسینگ اجرا میشود، نکات زیر را برای بهینهسازی مدنظر داشته باشید:
- بهینه سازی لایه شبکه و برنامه: تکنیکهای لود بالانسر تصمیمات خود را بر اساس لایهای مقصد ترافیک اتخاد میکنند. لود بالانسینگ لایه L4 سریعتر از L7 مسیریابی میشود. در حالی که عملکرد لود بالانسینگ لایه L7 بهتر است. این یعنی برای استفاده بهینه از این تکنولوژی، ابتدا باید بدانید تفاوت انواع لود بالانسینگ چیست.
- تداوم جلسه: برای آنکه از مزیت تداوم جلسه برخوردار شوید، تکنیک لود بالانسینگ Least Connection با قابلیت ذخیره دادههای یک جلسه در حافظه پنهان، عملکرد بهتری نشان میدهند.
- رمزگشایی SSL: این فرآیند رمزگشایی ترافیک، تهدیدات ورودی به برنامهها و همچنین خروجی از کاربران به اینترنت را شناسایی میکند.
- لود بالانسینگ DNS: سیستم DNS هر بار که با تکنیک round-robin به درخواست کلاینت پاسخ میدهد، یک نسخه متفاوت از لیست آدرس IP ها ارسال میکند. درخواستهای DNS به طور یکنواخت بین سرورهای مختلف توزیع میشود تا بار کلی را مدیریت کند.
کلام آخر
لود بالانسینگ فرایندی است که در آن حجم ترافیک و فشار کاری روی چند سرور تقسیم میشود تا با جلوگیری از اوردلود شدن سرورها، سرعت و کارایی آنها را تضمین کند. توزیع درخواستهای کاربران میان سرورها از کمک میکند پاسخها بهموقع ارسال شوند و افت سرعت به حداقل برسد.
بهعنوان مدیر شبکه، پلتفرمهای نظارتی متعددی وجود دارند که صحت عملکرد لود بالانسینگ را به شما نشان میدهند. با استفاده از این پلتفرمهای قدرتمند، بینشهای دقیق و لحظهای از کل زیرساخت شبکه در اختیار دارید تا هر لحظه مشکلات مربوط به لود بالانسینگ را شناسایی و حل کنید.
امیدواریم بعد از مطالعه این مقاله کاملا فهمیده باشید که لود بالانسینگ چیست و چطور کار میکند و اگر شما عزیزان اطلاعات بیشتری درباره این مفهوم شبکه دارید، منتظر شنیدن نظرات ارزشمند شما هستیم.
دیدگاهتان را بنویسید