वितरित संग्रहण फ़ाइल सिस्टम - उत्पाद का उपयोग करने के लिए कौन सा एक / तैयार है?


31

Hadoop और CouchDB के साथ पूरे ब्लॉग और संबंधित समाचारों में एक वितरित-दोष-सहिष्णु भंडारण (इंजन) है जो वास्तव में काम करता है।

  • CouchDB वास्तव में किसी भी वितरण सुविधाओं का निर्माण नहीं करता है, मेरे ज्ञान के लिए गोंद स्वचालित रूप से प्रविष्टियों को वितरित करने के लिए या यहां तक ​​कि पूरे डेटाबेस बस गायब है।
  • Hadoop बहुत व्यापक रूप से इस्तेमाल किया जा रहा है - कम से कम यह अच्छा प्रेस हो जाता है, लेकिन अभी भी विफलता का एक ही बिंदु है: The NameNode। इसके अलावा, यह केवल FUSE के माध्यम से माउंट करने योग्य है, मैं समझता हूं कि एचडीएफएस वास्तव में हडोप का मुख्य लक्ष्य नहीं है
  • GlusterFS की साझा अवधारणा कुछ भी नहीं है, लेकिन हाल ही में मैंने कई पोस्ट पढ़ी हैं जो मुझे इस विचार तक ले जाती हैं कि यह काफी स्थिर नहीं है
  • चमक में एक एकल बिंदु विफलता भी है क्योंकि यह एक समर्पित मेटाडेटा सर्वर का उपयोग करता है
  • सिफ को पसंद का खिलाड़ी लगता है, लेकिन होमपेज बताता है कि यह अभी भी अल्फा चरणों में है।

तो सवाल यह है कि वितरित फ़ाइल सिस्टम में निम्नलिखित सुविधा सेट है (कोई विशेष आदेश नहीं):

  • POSIX संगत
  • नोड्स के आसान जोड़ / हटाने
  • साझा-कुछ नहीं अवधारणा
  • सस्ते हार्डवेयर (AMD Geode या VIA ईडन क्लास प्रोसेसर) पर चलता है
  • प्रमाणीकरण / प्राधिकरण निर्मित में
  • एक नेटवर्क फाइल सिस्टम (मैं इसे अलग-अलग मेजबानों पर एक साथ माउंट करने में सक्षम होना चाहता हूं)

अच्छा लगा:

  • स्थानीय रूप से सुलभ फ़ाइलें: मैं एक मानक स्थानीय फ़ाइल सिस्टम (ext3 / xfs / जो भी हो) के साथ विभाजन को माउंट करने के लिए एक नोड नीचे ले जा सकता हूं और फिर भी फ़ाइलों तक पहुंच सकता हूं

मैं होस्ट किए गए अनुप्रयोगों की तलाश नहीं कर रहा हूं , बल्कि कुछ ऐसा है जो मुझे हमारे प्रत्येक हार्डवेयर बक्से में से 10 जीबी लेने की अनुमति देगा और हमारे नेटवर्क में उपलब्ध भंडारण को आसानी से मेजबानों की भीड़ पर माउंट किया जा सकता है।


तो, आपने क्या किया? अपने वर्तमान सेटअप के बारे में सुनना दिलचस्प होगा।
मैटबियानको

लगता है कि आपने इसे लिखने के बाद से सक्रिय / निष्क्रिय एमडीएस जोड़ा है, इसलिए इसे दूसरे रूप की आवश्यकता हो सकती है।
pjz

मेरे अनुभव में, GlusterFS स्थिर रहा है, लेकिन प्रदर्शन बहुत खराब है। बेहतर प्रदर्शन के लिए, आपको गंभीरता से उच्च-अंत हार्डवेयर की आवश्यकता होगी - मूल रूप से RDMA। सभी सर्वर और GlusterFS क्लाइंट मशीन के बीच विलंबता महत्वपूर्ण बात है।
मिकको रेंटालिनेन

जवाबों:


9

मुझे लगता है कि आपको पोसिक्स की आवश्यकता को छोड़ना होगा, बहुत कम सिस्टम इसे लागू करते हैं - वास्तव में यहां तक ​​कि एनएफएस भी वास्तव में नहीं लगता (ताले आदि) और इसमें कोई अतिरेक नहीं है।

कोई भी सिस्टम जो सिंक्रोनस प्रतिकृति का उपयोग करता है, वह ग्लेशियल रूप से धीमा होने वाला है; किसी भी प्रणाली में अतुल्यकालिक प्रतिकृति (या "अंतिम स्थिरता") है, जो POSIX नियमों का उल्लंघन करने वाली है और "पारंपरिक" फाइल सिस्टम की तरह व्यवहार नहीं करती है।


क्या आप किसी भी फाइल सिस्टम के बारे में जानते हैं जो अंततः सुसंगतता और सख्त स्थिरता दोनों का समर्थन करता है, शायद यह दोनों के लिए ट्यून किया जा सकता है और 2 काउंट बना सकता है?
CMCDragonkai

16

मैं बाकी लोगों से बात नहीं कर सकता, लेकिन आप 'वितरित भंडारण इंजन' और 'वितरित फ़ाइल सिस्टम' के बीच भ्रमित हो सकते हैं। वे एक ही चीज़ नहीं हैं, उन्हें एक ही चीज़ के लिए गलत नहीं किया जाना चाहिए, और वे एक ही चीज़ कभी नहीं होंगे। एक फाइलसिस्टम एक रास्ता है जहाँ चीजें हार्ड ड्राइव पर स्थित होती हैं। हडूप की तरह एक भंडारण इंजन एक कुंजी द्वारा पहचाने गए डेटा का एक हिस्सा रखने का एक तरीका है। वैचारिक रूप से, ज्यादा अंतर नहीं। समस्या यह है कि एक फाइलसिस्टम एक भंडारण इंजन की निर्भरता है ... आखिरकार, इसे ब्लॉक डिवाइस पर लिखने का एक तरीका चाहिए, है ना?

वह सब एक तरफ, मैं एक उत्पादन वातावरण में वितरित फाइल सिस्टम के रूप में ocfs2 के उपयोग के लिए बोल सकता हूं। यदि आप गंभीर विवरण नहीं चाहते हैं, तो इस पंक्ति के बाद पढ़ना बंद कर दें: यह थोड़े शांत है, लेकिन इसका मतलब यह है कि आप जितना सोचते हैं उससे अधिक डाउनटाइम हो सकता है।

हम पिछले कुछ वर्षों से एक उत्पादन वातावरण में ocfs2 चला रहे हैं। यह ठीक है, लेकिन बहुत सारे अनुप्रयोगों के लिए यह महान नहीं है। आपको वास्तव में अपनी आवश्यकताओं को देखना चाहिए और पता लगाना चाहिए कि वे क्या हैं - आप पा सकते हैं कि आपके द्वारा किए गए दोषों की तुलना में आपके पास बहुत अधिक अक्षांश हैं।

एक उदाहरण के रूप में, ocfs2 में क्लस्टर में प्रत्येक मशीन के लिए एक जर्नल है जो विभाजन को माउंट करने वाला है। तो मान लें कि आपको चार वेब मशीनें मिल गई हैं, और जब आप mkfs.ocfs2 का उपयोग करके उस विभाजन को बनाते हैं, तो आप निर्दिष्ट करते हैं कि खुद को विकसित करने के लिए कुछ कमरे देने के लिए कुल छह मशीनें होंगी। उन पत्रिकाओं में से प्रत्येक स्थान लेता है, जो डिस्क पर आपके द्वारा संग्रहीत डेटा की मात्रा को कम कर देता है। अब, मान लें कि आपको सात मशीनों को स्केल करने की आवश्यकता है। उस स्थिति में, आपको पूरा नीचे ले जाने की आवश्यकता हैक्लस्टर (यानी सभी ocfs2 विभाजन को अनमाउंट करें) और एक अतिरिक्त जर्नल बनाने के लिए ट्यूनफ़ोसॉक 2 उपयोगिता का उपयोग करें, बशर्ते कि वहाँ स्थान उपलब्ध हो। तब और उसके बाद ही आप क्लस्टर में सातवीं मशीन जोड़ सकते हैं (जो आपको तब तक क्लस्टर के बाकी हिस्सों में एक टेक्स्ट फ़ाइल वितरित करने की आवश्यकता होती है जब तक आप उपयोगिता का उपयोग नहीं कर रहे हैं), सब कुछ वापस लाएं, और फिर सभी सात पर विभाजन को माउंट करें मशीनों।

देखो मेरा मतलब है? यह उच्च उपलब्धता वाला माना जाता है, जिसका अर्थ 'हमेशा ऑनलाइन' माना जाता है, लेकिन वहीं आपको डाउनटाइम का एक गुच्छा मिला है ... और भगवान मना करें कि आप डिस्क स्थान के लिए भीड़ हैं। आप यह देखना चाहते हैं कि क्या होता है जब आप ocfs2 को भीड़ देते हैं।

ध्यान रखें कि evms, जो कि ocfs2 क्लस्टर्स को प्रबंधित करने के लिए 'पसंदीदा' तरीका हुआ करता था, क्लॉद्म और lvm2 के पक्ष में डोडो पक्षी का रास्ता बन गया है। (और evms के लिए अच्छी लकीर के फकीर।) इसके अलावा, दिल की धड़कन जल्दी से ओपनैस / पेसमेकर स्टैक के पक्ष में एक ज़ोंबी परियोजना में बदलने जा रही है। (इसके अलावा: ocfs2 के लिए प्रारंभिक क्लस्टर कॉन्फ़िगरेशन करते समय, आप 'pcmk' को क्लस्टर इंजन के रूप में हृदय की धड़कन के रूप में निर्दिष्ट कर सकते हैं। नहीं, यह प्रलेखित नहीं है।)

इसके लायक क्या है, हम पेसमेकर द्वारा प्रबंधित nfs में वापस चले गए हैं, क्योंकि डाउनटाइम के कुछ सेकंड या पेसमेकर के रूप में कुछ गिराए गए tcp पैकेट एक मशीन में एक nfs शेयर माइग्रेट करते हैं, जो कि हम बेसिक के लिए देख रहे थे, की तुलना में तुच्छ है ocfs2 का उपयोग करते समय मशीनों को जोड़ने जैसे साझा भंडारण संचालन।


2
बस यह टिप्पणी करना चाहता था कि यह OCFS2 / पेसमेकर बनाम NFS के साथ भी मेरा अनुभव है। OCFS2 को कुछ समय के लिए संकुल डेटा स्टोर के रूप में आज़माने के बाद मैंने पाया कि इसमें बहुत कमी है। इस बीच हमारा हा एनएफएस सिस्टम एक आकर्षण की तरह चल रहा है।
कामिल किसिल

1
OCFS2 निश्चित रूप से वह नहीं है जो मैं देख रहा हूं। वितरित होने से मुझे भंडारण के केंद्रीय उदाहरण से कोई मतलब नहीं है, बल्कि कुछ ऐसा है जहां मैं आसानी से नोड्स को जोड़ / हटा सकता हूं जो "क्लस्टर" के बाकी हिस्सों के साथ स्टोरेज प्रदान करते हैं
सर्वरहोटर

2
चूँकि मैं अभी भी इस उत्तर को प्राप्त कर रहा हूं, इसलिए मुझे यह जोड़ना चाहिए कि हम उत्पादन में ग्लस्टरएफएस का उपयोग कर रहे हैं, एनएफ़एस के प्रतिस्थापन के रूप में। हालाँकि, हम VM डिस्क छवियों, डेटाबेस स्टोरेज फ़ाइलों (sqlite या myisam या जो कुछ भी) को स्टोर नहीं करते हैं, या अन्य फाइलें जो glusterfs पर अक्सर बदलने के लिए प्रवण होती हैं क्योंकि यह प्रतिकृति लैश का कारण बनती है। हम स्थानीय रूप से LVM में VM होस्ट पर स्टोर करते हैं और फेलओवर साइटों को वितरित करने के लिए DRBD का उपयोग करते हैं, या अंतर्निहित प्रतिकृति का उपयोग करते हैं।
कार्ल काटज़के

3

मैं आपकी आवश्यकताओं को गलत समझ सकता हूं, लेकिन क्या आपने http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems को देखा है


1
यह वह जगह है जहां मैंने शुरू किया था, मेरी आशा ऐसे लोगों से कुछ संकेत प्राप्त करने की थी जिन्होंने पहले से ही एक वितरित भंडारण बुनियादी ढांचे को तैनात किया था
सर्वरहोर

3

बस अपने € 0.02 को यहाँ फेंकने के लिए: OpenAFS क्या आप नहीं चाहते हैं?


3

Chirp http://www.cse.nd.edu/~ccl/software/chirp/ और तोता http://www.cse.nd.edu/~ccl/software/parrot/ पर एक नज़र डालें


मैं उन कोशिश करूँगा, आवरण दृष्टिकोण संभव लगता है, लेकिन काफी इष्टतम नहीं है। ठीक है, मैं देखता हूँ कि यह कैसे पता चलता है
सर्वरहोल्ड

3

कैसे के बारे में Xtreemfs ? संस्करण 1.4 (नवंबर 2012) को उत्पादन गुणवत्ता माना जाता है।

यह POSIX संगत है और इसमें बकाया स्वचालित खराबी सहनशीलता है।


2

चमक अतिरेक के लिए सक्रिय / निष्क्रिय विन्यास में कई मेटाडेटा-स्टोरों के लिए अनुमति देता है, इसलिए विफलता का एक भी बिंदु नहीं है।

OCFS2 भी देखने लायक हो सकता है।

ध्यान दें कि कई एक साथ नेटवर्क एक्सेस के लिए आवश्यकता को काटने से iSCSI या cif या nfs जैसी किसी चीज़ पर स्विच करना संभव हो जाता है। नकारात्मक पक्ष यह है कि आपको प्रत्येक सर्वर के लिए अपने uberArray के टुकड़ों को ve कैरी आउट ’करना होगा, जिसमें स्थान की आवश्यकता हो।


2

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

यह टिप्पणी करते हुए कि क्या आपको वास्तव में POSIX शब्दार्थ की आवश्यकता है, एक अच्छी शुरुआत है। गैर-पॉसिक्स "फाइलसिस्टम" शब्दार्थ बहुत अधिक लचीला हो सकता है, जिससे बहुत अधिक विश्वसनीय प्रणाली हो सकती है।

यदि यह एक विरासत अनुप्रयोग है, तो मुझे वास्तव में आश्चर्य है कि एक आधुनिक वितरित फाइल सिस्टम को सबसे अच्छा समाधान क्यों माना जा सकता है।

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


1

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


दुर्भाग्य से मुझे वास्तव में POSIX शब्दार्थ की आवश्यकता है। हमारे पास बहुत सारी "विरासत ऐप" हैं जो सामान को स्थानीय फाइल सिस्टम में स्टोर करती हैं। सभी को फिर से देखना निश्चित रूप से किसी भी बजट के बाहर है
सर्वर

मुझे संदेह है कि आपको अपनी कुछ अन्य आवश्यकताओं को छोड़ना होगा। मैं GlusterFS, Luster, OCFS2, GFS को देख रहा हूं, लेकिन मुझे संदेह है कि आपको एक साझा मिलेगा, जिसमें कुछ भी नहीं है।
डेविड पशले

en.wikipedia.org/wiki/… वितरित फ़ाइल सिस्टम को सूचीबद्ध करता है, लेकिन उनमें से बहुत कम POSIX हैं।
डेविड पशले

Eons पहले, मैं AFS (अब OpenAFS क्या है) के एक संस्करण का उपयोग करता था। यह काम किया लेकिन जटिल था और यह quirks का अपना सेट था।
Jauder Ho

1

चमक में एक एकल बिंदु विफलता भी है क्योंकि यह एक समर्पित मेटाडेटा सर्वर का उपयोग करता है

चमक को विफलता का समर्थन करने के लिए डिज़ाइन किया गया है और एक एमडीएस / एमडीटी / ओएसएस में कई पते हो सकते हैं, जिस पर संपर्क किया जा सकता है, दिल की धड़कन का उपयोग सेवा को स्थानांतरित करने के लिए किया जा सकता है।

ध्यान रखें कि कुछ हाल के संस्करणों में ऐसे मुद्दे हैं जहां अनमाउंट काम करता है, लेकिन डिस्क के लिए अभी भी उड़ान में डेटा है, हालांकि डबल माउंट संरक्षण में मदद करनी चाहिए (इसके अलावा जो दिलचस्प मुद्दे हैं) के अलावा ...।


1

मैं आपको MooseFS (दोष-सहिष्णु, स्केलिंग-आउट, नेटवर्क वितरित फ़ाइल सिस्टम) का उपयोग करने की सलाह देता हूं । यह POSIX अनुपालन है और 1.6 रिलीज MooseFS के बाद से एक सरल, NFS की तरह, प्रमाणीकरण / प्राधिकरण प्रदान करता है। हार्डवेयर आवश्यकताओं को भी देखें ।

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