كيفية إدخال تخزين كائن ثنائي كبير الحجم كنظام ملفات باستخدام blobfuse

نظرة عامة

Blobfuse هو برنامج تشغيل نظام الملفات الظاهري لخدمة Azure Blob storage. يتيح لك Blobfuse الوصول إلى كتلة بيانات كائن ثنائي كبير الحجم الموجودة في حساب التخزين الخاص بك من خلال نظام ملفات Linux. يستخدم Blobfuse مخطط الدليل الظاهري مع الشرطة المائلة للأمام «/» كمحدد.

يوضح لك هذا الدليل كيفية استخدام blobfuse، وإدخال حاوية تخزين كائن ثنائي كبير الحجم على Linux والوصول إلى البيانات. لمعرفة المزيد عن blobfuse، راجع الملف readme و wiki.

تحذير

لا يضمن Blobfuse الامتثال لـ POSIX بنسبة 100% لأنه ببساطة يترجم الطلبات إلى واجهات برمجة تطبيقات الكائن الثنائي كبير الحجم REST. على سبيل المثال، عمليات إعادة التسمية ذرية في POSIX، ولكن ليس في blobfuse. للحصول على قائمة كاملة بالاختلافات بين نظام الملفات الأصلي وblobfuse، قم بزيارةمستودع التعليمات البرمجية المصدر blobfuse.

تثبيت blobfuse على Linux

تتوفر ثنائيات Blobfuse على مستودعات برامج Microsoft لنظام التشغيل Linux لتوزيعات Ubuntu و Debian و SUSE و CentOS و Oracle Linux و RHEL. لتثبيت blobfuse على هذه التوزيعات، قم بتكوين أحد المستودعات من القائمة. يمكنك أيضًا إنشاء الثنائيات من التعليمات البرمجية المصدر باتباع خطوات تثبيت تخزين Azure إذا لم تكن هناك ثنائيات متوفرة للتوزيع الخاص بك.

يتم نشر Blobfuse في مستودع Linux لإصدارات Ubuntu: 16.04 و18.04 و20.04، إصدارات RHEL: 7.5 و7.8 و7.9 و8.0 و8.1 و8.2 وإصدارات CentOS: 7.0 و8.0 وإصدارات Debian: 9.0 و10.0 وإصدار SUSE: 15 وOracleLinux 8.1. قم بتشغيل هذا الأمر للتأكد من نشر أحد هذه الإصدارات:

lsb_release -a

تكوين مستودع حزم Microsoft

كوّن مستودع حزمة Linux لمنتجات Microsoft.

على سبيل المثال، على توزيع Enterprise Linux 8:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm

وبالمثل، قم بتغيير عنوان موقع الويب .../rhel/7/... للإشارة إلى توزيع Enterprise Linux 7.

مثال آخر على توزيع Ubuntu 20.04:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

وبالمثل، قم بتغيير عنوان موقع الويب إلى .../ubuntu/16.04/... أو .../ubuntu/18.04/... للإشارة إلي إصدار Ubuntu آخر.

تثبيت blobfuse

على توزيع Ubuntu/ Debian:

sudo apt-get install blobfuse

على توزيع Enterprise Linux:

sudo yum install blobfuse

على توزيع SUSE:

sudo zypper install blobfuse

الاستعداد للإدخال

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

ملاحظة

يخزن Blobfuse كافة محتويات الملف المفتوح في المسار المؤقت. تأكد من وجود مساحة كافية لاستيعاب جميع الملفات المفتوحة.

(اختياري) استخدام محرك الذاكرة العشوائية للمسار المؤقت

يقوم المثال التالي بإنشاء قرص محرك الذاكرة العشوائية سعة 16 جيجابايت ودليل لـ blobfuse. اختر الحجم استنادًا إلى احتياجاتك. يسمح قرص محرك الذاكرة العشوائية هذا لـ blobfuse بفتح ملفات يصل حجمها إلى 16 جيجابايت.

sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfusetmp
sudo chown <youruser> /mnt/ramdisk/blobfusetmp

استخدام محرك أقراص ذا الحالة الصلبة كمسار مؤقت

في Azure، يمكنك استخدام الأقراص سريعة الزوال (SSD) المتوفرة على الأجهزة الظاهرية لتوفير مخزن مؤقت منخفض الكمون لـ blobfuse. اعتمادًا على عامل التوفير المستخدم، سيتم تركيب القرص سريع الزوال على «/mnt» لـ cloud-init أو «/mnt/resource» للأجهزة الظاهرية waagent.

تأكد من أن المستخدم لديه حق الوصول إلى المسار المؤقت:

sudo mkdir /mnt/resource/blobfusetmp -p
sudo chown <youruser> /mnt/resource/blobfusetmp

تخويل الوصول إلى حساب التخزين الخاص بك

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

على سبيل المثال، لنفترض أنك تقوم بتخويل استخدام مفاتيح الاختصار إلى الحساب وتخزينها في ملف تكوين. يجب أن يكون URL بالتنسيق التالي:

accountName myaccount
accountKey storageaccesskey
containerName mycontainer

هذا accountName هو اسم حساب التخزين الخاص بك، وليس عنوان URL الكامل.

أنشئ هذا الملف باستخدام:

touch /path/to/fuse_connection.cfg

بمجرد إنشاء هذا الملف وتحريره، تأكد من تقييد الوصول حتى لا يتمكن أي مستخدم آخر من قراءته.

chmod 600 /path/to/fuse_connection.cfg

ملاحظة

إذا قمت بإنشاء ملف التكوين على Windows، فتأكد من التشغيل dos2unix لتعقيم الملف وتحويله إلى تنسيق Unix.

إنشاء دليل فارغ للإدخال

mkdir ~/mycontainer

تثبيت

ملاحظة

للحصول على قائمة كاملة بخيارات التركيب، تحقق من مستودع blobfuse.

لإدخال blobfuse، قم بتشغيل الأمر التالي مع المستخدم. يقوم هذا الأمر بإدخال الحاوية المحددة في «/path/to/fuse_connection.cfg» على الموقع «/mycontainer».

blobfuse ~/mycontainer --tmp-path=/mnt/resource/blobfusetmp  --config-file=/path/to/fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120

ملاحظة

إذا كنت تستخدم حساب ADLS، فيجب عليك تضمين --use-adls=true.

يجب أن يكون لديك الآن حق الوصول إلى الكتلة الكائن الثنائي كبير الحجم الخاصة بك من خلال واجهات برمجة تطبيقات نظام الملفات العادية. المستخدم الذي يقوم بتحميل الدليل هو الشخص الوحيد الذي يمكنه الوصول إليه، افتراضيًّا، مما يؤمن الوصول. للسماح بالوصول إلى جميع المستخدمين، يمكنك الإدخال عبر الخيار -o allow_other.

cd ~/mycontainer
mkdir test
echo "hello world" > test/blob.txt

استمر في التحميل

لمعرفة كيفية الاستمرار في الإدخال، راجع الاستمرار في blobfuse wiki.

دعم الميزة

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

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

1 تتطلب كل من Data Lake Storage Gen2 و Network File System (NFS) 3.0 وSSH File Transfer Protocol (SFTP) حساب تخزين مع تمكين مساحة اسماء هرمية.

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