تحميل مخزن الكائن الثنائي كبير الحجم باستخدام بروتوكول 3.0 لنظام ملفات الشبكة (NFS)
توفر هذه المقالة إرشادات حول كيفية تحميل حاوية في Azure Blob Storage من جهاز Azure ظاهري (VM) يستند إلى Linux أو نظام Linux يعمل محلياً باستخدام بروتوكول 3.0 لنظام ملفات الشبكة (NFS). لمعرفة المزيد حول دعم بروتوكول NFS 3.0 في مخزن البيانات الثنائية الكبيرة، راجع دعم بروتوكول 3.0 لنظام ملفات الشبكة (NFS) لـ Azure Blob Storage.
الخطوة 1: إنشاء شبكة Azure ظاهرية
يجب تضمين حساب التخزين الخاص بك داخل شبكة ظاهرية. تمكّن الشبكة الظاهرية العملاء من الاتصال بأمان بحساب التخزين الخاص بك. لمعرفة المزيد حول شبكة Azure الظاهرية، وكيفية إنشاء شبكة ظاهرية، راجع وثائق الشبكة الظاهرية.
إشعار
يمكن للعملاء في نفس الشبكة الظاهرية تحميل حاويات في حسابك. يمكنك أيضاً تحميل حاوية من عميل يعمل في شبكة محلية، ولكن سيتعين عليك أولاً توصيل شبكتك المحلية بشبكتك الظاهرية. راجع اتصالات الشبكة المدعومة.
الخطوة 2: تكوين أمان الشبكة
حالياً، الطريقة الوحيدة لتأمين البيانات في حساب التخزين الخاص بك هي باستخدام شبكة ظاهرية وإعدادات أمان الشبكة الأخرى. راجع توصيات أمان الشبكة لتخزين Blob.
لا يمكن استخدام أي أدوات أخرى تستخدم لتأمين البيانات، بما في ذلك تخويل مفتاح الحساب وأمان Microsoft Entra وقوائم التحكم في الوصول (ACLs) لتخويل طلب NFS 3.0. في الواقع، إذا قمت بإضافة إدخال لمستخدم أو مجموعة مسماة إلى قائمة التحكم في الوصول إلى كائن ثنائي كبير الحجم أو دليل، يصبح هذا الملف غير قابل للوصول على العميل للمستخدمين غير الجذر. سيتعين عليك إزالة هذا الإدخال لاستعادة الوصول إلى المستخدمين غير الجذر على العميل.
هام
يستخدم بروتوكول NFS 3.0 المنفذين 111 و2048. إذا كنت تتصل من شبكة محلية، فتأكد من أن العميل يسمح بالاتصال الصادر من خلال هذه المنافذ. إذا منحت حق الوصول إلى شبكات ظاهرية معينة، فتأكد من أن أي مجموعات أمان شبكة مرتبطة بهذه الشبكات الظاهرية لا تحتوي على قواعد أمان تمنع الاتصال الوارد من خلال تلك المنافذ.
الخطوة 3: إنشاء حساب تخزين وتكوينه
لتحميل حاوية باستخدام NFS 3.0، يجب إنشاء حساب تخزين. لا يمكنك تمكين الحسابات الحالية.
بروتوكول NFS 3.0 مدعوم لحسابات التخزين v2 القياسية للأغراض العامة ولحسابات تخزين الكائن الثنائي كبير الحجم ذات الكتلة المتميزة. للمزيد من المعلومات عن حسابات التخزين، راجع نظرة عامة على حساب التخزين.
لتكوين الحساب، اختر القيم التالية:
الإعدادات | أداء فائق | أداء قياسي |
---|---|---|
الموقع | جميع المناطق المتوفرة | جميع المناطق المتوفرة |
الأداء | متميز | قياسي |
نوع الحساب | BlockBlobStorage | V2 للأغراض العامة |
النسخ المتماثل | التخزين المتكرر محلياً (LRS)، التخزين المتكرر في المنطقة (ZRS) | التخزين المتكرر محلياً (LRS)، التخزين المتكرر في المنطقة (ZRS) |
أسلوب الاتصال | نقطة النهاية العامة (الشبكات المحددة) أو نقطة النهاية الخاصة | نقطة النهاية العامة (الشبكات المحددة) أو نقطة النهاية الخاصة |
مساحة الاسم الهرمية | مُمَكّن | مُمَكّن |
NFS V3 | مُمَكّن | مُمَكّن |
يمكنك قبول القيم الافتراضية لجميع الإعدادات الأخرى.
الخطوة رقم 4: إنشاء حاوية
قم بإنشاء حاوية في حساب التخزين الخاص بك باستخدام أي من هذه الأدوات أو مجموعات SDK:
الأدوات | SDK |
---|---|
مدخل Microsoft Azure | NET. |
AzCopy | Java |
بوويرشيل | Python |
Azure CLI | JavaScript |
REST |
إشعار
بشكل افتراضي، يكون خيار"root squash" لحاوية جديدة هو "No Root Squash". ولكن يمكنك تغيير ذلك إلى "Root Squash" أو "All Squash". للحصول على معلومات حول خيارات "squash" هذه، راجع وثائق نظام التشغيل.
تعرض الصورة التالية خيارات "squash" كما تظهر في مدخل Microsoft Azure.
الخطوة 5: تثبيت حزمة AZNFS Mount Helper
تساعد حزمة AZNFS Mount Helper عملاء Linux NFS على الوصول بشكل موثوق إلى مشاركات Azure Blob NFS حتى عندما يتغير عنوان IP لنقطة النهاية. تقوم هذه الحزمة بتشغيل مهمة خلفية تسمى aznfswatchdog
التي تراقب التغييرات على عنوان IP لنقطة النهاية للمشاركات المثبتة. إذا تم الكشف عن تغيير، تقوم مهمة الخلفية هذه بتحديث قواعد ترجمة عنوان الشبكة الوجهة (DNAT). لمعرفة المزيد، راجع AZNFS Mount Helper.
حدد ما إذا كانت حزمة AZNFS Mount Helper مثبتة على العميل الخاص بك.
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
إذا تم تثبيت الحزمة، فستظهر الرسالة
AZNFS mounthelper is installed!
.إذا لم يتم تثبيت الحزمة بعد، فاستخدم الأمر التالي لتثبيتها.
wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
إشعار
يتم دعم AZNFS على توزيعات Linux التالية:
- Ubuntu (18.04 LTS، 20.04 LTS، 22.04 LTS)
- RedHat7, RedHat8, RedHat9
- Rocky8, Rocky9
- SUSE (SLES 15)
الخطوة 6: تحميل الحاوية
إنشاء دليل على نظام Linux الخاص بك ثم تحميل الحاوية في حساب التخزين.
على نظام Linux الخاص بك، أنشئ دليلاً:
mkdir -p /nfsdata
قم بتركيب الحاوية باستخدام أحد الأساليب التالية. في الأسلوبين، استبدل العنصر النائبة
<storage-account-name>
باسم حساب التخزين الخاص بك، واستبدل<container-name>
باسم الحاوية الخاصة بك.لتحميل المشاركة تلقائياً عند إعادة التشغيل:
أنشئ إدخالاً في الملف /etc/fstab بإضافة السطر التالي:
<storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev 0 0
قم بتشغيل الأمر التالي لمعالجة إدخالات /etc/fstab على الفور ومحاولة تحميل المسار السابق:
mount /nfsdata
بالنسبة إلى التحميل المؤقت الذي لا يستمر عبر عمليات إعادة التشغيل، قم بتشغيل الأمر التالي:
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata
تلميح
باستخدام
-t aznfs
خيار التحميل، تأكد من أن عميل NFS يظل دائما متصلا بشكل صحيح بنقطة نهاية التخزين حتى إذا تغيرت نقطة النهاية IP بعد التحميل. قد تصبح مشاركات NFS التي يتم تحميلها باستخدام-t nfs
خيار التحميل غير متصلة بنقطة نهاية التخزين إذا تغير عنوان IP لنقطة النهاية هذه.تتوفر معلمات اختيارية أخرى مع أمر التحميل. تؤثر هذه المعلمات بشكل أساسي على سلوك العميل.
sys
هي القيمة الوحيدة التي يدعمهاsec
الخيار حاليا.هام
nconnect
يعمل خيار التحميل فقط على العملاء الذين لديهم دعم Azure nconnect. سيؤدي استخدام الخيار علىnconnect
عميل غير مدعوم إلى تقليل معدل النقل ويؤدي إلى انتهاء مهلة الأوامر أو العمل بشكل غير صحيح. لمعرفة المزيد حول كيفية التأكد من أن عميلك لديه دعم Azure nconnect، راجع زيادة عدد اتصالات TCP.
حل الأخطاء الشائعة
خطأ | السبب/الحل |
---|---|
Access denied by server while mounting |
تأكد من أن عميلك يعمل داخل شبكة فرعية مدعومة. راجع مواقع الشبكة المدعومة. |
No such file or directory |
تأكد من كتابة أمر التحميل ومعلماته بدلاً من النسخ واللصق مباشرة في المحطة الطرفية. إذا نسخت وألصقت أي جزء من هذا الأمر في المحطة الطرفية من تطبيق آخر، فقد تتسبب الأحرف المخفية في المعلومات المُلصقة في ظهور هذا الخطأ. قد يظهر هذا الخطأ أيضاً إذا لم يتم تمكين الحساب لـ NFS 3.0. |
Permission denied |
الوضع الافتراضي لحاوية NFS 3.0 المُنشأة حديثاً هو 0750. لا يمكن للمستخدمين غير الجذر الوصول إلى وحدة التخزين. إذا كان الوصول من المستخدمين غير الجذر مطلوباً، فيجب على المستخدمين الجذر تغيير الوضع إلى 0755. عينة الأمر: sudo chmod 0755 /nfsdata |
EINVAL ("Invalid argument" ) |
يمكن أن يظهر هذا الخطأ عند محاولة عميل القيام بما يلي: |
EROFS ("Read-only file system" ) |
يمكن أن يظهر هذا الخطأ عند محاولة عميل القيام بما يلي: |
NFS3ERR_IO/EIO ("Input/output error" ) |
يمكن أن يظهر هذا الخطأ عندما يحاول عميل قراءة أو كتابة أو تعيين سمات على كائنات ثنائية كبيرة الحجم مُخزنة في طبقة تخزين الأرشيف. |
خطأ OperationNotSupportedOnSymLink |
يمكن إرجاع هذا الخطأ أثناء عملية الكتابة عبر Blob Storage أو Azure Data Lake Storage API. لا يسمح باستخدام واجهات برمجة التطبيقات هذه لكتابة أو حذف الارتباطات الرمزية التي تم إنشاؤها باستخدام NFS 3.0. تأكد من استخدام نقطة نهاية NFS 3.0 للعمل مع الارتباطات الرمزية. |
mount: /nfsdata: bad option; |
قم بتثبيت برنامج مساعد NFS باستخدام sudo apt install nfs-common . |
Connection Timed Out |
تأكد من أن العميل يسمح بالاتصال الصادر من خلال المنفذين 111 و2048. يستخدم بروتوكول NFS 3.0 هذه المنافذ. تأكد من تحميل حساب التخزين باستخدام نقطة نهاية خدمة Blob وليس نقطة نهاية Data Lake Storage. |
القيود واستكشاف الأخطاء وإصلاحها ل AZNFS Mount Helper
راجع AZNFS Mount Helper.