توازن بار چیست – بخش نخست

امروزه سازمان ها و شرکت ها سرویس هایی را در اختیار کاربران خود قرار می دهند که از کار افتادن سرور ها و به طبع سرویس های آنها، زیان های مالی را به سازمان وارد می کند. به طور مثال سازمان از طریق وب سایت خود خدماتی را در اختیار کاربران قرار می دهد، مانند بانک که از طریق وب سایت امکان بررسی حساب و نقل و انتقال مالی را به مشتریان ارائه می کند.  در صورت از کار افتادن یا افت سرویس دهی، باعث زیان های مالی و نارضایتی مشتریان خواهد شد.

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

  توازن بار نیز نوعی کلاستر از سرورها است که در محیط های با بار زیاد، درخواست های کاربران را به چندین سیستم که سرویس مورد نظر را میزبانی می کنند، توزیع می کند. به طور مثال برای توزیع درخواست های کاربران به یک وب سرور (وب سایت)، در صورتی که تعداد کاربران و به طبع درخواست ها بالا باشد، از یک ماشین به عنوان توزیع کننده و متوازن کننده بار میان چندین سرور استفاده می شود.

هدف اصلی از توازن بار، توزیع درخواست ها میان چندین سرور است که همگی سرویس یکسانی را برای کلاینت ها ارائه می دهند. فرایند توازن (توزیع) بار به صورت شفاف  انجام می گیرد و به این معنی که فرایند از دید کاربران مخفی صورت می گیرد و کاربران از چگونگی توزیع بار و اینکه از کدام سرور پاسخ می گیرند هیچ اطلاعی ندارند. شکل زیر نمای کلی از توازن بار را نشان می دهد.

load_balancing_concepts_1

توازن بار به دو صورت نرم افزاری و سخت افزاری وجود دارد. نرم افزار های متن بازی همچون   HAProxy و   LVS دو نمونه نرم افزار هایی هستند که در سیستم عامل لینوکس برای ایجاد توازن بار برای وب سرور ها استفاده می شوند. شرکت سیسکو نیز سخت افزاری را به منظور توازن بار تولید می کند.

برای درک بهتر از کاربرد دسترس پذیری بالا و توازن بار سناریوی وب سایت سازمان را در نظر بگیرید. کاربران (مشتری های بانک) زیادی از اینترنت قصد اتصال به سایت و انجام امور مالی را دارند. در صورتی که تنها یک سرور برای میزبانی سایت وجود داشته باشد، در صورت اتصال های زیاد باعث افت سرعت و عدم پاسخ گویی مناسب خواهد شد. از طرفی پایگاه داده وب سایت نیز در صورتی که تنها بر روی یک سرور میزبانی شود با از کار افتادن آن سرور، دیگر نمی توان به تراکنش های کاربران (مشتری ها) پاسخ داد.

داده در چندین سرور استفاده می شود، به طوری که چندین سرور میزبان پایگاه داده عضو کلاستر شده و همگی یک پایگاه داده را میزبانی می کند. همچنین برای برداشتن بار از یک سرور که وب سایت را میزبانی می کند، محتوای همسانی از وب سایت را بر روی چندین سرور قرار داده و همگی سرور ها سرویس وب را نیز ارائه می دهند.

پیش از بوجود آمدن توازن بار، برای توزیع بار میان چندین سرور از مکانیزم Round Robin DNS استفاده می شد. در این مکانیزم با استفاده از DNS و مکانیزم نوبت چرخشی، درخواست های ارسالی از کلاینت ها را به آدرس های مختلف هدایت می شوند.

Round Robin DNS

در این مکانیزم DNS شناخته شده در شبکه را با آدرس های سرور های متفاوت که به یک نام ماشین (میزبان) اشاره می کنند، پیکربندی می شود. به طور مثال از دو وب سرور با آدرس های متفاوت ولی با نام های یکسان که هر دو وب سایت و محتوای یکسانی را میزبانی می کردند استفاده می شود و فایل پیکربندی DNS نیز شامل آدرس های متفاوت این دو سرور است که به یک نام اشاره می کنند.

هنگامی که کلاینت با نوشتن نام وب سرور ها درخواستی را به ماشین DNS مبنی دریافت آدرس وب سرور ارسال می کند، DNS به صورت نوبت چرخشی و هر بار در پاسخ به کلاینت ها، یکی از این دو آدرس را به کلاینت ارسال می کند.

با اینکه این مکانیزم بار و درخواست های وب سرور را میان چندین سرور ثبت شده در DNS انجام داد، ولی به دلیل ماهیت DNS دارای مشکل هایی است. DNS در شبکه ها به منظور تبدیل نام به آدرس استفاده می شود که خود ماهیتی توزیع شده دارد. در اینترنت برای تبدیل نام وب سایت به آدرس های معادل آنها از DNS به این صورت استفاده می شود که سرور های توزیع شده ای در نقاط جهان قادر به پاسخ گویی هستند.

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

در این حالت به دلیل اینکه کلاینت نخست DNS Cache محلی خود را برای رسیدن به آدرس وب سرور جستجو می کند و چون از قبل نیز پاسخی را از کلاینت دریافت کرده است، پس دیگر درخواستی را به DNS برای دریافت آدرس ارسال نمی کند و از همین آدرس یافت شده در DNS Cache محلی خود استفاده می کند و این در حالی است که سروری با این آدرس از کار افتاده است.

تکنولوژی توازن بار مشکل های روش DNS نوبت چرخشی را ندارد و با استفاده از روش های بررسی صحت و درستی سرور ها و همچنین به کار بردن روش های توزیع بار یا به عبارتی الگوریتم های توزیع بار، فرایند توزیع بار را در شبکه به صورت خودکار انجام می دهد.