کنسولهای بازی را دیدهاید؟ مخصوصا نسلهای جدید که فقط با یک دسته ارائه میشوند. اگر یکی از این کنسولهای تکدستهای را داشته باشید و از پنج دوست بخواهید که مهمانتان باشند تا یک گیمی بر بدن بزنید، چه اتفاقی میافتد؟ یک نفر مشغول بازی و چهار نفر درحال تماشا! حالا تصور کنید که چند کنسول دارید و میتوانید دوستانتان را به گروههای کوچک تقسیم کرده و به هر گروه، زمان بازی بدهید. در این حالت همه بهشکل همزمان بازی میکنند و لذت دستهجمعی حاصل میشود. در یک شبکه کامپیوتری، داشتن چند کنسول را همان لود بالانسینگ میدانیم که بار مربوطبه پردازش محتوای وبسایتها، ایمیلها یا فایلها را در چند سرور توزیع میکند. پس در ادامه پاسخی شفاف به سوال «لود بالانسینگ چیست؟» میدهیم. سپس به کاربردهای آن، انواع، الگوریتمهای مورد استفاده و روش های لود بالانسینگ خواهیم رفت.
لود بالانسینگ چیست؟
لود بالانسینگ روشی برای توزیع ترافیک شبکه بهطور مساوی در بین منابعی است که یک اپلیکیشن یا سایت را نگهداری میکند. اپلیکیشنهای مدرن باید درخواست میلیونها کاربر را بهطور همزمان پردازش کنند. سپس متن، فیلم، تصاویر و سایر دادههای صحیح را به روشی پرسرعت و قابل اعتماد، به هر کاربر تحویل دهند.
برای رسیدگی به چنین حجم بالایی از ترافیک، بسیاری از برنامهها، از سرورهای منبع زیادی کمک میگیرند؛ سرورهایی که دادههای تکراری و پرتقاضا بین آنها تقسیم شده است.
متعادلکنندههای بار بین کاربر و گروه سرور قرار میگیرد تا بهعنوان یک تسهیلگر نامرئی در پسزمینه عمل کند. این دستگاه تضمین میکند که همه سرورهای منبع بهطور یکسان استفاده خواهند شد.
بیشتر بخوانید: nat چیست و چگونه کار میکند؟ بررسی انواع و مزایا و معایب NAT
لود بالانسینگ چگونه کار می کند؟
برای درک بهتر جواب «لود بالانسینگ چیست؟»، باید شیوه کارکرد آن را هم بدانیم. توزیع بار توسط ابزار یا برنامهای بهنام متعادلکننده بار (Load Balancer) انجام میشود. یک متعادلکننده بار میتواند برپایه سختافزار یا مبتنیبر نرمافزار باشد.
لود بالانسینگ سختافزاری نیاز به نصب یک دستگاه Load Balancer اختصاصی دارد؛ درحالیکه متعادلکنندههای بار مبتنیبر نرمافزار میتوانند روی سرور، ماشین مجازی یا در فضای ابری اجرا شوند. سرویس cdn یکی از معروفترین واسطههای مجهزبه متعادلکننده بار هستند.
هنگامیکه درخواستی از کاربر به سرور میرسد، متعادلکننده بار آن را به یک سرور معین میفرستد. این فرآیند برای هر درخواست تکرار میشود.
سپس Load Balancer تعیین میکند که کدام سرور باید هر درخواست را براساس تعدادی الگوریتم مختلف مدیریت کند.
مزایای لود بالانسینگ چیست؟
سازمانهایی که چند سرور دارند، میتوانند از مزایای لود بالانسینگ بیشترین بهره و سود را ببرند. این مزایا به شرح زیر هستند.
مقیاسپذیری بهبودیافته
متعادلکنندههای بار میتوانند زیرساخت سرور را برپایه تقاضا و بسته به نیاز شبکه، بدون تاثیر منفی بر خدمات فعلی، گسترده کنند. بهعنوان مثال، اگر یک وبسایت با دریافت ترافیک زیادی از بازدیدکنندگان مواجه شد، مدیر سایت میتواند از لود بالانسر برای مدیریت افزایش ناگهانی ترافیک سود ببرد.
بهرهوری بیشتر سرور
با توجه به کاهش بار ترافیک روی هر سرور در فرایند لود بالانسینگ، ترافیک شبکه بهتر جریان یافته و زمان پاسخگویی را بهتر میکند. بنابراین شاهد افزایش رتبه سئو (seo چیست) و در نهایت تجربه بهتری برای بازدیدکنندگان خواهیم بود.
کاهش زمان توقف سرور یا خدمات آنلاین
شرکتهایی که دارای چند ساب دامین هستند و فعالیت بینالمللی دارند، میتوانند از Global Server Load Balancing بیشترین بهره را ببرند. بهخصوص زمانیکه صحبت از تعمیر و نگهداری سرور میشود. بهعنوان مثال، یک شرکت میتواند سروری را که نیاز به تعمیر و نگهداری دارد، خاموش کند. سپس ترافیک را به دیگر لود بالانسرهای موجود، بدون ایجاد وقفه در سرویس یا خرابی هدایت کند.
بیشتر بخوانید: ساب دامین چیست؟ همه چیز درباره Subdomain و سئو آن
تحلیل و پیشبینی سریع
لود بالانسینگ میتواند تشخیص زودهنگام خرابیها را بهعهده بگیرد و به مدیریت آنها، بدون تاثیر منفی بر منابع دیگر کمک کند. برای مثال، لود بالانسرهای نرمافزاری میتوانند گلوگاههای ترافیکی را قبل از وقوع، پیشبینی کنند.
مدیریت کارآمد شکست پردازشها
در صورت خرابی سرور یا ایجاد اختلال در شبکه، بار متعادلکنندهها بهشکل خودکار به منابع در دسترس هدایت شده و گزینههای پشتیبان مسئولیت آن را تقبل میکنند. یک نمونه از آن، خرابی یکی از منابع شبکه مانند هاست ایمیل یا هاست وردپرس است. در چنین سناریوهایی، لود بالانسرها با سرعت بالا در صحنه حاضر شده و ترافیک را روی دستگاههای سالم توزیع میکنند تا از ایجاد اختلال در سرویس جلوگیری شود.
افزایش امنیت
Load Balancer یک لایه امنیتی اضافی را بدون نیاز به تغییرات یا منابع بیشتر، به شبکه و تجهیزات آن اعطا میکند. همانطور که تقاضا برای خرید هاست ابری و پردازش مبتنیبر ابر بیشتر میشود، متعادلکنندههای بار هم به ویژگیهای امنیتی بیشتر، مانند Offloading Function مجهز میشوند. این قابلیت در برابر انواع حمله دیداس روی سرویسهای ابری، از دادهها و سرورها محافظت میکند.
4 کاربرد لود بالانسینگ
کاربردهای لود بالانسینگ به شرح زیر هستند:
- دسترسی بالا و بازیابی فاجعه در صورت خرابی سرور و تضمین تداوم سرویس
- بهینهسازی عملکرد سرورها با تشخیص هوشمندانه ترافیک آنها و میزان در دسترس بودنشان
- توزیع کارآمد منابع سختافزاری سرور و اولویتبندی خودکار تخصیص بار
- مدیریت بستههای داده در پروتکلهای خاص – بهجز HTTPS
انواع Load Balancing کدامند؟
ما میتوانیم متعادلسازی بار را بستهبه آنچهکه Load Balancer در درخواست مشتری برای تغییر مسیر ترافیک بررسی میکند، به سه دسته اصلی طبقهبندی کنیم. شرح این سه دسته را در ادامه آوردهایم.
1. متعادل کننده بار اپلیکیشن
برنامههای مدرن دارای چند مزرعه سرور با دهها یا صدها سرور اختصاص دادهشده هستند تا از پس پیچیدگی و جزئیات آنها بربیایند. این لود بالانسرها به محتوای درخواست کاربر، مانند هدرهای HTTP یا شناسههای SSL Session نگاه میکنند تا مسیر ترافیک را تغییر دهند.
بهعنوان مثال، یک اپلیکیشن فروشگاه آنلاین دارای دایرکتوری محصول، سبد خرید و عملکردهای پرداخت است. Application Load Balancer درخواستهای مشاهده محصولات را به سرورهایی ارسال میکند که حاوی تصاویر و ویدیوها هستند؛ اما نیازی به حفظ اتصالات باز هم ندارند.
در طرفی دیگر، درخواستهای بررسی یا تکمیل سبد خرید را به سرورهایی ارسال میکند که میتوانند بسیاری از اتصالات کاربر را حفظ و دادههای سبد خرید را برای مدت طولانی ذخیره کنند.
2. متعادلکننده بار شبکه
Network Load Balancers آدرسهای IP و سایر اطلاعات شبکه را برای هدایت ترافیک بهینه بررسی میکند. آنها منبع ترافیک اپلیکیشن را ردیابی میکنند و میتوانند یک آدرس IP ثابت را به چند سرور اختصاص دهند. این لود بالانسرها از الگوریتمهای استاتیک و پویا توزیع بار و اختصاص آن به چند سرور استفاده میکنند.
بیشتر بخوانید: ip چیست؟ کاربرد انواع IP به زبان ساده
3. توزیع بار روی سرورهای سراسر جهان
Global Server Load Balancing در چند سرور توزیعشده در مناطق مختلف جهان و نقاط جغرافیایی انجام میشود. بهعنوان مثال، شرکتها میتوانند سرورهایی را در مراکز متعدد داده و در کشورهای مختلف داشته باشند که هرکدام را یک شرکت ارائهدهنده خدمات ابری تامین کرده است.
در این مورد، متعادلکنندههای بار که در نزدیکی کاربران یا سرور هستند، پردازش جزئیات اپلیکیشن را در یک منطقه یا محدوده جغرافیایی مدیریت میکنند.
آنها سعی دارند که ترافیک را به مقصد سروری که از نظر جغرافیایی به سیستم کاربر نزدیکتر است، هدایت کنند. اگر مشکلی در شبکه یا سرورها پیش بیاید، این لود بالانسرها ترافیک را به سرورهای خارج از منطقه جغرافیایی کلاینت هدایت میکنند.
4. تعادل بار DNS
در DNS Load Balancing، دامنه خود را طوری پیکربندی میکنید که درخواستهای شبکه را در میان مجموعهای از منابع دامنه هدایت کند.
در تعادل بار DNS، چند آدرس IP به یک دامنه وصل میشوند. سرور DNS به کوئریها با آدرسهای IP مختلف، براساس الگوریتمها یا پیکربندیهای خاص پاسخ میدهد.
بیشتر بخوانید: dns چیست؟ کاربرد انواع دی ان اس چیست
الگوریتم های لود بالانسینگ
دو نوع الگوریتم لود بالانسینگ داریم که در ادامه، هرکدام را بهشکل کامل توضیح خواهیم داد.
1. ثابت
الگوریتم های لود بالانسینگ از نوع ثابت یا استاتیک، بارهای کاری را بدون در نظر گرفتن وضعیت فعلی سیستم یا هاست توزیع میکنند. این لود بالانسرها، هیچ اطلاعاتی درباره سرعت پایین سرورها یا پرمصرف بودن آنها ندارند.
در عوض بارهای کاری را براساس یک برنامه از پیش تعیینشده به هر سرور منتقل میکنند. تعادل بار استاتیک روی سرور، بهسرعت پیکربندی و تنظیم میشود؛ اما میتواند منجر به ناکارآمدی پردازشها و اختلال در سرعت کلی ترافیک هم شود.
نمونهها:
- Client-side Random Load Balancing
- Round robin DNS
- IP hash
2. پویا
الگوریتم لود بالانسینگ پویا یا داینامیک، در دسترس بودن، حجم کاری و سلامت هر سرور را در نظر میگیرند. آنها میتوانند ترافیک را از سرورهای پربار یا ضعیف به سرورهای کم استفاده منتقل کنند و توزیع را یکنواخت و کارآمد نگه دارند.
بااینحال، تنظیم بار پویا دشوارتر از حالت استاتیک است؛ چون برخی عوامل روی دسترسپذیری به سرور نقش دارند: سلامت و ظرفیت کلی هر سرور، اندازه وظایف در حال توزیع و غیره.
نمونهها:
- Least Connection
- Weighted Least Connection
- Resource-based
- Geolocation-based
7 روش لود بالانسینگ
روش های لود بالانسینگ به هفت نوع مختلف تقسیم میشوند که فرزند الگوریتمهای استاتیک و داینامیک هستند.
1. IP Hash-based
رویکرد مبتنیبر هش IP، بهترین سرور را برای پردازش درخواست کاربر، براساس کلیدهای تعیینشده مانند هدرهای HTTP یا اطلاعات آدرس IP، محاسبه میکند. این روش از ماندگاری Session یا ادامه فرایند پشتیبانی میکند. بههمیندلیل این روش لود بالانسینگ را برای اپلیکیشنهایی که به اطلاعات وضعیت ذخیرهشده خاص کاربر متکی هستند، مناسب میدانیم؛ اطلاعاتی مانند سبد خرید در فروشگاههای اینترنتی.
2. Round-robin
روش گردشی از میان تمام سرورهای موجود، بهترتیب متوالی میگذرد و با استفاده از سیستم نام دامنه (DNS)، ترافیک را بین لیستی از سرورها بهصورت چرخشی توزیع میکند.
3. Weighted Round-robin
رویکرد Weighted Round-robin به مدیران امکان میدهد تا بارهای مختلف پردازشی را به هر سرور اختصاص دهند. به این ترتیب، سرورهایی که میتوانند ترافیک بیشتری را مدیریت کنند، براساس منابع سختافزاری و نرمافزاری آزاد خود، ترافیک بیشتری هم دریافت میکنند.
4. Least-connections
روش کمترین اتصال، سرورهایی را با کمترین پردازش و تبادلات مداوم دادهها بررسی میکند. سپس ترافیک را به سرورهایی که کمترین اتصالات باز را دارند، ارسال میکند. این الگوریتم فرض میکند که تمام اتصالات به قدرت پردازش تقریبا یکسانی نیاز دارند.
5. Weighted Least Connection
روش حداقل وزن اتصال فرض میکند که برخی از سرورها میتوانند ترافیک بیشتری را در مقایسه با سایر سرورها مدیریت کنند. بنابراین، مدیران شبکه را قادر میسازد تا بارهای پردازشی مختلفی را به هر سرور اختصاص دهند.
6. Weighted Response Time
رویکرد زمان پاسخ وزنی، از میانگین زمان پاسخ هر سرور استفاده میکند تا آنها را براساس اتصالات بازشان با یکدیگر ترکیب کند. با این ادغام کردن، بهترین مقصد برای ارسال و هدایت ترافیک سنگین پیدا میشود. این الگوریتم خدمات را با سرعت بسیار بیشتری ارائه میدهد؛ چون ترافیک را با سریعترین زمان پاسخ سرورها دریافت و ارسال میکند.
7. Resource-based
این روش لود بالانسینگ، بار را براساس در دسترس بودن منابع هر سرور، در لحظه درخواست توزیع میکند. این لود بالانسر قبل از توزیع ترافیک، یک نرمافزار تخصصی بهنام “Agent” را جستوجو میکند. این نرمافزار روی هر سرور اجرا میشود تا در دسترس بودن CPU و RAM را بررسی کرده و اندازه بگیرد.
بیشتر بخوانید: openwrt چیست؟ کاربردها، مزایا و چالشها
آنچه در لود بالانسینگ خواندیم
انواع لود بالانسینگ با توزیع بار روی سرورهای مختلف، تلاش دارند مدیریت ترافیک را کارآمد کرده و سرعت پاسخدهی هاستها را افزایش دهند. در این روش، از الگوریتمهای مختلف استفاده میشود که هرکدام مزایا و معایب خود را دارند. مزایای لود بالانسینگ مانند افزایش امنیت، بهبود سرعت سایت و رتبه سئو، ما را نسبتبه انتخاب آن مصمم میکنند.
نظر شما درباره این تکنولوژی چیست؟ کدام ویژگی آن را بیش از همه میپسندید؟ ما در بخش نظرات همین مقاله، پذیرای دیدگاه، تجربه و نقطهنظرتان هستیم.
سوالات متداولی که شما میپرسید
- لود بالانسینگ چیست؟
روشی برای توزیع بار پردازشی هر سرور روی سرورهای متصل دیگر.
- انواع لود بالانسینگ کدامند؟
لود بالانسینگ ثابت و پویا، دو نوع Load Balancing هستند.
- مزایای لود بالانسینگ چه چیزهایی هستند؟
افزایش امنیت، تحلیل و پیشبینی سریع و بهرهوری بیشتر سرور ازجمله مزایای این روش هستند.
منابع: