دانا کو فعال کرنے کے لیے Linux 6.2 RAID 5/6 کے نفاذ میں "رائٹ ہول" کے مسئلے کو حل کرنے کے لیے Btrfs میں بہتری کی تجویز پیش کرتا ہے۔ مسئلہ اس حقیقت سے پیدا ہوتا ہے کہ اگر لکھنے کے دوران لکھنے میں ناکامی واقع ہوتی ہے تو، ابتدائی طور پر یہ تعین کرنا ناممکن ہے کہ کس بلاک پر RAID ڈیوائس صحیح لکھا گیا تھا اور کون سا نہیں تھا۔ اگر اس صورت حال میں RAID کی بازیابی کی کوشش کی جاتی ہے تو، غیر تحریری بلاکس کے مساوی بلاکس خراب ہو سکتے ہیں، کیونکہ RAID بلاک کی حالت ہم آہنگی سے باہر ہے۔ یہ مسئلہ کسی بھی RAID 1/5/6 صفوں میں ہوتا ہے جو اس مسئلے کو کم کرنے کے لیے خصوصی اقدامات پر عمل درآمد نہیں کرتے ہیں۔
btrfs میں RAID1 جیسے RAID کے نفاذ میں، یہ مسئلہ دونوں کاپیوں پر چیکسم کے استعمال سے حل ہو جاتا ہے۔ اگر کوئی تضاد ہے تو، ڈیٹا کو دوسری کاپی سے بحال کیا جاتا ہے۔ یہ نقطہ نظر بھی کام کرتا ہے اگر کوئی آلہ مکمل طور پر ناکام ہونے کے بجائے غلط ڈیٹا واپس کرنا شروع کر دے۔
تاہم، RAID5/6 میں، فائل سسٹم برابری بلاکس کے لیے چیکسم کو ذخیرہ نہیں کرتا ہے: عام طور پر، بلاکس کی درستگی کی تصدیق اس حقیقت سے ہوتی ہے کہ ان سب کے پاس ایک چیکسم ہے، اور برابری بلاک کو ڈیٹا سے دوبارہ بنایا جا سکتا ہے۔ تاہم، جزوی تحریروں کی صورت میں، یہ نقطہ نظر بعض حالات میں ناکام ہو سکتا ہے۔ اس صورت میں، صف کو بحال کرتے وقت، یہ ممکن ہے کہ نامکمل تحریر سے متاثر ہونے والے بلاکس کو غلط طریقے سے دوبارہ تشکیل دیا جائے۔
btrfs کے معاملے میں، یہ مسئلہ سب سے زیادہ شدید ہوتا ہے جب تحریر کی جا رہی پٹی سے چھوٹی ہوتی ہے۔ اس صورت میں، فائل سسٹم کو ریڈ-موڈیف-رائٹ (RMW) آپریشن کرنا چاہیے۔ اگر یہ آپریشن نامکمل تحریروں کے ساتھ بلاکس کا سامنا کرتا ہے، تو RMW آپریشن بدعنوانی کا سبب بن سکتا ہے جس کا پتہ نہیں چل سکے گا، چاہے چیکسم کچھ بھی ہوں۔ ڈویلپرز نے ایک تبدیلی کو لاگو کیا ہے تاکہ RMW آپریشن آپریشن کرنے سے پہلے بلاک چیکسم کی تصدیق کرتا ہے اور، اگر ڈیٹا کی وصولی ضروری ہو تو، لکھنے کے بعد چیکسم کی تصدیق بھی کرتا ہے۔ بدقسمتی سے، جزوی اسٹرائپ رائٹ (RMW) کے معاملے میں، یہ چیکسم کا حساب لگانے کے لیے اضافی اوور ہیڈ کا باعث بنتا ہے، لیکن قابل اعتبار طور پر بہتر بناتا ہے۔ یہ منطق ابھی RAID 6 کے لیے تیار نہیں ہے، لیکن RAID 6 میں اس طرح کی ناکامی کے لیے، رائٹ کو بیک وقت دو ڈیوائسز پر فیل ہونا چاہیے، جس کا امکان کم ہے۔
مزید برآں، RAID5/6 استعمال کرنے کے لیے ڈویلپرز کی سفارشات قابل ذکر ہیں۔ ان سفارشات کا خلاصہ یہ ہے کہ Btrfs میں، میٹا ڈیٹا اور ڈیٹا اسٹوریج پروفائلز مختلف ہو سکتے ہیں۔ اس صورت میں، آپ میٹا ڈیٹا کے لیے RAID1 (آئینہ) یا یہاں تک کہ RAID1C3 (3 کاپیاں) پروفائل، اور ڈیٹا کے لیے RAID5 یا RAID6 استعمال کر سکتے ہیں۔ یہ قابل اعتماد میٹا ڈیٹا تحفظ اور تحریری سوراخوں کی عدم موجودگی کو یقینی بناتا ہے، جبکہ RAID5/6 کی مخصوص جگہ کا زیادہ موثر استعمال بھی فراہم کرتا ہے۔ یہ میٹا ڈیٹا بدعنوانی کو روکتا ہے، اور ڈیٹا بدعنوانی کو ٹھیک کیا جا سکتا ہے۔
یہ بات بھی قابل توجہ ہے کہ غیر مطابقت پذیر "ڈسکارڈ" آپریشنز (آزاد بلاکس کو نشان زد کرنا جو اب جسمانی طور پر ذخیرہ نہیں کیا جا سکتا ہے) کرنل 6.2 میں Btrfs میں SSDs کے لیے بطور ڈیفالٹ فعال ہو جائے گا۔ اس موڈ کا فائدہ ایک قطار میں "ڈسکارڈ" آپریشنز کی موثر گروپ بندی اور بیک گراؤنڈ ہینڈلر کے ذریعہ قطار کی پروسیسنگ کی وجہ سے اعلی کارکردگی ہے۔ اس کا مطلب یہ ہے کہ عام فائل سسٹم کے آپریشنز سست نہیں ہوتے کیونکہ بلاکس کو آزاد کیا جاتا ہے، جیسا کہ ہم وقت ساز "ڈکارڈ" کا معاملہ ہے اور SSD بہتر فیصلے کر سکتا ہے۔ دوسری طرف، اب fstrim جیسی افادیت کو استعمال کرنے کی ضرورت نہیں ہے، کیونکہ تمام دستیاب بلاکس کو فائل سسٹم میں بغیر کسی اضافی اسکیننگ یا کام کو سست کرنے کی ضرورت کے صاف کر دیا جائے گا۔
ماخذ: opennet.ru
