اذهب إلى المحتوى

طوّرت شركة Sun Microsystems نظام الملفّات الشبكي Network file system, NFS سنة 1980 من أجل السماح بتشارك الملفّات والمجلّدات بين الأنظمة الشبيهة بيونكس (لينكس ويونكس). يتيح نظام NFS للملفّات تركيب Mounting ملفّات عبر الشّبكة والتعامل معها كما لو كانت مركَّبة محليًّا على نفس النظام.

ubuntu-network-file-system-nfs.png

فوائد نظام NFS

  • يسمح نظام NFS بالوصول إلى الملفّات عن بعد.
  • يستخدم بنية عميل-خادوم Client/Server معيارية لتشارك الملفّات بين جميع الأجهزة العاملة بالأنظمة الشبيهة بيونكس.
  • ليس ضروريًّا عند استخدام NFS أن تكون الأجهزة تعمل على نفس نظام التّشغيل.
  • يمكن ضبط حلول للتخزين المركزيّ بمساعدة نظام NFS.
  • يعثُر المستخدمون على بياناتهم مهما كان تواجدها الفعلي.
  • لا توجد حاجة للتحيين Refresh اليدوي للحصول على الملفّات الجديدة.
  • تدعم الإصدارات الحديثة من NFS قوائم التحكّم في الوصول ACL.
  • يمكن تأمينه عبر الجدران الناريّة Firewalls وKerberos (ميثاق للاستيثاق عبر الشبكة).

تدخلّ الملفّات التاليّة في إعداد NFS:

  • ملفّ etc/exports/: وهو ملفّ الإعداد الرئيس؛ تعرّف فيه - على الخادوم - جميع الملفّات والمجلّدات المشاركة.
  • ملفّ etc/fstab/: يجب إدراج سطر لكلّ نظام ملفّات مُركَّب ضمن هذا الملفّ حتى يكون التركيب دائما (يبقى بعد إعادة التشغيل).
  • ملفّ etc/sysconfig/nfs/: يعرّف المنافذ التي تنصت الخدمات للاتّصالات الواردة عبرها.

إعداد NFS على خادوم أوبونتو

سنعتمد في هذا الدرس على جهازين يعملان بإحدى توزيعات لينكس التاليّة: دبيان، أوبونتو أو ردهات. سنثبّت على أحد الجهازين خادوم NFS وعلى الثاني عميلا له كالتالي:

  • خادوم NFS على العنوان 192.168.2.200.
  • عميل NFS على العنوان 192.168.2.150.

يمكنك استخدام VirtualBox لإعداد بيئة عمل بالمواصفات أعلاه.

تثبيت الخادوم والعميل

سنحتاج لتثبيت حزم NFS على الخادوم والعميل:

# apt-get update
# apt-get install nfs-kernel-server nfs-common

ملحوظة: يمكن الاكتفاء بالحزمة nfs-common على العميل. تشير العلامة # إلى أن الأمر ينفَّذ بصلاحيّات الجذر.

إعداد خادوم NFS

الخطوة الأولى هي تحديد المجلّد الذي نريد مشاركته؛ سننشئ واحدا لهذا الغرض (يمكنك اختيّار مجلّد موجود مسبقا):

# mkdir /nfsshare

ثم نغيّر ملكيّته إلى nobody:nogroup: 

# chown nobody:nogroup /nfsshare

غيّرنا ملكيّة الملفّ إلى المستخدم nobody الذي هو حساب لا يملك سوى الصلاحيّات الدنيا ويُستخدَم عادة لتنفيذ سكربتات غير مأمونة المصدر حتى لا تلحق أي ضرر بالنظام. هذه الخطوة ضروريّة وإلا فلن يكون بمقدورك إضافة ملفّات إلى المجلّد انطلاقا من العميل؛ إلا إذا أضفت خيار no_root_squash كما هو مشروح أدناه (لا يُنصَح بذلك).

ليمكن تشاركُ المجلّد يجب أن نضيفه إلى ملفّ الإعداد etc/exports/؛ نفتح هذا الملفّ (بصلاحيّات الجذر) ثم نضيف إليه السّطر التالي: 

/nfsshare 192.168.2.150(rw,sync)

يسمح السّطر أعلاه بتشارك المجلّد nfsshare مع العميل على العنوان 192.168.2.150 مع تحديد خيارات التشارك. يمكن أن تكون الخيارات على النحو التالي:

  • ro: الوصول عبر وضع القراءة فقط؛ أي أن العميل يمكنه الوصول إلى الملفات المتشاركة فقط دون أن يكون قادرا على التعديل عليها أو إنشاء ملفات جديدة.
  • rw: يمنح العميل القدرة على الوصول إلى الملفّات والتعديل عليها.
  • sync: مزامنة التعديلات. يعني هذا أن أي تعديل سيُحفَظ فورا على نظام الملفّات؛ قد يؤثّر هذا الخيار على الأداء في حالة وجود الكثير من التغييرات المتزامنة على ملفّات كبيرة.
  • no_subtree_check: يفحص نظام NFS مبدئيّا جميع المجلدات التي يتفرّع منها المجلّد المتشارَك من أجل التحقّق من الأذون وتفاصيل أخرى. يؤدّي تفعيل هذه الخاصيّة إلى تعطيل الفحص ممّا يحسّن من الأداء ولكنّه يؤدّي التقليل من الأمان.
  • no_root_squash: تسمح هذه الخاصيّة للمستخدم الجذر على الجهاز العميل بالوصول إلى الملفّات المتشاركة على الخادوم بصلاحيّات الجذر على الخادوم. لا يُنصَح لأسباب أمنيّة باستخدام هذا الخيار إلا في حالات خاصّة.

نطبّق الأمر exportfs بعد الانتهاء من تحرير الملفّ exports من أجل اعتماد التعديلات:

# exportfs -r

ثم نشغّل خدمة NFS كالتالي:

# service nfs-kernel-server start

إعداد عميل NFS على أوبونتو

يمكننا الآن تركيب مجلّد التشارك على العميل. تأكد من أنه يمكن التواصل عبر الشبكة بين الجهاز الخادوم والعميل؛ مثلا باستخدام الأمر ping على العميل (حيثُ 192.168.2.200 هو عنوان الخادوم):

$ ping 192.168.2.200
PING 192.168.2.200 (192.168.2.200) 56(84) bytes of data.
64 bytes from 192.168.2.200: icmp_seq=7 ttl=52 time=363 ms
64 bytes from 192.168.2.200: icmp_seq=8 ttl=52 time=322 ms

نبدأ أولا بالبحث عن الملفّات المتشاركة عبر NFS على الخادوم:

$ showmount -e 192.168.2.200
Export list for 192.168.2.200:
/nfsshare   192.168.2.150

يظهر من نتيجة الأمر أعلاه أن المجلّد nfsshare/ متاح للتشارك مع العميل ذي العنوان 192.168.2.150.

تركيب المجلد على العميل

سننشئ على العميل مجلّدًا باسم mnt/nfs/nfsshare_mount/ ونستخدمه لتركيب المجلّد nfsshare/ على العميل (المجلّد nfsshare/ الموجود على الخادوم):

# mkdir -p /mnt/nfs/nfsshare_mount
# mount -t nfs 192.168.2.200:/nfsshare /mnt/nfs/nfsshare_mount

يمكننا التأكد من تركيب المجلّد بتنفيذ الأمر mount والبحث عن نوع الملفّات nfs:

$ mount | grep nfs
192.168.2.200:/nfsshare on /mnt/nfs/nfsshare_mount type nfs (rw,vers=4,addr=192.168.2.200,clientaddr=192.168.2.150)

يمكن الآن إضافة ملفّات إلى مجلّد التشارك عبر نقطة التركيب: 

# touch /mnt/nfs/nfsshare_mount/testfile.txt

يمكن التأكد من على الخادوم بسرد محتويات المجلّد nfsshare/.

إن أردت جعل التركيب دائما (لا يزول مع إقلاع النظام) فيمكنك إضافة السطر التالي إلى ملفّ etc/fstab/:

192.168.2.200:/nfsshare /mnt/nfs/nfsshare_mount nfs defaults 0 0

نفّذ الأمر mount -a بعد تعديل ملفّ fstab لاعتماد التغييرات فورا.

ملحوظة: تأكد من إدخال القيم الصحيحة في ملفّ etc/fstab/؛ وجود أخطاء في صياغة السّطر يمكن أن يؤدي إلى عدم إقلاع النظام.

فصل المجلد من العميل

استخدم الأمر umount إن أردت فصل المجلّد المركَّب، تُمرّضر نقطة التركيب للأمر على النحو التالي: 

# umount /mnt/nfs/nfsshare_mount

نفّذ الأمر mount | grep nfs للتأكد من فصل المجلّد.

أوامر أساسية للتعامل مع ملفات NFS

في ما يلي أوامر يكثُر استخدامها أثناء التعامل مع المجلّدات المشارَكة عبر نظام NFS:

  • showmount -e: يعرض جميع المجلّدات المتشاركة المتاحة على الجهاز.
  • showmount -e <server-ip>: يسرد قائمة بالمجلّدات المشاركة المتاحة على الخادوم ذي العنوان server-ip.
  • showmount -d <server-ip>: سرد المجلّدات المشاركة المتاحة على الخادوم والمجلدات المتفرعة منها.
  • exportfs -v: يعرض قائمة بالمجلّدات المتشاركة الموجوة على الخادوم.
  • exportfs -a: يطلب من الخادوم مشاركة الملفّات المحدّدة في الملفّ etc/exports/.
  • exportfs -u: يعمل عكسَ عمل الأمر السابق، إذ يوقف مشاركة المجلدات المحدّدة في etc/exports/.
  • exportfs -r: يحدّث قائمة المشاركات بعد التعديل على الملفّ etc/exports/.

يمكن اعتماد هذا المقال الذي يقدّم أساسيات تشارك الملفّات عبر نظام NFS للانتقال إلى تفاصيل أكثر تقدّما بخصوص NFS والميزات التي يقدّمها.

ترجمة -وبتصرّف- للمقال How to Setup NFS (Network File System) on RHEL/CentOS/Fedora and Debian/Ubuntu لصاحبه Tarunika Shrivastava.


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...