نظام الملفات الافتراضي المتوازي

نظام الملفات الافتراضي المتوازي ( PVFS ) هو نظام ملفات متوازي مفتوح المصدر . نظام الملفات المتوازي هو نوع من أنظمة الملفات الموزعة التي توزع بيانات الملفات عبر خوادم متعددة، وتتيح الوصول المتزامن إليها من قِبل مهام متعددة لتطبيق متوازي. صُمم PVFS للاستخدام في الحوسبة العنقودية واسعة النطاق ، ويركز على الوصول عالي الأداء إلى مجموعات البيانات الضخمة. يتكون من عملية خادم ومكتبة عميل، وكلاهما مكتوب بالكامل بلغة برمجة المستخدم. تسمح وحدة نواة لينكس وعملية pvfs-client بتثبيت نظام الملفات واستخدامه مع الأدوات المساعدة القياسية. توفر مكتبة العميل وصولاً عالي الأداء عبر واجهة تمرير الرسائل (MPI). يجري تطوير PVFS بشكل مشترك بين مختبر أبحاث الهندسة المعمارية المتوازية في جامعة كليمسون ، وقسم الرياضيات وعلوم الحاسوب في مختبر أرغون الوطني ، ومركز أوهايو للحوسبة الفائقة . تم تمويل تطوير نظام PVFS من قبل مركز غودارد لرحلات الفضاء التابع لوكالة ناسا، وبرنامج أبحاث الحوسبة العلمية المتقدمة التابع لمكتب العلوم بوزارة الطاقة الأمريكية ، وبرامج NSF PACI وHECURA، بالإضافة إلى جهات حكومية وخاصة أخرى. يُعرف نظام PVFS الآن باسم OrangeFS في أحدث فروع تطويره.

تاريخ

طُوِّر نظام الملفات PVFS لأول مرة عام 1993 على يد والت ليجون وإريك بلومر كنظام ملفات متوازٍ للآلة الافتراضية المتوازية (PVM) [ 1 ] كجزء من منحة من وكالة ناسا لدراسة أنماط الإدخال/الإخراج للبرامج المتوازية. استند الإصدار 0 من PVFS إلى Vesta، وهو نظام ملفات متوازٍ طُوِّر في مركز أبحاث IBM TJ Watson . [ 2 ] ابتداءً من عام 1994، أعاد روب روس كتابة PVFS لاستخدام بروتوكول TCP/IP ، مُبتعدًا عن العديد من نقاط تصميم Vesta الأصلية. استهدف الإصدار 1 من PVFS مجموعة من محطات عمل DEC Alpha المتصلة بشبكة باستخدام FDDI المُبدَّل . وكما هو الحال في Vesta، قام PVFS بتوزيع البيانات على عدة خوادم، وسمح بطلبات الإدخال/الإخراج بناءً على عرض ملف يصف نمط وصول مُتدرِّج. على عكس Vesta، لم يكن التوزيع والعرض يعتمدان على حجم سجل مشترك. ركَّز بحث روس على جدولة عمليات الإدخال/الإخراج للقرص عندما يصل عدة عملاء إلى الملف نفسه. [ 3 ] أظهرت نتائج سابقة أن الجدولة وفقًا لأفضل نمط وصول ممكن للقرص هي الأفضل. وقد بيّن روس أن هذا يعتمد على عدد من العوامل، بما في ذلك السرعة النسبية للشبكة وتفاصيل عرض الملفات. في بعض الحالات، كانت الجدولة القائمة على حركة مرور الشبكة هي الأفضل، وبالتالي فإن الجدولة القابلة للتكيف ديناميكيًا توفر أفضل أداء شامل. [ 4 ]

في أواخر عام ١٩٩٤، التقى ليجون مع توماس ستيرلنج وجون دورباند في مركز غودارد لرحلات الفضاء (GSFC) وناقشوا خططهم لبناء أول حاسوب بيوولف . [ ٥ ] واتفقوا على نقل نظام ملفات PVFS إلى نظام لينكس وتثبيته على الجهاز الجديد. وعلى مدى السنوات التالية، عمل ليجون وروس مع فريق مركز غودارد لرحلات الفضاء، بمن فيهم دونالد بيكر ودان ريدج وإريك هندريكس. وفي عام ١٩٩٧، خلال اجتماع لمجموعة من الحواسيب في باسادينا، كاليفورنيا، طلب ستيرلنج إصدار نظام ملفات PVFS كحزمة مفتوحة المصدر. [ ٦ ]

PVFS2

في عام ١٩٩٩، اقترح ليغون تطوير نسخة جديدة من نظام الملفات الافتراضي (PVFS)، أُطلق عليها في البداية اسم PVFS2000 ثم PVFS2. وقد طُوّر التصميم مبدئيًا من قِبل ليغون، وروس، وفيل كارنز. أكمل روس دراسته للدكتوراه عام ٢٠٠٠ وانتقل إلى مختبر أرغون الوطني ، بينما تولى ليغون، وكارنز، وديل ويتشيرش، وهاريش راماتشاندران في جامعة كليمسون ، وروس، ونيل ميلر، وروب لاثام في مختبر أرغون الوطني ، وبيت ويكوف في مركز أوهايو للحوسبة الفائقة، مهمة التصميم والتنفيذ. [ ٧ ] صدر نظام الملفات الجديد عام ٢٠٠٣. تميز التصميم الجديد بخوادم الكائنات، والبيانات الوصفية الموزعة، وواجهات عرض تعتمد على MPI، ودعم أنواع متعددة من الشبكات، وبنية برمجية تُسهّل التجريب والتوسع.

تم إيقاف دعم الإصدار الأول من PVFS في عام 2005. ولا يزال الإصدار الثاني من PVFS مدعومًا من قبل جامعة كليمسون ومختبر أرغون الوطني. أكمل كارنز دراسته للدكتوراه في عام 2006 وانضم إلى شركة أكسيكوم، حيث تم نشر PVFS على عدة آلاف من العُقد لاستخراج البيانات. في عام 2008، انتقل كارنز إلى مختبر أرغون الوطني، ويواصل العمل على PVFS مع روس، ولاتام، وسام لانغ. طوّر براد سيتلماير نظامًا فرعيًا للنسخ المتطابق في جامعة كليمسون، ولاحقًا محاكاةً تفصيليةً لـ PVFS استُخدمت في أبحاث التطورات الجديدة. يعمل سيتلماير حاليًا في مختبر أوك ريدج الوطني . في عام 2007، بدأ مختبر أرغون الوطني بنقل PVFS لاستخدامه على جهاز IBM Blue Gene /P. [ 8 ] في عام 2008، بدأت جامعة كليمسون بتطوير ملحقات لدعم الدلائل الكبيرة للملفات الصغيرة، وتحسينات الأمان، وقدرات التكرار. نظراً لتعارض العديد من هذه الأهداف مع تطوير Blue Gene، تم إنشاء فرع ثانٍ من شجرة مصدر CVS وأُطلق عليه اسم "Orange"، بينما أُطلق على الفرع الأصلي اسم "Blue". يتتبع PVFS و OrangeFS بعضهما البعض بشكل وثيق، لكنهما يمثلان مجموعتين مختلفتين من متطلبات المستخدمين. تُطبَّق معظم التصحيحات والترقيات على كلا الفرعين. اعتباراً من عام 2011، أصبح OrangeFS هو خط التطوير الرئيسي.

سمات

في نظام مجموعة يستخدم نظام الملفات الافتراضي الخاص (PVFS)، تُصنّف العُقد إلى واحد أو أكثر مما يلي: عميل، خادم بيانات، خادم بيانات وصفية. يخزن خادم البيانات بيانات الملفات. أما خادم البيانات الوصفية فيخزن البيانات الوصفية التي تشمل معلومات الحالة، والخصائص، ومعرّفات ملفات البيانات، بالإضافة إلى إدخالات الدليل. يشغّل العملاء تطبيقات تستخدم نظام الملفات عن طريق إرسال طلبات إلى الخوادم عبر الشبكة.

التصميم القائم على الكائنات

يعتمد نظام الملفات الافتراضي المتوازي (PVFS) على تصميم قائم على الكائنات، أي أن جميع طلبات خادم PVFS تتضمن كائنات تُسمى مساحات البيانات. يمكن استخدام مساحة البيانات لتخزين بيانات الملفات، وبيانات تعريف الملفات، وبيانات تعريف الدلائل، وإدخالات الدلائل، أو الروابط الرمزية. لكل مساحة بيانات في نظام الملفات مُعرّف فريد. يمكن لأي عميل أو خادم تحديد الخادم الذي يستضيف مساحة البيانات بناءً على هذا المُعرّف. تتكون مساحة البيانات من عنصرين: دفق بايتات ومجموعة من أزواج المفاتيح والقيم. دفق البايتات هو تسلسل مُرتب من البايتات، ويُستخدم عادةً لتخزين بيانات الملفات، بينما تُستخدم أزواج المفاتيح والقيم عادةً لتخزين بيانات التعريف. أصبح التصميم القائم على الكائنات شائعًا في العديد من أنظمة الملفات الموزعة، بما في ذلك Lustre و Panasas و pNFS .

فصل البيانات والبيانات الوصفية

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

الطلبات المستندة إلى MPI

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

دعم شبكات متعددة

يستخدم نظام الملفات الافتراضي المتوازي (PVFS) طبقة شبكية تُسمى BMI، والتي توفر واجهة رسائل غير حظرية مصممة خصيصًا لأنظمة الملفات. تحتوي BMI على وحدات تنفيذ متعددة لعدد من الشبكات المختلفة المستخدمة في الحوسبة عالية الأداء، بما في ذلك TCP/IP و Myrinet و Infiniband و Portals . [ 9 ]

خوادم عديمة الحالة (غير مقفلة)

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

التنفيذ على مستوى المستخدم

تعمل برامج عملاء وخوادم PVFS على مستوى المستخدم، ولا تتطلب تعديلات على نواة النظام. يتوفر وحدة نواة اختيارية تسمح بتثبيت نظام ملفات PVFS كأي نظام ملفات آخر، أو يمكن للبرامج الربط مباشرةً بواجهة مستخدم مثل MPI-IO أو واجهة مشابهة لـ POSIX . هذه الميزة تجعل تثبيت PVFS سهلاً وأقل عرضةً للتسبب في أعطال النظام.

واجهة على مستوى النظام

صُممت واجهة PVFS للتكامل على مستوى النظام. وهي تشبه نظام الملفات الافتراضي (VFS) في لينكس ، مما يُسهّل تطبيقها كنظام ملفات قابل للتركيب، كما أنها قابلة للتكيف بنفس القدر مع واجهات مستوى المستخدم مثل MPI-IO أو واجهات POSIX . وتُتيح هذه الواجهة الوصول إلى العديد من ميزات نظام الملفات الأساسي، بحيث يمكن للواجهات الاستفادة منها عند الحاجة. [ 10 ] [ 11 ]

بنيان

يتكون نظام الملفات الافتراضي المتوازي (PVFS) من أربعة مكونات رئيسية وعدد من البرامج المساعدة. المكونات هي: خادم PVFS2، ومكتبة PVFS، ونواة عميل PVFS، ووحدة نواة PVFS. تشمل البرامج المساعدة أداة إدارة karma، وبرامج مساعدة أخرى (مثل pvfs-ping وpvfs-ls وpvfs-cp وغيرها) تعمل جميعها مباشرةً على نظام الملفات دون استخدام وحدة النواة (وذلك أساسًا لأغراض الصيانة والاختبار). ومن النقاط التصميمية الرئيسية الأخرى بروتوكول PVFS الذي يصف الرسائل المتبادلة بين العميل والخادم، مع العلم أنه ليس مكونًا بالمعنى الدقيق.

خادم PVFS2

يعمل خادم PVFS كعملية على عقدة مُخصصة كعقدة إدخال/إخراج. غالبًا ما تكون عقد الإدخال/الإخراج عقدًا مُخصصة، ولكن يُمكن أن تكون عقدًا عادية تُشغّل مهام التطبيقات أيضًا. عادةً ما يعمل خادم PVFS بصلاحيات المستخدم الجذر، ولكن يُمكن تشغيله كمستخدم عادي إذا رغب المستخدم بذلك. يُمكن لكل خادم إدارة أنظمة ملفات مُتعددة ومُختلفة، ويُخصص للعمل كخادم بيانات وصفية، أو خادم بيانات، أو كليهما. يتم التحكم في جميع عمليات التهيئة بواسطة ملف تهيئة مُحدد في سطر الأوامر، وتستخدم جميع الخوادم التي تُدير نظام ملفات مُعين نفس ملف التهيئة. يستقبل الخادم الطلبات عبر الشبكة، ويُنفذها - والتي قد تتضمن عمليات إدخال/إخراج للقرص - ثم يُرسل ردًا إلى مُرسل الطلب الأصلي. عادةً ما تأتي الطلبات من عقد العميل التي تُشغّل مهام التطبيقات، ولكن يُمكن أن تأتي أيضًا من خوادم أخرى. يتكون الخادم من مُعالج الطلبات، وطبقة المهام، وTrove، وBMI، وطبقات التدفق.

معالج الطلبات

يتألف معالج الطلبات من الحلقة الرئيسية لعملية الخادم وعدد من آلات الحالة. تعتمد آلات الحالة على لغة بسيطة طُوّرت خصيصًا لبروتوكول PVFS، وتُدير التزامن بين الخادم والعميل. تتكون آلة الحالة من عدة حالات، تُشغّل كل منها إما دالة حالة مكتوبة بلغة C أو تستدعي آلة حالة متداخلة (روتين فرعي). في كلتا الحالتين، تُحدد رموز الإرجاع الحالة التالية التي سيتم الانتقال إليها. تُرسل دوال الحالة عادةً مهمة عبر طبقة المهام، والتي تُنفّذ نوعًا من عمليات الإدخال/الإخراج باستخدام Trove أو BMI. المهام غير مانعة، فبمجرد إصدار مهمة، يتم تأجيل تنفيذ آلة الحالة حتى تتمكن آلة حالة أخرى من العمل لتلبية طلب آخر. عند اكتمال المهام، تُعيد الحلقة الرئيسية تشغيل آلة الحالة المرتبطة بها. يحتوي معالج الطلبات على آلات حالة لكل نوع من أنواع الطلبات المختلفة المُعرّفة في بروتوكول طلبات PVFS، بالإضافة إلى عدد من آلات الحالة المتداخلة المستخدمة داخليًا. يُسهّل تصميم آلة الحالة إضافة طلبات جديدة إلى الخادم لإضافة ميزات أو تحسين الأداء في حالات مُحددة.

طبقة الوظائف

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

تروف

يدير Trove عمليات الإدخال والإخراج للكائنات المخزنة على الخادم المحلي. يعمل Trove على مجموعات من مساحات البيانات. لكل مجموعة مساحة معالجة مستقلة خاصة بها، وتُستخدم لتنفيذ أنظمة ملفات PVFS منفصلة. مساحة البيانات هي كائن PVFS، ولها مُعرّف فريد خاص بها (ضمن المجموعة)، وتُخزن على خادم واحد. تُربط المُعرّفات بالخوادم من خلال جدول في ملف التكوين. تتكون مساحة البيانات من جزأين: دفق بايتات، ومجموعة من أزواج المفاتيح/القيم. دفق البايتات هو تسلسل من البايتات ذات طول غير محدد، ويُستخدم لتخزين بيانات الملفات، عادةً في ملف على نظام الملفات المحلي. تُستخدم أزواج المفاتيح/القيم لتخزين البيانات الوصفية والسمات وإدخالات الدليل. يتميز Trove بواجهة مُحددة جيدًا، ويمكن تنفيذه بطرق متنوعة. حتى الآن، كان التنفيذ الوحيد هو تنفيذ Trove-dbfs الذي يخزن دفقات البايتات في ملفات، وأزواج المفاتيح/القيم في قاعدة بيانات Berkeley DB . [ 12 ] عمليات Trove غير محظورة، ويوفر API وظائف ما بعد القراءة أو الكتابة للمكونات المختلفة ووظائف للتحقق أو انتظار الاكتمال.

مؤشر كتلة الجسم

التدفقات

مكتبة pvfslib

PVFS-client-core

وحدة نواة PVFS

انظر أيضاً

مراجع

  1. أ. بلومر و دبليو بي ليجون، "نظام الملفات الافتراضي المتوازي"، اجتماع مجموعة مستخدمي PVM لعام 1994، 1994.
  2. بيتر إف. كوربيت، درور جي. فيتلسون، نظام الملفات المتوازي فيستا، معاملات ACM لأنظمة الكمبيوتر (TOCS)، المجلد 14 العدد 3، ص 225-264، أغسطس 1996.
  3. WB Ligon, III, and RB Ross, “Implementation and Performance of a Parallel File System for High Performance Distributed Applications”, 5th IEEE Symposium on High Performance Distributed Computing, August, 1996.
  4. WB Ligon, III, and RB Ross, “Server-Side Scheduling in Cluster Parallel I/O Systems,” Parallel I/O for Cluster Computing, Christophe Cèrin and Hai Jin editors, pages 157-177, Kogan Page Science, September, 2003.
  5. WB Ligon III, RB Ross, D. Becker, P. Merkey, "Beowulf: Low-Cost Supercomputing Using Linux," IEEE Software magazine special issue on Linux, Volume 16, Number 1, page 79, January, 1999.
  6. والت ليجون وروب روس، "الإدخال/الإخراج المتوازي ونظام الملفات الافتراضي المتوازي"، الحوسبة العنقودية بيوولف مع لينكس، الطبعة الثانية، ويليام جروب، إيوينج لوسك، وتوماس ستيرلنج، المحررون، الصفحات 489-530، مطبعة معهد ماساتشوستس للتكنولوجيا، نوفمبر 2003.
  7. PH Carns، WB Ligon III، RB Ross، و R. Thakur، "PVFS: نظام ملفات متوازي لمجموعات لينكس"، ورشة عمل لينكس المتطرفة، أتلانتا، أكتوبر 2000. جائزة أفضل ورقة بحثية في المؤتمر.
  8. صموئيل لانغ، فيليب كارنز، روبرت لاثام، روبرت روس، كيفن هارمز، ويليام ألكوك، "تحديات أداء الإدخال/الإخراج على نطاق القيادة"، وقائع مؤتمر الحوسبة الفائقة، 2009
  9. فيليب هـ. كارنز، والتر ب. الثالث، روبرت روس، بيت ويكوف، "BMI: طبقة تجريد الشبكة للإدخال/الإخراج المتوازي"، وقائع مؤتمر IPDPS '05، 2005
  10. M. Vilayannur, S. Lang, R. Ross, R. Klundt, L. Ward, “Extending the POSIX I/O Interface: A Parallel File System Perspective,” Technical Memorandum ANL/MCS-TM-302, 2008.
  11. سوابنيل أ. باتيل، غارث أ. جيبسون، غريغوري ر. غانغر، خوليو لوبيز، ميلو بولتي، ويتاوات تانتيسيروج، لين شياو، "بحثًا عن واجهة برمجة تطبيقات لأنظمة الملفات القابلة للتوسع: تحت الطاولة أم فوقها؟"، ورشة عمل USENIX HotCloud 2009.
  12. RCE 35: PVFS نظام الملفات الافتراضي المتوازي