أصدر كينت أوفرستريت نظام الملفات Bcachefs 1.38.0. يتضمن هذا الإصدار حزمتين: bcachefs-kernel-dkms، التي تحتوي على وحدة نواة مبنية باستخدام نظام دعم وحدات النواة الديناميكية (DKMS)، وbcachefs-tools، التي تحتوي على أداة bcachefs في مساحة المستخدم، والتي تُنفذ أوامر إنشاء (mkfs) وتركيب واستعادة والتحقق من نظام الملفات. تم تجميع الحزم لـ Debian, Ubuntu ومن المتوقع أن تكون هذه الأمور مهمة بالنسبة لـ Arch Linuxفيدورا، وأوبن سوزي، ونيكس أو إس. يدعم مُكوّن DKMS النواة. Linux، ابتداءً من 6.16.
يعمل مشروع Bcachefs على تطوير نظام ملفات يهدف إلى الجمع بين الوظائف المتقدمة لنظامي Btrfs وZFS مع أداء وموثوقية وقابلية توسع نظام XFS. يدعم Bcachefs ميزات مثل استخدام أجهزة متعددة لكل قسم، وتخطيطات تخزين متعددة الطبقات (طبقة سفلية تحتوي على البيانات التي يتم الوصول إليها بشكل متكرر والمستندة إلى محركات أقراص الحالة الصلبة السريعة، وطبقة علوية تحتوي على البيانات التي يتم الوصول إليها بشكل أقل تكرارًا من محركات الأقراص الصلبة)، والنسخ المتماثل (RAID 1/10)، والتخزين المؤقت، وضغط البيانات الشفاف (أوضاع LZ4 وgzip وZSTD)، وشرائح الحالة (اللقطات)، والتحقق من السلامة باستخدام مجاميع التحقق، ورموز تصحيح الأخطاء، وتخزين البيانات المشفرة (باستخدام ChaCha20 وPoly1305).
новой версии:
- تم تغيير بنية Btree الخاصة بـ need_discard، المستخدمة لتتبع مجموعات الكتل المحررة، إلى فهرسة البيانات باستخدام رقم فهرس السجل بدلاً من زوج الجهاز/الحاوية. وقد حسّن هذا التغيير أداء بنية need_discard وقضى على حالات التعطل أثناء استعادة السجل عند تحميل نظام ملفات يحتوي على عدد غير كافٍ من الكتل الحرة للبيانات الوصفية.
- تم نقل عمليات كتابة السجلات إلى قائمة انتظار FIFO منفصلة، وتم زيادة الحد الأقصى لعدد عمليات كتابة السجلات المتزامنة من 16 إلى 256، مما أدى إلى تحسين أداء أنظمة التخزين الكبيرة ذات أحمال الكتابة المكثفة.
- تم تسريع عملية تثبيت نظام الملفات مع عدد كبير من اللقطات بشكل ملحوظ.
ومن الجدير بالذكر أيضًا إصدار NASty 0.0.3، وهو توزيعة تطويرية لإنشاء أجهزة تخزين متصلة بالشبكة (NAS) باستخدام مكونات مادية قياسية. تعتمد هذه التوزيعة على حزمة NixOS، وتستخدم نظام الملفات Bcachefs، وتدعم مشاركة الملفات عبر NFS وSMB، بالإضافة إلى تصدير وحدات التخزين الكتلية عبر iSCSI وNVMe-oF. تتم الإدارة عبر واجهة ويب. يبلغ حجم صورة ISO للتثبيت 1.9 جيجابايت. يخضع عمل المشروع لترخيص GPLv3. كُتبت واجهة الويب بلغة TypeScript باستخدام إطار عمل SvelteKit. أما محرك إدارة التخزين والنظام، فقد كُتب بلغة Rust.
يتم تنزيل التحديثات وتثبيتها تلقائيًا. ويتم تحديث النظام بشكل متكامل، مع إمكانية الرجوع إلى الحالة السابقة في حال اكتشاف أي مشاكل في الإصدار الجديد. توفر واجهة الويب خيارات لإدارة أنظمة الملفات، واللقطات، والمفاتيح الفرعية، والأقراص، والأجهزة الافتراضية، والوصول المشترك. تتضمن واجهة الويب مدير ملفات مدمجًا ومحاكي طرفية يعملان في المتصفح. يمكن إنشاء قواعد لتنفيذ إجراءات وتنبيه المسؤول في حال استهلاك مساحة القرص بشكل مفرط، أو تعطل محركات الأقراص، أو ارتفاع درجة الحرارة.
يدعم النظام تشغيل بيئات وتطبيقات معزولة باستخدام تقنية المحاكاة الافتراضية القائمة على QEMU/KVM وعزل الحاويات مع بيئة تشغيل k3s. يمكن تثبيت مخططات Helm مباشرةً من واجهة المستخدم الرسومية لتشغيل التطبيقات في حاويات وتكوين إعادة توجيه الوصول عبر Nginx ingress. يدعم النظام التكامل مع منصة Kubernetes، مع توفير برنامج تشغيل CSI لتخصيص التخزين الديناميكي. بشكل افتراضي، يرسل النظام بيانات القياس عن بُعد مع بيانات مجهولة المصدر حول عدد محركات الأقراص وحجم التخزين (يمكن تعطيل القياس عن بُعد من قسم "الإعدادات ← القياس عن بُعد").
تشمل أسباب اختيار Bcachefs بدلاً من ZFS التطوير النشط، والتوزيع بموجب ترخيص GPL، ونموذج بسيط للعمل مع أنظمة الملفات والأقسام الفرعية واللقطات (بدون مفاهيم معقدة مثل مجموعات البيانات و zvols والمجموعات المتداخلة)، ووجود ميزات متقدمة مثل النقل التلقائي للبيانات التي نادراً ما يتم استخدامها إلى محركات الأقراص البطيئة، ورموز تصحيح الأخطاء، واستعادة البيانات التالفة دون مقاطعة العمل مع نظام الملفات.
من بين التغييرات التي طرأت على الإصدار NASty 0.0.3، تبرز التغييرات التالية:
- الانتقال إلى استخدام آلية nix flake لإدارة التغليف والتبعيات؛
- دعم VPN توسيع نطاق إعادة توجيه NVMe-oF عبر VPN؛
- تكامل وقت التشغيل k3s؛ إضافة NUT (أدوات UPS الشبكية) لمراقبة أجهزة إمداد الطاقة غير المنقطعة؛
- لوحة تحكم عبر الويب لضبط NFS و SMB و iSCSI بدقة (بما في ذلك خيارات تحديد جدولة الإدخال/الإخراج والتسجيل ونسخ البيانات الوصفية احتياطيًا)؛
- إعدادات إضافية لـ Bcachefs (إدارة رموز تصحيح الأخطاء، واختيار خوارزمية المجموع الاختباري، وإعادة التوازن عبر الإنترنت، وما إلى ذلك)؛
- دعم ذاكرة التخزين المؤقت Cachix لتسريع عملية تسليم التحديثات؛
- إمكانية التوليد شهادات TLS عبر Let's Encrypt؛
- تضمين أدوات iotop-c و btop و fwupd و rsync و croc.

المصدر: opennet.ru
