منبع اصلی نوشتار زیر در این لینک قرار دارد

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

در بخش نخست با مفهوم، کاربر و نیاز به توازن بار و در بخش دوم نیز مولفه های یک محیط توازن باز مانند آدرس های مجازی، چگونگی تبادل پیام (بسته های IP) میان ماشین ها و غیره آشنا شدید. در این بخش نیز مفهوم افزونگی و دو سناریوی پیاده سازی توازن بار آشنا خواهید شد.

زونگی (دسترس پذیری بالا) در توازن بار

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

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

load-concept3

سناریوی فعال-فعال
سناریوی دیگر به این صورت است که هر دو ماشین متوازن کننده بار همزمان فعال باشند. در این سناریو هر دو ماشین ترافیک را دریافت می کنند، و در صورت از کار افتادن یکی از دو ماشین، ماشین دیگری همچنان توزیع بار را انجام خواهد داد.
در این سناریو می توان مطابق شکل 1 به هر ماشین متوازن کننده بار یک آدرس مجازی اختصاص داد. این نوع پیکربندی که به هر ماشین یک آدرس مجازی اختصاص داده می شود، هر ماشین مجازی را به صورت آماده باش برای ماشین دیگری در نظر می گیرد.مطابق با شکل 4-1 ماشین Aبه صورت آماده باش برای ماشین B و ماشین B نیز به صورت آماده باش برای ماشین A عمل می کند. در حالتی دیگر، با وجود دو آدرس مجازی و دو ماشین، هر دو آدرس مجازی را می توان مطابق شکل 2  به هر دو ماشین اختصاص داد.
در تمامی سناریوهای فعال-فعال در صورت از کارافتادن ماشینی، همچنان آدرس های مجازی قادر به پاسخ گویی خواهند بود. این سناریو به دلیل فعال بودن دو ماشین متوازن بار به صورت همزمان، نسبت به حالت فعال-آماده باش، کارایی بالاتری دارد.

load-concept4

توازن بار چگونه کار می کند
ماشین متوازن کننده بار به عنوان واسطه ای میان کلاینت ها و سرور ها قرار می گیرد و کلاینت ها درخواست های خود را به آن ارسال و سپس ماشین متوازن کننده بار سروری را مجموعه سرور های قابل دستیابی انتخاب و درخواست را به آن ارسال می کند.
فرایند توزیع بار در دو گام انجام می شود. در گام نخست،  ماشین متوازن کننده بار باید درستی و صحت سرور ها را با استفاده از مکانیزم های Health Check بررسی کند. در گام دوم با استفاده از الگوریتم ها یا روش های توزیع بار، بر اساس وضعیت بار سرور ها، سروری را انتخاب کند. الگوریتم نوبت چرخشی یکی از این الگوریتم ها است.
فرض کنید مانند شکل سه سرور به نام های RS1, RS2 و RS3 داریم که سرویس های وب، پست الکترونیکی و FTP را میزبانی می کنند. سرویس ها بر روی پروتکل TCP و بر روی پورت های متفاوت به درخواست ها گوش می دهند. وب سرور بر روی پورت 80، پست الکترونیکی بر روی پورت 82 (سرویس SMTP) و سرویس FTP بر روی پورت 21 به درخواست ها گوش می کنند.

سپس درخواست HTTP را ارسال و پاسخی را دریافت می کند و در نهایت اتصال TCP را قطع می کند. فرایند ایجاد اتصال TCP به این صورت است که، زمانی که ماشین متوازن کننده بار یک درخواست TCP SYN و به طبع بسته ای را از کلاینت دریافت می کند، آن بسته IP شامل اطلاعات زیر است:

  • آدرس مبدا که همان آدرس کلاینت است.
  • شماره پورت مبدا و مربوط به کلاینت.
  • آدرس ماشین مقصد که همان آدرس مجازی ماشین متوازن کننده بار است.
  • شماره پورت مقصد که در اینجا پورت شماره 80 و مربوط به HTTP است.

ماشین متوازن کننده بار با دریافت بسته IP از سوی کلاینت، باید سروری را انتخاب کند. طبق گام های بالا ابندا توسط مکانیزم Health Check از صحت و درستی سرور ها مطمئن و فهرستی را تهیه می کند. سپس توسط الگوریتم های توزیع بار و بسته به بار بر روی سرور ها، سروری را انتخاب می کند. حال فرایند ترجمه آدرس توسط NAT انجام می شود و آدرس سرور انتخاب شده را با آدرس مقصد فعلی بسته، یعنی آدرس مجازی  خودش تعویض می کند.

الگوریتم های توزیع بار
ماشین متوازن کننده باری که در حال فعالیت است، باید بر اساس الگوریتم های توزیع بار، یکی از سرور ها را به منظور ارسال درخواست کلاینت انتخاب کند.

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

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

فرض کنید که سه سرور داریم که وب سرور (سایت) را میزبانی می کنند که دو سرور دارای چهار پردازنده 500 مگاهرتز و یک سرور دارای یک پردازنده 500 مگاهرتز است. با اینکه تنها پردازنده نیست که تاثیر کلی بر کارایی دارد، اما فرض می کنیم که سرور ها چهار پردازنده ای، ظرفیتی چهار برابر سرور تک پردازنده ای دارد. مدیر می تواند وزن عددی 4 را به سرور های چهار پردازنده ای و وزن عددی 1 را به سرور تک پردازنده ای اختصاص دهد.
با این اختصاص وزن های عددی، ماشین متوازن کننده بار می تواند بار را میان سرور های چهار پردازنده ای به مقدار چهار برابر سرور تک پردازنده ای توزیع کند.
رویکرد اختصاص وزن، می تواند با الگوریتم های نوبت چرخشی و حداقل ارتباط ترکیب شود. از این رو دو الگوریتم توزیع شده وزن دار وجود دارد.
الگوریتم حداقل اتصال وزن دار
ماشین متوازن کننده بار اینگونه رفتار می کند که، x4 اتصال فعال و همزمان بر روی سرور های چهار پردازنده ای با x اتصال همزمان بر روی سرور تک پردازنده ای معادل است.

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

گام های پیکربندی توزیع بار
فرایند پیکربندی شامل گام های زیر است.

  • تعریف آدرس مجازی برای ماشین های متوازن کننده بار.
  • تعیین سرویس ها و پیکربندی آنها بر روی سرور ها.
  • تعیین نوع مسیریابی بسته ها میان کلاینت ها و سرور ها. در صورتی که کلاینت ها خارج از سازمان و از اینترنت قصد دسترسی را دارند، باید Full NAT را پیاده سازی کرد. همچنین اگر کلاینت ها و سرور ها درون شبکه سازمان باشند، ممکن است به دلیل تعدد کلاینت ها، لازم باشد کلاینت ها را به محدوده های آدرس های خصوصی بیشتری تقسیم بندی کرد و برای ارتباط میان این محدوده های خصوصی، لازم است که مسیربابی را میان آنها برقرار کرد.
  • تعیین مکانیزم Health Check به منظور بررسی صحت و درستی سرور ها و عملکرد آنها برای اطمینان از پاسخ گو بودن آنها.
  • تعیین الگوریتم (روش) توزیع بار، در ماشین متوازن کننده بار.

 



برچسب ها : , , , , ,