MagmaFS
میگما ایک تقسیم شدہ فائل سسٹم ہے جو تقسیم شدہ ہیش ٹیبل پر مبنی ہے، جو سی میں لکھا گیا ہے، جو ایف یو ایس ای کا استعمال کرتے ہوئے لینکس اور بی ایس ڈی دانے کے ساتھ مطابقت رکھتا ہے۔ اصطلاحات اور بنیادی اصول میگما کئی میزبانوں کو ٹی سی پی/آئی پی نیٹ ورک کے ذریعے آپس میں جڑے ہوئے ایک مشترکہ اسٹوریج کی جگہ بنانے کے لیے باندھتا ہے جسے لاوا رنگ کہا جاتا ہے۔ ہر میزبان (یا نوڈ) کو ولکینو کہا جاتا ہے۔ ہر وولکینو ایک مشترکہ کلیدی جگہ کے ایک حصے کی میزبانی کرتا ہے، جسے دو SHA1 چابیاں محدود کرتی ہیں۔ ڈیٹا کی بے کارگی کو یقینی بنانے کے لیے ہر وولکینو پچھلے نوڈ کی کلیدی جگہ کی عکاسی کرنے کا بھی ذمہ دار ہوتا ہے۔ ہر کلید اسٹوریج کی جگہ کے اندر ایک یا زیادہ اشیاء کی نمائندگی کر سکتی ہے۔ ان اشیا کو شعلہ کہتے ہیں۔ میگما اشیاء کی ایک مختلف رینج کو محفوظ کر سکتا ہے: فائلیں، ڈائریکٹریز، علامتی لنکس، بلاک اور کریکٹر ڈیوائسز، ایف آئی ایف او پائپ۔ ہر شے ایک شعلہ سے جڑی ہوتی ہے اور اس کے برعکس۔ اوپر درج چھ میں کسی بھی قسم کی بھڑک اٹھنا کچھ بنیادی خصوصیات کے ذریعہ بیان کیا گیا ہے جو تمام بھڑک اٹھنے والی چیزوں میں مشترک ہیں، جیسے راستہ اور ہیش کلید۔ لیکن چھ اقسام میں سے ہر ایک کی اپنی مخصوص خصوصیات بھی ہیں۔ مثال کے طور پر، ڈائرکٹری فلیئرز میں کچھ مخصوص معلومات ہوں گی جو علامتی لنکس پر لاگو نہیں ہوتی ہیں۔ صرف عام معلومات کے ساتھ بھڑک اٹھنا ان کاسٹ کہلاتا ہے جبکہ مکمل بھڑک اٹھنا کاسٹ کہلاتا ہے۔ ایک غیر کاسٹ شعلہ ڈیٹا پر کام کرنے کے لیے کافی معلومات پر مشتمل نہیں ہوتا ہے، لیکن اس میں اتنی معلومات ہوتی ہے کہ اسے وولکینو نوڈس کے درمیان ایک قسم کے غیر واضح کنٹینر کے طور پر منتقل کیا جا سکے۔ آسانی سے حرکت پذیر ہونے کے لیے، ڈائریکٹریز سمیت ہر قسم کے شعلے کو دو فائلوں کے سیٹ کے طور پر دوبارہ نافذ کیا گیا ہے، پہلا جس میں شعلے کی معلومات (میٹا ڈیٹا) ہوتی ہے اور دوسرا جس میں شعلے کا مواد ہوتا ہے۔ لاوا رنگ کے پار شعلوں کو منتقل کرنے کو لوڈ بیلنسنگ کہا جاتا ہے اور یہ بہترین کارکردگی فراہم کرنے کی کوشش میں نوڈس کے درمیان لوڈ کی عدم مساوات کا فائدہ اٹھانے کے لیے کیا جاتا ہے۔ شعلہ نظام میگما کے اندرونی انجن کو شعلہ نظام کہا جاتا ہے اور اسے پرتوں والے اسٹیک کے طور پر لاگو کیا جاتا ہے۔ میگما _ ایم کے ڈی آر () کو لیئر ٹریورزنگ کی مثال کے طور پر استعمال کیا جا سکتا ہے۔ اس پیراگراف میں یہ فرض کیا جائے گا کہ/مثال نامی ایک ڈائرکٹری بنائی جائے گی۔ میگما _ ایم کے ڈی آر () عوامی اے پی آئی پرت کا حصہ ہے۔ یہ ایک نئی ڈائرکٹری بنانے کے لیے استعمال ہوتا ہے، جیسا کہ معیاری لبک ہم منصب mkdir () کے ذریعے کیا جاتا ہے۔ میگما _ ایم کے ڈی آر () درخواست کو پہلے یہ فیصلہ کرنے کے لیے روٹ کرتا ہے کہ آیا اسے مقامی طور پر منظم کیا جا سکتا ہے یا نیٹ ورک آپریشنز کی ضرورت ہوگی۔ روٹنگ انجام دینے کے لیے، راستے/مثال کا ترجمہ متعلقہ SHA1 ہیش کلید 81f762fd59d88768b06b8e9de56aef8a95962045 میں کیا جاتا ہے۔ اگر روٹنگ کسی دوسرے وولکینو نوڈ سے رابطہ کرنے کی ضرورت کا تعین کرتی ہے، تو درخواست اس پرت کو نہیں چھوڑے گی۔ لاوا نیٹ ورک لیئر درخواست کو کلید کے مالک نوڈ پر بھیج دے گی، جس سے دور دراز نوڈ پر کارروائیوں کا سلسلہ جاری رہے گا۔ روٹنگ لاوا نیٹ ورک پرت کا آدھا کردار ہے، جس میں نیٹ ورک کی نگرانی اور ولکینو نوڈس کی تخلیق، اپ ڈیٹ اور ہٹانا بھی شامل ہے۔ مقامی یا دور دراز کی درخواست دونوں ہونے کی وجہ سے، آخری مرحلہ فلیئر پرت کے ذریعے انجام دیا جاتا ہے۔ کیش کے اندر کلیدی 81f762fd59d88768b06b8e9de56aef8a95962045 سے متعلق شعلہ تلاش کیا جائے گا۔ اگر نہیں ملا تو اسے ڈسک سے بنایا اور لوڈ کیا جائے گا، اگر پہلے سے موجود ہے۔ نتیجے میں بھڑکنے والی چیز پر پہلے اجازت کی جانچ کے ٹیسٹ لگائے جاتے ہیں۔ اگر کام کرنے کی اجازت دی جاتی ہے، تو ابتدائی درخواست پوری ہو جاتی ہے: اس مثال میں، شعلہ کو ڈائرکٹری میں ڈال دیا جاتا ہے اگر یہ پہلے سے نہیں تھا اور ڈسک میں محفوظ کیا جاتا ہے۔ روٹنگ چونکہ ہر وولکینو نوڈ میں مکمل نیٹ ورک ٹوپولوجی دستیاب ہوتی ہے، اس لیے روٹنگ صرف شعلہ چابیاں نوڈس کلیدی جگہ کے ساتھ ملانے اور شعلہ رکھنے والے نوڈ کو تلاش کرنے کی بات ہے۔ نیٹ ورک ٹوپولوجی کو میگما فائل سسٹم کے اندر تقسیم شدہ ڈائرکٹری میں بھی محفوظ کیا جاتا ہے۔ وولکینو نوڈس وقتا فوقتا ڈائرکٹری کے مندرجات کے خلاف اپنی معلومات کی جانچ کر سکتے ہیں تاکہ یہ معلوم ہو سکے کہ آیا کچھ تبدیل ہوا ہے۔ نوڈس بھی وقتا فوقتا ڈائریکٹری کے اندر اپنی معلومات محفوظ کرتے ہیں۔ لوڈ بیلنسنگ ہر وولکینو نوڈ میں کچھ پیرامیٹرز ہوتے ہیں جن کا اعلان بوٹ پر کیا جاتا ہے، جیسے بینڈوتھ اور اسٹوریج دستیاب۔ ایک علیحدہ دھاگہ جسے بیلنس کہا جاتا ہے نوڈس اوور لوڈنگ یا انڈر لوڈنگ سے بچنے کے لیے چابیاں تقسیم کرنے کے لیے وقف ہے۔ ہر نوڈ میں ایک متحرک لوڈ ویلیو منسلک ہوتی ہے، جس کا حساب فارمولے کے ذریعے کیا جاتا ہے: جہاں نوڈ کلیدی لوڈ کا حساب لوگرتھمک پیمانے پر کیا جاتا ہے ؛ نوڈ بینڈوتھ ہے اور اوسط بینڈوتھ ہے ؛ نوڈ اسٹوریج ہے اور اوسط اسٹوریج میگما سافٹ ویئر کی تقسیم میگما کو میگماڈ نامی سرور اور mount.magma نامی کلائنٹ کی شکل میں تقسیم کیا جاتا ہے۔ میگما سرور میگما سرور ڈی ایچ ٹی نوڈس اور میگما کلائنٹس کے درمیان باہمی رابطے کا انتظام کرتا ہے۔ فلیئر سسٹم ایک نیٹ ورک ایونٹ لوپ فراہم کرتا ہے جو آنے والے کنکشن کو قبول کرتا ہے۔ تین قسم کے کنکشن قبول کیے جاتے ہیں۔ شعلوں پر کام کرنے کے لیے ایک شعلہ پروٹوکول کنکشن کا استعمال کیا جاتا ہے: فائلیں اور ڈائرکٹری کھولنا، پڑھنا اور لکھنا، معلومات حاصل کرنا اور کارروائیوں کو متوازن کرنے کے دوران شعلوں کا تبادلہ کرنا۔ فلیئر پروٹوکول ایک بائنری پروٹوکول ہے۔ انٹرنوڈ پروٹوکول کنکشن کا استعمال ڈی ایچ ٹی کی معلومات کے تبادلے اور نئے نوڈس میں شامل ہونے کے لیے کیا جاتا ہے۔ انٹرنوڈ پروٹوکول ایک بائنری پروٹوکول ہے۔ کنسول پروٹوکول کنکشن کا استعمال منتظمین کو لاوا نیٹ ورک سے پوچھ گچھ کرنے، ڈائریکٹری کے مندرجات کو درج کرنے اور فائل کا مواد دکھانے جیسے آسان آپریشن انجام دینے اور آخر میں نوڈس کو کچھ انتظامی کمانڈ جاری کرنے کے لیے کیا جاتا ہے (انتظامی کمانڈ کی ایک مثال ہے: شٹ ڈاؤن)۔ کنسول پروٹوکول ایک ٹیکسٹ پر مبنی پروٹوکول ہے جو ٹیل نیٹ کے ذریعے قابل رسائی ہے۔ میگما کلائنٹ میگما کلائنٹ FUSE پر مبنی ہے، جو لینکس اور بی ایس ڈی دانے کے ساتھ مطابقت رکھتا ہے۔ میگما کلائنٹ قریبی میگما سرور سے رابطہ کرنے اور اس کے ساتھ کام کرنے کے لیے فلیئر پروٹوکول کنکشن کا استعمال کرتا ہے۔ نیٹ ورک ٹوپولوجی اور فلیئر لوکیشن کلائنٹس کے لیے مکمل طور پر شفاف ہے۔ کلائنٹ صرف ایک سرور سے بالکل ٹھیک طریقے سے استفسار کرتا ہے کیونکہ تمام معلومات صرف اس میزبان پر موجود تھیں۔ میگما کلائنٹ کے لیے ایک کرپٹوگرافک پرت کی منصوبہ بندی کی گئی ہے، جو فائل کے مندرجات کو صرف خفیہ کاری کی اجازت دیتی ہے۔ کلائنٹ کی طرف سے کرپٹوگرافی کو نافذ کرنا اسکیل ایبلٹی (کمپیوٹیشنل پاور کمپیوٹیشنل درخواست کی اسی شرح سے بڑھے گی) اور کرپٹوگرافک کلیدی پرائیویسی (چابیاں یا پاسفریس کبھی بھی سرور تک نہیں پہنچیں گے) کی وجہ سے ہے۔ میگما کلائنٹ کے متبادل کے طور پر، جسے صرف لینکس اور بی ایس ڈی دانے سپورٹ کرتے ہیں، میگما سرور دوسرے یونائسز کے لیے این ایف ایس انٹرفیس پیش کرنے کا ارادہ رکھتا ہے۔ چونکہ این ایف ایس ایک قائم شدہ معیار ہے، اس لیے کوئی نئی خصوصیات شامل نہیں کی جا سکتی ہیں۔ مثال کے طور پر، این ایف ایس کے ذریعے میگما شیئرز کو نصب کرنے والے کلائنٹ کے لیے کرپٹوگرافک پرت دستیاب نہیں ہوگی۔ بیرونی لنکس-میگما ایف ایس ہوم سائٹ۔ یوزر اسپیس فائل سسٹمز تقسیم شدہ ڈیٹا اسٹوریج نیٹ ورک فائل سسٹمز