MagmaFS
मैग्मा एक वितरित फ़ाइल प्रणाली है जो एक वितरित हैश तालिका पर आधारित है, जिसे सी में लिखा गया है, जो एफयूएसई का उपयोग करके लिनक्स और बीएसडी कर्नेल के साथ संगत है। शब्दावली और बुनियादी सिद्धांत मैग्मा एक टीसीपी/आईपी नेटवर्क द्वारा आपस में जुड़े कई मेजबानों को एक सामान्य भंडारण स्थान बनाने के लिए बांधता है जिसे लावा रिंग कहा जाता है। प्रत्येक मेजबान (या नोड) को वल्कानो कहा जाता है। प्रत्येक वल्कानो एक सामान्य कुंजी स्थान के एक हिस्से को होस्ट करता है, जिसे दो SHA1 कुंजियों द्वारा सीमांकित किया जाता है। प्रत्येक वल्कानो डेटा अतिरेक सुनिश्चित करने के लिए पिछले नोड के प्रमुख स्थान को प्रतिबिंबित करने का भी प्रभारी होता है। प्रत्येक कुंजी भंडारण स्थान के अंदर एक या अधिक वस्तु का प्रतिनिधित्व कर सकती है। इन वस्तुओं को फ्लेयर्स कहा जाता है। मैग्मा वस्तुओं की एक अलग श्रृंखला को संग्रहीत कर सकता हैः फाइलें, निर्देशिकाएं, प्रतीकात्मक लिंक, ब्लॉक और चरित्र उपकरण, फीफो पाइप। प्रत्येक वस्तु एक ज्वाला से बंधी होती है और इसके विपरीत। ऊपर सूचीबद्ध छह में किसी भी प्रकार की भड़क को कुछ बुनियादी गुणों द्वारा वर्णित किया गया है जो सभी भड़क के लिए सामान्य हैं, जैसे पथ और हैश कुंजी। लेकिन छह प्रकारों में से प्रत्येक के अपने विशिष्ट गुण भी हैं। उदाहरण के लिए, डायरेक्टरी फ्लेयर्स में कुछ विशिष्ट जानकारी होगी जो प्रतीकात्मक लिंक पर लागू नहीं होती है। केवल सामान्य जानकारी वाली ज्वाला को अनकास्ट कहा जाता है जबकि एक पूर्ण ज्वाला को कास्ट कहा जाता है। एक अनकास्ट फ्लेयर में डेटा पर काम करने के लिए पर्याप्त जानकारी नहीं होती है, लेकिन इसमें वल्कानो नोड्स के बीच एक प्रकार के अपारदर्शी कंटेनर के रूप में स्थानांतरित करने के लिए पर्याप्त जानकारी होती है। आसानी से चलने योग्य होने के लिए, निर्देशिकाओं सहित प्रत्येक प्रकार के फ्लेयर को दो फ़ाइल सेट के रूप में फिर से लागू किया गया है, जिसमें पहले में फ्लेयर जानकारी (मेटाडेटा) और दूसरे में फ्लेयर सामग्री है। लावा रिंग के पार फ्लेयर्स को स्थानांतरित करना लोड बैलेंसिंग कहा जाता है और इसे सर्वोत्तम प्रदर्शन प्रदान करने के प्रयास में नोड्स के बीच लोड असमानताओं का लाभ उठाने के लिए किया जाता है। फ्लेयर सिस्टम मैग्मा के आंतरिक इंजन को फ्लेयर सिस्टम कहा जाता है और इसे एक स्तरित ढेर के रूप में लागू किया जाता है। मैग्मा _ एमकेडीआर () का उपयोग परत पार करने के उदाहरण के रूप में किया जा सकता है। इस पैराग्राफ में यह माना जाएगा कि/उदाहरण नामक एक निर्देशिका बनाई जाएगी। मैग्मा _ एमकेडीआर () सार्वजनिक एपीआई परत का हिस्सा है। इसका उपयोग एक नई निर्देशिका बनाने के लिए किया जाता है, जैसा कि मानक लिबसी समकक्ष mkdir () द्वारा किया जाता है। मैग्मा _ एम. के. डी. आई. आर. () पहले अनुरोध को यह तय करने के लिए रूट करता है कि क्या इसे स्थानीय रूप से प्रबंधित किया जा सकता है या नेटवर्क संचालन की आवश्यकता होगी। रूटिंग करने के लिए, पथ/उदाहरण का अनुवाद संबंधित SHA1 हैश कुंजी 81f762fd59d88768b06b8e9de56aef8a95962045 में किया जाता है। यदि रूटिंग किसी अन्य वल्कानो नोड से संपर्क करने की आवश्यकता को निर्धारित करता है, तो अनुरोध इस परत को नहीं छोड़ेगा। लावा नेटवर्क परत दूरस्थ नोड पर संचालन के प्रवाह को जारी रखते हुए अनुरोध को कुंजी के स्वामित्व वाले नोड को अग्रेषित करेगी। राउटिंग लावा नेटवर्क परत की आधी भूमिका है, जिसमें नेटवर्क निगरानी और वल्कानो नोड्स का निर्माण, अद्यतन और निष्कासन भी शामिल है। स्थानीय या दूरस्थ अनुरोध दोनों होने के कारण, अंतिम चरण फ्लेयर परत द्वारा किया जाता है। कैश के अंदर कुंजी 81f762fd59d88768b06b8e9de56aef8a95962045 के अनुरूप फ्लेयर की खोज की जाएगी। यदि नहीं पाया जाता है, तो इसे डिस्क से बनाया और लोड किया जाएगा, यदि पहले से मौजूद है। परिणामस्वरूप भड़कने वाली वस्तु पर पहले अनुमति जाँच परीक्षण लागू किए जाते हैं। यदि संचालन की अनुमति दी जाती है, तो प्रारंभिक अनुरोध पूरा हो जाता हैः इस उदाहरण में, फ्लेयर को निर्देशिका में डाल दिया जाता है यदि यह पहले से नहीं था और डिस्क में सहेजा जाता है। रूटिंग चूँकि प्रत्येक वल्कानो नोड में पूर्ण नेटवर्क टोपोलॉजी उपलब्ध होती है, रूटिंग केवल नोड्स की-स्पेस के साथ फ्लेयर कीज़ का मिलान करने और फ्लेयर को पकड़े हुए नोड का पता लगाने की बात है। नेटवर्क टोपोलॉजी को मैग्मा फाइल सिस्टम के अंदर वितरित निर्देशिका में भी सहेजा जाता है। वल्कानो नोड्स समय-समय पर निर्देशिका की सामग्री के खिलाफ अपनी जानकारी की जांच कर सकते हैं ताकि यह पता चल सके कि क्या कुछ बदल गया है। नोड्स भी समय-समय पर निर्देशिका के अंदर अपनी जानकारी संग्रहीत करते हैं। लोड बैलेंसिंग प्रत्येक वल्कानो नोड में कुछ मापदंड होते हैं जो बूट के समय घोषित किए जाते हैं, जैसे बैंडविड्थ और भंडारण उपलब्ध होता है। एक अलग धागा जिसे बैलेंसर कहा जाता है, नोड्स के ओवरलोडिंग या अंडरलोडिंग से बचने के लिए चाबियों को वितरित करने के लिए समर्पित है। प्रत्येक नोड में एक गतिशील भार मूल्य जुड़ा होता है, जिसकी गणना सूत्र द्वारा की जाती हैः लॉगरिदमिक पैमाने पर गणना की गई नोड कुंजी भार कहाँ है; नोड बैंडविड्थ है और औसत बैंडविड्थ है; नोड भंडारण है और औसत भंडारण मैग्मा सॉफ्टवेयर वितरण मैग्मा को मैग्माड नामक सर्वर और mount.magma नामक क्लाइंट के रूप में वितरित किया जाता है। मैग्मा सर्वर डीएचटी नोड्स और मैग्मा क्लाइंट्स के बीच परस्पर संचार का प्रबंधन करता है। फ्लेयर सिस्टम एक नेटवर्क इवेंट लूप प्रदान करता है जो आने वाले कनेक्शनों को स्वीकार करता है। तीन प्रकार के संबंध स्वीकार किए जाते हैं। एक फ्लेयर प्रोटोकॉल कनेक्शन का उपयोग फ्लेयर्स पर काम करने के लिए किया जाता हैः फ़ाइलों और निर्देशिका को खोलना, पढ़ना और लिखना, जानकारी प्राप्त करना और संतुलन संचालन के दौरान फ्लेयर्स का आदान-प्रदान करना। फ्लेयर प्रोटोकॉल एक द्विआधारी प्रोटोकॉल है। डी. एच. टी. जानकारी के आदान-प्रदान और नए नोड्स में शामिल होने के लिए एक इंटरनोड प्रोटोकॉल कनेक्शन का उपयोग किया जाता है। इंटरनोड प्रोटोकॉल एक द्विआधारी प्रोटोकॉल है। एक कंसोल प्रोटोकॉल कनेक्शन का उपयोग प्रशासकों को लावा नेटवर्क से पूछताछ करने, निर्देशिका सामग्री को सूचीबद्ध करने और फ़ाइल सामग्री दिखाने जैसे सरल कार्यों को करने और अंत में नोड्स को कुछ प्रशासनिक आदेश जारी करने के लिए किया जाता है (एक प्रशासनिक आदेश का एक उदाहरण हैः बंद करना)। कंसोल प्रोटोकॉल एक पाठ आधारित प्रोटोकॉल है जो टेलनेट के माध्यम से सुलभ है। मैग्मा क्लाइंट मैग्मा क्लाइंट FUSE पर आधारित है, जो लिनक्स और BSD कर्नेल के साथ संगत है। मैग्मा क्लाइंट एक निकट मैग्मा सर्वर के साथ संपर्क करने और संचालित करने के लिए एक फ्लेयर प्रोटोकॉल कनेक्शन का उपयोग करता है। नेटवर्क टोपोलॉजी और फ्लेयर लोकेशन ग्राहकों के लिए पूरी तरह से पारदर्शी है। क्लाइंट बस एक सर्वर से सटीक तरीके से पूछताछ करता है क्योंकि सभी जानकारी केवल उस होस्ट पर स्थित थी। मैग्मा क्लाइंट के लिए एक क्रिप्टोग्राफिक परत की योजना बनाई गई है, जो फ़ाइल सामग्री को केवल एन्क्रिप्शन की अनुमति देती है। क्लाइंट पक्ष पर क्रिप्टोग्राफी को लागू करना मापनीयता (कम्प्यूटेशनल शक्ति कम्प्यूटेशनल अनुरोध की समान दर पर बढ़ेगी) और क्रिप्टोग्राफिक कुंजी गोपनीयता (कुंजी या पासफ़्रेज़ कभी भी सर्वर तक नहीं पहुंचेंगे) के कारण है। वैकल्पिक एन. एफ. एस. इंटरफेस मैग्मा क्लाइंट के विकल्प के रूप में, जो केवल लिनक्स और बी. एस. डी. कर्नेल द्वारा समर्थित है, मैग्मा सर्वर अन्य यूनिसेज के लिए एक एन. एफ. एस. इंटरफेस प्रदान करने की योजना बना रहा है। चूँकि एन. एफ. एस. एक स्थापित मानक है, इसलिए कोई नई सुविधाएँ नहीं जोड़ी जा सकती हैं। उदाहरण के लिए, एन. एफ. एस. के माध्यम से क्लाइंट माउंटिंग मैग्मा शेयरों के लिए क्रिप्टोग्राफिक परत अनुपलब्ध होगी। बाहरी लिंक-मैग्माएफएस होम साइट। यूजरस्पेस फाइल सिस्टम वितरित डेटा भंडारण नेटवर्क फाइल सिस्टम