Load Balancer که در محصولات F5 به کار رفته به یک فیچر و یا مولفه ای اشاره دارد که ترافیک ورودی شبکه را بین چندین سرور توزیع می کند تا علاوه بر پرفورمنس، قابلیت اطمینان و توسعه پذیری را نیز بهبود بخشد. در واقع می توان عملکرد لود بالانسر را به یک واسطه بین کلاینت و سرور تشبیه کرد که ترافیک را به طور هوشمندانه و بر اساس الگوریتم ها و فاکتورهایی مانند صحت و سلامت سرور، منابع موجود و … توزیع می کند. به این ترتیب تضمین می شود که هر سرور میزان مشخصی از حجم ترافیک را دریافت کرده و مانع از overload شدن یک سرور می گردد.
ضمن اینکه ارائه قابلیت هایی مانند SSL offloading، session management و application-layer security و بهبودِ کلی عملکرد و امنیت زیرساخت های شبکه به عهده load balancer می باشد.
هدف اصلی Load Balancer
هدف از قرار دادن این ویژگی در محصو لات F5، توزیع موثر و کارامد ترافیک ورودی شبکه از طریق سرورهای متعدد به منظور دستیابی به موارد ذیل می باشد:
- توسعه پذیری: لود بالانسرها این اطمینان را می دهند که ترافیک شبکه به طور یکنواخت در بین همه سرورها توزیع می گردد. به این ترتیب سرورهای اضافه را می توان به pool منتقل نمود تا درخواست های ترافیکی را مدیریت کنند.
- High Availability: لود بالانسرها بر صحت و عملکرد سرورها نظارت می کنند و به صورت خودکار سرورهای خراب و یا آفلاین را شناسایی نموده و ترافیک آن ها را بین سرورهای دیگر توزیع می کنند. به این ترتیب در دسترس بودن همیشگی اپلیکشن ها و ارائه خدمات مطلوب تضمین می شود.
- بهینه سازی پرفورمنس: Load Balancer با استفاده از الگوریتم ها و فاکتورهای متعدد و کاملا هوشمندانه، فرایند توزیع ترافیک را انجام می دهد. بنابراین حجم بیشتری از ترافیک را به سمت سرورهایی هدایت می کند که بیشترین ظرفیت را دارند؛ در نتیجه زمان پاسخگویی را کاهش داده و تجربیات مطلوبی در اختیار کاربران قرار می دهد.
- ارتقا امنیت: Load Balancer با اتخاذ قابلیت هایی مانند SSL offloading، application-layer filtering و rate limiting می تواند نقش بسیار مهمی در جلوگیری از تهدیدات سایبری داشته باشد. ضمن اینکه قادر به ارائه access control ایمن بوده و باعث تسهیل اجرای پالیسی های امنیتی در حفاظت از سرورهایِ backend می گردد.
انواع F5 Load balancer
لودبالانسرها را می توان به دو گروه اصلی Layer 4 و Layer 7 تقسیم نمود.
عملکرد لودبالانسرهای لایه ۴ مربوط به لایه های transport و network بوده که پروتکل هایی مانند IP، TCP، FTP و UDP را برای routing مورد استفاده قرار می دهند. از سوی دیگر Layer 7 load balancerها در لایه ی application فعال بوده و توزیع ترافیک را با در نظر گرفتن اطلاعات پروتکل های همین لایه مانند HTTP انجام می دهند. به طور کلی باید گفت load balancer با تمایز بین این لایه ها، ترافیک را به طور کاملا موثر توزیع نموده و پرفورمنس شبکه را بهینه می سازد.
F5 load balancer چه الگوریتم هایی را دنبال می کند؟
هر دو لایه ی ۴ و ۷، درخواست ها را دریافت نموده و از الگوریتم های کانفیگ شده برای توزیع ترافیک بین سرورهای مشخص شده استفاده می کنند. این الگوریتم ها هستند که سرور مناسبی را برای هر درخواست تعیین می کنند. در اینجا به برخی از متداول ترین الگوریتم های لودبالانسر اشاره خواهیم کرد:
-
Round Robin (RR)
درخواست ها را به طور مساوی در بین سرورهای موجود و به طور متوالی توزیع می کند.
-
Least Connections (LC)
درخواست ها را به سروری با کمترین کانکشن فعال ارسال می کند تا مطمئن شود توزیع بار به طور یکنواخت و بر اساس میزان بار سرور صورت می گیرد.
-
Weighted Round Robin (WRR)
به هر سرور، میزان بار مشخصی اختصاص داده می شود و توزیع بار ترافیک بر اساس ظرفیت مشخص شده انجام می شود.
-
Least Sessions (LS)
با این الگوریتم requestها به سرورهایی با کمترین تعداد active session هدایت می شوند.
-
Fastest Response Time (FRT)
لود بالانسر، زمان پاسخگویی هر سرور را ارزیابی نموده و درخواست ها را به سریع ترین سرورها ارسال می کند.
-
Dynamic Ratio (DR)
پس از ارزیابی سرورها، بر اساس فاکتورهایی مانند ظرفیت یا پرفورمنس، مناسب ترین routing را انجام می دهد.
-
Source IP Hash (SIP)
درخواست ها بر اساس IP address هدایت شده و با هدف تداوم session، درخواست های یک IP، همیشه به همان سرور ارسال می گردد.
نموداری از یک Load Balancer
High availability در F5 BIG-IP load balancer
لود بالانسر را می توان یکی از اصلی ترین ارکان high availability و هدایت هوشمندانه ترافیک به مناسب ترین سرورها دانست. به این ترتیب پرفورمنس و ظرفیت مورد استفاده به بهترین سطح ممکن می رسد در حالی که درخواست ها تنها به سرورهای آنلاین ارسال می گردند.
High Availability (HA) این اطمینان خاطر را ایجاد می کند که در صورت خرابیِ لودبالانسر اصلی، server pool آماده پاسخگویی به درخواست های کاربران می باشد. بنابراین می توان ترافیک را بدون اینکه کاربران متوجه شوند، به لودبالانسر ثانویه یا بکاپ، هدایت نمود.