JFS (نظام الملفات)

نظام الملفات المُسجّل ( JFS ) هو نظام ملفات مُسجّل 64 بت، من تطوير شركة IBM . يتوفر منه إصدارات لأنظمة التشغيل AIX و OS/2 و eComStation و ArcaOS و Linux . يُتاح نظام Linux كبرنامج مجاني بموجب شروط رخصة جنو العمومية (GPL). يحتوي نظام HP-UX على نظام ملفات آخر مختلف يُسمى JFS، وهو في الواقع إصدار مُصنّع من قِبل مُصنّعي المعدات الأصلية (OEM) لنظام VxFS من شركة Veritas Software .

في نظام التشغيل AIX، يوجد جيلان من نظام الملفات JFS، يُطلق عليهما JFS ( JFS1 ) و JFS2 على التوالي. [ 1 ]

صُمم نظام الملفات JFS من شركة IBM في الأصل لأنظمة 32 بت . أما نظام JFS2 فقد صُمم لأنظمة 64 بت . [ 2 ]

في أنظمة تشغيل أخرى، مثل OS/2 ولينكس، يوجد الجيل الثاني فقط ويُسمى ببساطة JFS . [ 3 ] يجب عدم الخلط بين هذا وJFS في نظام AIX الذي يشير في الواقع إلى JFS1.

تاريخ

أطلقت شركة IBM نظام الملفات JFS مع الإصدار الأولي لنظام AIX الإصدار 3.1 في فبراير 1990. وكان هذا النظام، الذي يُعرف الآن باسم JFS1 على AIX ، النظام الرئيسي للملفات على AIX خلال العقد التالي، وتم تثبيته في أنظمة AIX لآلاف أو ملايين العملاء. تاريخيًا، يرتبط نظام الملفات JFS1 ارتباطًا وثيقًا بمدير الذاكرة في AIX، [ 1 ] وهو تصميم نموذجي لنظام ملفات يدعم نظام تشغيل واحد فقط. وكان JFS من أوائل أنظمة الملفات التي تدعم التسجيل (Journaling) .

في عام ١٩٩٥، بدأ العمل على تحسين نظام الملفات ليكون أكثر قابلية للتوسع ودعم الأجهزة التي تحتوي على أكثر من معالج. وكان من الأهداف الأخرى توفير نظام ملفات أكثر قابلية للنقل، قادر على العمل على أنظمة تشغيل متعددة. بعد عدة سنوات من التصميم والبرمجة والاختبار، تم إصدار نظام JFS الجديد لأول مرة في خادم OS/2 Warp للأعمال الإلكترونية في أبريل ١٩٩٩، ثم في عميل OS/2 Warp في أكتوبر ٢٠٠٠. في ديسمبر ١٩٩٩، مُنحت نسخة من مصدر JFS الأصلي لنظام OS/2 لمجتمع المصادر المفتوحة ، وبدأ العمل على نقل JFS إلى نظام Linux . ظهر أول إصدار مستقر من JFS لنظام Linux في يونيو ٢٠٠١. [ ٣ ] يتولى صيانة مشروع JFS لنظام Linux فريق صغير من المساهمين يُعرف باسم فريق JFS الأساسي . [ ٤ ] كما ساهم هذا الإصدار من المصادر في تشكيل أساس لإعادة توجيه نظام JFS مفتوح المصدر إلى نظام OS/2.

بالتوازي مع هذا الجهد، عاد بعض أعضاء فريق تطوير نظام الملفات JFS إلى مجموعة تطوير نظام التشغيل AIX في عام 1997، وبدأوا بنقل قاعدة بيانات JFS الجديدة إلى نظام التشغيل AIX. وفي مايو 2001، أُتيح نظام ملفات مُسجّل ثانٍ، وهو نظام الملفات المُسجّل المُحسّن (JFS2) ، لنظام التشغيل AIX 5L. [ 1 ] [ 3 ]

في أوائل عام 2008، انتشرت تكهنات بأن شركة IBM لم تعد مهتمة بدعم نظام ملفات JFS، وبالتالي لا ينبغي استخدامه في بيئات الإنتاج. [ 5 ] ومع ذلك، أوضح ديف كليكامب، عضو مركز تقنية لينكس التابع لشركة IBM وفريق JFS الأساسي، [ 4 ] أنهم ما زالوا يتابعون التغييرات في نواة لينكس ويحاولون إصلاح أي أخطاء برمجية محتملة . وأضاف أن بعض توزيعات لينكس تتطلب تخصيص موارد أكبر من نظام الملفات، ولذلك تختار عدم دعمه. [ 6 ]

في عام 2012، تمت إضافة دعم أمر TRIM لمحركات الأقراص الصلبة إلى JFS. [ 7 ]

سمات

يدعم نظام ملفات JFS الميزات التالية. [ 8 ] [ 9 ]

مجلة

نظام ملفات JFS هو نظام ملفات يعتمد على التسجيل . وبدلاً من إضافة التسجيل كميزة إضافية كما هو الحال في نظام ملفات ext3 ، فقد تم تنفيذه منذ البداية. يمكن أن يصل حجم سجل البيانات إلى 128 ميجابايت. يسجل JFS البيانات الوصفية فقط، مما يعني أن البيانات الوصفية ستظل متسقة، ولكن قد تتلف ملفات المستخدم بعد عطل أو انقطاع التيار الكهربائي. يشبه تسجيل JFS نظام XFS في أنه يسجل أجزاءً فقط من عقدة البيانات (inode) . [ 10 ]

شجرة B+

يستخدم نظام ملفات جافا (JFS) شجرة B+ لتسريع عمليات البحث في الدلائل. يستطيع JFS تخزين 8 مدخلات من الدليل في عقدة الدليل (inode ) قبل نقل هذه المدخلات إلى شجرة B+. كما يقوم JFS بفهرسة الامتدادات في شجرة B+.

تخصيص العقد الديناميكي

يقوم نظام ملفات JFS بتخصيص مساحة لعقد القرص ديناميكيًا حسب الحاجة. يبلغ حجم كل عقدة 512 بايت. يتم تخصيص 32 عقدة على وحدة تخزين بحجم 16 كيلوبايت.

الامتدادات

يُخصّص نظام ملفات JFS الملفات على شكل نطاق . النطاق عبارة عن سلسلة متغيرة الطول من كتل التجميع. قد يوجد النطاق في عدة مجموعات تخصيص . ولحل هذه المشكلة، تُفهرس النطاقات في شجرة B+ لتحسين الأداء عند تحديد مواقعها.

ضغط

لا يدعم نظام JFS1 على نظام AIX الضغط إلا، ويستخدم نسخة معدلة من خوارزمية LZ . ونظرًا لاستهلاكه العالي لوحدة المعالجة المركزية وزيادة تجزئة المساحة الحرة ، لا يُنصح باستخدام الضغط إلا على محطة عمل مستخدم واحد أو في مناطق النسخ الاحتياطي غير المتصلة بالإنترنت .

الإدخال/الإخراج المتزامن (CIO)

يطبق نظام ملفات JFS عادةً آلية تأمين مشتركة للقراءة وحصرية للكتابة على الملفات، مما يمنع تناقضات البيانات ولكنه يفرض تسلسل الكتابة على مستوى الملف. يعمل خيار CIO على تعطيل هذا التأمين. يمكن للتطبيقات، مثل قواعد البيانات العلائقية التي تحافظ على اتساق البيانات بنفسها، استخدام هذا الخيار لتقليل أعباء نظام الملفات إلى حد كبير. [ 11 ]

مجموعات التوزيع

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

الكتل الضخمة

يحتوي الجزء الرئيسي من البيانات على معلومات حول نظام الملفات بأكمله ويتضمن الحقول التالية:

  • حجم نظام الملفات
  • عدد كتل البيانات في نظام الملفات
  • مؤشر يدل على حالة نظام الملفات
  • أحجام مجموعات التخصيص
  • حجم كتلة نظام الملفات

على نظام لينكس

في نظام التشغيل لينكس، يُدعم نظام الملفات JFS من خلال وحدة النواة (منذ إصدار النواة 2.4.18pre9-ac4 ) وأدوات مساحة المستخدم التكميلية المعبأة تحت اسم JFSutils . تدعم معظم توزيعات لينكس نظام الملفات JFS ما لم يُحذف تحديدًا بسبب قيود المساحة، كما هو الحال في الأقراص المدمجة الحية .

وفقًا لمعايير أنظمة الملفات المتاحة لنظام لينكس، فإن نظام JFS سريع وموثوق، ويتمتع بأداء جيد باستمرار تحت أنواع مختلفة من الأحمال. [ 12 ]

يُعدّ استخدام نظام ملفات JFS في لينكس غير شائع، ومع ذلك، فإنّ JFS له دور متخصص في لينكس: فهو يوفر خيار ربط غير حساس لحالة الأحرف، على عكس معظم أنظمة ملفات لينكس الأخرى. [ 13 ]

توجد أيضًا مشاكل محتملة مع نظام ملفات جافا (JFS)، مثل آلية تنفيذه لعمليات الكتابة في السجل. إذ يمكن تأجيل هذه العمليات حتى ظهور مُحفِّز آخر، وربما إلى أجل غير مسمى، مما قد يتسبب في فقدان البيانات على مدى فترة زمنية غير محدودة نظريًا. [ 14 ]

انظر أيضاً

مراجع

  1. 1 2 3 "أسئلة وأجوبة مختصرة حول JFS" . مشروع JFS لنظام Linux.
  2. "IBM JFS و JFS2" . IBM.
  3. 1 2 3 "مقابلة مع الأشخاص الذين يقفون وراء JFS و ReiserFS و XFS" .
  4. 1 2 "JFS لنظام لينكس" . JFS.SourceForge.net . تم الاطلاع عليه بتاريخ 26 أغسطس 2020 .
  5. "ردًا على: أيها نستخدم: ext3، JFS، XFS، ReiserFS؟" . مؤرشف من الأصل في 3 مارس 2016. تم الاطلاع عليه في 31 مارس 2008 .
  6. SourceForge.net: jfs-discussion
  7. "دعم TRIM لنظام ملفات JFS" .
  8. "نظرة عامة على نظام JFS" . ستيف بيست، شركة IBM. مؤرشف من الأصل في 29 يناير 2008. تم الاطلاع عليه في 9 يناير 2008 .
  9. "تخطيط JFS" (ملف PDF) . ستيف بيست، شركة IBM . تم الاطلاع عليه في 1 مايو 2008 .
  10. ديفيد كليكامب. "مجلة الخدمات اليهودية" . مكتب البحث والتطوير. مؤرشف من الأصل في 3 مارس 2016. تم الاطلاع عليه في 7 يوليو 2008 .
  11. "تحسين أداء قواعد البيانات باستخدام الإدخال/الإخراج المتزامن في نظام AIX - ورقة بيضاء" (ملف PDF) . IBM.com . IBM .
  12. "مقارنة نظام الملفات ذي 9 اتجاهات مع محرك أقراص الحالة الصلبة على نواة لينكس 3.17" . Phoronix.com . تم الاطلاع عليه في 7 يوليو 2020 .
  13. "jfs_mkfs: إنشاء قسم بتنسيق JFS - صفحات دليل لينكس (8)" . SysTutorials.com . تم الاطلاع عليه في 7 يوليو 2020 .
  14. تحليل وتطور أنظمة ملفات التسجيل - ف. برابهاكاران وآخرون 2013-06