MagmaFS
ম্যাগমা হল একটি ডিস্ট্রিবিউটেড ফাইল সিস্টেম যা একটি ডিস্ট্রিবিউটেড হ্যাশ টেবিলের উপর ভিত্তি করে তৈরি, যা সি-তে লেখা, যা ফিউজ ব্যবহার করে লিনাক্স এবং বিএসডি কার্নেলের সাথে সামঞ্জস্যপূর্ণ। পরিভাষা এবং মৌলিক নীতিগুলি ম্যাগমা একটি টিসিপি/আইপি নেটওয়ার্ক দ্বারা আন্তঃসংযুক্ত বেশ কয়েকটি হোস্টকে লাভা রিং নামে একটি সাধারণ স্টোরেজ স্পেস গঠনের জন্য আবদ্ধ করে। প্রতিটি পোষককে (বা নোড) ভালকানো বলা হয়। প্রতিটি ভল্কানো একটি সাধারণ কী স্পেসের একটি অংশ হোস্ট করে, যা দুটি SHA1 কী দ্বারা সীমাবদ্ধ। প্রতিটি ভল্কানো তথ্যের অপ্রয়োজনীয়তা নিশ্চিত করার জন্য পূর্ববর্তী নোডের মূল স্থানকে মিরর করার দায়িত্বে রয়েছে। প্রতিটি কী স্টোরেজ স্পেসের ভিতরে এক বা একাধিক বস্তুর প্রতিনিধিত্ব করতে পারে। এই বস্তুগুলিকে ফ্লেয়ার বলা হয়। ম্যাগমা বিভিন্ন ধরনের বস্তু সংরক্ষণ করতে পারেঃ ফাইল, ডিরেক্টরি, প্রতীকী লিঙ্ক, ব্লক এবং চরিত্রের যন্ত্র, ফিফো পাইপ। প্রতিটি বস্তু একটি প্রজ্বলের সাথে আবদ্ধ এবং তদ্বিপরীত। উপরে তালিকাভুক্ত ছয়টির মধ্যে যে কোনও ধরনের স্ফুলিঙ্গকে পথ এবং হ্যাশ কী-এর মতো সমস্ত স্ফুলিঙ্গের সাধারণ কিছু মৌলিক বৈশিষ্ট্য দ্বারা বর্ণনা করা হয়েছে। কিন্তু ছয়টি প্রকারের প্রত্যেকটির নিজস্ব নির্দিষ্ট বৈশিষ্ট্যও রয়েছে। উদাহরণস্বরূপ, ডিরেক্টরি ফ্লেয়ারে কিছু নির্দিষ্ট তথ্য থাকবে যা প্রতীকী লিঙ্কগুলির ক্ষেত্রে প্রযোজ্য নয়। শুধুমাত্র সাধারণ তথ্য সহ একটি ফ্লেয়ারকে আনকাস্ট বলা হয় এবং একটি সম্পূর্ণ ফ্লেয়ারকে কাস্ট বলা হয়। একটি আনকাস্ট ফ্লেয়ারে তথ্যের উপর কাজ করার জন্য পর্যাপ্ত তথ্য থাকে না, তবে ভলকানো নোডের মধ্যে এক ধরণের অস্বচ্ছ ধারক হিসাবে সরানোর জন্য পর্যাপ্ত তথ্য থাকে। সহজে চলাচলযোগ্য হওয়ার জন্য, ডিরেক্টরি সহ প্রতিটি ধরনের ফ্লেয়ারকে দুটি ফাইল সেট হিসাবে পুনরায় প্রয়োগ করা হয়েছে, প্রথমটিতে ফ্লেয়ার তথ্য (মেটাডেটা) এবং দ্বিতীয়টিতে ফ্লেয়ার সামগ্রী রয়েছে। লাভা রিং জুড়ে ফ্লেয়ার সরানোকে লোড ব্যালেন্সিং বলা হয় এবং সর্বোত্তম কর্মক্ষমতা প্রদানের প্রয়াসে নোডগুলির মধ্যে লোডের বৈষম্যকে কাজে লাগানোর জন্য করা হয়। ফ্লেয়ার সিস্টেম ম্যাগমার অভ্যন্তরীণ ইঞ্জিনকে ফ্লেয়ার সিস্টেম বলা হয় এবং এটি একটি স্তরযুক্ত স্ট্যাক হিসাবে প্রয়োগ করা হয়। স্তর পরিবহনের উদাহরণ হিসাবে ম্যাগমা _ এম. কে. ডি. আই. আর () ব্যবহার করা যেতে পারে। এই অনুচ্ছেদে ধরে নেওয়া হবে যে/দৃষ্টান্ত নামে একটি ডিরেক্টরি তৈরি করা হবে। ম্যাগমা _ এমকেডিআর () পাবলিক এপিআই স্তরের অংশ। এটি একটি নতুন ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়, যেমনটি স্ট্যান্ডার্ড লিবসি প্রতিরূপ mkdir () দ্বারা করা হয়। ম্যাগমা _ এম. কে. ডি. আই. আর () প্রথমে অনুরোধটিকে স্থানীয়ভাবে পরিচালনা করা যায় কিনা বা নেটওয়ার্ক ক্রিয়াকলাপের প্রয়োজন হবে কিনা তা নির্ধারণ করার জন্য রুট করে। রাউটিং সম্পাদনের জন্য, পাথ/উদাহরণটি সংশ্লিষ্ট SHA1 হ্যাশ কী 81f762fd59d88768b06b8e9de56aef8a95962045-এ অনুবাদ করা হয়। যদি রাউটিং অন্য ভালকানো নোডের সাথে যোগাযোগের প্রয়োজনীয়তা নির্ধারণ করে, অনুরোধটি এই স্তরটি ছেড়ে যাবে না। দূরবর্তী নোডে ক্রিয়াকলাপের প্রবাহ অব্যাহত রেখে, লাভা নেটওয়ার্ক স্তর অনুরোধটি চাবিটির মালিকানাধীন নোডে প্রেরণ করবে। রাউটিং হল লাভা নেটওয়ার্ক স্তরের অর্ধেক ভূমিকা, যার মধ্যে রয়েছে নেটওয়ার্ক পর্যবেক্ষণ এবং ভলকানো নোড তৈরি, আপডেট এবং অপসারণ। স্থানীয় বা দূরবর্তী অনুরোধ উভয়ই, শেষ ধাপটি ফ্লেয়ার স্তর দ্বারা সঞ্চালিত হয়। ক্যাশের ভিতরে 81f762fd59d88768b06b8e9de56aef8a95962045 কী-এর সঙ্গে সম্পর্কিত ফ্লেয়ার অনুসন্ধান করা হবে। যদি পাওয়া না যায়, এটি ডিস্ক থেকে তৈরি এবং লোড করা হবে, যদি ইতিমধ্যে বিদ্যমান থাকে। ফলস্বরূপ জ্বলন্ত বস্তুর উপর প্রথমে অনুমতি পরীক্ষা পরীক্ষা প্রয়োগ করা হয়। যদি পরিচালনার অনুমতি দেওয়া হয়, প্রাথমিক অনুরোধটি পূরণ করা হয়ঃ এই উদাহরণে, ফ্লেয়ারটি ডিরেক্টরিতে নিক্ষেপ করা হয় যদি এটি ইতিমধ্যে না থাকে এবং ডিস্কে সংরক্ষণ করা থাকে। রাউটিং যেহেতু প্রতিটি ভল্কানো নোডে সম্পূর্ণ নেটওয়ার্ক টপোলজি উপলব্ধ থাকে, তাই রাউটিং কেবল নোডের কী-স্পেসের সাথে ফ্লেয়ার কীগুলির মেলানো এবং ফ্লেয়ার ধারণকারী নোডটি খুঁজে বের করার বিষয়। ম্যাগমা ফাইল সিস্টেমের অভ্যন্তরে বিতরণকৃত ডিরেক্টরিতেও নেটওয়ার্ক টপোলজি সংরক্ষণ করা হয়। কিছু পরিবর্তন হয়েছে কিনা তা জানতে ভলকানো নোডগুলি পর্যায়ক্রমে ডিরেক্টরির বিষয়বস্তুর বিরুদ্ধে তাদের তথ্য পরীক্ষা করতে পারে। নোডগুলি পর্যায়ক্রমে ডিরেক্টরির ভিতরে তাদের নিজস্ব তথ্য সংরক্ষণ করে। লোড ব্যালেন্সিং প্রতিটি ভল্কানো নোডে কিছু প্যারামিটার থাকে যা বুট করার সময় ঘোষণা করা হয়, যেমন ব্যান্ডউইথ এবং স্টোরেজ উপলব্ধ। ব্যালেন্সার নামে একটি পৃথক থ্রেড নোডের ওভারলোডিং বা আন্ডারলোডিং এড়াতে কী বিতরণ করার জন্য নিবেদিত। প্রতিটি নোডের একটি গতিশীল লোড মান যুক্ত থাকে, যা সূত্র দ্বারা গণনা করা হয়ঃ লগারিদমিক স্কেলে গণনা করা নোড কী লোড কোথায়; নোড ব্যান্ডউইথ এবং গড় ব্যান্ডউইথ; নোড স্টোরেজ এবং গড় স্টোরেজ ম্যাগমা সফ্টওয়্যার বিতরণ ম্যাগমা ম্যাগমাড নামে একটি সার্ভার এবং mount.magma নামে একটি ক্লায়েন্ট আকারে বিতরণ করা হয়। ম্যাগমা সার্ভার ডি. এইচ. টি নোড এবং ম্যাগমা ক্লায়েন্টের মধ্যে আন্তঃসংযোগ পরিচালনা করে। ফ্লেয়ার সিস্টেম একটি নেটওয়ার্ক ইভেন্ট লুপ প্রদান করে যা আগত সংযোগগুলি গ্রহণ করে। তিন ধরনের সংযোগ গ্রহণ করা হয়। ফ্লেয়ারে কাজ করার জন্য একটি ফ্লেয়ার প্রোটোকল সংযোগ ব্যবহার করা হয়ঃ ফাইল এবং ডিরেক্টরি খোলা, পড়া এবং লেখা, তথ্য পাওয়া এবং ক্রিয়াকলাপের ভারসাম্য বজায় রাখার সময় ফ্লেয়ার বিনিময় করা। ফ্লেয়ার প্রোটোকল একটি বাইনারি প্রোটোকল। একটি ইন্টারনোড প্রোটোকল সংযোগ ডিএইচটি তথ্য বিনিময় করতে এবং নতুন নোডগুলিতে যোগ দিতে ব্যবহৃত হয়। ইন্টারনোড প্রটোকল একটি বাইনারি প্রটোকল। একটি কনসোল প্রোটোকল সংযোগ প্রশাসকদের লাভা নেটওয়ার্ক অনুসন্ধান করতে, ডিরেক্টরির বিষয়বস্তু তালিকাভুক্ত করার এবং ফাইলের বিষয়বস্তু দেখানোর মতো সহজ ক্রিয়াকলাপ সম্পাদন করতে এবং অবশেষে নোডগুলিতে কিছু প্রশাসনিক কমান্ড জারি করতে ব্যবহৃত হয় (একটি প্রশাসনিক কমান্ডের একটি উদাহরণ হলঃ বন্ধ করা)। কনসোল প্রোটোকল হল একটি টেক্সট ভিত্তিক প্রোটোকল যা টেলনেটের মাধ্যমে অ্যাক্সেসযোগ্য। ম্যাগমা ক্লায়েন্ট ম্যাগমা ক্লায়েন্ট ফুসের উপর ভিত্তি করে তৈরি, যা লিনাক্স এবং বিএসডি কার্নেলের সাথে সামঞ্জস্যপূর্ণ। ম্যাগমা ক্লায়েন্ট একটি নিকটবর্তী ম্যাগমা সার্ভারের সাথে যোগাযোগ করতে এবং পরিচালনা করতে একটি ফ্লেয়ার প্রোটোকল সংযোগ ব্যবহার করে। নেটওয়ার্ক টপোলজি এবং ফ্লেয়ারের অবস্থান ক্লায়েন্টদের কাছে সম্পূর্ণ স্বচ্ছ। ক্লায়েন্ট কেবল একটি সার্ভারকে সঠিক পদ্ধতিতে প্রশ্ন করে কারণ সমস্ত তথ্য শুধুমাত্র সেই হোস্টে অবস্থিত ছিল। ম্যাগমা ক্লায়েন্টের জন্য একটি ক্রিপ্টোগ্রাফিক স্তর পরিকল্পনা করা হয়েছে, যা ফাইলের বিষয়বস্তুগুলিকে শুধুমাত্র এনক্রিপশন করার অনুমতি দেয়। ক্লায়েন্টের দিক থেকে ক্রিপ্টোগ্রাফি বাস্তবায়নের কারণ হল স্কেলাবিলিটি (গণনামূলক অনুরোধের একই হারে গণনামূলক শক্তি বৃদ্ধি পাবে) এবং ক্রিপ্টোগ্রাফিক কী গোপনীয়তা (কী বা পাসফ্রেজ কখনও সার্ভারে পৌঁছবে না)। বিকল্প এন. এফ. এস ইন্টারফেস ম্যাগমা ক্লায়েন্টের বিকল্প হিসাবে, যা শুধুমাত্র লিনাক্স এবং বি. এস. ডি কার্নেল দ্বারা সমর্থিত, ম্যাগমা সার্ভার অন্যান্য ইউনিসেসের জন্য একটি এন. এফ. এস ইন্টারফেস দেওয়ার পরিকল্পনা করেছে। যেহেতু এন. এফ. এস একটি প্রতিষ্ঠিত মান, তাই কোনও নতুন বৈশিষ্ট্য যুক্ত করা যাবে না। উদাহরণস্বরূপ, এন. এফ. এস-এর মাধ্যমে ক্লায়েন্ট মাউন্টিং ম্যাগমা শেয়ারের জন্য ক্রিপ্টোগ্রাফিক স্তর অনুপলব্ধ থাকবে। বাহ্যিক লিঙ্ক-ম্যাগমাএফএস হোম সাইট। ইউজারস্পেস ফাইল সিস্টেম বিতরণকৃত ডেটা স্টোরেজ নেটওয়ার্ক ফাইল সিস্টেম