لماذا نظام ملفات ZFS في Linux Ubuntu جيد جدًا؟

نظام ملفات ZFS في Linux Ubuntu: ما هي خصائص هيكله و مزاياه وعيوبه؟ دعنا نستكشفها في مقال اليوم ونكتشف ذلك.

لماذا نظام ملفات ZFS في Linux Ubuntu جيد جدًا؟

ZFS أو Zettabyte File System هو نظام ملفات خاص تم إنشاؤه في البداية بواسطة Sun Microsystems لنظام التشغيل المسمى Solaris. وهو يدعم كميات هائلة من البيانات، ويجمع بين مفاهيم نظام الملفات، والقرص المادي ومدير وحدة التخزين، ويوفر طرق إدارة بسيطة لوحدات التخزين.

إنه نظام ملفات من الجيل التالي مصمم في البداية لحلول NAS مع تحسين الأمان والموثوقية والأداء. على عكس العديد من الأنظمة الأخرى، فإن ZFS هو نظام ملفات 128 بت يوفر سعة غير محدودة تقريبًا. ZFS هو مشروع مفتوح المصدر مرخص بموجب CDDL (رخصة تطوير وتوزيع مشتركة).

ZFS - Zettabyte File System Structure

إذا كنت تريد إستخدام ZFS “خارج الصندوق”، فسيتعين عليك تثبيت إما FreeBSD أو نظام تشغيل بإستخدام نواة illumos (illumos هي شوكة من نواة OpenSolaris).

إذا كنت ترغب في إستخدام نظام الملفات ZFS على نظام التشغيل Ubuntu، فأنت بحاجة إلى إضافة ميزات الدعم يدويًا – ولكن هذا شيء سهل جدًا للقيام به ويتضمن تشغيل بعض الأوامر. سنستكشفها بالتفصيل لاحقًا، لكن دعنا نتحدث الآن عن إيجابيات وسلبيات نظام الملفات هذا.

إذهب للعرض
ZFS File System on Linux Ubuntu and Its Key Advantages

ZFS File System on Linux Ubuntu and Its Key Advantages

مميزات ZFS

بالحديث عن مزايا ZFS، يمكن تمييز ما يلي:

لديه نمط مبسط للإدارة.

فهو يجمع بين إدارة وحدات التخزين و مصفوفات RAID ونظام الملفات. كل ما تحتاجه لإدارة وحدات التخزين ومستويات التكرار وأنظمة الملفات ونسب الضغط ونقاط التحميل هو عدد قليل من الأوامر.

يبسط هذا النهج أيضًا المراقبة نظرًا لوجود مستويات أقل يجب مراعاتها.

ميزة أخرى تتعلق بضمان سلامة البيانات.

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

أيضًا، ZFS قابل للتطوير تمامًا مع إمكانية إضافة أجهزة تخزين جديدة وخيارات إدارة ذاكرة التخزين المؤقت وما إلى ذلك.

ميزة النسخ عند الكتابة.

في معظم أنظمة الملفات، تُفقد البيانات إلى الأبد عند الكتابة فوقها. من ناحية أخرى، في ZFS، تتم كتابة المعلومات الجديدة في كتلة مختلفة.

ميزة النسخ عند الكتابة

عند إكتمال عملية الكتابة، يتم تحديث البيانات الأولية لأنظمة الملفات للإشارة إلى المعلومات الجديدة. يساعد هذا في الحفاظ على البيانات القديمة في حالة تعطل النظام (أو حدث شيء سيئ آخر).

يتميز نظام الملفات هذا بخيارات تخزين متكاملة

  • النسخ المتماثل – عملية إنشاء نسخ من شيء ما.

  • Deduplication – إلغاء المكرر- تقنية لإزالة النسخ المكررة من البيانات المتكررة وتقليل حمل التخزين.

    إلغاء المكرر
  • الضغط هو الخيار الذي يوفر مساحة القرص ويضيف المزيد من السرعة، حيث يتم تقليل عدد وحدات البت المطلوبة لتمثيل البيانات.

  • اللقطات هي إنعكاسات متسقة للبيانات الكاملة التي تمثل النموذج الذي كانت موجودة فيه في نقطة زمنية واحدة.

    اللقطات
  • النسخ هي نسخ متطابقة من شيء ما.

قيود ZFS

ومع ذلك، تمامًا مثل أي نظام ملفات آخر، فإن ZFS لديه بعض العيوب.

عندما يتم إستخدام سعة التخزين بنسبة 80٪ أو أكثر، فإن أداء ZFS يميل إلى التدهور بشكل كبير.

هذه مشكلة شائعة للعديد من أنظمة الملفات. عندما يستهلك المجموعة الحالي ما يصل إلى 80٪ من مساحة التخزين المتاحة، يجب عليك إما توسعة المجموعة أو نقله إلى نظام تخزين بسعة أكبر.

لا توجد فرص لتقليص مجموعة التخزين.

لا يمكنك إزالة الأجهزة أو vdevs (إختصار للأجهزة الإفتراضية) من المجموعة بعد إضافتها.

أيضًا، هناك قيود في تغيير نوع التكرار.

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

تثبيت ZFS على نظام التشغيل Ubuntu

دعنا الآن نستكشف كيفية تثبيت ZFS على نظام تشغيل Linux، مع مثال Ubuntu الإصدار 20.04.

ستحتاج إلى Terminal للتثبيت، لذا إضغط على إختصار لوحة المفاتيح Ctrl+Alt+T لفتحه.

ثم قم بتشغيل هذا الأمر:

$ sudo apt update

للتحقق من تحديثات التطبيق. عند إدخال الأمر، سيطلب منك النظام كلمة مرور الجذر؛ إكتبه و أضغط على Enter.

sudo apt update

وهذا للتثبيت:

$ sudo apt install zfsutils-linux

sudo apt install zfsutils-linux

إكتب yلتأكيد أمر التثبيت و إضغط على Enter. ستبدأ عملية تثبيت البرنامج.

للتحقق من تثبيت ZFS، إستخدم هذا الأمر:

$ zfs –version

تحقق من إصدار ZFS المثبت

نتيجة لذلك، سيتم عرض إصدار البرنامج. يمكنك الآن إنشاء مجموعة تخزين بإستخدام جهاز إفتراضي vdev.

مجموعة التخزين

مجموعة التخزين هي مجموعة تتضمن جهازًا إفتراضيًا واحدًا أو عدة أجهزة حيث يمكن تخزين البيانات. مجموعة ZFS، المعروفة أيضًا بإسم Zpool، هي حاوية بيانات عالية المستوى في هذا نظام من الملفات. يتم إستخدامها لإنشاء نظام أو أكثر من أنظمة الملفات (مجموعات البيانات) أو حظر الأجهزة (وحدات التخزين). تصبح أنظمة الملفات والأجهزة هذه قادرة بعد ذلك على إستخدام مساحة المجموعات المتبقية. سيتم تنفيذ جميع عمليات التقسيم والتنسيق بواسطة نظام ملفات ZFS.

جهاز إفتراضي (vdev)

قد يتكون الجهاز الإفتراضي (vdev) من جهاز مادي واحد أو أكثر. يمكن أن يكون مجموعة أو جزءًا منها، ويمكن أن يكون له مستويات مختلفة من التكرار - المرآة، المرآة ثلاثية الإتجاهات، RAIDZ ،RAIDZ-2 أو RAIDZ-3.

RAID-Z هي تنفيذ لمصفوفة RAID-5 معدلة. في نظام ZFS، تم تصميمها للتغلب على خطأ ثقب الكتابة، والذي غالبًا ما يؤثر على أنظمة RAID-5 التقليدية. تتطلب RAID-Z1 ثلاثة أقراص على الأقل: إثنان لتخزين البيانات وواحد للتكافؤ.

يجب أن تحتوي مصفوفة RAID-Z2 على أربعة أقراص على الأقل - إثنان للتخزين و إثنان للتكافؤ.

RAID-Z2

أخيرًا، بالنسبة إلى RAID-Z3، تحتاج إلى قرصين على الأقل للتخزين، وثلاثة أقراص للتكافؤ.

RAID-Z3

كيفية إنشاء RAIDz

دعنا الآن نتعرف على كيفية إنشاء نظام RAID-Z مع مجموعة من محركات الأقراص. في البداية، دعنا نقرر محركات الأقراص التي يجب تضمينها.

إستخدم الأداة المساعدة fdisk لمعرفة محركات الأقراص المتصلة وهل إذا كانت مناسبة لغرضك. قم بتشغيل هذا الأمر لسرد محركات الأقراص:

$ sudo fdisk -l

نتيجة لذلك، سترى قائمة بمحركات الأقراص مع معلومات مفصلة عن كل منها.

تحقق من الأقراص المتصلة

من أجل التوضيح، سأشرح لك كيفية إنشاء RAID-Z1 - إنها مرادفة لـ RAID 5 بمحرك أقراص تماثل واحد. يتيح لك تصميمها إستخدام المصفوفة والحفاظ على بياناتك سليمة حتى في حالة فشل أحد محركات الأقراص.

لدي ثلاثة أقراص صلبة مدرجة كـ / dev/sdd و/dev/sde و/dev / sdf. سأقوم بإنشاء تجمع بإسم "zdata". إليك أمر الإستخدام:

$ sudo zpool create ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf

$ sudo zpool create zdata raidz /dev/sdd /dev/sde /dev/sdf

Create a pool with the name zdata

إذا كان هناك خطأ، يمكنك تشغيل هذا الأمر بإضافة -f بعد "zpool create" - فإنه يفرض الأمر.

$ sudo zpool create -f ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf

للعثور على نقطة التثبيت، قم بتشغيل الأمر df -h بعد إنشاء التجمع:

$ df –h

إبحث عن نقطة التركيب

تم تركيب المجموعة في / zdata. لتعديل نقطة التثبيت للمجموعة الخاصة بك، إستخدم الصيغة التالية:

$ sudo zfs set mountpoint =<path> <pool_name>

في هذا المثال، قمت بإستخدام / var / pool كنقطة تحميل جديدة.

$ sudo zfs set mountpoint=/var/pool zdata

دعونا نتحقق من النقطة الجديدة:

$ df –h

تحقق من نقطة التركيب الجديدة

يمكنك إنشاء الدلائل في مجموعة التخزين. على سبيل المثال، لنقم بإنشاء دليل بإسم mydata.

$ sudo zfs create zdata/mydata

لعرض جميع مجموعات تخزين ZFS في هذا النظام، قم بتشغيل الأمر التالي:

$ zpool list

عرض جميع مجموعات تخزين ZFS في هذا النظام

لمعرفة الإعدادات والحالة لكل جهاز داخل مجموعة ZFS، قم بإستخدام أمر الحالة.

$ zpool status

لعرض الأحداث والتخلص من المشكلات، هناك أمر آخر:

$ sudo zpool events zdata –v

شاهد إعدادات وحالة كل جهاز داخل مجموعة ZFS

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

$ sudo zpool add zdata /dev/sdb

بعد إضافة القرص، دعنا نعرض حالة المجموعة:

$ zpool status

أضف قرصًا صلبا آخر إلى مجموعة تخزين ZFS

أخيرًا، الأمر الأخير الذي يمكن إستخدامه لإزالة مجموعة تخزين ZFS.

$ sudo zpool destroy zdata

كيفية إنشاء لقطات ZFS وإستردادها وإزالتها

يتيح لك نظام الملفات هذا إنشاء لقطات من مجموعتك.

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

لإنشاء لقطات، إستخدم الأمر - zfs snapshot، متبوعًا بإسم اللقطة. في هذا المثال، إستخدمت zdata/mydata لإنشاء لقطة.

$ sudo zfs snapshot zdata/mydata@snap1

إستخدم الأمر التالي للتحقق من اللقطة:

$ zfs list -t snapshot

قم بإنشاء لقطة مجموعة ZFS

يمكن إعادة تسمية اللقطة إذا لزم الأمر:

sudo zfs rename zdata/mydata@snap1 zdata/mydata@snap2

يمكنك إلغاء التغييرات عن طريق التراجع عن اللقطة. ومع ذلك، فهذا يعني أنك ستفقد جميع التغييرات التي حدثت بعد إنشاء اللقطة.p>

للعودة إلى لقطة معينة، قم بتشغيل الأمر zfs rollback بإسم لقطة معينة. سيؤدي هذا إلى إلغاء جميع الإجراءات التي تم إتخاذها في هذا الدليل بعد إنشاء اللقطة.

$ sudo zfs rollback test-pool/mydata@snap1

قم بلف ZFS إلى اللقطة المطلوبة

سيؤدي هذا الأمر إلى إرجاع النظام إلى تاريخ معين.

عند إكتمال عملية العودة، يمكنك التحقق من توفر الملفات التي تم حذفها بعد إنشاء اللقطة في الدليل.

إرسال وإستقبال ZFS

يمكن حفظ اللقطات في ملف ثم إستعادتها، وهو أمر مثالي لإنشاء نسخة إحتياطية أو لإرسال نسخة عبر الشبكة (على سبيل المثال، بإستخدام SSH) لنسخ نظام الملفات.

يرسل الأمر "يتلقى الأمر "Receipt" مثل هذا التدفق ويكتب نسخة من لقطة إلى نظام الملفات ZFS." لقطة لنظام الملفات يمكن إعادة توجيهها إلى ملف أو إلى جهاز آخر في التدفق. يتلقى الأمر "Receipt" مثل هذا التدفق ويكتب نسخة من لقطة إلى نظام الملفات ZFS.

على سبيل المثال، دعنا ننشئ لقطة أخرى و نحفظها في ملف، بإستخدام هذا الأمر:

sudo zfs snapshot -r zdata/mydata@snap3

sudo zfs send zdata/mydata@snap2> ~/mydata-snap.zfs

قم بإنشاء لقطة وحفظها في ملف

ثم دعونا نستعيدها بأمر آخر:

sudo zfs receive -F zdata/mydata-copy < ~/mydata-snap.zfs

إسترداد لقطة من ملف

بإستخدام برامج نصية إضافية، يمكنك تكوين نظام الملفات لإنشاء لقطات تلقائيًا وإرسالها إلى خادم بإستخدام بروتوكول SSH.

ضغط بيانات ZFS

كما ذكرت من قبل، يتيح لك ZFS ضغط البيانات تلقائيًا. مع الأخذ في الإعتبار قوة الحوسبة لوحدات المعالجة المركزية الحالية، فإن هذا الخيار مفيد للغاية، لأن الحجم المنخفض للبيانات يعني أن هناك بيانات أقل يمكن قراءتها وكتابتها فعليًا، مما يؤدي إلى عمليات إدخال/إخراج أسرع. تقدم ZFS مجموعة واسعة من طرق الضغط. الخيار القياسي هو lz4 (بديل عالي الأداء لـ lzjb) الذي يوفر ضغطًا وإستخراجًا أسرع مقارنةً بـ lzjb، أثناء إستخدام نسبة ضغط أعلى إلى حد ما. لتغيير نسبة الضغط، إستخدم هذا الأمر:

sudo zfs set compression=gzip-9 zdata

أو حتى تغيير نوع الضغط بأمر آخر:

sudo zfs set compression=lz4 zdata

يمكنك التحقق من نسبة الضغط المستخدمة حاليًا بإستخدام هذا الأمر:

sudo zfs get compressratio

ضغط بيانات ZFS

الخيار الأكثر أمانًا هو lz4، لأنه أسرع بكثير من الخيارات الأخرى، بينما يحتفظ بمستوى أداء جيد جدًا.

الخلاصة

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

إذا كان لديك أي مشاكل مع فقدان البيانات من ZFS و RAID-Z، فجرّب برنامج Hetman RAID Recovery. سيساعدك بالتأكيد على إسترداد الملفات المحذوفة عن طريق الخطأ من نظام ملفات ZFS، أو الوصول إلى البيانات المخزنة في مجموعة RAID-Z التالفة. سيكون هذا البرنامج مفيدًا إذا إختفت معلوماتك نتيجة لأخطاء أو تنسيق أو إستبدال أو سيناريوهات شائعة أخرى لفقدان البيانات.

Abdelhamid Balti

المؤلف: , كاتب تقني

عبد الحميد البلطي كاتب تقني في شركة Hetman Software. يتعامل مع البرامج التعليمية والإرشادات والمراجعات التفصيلية حول كيفية عمل أدوات وبرامج الشركة مع جميع أنواع أجهزة تخزين البيانات.

Mykhailo Miroshnichenko

محرر: , كاتب تقني

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

نوصى به لك

يرحب بك مساعد Hetman Software، الذي تم إنشاؤه على أساس الذكاء الإصطناعي.
ابدأ الدردشة