السلام عليكم ورحمة الله وبركاته …
طبعاً كما هو معروف الـ NFS هو عبارة عن Network File System ومن الإسم واضح هو لمشاركة الملفات على الشبكة. كيف يتم ذلك في بيئة Ubuntu ؟ الأمر جداً بسيط وسهل، كل ما عليك عمله هو متابعة هذه التدوينة فقط … طيب ما هي المتطلبات لذلك؟ المتطلبات هي التالي:
nfs-kernel-server – هذا هو السيرفر الخاص بالـ NFS
nfs-common – هذه الحزمة تتظمن بعض البرامج الخاصة بالـ NFS
portmap – هذه هي خدمة معينة لربط الخدمات التي تستعمل rpc من خلال port معيين حيث تقوم بإعطاء port معيين لخدمة معينة، ومن دون هذه الخدمة لن يعمل الـ NFS
الآن لنقم بالتنصيب:
apt-get install nfs-kernel-server portmap nfs-common
الآن الملف الخاص بالإعدادت حق الـ NFS هو /etc/exports حيث يحتوي على الإعدادات الخاصة بالمجلدات التي تريد عمل مشاركة Share لها على الشبكة … طيب الحين لنفرض لدي المجلد التالي:
/home/user/Movies
وأريد أن أقوم بمشاركته للمستخدمين الموجودين على الشبكة المحلية فقط … ماذا سنعمل؟ الجواب تابع معي:
أول حاجة سنقوم بها هي:
نحرر ملف الإعدادات الخاص بالخدمة NFS من خلال الأمر التالي:
vi /etc/exports
بعد ذلك نقوم بوضع السطر هذا:
/home/user/Movies 192.168.0.0/24(rw,sync)
لنوضح هنا ماذا يعني كل شيء في هذا السطر … لنأخذ كل شيء على حدى/
/home/user/Movies هذا هو المجلد المراد عمل مشاركة له
192.168.0.0/24 هذا يمثل الأي بي حق الشبكة الخاصة بي، وضعي للـ /24 تعني إني حددت المشاركة ستكون لكل من يقع ما بين 192.168.0.0 و 192.168.0.255
rw تعني السماح للقراءة read والكتابة write على المجلد الذي قمنا بعمل مشاركة له
sync تعني إنها ستقوم بعمل الإتصال ونقل البيانات يتم بشكل تزامني Synchronous
مثال آخر:
/home/user/Movies rul3z(ro,sync) n3m3siz(rw,sync)
هنا قمت بعمل مشاركة لنفس المجلد ولكن ليس الى شبكة معينة ولكن الى Hostname معيين. هذه الحالة تتطلب من السيرفر NFS قادر على التعرف على الـ Hostnames الموجودة على الشبكة وإﻻ لن تعمل ﻷنه لن يتعرف ماذا يعني rul3z أو n3m3siz …
الآن قم بحفظ الملف وغلقه وبعدها قم بتنفيذ التالي:
/etc/init.d/nfs-kernel-server start
لو أخبرك بإن السيرفر يعمل من الأصل قم بتنفيذ التالي:
/etc/init.d/nfs-kernel-server restart
الآن أصبح السيرفر حق الـ NFS يعمل وكل شي تمام … باقي نعمل تجربة هل يعمل أم ﻻ.
الآن لنقم على جهاز آخر بعمل التالي لغرض التجربة:
mkdir /mnt/Movies
حيث سنقوم بربط المجلد الموجود على الشبكة مع المجلد الموجود على الجهاز الحالي من خلال المجلد الذي عملناه في الأعلى. الآن لتنفيذ عملية الربط قم بالتالي:
mount server-name/ip:/home/user/Movies /mnt/Movies
كل ما عليك فعله هو تغيير server-name بإسم السيرفر أي الـ Hostname أو تغيير الـ server-ip بالأي بي حق السيرفر لكي يعمل الأمر أعلاه. طيب الحين كيف أصل للملفات؟ بسيطة جداً نحن ربطنا المجلد المشترك على الشبكة بنظام الملفات التي لدينا من خلال الملجد /mnt/Moivies ولهذا أكيد الوصول لهم من خلاله:
cd /mnt/Movies
طيب يا B!n@ry لنفرض أنا ﻻ أعرف ما هي المجلدات التي تم عمل مشاركة لها على السيرفر كيف أعرف ذلك ؟ قم بالتالي:
showmount -a server-name/ip
كل ما عليك فعله هو تغيير server-name بإسم السيرفر أي الـ Hostname أو تغيير الـ server-ip بالأي بي حق السيرفر لكي يعمل الأمر أعلاه.
ألف مبروك الحين جهازك يعمل كـ NFS Server … لمزيد من المعلومات؟ دائماً الـ man pages فيها الكثير، والإستفسارات هنا محل ترحيب مستمر … بإمكانك قراءة الموضوع من هنا أيضاً —> أضغط هنا أو من خلال مجتمع لينوكس العربي من هنا —> أضغط هنا
خالص الود والتقدير للجميع …
أخوكم B!n@ry …