اكتشف لماذا نظام ملفات ZFS هو الأفضل في Linux Ubuntu!
نظام ملفات ZFS في Linux Ubuntu: ما هي خصائص هيكله و مزاياه وعيوبه؟ دعنا نستكشفها في مقال اليوم ونكتشف ذلك.
- مميزات ZFS
- قيود ZFS
- تثبيت ZFS على نظام التشغيل Ubuntu
- كيفية إنشاء RAIDz
- كيفية إنشاء لقطات ZFS وإستردادها وإزالتها
- إرسال وإستقبال ZFS
- ضغط بيانات ZFS
- الخلاصة
- أسئلة وأجوبة
- التعليقات
ZFS أو Zettabyte File System هو نظام ملفات خاص تم إنشاؤه في البداية بواسطة Sun Microsystems لنظام التشغيل المسمى Solaris. وهو يدعم كميات هائلة من البيانات، ويجمع بين مفاهيم نظام الملفات، والقرص المادي ومدير وحدة التخزين، ويوفر طرق إدارة بسيطة لوحدات التخزين.
إنه نظام ملفات من الجيل التالي مصمم في البداية لحلول NAS مع تحسين الأمان والموثوقية والأداء. على عكس العديد من الأنظمة الأخرى، فإن ZFS هو نظام ملفات 128 بت يوفر سعة غير محدودة تقريبًا. ZFS هو مشروع مفتوح المصدر مرخص بموجب CDDL (رخصة تطوير وتوزيع مشتركة).
الميزة | الوصف |
---|---|
دعم كميات كبيرة من البيانات | يدعم ZFS كميات هائلة من البيانات، مما يسمح بتخزين ما يصل إلى إكسابايت من المعلومات. |
دمج نظام الملفات وإدارة وحدات التخزين | يجمع بين نظام الملفات ومدير الوحدات، مما يوفر إدارة مبسطة لمساحة القرص. |
لقطات فورية (snapshots) | يتيح إنشاء لقطات فورية لنظام الملفات لاستعادة البيانات بسرعة دون استخدام كبير للموارد. |
حماية من تلف البيانات | آليات مدمجة للتحقق من سلامة البيانات باستخدام التجزئة لمنع التلف. |
الازدواجية في البيانات (RAID-Z) | يوفر مستويات مختلفة من حماية البيانات من خلال ميزات RAID-Z المدمجة للحماية من الفقدان. |
ضغط البيانات | يوفر ضغط فعال للبيانات، مما يساعد على توفير مساحة على القرص. |
استنساخ أنظمة الملفات | يتيح إنشاء نسخ مستنسخة مباشرة من اللقطات للاختبار أو التطوير. |
تشفير | يدعم تشفير البيانات لحماية المعلومات الحساسة. |
إذا كنت تريد إستخدام ZFS “خارج الصندوق”، فسيتعين عليك تثبيت إما FreeBSD أو نظام تشغيل بإستخدام نواة illumos (illumos هي شوكة من نواة OpenSolaris).
إذا كنت ترغب في إستخدام نظام الملفات ZFS على نظام التشغيل Ubuntu، فأنت بحاجة إلى إضافة ميزات الدعم يدويًا – ولكن هذا شيء سهل جدًا للقيام به ويتضمن تشغيل بعض الأوامر. سنستكشفها بالتفصيل لاحقًا، لكن دعنا نتحدث الآن عن إيجابيات وسلبيات نظام الملفات هذا.
مميزات 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 install zfsutils-linux
إكتب yلتأكيد أمر التثبيت و إضغط على Enter. ستبدأ عملية تثبيت البرنامج.
للتحقق من تثبيت ZFS، إستخدم هذا الأمر:
$ zfs –version
نتيجة لذلك، سيتم عرض إصدار البرنامج. يمكنك الآن إنشاء مجموعة تخزين بإستخدام جهاز إفتراضي vdev.
مجموعة التخزين هي مجموعة تتضمن جهازًا إفتراضيًا واحدًا أو عدة أجهزة حيث يمكن تخزين البيانات. مجموعة ZFS، المعروفة أيضًا بإسم Zpool، هي حاوية بيانات عالية المستوى في هذا نظام من الملفات. يتم إستخدامها لإنشاء نظام أو أكثر من أنظمة الملفات (مجموعات البيانات) أو حظر الأجهزة (وحدات التخزين). تصبح أنظمة الملفات والأجهزة هذه قادرة بعد ذلك على إستخدام مساحة المجموعات المتبقية. سيتم تنفيذ جميع عمليات التقسيم والتنسيق بواسطة نظام ملفات ZFS.
قد يتكون الجهاز الإفتراضي (vdev) من جهاز مادي واحد أو أكثر. يمكن أن يكون مجموعة أو جزءًا منها، ويمكن أن يكون له مستويات مختلفة من التكرار - المرآة، المرآة ثلاثية الإتجاهات، RAIDZ ،RAIDZ-2 أو RAIDZ-3.
RAID-Z هي تنفيذ لمصفوفة RAID-5 معدلة. في نظام ZFS، تم تصميمها للتغلب على خطأ ثقب الكتابة، والذي غالبًا ما يؤثر على أنظمة RAID-5 التقليدية. تتطلب RAID-Z1 ثلاثة أقراص على الأقل: إثنان لتخزين البيانات وواحد للتكافؤ.
يجب أن تحتوي مصفوفة RAID-Z2 على أربعة أقراص على الأقل - إثنان للتخزين و إثنان للتكافؤ.
أخيرًا، بالنسبة إلى 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
إذا كان هناك خطأ، يمكنك تشغيل هذا الأمر بإضافة -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، قم بإستخدام أمر الحالة.
$ zpool status
لعرض الأحداث والتخلص من المشكلات، هناك أمر آخر:
$ sudo zpool events zdata –v
إذا كنت بحاجة إلى إضافة قرص صلب آخر إلى مجموعة تخزين ZFS، فيجب عليك تشغيل هذا الأمر بإسم القرص المراد إضافته.
$ sudo zpool add zdata /dev/sdb
بعد إضافة القرص، دعنا نعرض حالة المجموعة:
$ zpool status
أخيرًا، الأمر الأخير الذي يمكن إستخدامه لإزالة مجموعة تخزين ZFS.
$ sudo zpool destroy zdata
كيفية إنشاء لقطات ZFS وإستردادها وإزالتها
يتيح لك نظام الملفات هذا إنشاء لقطات من مجموعتك.
اللقطة هي نسخة للقراءة فقط في الوقت المناسب من نظام الملفات الذي تم إنشاؤه في لحظة معينة. يمكنك إنشاء لقطات لمجموعات بيانات أو مجموعات بيانات كاملة. تتضمن اللقطة إصدارًا أصليًا من نظام الملفات مع جميع التغييرات التي تم إجراؤها بعد إنشاء هذه اللقطة. بعبارة أخرى، إنها نسخة للقراءة فقط من الإختلافات.
لإنشاء لقطات، إستخدم الأمر - zfs snapshot، متبوعًا بإسم اللقطة. في هذا المثال، إستخدمت zdata/mydata لإنشاء لقطة.
$ sudo zfs snapshot zdata/mydata@snap1
إستخدم الأمر التالي للتحقق من اللقطة:
$ zfs list -t snapshot
يمكن إعادة تسمية اللقطة إذا لزم الأمر:
sudo zfs rename zdata/mydata@snap1 zdata/mydata@snap2
يمكنك إلغاء التغييرات عن طريق التراجع عن اللقطة. ومع ذلك، فهذا يعني أنك ستفقد جميع التغييرات التي حدثت بعد إنشاء اللقطة.p>
للعودة إلى لقطة معينة، قم بتشغيل الأمر zfs rollback بإسم لقطة معينة. سيؤدي هذا إلى إلغاء جميع الإجراءات التي تم إتخاذها في هذا الدليل بعد إنشاء اللقطة.
$ sudo zfs rollback test-pool/mydata@snap1
سيؤدي هذا الأمر إلى إرجاع النظام إلى تاريخ معين.
عند إكتمال عملية العودة، يمكنك التحقق من توفر الملفات التي تم حذفها بعد إنشاء اللقطة في الدليل.
إرسال وإستقبال 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
الخيار الأكثر أمانًا هو lz4، لأنه أسرع بكثير من الخيارات الأخرى، بينما يحتفظ بمستوى أداء جيد جدًا.
الخلاصة
كل الأشياء التي تم أخذها في الإعتبار، من الواضح أن ZFS هو نظام الملفات ليقدم لك مجموعة واسعة من الفرص. لا يتيح لك فقط إدارة بياناتك بطريقة فعالة ومبتكرة للغاية، بل يمكنه أيضًا إسترداد البيانات دون مقاطعة عملك، في حالة حدوث حالة طارئة. علاوة على ذلك، إذا كان هناك خطأ أو فشل في النظام، فيمكن إسترداد النظام بأكمله بسهولة بإستخدام ميزة اللقطات، لذلك ستعود إلى الحالة التي كان عليها في وقت معين.
إذا كان لديك أي مشاكل مع فقدان البيانات من ZFS و RAID-Z، فجرّب برنامج Hetman RAID Recovery. سيساعدك بالتأكيد على إسترداد الملفات المحذوفة عن طريق الخطأ من نظام ملفات ZFS، أو الوصول إلى البيانات المخزنة في مجموعة RAID-Z التالفة. سيكون هذا البرنامج مفيدًا إذا إختفت معلوماتك نتيجة لأخطاء أو تنسيق أو إستبدال أو سيناريوهات شائعة أخرى لفقدان البيانات.
الميزة | الوصف |
---|---|
دعم مجموعات RAID | يدعم البرنامج أنواعًا مختلفة من مجموعات RAID، بما في ذلك RAID 0، RAID 1، RAID 5، RAID 10، وتكوينات مخصصة. |
الكشف التلقائي عن المعلمات | يكتشف تلقائيًا معلمات المجموعة مثل حجم الكتلة وترتيب الأقراص والخصائص الرئيسية الأخرى. |
استعادة البيانات | القدرة على استعادة البيانات من مجموعات RAID التالفة أو المحذوفة، وكذلك الاسترداد بعد أخطاء أو أعطال التكوين. |
معاينة الملفات | يسمح بمعاينة الملفات قبل الاستعادة لتقييم الجودة والتحقق من البيانات. |
دعم أنظمة الملفات | يدعم أنظمة الملفات مثل FAT وNTFS وReFS وHFS+ وExt2/3/4 وZFS وغيرها. |
واجهة سهلة الاستخدام | واجهة سهلة الاستخدام مع معالج خطوة بخطوة لاستعادة البيانات. |