CreateYourVPN Academy
कोर्स: सब कुछ कैसे काम करता है

रूट और लोड बैलेंसिंग

CreateYourVPN में रूट क्या होता है, एक मिनट में इसे कैसे बनाएँ, ख़ाली रूट क्यों काम के हैं, और सिस्टम यूज़र्स को सर्वरों में कैसे बाँटता है।

रूट आपके इंफ्रास्ट्रक्चर और यूज़र को दिखने वाली चीज़ के बीच का पुल है। आप सर्वर और इनबाउंड मैनेज करते हैं, जबकि यूज़र को अपने ऐप में "सर्वरों" की एक छोटी लिस्ट दिखती है — और उस लिस्ट का हर आइटम असल में एक रूट होता है।

एक रूट = यूज़र के ऐप में एक लाइन

रूट क्लाइंट की सब्सक्रिप्शन में एक नाम के तहत इनबाउंड का एक समूह है। नियम आसान है:

एक ग़ैर-ख़ाली रूट = यूज़र की सर्वर लिस्ट में एक आइटम।

एक रूट में एक ही इनबाउंड हो सकता है — या अलग-अलग सर्वरों पर दस भी। यूज़र को यह कभी नहीं दिखता: वह "🇺🇸 USA" चुनता है, और वह ठीक-ठीक किस सर्वर पर पहुँचेगा, यह लोड बैलेंसर तय करता है — इस बारे में आगे।

इस बीच, यूज़र को जो नाम दिखता है वह चुने गए इनबाउंड का नाम होता है: अपने इनबाउंड को साफ़ नाम दें ("🇺🇸 New York", "🇺🇸 Dallas") और यूज़र को ठीक यही दिखेगा।

जब आप अपना पहला सर्वर कनेक्ट करते हैं, तो सिस्टम अपने आप एक डिफ़ॉल्ट रूट बना देता है और पहला इनबाउंड उसमें डाल देता है — इसीलिए बिना कोई सेटिंग किए सब कुछ शुरू से ही काम करता है। रूट तब काम आते हैं जब आपको ज़्यादा चाहिए: कई देश, एक अलग "स्ट्रीमिंग" रूट, वगैरह।

रूट बनाना

क्लस्टर पेज पर, "रूट" सेक्शन में, "नया रूट" पर क्लिक करें। विज़ार्ड में तीन हिस्से हैं:

  1. क्लाइंट इस रूट को कैसे देखते हैं — नाम (जैसे 🇺🇸 USA) और एक झंडा। यह रूट का "साइनबोर्ड" है।
  2. लोड-बैलेंसिंग एल्गोरिदम — "ट्रैफ़िक के अनुसार सबसे कम लोड वाला" (डिफ़ॉल्ट) या "Round-robin"। फ़र्क़ नीचे समझाया गया है।
  3. पूल में इनबाउंड — कौन-से इनबाउंड इस रूट के हैं। यह हिस्सा वैकल्पिक है: आप एक ख़ाली रूट बना सकते हैं और बाद में खींचकर उसे भर सकते हैं।

एक इनबाउंड सिर्फ़ एक ही रूट का हो सकता है। अगर आप ऐसा इनबाउंड चुनते हैं जो पहले से किसी और रूट में है, तो वह नए रूट में चला जाता है। इसी तरह सिस्टम यह गारंटी देता है कि हर प्रवेश बिंदु का ट्रैफ़िक ठीक एक ही नियम-सेट से चलता है।

टोपोलॉजी डायग्राम: एक नज़र में सारे रूट

क्लस्टर पेज पर रूट एक लाइव डायग्राम में दिखते हैं: बाईं ओर सर्वर और उनके इनबाउंड, दाईं ओर रूट के बॉक्स। इनबाउंड को माउस से खींचा जा सकता है: किसी इनबाउंड को पकड़ें, दूसरे रूट में छोड़ दें — बस हो गया। एक "असाइन नहीं किया गया" ज़ोन भी है — किसी इनबाउंड को वहाँ छोड़ने से वह सभी रूट से अलग हो जाता है।

रूट के बॉक्स को भी दोबारा व्यवस्थित किया जा सकता है (ड्रैग हैंडल या ऐरो से) — यह सिर्फ़ आपकी सुविधा के लिए विज़ुअल क्रम है।

ख़ाली रूट

बिना एक भी इनबाउंड वाला रूट डैश्ड बॉर्डर के साथ बनता है और उसमें डिस्ट्रिब्यूशन नोड तक जाने वाली कोई "पाइप" नहीं होती — यह इशारा है कि यूज़र्स इसे नहीं देख सकते। ख़ाली रूट अच्छे प्लेसहोल्डर होते हैं: पहले से "🇯🇵 Japan" बना लें, और जब कोई जापानी सर्वर आए, तो एक इनबाउंड खींच दें — रूट जाग उठता है।

इसका उल्टा भी हाइलाइट होता है: अगर आपके पास किसी भी रूट से बाहर इनबाउंड हों, तो पैनल आगाह करता है — "इनबाउंड किसी रूट में नहीं हैं — क्लाइंट उन्हें अभी नहीं देख सकते"।

लोड बैलेंसिंग: कौन किस सर्वर पर पहुँचता है

जब कोई यूज़र कनेक्शन का अनुरोध करता है, तो हर रूट के लिए सिस्टम पूल में से एक इनबाउंड चुनता है — लाइव, ताज़ा सर्वर मेट्रिक्स के आधार पर (वही मेट्रिक्स जो पाठ 3 में थे)। दो एल्गोरिदम हैं:

"ट्रैफ़िक के अनुसार सबसे कम लोड वाला" (डिफ़ॉल्ट)

सिस्टम देखता है कि हर सर्वर के पास प्रति यूज़र कितना खाली बैंडविड्थ बचा है: वह चैनल की क्षमता लेता है, उसमें से मौजूदा ट्रैफ़िक घटाता है, और कनेक्टेड यूज़र्स की संख्या से भाग देता है। सबसे ज़्यादा गुंजाइश वाला सर्वर जीतता है। यह "असली लोड के अनुसार" निष्पक्ष बैलेंसिंग है: किसी कमज़ोर, भरे हुए सर्वर को नए यूज़र्स नहीं मिलेंगे, भले ही औपचारिक रूप से उस पर कम लोग हों।

चैनल की क्षमता का अनुमान सिस्टम ख़ुद लगाता है — असली ट्रैफ़िक के देखे गए पीक से (अगर सर्वर पर काफ़ी देर से लोड न आया हो तो कोई पीक धीरे-धीरे "ठंडा" हो जाता है)।

"Round-robin"

एक आसान नियम: नया यूज़र उस सर्वर पर जाता है जिस पर इस समय सबसे कम लोग हैं — सर्वर के गुणांक के हिसाब से एडजस्ट करके। गुणांक एक वज़न है: 2.0 गुणांक वाला सर्वर 1.0 वाले पड़ोसी की तुलना में "दोगुना बड़ा" माना जाता है और उसे लगभग दोगुने यूज़र्स मिलेंगे। इससे अलग-अलग साइज़ की मशीनों को निष्पक्ष तरीक़े से लोड किया जा सकता है।

अगर पूल में किसी सर्वर के पास अभी तक क्षमता का कोई अनुमान नहीं है (मान लीजिए, सर्वर बिल्कुल नया है और उसने अभी कोई ट्रैफ़िक पीक नहीं देखा), तो रूट अपने आप round-robin पर आ जाता है — ताकि फ़ैसले हमेशा उस डेटा पर आधारित हों जो असल में मौजूद है।

रीबैलेंसिंग कब होती है

लगातार — और अपने आप। हर अनुरोध पर ताज़ा मेट्रिक्स के आधार पर सर्वर का चुनाव दोबारा हो जाता है: अगर लोड बदलता है, नए यूज़र्स ज़्यादा खाली सर्वरों पर पहुँचने लगते हैं। साथ ही, समान परिस्थितियों में सिस्टम किसी ख़ास यूज़र के लिए वही चुनाव बनाए रखने की कोशिश करता है, ताकि उसका "सर्वर" बार-बार इधर-उधर न उछले।

और एक सुरक्षा-कवच और: जिन सर्वरों को मॉनिटरिंग अनुपलब्ध मानती है, उन्हें चुनाव से बाहर रखा जाता है — इस बारे में और पाठ 7 में।

मुख्य बातें

  • रूट इनबाउंड के एक समूह का "साइनबोर्ड" है; एक ग़ैर-ख़ाली रूट = यूज़र के ऐप में एक लाइन।
  • एक इनबाउंड सिर्फ़ एक ही रूट का होता है। किसी भी रूट से बाहर इनबाउंड क्लाइंट के लिए अदृश्य होता है।
  • ख़ाली रूट पूरी तरह सामान्य प्लेसहोल्डर हैं: एक डैश्ड बॉक्स, यूज़र्स से छिपा हुआ।
  • दो एल्गोरिदम: खाली बैंडविड्थ के अनुसार (स्मार्ट, डिफ़ॉल्ट) और वज़न वाला round-robin
  • बैलेंसिंग लाइव है: हर कनेक्शन पर मौजूदा मेट्रिक्स के साथ दोबारा गणना होती है।

आगे क्या

On this page