ما هو BlobFuse؟ - BlobFuse2

BlobFuse هو برنامج تشغيل نظام ملفات ظاهري لتخزين Azure Blob. استخدم BlobFuse للوصول إلى بيانات كائن ثنائي كبير الحجم لكتلة Azure الحالية من خلال نظام ملفات Linux.

حول مشروع BlobFuse2 مفتوح المصدر

BlobFuse2 هو مشروع مصدر مفتوح يستخدم مكتبة libfuse مصدر مفتوح (fuse3) للاتصال بوحدة Linux FUSE kernel. ينفذ BlobFuse2 عمليات نظام الملفات باستخدام واجهات برمجة تطبيقات AZURE Storage REST.

مشروع مصدر مفتوح BlobFuse2 موجود على GitHub:

الترخيص

يتم ترخيص مشروع BlobFuse2 بموجب ترخيص MIT.

الميزات

توجد قائمة كاملة بميزات BlobFuse2 في BlobFuse2 README. هذه بعض المهام الرئيسية التي يمكنك تنفيذها باستخدام BlobFuse2:

  • قم بتحميل حاوية Azure Blob Storage أو نظام ملفات Azure Data Lake Storage Gen2 على Linux. (يدعم BlobFuse2 حسابات التخزين مع تكوين مساحات أسماء ثابتة أو مساحة أسماء هرمية.)
  • استخدم عمليات نظام الملفات الأساسية مثل mkdirو readdiropendirو rmdirوopenstatreadcreatetruncatewritecloseunlink.rename
  • استخدم التخزين المؤقت للملف المحلي لتحسين أوقات الوصول اللاحقة.
  • احصل على رؤى حول أنشطة التحميل واستخدام الموارد باستخدام BlobFuse2 Health Monitor.

تتضمن الميزات الرئيسية الأخرى في BlobFuse2 ما يلي:

  • الدفق لدعم قراءة الملفات الكبيرة وكتابتها
  • التنزيلات والتحميلات المتوازية لتحسين وقت الوصول للملفات الكبيرة
  • تحميلات متعددة إلى نفس الحاوية لأحمال العمل للقراءة فقط

تحسينات BlobFuse2 من BlobFuse v1

يحتوي BlobFuse2 على المزيد من دعم الميزات والأداء المحسن في سيناريوهات مستخدم متعددة من BlobFuse v1. للحصول على قائمة واسعة من التحسينات، راجع BlobFuse2 README. فيما يلي ملخص للتحسينات في BlobFuse2 من BlobFuse v1:

  • التخزين المؤقت المحسن
  • مزيد من دعم الإدارة من خلال أوامر Azure CLI الجديدة
  • المزيد من دعم التسجيل
  • إضافة دفق الكتابة للملفات الكبيرة (في السابق، تم دعم البث للقراءة فقط)
  • BlobFuse2 Health Monitor جديد لمساعدتك في الحصول على رؤى حول أنشطة التحميل واستخدام الموارد
  • خيارات التوافق والترقية لمستخدمي BlobFuse v1 الحاليين
  • التحقق من الإصدار ومطالبة الترقية
  • دعم تشفير ملف التكوين

راجع قائمة تحسينات أداء BlobFuse2 من BlobFuse v1.

لمستخدمي BlobFuse v1

التحسينات التي يوفرها BlobFuse2 هي أسباب مقنعة للترقية والترحيل إلى BlobFuse2. إذا لم تكن جاهزا للترحيل، يمكنك استخدام BlobFuse2 لتحميل حاوية كائن ثنائي كبير الحجم باستخدام نفس خيارات التكوين ومعلمات Azure CLI التي تستخدمها مع BlobFuse v1.

يوفر دليل ترحيل BlobFuse2 جميع التفاصيل التي تحتاجها للتوافق وترحيل أحمال العمل الحالية.

الدعم

يتم دعم BlobFuse2 من قبل Microsoft إذا تم استخدامه ضمن الحدود المحددة. إذا واجهت مشكلة، فبلغ عنها على GitHub.

التقييدات

لا يضمن BlobFuse2 توافق POSIX بنسبة 100٪ لأن BlobFuse2 يترجم ببساطة الطلبات إلى واجهات برمجة تطبيقات Blob REST. على سبيل المثال، عمليات إعادة التسمية ذرية في POSIX ولكن ليس في BlobFuse2.

راجع القائمة الكاملة للاختلافات بين نظام ملفات أصلي وBlobFuse2.

الاختلافات بين نظام ملفات Linux وBlobFuse2

بطرق عديدة، يمكنك استخدام التخزين المثبت على BlobFuse2 تماما مثل نظام ملفات Linux الأصلي. نظام الدليل الظاهري هو نفسه ويستخدم شرطة مائلة للأمام (/) كمحدد. تعمل عمليات نظام الملفات الأساسية مثل mkdirو opendirreaddirو rmdirو readwritecreateopenunlinktruncateclosestatكما rename هو الحال في نظام ملفات Linux.

يختلف BlobFuse2 عن نظام ملفات Linux ببعض الطرق الرئيسية:

  • عدد Readdir للارتباطات الثابتة:

    لأسباب تتعلق بالأداء، لا يقوم BlobFuse2 بالإبلاغ عن الارتباطات الثابتة داخل الدليل بشكل صحيح. يرجع عدد الارتباطات الثابتة للدلائل الفارغة ك 2. يرجع رقم الدلائل غير الفارغة دائما على أنه 3، بغض النظر عن العدد الفعلي للارتباطات الثابتة.

  • إعادة تسمية غير ذرية:

    لا يدعم Azure Blob Storage عمليات إعادة التسمية الذرية. إعادة تسمية ملف واحد هي في الواقع عمليتان: نسخة، ثم حذف الأصلي. يعيد الدليل تسمية كافة الملفات في الدليل بشكل متكرر ويعيد تسمية كل ملف.

  • ملفات خاصة:

    يدعم BlobFuse2 الدلائل والملفات العادية والارتباطات الرمزية فقط. الملفات الخاصة مثل ملفات الجهاز والأنابيب والمآخذ غير مدعومة.

  • mkfifo:

    إنشاء Fifo غير مدعوم من قبل BlobFuse2. تؤدي محاولة هذا الإجراء إلى ظهور خطأ "لم يتم تنفيذ الدالة".

  • chown و chmod:

    تدعم حسابات التخزين Data Lake Storage Gen2 لكل أذونات كائن وقوائم التحكم في الوصول، ولكن لا تدعم الكائنات الثنائية كبيرة الحجم كتلة مساحة الاسم المسطحة (FNS). ونتيجة لذلك، لا يدعم BlobFuse2 chown و chmodعمليات لحاويات الكائن الثنائي كبير الحجم للكتلة المحملة. يتم دعم العمليات لـ Data Lake Storage Gen2.

  • ملفات الجهاز أو الأنابيب:

    لا يدعم BlobFuse2 إنشاء ملفات الجهاز أو الأنابيب.

  • السمات الموسعة (x-attrs):

    لا يدعم BlobFuse2 عمليات السمات الموسعة (x-attrs).

  • دفق الكتابة:

    قد ينتج عن الدفق المتزامن لعمليات القراءة والكتابة على بيانات الملفات الكبيرة نتائج لا يمكن التنبؤ بها. الكتابة في نفس الكائن الثنائي كبير الحجم من مؤشرات ترابط مختلفة غير مدعومة.

تكامل البيانات

يلعب التخزين المؤقت للملفات دورا مهما في تكامل البيانات التي تتم قراءتها وكتابتها في تحميل نظام ملفات Blob Storage. نوصي بوضع الدفق للاستخدام مع الملفات الكبيرة، والذي يدعم الدفق لكل من عمليات القراءة والكتابة. يخزن BlobFuse2 كتل تدفق الملفات في الذاكرة مؤقتا. بالنسبة للملفات الأصغر التي لا تتكون من كتل، يتم تخزين الملف بأكمله في الذاكرة. ذاكرة التخزين المؤقت للملف هي الوضع الثاني. نوصي بذاكرة التخزين المؤقت للملفات لأحمال العمل التي لا تحتوي على ملفات كبيرة، مثل وقت تخزين الملفات على القرص بالكامل.

يدعم BlobFuse2 عمليات القراءة والكتابة. المزامنة المستمرة للبيانات المكتوبة إلى التخزين باستخدام واجهات برمجة التطبيقات الأخرى أو التركيبات الأخرى من BlobFuse2 غير مضمونة. لتكامل البيانات، نوصي بأن لا تقوم مصادر متعددة بتعديل نفس الكائن الثنائي كبير الحجم، خاصة في نفس الوقت. إذا حاول تطبيق واحد أو أكثر الكتابة إلى نفس الملف في وقت واحد، فقد تكون النتائج غير متوقعة. اعتمادا على توقيت عمليات الكتابة المتعددة ونضارة ذاكرة التخزين المؤقت لكل عملية، قد تكون النتيجة أن آخر كاتب يفوز ويتم فقدان عمليات الكتابة السابقة، أو بشكل عام أن الملف المحدث ليس في الحالة المقصودة.

التخزين المؤقت للملف على القرص

عندما يكون الملف موضوع عملية كتابة، تستمر البيانات أولا للتخزين المؤقت على قرص محلي. تتم كتابة البيانات إلى Blob Storage فقط بعد إغلاق مقبض الملف. إذا حدثت مشكلة أثناء محاولة الاحتفاظ بالبيانات إلى Blob Storage، تظهر رسالة خطأ.

الدفق

للبث أثناء عمليات القراءة والكتابة، يتم تخزين كتل البيانات مؤقتا في الذاكرة أثناء قراءتها أو تحديثها. يتم مسح التحديثات إلى Azure Storage عند إغلاق ملف أو عند ملء المخزن المؤقت بكتل قذرة.

يتم دعم قراءة نفس الكائن الثنائي كبير الحجم من مؤشرات ترابط متزامنة متعددة. ومع ذلك، قد تؤدي عمليات الكتابة المتزامنة إلى نتائج غير متوقعة لبيانات الملفات، بما في ذلك فقدان البيانات. يتم دعم تنفيذ عمليات قراءة متزامنة وعملية كتابة واحدة، ولكن قد لا تكون البيانات التي تتم قراءتها من بعض مؤشرات الترابط حديثة.

الأذونات

عند تحميل حاوية بالخيارات الافتراضية، تحصل جميع الملفات على 770 إذنا ولا يمكن الوصول إليها إلا من قبل المستخدم الذي يقوم بالتركيب. للسماح لأي مستخدم بالوصول إلى تحميل BlobFuse2، قم بتحميل BlobFuse2 باستخدام --allow-other الخيار . يمكنك أيضا تكوين هذا الخيار في ملف تكوين YAML.

كما ذكرنا سابقا، chown يتم دعم العمليات و chmod Data Lake Storage Gen2، ولكن ليس للكائنات الثنائية كبيرة الحجم لكتلة FNS. chmod يؤدي تشغيل عملية مقابل حاوية كائن ثنائي كبير الحجم كتلة FNS مثبتة إلى إرجاع رسالة نجاح، ولكن العملية لا تنجح فعليا.

دعم الميزة

يوضح هذا الجدول كيف يتم دعم هذه الميزة في حسابك والتأثير على ذلك الدعم عند تمكين بعض الإمكانات.

نوع حساب التخزين Blob Storage (الدعم الافتراضي) Data Lake Storage Gen2 ⁧⁩1⁧ نظام ملفات الشبكة (NFS) 3.0 1 بروتوكول نقل ملفات SSH (SFTP) 1
معيار الأغراض العامة v2 نعم نعم نعم نعم
Premium كتلة blobs نعم نعم نعم نعم

تتطلب 1 Data Lake Storage Gen2 وبروتوكول NFS 3.0 وSFTP جميعا حساب تخزين تم تمكين مساحة اسم هرمية فيه.

راجع أيضًا

الخطوات التالية