نيو إس بي سي سي تُطلق NeoFS Node v0.53.0 وPanel v0.9.0 وSDK RC19

في 21 مايو، أطلقت شركة Neo SPCC ثلاث تحديثات مترابطة لنظام NeoFS، تشمل عقدة التخزين، ولوحة التحكم الإدارية عبر الويب، وحزمة تطوير البرمجيات (SDK). يأتي إصدار عقدة NeoFS الإصدار v0.53.0 “سيدو” في مقدمة هذه الإصدارات مع تحسينات في الأداء، ودعم استرداد نطاقات محددة (rangedGET)، وإزالة عدة واجهات برمجية قديمة (APIs). كما يقدم إصدار لوحة NeoFS v0.9.0 ميزة مشاركة الملفات على مستوى الحساب، ونموذجًا مبسطًا لرموز الجلسات. أما إصدار NeoFS SDK Go RC19 فهو يوفر الأساس المكتبي لكلا الإصدارين، مع إضافة التوافق مع واجهة API 2.23 وإهمال طرق برمجية قديمة متعددة.
تشكل الإصدارات الثلاثة سلسلة مترابطة – حيث يتطلب إصدار العقدة v0.53.0 إصدار SDK RC19، والذي بدوره يتطلب إصدار NeoGo v0.119.0، الذي غطته أخبار NNT في وقت سابق من هذا الشهر. ويتبع هذا الإصدار المنسق نمطًا مشابهًا من أبريل، عندما جمعت Neo SPCC إصدار العقدة v0.52.0 “وودو” مع إصدار SDK RC18.
إصدار عقدة NeoFS v0.53.0
يستهدف إصدار عقدة NeoFS تحسين الأداء والصيانة في عدة مجالات لعقدة التخزين.
عمليات قاعدة البيانات التي تغير الحالة، والتي كانت تُجمَّع سابقًا فقط لطلبات PUT، أصبحت الآن تُجمَّع عبر جميع العمليات العادية. تم تحديث طبقة تخزين القاعدة الوصفية (metabase) لتخزين معرفات الكائنات المرتبطة كبايتات خام بدلاً من سلاسل مشفرة بطريقة Base58، مما يتطلب ترحيل هيكل القاعدة الوصفية إلى الإصدار 11 عند التشغيل الأول. يجب على المشغلين الذين يديرون أقسامًا كبيرة التخطيط لوقت توقف أثناء هذا الترحيل، حيث قد يستغرق وقتًا طويلاً.
تم تحسين أداء البحث في الحاويات المشفرة بتقنية محو الأخطاء (erasure-coded) عن طريق تقليل عدد العقد التي يتم الاتصال بها أثناء عمليات البحث، كما تم تحسين مقارنات الأعداد الصحيحة في البحث الإصدار الثاني (SearchV2). كما تم تبسيط إعادة توجيه طلبات GET وHEAD وRANGE.
يضيف الإصدار دعم استرداد نطاقات محددة (rangedGET)، مما يسمح للعملاء باسترداد نطاقات بايت محددة من محتوى الكائن من خلال طريقة GET القياسية. وهذا يدمج استرداد الكائنات في واجهة برمجية واحدة، مع وضع علامة على طريقة RANGE القديمة للإزالة مستقبلاً. يعكس هذا التغيير ميزة استرداد النطاقات المحددة التي تم تقديمها في إصدار SDK RC19.
أيضًا، يضيف إصدار العقدة v0.53.0 دعمًا لـ sd_notify لكل من عقد التخزين وعقد الحلقة الداخلية، مما يمكّن المشغلين من استخدام Type=notify في ملفات systemd الخاصة بهم لإدارة خدمات أكثر موثوقية.
في جانب الإزالة، تم تنظيف العديد من واجهات API القديمة. أُزيلت طريقة GetRangeHash من عقد التخزين، بالإضافة إلى أمر neofs-cli object hash المقابل. أُزيلت طريقة البحث القديمة (Search) لصالح البحث الإصدار الثاني (SearchV2)، وتم إزالة البحث بالهاش المتجانس (homomorphic hash) من تطبيقات CLI والعقدة. كما أُزيل خيار التهيئة policer.max_workers، الذي كان غير نشط بالفعل منذ إصدار v0.52.0.
من بين إصلاحات الأخطاء البارزة: تصحيح في وحدة المراقبة (policer) التي كانت تسمح ببقاء نسخ محلية زائدة عن الحاجة على القرص إلى أجل غير مسمى. تم حل مشكلة تحليل فترات تخزين رمز الجلسة، وإصلاح أعطال استرداد الكائنات المضغوطة، ومعالجة مشكلات إعادة مزامنة القاعدة الوصفية على أنظمة الملفات التي لا تميز بين الأحرف الكبيرة والصغيرة.
إصدار لوحة NeoFS v0.9.0
يقدم إصدار اللوحة أكبر التغييرات التي تهم المستخدم في هذه الدفعة، بما في ذلك ميزات متعددة تم طلبها منذ بداية عام 2024.
- مشاركة الملفات على مستوى الحساب: تتيح للمستخدمين مشاركة الملفات مع عناوين حسابات Neo محددة بدلاً من إنشاء روابط عامة متاحة لأي شخص. تمنح هذه الميزة مالكي الحاويات تحكمًا دقيقًا فيمن يمكنه الوصول إلى الكائنات المشتركة، متجاوزة بذلك نموذج المشاركة السابق القائم على “الكل أو لا شيء”.
- تبسيط إدارة الجلسات: تم التبسيط من خلال رمز جلسة رئيسي شامل يحل محل النظام السابق المكون من رموز متعددة منفصلة. الآن، يوقع المستخدمون مرة واحدة لكل جلسة بدلاً من التحقق من هويتهم بشكل منفصل لكل عملية – وهو تحسين في تجربة المستخدم يتطلب دعم إصدار رمز الجلسة الثاني (v2) من إصدار neofs-rest-gw v0.16.0.
- ميزات جديدة: يضيف الإصدار دعمًا كاملاً لإنشاء وتعديل فلاتر مقارنة رقمية في قوائم التحكم في الوصول الموسعة (eACL)، بالإضافة إلى واجهة جديدة لإدارة مجالات العقد الموثقة. تعزز كلتا الميزتين قدرة اللوحة كأداة لإدارة بنية NeoFS التحتية.
- المحافظ: تمت إضافة التوافق مع معيار NEP-21، مع اختبارات تؤكد عمله على إصدارات NeoLine 5.8.5+ وOneGate 2.0+. أُزيل دعم محفظة O3 بعد توقفها.
- إصلاحات الأخطاء: تم إصلاح خطأ كان يسبب فشل تحميل الملفات التي يتجاوز حجمها 700 ميغابايت بسبب فقدان رأس Content-Type، بالإضافة إلى مشكلة حيث لم يتم تعيين سمة FilePath تلقائيًا أثناء التحميل، مما جعل الملفات غير مرئية في العرض الشجري.
تم بالفعل نشر إصدار اللوحة v0.9.0 على المثيل العام.
إصدار NeoFS SDK Go RC19
يستمر الإصدار التاسع عشر التجريبي (RC19) في مسار حزمة SDK نحو الإصدار المستقر v1.0.0 بإضافة التوافق مع واجهة API 2.23 وإزالة الطرق البرمجية القديمة.
طلبات استرداد النطاقات المحددة (RangedGET)، وهي المعادل المكتبي لدعم استرداد النطاقات في إصدار العقدة v0.53.0، تسمح للمطورين باسترداد نطاقات بايت محددة من خلال استدعاء Get القياسي. وبالتوازي، تم إهمال كل من طريقتي GetRange وGetRangeHash RPCs، ومن المتوقع أن يقوم العملاء بحساب التجزئة محليًا بدلاً من الاعتماد على الحساب من جانب الخادم.
تم إهمال هاش Tillich-Zémor المتجانس لأن واجهة NeoFS API 2.23 لم تعد تدعمه. الآن، تطبق قارئات محتوى الكائن واجهة io.WriterTo، مما يقلل من نسخ البيانات أثناء تنزيل الكائنات ويخفض تخصيص الذاكرة للتطبيقات التي تتعامل مع المحتويات الكبيرة.
أسئلة وأجوبة شائعة
ما هي أهم ميزة في تحديثات NeoFS الجديدة؟
أهم ميزة هي دعم استرداد نطاقات محددة (rangedGET) الذي يسمح بتنزيل أجزاء معينة من الملفات بدلاً من تنزيلها بالكامل، مما يحسن الكفاءة. كما أن ميزة مشاركة الملفات على مستوى الحساب في لوحة التحكم تمنح المستخدمين تحكمًا أكبر بمن يرى ملفاتهم.
هل هناك أي تغييرات قد تؤثر على أداء النظام؟
نعم، هناك ترحيل لهيكل قاعدة البيانات الوصفية (metabase) إلى الإصدار 11 عند التشغيل الأول، مما قد يستغرق وقتًا طويلاً خاصة للحاويات الكبيرة. لذا يجب على المشغلين التخطيط لذلك. لكن بشكل عام، تم تحسين أداء البحث ومعالجة الطلبات.
ماذا يحتاج المطورون لمعرفته حول إصدار SDK الجديد؟
يضيف SDK Go RC19 دعم واجهة API 2.23 ويحسن أداء تنزيل الملفات الكبيرة. كما تم إهمال بعض الطرق القديمة مثل GetRangeHash ومن المتوقع أن يقوم المطورون بحساب التجزئة محليًا الآن بدلاً من طلبها من الخادم.












