GlusterFS और Windows के साथ SPOFS से बचना


10

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

हमारी फाइल-फ्लो इस तरह काम करती है:

GlusterFS दस्तावेज़ प्रवाह

  1. फ़ाइलों को एक लिनक्स प्रोसेसिंग नोड द्वारा पढ़ा जाता है।
  2. फाइलों पर कार्रवाई की जाती है।
  3. परिणाम (छोटे हो सकते हैं, काफी बड़े हो सकते हैं) वापस GlusterFS मात्रा में लिखे जाते हैं जैसा कि उन्होंने किया है।
    • परिणामों को इसके बजाय डेटाबेस में लिखा जा सकता है, या विभिन्न आकारों की कई फाइलें शामिल हो सकती हैं।
  4. प्रसंस्करण नोड कतार और 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स्थिर और उत्पादन के उपयोग के लिए तैयार है और आपके द्वारा दिए गए लिंक में पहला वाक्य दूसरा अमान्य बनाता है क्योंकि अगर कभी अपडेट नहीं किया गया था। मैं इसे स्थापित करने की योजना बना रहा था, लेकिन इससे पहले कि मैं इसके आसपास होता मैंने नौकरियों को लगभग खिड़कियों से मुक्त वातावरण में बदल दिया।
स्वेन

आप किस संस्करण का उपयोग कर रहे हैं?
टॉम ओ'कॉनर

@ TomO'Connor टैग के अनुसार, विंडोज 7. हालाँकि, सर्वर 2008 R2 कुछ बिंदु पर वहाँ होगा।
sysadmin1138

मुझे लगता है कि साइगविन सवाल से बाहर है?
टॉम ओ'कॉनर

जवाबों:


5

मुझे GlusterFS पसंद है। दरअसल, मैं GlusterFS को पसंद करता हूं। जब तक आप इसे कुछ समर्पित बैंडविड्थ सब कुछ ठीक दे सकते हैं।

GlusterFS के बारे में सबसे अच्छी चीजों में से एक NFS के साथ इसका उपयोग कर रहा है। हाल ही में विंडोज 7 और 2k8R2 पर NFS के साथ काम करने वाली आश्चर्यजनक चीजों में से एक है ।

यहाँ मैं क्या करूँगा।

  1. 2 GlusterFS सर्वर सेट करें जो NFS को निर्यात कर सकते हैं।
  2. उनके बीच दिल की धड़कन की कड़ी स्थापित करें।
  3. शायद दिल की धड़कन / पेसमेकर की तरह कुछ तैनात करें?
  4. अपने Gluster Nodes के बीच एक वर्चुअल IP (VIP) सेट करें।
  5. वीआईपी के आईपी पते का उपयोग करके विंडोज बॉक्सन के मैप किए गए नेटवर्क ड्राइव को कनेक्ट करें।
  6. सब कुछ आप संभवतः कल्पना कर सकते हैं का परीक्षण करें।

क्लस्टरिंग सांबा डरावना लगता है, और यहां तक ​​कि अगर आप ऐसा करते हैं, तो सांबा में अभी भी कुछ विंडोज़ नेटवर्क में मज़बूती से व्यवहार करने की क्षमता का अभाव है (सभी जो NT4 डोमेन संगतता, कभी भी उस अतीत को प्राप्त करने में सक्षम नहीं लगते हैं)।

मुझे लगता है कि क्योंकि प्रत्येक चमक नोड वितरित, प्रतिकृति मोड में है, तो आपको सैद्धांतिक रूप से या तो कनेक्ट करने में सक्षम होना चाहिए और इसे अपने डेटा को चारों ओर ले जाने के बारे में चिंता करने की अनुमति देना चाहिए। नतीजतन, दिल की धड़कन वह चीज होनी चाहिए जो पुनर्निर्देशन और नियंत्रण करती है जो आप से बात कर रहे हैं।

अपने के लिए के रूप में

  • फाइल-काउंट्स 10 में से लाखों में हो सकते हैं।

मेरा सुझाव है कि आप XFS का उपयोग अंतर्निहित फ़ाइल सिस्टम के रूप में करते हैं, क्योंकि यह बड़े फाइल सिस्टम के साथ बहुत अच्छा है, और GlusterFS के तहत समर्थित है


मैं वर्तमान में XFS का उपयोग कर रहा हूँ! हमने प्रारंभिक निगलना समारोह को संभालने के लिए कुछ समय पहले NFS3 को देखा था लेकिन यह यूनिकोड समर्थन की कमी के कारण असाध्य साबित हुआ। यह विंडोज पर एनएफएस सर्वर के साथ था। "" 2012.xls "सही रेंडर नहीं करेगा, और यह बहुत महत्वपूर्ण है। लेकिन ... मुझे नहीं पता था कि 7 / R2 के बारे में, और जांच के लायक है!
sysadmin1138

इसलिए मैंने एक परीक्षण चलाया। दुर्भाग्य से, यह अच्छे परिणाम नहीं लौटाए (प्रश्न पर अपडेट देखें)। यूनिकोड समस्या द्वि-दिशात्मक है जो ऐसा लगता है।
sysadmin1138

मैथुन। मैं विचारों से बाहर हूँ, फिर। मुझे आश्चर्य है कि अगर आप सांबा को एक वीआईपी के पीछे रख सकते हैं।
टॉम ओ'कॉनर

कार्यसमूह हाँ, डोमेन (जो हम उपयोग कर रहे हैं) नहीं। इस प्रकार, मेरी समस्या।
sysadmin1138

दूसरी ओर, फाइल-नाम रखने वाले डेवलपर्स के साथ बातचीत करने के बाद मैं उतनी महत्वपूर्ण नहीं हूं जितनी मुझे उम्मीद थी। जाहिर है, जब तक हम उन्हें पहले चरण में प्राप्त कर सकते हैं (निगलना) डेटाबेस नामों का ट्रैक रखेगा। इसलिए एनएफएस यहां एक वैध विकल्प है (एक बार जब हमें सही विंडोज संस्करण मिलते हैं)।
sysadmin1138

1

शायद आप हा समाधान में सोच सकते हैं ... प्रमाणीकरण के लिए एक एलडीएपी का उपयोग करें (इसे आपके द्वारा वांछित कई एलडीएपी सर्वरों के रूप में दोहराया जा सकता है) और एसएमबी सेवाओं को सुनने के लिए एक आईपी रखें।

यह आईपी मुख्य सर्वर पर फ्लोटिंग होगा। जब यह डाउन हो जाता है तो हार्टबीट दूसरे सर्वर पर सेवाएं शुरू कर सकती है।

इस सर्वर में ग्लूस्टरफ़ेट्स के लिए एक माउंट पॉइंट होगा, और फिर सभी डेटा होंगे।

यह एक संभव समाधान है और इसे प्रबंधित करना इतना आसान है ...

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