রাউন্ড-রবিন ডিএনএস স্থিতিশীল সামগ্রীতে লোড ভারসাম্যের জন্য "যথেষ্ট ভাল"?


66

আমাদের কাছে শেয়ারড, স্ট্যাটিক সামগ্রীর একটি সেট রয়েছে যা আমরা আমাদের ওয়েবসাইটগুলির মধ্যে http://sstatic.net এ পরিবেশন করি । দুর্ভাগ্যক্রমে, এই সামগ্রীটি বর্তমানে মোটামুটি ভারসাম্যপূর্ণ নয় - এটি একটি একক সার্ভার থেকে পরিবেশন করা হয়। যদি সেই সার্ভারের সমস্যা হয়, তবে এর উপর নির্ভর করে সমস্ত সাইটগুলি কার্যকরভাবে ডাউন হয়ে যায় কারণ ভাগ করা সংস্থানগুলি প্রয়োজনীয় শেয়ার্ড জাভাস্ক্রিপ্ট লাইব্রেরি এবং চিত্রসমূহ।

একক সার্ভার নির্ভরতা এড়াতে আমরা এই সার্ভারে স্থিতিশীল বিষয়বস্তু ভারসাম্য লোড করার উপায়গুলি খুঁজছি।

আমি বুঝতে পারি যে রাউন্ড-রবিন ডিএনএস, সর্বোপরি, একটি নিম্ন প্রান্ত (কেউ কেউ ঘেঁটোও বলতে পারে ) সমাধান, তবে আমি অবাক করে বলতে পারি না - রাউন্ড রবিন ডিএনএস হ'ল স্থির বিষয়বস্তুর বুনিয়াদি ভারসাম্যের জন্য "যথেষ্ট যথেষ্ট" সমাধান ?

[ডিএনএস] [লোড-ব্যালেন্সিং] ট্যাগগুলিতে এটি নিয়ে কিছু আলোচনা রয়েছে এবং আমি বিষয়টিতে কয়েকটি দুর্দান্ত পোস্ট দিয়েছি।

আমি একাধিক রাউন্ড-রবিন এ রেকর্ডগুলির মাধ্যমে ডিএনএস লোড ভারসাম্যের সাধারণ উত্সাহ সম্পর্কে সচেতন:

  • ডিএনএস রেকর্ডগুলির সাথে সাধারণত কোনও হৃদস্পন্দন বা ব্যর্থতা সনাক্তকরণ নেই, সুতরাং ঘূর্ণায়মান প্রদত্ত একটি সার্ভার যদি নিচে চলে যায় তবে এর একটি রেকর্ডটি ম্যানুয়ালি ডিএনএস এন্ট্রি থেকে অপসারণ করতে হবে
  • বেঁচে থাকার সময়টি (টিটিএল) অবশ্যই একেবারেই কাজ করার জন্য যথেষ্ট কম সেট করা উচিত, যেহেতু ডিএনএস এন্ট্রিগুলি পুরো ইন্টারনেট জুড়ে আক্রমণাত্মকভাবে ক্যাশে হয়েছে
  • ক্লায়েন্ট কম্পিউটারগুলি একাধিক এ রেকর্ড রয়েছে এবং সঠিকটিকে বাছাই করার জন্য দায়বদ্ধ

তবে, রাউন্ড রবিন ডিএনএস কি আমাদের স্ট্যাটিক সামগ্রীর জন্য লোড ব্যালেন্সিংয়ের ফর্ম "আরও ভাল বিকল্পগুলি গবেষণা এবং প্রয়োগ করার সময় কোনও স্ট্রটার হিসাবে কোনও কিছুর চেয়ে ভাল"? বা কোনও পরিস্থিতিতে ডিএনএস রাউন্ড রবিন কি বেশ মূল্যহীন ?


3
HAProxy একটি বিকল্প নয়?
হাওইক্যাম্প

6
আমি পোস্টে যেমন বলেছি, এটি এই সমাধান সম্পর্কে একটি নির্দিষ্ট প্রশ্ন - আমরা কি বিষয়টিতে থাকতে পারি?
জেফ আতউড

4
লোড-ব্যালেন্সিং ( en.wikedia.org/wiki/Load_balancing_%28 কমপুটিং ১০৯৯ ) তখন রিডানডেনসি ( en.wikedia.org/wiki/Redundancy_%28engineering%29 ) এর থেকে আলাদা । জেফ যেমন তার উদ্বোধনী অনুচ্ছেদে বলেছিলেন, তিনি আসল লোড-ব্যালেন্সিং নয়, একক ব্যর্থতা (রিডানডেন্সি) অপসারণের উপায় সন্ধান করছেন। কেউ কি আবার ফিরে যেতে পারবে?
antony.trupe

3
@ জেফ - একেবারে, একটি বোবা বোঝার ভারসাম্যকারী (যা সাধারণ রাউন্ড রবিন ডিএনএস হয়) অপ্রয়োজনীয় কাজ করে না। আপনি একাধিক সাইট জুড়ে ব্যালেন্সিং / রিডানড্যান্সির কথা বললে এটি আরও শক্ত।
Alnitak

2
@ সাইমকিবিয়ান আমি আরএফসি 2119 তে নথিভুক্ত শর্তগুলির সাথে ঘনিষ্ঠভাবে পরিচিত You আপনি বলেছেন যে ডিএনএস সার্ভার পছন্দ তালিকার সংজ্ঞা দেয়। যদি না আপনার কাছে "পছন্দের তালিকাগুলি" এর কিছু বিশেষ বিজোড় সংজ্ঞা থাকে তবে এটি সত্য নয়।
Alnitak

উত্তর:


57

জেফ, আমি একমত নই, ভারসাম্য ভারসাম্যহীনতা বোঝায় না, বাস্তবে এটি সম্পূর্ণ বিপরীত। আপনার যত সার্ভার রয়েছে ততক্ষণে কোনও প্রদত্ত তাত্ক্ষণিকভাবে আপনার ব্যর্থতা ঘটবে। এ কারণেই ভারসাম্য বজায় রাখার সময় অতিরিক্ত কাজগুলি বাধ্যতামূলক করা হয়, তবে দুর্ভাগ্যক্রমে অনেকগুলি সমাধান রয়েছে যা কেবলমাত্র কোনও স্বাস্থ্য পরীক্ষা না করে লোড ভারসাম্য সরবরাহ করে, যার ফলে কম নির্ভরযোগ্য পরিষেবা তৈরি হয় in

একাধিক পয়েন্ট (সম্ভাব্য ভৌগোলিকভাবে বিতরণ) জুড়ে লোড বিতরণ করে ক্ষমতা বাড়ানোর জন্য ডিএনএস রাউন্ডরোবিন দুর্দান্ত। তবে এটি ব্যর্থ ওভার সরবরাহ করে না। আপনি প্রথমে কোন ধরণের ব্যর্থতা toাকতে চেষ্টা করছেন তা আপনাকে অবশ্যই বর্ণনা করতে হবে। একটি স্ট্যান্ডার্ড আইপি অ্যাড্রেস টেকওভার প্রক্রিয়া (ভিআরআরপি, সিএআরপি, ...) ব্যবহার করে একটি সার্ভার ব্যর্থতা অবশ্যই স্থানীয়ভাবে কভার করা উচিত। একটি স্যুইচ ব্যর্থতা দুটি সুইচে সার্ভারের স্থিতিস্থাপক লিঙ্কগুলি দ্বারা কভার করা হয়। কোনও রাউটিং প্রোটোকল বা একটি স্তর 2 সমাধান (উদাহরণস্বরূপ: মাল্টি-লিংক পিপিপি) ব্যবহার করে আপনার এবং আপনার সরবরাহকারীর মধ্যে একটি মাল্টি-লিংক সেটআপ দ্বারা একটি WAN লিঙ্ক ব্যর্থতা কভার করা যেতে পারে। কোনও সাইট ব্যর্থতা বিজিপি দ্বারা আচ্ছাদিত করা উচিত: আপনার আইপি ঠিকানাগুলি একাধিক সাইটগুলির উপরে প্রতিলিপি করা হয় এবং আপনি কেবলমাত্র সেগুলিকে যেখানে নেট উপলব্ধ সেখানে সেগুলি ঘোষণা করেন।

আপনার প্রশ্ন থেকে মনে হচ্ছে আপনাকে কেবল একটি সার্ভারকে ব্যর্থ ওভার সমাধান সরবরাহ করতে হবে যা এটি কোনও সহজ সমাধান নয় যেহেতু এটি কোনও হার্ডওয়্যার জড়িত না বা কোনও আইএসপির সাথে চুক্তি করে না। আপনাকে কেবল তার জন্য আপনার সার্ভারে উপযুক্ত সফ্টওয়্যার সেটআপ করতে হবে এবং এটি এখন পর্যন্ত সবচেয়ে সস্তা এবং সবচেয়ে নির্ভরযোগ্য সমাধান।

আপনি জিজ্ঞাসা করেছিলেন "যদি একটি হ্যাপ্রোক্সি মেশিন ব্যর্থ হয়?" এটা একই. লোড ব্যালেন্সিং এবং উচ্চ প্রাপ্যতার জন্য হ্যাপ্রোক্সি ব্যবহার করি এমন সমস্ত লোকের কাছে দুটি মেশিন রয়েছে এবং তাদের মধ্যে যে কোনও একটি সর্বদা পাওয়া যায় তা নিশ্চিত করার জন্য তাদের উপর ucarp, কিপলাইভড বা হার্টবিট চালায়।

আশা করি এই সাহায্য!


1
বিটিডব্লিউ আপনি এই ধারণাগুলি সম্পর্কে প্রায় 4 বছর আগে লিখেছেন এমন একটি নিবন্ধে আপনার আগ্রহী হতে পারে: 1wt.eu/articles/2006_lb (পিডিএফ নিন, পৃষ্ঠাগুলির মাধ্যমে এইচটিএমএল পড়া বিরক্তিকর)।
উইলির তারেউ

1
-1: "ব্যর্থ ওভার সরবরাহ করে না" - হ্যাঁ এটি করে - এবং এটি এটি একমাত্র স্থানে প্রয়োগ করে যেখানে অ-উপলব্ধতা নির্ভরযোগ্যভাবে নির্ধারণ করা যায় - ক্লায়েন্টের কাছে।
সিমকিবিয়ান

7
একদমই না. এটি কাজ করবে যদি ডিএনএস ক্যাশে ব্যবহার না করে তবে এই ঘটনাটি নেই এবং ক্লায়েন্টরা ক্যাশেকে রিফ্রেশ করতে বাধ্য করতে পারে না। যে কোনও ব্যক্তির সাথে নিয়মিত ডিএনএস এন্ট্রিগুলি স্যুইচ করে সেগুলির সাথে কথা বলুন এবং তারা আপনাকে বলবে যে তারা 5 মিনিটের মধ্যে ৮০% স্যুইচ পর্যবেক্ষণ করে, সাধারণত এটি প্রায় এক সপ্তাহের বেশি সময় নেয় 100% এর কাছাকাছি যেতে। সুতরাং ডিএনএস ব্যর্থ ওভার সরবরাহ করে না।
উইলির তারেউ

12
"অপ্রয়োজনীয়তা ছাড়াই লোড ব্যালেন্সিং" এর একটি সহজ উদাহরণ হ'ল RAID0।
রোবট

1
উইলি আপনি ডিএনএস রেকর্ডগুলির জন্য আপডেট হতে যুগে যুগে সময় নিয়েছেন right তবে ব্রাউজারগুলির সাথে আরআর-ডিএনএস ব্রাউজার স্তরে পরিচালনা করা হয়, ডিএনএস প্রেরিত প্রেরিত প্রথমটি যদি ডাউন মনে হয় তবে একের পর এক সমস্ত আইপি পরীক্ষা করে। এই ক্ষেত্রে, আপনি কখনই আপনার ডিএনএস রেকর্ড পরিবর্তন করেন না, সুতরাং অপেক্ষা করার জন্য কোনও আপডেট নেই।
ইয়ান

20

লোড-ব্যালেন্সিং হিসাবে এটি ঘেটো তবে কম-বেশি কার্যকর। আপনার যদি এমন একটি সার্ভার থাকে যা লোড থেকে নেমে আসছিল এবং একাধিক সার্ভারে এটি ছড়িয়ে দিতে চাইলে এটি করার উপযুক্ত কারণ হতে পারে, অন্তত অস্থায়ীভাবে।

রাউন্ড-রবিন ডিএনএসের লোড "ব্যালেন্সিং" হিসাবে বৈধ সমালোচনা রয়েছে এবং আমি স্বল্প-মেয়াদী ব্যান্ড-সহায়তা ব্যতীত অন্যটির জন্য এটি করার পরামর্শ দেব না।

তবে আপনি বলেছেন যে আপনার প্রাথমিক অনুপ্রেরণা হ'ল একক সার্ভারের নির্ভরতা এড়ানো। ঘূর্ণন থেকে ডেড সার্ভারগুলি গ্রহণের কোনও স্বয়ংক্রিয় পদ্ধতি ছাড়াই ডাউনটাইম প্রতিরোধের উপায় হিসাবে এটি খুব মূল্যবান নয়। (ঘূর্ণন থেকে একটি সংক্ষিপ্ত টিটিএল থেকে সার্ভারগুলি টানানোর একটি স্বয়ংক্রিয় পদ্ধতিতে এটি ঘেটো ফেইলওভার হয়ে যায় Man ম্যানুয়ালি, এটি এমনকি এটিও নয়))

যদি আপনার দুটি রাউন্ড-রবিন্ড সার্ভারগুলির মধ্যে একটি নীচে চলে যায় তবে আপনার গ্রাহকদের 50% ব্যর্থতা পাবেন। এটি কেবলমাত্র একটি সার্ভারের সাথে 100% ব্যর্থতার চেয়ে ভাল তবে অন্য যে কোনও সমাধান যা রিয়েল ফেইলওভার করেছিল এটি এর চেয়ে ভাল।

যদি একটি সার্ভারের ব্যর্থতার সম্ভাবনা N হয় তবে দুটি সার্ভার সহ আপনার সম্ভাবনা 2N হয়। স্বয়ংক্রিয়, দ্রুত ব্যর্থতা ছাড়াই , এই স্কিমটি আপনার কিছু ব্যবহারকারীদের ব্যর্থতার সম্মুখীন হওয়ার সম্ভাবনা বাড়িয়ে তোলে।

আপনি যদি মৃত সার্ভারটিকে ম্যানুয়ালি ঘোরানোর বাইরে নিয়ে যাওয়ার পরিকল্পনা করেন, আপনি যে গতি দিয়ে এটি করতে পারবেন এবং DNS টিটিএল দ্বারা সীমাবদ্ধ । যদি সার্ভারটি 4 টা এ মারা যায়? সত্য ব্যর্থতার সর্বোত্তম অংশটি রাত্রে ঘুমোচ্ছে। আপনি ইতিমধ্যে HAProxy ব্যবহার করেছেন , সুতরাং আপনার এটির সাথে পরিচিত হওয়া উচিত। আমি দৃ strongly়তার সাথে এটি ব্যবহার করার পরামর্শ দিচ্ছি, কারণ এইচপি প্রক্সি ঠিক এই পরিস্থিতির জন্য ডিজাইন করা হয়েছে।


3
পুরোপুরি অফ-টপিক, তবে আমাদের কাছেও ব্যর্থ হওয়ার জন্য একাধিক এইচপ্রোক্সি উদাহরণ প্রয়োজন - হ্যাপ্রোক্সি মেশিন ব্যর্থ হলে কী হবে? ভবিষ্যতের প্রশ্নের বিষয়, যদিও, এটির জন্য সত্যই বিষয় বন্ধ।
জেফ আতউড

2
+1 - "একটি স্বয়ংক্রিয় পদ্ধতিতে ... এটি ঘেটো ফেইলওভার হয়ে যায় Man ম্যানুয়ালি এটি এমনও নয়" " বড় সাহসী অক্ষরে থাকা উচিত। ডিএনএস রাউন্ড-রবিন একটি দায় হয়ে ওঠে যদি আপনি মেশিনগুলি পর্যবেক্ষণ না করেন এবং যদি তারা ব্যর্থ হয় তবে ডিএনএস থেকে তাদের সরান, এবং এটি করার একমাত্র যুক্তিযুক্ত উপায় হ'ল স্বয়ংক্রিয় সমাধান solution ডিএনএস রাউন্ড-রবিনের চেয়ে অনেক বেশি ভাল সমাধান রয়েছে।
ইভান অ্যান্ডারসন

1
পুরোপুরি একমত, কিন্তু আপনার গ্রাহকদের 20% অভিযোগ থেকে আপনাকে ডাকছে হয় তাদের 100 বেশী ভালো% অভিযোগ সঙ্গে কলিং ..
জেফ অ্যাটউড

1
জেফের প্রশ্নের জবাব দেওয়ার ক্ষেত্রে শফ মূল বক্তব্যটি (আমার জন্য) যেটি দ্রুত ব্যর্থতা ছাড়াই রাউন্ড রবিনের অর্থ হ'ল সময়ের সাথে সাথে আপনারা আরও বেশি গ্রাহককে প্রভাবিত করেছেন তবে প্রত্যেকটি (আরও ঘন ঘন) ঘটনা সকলের চেয়ে গ্রাহকদের কেবল একটি উপসেটকেই প্রভাবিত করে। এটি "ভাল" কিনা তা দৃশ্যের উপর নির্ভর করে তবে বেশিরভাগ ক্ষেত্রে আমি বলব এটি তা নয়।
হেলভিক

1
The best part of true failover is getting to sleep through the night.এটি একটি পরিষ্কার সংজ্ঞা!
তুলিল বাউরক

15

রাউন্ড রবিন ডিএনএস লোকেরা যা মনে করে তা নয়। ডিএনএস সার্ভার সফটওয়্যার (যেমন, বিআইএনডি ) এর লেখক হিসাবে আমরা এমন ব্যবহারকারীদের পেয়েছি যারা তাদের গোলাকার রবিন পরিকল্পনা অনুযায়ী কাজ করা বন্ধ করে দেয় কেন তা অবাক করে। তারা বুঝতে পারে না যে 0 টি সেকেন্ডের টিটিএল দিয়েও সেখানে কিছু পরিমাণ ক্যাশে চলে আসবে, যেহেতু কিছু ক্যাশে ন্যূনতম সময় (প্রায় 30-3000 সেকেন্ড) রাখে তা যাই হোক না কেন।

এছাড়াও, যখন আপনার এথএইচ সার্ভারগুলি রাউন্ড রবিন করতে পারে, আপনি যেগুলির যত্ন নেবেন তার কোনও গ্যারান্টি নেই - আপনার ব্যবহারকারীরা যে ক্যাশেগুলি কথা বলবেন - তা করবে। সংক্ষেপে, রাউন্ড রবিন ক্লায়েন্টের দৃষ্টিকোণ থেকে কোনও অর্ডার দেওয়ার গ্যারান্টি দেয় না, কেবলমাত্র আপনার লেখক সার্ভারগুলি ক্যাশে যা সরবরাহ করে।

আপনি যদি সত্যিকারের ব্যর্থতা চান তবে ডিএনএস হ'ল এক ধাপ। দুটি পৃথক ক্লাস্টারের জন্য একাধিক আইপি ঠিকানা তালিকাভুক্ত করা খারাপ ধারণা নয়, তবে আমি সেখানে অন্য প্রযুক্তি ব্যবহার করব (যেমন সাধারণ কোনও কাস্টকাস্ট) প্রকৃত লোড ব্যালেন্সিং করতে। আমি ব্যক্তিগতভাবে হার্ডওয়্যার লোড ব্যালেন্সিং হার্ডওয়্যারকে ঘৃণা করি যা ডিএনএসের সাথে ব্যঙ্গ করে কারণ এটি সাধারণত এটি ভুল হয়ে যায়। এবং ভুলে যাবেন না ডিএনএসএসইসি আসছে, সুতরাং আপনি যদি এই অঞ্চলে কিছু চয়ন করেন তবে আপনার অঞ্চলে সাইন ইন করার পরে আপনার বিক্রেতাকে কী হবে তা জিজ্ঞাসা করুন।


1
এবং কিছু ডিএনএস সার্ভার (বা কন্ট্রোল প্যানেল) আপনাকে 7200 এর একটি টিটিএল দেওয়ার জন্য কনফিগার করা হয়েছে আপনি যা সেট করেছেন তা নির্বিশেষে - কিছু বড় হোস্টিং সংস্থা এই আইআইআরসি করে।
gbjbaanb

15

আমি এটা বেশ কয়েকবার আগে বলেন করেছি, এবং আমি এটি আবার বলবো - যদি স্থিতিস্থাপকতা সমস্যা তারপর ডিএনএস ঠাট হয় না উত্তর

সেরা এইচএ সিস্টেমগুলি আপনার ক্লায়েন্টদের প্রতিটি অনুরোধের জন্য একই একই আইপি ঠিকানাটি ব্যবহার করার অনুমতি দেয়। এই শুধুমাত্র তা নিশ্চিত করার জন্য ক্লায়েন্ট এমনকি ব্যর্থতা নজরে আসে না উপায়।

সুতরাং মৌলিক নিয়মটি হ'ল সত্য স্থিতিস্থাপকতার জন্য আইপি রাউটিং স্তর কৌশলগুলি প্রয়োজন। লোড-ব্যালেন্সার অ্যাপ্লায়েন্স, বা ওএসপিএফ "সমান দামের মাল্টি-পাথ", বা ভিআরআরপি ব্যবহার করুন।

অন্যদিকে ডিএনএস একটি সম্বোধন প্রযুক্তি। এটি কেবলমাত্র একটি নেমস্পেস থেকে অন্য নেমস্পেসে ম্যাপ করার জন্য বিদ্যমান। এটি সেই ম্যাপিংয়ে খুব স্বল্পমেয়াদী গতিশীল পরিবর্তনের অনুমতি দেওয়ার জন্য ডিজাইন করা হয়নি , এবং তাই আপনি যখন এই জাতীয় পরিবর্তনগুলি করার চেষ্টা করেন তখন অনেক ক্লায়েন্ট তাদের তা খেয়াল করে না, অথবা তাদের লক্ষ্য করতে বেশ দীর্ঘ সময় নিতে হবে।

আমি আরও বলব যেহেতু লোড আপনার পক্ষে কোনও সমস্যা নয়, আপনি হট স্ট্যান্ডবাই হিসাবে চালানোর জন্য আরও একটি সার্ভার প্রস্তুত থাকতে পারেন। আপনি যদি বোবা রাউন্ড-রবিন ব্যবহার করেন তবে কোনও কিছু ভেঙে গেলে আপনার ডিএনএস রেকর্ডগুলি সক্রিয়ভাবে পরিবর্তন করতে হবে, যাতে আপনি ঠিক তত্ক্ষণাত্ হট স্ট্যান্ডবাই সার্ভারকে ক্রিয়ায় ফ্লিপ করতে পারেন এবং আপনার ডিএনএস পরিবর্তন না করে


7

আমি সমস্ত উত্তরের মধ্যে পড়েছি এবং একটি জিনিস যা আমি দেখতে পাইনি তা হ'ল যদি কোনও সার্ভার সাড়া না দেয় তবে বেশিরভাগ আধুনিক ওয়েব ব্রাউজারগুলি বিকল্প আইপি ঠিকানাগুলির মধ্যে একটি চেষ্টা করবে try যদি আমি সঠিকভাবে মনে করি তবে ক্রোম এমনকি একাধিক আইপি ঠিকানা চেষ্টা করে এবং প্রথমে প্রতিক্রিয়া জানানো সার্ভারটি দিয়ে চালিয়ে যাবে। সুতরাং আমার মতে ডিএনএস রাউন্ড রবিন লোডের ভারসাম্য বজায় রাখা সর্বদা ভাল তবে কিছুই না।

বিটিডাব্লু: আমি ডিএনএস রাউন্ড রবিনকে সাধারণ লোড বিতরণ সমাধান হিসাবে আরও দেখছি।


ওফস, আমার পোস্ট করার আগে আপনার উত্তরটি দেখেনি, সুতরাং আপনার উপর +1 যাতে সত্যটি প্রকাশ পায়!
ইয়ান

5

আমি এই থ্রেডে দেরি করেছি, সুতরাং আমার উত্তর সম্ভবত নীচের দিকে একা ঘোরাফেরা করবে, অবহেলিত, শুকনো ঘ্রাণ।

প্রথমে, প্রশ্নের সঠিক উত্তরটি প্রশ্নের উত্তর দেওয়া নয়, তবে বলা উচিত:

  1. "এর পরিবর্তে আপনি সম্ভবত উইন্ডোজ নেটওয়ার্ক লোড ব্যালেন্সিং চান ।" অথবা
  2. "সময় নিয়ে আসুন , ক্লাউড ফাইল বা এস 3 এর মতো কিছুতে আপনার স্থির সামগ্রীটি দিন এবং বিশ্বব্যাপী এটি একটি সিডিএন আয়না রাখুন।"

এনএলবি পরিপক্ক, কার্যের পক্ষে বেশ উপযুক্ত এবং সেট আপ করা সহজ। মেঘ সমাধানগুলি তাদের নিজস্ব উপকারিতা এবং কনস নিয়ে আসে, যা এই প্রশ্নের ক্ষেত্রের বাইরে।

প্রশ্ন

রাউন্ড রবিন ডিএনএস কি আমাদের স্ট্যাটিক সামগ্রীর জন্য লোড ব্যালেন্সিংয়ের ফর্মটি "গবেষণা এবং আরও ভাল বিকল্পগুলি প্রয়োগ করার সময়" স্ট্রটার হিসাবে কোনও কিছুর চেয়ে ভাল?

এর মধ্যে, বলুন, 2 বা 3 স্ট্যাটিক ওয়েব সার্ভার? হ্যাঁ, এটি কোনও কিছুর চেয়ে ভাল, কারণ এমন DNS সরবরাহকারীরা আছেন যারা DNS রাউন্ড রবিনকে সার্ভারের স্বাস্থ্য পরীক্ষার সাথে একীভূত করবেন এবং অস্থায়ীভাবে ডিএনএস রেকর্ড থেকে মৃত সার্ভারগুলি সরিয়ে দেবেন। সুতরাং এইভাবে আপনি শালীন লোড বিতরণ এবং কিছু উচ্চ প্রাপ্যতা পাবেন; এবং এটি সেট আপ করতে 5 মিনিটেরও কম সময় লাগে।

তবে এই থ্রেডে অন্যদের দ্বারা বর্ণিত সতর্কতাগুলি প্রয়োগ হয়:

  • বর্তমান মাইক্রোসফ্ট ব্রাউজারগুলি 30 মিনিটের জন্য ডিএনএস ডেটা ক্যাশে করে , তাই আপনি তাদের প্রাথমিক ডিএনএস ক্যাশে অবস্থার উপর নির্ভর করে আপনার ব্যবহারকারীদের একটি সাবসেটের জন্য 30 মিনিটেরও বেশি সময় ব্যর্থতার সময় খুঁজছেন।
  • কি ব্যবহারকারীদের সূচিত সময় ব্যর্থ বেশি হতে পারেন ... অদ্ভুত (আপনি প্রমাণীকরণ স্ট্যাটিক কন্টেন্ট উপর ব্যবহার করছেন না এবং অবশ্যই প্রমাণীকরণ গঠন নয়, কিন্তু লিঙ্কের জন্য সতর্ক কিছু দেখায়)।

অন্যান্য সমাধান

HAProxy চমত্কার, তবে স্ট্যাক ওভারফ্লো যেহেতু মাইক্রোসফ্ট প্রযুক্তি স্ট্যাকের উপর রয়েছে তাই মাইক্রোসফ্ট লোড ব্যালেন্সিং এবং উচ্চ প্রাপ্যতা সরঞ্জাম ব্যবহার করে অ্যাডমিনের ওভারহেড কম থাকবে। নেটওয়ার্ক লোড ব্যালেন্সিং সমস্যার একটি অংশের যত্ন নেয় এবং মাইক্রোসফ্টের আসলে একটি এল 7 এইচটিটিপি বিপরীত প্রক্সি / লোড ব্যালেন্সার রয়েছে

আমি নিজে কখনও এআরআর ব্যবহার করি নি, তবে এটি দ্বিতীয় বৃহত্তম প্রকাশের পরে এবং মাইক্রোসফ্ট থেকে এসে আমি ধরে নিয়েছি যে এটির যথেষ্ট পরীক্ষা করা হয়েছে। এটা আছে ডক্স বুঝতে সহজ , এখানে কিভাবে তারা দেখে উপর এক স্ট্যাটিক এবং ডাইনামিক কন্টেন্ট বিতরণের webnodes, এবং এখানে কিভাবে ব্যবহার করবেন তার একটি টুকরা NLB সঙ্গে আগমন উভয় লোড বিতরণ এবং উচ্চ প্রাপ্যতা অর্জন করা।


5

অবদানকারীদের মধ্যে কতজন লোড ছড়িয়ে দেওয়া এবং স্থিতিস্থাপকতা ব্যবস্থা হিসাবে ডিএনএস রাউন্ড রবিন সম্পর্কে অ-তথ্য অবদান রাখতে সহায়তা করছেন তা লক্ষণীয় able এটি সাধারণত কাজ করে, তবে এটি কীভাবে কাজ করে তা আপনার বুঝতে হবে এবং এই সমস্ত বিশৃঙ্খলাজনিত ভুলগুলি এড়ানো উচিত।

1) রাউন্ড রবিনের জন্য ব্যবহৃত ডিএনএস রেকর্ডের টিটিএলটি ছোট হওয়া উচিত - তবে শূন্য নয়। টিটিএল শূন্যের সাথে থাকার কারণে যে স্থিতিস্থাপকতাটি সরবরাহ করা হয় তা মুছে যায়।

2) ডিএনএস আরআর ছড়িয়ে পড়ে, তবে ভার ভারসাম্য রাখে না, এটি এটি ছড়িয়ে দেয় কারণ বৃহত ক্লায়েন্ট বেসের উপরে তারা ডিএনএস সার্ভারকে স্বাধীনভাবে জিজ্ঞাসাবাদ করে এবং তাই আলাদা আলাদা প্রথম পছন্দ ডিএনএস এন্ট্রি সহ শেষ হয়। এই পৃথক প্রথম পছন্দগুলির অর্থ ক্লায়েন্টরা বিভিন্ন সার্ভার দ্বারা পরিবেশন করা হয় এবং লোডটি ছড়িয়ে পড়ে। তবে এটি সমস্ত ডিভাইসটি ডিএনএস কোয়েরি করছে এবং কতক্ষণ ফলাফল রাখে তার উপর নির্ভর করে। একটি সাধারণ উদাহরণ হ'ল কর্পোরেট প্রক্সিটির পিছনে থাকা সমস্ত ক্লায়েন্ট (এটি তাদের জন্য ডিএনএস কোয়েরি সম্পাদন করে) সমস্ত একক সার্ভারকে লক্ষ্য করে শেষ করবে। লোড ছড়িয়ে পড়ে - তবে এটি সমানভাবে সুষম হয় না।

3) ক্লায়েন্ট সফ্টওয়্যার যতক্ষণ না এটি যথাযথভাবে প্রয়োগ করে (এবং টিটিএল এবং ব্যবহারকারীদের দৃষ্টি আকর্ষণের সময় খুব কম নয়) ততক্ষণ ডিএনএস আরআর স্থিতিস্থাপকতা সরবরাহ করে। এটি কারণ ডিএনএস রাউন্ড রবিন সার্ভার আইপি অ্যাড্রেসগুলির একটি আদেশযুক্ত তালিকা সরবরাহ করে এবং ক্লায়েন্ট সফ্টওয়্যারটি সংযোগটি গ্রহণ না করে এমন কোনও সার্ভার না পাওয়া পর্যন্ত তাদের প্রত্যেকের সাথে যোগাযোগ করার চেষ্টা করা উচিত।

সুতরাং যদি প্রথম পছন্দের সার্ভারটি নিচে থাকে তবে ক্লায়েন্ট টিসিপি / আইপি সংযোগের সময়সীমা বেঁধে যায়, এবং টিটিএল বা মনোযোগের সময়সীমা না পেরিয়ে থাকে তবে ক্লায়েন্ট সফ্টওয়্যার তালিকার দ্বিতীয় প্রবেশের সাথে আরও একটি সংযোগ চেষ্টা করে - এবং আরও টিটিএলটির মেয়াদ শেষ হয়ে যায়, বা এটি তালিকার শেষে পৌঁছে যায় (বা ব্যবহারকারী বিরক্তিতে ছেড়ে দেয়)।

ক্লায়েন্ট আসলে একটি ওয়ার্কিং সার্ভার আবিষ্কার করার আগে ভাঙা সার্ভারগুলির একটি দীর্ঘ তালিকা (আপনার ত্রুটি) এবং বৃহত টিসিপি / আইপি সংযুক্ত পুনরায় চেষ্টা সীমা (ক্লায়েন্ট কনফিগারেশন ভুল সংস্কৃতি) একটি দীর্ঘ সময়ের জন্য করতে পারে। খুব সংক্ষিপ্ত একটি টিটিএল এর অর্থ হ'ল এটি কখনই তালিকার শেষের দিকে কাজ করে না এবং পরিবর্তে একটি নতুন ডিএনএস কোয়েরি জারি করে এবং একটি নতুন তালিকা পরিবেশন করা হয় (আশা করি অন্য কোনও ক্রমে)।

কখনও কখনও ক্লায়েন্ট দুর্ভাগ্যজনক হয়ে যায় এবং নতুন তালিকাটি এখনও ভাঙা সার্ভার দিয়ে শুরু হয়। সিস্টেমকে ক্লায়েন্টের স্থিতিস্থাপকতার সুযোগ দেওয়ার সর্বোত্তম সুযোগ দেওয়ার জন্য আপনার টিটিএলটি সাধারণত মনোযোগের স্প্যানের চেয়ে বেশি এবং ক্লায়েন্টের তালিকার নীচে পৌঁছানোর বিষয়টি নিশ্চিত করা উচিত।

ক্লায়েন্টটি কোনও কার্যকরী সার্ভারটি সন্ধান করার পরে এটি মনে রাখা উচিত এবং এটি পরবর্তী সংযোগ তৈরি করার প্রয়োজন হলে এটি অনুসন্ধান পুনরাবৃত্তি করা উচিত নয় (যদি না টিটিএলটির মেয়াদ শেষ না হয়)। একটি দীর্ঘতর টিটিএল গ্রাহক একটি ওয়ার্কিং সার্ভারের জন্য অনুসন্ধান করার সময় - আরও ভাল অভিজ্ঞতা দেওয়ার সাথে সাথে ফ্রিকোয়েন্সি হ্রাস করে।

৪) ডিএনএস টিটিএল তার নিজের মধ্যে আসে, আপনি যখন ডিএনএস রেকর্ডগুলি ম্যানুয়ালি পরিবর্তন করতে চান (উদাহরণস্বরূপ দীর্ঘমেয়াদী ভাঙ্গা সার্ভারটি মুছে ফেলতে) তখন একটি সংক্ষিপ্ত টিটিএল সেই পরিবর্তনটি দ্রুত প্রচারের অনুমতি দেয় (একবার আপনি এটি করার কাছাকাছি গেলে), সুতরাং সমস্যাটি সম্পর্কে আপনাকে জানার আগে এটি কতক্ষণ সময় নেবে তার মধ্যে ভারসাম্যটি বিবেচনা করুন এবং সেই ম্যানুয়াল পরিবর্তন করুন - এবং টিটিএলটির মেয়াদ শেষ হওয়ার পরে সাধারণ ক্লায়েন্টদের কেবলমাত্র একটি ওয়ার্কিং সার্ভারের জন্য একটি নতুন অনুসন্ধান করতে হবে the

ডিএনএস রাউন্ড রবিনের দুটি অসামান্য বৈশিষ্ট্য রয়েছে যা বিস্তৃত পরিসরে এটি অত্যন্ত ব্যয়বহুল করে তোলে - প্রথমত এটি নিখরচায় এবং দ্বিতীয়ত এটি আপনার ক্লায়েন্ট বেস হিসাবে প্রায় ভৌগলিকভাবে ছড়িয়ে পড়ে।

এটি অন্যান্য 'চালাক' সিস্টেমগুলি করে এমন একটি নতুন 'ব্যর্থতার ইউনিট' প্রবর্তন করে না। কোনও যুক্ত উপাদান নেই যা আন্তঃ-সংযুক্ত উপাদানগুলির পুরো লোডের উপরে একটি সাধারণ এবং যুগপত ব্যর্থতা অনুভব করতে পারে।

'চতুর' সিস্টেমগুলি দুর্দান্ত এবং একটি বিরামবিহীন ভারসাম্য বজায় রাখতে এবং প্রক্রিয়াটি ব্যর্থ করার জন্য দুর্দান্ত ব্যবস্থা প্রবর্তন করে, তবে শেষ পর্যন্ত তারা যে বিরামবিহীন অভিজ্ঞতা প্রদান করতে ব্যবহার করে সেগুলি হ'ল তাদের অ্যাকিলিস হিল - অতিরিক্ত জটিল জিনিস যা ভুল হতে পারে, এবং যখন এটি হয়, বিস্তৃত সিস্টেমের বিস্তৃত বিরামবিহীন অভিজ্ঞতা সরবরাহ করবে।

হ্যাঁ, ডিএনএস রাউন্ড রবিন আপনার একক সার্ভারের বাইরে আপনার প্রথম পদক্ষেপের জন্য অবশ্যই আপনার স্থির সামগ্রীর এক জায়গায় হোস্টিংয়ের জন্য যথেষ্ট "যথেষ্ট"।


1
এবং আমি বলতে ভুলে গেছি যে প্রক্রিয়াটি বরং বোবা। সার্ভারটি সম্পূর্ণরূপে ব্যর্থ হলে এটি কাজ করে, তবে যখন এটি কেবল 'অসহায়' বা 'অস্বাস্থ্যকর' হয় না not এমন একটি সার্ভার যা প্রতিটি অনুরোধের প্রতিক্রিয়া হিসাবে কেবল HTTP 500 ত্রুটি প্রদান করে, DNS আরআর তালিকা থেকে সরানো হবে না এবং এটি আপনার ক্লায়েন্ট বেসের এলোমেলো অংশটিকে হতাশ করবে। 'চতুর' মেকানিজমগুলির সর্বদা একটি শক্তিশালী স্বাস্থ্য চেক প্রয়োগ করা উচিত যা এটির মতো কোনও জম্বি খাঁজতে পারে।
ওল্ড ফোগি

আরআর-ডিএনএসের পরে যদি আপনার ভাল যুক্তি থাকে তবে আপনি 500 ত্রুটি ফিরিয়ে দেবেন না। উদাহরণস্বরূপ পরিচালকদের সাথে বার্নিশ ব্যবহার করুন এবং আপনি সঠিকভাবে কোনও উত্তর না দেওয়া পর্যন্ত একাধিক ব্যাকএন্ড সার্ভারকে জিজ্ঞাসা করতে পারেন। আপনার যদি আরআর থাকে তবে এর অর্থ হ'ল আপনার একাধিক ব্যাক-এন্ড রয়েছে, তাই এগুলি সমস্ত একা থাকায় আপনার এগুলি পরিচালনা করা উচিত নয়। অথবা আপনার 500 টি ত্রুটি পর্যবেক্ষণ করা উচিত এবং এটি হয়ে গেলে স্বয়ংক্রিয় বা ম্যানুয়াল ব্যবস্থা নেওয়া উচিত। তবে আপনি এই সত্যটি সঠিকভাবে উল্লেখ করতে পারেন যে ব্রাউজারগুলি হ'ল ব্রাউজারগুলি হ্যান্ডল করার জন্য ওয়েবসারভারটি অবশ্যই ডাউন হতে হবে।
ইয়ান

আপনার উত্তর সম্পর্কে আপনাকে ধন্যবাদ একটি মন্তব্য। আমি বুঝতে পারি না শীর্ষ উত্তর কেন আরআর এর প্রস্তাব দেয় না। যা এটি HA এর অবকাঠামোর প্রথম পদক্ষেপ, সহজ এবং প্রয়োগযোগ্য।
Jérôme বি

4

উইন্ডোজ ভিস্তা এবং উইন্ডোজ রাউন্ড রবিনের ক্লায়েন্ট সমর্থনকে আলাদাভাবে প্রয়োগ করে কারণ তারা আইভিভি 6 ঠিকানা নির্বাচনকে আইপিভি 4-তে ব্যাকপোর্ট করে। ( আরএফসি 3484 )

সুতরাং, আপনার কাছে ভিস্তা, উইন্ডোজ, এবং উইন্ডোজ ২০০৮ এর উল্লেখযোগ্য সংখ্যক ব্যবহারকারী থাকলে আপনি সম্ভবত এরেসটজ লোড ব্যালেন্সিং সমাধানে আপনার পরিকল্পনাযুক্ত চিন্তার সাথে আচরণের অসঙ্গত খুঁজে পেতে চলেছেন।


আহ, আপনাকে ধন্যবাদ, দুর্দান্ত, আমি এই লিঙ্কটি খুঁজছিলাম - আমি এই সম্পর্কে শুনেছি কিন্তু রেফারেন্সটি খুঁজে পাইনি!
জেফ

2

লোড-ব্যালেন্সার হিসাবে আমি লম্বা টিটিএল সহ সর্বদা রাউন্ড-রবিন ডিএনএস ব্যবহার করেছি। এটি ব্রাউজারগুলির সাথে এইচটিটিপি / এইচটিটিপিএস পরিষেবাদির জন্য সত্যিই দুর্দান্ত কাজ করে

বেশিরভাগ ব্রাউজারগুলি কিছু ধরণের another অন্য আইপিতে পুনরায় চেষ্টা করুন implement বাস্তবায়ন করার কারণে আমি সত্যিই ব্রাউজারগুলির সাথে চাপ দিয়ে থাকি তবে অন্য গ্রন্থাগারগুলি বা সফ্টওয়্যারগুলি কীভাবে একাধিক আইপি সমাধান পরিচালনা করতে পারে তা আমি জানি না।

যখন ব্রাউজারটি একটি সার্ভার থেকে উত্তর না পায়, এটি স্বয়ংক্রিয়ভাবে পরবর্তী আইপি কল করবে এবং তারপরে এটি আটকে থাকবে (যতক্ষণ না এটি ডাউন হয় ... এবং তারপরে অন্যটি চেষ্টা না করে)।

2007 সালে ফিরে, আমি নিম্নলিখিত পরীক্ষাটি সম্পন্ন করেছি:

  • আমার ওয়েবসাইটে একটি রাউন্ড-রবিন প্রবেশের দিকে ইঙ্গিত করে একটি আইফ্রেমে যুক্ত করুন, যেমন http://roundrobin.test:10080/ping.php
  • পৃষ্ঠাটি 3 পিএইচপি সকেট দ্বারা পরিবেশন করা হয়েছিল, সমস্ত 31080 বন্দরে 3 ডিফারেন্ট আইপি শুনছিল (আমার ওয়েবসাইট এটি চলমান থাকায় আমি 80 বন্দরটিতে পরীক্ষা করতে পারিনি)
  • একটি সকেট (বলুন ) সেখানে ব্রাউজারটি 10080 বন্দরে সংযোগ করতে পারে কিনা তা পরীক্ষা করার জন্য ছিল (অনেক সংস্থাগুলি কেবলমাত্র মানক বন্দরগুলিকে অনুমতি দেয়)
  • অন্য দুটি সকেট ( বি এবং সি বলুন ) উড়তে সক্ষম বা অক্ষম করা যেতে পারে।

আমি এটি এক ঘন্টা চালাতে দিয়েছি, প্রচুর ডেটা ছিল। ফলাফলগুলি হ'ল সকেট এ- এর হিটগুলির 99.5% এর জন্য , আমি সকেট বি বা সি উভয়কেই হিট করেছি (অবশ্যই আমি উভয়টিকে একই সময়ে অক্ষম করি নি)। ব্রাউজারগুলি হচ্ছিল: আইফোন, ক্রোম, অপেরা, এমএসআইই 6/7/8, ব্ল্যাকবেরি, ফায়ারফক্স 3 / 3.5 ... সুতরাং এমনকি-সেই-অনুমানযোগ্য ব্রাউজারগুলিও এটি সঠিকভাবে পরিচালনা করছে!

আজ অবধি, আমি এটি আর কখনও পরীক্ষা করিনি, তবে সম্ভবত আমি একদিন একটি নতুন পরীক্ষা সেটআপ করব বা গিথুবে কোডটি প্রকাশ করব যাতে অন্যরা এটি পরীক্ষা করতে পারে।

গুরুত্বপূর্ণ দ্রষ্টব্য: এটি বেশিরভাগ সময় কাজ করলেও এটি কিছু অনুরোধ ব্যর্থ হবে এই সত্যটি সরিয়ে দেয় না । আমি এটি পোষ্ট অনুরোধগুলির জন্যও ব্যবহার করি, কারণ আমার অ্যাপ্লিকেশনটি যদি কাজ না করে তবে একটি ত্রুটি বার্তা ফিরিয়ে দেবে, যাতে ব্যবহারকারী আবার ডেটা প্রেরণ করতে পারে এবং সম্ভবত ব্রাউজারটি এই ক্ষেত্রে অন্য আইপি ব্যবহার করবে এবং সেভ কাজ করবে । এবং স্থির সামগ্রী জন্য, এটি সত্যিই দুর্দান্ত কাজ করছে।

সুতরাং আপনি যদি ব্রাউজারগুলির সাথে কাজ করছেন তবে রাউন্ড-রবিন ডিএনএস ব্যবহার করুন না হয় স্থির বা গতিশীল সামগ্রীর জন্য, আপনি বেশিরভাগই ভাল থাকবেন। সার্ভারগুলি কোনও লেনদেনের মাঝখানেও নামতে পারে এবং সর্বোত্তম লোড-ব্যালেন্সারের সাহায্যে আপনি এ জাতীয় কেস পরিচালনা করতে পারবেন না। গতিশীল বিষয়বস্তুর জন্য আপনাকে আপনার সেশন / ডাটাবেস / ফাইলগুলি সিঙ্ক্রোনাস করতে হবে, অন্যথায় আপনি এটি পরিচালনা করতে সক্ষম হবেন না (তবে এটি সত্যিকারের লোড-ব্যালেন্সারের সাথেও সত্য)।

অতিরিক্ত নোট: আপনি নিজের আইপি ব্যবহার করে আচরণটি পরীক্ষা করতে পারেন iptables। উদাহরণস্বরূপ, এইচটিটিপি ট্র্যাফিকের জন্য আপনার ফায়ারওয়াল নিয়মের আগে, যুক্ত করুন:

iptables -A INPUT -p tcp --dport 80 --source 12.34.56.78 -j REJECT

( 12.34.56.78স্পষ্টতই আপনার আইপি কোথায় )

ফিল্টার ফিল্টারDROP ছেড়ে যাওয়ার সাথে সাথে এটি ব্যবহার করবেন না এবং আপনার ব্রাউজারটি সময় শেষ না হওয়া পর্যন্ত অপেক্ষা করবে। সুতরাং এখন, আপনি একটি সার্ভার বা অন্যটিকে সক্ষম বা অক্ষম করতে পারেন। সর্বাধিক সুস্পষ্ট পরীক্ষা হ'ল সার্ভার এ অক্ষম করা, পৃষ্ঠাটি লোড করুন, তারপরে সার্ভার এ সক্ষম করুন এবং সার্ভার বি অক্ষম করুন আপনি যখন পৃষ্ঠাটি আবার লোড করবেন, আপনি ব্রাউজার থেকে কিছুটা অপেক্ষা করতে দেখবেন, তবে এটি সার্ভার থেকে লোড হবে আবার। Chrome এ, আপনি নেটওয়ার্ক প্যানেলে অনুরোধটি দেখে সার্ভারের আইপি নিশ্চিত করতে পারেন। এর ট্যাবে আপনি একটি নকল শিরোনামের নাম দেখতে পাবেন । এটি সেই আইপি যেখানে থেকে আপনি উত্তর পেয়েছেন।GeneralHeadersRemote Address:

সুতরাং, যদি আপনাকে একটি সার্ভারে রক্ষণাবেক্ষণ মোডে যেতে হয়, কেবল একটি iptables REJECTনিয়ম দিয়ে এইচটিটিপি / এইচটিটিপিএস ট্র্যাফিক অক্ষম করুন , সমস্ত অনুরোধগুলি অন্যান্য সার্ভারগুলিতে যাবে (একটি সামান্য অপেক্ষা সহ, ব্যবহারকারীদের জন্য প্রায় লক্ষণীয় নয়)।


1

আমি এটি যথেষ্ট ভাল সমাধান বলে মনে করি না কারণ ধরা যাক যে এখন আপনার কাছে দুটি সার্ভার রয়েছে এবং আপনি প্রতিটি সার্ভারের আইপি ঠিকানায় ডিএনএস ব্যবহার করে গোলাকার রবিন করেন। যখন একটি সার্ভার নীচে যায়, তখন ডিএনএস সার্ভারগুলিকে কোনও জ্ঞান নেই যে এটি নীচে নেমেছে এবং আরআর প্রক্রিয়াটির অংশ হিসাবে সেই আইপি ঠিকানাটি সরবরাহ করতে থাকবে। তারপরে আপনার 50% শ্রোতা একটি ভাঙ্গা সাইট জাভাস্ক্রিপ্ট বা চিত্রগুলি অনুপস্থিত পাবেন।

সম্ভবত একটি সাধারণ আইপি ঠিকানার দিকে ইঙ্গিত করা সহজ যা উইন্ডোজ এনএলবি দ্বারা পরিচালিত দুটি সার্ভারের পিছনে প্রতিনিধিত্ব করে। আপনি যদি আপনার স্ট্যাটিক সামগ্রীর জন্য লিনাক্স সার্ভারটি ব্যবহার না করেন তবে আমি যদি কোথাও এটি পড়তে মনে করি?


এনএলবি ডিএনএস সার্ভারের চেয়ে এনআইসি সার্ভারে কেবল রাউন্ড-রবিন। লিনাক্সে এর জন্য আপনি একটি এইচএ সমাধান চান - রেডহ্যাটের একটি রয়েছে, বা প্রচুর বিশদ জানতে আল্ট্রামনকি দেখুন।
gbjbaanb

ইয়াপ আমি জানি এনএলবি কী করে। আমি প্রস্তাব দিচ্ছি যে ডিএনএস আরআর ছাড়িয়ে কারণ একটি সার্ভার ব্যর্থতা অর্ধেক ব্যবহারকারীদের পঙ্গু করবে না।
আইস্লাভা

@gbjbaanb বা অন্য উপায় করা, NLB লেয়ার এ রাউন্ড রবিন 2. ডিএনএস ভিত্তিক রাউন্ড রবিন এ (বা উপর নির্ভর করে) লেয়ার 7
ঊষা

1

রাউন্ড-রবিন লোড ব্যালেন্সিং কেবল তখনই কাজ করে যখন আপনি ডিএনএস জোনেরও নিয়ন্ত্রণে থাকবেন যাতে আপনি সার্ভারের তালিকা পরিবর্তন করতে পারেন এবং সময়মত জোন মাস্টারগুলিতে এটি ঠেলে দিতে পারেন।

অন্য একটি উত্তরে উল্লিখিত হিসাবে, রাউন্ড-রবিনের গোপন অশুভতা হ'ল ডিএনএস ক্যাচিং যা আপনার সার্ভার এবং ক্লায়েন্টের মধ্যে যে কোনও জায়গায় ঘটতে পারে যা এই সমাধানটির সামান্য সুবিধাটিকে পুরোপুরি উপেক্ষা করে। এমনকি ডিএনএস টিটিএল খুব স্বল্পমূল্যে সেট হয়ে গেলেও আইএসপি বা এমনকি ক্লায়েন্টের ডিএনএস ক্যাশে এখন-মৃত আইপি অ্যাড্রেসটি সক্রিয় রাখবে তার উপর আপনার খুব নিয়ন্ত্রণ থাকবে।

এটি একটি স্পফের চেয়ে নিশ্চিত উন্নতি, তবে কেবল প্রান্তিক only কে কখনও আপনার সার্ভারটি হোস্ট করছে তা একবার দেখে নেব এবং তারা কী অফার করবে তা অনেকের কাছেই তারা দিতে পারে এমন কিছু বেসিক লোড ব্যালান্সার পরিষেবা রয়েছে।

স্থির সামগ্রী S3 তে সদৃশ হয়ে থাকতে পারে এবং আপনার প্রাথমিকটি নীচে গেলে S3 সিএনএমে স্যুইচ করতে পারেন। আপনি একই বিলম্বের সাথে একাধিক সার্ভার ব্যয় ছাড়াই শেষ করবেন।


1

এটি আপনি কী সম্পর্কে কথা বলছেন এবং আপনি কতগুলি সার্ভারের মাধ্যমে ঘুরছেন তা নির্ভর করে। আমার একবার একটি সাইট ছিল যা বেশ কয়েকটি সার্ভারে চলেছিল এবং আমি ডিএনএস রাউন্ড রবিন ব্যবহার করেছিলাম সেই সময়ে প্রধানত আমার নবজাতকের কারণে এবং এটি সত্যিই বড় সমস্যা ছিল না। এটি কোনও বড় সমস্যা ছিল না কারণ এটি ক্রাশ হয়নি। এটি একটি সত্যিই নির্বোধ অ-জটিল সিস্টেম ছিল, সুতরাং এটি ধরে রাখা হয়েছিল এবং একটি বেশ ধ্রুব ট্র্যাফিক স্তর ছিল। যদি এটি ট্র্যাফিক থেকে ক্র্যাশ হয়ে যায় তবে এটি ছিল দিনের বেলা এবং এমন কিছু বিষয় যা আমি খুব সহজেই যত্ন নিতে পারি। আমি বলব যে আপনার স্ট্যাটিক সামগ্রীটি এতটা সহজ হিসাবে যোগ্যতা অর্জন করবে যাতে তার নিজের ক্রাশ না ঘটে।

হার্ডওয়্যার ব্যর্থতার বাইরে ইত্যাদি, আপনার সার্ভারটি কতটা স্থিতিশীল হয়েছে? এই বিষয়বস্তুতে আপনার ট্র্যাফিকটি কতটা "স্পাইকি"? সরাসরি ধরে ধরে আপাচি বা কিছু এবং তুলনামূলকভাবে ফ্ল্যাট ট্র্যাফিক, এটি খুব বেশি ক্রাশ হবে না, এবং আমি বলব যে রাউন্ড-রবিন "যথেষ্ট ভাল"।

আমি নিশ্চিত যে আমি ভোটে নেমে যাব কারণ আমি ১০০% এইচএ সমাধান সমাধান করছি না, তবে আপনি যা চেয়েছিলেন তা তা নয়। প্রচেষ্টা ব্যয় করা বনাম প্রচেষ্টা হিসাবে আপনি যা গ্রহণ করতে ইচ্ছুক তা নেমে আসে।


1

আপনি যদি ভার ভারসাম্যের জন্য আরআর ডিএনএস ব্যবহার করে থাকেন তবে এটি ঠিক আছে, তবে আপনি তা করেন না। রিডানড্যান্ট সার্ভার সক্ষম করতে আপনি এটি ব্যবহার করছেন, সেক্ষেত্রে এটি ভাল না।

আগের পোস্ট যেমন বলেছিল, আপনার হার্টবিট সনাক্ত করতে কিছু দরকার এবং এটি ফিরে না আসা পর্যন্ত এটি আঘাত করা বন্ধ করুন।

সুসংবাদটি হ'ল হার্টবিটটি স্যুইচ বা উইন্ডোতে সত্যই সস্তা পাওয়া যায়।

অন্যান্য ওএস সম্পর্কে ডান্নো তবে আমি ধরে নিচ্ছি এটিও সেখানে রয়েছে।


1

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি আপনার প্রতিটি সার্ভারকে একটি অতিরিক্ত আইপি ঠিকানা বরাদ্দ করুন (স্ট্যাটিক আইপি ছাড়াও যা আপনি ব্যবহার করেন, বলুন, এসএসএস), এবং আপনি এটি ডিএনএস পুলে নিয়ে যান। এবং তারপরে কোনও সার্ভার ব্যর্থ হলে আপনি এই আইপি ঠিকানাগুলির চারপাশে স্যুইচ করতে কিছু সফ্টওয়্যার ব্যবহার করেন। হার্টবিট বা সিএআরপি এটি করতে পারে, উদাহরণস্বরূপ, তবে সেখানে অন্যান্য সমাধানও রয়েছে।

এটির সুবিধাটি রয়েছে যে আপনার পরিষেবার ক্লায়েন্টদের জন্য, সেটআপে কোনও পরিবর্তন করার দরকার নেই, এবং আপনাকে ডিএনএস ক্যাচিং বা টিটিএল সম্পর্কে চিন্তা করতে হবে না, তবে আপনি এখনও ডিএনএস রাউন্ড-রবিন "লোড ব্যালেন্সিং" এর সুবিধা নিতে পারবেন ।


1

এটি সম্ভবত কাজটি করবে, বিশেষত যদি আপনি আপনার স্ট্যাটিক বাক্সে একাধিক আইপি রাখতে পারেন। একটিতে "পরিবেশন স্ট্যাটিক সামগ্রী" আইপি এবং একটি "মেশিন পরিচালনা" আইপি রাখুন। যদি কোনও বাক্স নীচে নেমে যায় তবে আপনি ব্যর্থ মেশিন থেকে অন্য কোনও "ক্লাস্টার সদস্য" বা কোনও একটি সম্পূর্ণ নতুন মেশিনের উপর আইপি আনতে একটি বিদ্যমান এইচএ সমাধান বা ম্যানুয়াল হস্তক্ষেপটি ব্যবহার করতে পারেন (এটি কত দ্রুত হবে তার উপর নির্ভর করে) এটি পেতে এবং চলমান পেতে)।

তবে এই জাতীয় সমাধানে কিছু ছোট ছোট সমস্যা থাকবে have লোড ব্যালেন্সিং নিখুঁতভাবে কাছাকাছি কোথাও হবে না এবং আপনি যদি ম্যানুয়াল হস্তক্ষেপের উপর নির্ভর করে থাকেন তবে কিছু দর্শকের জন্য আপনার আউটজেস থাকতে পারে।

একটি হার্ডওয়্যার লোড ব্যালেন্সার সম্ভবত ডিএনএস রাউন্ড-রবিনের চেয়ে লোড ভাগ করে নেওয়ার এবং "ক্লাস্টার আপটাইম" সরবরাহ উভয়ই ভাল কাজ করতে পারে। ফ্লিপ দিকে, এটি হ'ল একটি (বা দুটি, যেহেতু আদর্শিকভাবে আপনি এইচএ ক্লাস্টারে তেমন এলবি রয়েছে) হার্ডওয়ারের টুকরো যা ক্রয়, শক্তি এবং শীতলকরণের প্রয়োজন হবে (সম্ভবত) কিছু সময়ের সাথে পরিচিত হতে হবে (যদি আপনি ইতিমধ্যে না থাকেন তবে ডেডিকেটেড লোড ব্যালান্সার রয়েছে)।


1

Succinctly প্রশ্নের উত্তর করার জন্য (রাউন্ড রবিন একটি স্টার্টার হিসাবে যথেষ্ট ভাল DNS, কিছুই বেশী ভালো, "আমরা যখন খোঁজ খবর নেন এবং ভাল বিকল্প বাস্তবায়ন" হয় লোড আকারে আমাদের স্ট্যাটিক বিষয়বস্তুর জন্য মিট?), আমি বলতে হবে এটি হল কিছুই বেশী ভালো, তবে আপনার অবশ্যই লোড ব্যালেন্সিংয়ের অন্যান্য ফর্মগুলি নিয়ে গবেষণা চালিয়ে যাওয়া উচিত।


1

বেশ কয়েক বছর আগে উইন্ডোজ লোড ব্যালেন্সিংয়ের গবেষণা করার সময়, আমি একটি নথি দেখলাম যাতে মাইক্রোসফ্টের ওয়েব ফার্মটি তাদের মধ্যে ডিএনএস রাউন্ড রবিন সহ একাধিক লোড-ব্যালেন্সিং গ্রুপ হিসাবে কনফিগার করা হয়েছিল। যেহেতু প্রতিটি নেমস্পেসে আপনার একাধিক ডিএনএস সার্ভার সাড়া ফেলতে পারে এবং যেহেতু মাইক্রোসফ্টের লোড ব্যালেন্সিং স্ব-নিরাময় হয় তাই এটি রিডানডেন্সি এবং লোড ভারসাম্য উভয়ই সরবরাহ করে।

খারাপ দিক: আপনার কমপক্ষে 4 টি সার্ভারের প্রয়োজন (2 টি সার্ভার এক্স 2 গ্রুপ)।

শোফের উত্তরে জেফের মন্তব্যের জবাব, HAProxy সার্ভারগুলির মধ্যে কি ডিএনএস রাউন্ড-রবিনের কোনও উপায় আছে?


0

এটিতে খুব প্রান্তিক ব্যবহার রয়েছে, আপনি আসল সমাধানের জায়গায় রাখার সময় আপনাকে পেতে যথেষ্ট। আপনি যেমন বলছেন, টিটিএলগুলি বেশ নিচে সেট করতে হবে। এটির সমস্যা থাকলেও ডিএনএস থেকে সমস্যাযুক্ত মেশিনটি বের করে আনার পার্শ্ব সুবিধা রয়েছে। বলুন যে আপনার কাছে SvrA, SvrB এবং SvrC আপনার বিষয়বস্তু প্রেরণ করছে এবং এসভিআরএ হ্রাস পাচ্ছে। আপনি এটি ডিএনএস থেকে সরিয়ে ফেলেন এবং আপনার নিম্ন টিটিএল দ্বারা সংজ্ঞায়িত স্বল্প সময়ের পরে, সমাধানকারীরা আলাদা সার্ভার (এসভিআরবি বা এসভিআরসি) বের করবে figure আপনি SvrA অনলাইনে ফিরে পাবেন এবং এটিকে আবার ডিএনএসে রাখবেন। কিছু লোকের জন্য একটি সংক্ষিপ্ত ডাউনটাইম, অন্যদের জন্য কিছুই নয়। দুর্দান্ত না, তবে কার্যক্ষম। আপনি যত বেশি স্থিতিশীল সার্ভার মিশ্রণটিতে রেখেছেন তাতে আপনার সংখ্যাগরিষ্ঠ ব্যবহারকারীর সংখ্যা কম হবে।

ইন্টারনেটের টপোলজির কারণে সত্যিকারের ভারসাম্য সমাধান যে সত্যিকারের ভারসাম্য সরবরাহ করবে তা আপনি অবশ্যই পাবেন না। আমি এখনও জড়িত সমস্ত সার্ভারে লোডটি দেখতে চাই।


সামগ্রীটি 100% স্থিতিশীল তাই লোড নগন্য - এমনকি একটি সার্ভারেও। এটি বেশিরভাগ ব্যান্ডউইথ
জেফ আতউড

1
সব একই পাইপ আউট?
স্কুইলম্যান

টিটিএল বেশিরভাগ সময় কখনও ডিএনএস দ্বারা ব্যবহৃত হয় না আপনি যে পথে পথে আঘাত করবেন। প্রতিটি ডিএনএস এর প্রশাসক যা চায় তাই করবে। এবং তাদের বেশিরভাগই কখনও 5 মিনিটের টিটিএলকে অনুমতি দেয় না, যার অর্থ প্রতি 5 মিনিটে ডিএনএস উত্স থেকে ডেটা পুনরায় লোড করা যায় ... কোনও বৈধ কারণ ছাড়াই ডিএনএস সার্ভারকে আউটেজ করার সর্বোত্তম উপায়। এবং আপনি «প্রান্তিক ব্যবহার with দিয়ে ভুল করছেন, গুগল এটি তার সমস্ত অনুসন্ধান সার্ভারের জন্য ব্যবহার করে ... এবং আমি সত্যিই সন্দেহ করি যে তারা কেবল এটিই করেছে। আরআর-ডিএনএস দুর্দান্ত, যখন আপনি জানেন যে এটি কী করে।
ইয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.