कई सर्वरों के लिए फ़ाइलें तैनात करना


11

हमारे पास सर्वर -1 में फाइलों का एक केंद्रीय भंडार है /srv/www। फिर हमारे पास एन संख्या के सर्वर भी हैं। हम चाहते हैं कि सर्वर -1 /srv/wwwजितनी जल्दी हो सके और कुशलता से सभी सर्वरों में अपनी फ़ाइलों को तैनात करने में सक्षम हो।

क्या rsync जैसी कोई चीज़ है, लेकिन किसी एकल लक्ष्य को निर्दिष्ट करने के बजाय, लक्ष्य के क्लस्टर (N सर्वर) को निर्दिष्ट करना है?

मैं सोच रहा था कि gitकाम हो सकता है, लेकिन क्या हम कई रीमोट को भी पुश करने के लिए निर्दिष्ट कर सकते हैं?

सबसे अच्छा समाधान क्या है, यह मानते हुए कि एन सर्वर अंततः सैकड़ों तक पहुंच सकता है।


2
मुझे लगता है कि एक नेटवर्क फाइल सिस्टम संभव नहीं है?
cjc

stackoverflow.com/questions/849308/… कई रीमोट करने के लिए एक चाल चाल के लिए। सैकड़ों के बारे में निश्चित नहीं है, हालांकि।
cjc 2:11 बजे

जवाबों:


14

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

ऐसा लगता है कि आप अभी तक उस पैमाने पर नहीं हैं, लेकिन आपकी परिनियोजन प्रणाली को डिज़ाइन करने में कोई बुराई नहीं है, जैसे कि यह कभी भी अड़चन साबित नहीं होगी।


1
वे कैसे बिटोरेंट का उपयोग कर रहे हैं?
Dragos

3
मेरे द्वारा जुड़े लेख देखें।
EEAA

@EEAA का ट्विटर लिंक टूटा है
gprasant

@gprasant तय किया।
19

7

मैं उन पैमानों के लिए आपको सलाह नहीं देता, जिनसे आप बात कर रहे हैं। यह काम कर सकता है, लेकिन मैं व्यक्तिगत रूप से लाने के लिए उस मॉडल का उपयोग करने के साथ कुछ कमी देखता हूं।

वहाँ कुछ चीजें हैं जो निर्धारित करती हैं कि इस बारे में सबसे अच्छा कैसे जाना जाए:

  1. कितने बड़े रेपो को साझा किया जाना चाहिए।
  2. कितनी तेजी से इसे एकाग्र करने की जरूरत है।

सही अभिसरण के लिए, और अधिकतम गति के लिए आपको एक नेटवर्क फ़ाइल सिस्टम के साथ जाना होगा, जैसे कि NFSv4। जिन क्लस्टर्ड फाइल सिस्टम के बारे में मुझे पता है, वे नोड्स के 'मल्टीपल सैकड़ों' को स्केल नहीं करते हैं, इसलिए इसे नेटवर्क फाइल सिस्टम होना चाहिए। यह अपनी चुनौतियों को प्रस्तुत करता है, लेकिन इसका मतलब है कि आप उस क्षण तक पहुंच जाएंगे जब एनएफएस सिर पर फाइलें अपडेट की जाती हैं।

तेजी से अभिसरण के लिए, आप कुछ rsync ट्रिकरी का उपयोग कर सकते हैं। यदि rsync डेमॉन CPU बाउंड होने पर समाप्त होता है, तो आप निश्चित रूप से एक दो-तीन rsync सर्वर को एक लोडबॉलर जैसे haproxy के पीछे रख सकते हैं। युगल जो क्रॉन जॉब्स के साथ डेटा (या कोड अपडेट को ट्रिगर करने का कोई अन्य तरीका) खींचते हैं और आप अभिसरण को बहुत जल्दी हिट कर सकते हैं।

उपरोक्त दोनों के लिए, संभवतः अधिकतम थ्रूपुट के लिए 10GbE लिंक पर केंद्रीय भंडार को रखना एक अच्छा विचार होगा।

एक वैकल्पिक एक पुश- rsync है, जहां यह केंद्रीय रेपो से आपके सर्वर पर अपडेट पुश करने के लिए चलाया जाता है। यह उपर्युक्त में से किसी एक के रूप में उपवास नहीं करेगा, लेकिन आपके आंतरिक बैंडविड्थ के लिए अधिक अनुकूल होगा। बेहतर गति के लिए विभाजित सीमा पर धकेलने वाले कई मेजबानों का उपयोग करें।


1

rdist आपके लिए काम कर सकता है।


1
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
मार्क हेंडरसन

-1

[संबद्ध] Kwatee ( http://www.kwatee.net ) का उपयोग करके आप जितने चाहें उतने सर्वर पर तैनात कर सकते हैं। नियुक्तियाँ वृद्धिशील हैं (केवल संशोधित फ़ाइलों को प्रेषित किया जाता है) और इसे बहुत जल्दी से समानांतर किया जा सकता है। आप Kwatee को लोड-बैलेंसर होने के लिए भी कॉन्फ़िगर कर सकते हैं ताकि सर्वर अपडेट के दौरान LB से हटा दिए जाएं और फिर उसे फिर से डाला जा सके। परिनियोजन मापदंडों को कॉन्फ़िगर करने के लिए एक ग्राफिकल इंटरफ़ेस है और फिर तैनाती जीयूआई के माध्यम से मैन्युअल रूप से ट्रिगर की जा सकती है या पायथन कमांड का उपयोग करके स्वचालित हो सकती है।


नीचे वोट की व्याख्या करने के लिए देखभाल?
मैक

1
सिर्फ अपने उत्पाद को पिंप करने के लिए साइट के साथ जुड़ने से अक्सर इधर-उधर खिसक जाते हैं।
सिजयोज़

भले ही, ईमानदार और पारदर्शी जवाब के लिए इतना
मैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.