# نظام ملفات الشبكة

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

## الإصدارات والاختلافات

والنسخة المستخدمة من الشمس فقط للأغراض التجريبية الداخلية. وعندما أضاف فريق التطوير تغييرات جوهرية إلى إصدار NFS وأصدروه خارج Sun، قرروا إصدار الإصدار الجديد كـ v2، بحيث يمكن اختبار التشغيل المتداخل للإصدار ونسخة RPC الاحتياطية.

### NFSv2

وإصدار2 من البروتوكول (المحدد في RFC 1094 ، مارس 1989) يعمل في الأصل فقط عبر بروتوكول مخطط بيانات المستخدم (UDP). قصد مصمموه إبقاء جانب الخادم عديم الحالة، مع تطبيق القفل (على سبيل المثال) خارج البروتوكول الأساسي. الأشخاص المشاركون في إنشاء إصدار NFS2 من بينهم راسل ساندبرج وبوب ليون وبيل جوي وستيف كليمان وآخرين.
تسمح واجهة نظام الملفات الافتراضية بتنفيذ معياري، ينعكس في بروتوكول بسيط. بحلول فبراير 1986، تم عرض عمليات التنفيذ لأنظمة التشغيل مثل إصدار النظام الخامس2 ، DOS ، و VAX / VMS باستخدام Eunice. ويسمح NFSv2 لأول فقط غيغابايت من الملف المراد قراءته بسبب قيود 32 بت.

### NFSv3

إصدار3 ( RFC 1813، يونيو 1995) أضاف:
* دعم أحجام ملفات 64 بت والإزاحات، للتعامل مع الملفات الأكبر من 2 جيجا بايت (GB)؛
* دعم عمليات الكتابة غير المتزامنة على الخادم، لتحسين أداء الكتابة ؛
* سمات ملفات إضافية في العديد من الردود، لتجنب الحاجة إلى إعادة إحضارها؛
* عملية READDIRPLUS ، للحصول على مؤشرات الملفات والسمات جنبًا إلى جنب مع أسماء الملفات عند مسح دليل؛
* تحسينات أخرى متنوعة.
وكان أول إصدار NFSتم إنشاء اقتراح 3 ضمن Sun Microsystems بعد فترة ليست طويلة من إصدار إصدار NFS2. كان الدافع الرئيسي هو محاولة التخفيف من مشكلة أداء عملية الكتابة المتزامنة في إصدار NFS2. بحلول يوليو 1992 ، حلت ممارسة التنفيذ العديد من أوجه القصور في إصدار NFS2 ، مع ترك نقص دعم الملفات الكبيرة فقط (أحجام ملفات 64 بت والإزاحات) مشكلة ملحة. أصبحت هذه نقطة ألم حادة لشركة Digital Equipment Corporation مع تقديم إصدار 64 بت من Ultrix لدعم معالج RISC 64 بت الذي تم إصداره حديثًا، Alpha 21064 . في وقت تقديم الإصدارفي الشكل 3 ، بدأ دعم البائعين لـ TCP كبروتوكول لطبقة النقل في الازدياد. بينما أضاف العديد من البائعين بالفعل دعمًا لإصدار NFS 2 مع TCP كوسيلة نقل، أضافت Sun Microsystems دعمًا لـ TCP كوسيلة نقل لـ NFS وفي نفس الوقت أضافت دعمًا للإصدار3. استخدام TCP كوسيلة نقل باستخدام NFS عبر WAN أكثر جدوى، وسمح باستخدام أحجام نقل قراءة وكتابة أكبر تتجاوز 8حد KB الذي يفرضه بروتوكول مخطط بيانات المستخدم .

### NFSv4

وإصدار4 ( RFC 3010، ديسمبر 2000؛ تمت مراجعته في RFC 3530، أبريل 2003 ومرة أخرى في RFC 7530، مارس 2015)، متأثرًا بنظام ملف Andrew (AFS) و Server Message Block (SMB ، يُطلق عليه أيضًا CIFS)، يتضمن تحسينات الأداء والتفويضات أمنية قوية، ويقدم جليل البروتوكول. أصبح الإصدار 4 هو الإصدار الأول الذي تم تطويره مع فريق عمل هندسة الإنترنت (IETF) بعد أن سلمت شركة Sun Microsystems تطوير بروتوكولات NFS.
وإصدار NFS4.1 ( RFC 5661، يناير 2010؛ تمت مراجعته في RFC 8881، أغسطس 2020) يهدف إلى توفير دعم البروتوكول للاستفادة من عمليات نشر الخوادم المجمعة بما في ذلك القدرة على توفير وصول متوازي قابل للتطوير إلى الملفات الموزعة بين خوادم متعددة (ملحق pNFS). إصدار4.1 يتضمن آلية ربط الجلسات (المعروفة أيضًا باسم NFS Multipathing) ومتاحة في بعض حلول المؤسسات مثل VMware ESXi.
إصدار NFS4.2 ( RFC 7862 ) تم نشره في نوفمبر 2016 مع ميزات جديدة بما في ذلك: الاستنساخ والنسخ من جانب الخادم، نصيحة I / O للتطبيق، الملفات المتفرقة، حجز المساحة، كتلة بيانات التطبيق (ADB)، المسمى NFS مع sec_label الذي يستوعب أي نظام أمان MAC، وعمليتين جديدتين لـ pNFS (LAYOUTERROR و LAYOUTSTATS).
وتتمثل إحدى الميزات الكبيرة لـ NFSv4 على سابقاتها في أنه يتم استخدام منفذ UDP أو TCP واحد فقط، 2049، لتشغيل الخدمة، مما يبسط استخدام البروتوكول عبر جدران الحماية.

### ملحقات أخرى

WebNFS، امتداد للإصدار2 والإصدار3، يسمح NFS للاندماج بسهولة أكبر في متصفحات الويب وتمكين التشغيل من خلال جدران الحماية. في عام 2007، افتتحت Sun Microsystems تطبيق WebNFS من جانب العميل.
أصبحت بروتوكولات النطاق الجانبي المختلفة مرتبطة بـ NFS. ملحوظة:
* بروتوكول مدير قفل الشبكة (NLM) الاستشاري لنطاق البايت (تمت إضافته لدعم واجهات برمجة تطبيقات تأمين ملفات نظام UNIX System V)
* بروتوكول الإبلاغ عن الحصة عن بُعد (RQUOTAD)، والذي يسمح لمستخدمي NFS بعرض حصص تخزين البيانات الخاصة بهم على خوادم NFS
* NFS عبر RDMA، وهو تكيف لـ NFS يستخدم الوصول المباشر للذاكرة عن بُعد (RDMA) كوسيلة نقل
* NFS-Ganesha، خادم NFS، يعمل في مساحة المستخدم ويدعم أنظمة الملفات المختلفة مثل GPFS / Spectrum Scale CephFS عبر وحدات FSAL (طبقة تجريد نظام الملفات). دعم CephFS FSAL باستخدام libcephfs
* موثوق NFS (TNFS)

## المنصات

غالبًا ما يستخدم NFS مع أنظمة تشغيل Unix (مثل Solaris وAIX وHP-UX ) وأنظمة تشغيل Apple macOS وأنظمة التشغيل الشبيهة بـ Unix (مثل Linux وFreeBSD ). كما أنه متاح لأنظمة التشغيل مثل Acorn RISC OS ، AmigaOS ، و Mac OS الكلاسيكي ، OpenVMS ، MS-DOS ، Microsoft Windows ، OS / 2 ، ArcaOS ، Novell NetWare ، و IBM AS / 400 . تتضمن بروتوكولات الوصول إلى الملفات عن بُعد البديلة Server Message Block (SMB ، وتسمى أيضًا CIFS) ، وبروتوكول ملفات Apple (AFP) ، وبروتوكول NetWare الأساسي (NCP) ، ونظام ملفات خادم الملفات OS / 400 (QFileSvr.400).
يحدث بروتوكول SMB و NetWare Core (NCP) أكثر من NFS على الأنظمة التي تعمل بنظام Microsoft Windows ؛ يحدث AFP أكثر من NFS في أنظمة Apple Macintosh ؛ و QFileSvr.400 يحدث غالبًا في أنظمة AS / 400. أضاف Haiku في عام 2012 دعم NFSv4 كجزء من مشروع Google Summer of Code.

### التنفيذ النموذجي

بافتراض سيناريو بأسلوب Unix يحتاج فيه جهاز واحد (العميل ) إلى الوصول إلى البيانات المخزنة على جهاز آخر ( خادم NFS):
* ينفذ الخادم عمليات NFS daemon ، التي تعمل افتراضيًا كـ NFSD ، لإتاحة بياناتها بشكل عام للعملاء.
* يحدد مسؤول الخادم ما يجب إتاحته، ويصدر أسماء ومعلمات الدلائل ، عادةً باستخدام ملف التكوين /etc/exports exportfs والأمر exportfs.
* تضمن إدارة أمان الخادم أنه يمكنها التعرف على العملاء الذين تم التحقق من صحتهم والموافقة عليهم.
* يضمن تكوين شبكة الخادم أن العملاء المناسبين يمكنهم التفاوض معها من خلال أي نظام جدار حماية.
* يطلب جهاز العميل الوصول إلى البيانات المصدرة، عادةً عن طريق إصدار أمر mount (يطلب العميل من الخادم (rpcbind) الذي يستخدمه خادم NFS ، يتصل العميل بخادم NFS (nfsd) ، ويمرر nfsd الطلب إلى mountd)
* إذا سارت الأمور على ما يرام، يمكن للمستخدمين على جهاز العميل بعد ذلك عرض أنظمة الملفات المثبتة على الخادم والتفاعل معها ضمن المعلمات المسموح بها.
علما بأن أتمتة عملية التركيب NFS قد يتحقق - وربما باستخدام /etc/fstab و / أو التركيب الآلي لل مرافق.

## تطوير البروتوكول

أثناء تطوير بروتوكول ONC (المسمى SunRPC في ذلك الوقت) ، قدم نظام Apollo Network Computing System (NCS) فقط وظائف قابلة للمقارنة. تطورت مجموعتان متنافستان حول الاختلافات الأساسية في نظامي استدعاء الإجراءات عن بُعد. ركزت الحجج على طريقة تشفير البيانات - كان تمثيل البيانات الخارجية (XDR) الخاص بـ ONC يعرض دائمًا الأعداد الصحيحة بترتيب كبير ، حتى لو كان كلا نظير الاتصال بهما هياكل آلية صغيرة، بينما حاولت طريقة NCS تجنب مبادلة البايت كلما شارك اثنان من الأقران نفسًا مشتركًا في بنيات الآلة الخاصة بهم. تشكلت مجموعة صناعية تسمى منتدى الحوسبة الشبكية (مارس 1987) في محاولة (غير ناجحة في النهاية) للتوفيق بين بيئتي حوسبة الشبكة.
في عام 1987 ، أعلنت شركة Sun و AT&T أنهما سيطوران بشكل مشترك الإصدار الرابع لنظام UNIX الخاص بشركة AT & T. تسبب هذا في قلق العديد من المرخصين الآخرين لـ AT & T لنظام UNIX من أن هذا من شأنه أن يضع Sun في موقع متميز، وأدى في النهاية إلى إنشاء شركة Digital Equipment و HP و IBM وآخرين لمؤسسة Open Software Foundation (OSF) في عام 1988. ومن المفارقات أن Sun و AT&T قد تنافسا سابقًا على Sun's NFS مقابل AT & T's Remote File System (RFS) ، والاعتماد السريع لـ NFS عبر RFS بواسطة Digital Equipment و HP و IBM والعديد من بائعي أجهزة الكمبيوتر الآخرين يميل غالبية المستخدمين لصالح NFS . تم دعم قابلية التشغيل البيني NFS من خلال أحداث تسمى "Connectathons" بدأت في عام 1986 والتي سمحت باختبار البائع المحايد للتطبيقات مع بعضها البعض. اعتمدت OSF بيئة الحوسبة الموزعة (DCE) ونظام الملفات الموزعة DCE (DFS) على Sun / ONC RPC و NFS. استخدم DFS DCE باعتباره RPC ، و DFS مشتقًا من نظام ملفات Andrew (AFS) ؛ DCE نفسها مشتقة من مجموعة من التقنيات، بما في ذلك أبولو NCS و Kerberos .

### التسعينيات

توصلت Sun Microsystems و Internet Society (ISOC) إلى اتفاق للتنازل عن «التحكم في التغيير» لـ ONC RPC بحيث يمكن لهيئة المعايير الهندسية لـ ISOC ، وهي فرقة عمل هندسة الإنترنت (IETF) ، نشر مستندات المعايير (RFCs) المتعلقة بـ ONC RPC البروتوكولات ويمكن أن تمدد ONC RPC. حاولت OSF جعل DCE RPC معيارًا لـ IETF ، لكنها أثبتت في النهاية عدم استعدادها للتخلي عن التحكم في التغيير. في وقت لاحق، اختارت IETF تمديد ONC RPC عن طريق إضافة نكهة مصادقة جديدة تعتمد على واجهة برنامج تطبيق خدمات الأمان العامة (GSSAPI) ، RPCSEC GSS ، لتلبية متطلبات IETF بأن معايير البروتوكول تتمتع بأمان كافٍ.
في وقت لاحق، توصلت Sun و ISOC إلى اتفاق مماثل لمنح ISOC التحكم في تغيير NFS ، على الرغم من كتابة العقد بعناية لاستبعاد NFS الإصدار 2 والإصدار 3. بدلاً من ذلك، حصلت ISOC على الحق في إضافة إصدارات جديدة إلى بروتوكول NFS ، مما أدى إلى تحديد IETF للإصدار 4 من NFS في عام 2003.

### 2000s

بحلول القرن الحادي والعشرين، لم تحقق DFS ولا AFS أي نجاح تجاري كبير مقارنةً بـ SMB-CIFS أو NFS. تبرعت شركة IBM ، التي استحوذت سابقًا على البائع التجاري الأساسي لـ DFS و AFS ، Transarc ، بمعظم كود مصدر AFS إلى مجتمع البرمجيات الحرة في عام 2000. يستمر مشروع OpenAFS. في أوائل عام 2005 ، أعلنت شركة IBM عن انتهاء مبيعات AFS و DFS.
وفي يناير 2010، Panasas اقترح NFSv4.1 على أساس NFS على المتوازية (pNFS) التكنولوجيا يدعي لتحسين وصول البيانات التوازي قدرة. يحدد بروتوكول NFSv4.1 طريقة لفصل البيانات الوصفية لنظام الملفات عن موقع بيانات الملف ؛ يتجاوز فصل الاسم / البيانات البسيط عن طريق تقسيم البيانات بين مجموعة من خوادم البيانات. هذا يختلف عن خادم NFS التقليدي الذي يحمل أسماء الملفات وبياناتها تحت مظلة واحدة للخادم. بعض المنتجات عبارة عن خوادم NFS متعددة العقد، لكن مشاركة العميل في فصل البيانات الوصفية والبيانات محدودة.
وخادم NFSv4.1 pNFS عبارة عن مجموعة من موارد أو مكونات الخادم ؛ يفترض أن يتم التحكم فيها بواسطة خادم البيانات الوصفية.
ولا يزال عميل pNFS يصل إلى خادم بيانات تعريف واحد لاجتياز مساحة الاسم أو التفاعل معها ؛ عندما ينقل العميل البيانات من وإلى الخادم، فقد يتفاعل مباشرة مع مجموعة خوادم البيانات التي تنتمي إلى مجموعة خادم pNFS. يمكن تمكين عميل NFSv4.1 ليكون مشاركًا مباشرًا في الموقع الدقيق لبيانات الملف ولتجنب التفاعل الفردي مع خادم NFS واحد عند نقل البيانات.
بالإضافة إلى pNFS ، يوفر NFSv4.1:
* الجلسات
* تفويض الدليل والإشعارات
* مساحة اسم متعددة الخوادم
* قوائم التحكم في الوصول والتحكم في الوصول التقديري
* سمات الاحتفاظ
* SECINFO_NO_NAME

## انظر أيضا

* شبكة الحاسوب

## مراجع

* ↑ Russel Sandberg; David Goldberg; Steve Kleiman; Dan Walsh; Bob Lyon (1985). "Design and Implementation of the Sun Network Filesystem". USENIX. CiteSeerX 10.1.1.14.473.
* ↑ Russel Sandberg. "The Sun Network Filesystem: Design, Implementation and Experience" (PDF). Technical Report. Sun Microsystems.
* ↑ Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea (March 2015). Operating Systems: Three Easy Pieces (PDF) (.9 ed.). Arpaci-Dusseau Books. p. 5. Retrieved 8 November 2017.
* ↑ Singh, Karan (2016). "4: Working with the Ceph Filesystem". Ceph Cookbook. Birmingham: Packt Publishing Ltd. p. 110. ISBN 978-1-78439-736-4. Retrieved 2017-03-21. NFS-Ganesha is an NFS server that runs in user space and supports the CephFS FSAL (File System Abstraction Layer) using libcephfs.
* ↑ "Other Software by SUN Microsystems". www.computinghistory.org.uk. The Centre for Computing History. Retrieved 24 September 2016.
* بوابة إنترنت
* بوابة اتصال عن بعد
* بوابة تقانة
* بوابة تقانة المعلومات
* بوابة شبكات الحاسوب
* بوابة علم الحاسوب