استكشاف مشكلات مشاركة ملف Azure NFS وإصلاحها

تسرد هذه المقالة بعض المشكلات الشائعة والمشكلات المعروفة المتعلقة بمشاركة ملفات Azure NFS. وهو يوفر الأسباب المحتملة والحلول عند مواجهة هذه المشاكل.

ينطبق على

نوع مشاركة الملف SMB NFS
مشاركات الملفات القياسية (GPv2)، LRS/ZRS No No
مشاركات الملفات القياسية (GPv2)، GRS/GZRS No No
مشاركات الملفات المتميزة (FileStorage)، LRS/ZRS No Yes

فشل chgrp "اسم الملف": وسيطة غير صالحة (22)

السبب 1: لم يتم تعطيل تعيين المعرف

لا تسمح ملفات Azure بـ UID/GID أبجدي رقمي. لذلك يجب تعطيل تعيين المعرف.

السبب 2: تم تعطيل idmapping، ولكن تمت إعادة تمكينه بعد مواجهة اسم ملف / dir غير صحيح

حتى إذا تم تعطيل تعيين المعرف بشكل صحيح، يتم تجاوز إعدادات تعطيل تعيين المعرف في بعض الحالات. على سبيل المثال، عندما تصادف ملفات Azure اسم ملف غير صالح، فإنها تعيد إرسال خطأ. عند رؤية رمز الخطأ هذا، يقرر عميل NFS v 4.1 Linux إعادة تمكين تعيين المعرف ويتم إرسال الطلبات المستقبلية مرة أخرى مع معرف المستخدم/GID الأبجدي الرقمي. للحصول على قائمة بالأحرف غير المدعومة في ملفات Azure، راجع هذه المقالة. علامة النقطتين هي أحد الأحرف غير المدعومة.

الحل البديل

تحقق من تعطيل تعيين المعرف ومن عدم إعادة تمكينه، ثم قم بما يلي:

  • إلغاء تحميل المشاركة
  • تعطيل تعيين المعرف باستخدام # echo Y >/ sys/module/nfs/parameters/nfs 4_ Disable_idmapping
  • قم بتحميل الحصة مرة أخرى
  • في حالة تشغيل rsync، قم بتشغيل rsync باستخدام وسيطة "- المعرفات الرقمية "من دليل لا يحتوي على اسم ملف/ملف غير صحيح.

غير قادر على إنشاء مشاركة NFS

السبب 1: إعدادات حساب التخزين غير المدعومة

يتوفر NFS فقط على حسابات التخزين بالتكوين التالي:

حل

اتبع الإرشادات الواردة في مقالتنا: كيفية إنشاء حصة NFS .

لا يمكن الاتصال بـ أو تثبيت مشاركة ملف Azure NFS

السبب 1: ينشأ الطلب من عميل في شبكة غير موثوقة/عنوان IP غير موثوق

على عكس SMB، لا تمتلك NFS مصادقة تستند إلى المستخدم. تعتمد مصادقة المشاركة على تكوين قاعدة أمان الشبكة. ونتيجة لذلك، لضمان إنشاء اتصالات آمنة فقط بمشاركة NFS خاصتك، يجب عليك استخدام إما نقطة نهاية الخدمة أو نقاط النهاية الخاصة. للوصول إلى الأسهم من المباني بالإضافة إلى نقاط النهاية الخاصة، يجب عليك إعداد VPN أو ExpressRoute. يتم تجاهل عناوين IP المضافة إلى قائمة السماح لحساب التخزين لجدار الحماية. يجب عليك استخدام إحدى الطرق التالية لإعداد الوصول إلى مشاركة NFS:

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

يصور الرسم البياني التالي الاتصال باستخدام نقاط النهاية العامة.

Diagram of public endpoint connectivity.

  • نقطة النهاية الخاصة
    • الوصول أكثر أمانًا من نقطة نهاية الخدمة.
    • يتوفر الوصول إلى مشاركة NFS عبر رابط خاص من داخل وخارج منطقة Azure في حساب التخزين (عبر المنطقة المحلية)
    • تتيح الشبكة الافتراضية التي تتطلع إلى الشبكات الافتراضية المستضافة في نقطة النهاية الخاصة الوصول إلى مشاركة NFS للعملاء في الشبكات الافتراضية النظيرة.
    • يمكن استخدام نقاط النهاية الخاصة مع ExpressRoute و من نقطة إلى موقع و VPNs من موقع إلى موقع.

Diagram of private endpoint connectivity.

السبب 2: تمكين النقل الآمن المطلوب

التشفير المزدوج غير مدعوم لمشاركات NFS حتى الآن. توفر Azure طبقة من التشفير لجميع البيانات المنقولة بين مراكز بيانات Azure باستخدام MACSec. لا يمكن الوصول إلى مشاركات NFS إلا من الشبكات الافتراضية الموثوقة وعبر أنفاق VPN. لا يتوفر تشفير إضافي لطبقة النقل على مشاركات NFS.

حل

تعطيل النقل الآمن مطلوب في شفرة تكوين حساب التخزين خاصتك.

Screenshot of storage account configuration blade, disabling secure transfer required.

السبب 3: لم يتم تثبيت حزمة nfs الشائعة

قبل تشغيل أمر التركيب، قم بتثبيت الحزمة عن طريق تشغيل الأمر المحدد من الأسفل.

للتحقق مما إذا كانت حزمة NFS مثبتة، قم بتشغيل: rpm qa | grep nfs-utils

حل

إذا لم يتم تثبيت الحزمة، فقم بتثبيت الحزمة عند التوزيع.

Ubuntu or Debian
sudo apt update
sudo apt install nfs-common
Fedora, Red Hat Enterprise Linux 8+, CentOS 8+

استخدم مدير حزم dnf:sudo dnf install nfs-utils.

تستخدم الإصدارات الأقدم من Red Hat Enterprise Linux و CentOS مدير حزمة yum: sudo yum install nfs-common.

openSUSE

استخدم مدير حزم zypper: sudo zypper install-nfscommon.

السبب 4: منفذ حظر جدار الحماية 2049

يتصل بروتوكول NFS بخادمه عبر المنفذ 2049، تأكد من أن هذا المنفذ مفتوح لحساب التخزين (خادم NFS).

حل

تحقق من أن المنفذ 2049 مفتوح على عميلك عن طريق تشغيل الأمر التالي: telnet <storageaccountnamehere>.file.core.windows.net 2049. إذا لم يكن المنفذ مفتوحًا، فافتحه.

يتم تعليقه لتعداد الدليل الكبير على بعض Kernels

السبب: تم إدخال خطأ في Linux kernel v5.11 وتم إصلاحه في v5.12.5.

تحتوي بعض إصدارات kernel على خطأ يتسبب في أن تؤدي قوائم الدليل إلى سلسلة قراءة لا نهاية لها. لن تكون هناك مشكلة في الأدلة الصغيرة جدًا حيث يمكن شحن جميع الإدخالات في استدعاء واحد. تم إدخال الخطأ في Linux kernel v5.11 وتم إصلاحه في v5.12.5. لذا أي شيء بينهما لديه الخطأ. من المعروف أن RHEL 8.4 يحتوي على إصدار kernel هذا.

الحل البديل: الرجوع إلى إصدار أقدم من kernel أو ترقيته

سيؤدي الرجوع إلى إصدار أقدم من Kernel أو ترقيتها إلى أي شيء خارج Kernel المتأثرة إلى حل المشكلة

هل تحتاج إلى مساعدة؟ الاتصال بالدعم.

إذا كنت بحاجة إلى مساعدة، فاتصل بالدعم لحل مشكلتك بسرعة.