-
August 10th, 2015, 00:05
#1
نیاز به راهنمایی جهت ساخت Load Balancing Cluster
خب از عنوان مشخصه که من میخوام چیکار کنم! ولی یه سری مشکل دارم که ممنون میشم راهنماییم کنین!
مشکل اول اینه که راهی هست که یه دامنه رو بشه همزمان روی دوتا سرور ست کرد؟ جوری که اگه یکی از سرورها از دسترس خارج شد به طور اتومات از سرور دوم بره اطلاعات رو بگیره؟ من خودم یه سرچی که زدم به HAP-roxy رسیدم (جای ستاره ها تو لینک خودتون بنویسین پـروکـسی)
کد:
https://www.howtoforge.com/tutorial/ubuntu-load-balancer-ha*****/
ولی مساله این هست که باز هم به یک سرور با آپ تایم ۱۰۰٪ نیاز هست و اینکه کاربر مستقیم با سرور حاوی اطلاعات ارتباط برقرار نمیکنه و یه سرور این وسط نقش پـروکسی رو داره...
مشکل بعدی سینک کردن فایلهای روی دوتا سرور هست. برای این کار به rsync رسیدم
کد:
http://www.tecmint.com/sync-two-apache-websites-using-rsync/
ولی دوتا مشکل وجود داشت، باید دستورات رو از طریق crontab اجرا میکردم واین یعنی اطلاعات در لحظه سینک نمیشن و یه تاخیری این وسط وجود داره. مشکل دوم هم این بود که اگه فایلی رو از روی یک سرور پاک میکردم سرور دوم متوجه نمیشد که فایل پاک شده و باید پاک بشه! وسرور اول دوباره میرفت اون فایل رو از سرور دوم میگرفت :|
سینک کردن دیتابیس ها... دیتایبسهای روی دوتا سرور رو باید مستر-مستر با هم سینک کنم. برای این کار به اینجا رسیدم
کد:
https://www.digitalocean.com/community/tutorials/how-to-set-up-mysql-master-master-replication
ولی هرکاری کردم دیتابیسها به صورت مستر-اسلیو سینک میشدن. درواقع باتوجه به این آموزش همیشه سرور D من میشد مستر و سرور C من میشد اسلیو.
ویرایش توسط حامد سپهر : August 10th, 2015 در ساعت 00:11
-
-
August 10th, 2015 00:05
# ADS
-
August 10th, 2015, 08:55
#2
عضو انجمن
پاسخ : نیاز به راهنمایی جهت ساخت Load Balancing Cluster
دوست عزیز برای قسمت اول سوالت نظری ندارم
ولی برای قسمت دومش از nfs یعنی network file system استفاده کن
خودش اتوماتیک فایل ها رو تو دوتاسرور نگه میداره
-
-
August 10th, 2015, 10:26
#3
پاسخ : نیاز به راهنمایی جهت ساخت Load Balancing Cluster
سلام
به جای HA Pro-xy از Varnish یا Nginx برای لایه Load balancer استفاده کن.
Nginx برای لود بالانسینگ تنظیماتش یکم سخت تر از Varnish هست اما میبینیم که Cloudflare هم برای Load balancing از nginx استفاده می کنه.
برای مورد دیتابیس ، Master Master انجام دادین اما نتیجه ء مطلوبو نگرفتین؟
-
-
August 10th, 2015, 12:05
#4
پاسخ : نیاز به راهنمایی جهت ساخت Load Balancing Cluster
سلام
همان طور که میدونید هنگام تنظیم کردن فایل config ، میاین درون این فایل به ترتیب IP سرورها را وارد می کنید. سپس HAPROX کاربران را به ترتیب IP به سرورها منتقل می کند.
در مورد دامنه مطمئن نیستم ولی شاید بتوان a record تعریف کرد.
وقتی که Load balancing میکنید ، یک سرور فقط مخصوص Load balancing میشود پس اگر این سرور down شود load balancing شما از کار می افتد در نتیجه سایت شما از دسترس خارج میشود. برای جلوگیری از بروز این مشکل از horizontal scaling استفاده کنید. روش کارش به این صورت است که تقریباً میشه گفت همه سرورها به عنوان Load balancing میشود پس اگر سرور اصلی که مخصوص load balancing هست از دسترس خارج شود ، بقیه سرورها به صورت اتوماتیک ، یک سرور را به عنوان load balance در نظر میگیرند و سایت شما از دسترس خارج نمیشود.
موفق باشید
آپلود انواع فایل بر روی سرورهای ابری: ParsLoka.com
امکان آپلود از لینک و افزایش آنی فضا
-
-
August 10th, 2015, 13:22
#5
عضو دائم
پاسخ : نیاز به راهنمایی جهت ساخت Load Balancing Cluster
سلام
درمورد داون شدن لود بالانسر به نظرم از دو لود بالانسر استفاده کنید واز طریق دی ان اس کاربر رو به اون ها ارسال کنید با تکنولوژی round-robin
درمورد سینک کردن داده ها دوستان توضیح دادند.
یک مورد مهم دیگر کش کردن روی لود بالانسر ها هست اگر از nginx استفاده میکند حتما کش کنید و یا از وارنیش استفاده کنید که عالی هست در این مورد.
درمورد دیتابیس اگر وردپرس هست یک پلاگین عالی برای این مورد موجود هست البته روشی که گفتید هم اوکی هست اما مشکلی که داره اینه که بازم single point of failure اتفاق میفته !
همچنین درمورد دی ان اس که گفتم میشه بدون لود بالانسر مستقیم کاربر رو به یک از سرور ها منتقل کرد.
مهم ترین نکته در این مورد استفاده از ttl مناسب هست بسته به سایتتون و فشاری که روی دی ان اس سرور دارید مقدار دهی میکنید که باید خیلی کمتر از مقدار معمول اون باشد.
موفق باشید
- - - Updated - - -
درضمن : میتونید کاری کنید که اگر سرور های backend و همچنین database داون شود و فقط لود بالانسر و یکی از دی ان اس سرور ها اپ باشد نیز سایت شما برای مدتی (grace period ) اپ باشد (بخش هایی کار کنند) این مدت هم میتواند از حدود ۱۰ دقیقه تا یک ساعت باشد ... که اپتایم سایتتان را خیلی بالا میبرد.
برای استفاده از ان حتما نیاز به کش دارید.
موفق باشید
- - - Updated - - -
درضمن :پیشنهاد میدم اگر توانایی این مورد رو دارید کل داده های استاتیک روی سرور جدا باشه و مستقیم کاربر به اون ها دسترسی داشته باشه روی یک ساب دامنه جدا . درصورت امکان به صورت CDN .
برای این مورد بهترین وب سرور nginx هست و از طریق همان round-robin میتوانید کاربر را به سرور ها منتقل کنید البته با کش کردن روی لود بالانسر نیز این اتفاق می افتد.
مورد مهم تر هم که باز فراموش کردم : بحث سشن ها هست این مورد خیلی مهم هست یا باید سشن ها هم سینک شوند و یا حتما کاربر را به همان سرور قبلی که وصل هست متصل کنید همچنین حتما خودتون درجریان هستید که تحت هیچ شرایطی نباید داده هایی که مربوط به پنل کاربری هست و کاربر لاگین کرده و سشن ثبت شده رو کش کنید.
-
-
August 10th, 2015, 13:25
#6
عضو انجمن
پاسخ : نیاز به راهنمایی جهت ساخت Load Balancing Cluster
سلام.
لطفا بفرمایید منظورتون از load-balancing چیه. میخواید بار پردازشی رو بین چند سرور پخش کنید یا صرفا یک failover load balancing میخواید راهاندازی کنید؟
-
-
August 10th, 2015, 23:32
#7
پاسخ : نیاز به راهنمایی جهت ساخت Load Balancing Cluster

نوشته اصلی توسط
klax0n
دوست عزیز برای قسمت اول سوالت نظری ندارم
ولی برای قسمت دومش از nfs یعنی network file system استفاده کن
خودش اتوماتیک فایل ها رو تو دوتاسرور نگه میداره
باتوجه به توضیحاتی که خوندم nfs هم به دردم نمیخوره! چون من میخوام فایلها به صورت همزمان رو دوتا سرور نگهداری بشن و نه اینکه روی یک سرور نگهداری بشن و سرور دوم هم فایلها رو بره از سرور اول بگیره!
- - - Updated - - -

نوشته اصلی توسط
SCN
سلام
به جای HA Pro-xy از Varnish یا Nginx برای لایه Load balancer استفاده کن.
Nginx برای لود بالانسینگ تنظیماتش یکم سخت تر از Varnish هست اما میبینیم که Cloudflare هم برای Load balancing از nginx استفاده می کنه.
برای مورد دیتابیس ، Master Master انجام دادین اما نتیجه ء مطلوبو نگرفتین؟
درباره varnish ممنون. حتما دربارش مطالعه میکنم. درباره دیتابیس هم با توجه به همون لینیک که تو پست اول دادم همه مراحل رو چند مرتبه رفتم ولی نتیجه شد دوتا دیتابیس که با هم به صورت master-slave سینک شدن 
- - - Updated - - -

نوشته اصلی توسط
webhosts
سلام
همان طور که میدونید هنگام تنظیم کردن فایل config ، میاین درون این فایل به ترتیب IP سرورها را وارد می کنید. سپس HAPROX کاربران را به ترتیب IP به سرورها منتقل می کند.
در مورد دامنه مطمئن نیستم ولی شاید بتوان a record تعریف کرد.
وقتی که Load balancing میکنید ، یک سرور فقط مخصوص Load balancing میشود پس اگر این سرور down شود load balancing شما از کار می افتد در نتیجه سایت شما از دسترس خارج میشود. برای جلوگیری از بروز این مشکل از horizontal scaling استفاده کنید. روش کارش به این صورت است که تقریباً میشه گفت همه سرورها به عنوان Load balancing میشود پس اگر سرور اصلی که مخصوص load balancing هست از دسترس خارج شود ، بقیه سرورها به صورت اتوماتیک ، یک سرور را به عنوان load balance در نظر میگیرند و سایت شما از دسترس خارج نمیشود.
موفق باشید
اگه لینکی دارید که توضیحات کاملی درباره horizontal scaling داره ممنون میشم بدید.
- - - Updated - - -

نوشته اصلی توسط
jahromweb
سلام
درمورد داون شدن لود بالانسر به نظرم از دو لود بالانسر استفاده کنید واز طریق دی ان اس کاربر رو به اون ها ارسال کنید با تکنولوژی round-robin
درمورد سینک کردن داده ها دوستان توضیح دادند.
یک مورد مهم دیگر کش کردن روی لود بالانسر ها هست اگر از nginx استفاده میکند حتما کش کنید و یا از وارنیش استفاده کنید که عالی هست در این مورد.
درمورد دیتابیس اگر وردپرس هست یک پلاگین عالی برای این مورد موجود هست البته روشی که گفتید هم اوکی هست اما مشکلی که داره اینه که بازم single point of failure اتفاق میفته !
همچنین درمورد دی ان اس که گفتم میشه بدون لود بالانسر مستقیم کاربر رو به یک از سرور ها منتقل کرد.
مهم ترین نکته در این مورد استفاده از ttl مناسب هست بسته به سایتتون و فشاری که روی دی ان اس سرور دارید مقدار دهی میکنید که باید خیلی کمتر از مقدار معمول اون باشد.
موفق باشید
- - - Updated - - -
درضمن : میتونید کاری کنید که اگر سرور های backend و همچنین database داون شود و فقط لود بالانسر و یکی از دی ان اس سرور ها اپ باشد نیز سایت شما برای مدتی (grace period ) اپ باشد (بخش هایی کار کنند) این مدت هم میتواند از حدود ۱۰ دقیقه تا یک ساعت باشد ... که اپتایم سایتتان را خیلی بالا میبرد.
برای استفاده از ان حتما نیاز به کش دارید.
موفق باشید
- - - Updated - - -
درضمن :پیشنهاد میدم اگر توانایی این مورد رو دارید کل داده های استاتیک روی سرور جدا باشه و مستقیم کاربر به اون ها دسترسی داشته باشه روی یک ساب دامنه جدا . درصورت امکان به صورت CDN .
برای این مورد بهترین وب سرور nginx هست و از طریق همان round-robin میتوانید کاربر را به سرور ها منتقل کنید البته با کش کردن روی لود بالانسر نیز این اتفاق می افتد.
مورد مهم تر هم که باز فراموش کردم : بحث سشن ها هست این مورد خیلی مهم هست یا باید سشن ها هم سینک شوند و یا حتما کاربر را به همان سرور قبلی که وصل هست متصل کنید همچنین حتما خودتون درجریان هستید که تحت هیچ شرایطی نباید داده هایی که مربوط به پنل کاربری هست و کاربر لاگین کرده و سشن ثبت شده رو کش کنید.
خیلی ممنون از توضیحات کاملتون! فکر کنم یک هفتهای درگیر توضیحات شما باشم :D
- - - Updated - - -

نوشته اصلی توسط
hamid.soltani92
سلام.
لطفا بفرمایید منظورتون از load-balancing چیه. میخواید بار پردازشی رو بین چند سرور پخش کنید یا صرفا یک failover load balancing میخواید راهاندازی کنید؟
من میخوام اطلاعاتم (دیتابیس، وب سرور و ...) روی دوتا سرور و یا بیشتر باشن تا در صورتی که هرکدوم از سرورها داون شدند کاربر بتونه بدون هیچ مشکلی به اطلاعات از طریق سرور دیگه دسترسی داشته باشه. و اون سرور داون شده هم وقتی بالا اومد سریع بره از سرورهایی که بالا بودن بپرسه چه گذشته تو مدتی که داون بوده و تغییرات رو اتومات روی خودش اعمال کنه. باتوجه به توضیحاتی که خوندم این کار میشه load balancing cluster و دنبال آموزش برای این کار هستم. اگه آموزش کاملی برای این کار دارید (مشکلی خاصی با انگلیسی ندارم) ممنون میشم بهم بدید.
- - - Updated - - -

نوشته اصلی توسط
hamid.soltani92
سلام.
لطفا بفرمایید منظورتون از load-balancing چیه. میخواید بار پردازشی رو بین چند سرور پخش کنید یا صرفا یک failover load balancing میخواید راهاندازی کنید؟
من میخوام اطلاعاتم (دیتابیس، وب سرور و ...) روی دوتا سرور و یا بیشتر باشن تا در صورتی که هرکدوم از سرورها داون شدند کاربر بتونه بدون هیچ مشکلی به اطلاعات از طریق سرور دیگه دسترسی داشته باشه. و اون سرور داون شده هم وقتی بالا اومد سریع بره از سرورهایی که بالا بودن بپرسه چه گذشته تو مدتی که داون بوده و تغییرات رو اتومات روی خودش اعمال کنه. باتوجه به توضیحاتی که خوندم این کار میشه load balancing cluster و دنبال آموزش برای این کار هستم. اگه آموزش کاملی برای این کار دارید (مشکلی خاصی با انگلیسی ندارم) ممنون میشم بهم بدید.
-