لینکس کرنل میں Bcachefs کو فروغ دینا

کینٹ اوورسٹریٹ، BCache SSD بلاک ڈیوائس کیشنگ سسٹم کے مصنف، جو لینکس کرنل کا حصہ ہے، نے LSFMM 2023 کانفرنس (Linux Storage, Filesystem, Memory Management) میں اپنی تقریر میں Bcachefs فائل سسٹم کو فروغ دینے کے کام کے نتائج کا خلاصہ کیا۔ اور BPF سمٹ) لینکس کرنل کی مرکزی ساخت میں اور اس FS کی مزید ترقی کے منصوبوں کے بارے میں بات کی۔ مئی میں، Bcachefs FS کے نفاذ کے ساتھ پیچ کا ایک تازہ ترین سیٹ جائزہ لینے اور لینکس کرنل کی مرکزی ساخت میں شامل کرنے کے لیے تجویز کیا گیا تھا۔ FS Bcachefs تقریباً 10 سالوں سے تیار ہو رہا ہے۔ کور میں شامل ہونے سے پہلے Bcachefs کے نفاذ کا جائزہ لینے کی تیاری کا اعلان 2020 کے آخر میں کیا گیا تھا، اور پیچ کا موجودہ ورژن پچھلے جائزے کے دوران نشاندہی کی گئی تبصروں اور کوتاہیوں کو مدنظر رکھتا ہے۔

Bcachefs کی ترقی کا ہدف کارکردگی، وشوسنییتا اور اسکیل ایبلٹی میں XFS کی سطح تک پہنچنا ہے، جبکہ Btrfs اور ZFS میں شامل اضافی خصوصیات فراہم کرنا، جیسے کہ ایک پارٹیشن میں ایک سے زیادہ ڈیوائسز، ملٹی لیئر اسٹوریج لے آؤٹ، ریپلیکشن (RAID 1/10)، کیشنگ، شفاف ڈیٹا کمپریشن (LZ4، gzip اور ZSTD موڈز)، اسٹیٹ سلائسز (اسنیپ شاٹس)، چیکسم کے ذریعے سالمیت کی توثیق، Reed-Solomon ایرر کریکشن کوڈز (RAID 5/6) کو اسٹور کرنے کی صلاحیت، معلومات کا انکرپٹڈ اسٹوریج (ChaCha20 اور Poly1305) استعمال کیا جاتا ہے)۔ کارکردگی کے لحاظ سے، Bcachefs Btrfs اور کاپی آن رائٹ میکانزم پر مبنی دیگر فائل سسٹمز سے آگے ہے، اور Ext4 اور XFS کے قریب کارکردگی کو ظاہر کرتا ہے۔

Bcachefs کی ترقی میں تازہ ترین کامیابیوں میں سے، تحریر کے لیے دستیاب سنیپ شاٹس کے نفاذ کا استحکام نوٹ کیا گیا ہے۔ Btrfs کے مقابلے میں، Bcachefs میں سنیپ شاٹس اب بہت بہتر توسیع پذیر اور Btrfs میں موجود مسائل سے پاک ہیں۔ عملی طور پر، MySQL بیک اپ کو منظم کرتے وقت سنیپ شاٹس کے کام کی جانچ کی گئی۔ اسکیل ایبلٹی کو بہتر بنانے کے لیے Bcachefs نے بھی کافی کام کیا ہے - فائل سسٹم نے 100 TB اسٹوریج میں ٹیسٹنگ میں اچھی کارکردگی کا مظاہرہ کیا ہے، اور مستقبل قریب میں Bcachefs کے 1 PB اسٹوریج میں لاگو ہونے کی امید ہے۔ "کاپی آن رائٹ" (nocow) میکانزم کو غیر فعال کرنے کے لیے ایک نیا نوکو موڈ شامل کیا گیا ہے۔ موسم گرما کے دوران، وہ غلطی کی اصلاح کے کوڈز اور RAIDZ کے نفاذ کو ایک مستحکم حالت میں لانے کا ارادہ رکھتے ہیں، اور ساتھ ہی fsck یوٹیلیٹی کے ساتھ فائل سسٹم کو بحال اور چیک کرتے وقت زیادہ میموری کی کھپت کے مسائل کو حل کرتے ہیں۔

مستقبل کے منصوبوں میں سے، Bcachefs کی ترقی میں زنگ زبان کو استعمال کرنے کی خواہش کا ذکر کیا گیا ہے۔ Bcachefs کے مصنف کے مطابق، وہ کوڈ کرنا پسند کرتا ہے، کوڈ کو ڈیبگ کرنا نہیں، اور اب جب کوئی بہتر آپشن ہو تو C میں کوڈ لکھنا پاگل پن ہے۔ زنگ پہلے سے ہی کچھ صارف کی جگہ کی افادیت کے نفاذ میں Bcachefs میں شامل ہے۔ مزید برآں، یہ خیال تیار کیا جا رہا ہے کہ آہستہ آہستہ Bcachefs کو Rust میں مکمل طور پر دوبارہ لکھا جائے، کیونکہ اس زبان کو استعمال کرنے سے ڈیبگنگ کے وقت کی کافی بچت ہوتی ہے۔

جہاں تک Bcachefs کو لینکس کرنل کے مرکزی دھارے میں منتقل کرنے کا تعلق ہے، تبدیلیوں کے بڑے سائز (2500 پیچ اور کوڈ کی تقریباً 90 ہزار لائنیں) کی وجہ سے اپنانے کے عمل میں تاخیر ہو سکتی ہے، جس کا جائزہ لینا مشکل ہے۔ جائزہ کو تیز کرنے کے لیے، کچھ ڈویلپرز نے پیچ سیریز کو چھوٹے اور منطقی طور پر الگ الگ حصوں میں تقسیم کرنے کا مشورہ دیا ہے۔ بحث کے دوران، کچھ شرکاء نے ایک ڈویلپر کے ذریعہ پروجیکٹ کی ترقی کی طرف بھی توجہ مبذول کروائی اور اس خطرے کی طرف بھی توجہ مبذول کروائی کہ اگر اس کے ڈویلپر کو کچھ ہوا تو کوڈ کو برقرار نہیں رکھا جا سکتا ہے (Red Hat کے دو ملازمین اس منصوبے میں دلچسپی رکھتے ہیں، لیکن ان کا کام ابھی تک جاری ہے۔ محدود بگ کی اصلاحات)۔

Bcachefs کو Bcache بلاک ڈیوائس کی ڈیولپمنٹ میں پہلے سے آزمائی گئی ٹیکنالوجیز کا استعمال کرتے ہوئے تیار کیا گیا ہے، جو تیز SSDs پر سست ہارڈ ڈرائیوز تک رسائی کو کیش کرنے کے لیے ڈیزائن کیا گیا ہے (ریلیز 3.10 کے بعد سے کرنل میں شامل ہے)۔ Bcachefs Copy-on-write (COW) میکانزم کا استعمال کرتا ہے، جس میں تبدیلیاں ڈیٹا کو اوور رائٹنگ کا باعث نہیں بنتی ہیں - نئی حالت کو ایک نئے مقام پر لکھا جاتا ہے، جس کے بعد موجودہ حالت کے اشارے میں تبدیلی آتی ہے۔

Bcachefs کی ایک خصوصیت ڈرائیوز کے ملٹی لیئر کنکشن کے لیے سپورٹ ہے، جس میں اسٹوریج کئی پرتوں پر مشتمل ہوتا ہے - تیز ترین ڈرائیوز (SSDs) نیچے کی پرت سے جڑی ہوتی ہیں، جو اکثر استعمال ہونے والے ڈیٹا کو کیش کرنے کے لیے استعمال ہوتی ہیں، اور اوپر کی پرت بنتی ہے۔ زیادہ گنجائش والی اور سستی ڈسکیں جو کم ڈیمانڈ ڈیٹا اسٹور کرتی ہیں۔ رائٹ بیک کیشنگ کو تہوں کے درمیان استعمال کیا جا سکتا ہے۔ فائل سسٹم کے استعمال میں خلل ڈالے بغیر ڈرائیوز کو متحرک طور پر شامل کیا جا سکتا ہے اور پارٹیشن سے الگ کیا جا سکتا ہے (ڈیٹا خود بخود منتقل ہو جاتا ہے)۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں