सवाल सॉफ़्टवेयर-आधारित साझा फ़ाइल संग्रहण के लिए क्या उपयोग करें?


स्थिति: लोड बैलेंसर स्थापित करना

वर्तमान में हमारे पास हमारे डेटा केंद्र में जोड़े में हमारे सभी सर्वर (चल रहे सेंटोस लिनक्स) हैं: प्रत्येक सर्वर में मिररिंग सर्वर होता है। हम इस समय किसी भी लोड संतुलन को नियोजित नहीं करते हैं, इसलिए सर्वर ए सभी ट्रैफिक प्राप्त करता है और जब यह विफल हो जाता है (हार्डवेयर या सॉफ़्टवेयर) हम सर्वर बी पर सर्वर एपी एड्रेस को कॉन्फ़िगर करके सर्वरबी पर तुरंत स्विच कर सकते हैं। हम MySQL मास्टर / मास्टर प्रतिकृति का उपयोग कर रहे हैं (हालांकि हम वर्तमान सेट-अप के लिए मास्टर / गुलाम प्रतिकृति का उपयोग कर सकते हैं) और rsync को vhost फ़ाइलों को सिंक में रखने के लिए (सर्वर ए सर्वर से समन्वयित करता है)।

यह हमारे लिए अच्छा काम कर रहा है, लेकिन यह काफी अक्षम है क्योंकि आपके हार्डवेयर का 50% कोई मशीन विफल होने तक कुछ भी नहीं कर रहा है। हम सर्वर-जोड़े के सामने लोड बैलेंसर्स लगाने के बारे में सोच रहे हैं ताकि हम भार को दोनों मशीनों में विभाजित कर सकें और क्लस्टर के अतिरिक्त सर्वर भी जोड़ सकें।

समस्या: फ़ाइल भंडारण साझा करना 

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

प्रश्न: सॉफ़्टवेयर-आधारित साझा फ़ाइल संग्रहण के लिए सबसे अच्छा समाधान क्या है?

तो, मैं एक अलग समाधान की तलाश में हूं। कृपया ध्यान दें कि मैं अधिक हार्डवेयर नहीं जोड़ना चाहता (इसलिए कोई NAS / SAN समाधान नहीं)। यह भी ध्यान रखें कि हमें प्रति क्लस्टर की कम मात्रा में संग्रहण (500GB से नीचे) की आवश्यकता है और सभी सर्वर एक ही स्थानीय नेटवर्क पर हैं। हमारे पास जगह पर एक सभ्य बैक-अप समाधान है (बैक-अप हर 3 घंटे चलते हैं)।

मैं देख रहा हूँ केडंप और ऐसा लगता है कि हमारी स्थिति अच्छी तरह से फिट है, लेकिन मुझे इसका कोई अनुभव नहीं है। क्या डीआरबीडी हमारे लिए जाने का रास्ता है? कृपया इस और अन्य समान समाधानों के साथ अनुभव साझा करें। किसी भी नुकसान के बारे में सोचने के लिए? क्या मैं सही रास्ते पर हूं? कृपया मुझे ज्ञान दो :)


5
2017-11-01 09:59


मूल




जवाब:


डीआरबीडी बहुत अच्छा है।

अच्छी चीजें:

  • यह डेटा को दोहराने पर एक शानदार काम करता है
  • डीआरबीडी ने कुछ मामलों में आपदा को रोका है, जहां यह पता चला है कि वॉल्यूम पहले से ही दूसरे नोड पर लगाया गया था, जो कि SAN से प्राप्त कच्चे वॉल्यूम हमें बताने में असमर्थ हैं।
  • दिल की धड़कन पहले से ही डीआरबीडी के लिए बहुत अच्छा समर्थन है।

चुनौतियाँ:

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

कई नोड्स पर "एक ही" फाइल सिस्टम को आरोहित करने के लिए, हम एनएफएस पर वापस जाते रहते हैं, भले ही हम इसके लिए विभिन्न समाधानों का परीक्षण करते रहें। डीआरबीडी के शीर्ष पर EXT4 के शीर्ष पर एनएफएस उत्पादन में होने के साथ मुझे कोई समस्या नहीं है। मैं डेटाबेस फाइल सिस्टम के साथ ऐसा करने की हिम्मत नहीं करता, लेकिन यह wwwroot के लिए ठीक है।


2
2017-11-01 10:20



आपके उत्तर के लिए धन्यवाद। क्या मैं सही ढंग से समझता हूं कि मैं एक सर्वर को 'एनएफएस होस्ट' बनाता हूं, और वह अन्य सर्वर उस एनएफएस शेयर से पढ़ता है? तो प्रत्येक सर्वर में डीआरबीडी ब्लॉक-डिवाइस होता है, प्रत्येक EXT4 फाइल सिस्टम के साथ स्वरूपित होता है और एक सर्वर एक एनएफएस वॉल्यूम साझा करता है, और अन्य सर्वर इस वॉल्यूम से कनेक्ट होते हैं? - vincent.io
आप केवल एक बार डीआरबीडी-ब्लॉक डिवाइस को प्रारूपित करते हैं - क्योंकि फाइल सिस्टम को दोहराया जाएगा (ब्लॉक स्तर पर)। एनएफएस-सर्वर वास्तव में इस ब्लॉक डिवाइस को घुमाने वाला एकमात्र होना चाहिए - और आप इस सर्वर को स्थानांतरित करने के लिए दिल की धड़कन (या समान) का उपयोग कर सकते हैं। फिर दोनों सर्वर फिर से nfs-share माउंट करते हैं। - Kvisle
मेरी अज्ञानता क्षमा करें, लेकिन मुझे डर है कि मैं इसे पूरी तरह से समझ नहीं पा रहा हूं। 2-सर्वर सेट-अप में मेरे पास एनएफएस-शेयर दोनों को बढ़ाना 2 एनएफएस-सर्वर होगा? या सिर्फ 1 एनएफएस-सर्वर और 2 एनएफएस-शेयर बढ़ रहे हैं? यदि 1 सर्वर नीचे चला जाता है, तो मुझे अन्य (शेष) सर्वर पर NFS-server सेट अप करने की आवश्यकता है? - vincent.io
दोनों सर्वर एनएफएस-शेयर को माउंट करते हैं / एसआरवी / दर्पण पर माउंट करते हैं। एनएफएस-सर्वर निर्यात / एसआरवी / फेलओवर / दर्पण, जो डीआरबीडी-वॉल्यूम का माउंट पॉइंट भी है। फिर आपने एनएफएस-सर्वर को नियंत्रित करने के लिए दिल की धड़कन स्थापित की है, इस सेवा से जुड़े आईपी पते और डीआरबीडी-ब्लॉक-डिवाइस के साथ। इस मामले में - आपके पास स्वचालित विफलता है, और हमेशा दोनों सर्वरों पर फ़ाइलों तक पहुंच है। - Kvisle
आह हाँ, मैं समझता हूँ। बहुत बहुत धन्यवाद! - vincent.io


डीआरबीडी रीयल टाइम में डेटा पारदर्शी रूप से दर्पण करता है। कृपया कुछ बिंदुओं के रूप में ध्यान दें:

  • आपको दोहरी प्राथमिक मोड के लिए क्लस्टर फ़ाइल सिस्टम की आवश्यकता है। OCFS2 केवल समर्थित CentOS 5. यदि आप CentOS 6 का उपयोग कर रहे हैं, तो आपको इसका उपयोग करना चाहिए GFS2 बजाय।
  • हालांकि सभी सर्वर एक ही स्थानीय नेटवर्क पर हैं, फिर भी मैं एक क्रॉसओवर केबल से कनेक्ट करने की सलाह देते हैं।
  • पता लगाने के लिए आपके पास निगरानी तंत्र होना चाहिए विभाजित करें दिमाग, उदाहरण के लिए: नागियोस check_drbd लगाना।
  • मत भूलना मापो और अनुकूलन केडंप प्रदर्शन

यदि आप 3 या 4 नोड्स सेट करना चाहते हैं, तो इस पर एक नज़र डालें:


1
2017-11-01 10:53



हाय, आपके उत्तर के लिए धन्यवाद। आपकी टिप्पणी के बारे में "यदि आपके पास केवल दो बैकएंड सर्वर हैं, तो आपका डेटा अक्सर अपडेट किया जाता है": क्या यह अधिक सर्वर के साथ मान्य रहेगा? तो क्या हम सुरक्षित रूप से 2 और सर्वर जोड़ सकते हैं (4 का क्लस्टर बनाना)? - vincent.io
मैंने 2 से अधिक नोड्स के साथ प्रयास नहीं किया है। - quanta


आपने क्लस्टर प्रति दो (या अधिक) सेवाओं को क्यों सेट नहीं किया है और डिफ़ॉल्ट रूप से प्रत्येक पक्ष को चलाने की अनुमति नहीं दी है?


0
2018-01-01 20:43