كيفية إعداد NFS و iSCSI على أوبنتو لتشارك الملفات على الشبكة
مقدمة
في بيئات الشبكات المتقدمة، تُعد مشاركة الملفات بين الأنظمة ضرورة أساسية لتحقيق التكامل، وتحسين الأداء، وتسهيل إدارة البيانات. ومن بين أكثر البروتوكولات استخدامًا في هذا السياق يبرز بروتوكولا NFS و iSCSI. يوفر كل منهما أسلوبًا مختلفًا لمشاركة الملفات والوصول إلى وحدات التخزين، ويستخدمان على نطاق واسع في المؤسسات التي تعتمد على أنظمة Linux مثل أوبنتو. يتناول هذا المقال كيفية إعداد NFS و iSCSI على نظام أوبنتو خطوة بخطوة لتفعيل مشاركة الملفات بكفاءة وموثوقية.
القسم الأول: إعداد NFS (Network File System)
1. نظرة عامة على NFS
يعد NFS بروتوكولًا لتشارك الملفات يسمح للأنظمة بالوصول إلى الملفات البعيدة كما لو كانت محلية. يتميز ببساطته وسهولة تكامله مع بيئات Linux و Unix. وهو مثالي للاستخدام داخل الشبكات الداخلية حيث تكون السرعة والاستقرار من الأولويات.
2. متطلبات إعداد NFS
قبل البدء، تأكد من توافر الشروط التالية:
-
جهازان على الأقل يعملان بنظام Ubuntu.
-
امتيازات الجذر (root) أو صلاحيات sudo.
-
اتصال شبكي مستقر بين الأجهزة.
3. تثبيت خادم NFS
على الخادم (Server)
bashsudo apt update sudo apt install nfs-kernel-server -y
إعداد دليل المشاركة
افترض أن المسار هو /srv/nfs/shared:
bashsudo mkdir -p /srv/nfs/shared
sudo chown nobody:nogroup /srv/nfs/shared
sudo chmod 755 /srv/nfs/shared
4. تكوين ملف التصدير
يتم تحديد المجلدات التي تريد تصديرها للعملاء في /etc/exports. افتح الملف وأضف السطر التالي:
bash/srv/nfs/shared 192.168.1.0/24(rw,sync,no_subtree_check)
-
192.168.1.0/24: الشبكة المسموح لها بالوصول. -
rw: القراءة والكتابة. -
sync: ضمان كتابة البيانات فورًا على القرص. -
no_subtree_check: تحسين الأداء.
ثم قم بتحديث إعدادات NFS:
bashsudo exportfs -ra
5. تشغيل خدمة NFS
bashsudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server
6. إعداد العميل (Client)
تثبيت عميل NFS
bashsudo apt update sudo apt install nfs-common -y
إنشاء نقطة ربط Mount Point
bashsudo mkdir -p /mnt/nfs/shared
ربط مجلد الخادم
bashsudo mount 192.168.1.10:/srv/nfs/shared /mnt/nfs/shared
لتفعيل الربط تلقائيًا عند الإقلاع، أضف السطر التالي إلى /etc/fstab:
bash192.168.1.10:/srv/nfs/shared /mnt/nfs/shared nfs defaults 0 0
القسم الثاني: إعداد iSCSI (Internet Small Computer Systems Interface)
1. نظرة عامة على iSCSI
بروتوكول iSCSI هو معيار لنقل بيانات التخزين عبر شبكة IP. يتيح لأنظمة التشغيل ربط وحدات تخزين بعيدة (Targets) وكأنها أقراص محلية، ما يجعله خيارًا شائعًا في بيئات التخزين الشبكي (SAN). بخلاف NFS، يقدم iSCSI مستوى منخفضًا من التجريد مما يمنح تحكمًا أدق على كتلة التخزين.
2. متطلبات إعداد iSCSI
-
نظامان يعملان بأوبنتو: أحدهما خادم iSCSI، والآخر عميل.
-
شبكة محلية موثوقة.
-
صلاحيات root.
3. إعداد خادم iSCSI
تثبيت البرامج اللازمة
bashsudo apt update sudo apt install tgt -y
إنشاء قرص افتراضي
bashsudo mkdir /iscsi_disks
sudo dd if=/dev/zero of=/iscsi_disks/disk01.img bs=1M count=1024
تهيئة ملف التكوين
أنشئ ملف تعريف iSCSI:
bashsudo nano /etc/tgt/conf.d/iscsi-target.conf
أضف المحتوى التالي:
bashbacking-store /iscsi_disks/disk01.img initiator-address 192.168.1.0/24 incominguser iscsiuser secret
ثم أعد تشغيل الخدمة:
bashsudo systemctl restart tgt
sudo systemctl enable tgt
4. إعداد عميل iSCSI
تثبيت البرامج
bashsudo apt update sudo apt install open-iscsi -y
اكتشاف الهدف (Target)
bashsudo iscsiadm -m discovery -t sendtargets -p 192.168.1.10
تسجيل الدخول إلى الهدف
bashsudo iscsiadm -m node --login
التحقق من ربط الجهاز
بعد تسجيل الدخول، سيتم إنشاء جهاز جديد مثل /dev/sdb:
bashlsblk
تهيئة الجهاز
bashsudo fdisk /dev/sdb
ثم أنشئ نظام ملفات:
bashsudo mkfs.ext4 /dev/sdb1
إنشاء نقطة الربط
bashsudo mkdir /mnt/iscsi_disk
sudo mount /dev/sdb1 /mnt/iscsi_disk
لجعل الربط دائمًا، أضف إلى /etc/fstab:
bash/dev/sdb1 /mnt/iscsi_disk ext4 _netdev 0 0
جدول مقارنة بين NFS و iSCSI
| المعيار | NFS | iSCSI |
|---|---|---|
| نوع الوصول | على مستوى الملفات (File-level) | على مستوى الكتلة (Block-level) |
| أنظمة التشغيل المدعومة | Linux، Unix، Windows (بشكل محدود) | Linux، Windows، VMware، وغيرها |
| الأداء | جيد في بيئات الملفات | أفضل عند الحاجة إلى تخزين منخفض المستوى |
| التكوين | بسيط نسبيًا | أكثر تعقيدًا |
| الأمن | محدود | دعم أفضل للمصادقة (CHAP) |
| الاستخدام المثالي | المشاركة العامة للمجلدات | وحدات تخزين لأنظمة قواعد البيانات أو VM |
الخاتمة
تُعد كل من NFS و iSCSI أدوات قوية وفعالة لمشاركة الملفات والتخزين عبر الشبكات، ولكل منهما حالات استخدام مميزة. استخدام NFS يُفضل عند الحاجة لمشاركة ملفات داخلية بسرعة وسهولة، بينما يُعد iSCSI مناسبًا عندما يتطلب الأمر وحدات تخزين أكثر مرونة وتحكمًا على مستوى الكتلة. من خلال الإعدادات الدقيقة والتكوين السليم، يمكن بناء بنية تحتية موثوقة وآمنة لتبادل البيانات بين الأنظمة في أي بيئة احترافية.
المصادر:
-
Ubuntu Documentation – NFS and iSCSI setup guides
-
Open-iSCSI Project Documentation – https://open-iscsi.github.io

