हमारे पास एक GlusterFS क्लस्टर है जिसे हम अपने प्रोसेसिंग फ़ंक्शन के लिए उपयोग करते हैं। हम इसमें विंडोज को एकीकृत करना चाहते हैं, लेकिन सिंगल-पॉइंट-ऑफ-फेल्योर से बचने के लिए कुछ समस्या पैदा कर रहे हैं जो कि एक सांबा सर्वर है जो ग्लस्टरएफएस वॉल्यूम की सेवा कर रहा है।
हमारी फाइल-फ्लो इस तरह काम करती है:
- फ़ाइलों को एक लिनक्स प्रोसेसिंग नोड द्वारा पढ़ा जाता है।
- फाइलों पर कार्रवाई की जाती है।
- परिणाम (छोटे हो सकते हैं, काफी बड़े हो सकते हैं) वापस GlusterFS मात्रा में लिखे जाते हैं जैसा कि उन्होंने किया है।
- परिणामों को इसके बजाय डेटाबेस में लिखा जा सकता है, या विभिन्न आकारों की कई फाइलें शामिल हो सकती हैं।
- प्रसंस्करण नोड कतार और GOTO 1 से एक और काम करता है।
ग्लस्टर महान है क्योंकि यह एक वितरित मात्रा प्रदान करता है, साथ ही तत्काल प्रतिकृति भी। आपदा लचीलापन अच्छा है! हमें यह पसंद है।
हालाँकि, जैसा कि विंडोज में एक मूल GlusterFS क्लाइंट नहीं है, हमें अपने Windows- आधारित प्रोसेसिंग नोड्स के लिए फाइल स्टोर के साथ बातचीत करने के लिए किसी तरह की आवश्यकता होती है। GlusterFS प्रलेखन राज्यों तरह से विंडोज पहुँच प्रदान करने के लिए एक के ऊपर एक सांबा सर्वर स्थापित करने के लिए है कि GlusterFS मात्रा रखा होगा। इस तरह एक फ़ाइल प्रवाह के लिए नेतृत्व करेंगे:
यह मेरे लिए एकल-बिंदु-विफलता की तरह दिखता है।
एक विकल्प सांबा को क्लस्टर करना है , लेकिन यह इस समय अस्थिर कोड पर आधारित प्रतीत होता है और इस प्रकार चल रहा है।
इसलिए मैं दूसरी विधि की तलाश कर रहा हूं।
हमारे द्वारा फेंके गए डेटा के प्रकार के बारे में कुछ मुख्य विवरण:
- मूल फ़ाइल-आकार कुछ KB से लेकर दसियों GB तक हो सकते हैं।
- प्रोसेस्ड फाइल-साइज कुछ केबी से एक जीबी या दो तक कहीं भी हो सकते हैं।
- कुछ प्रक्रियाएं, जैसे कि .zip या .tar में आर्काइव फ़ाइल में खुदाई करने से बहुत कुछ लिख सकता है क्योंकि निहित फाइलें फ़ाइल-स्टोर में आयात की जाती हैं।
- फाइल-काउंट्स 10 में से लाखों में हो सकते हैं।
यह वर्कलोड "स्टैटिक वर्कुनिट साइज़" Hadoop सेटअप के साथ काम नहीं करता है। इसी तरह, हमने S3- शैली के ऑब्जेक्ट-स्टोर का मूल्यांकन किया है, लेकिन उनमें कमी पाई गई।
हमारा आवेदन रूबी में लिखा गया है, और हमारे पास विंडोज नोड्स पर साइगविन पर्यावरण है। यह हमारी मदद कर सकता है।
जिन विकल्पों पर मैं विचार कर रहा हूं, उनमें से एक सरल HTTP सेवा है जिसमें सर्वर का एक समूह है, जिसमें GlusterFS वॉल्यूम माउंट है। चूँकि हम ग्लस्टर के साथ जो कुछ भी कर रहे हैं वह अनिवार्य रूप से GET / PUT संचालन है, जो HTTP-आधारित फ़ाइल-स्थानांतरण विधि में आसानी से हस्तांतरणीय लगता है। उन्हें एक लोडबेलर जोड़ी के पीछे रखें और विंडोज नोड्स उनके छोटे नीले दिल की सामग्री को HTTP PUT कर सकते हैं।
मुझे नहीं पता कि GlusterFS सुसंगतता कैसे बनी रहेगी । HTTP- प्रॉक्सी लेयर के बीच पर्याप्त विलंबता का परिचय तब होता है जब प्रोसेसिंग नोड रिपोर्ट करता है कि यह लेखन के साथ किया गया है और जब यह वास्तव में GlusterFS वॉल्यूम पर दिखाई दे रहा है, तो मुझे चिंता है कि बाद में प्रोसेसिंग चरणों के बारे में मुझे फ़ाइल लेने की कोशिश नहीं होगी इसे खोजें। मुझे पूरा यकीन है कि direct-io-mode=enable
माउंट-विकल्प का उपयोग करने से मदद मिलेगी, लेकिन मुझे यकीन नहीं है कि अगर यह पर्याप्त है । सुसंगतता में सुधार के लिए मुझे और क्या करना चाहिए?
या मुझे पूरी तरह से एक और विधि का पालन करना चाहिए?
जैसा कि टॉम ने नीचे बताया, एनएफएस एक और विकल्प है। इसलिए मैंने एक परीक्षण चलाया। चूंकि उपर्युक्त फाइलों में क्लाइंट-सप्लाई किए गए नाम हैं, जिन्हें हमें रखने की आवश्यकता है, और किसी भी भाषा में आ सकते हैं, हमें फाइल-नामों को संरक्षित करने की आवश्यकता है। इसलिए मैंने इन फाइलों के साथ एक निर्देशिका बनाई:
जब मैं इसे सर्वर 2008 R2 सिस्टम से एनएफएस क्लाइंट स्थापित के साथ माउंट करता हूं, तो मुझे इस तरह एक निर्देशिका लिस्टिंग मिलती है:
स्पष्ट रूप से, यूनिकोड संरक्षित नहीं किया जा रहा है। इसलिए एनएफएस मेरे लिए काम नहीं कर रहा है।
ctdb
स्थिर और उत्पादन के उपयोग के लिए तैयार है और आपके द्वारा दिए गए लिंक में पहला वाक्य दूसरा अमान्य बनाता है क्योंकि अगर कभी अपडेट नहीं किया गया था। मैं इसे स्थापित करने की योजना बना रहा था, लेकिन इससे पहले कि मैं इसके आसपास होता मैंने नौकरियों को लगभग खिड़कियों से मुक्त वातावरण में बदल दिया।