ديف أوبس

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

كيفية إعداد NFS و iSCSI على أوبنتو لتشارك الملفات على الشبكة

مقدمة

في بيئات الشبكات المتقدمة، تُعد مشاركة الملفات بين الأنظمة ضرورة أساسية لتحقيق التكامل، وتحسين الأداء، وتسهيل إدارة البيانات. ومن بين أكثر البروتوكولات استخدامًا في هذا السياق يبرز بروتوكولا NFS و iSCSI. يوفر كل منهما أسلوبًا مختلفًا لمشاركة الملفات والوصول إلى وحدات التخزين، ويستخدمان على نطاق واسع في المؤسسات التي تعتمد على أنظمة Linux مثل أوبنتو. يتناول هذا المقال كيفية إعداد NFS و iSCSI على نظام أوبنتو خطوة بخطوة لتفعيل مشاركة الملفات بكفاءة وموثوقية.


القسم الأول: إعداد NFS (Network File System)

1. نظرة عامة على NFS

يعد NFS بروتوكولًا لتشارك الملفات يسمح للأنظمة بالوصول إلى الملفات البعيدة كما لو كانت محلية. يتميز ببساطته وسهولة تكامله مع بيئات Linux و Unix. وهو مثالي للاستخدام داخل الشبكات الداخلية حيث تكون السرعة والاستقرار من الأولويات.


2. متطلبات إعداد NFS

قبل البدء، تأكد من توافر الشروط التالية:

  • جهازان على الأقل يعملان بنظام Ubuntu.

  • امتيازات الجذر (root) أو صلاحيات sudo.

  • اتصال شبكي مستقر بين الأجهزة.


3. تثبيت خادم NFS

على الخادم (Server)

bash
sudo apt update sudo apt install nfs-kernel-server -y

إعداد دليل المشاركة

افترض أن المسار هو /srv/nfs/shared:

bash
sudo 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:

bash
sudo exportfs -ra

5. تشغيل خدمة NFS

bash
sudo systemctl restart nfs-kernel-server sudo systemctl enable nfs-kernel-server

6. إعداد العميل (Client)

تثبيت عميل NFS

bash
sudo apt update sudo apt install nfs-common -y

إنشاء نقطة ربط Mount Point

bash
sudo mkdir -p /mnt/nfs/shared

ربط مجلد الخادم

bash
sudo mount 192.168.1.10:/srv/nfs/shared /mnt/nfs/shared

لتفعيل الربط تلقائيًا عند الإقلاع، أضف السطر التالي إلى /etc/fstab:

bash
192.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

تثبيت البرامج اللازمة

bash
sudo apt update sudo apt install tgt -y

إنشاء قرص افتراضي

bash
sudo mkdir /iscsi_disks sudo dd if=/dev/zero of=/iscsi_disks/disk01.img bs=1M count=1024

تهيئة ملف التكوين

أنشئ ملف تعريف iSCSI:

bash
sudo nano /etc/tgt/conf.d/iscsi-target.conf

أضف المحتوى التالي:

bash
backing-store /iscsi_disks/disk01.img initiator-address 192.168.1.0/24 incominguser iscsiuser secret

ثم أعد تشغيل الخدمة:

bash
sudo systemctl restart tgt sudo systemctl enable tgt

4. إعداد عميل iSCSI

تثبيت البرامج

bash
sudo apt update sudo apt install open-iscsi -y

اكتشاف الهدف (Target)

bash
sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.10

تسجيل الدخول إلى الهدف

bash
sudo iscsiadm -m node --login

التحقق من ربط الجهاز

بعد تسجيل الدخول، سيتم إنشاء جهاز جديد مثل /dev/sdb:

bash
lsblk

تهيئة الجهاز

bash
sudo fdisk /dev/sdb

ثم أنشئ نظام ملفات:

bash
sudo mkfs.ext4 /dev/sdb1

إنشاء نقطة الربط

bash
sudo 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 مناسبًا عندما يتطلب الأمر وحدات تخزين أكثر مرونة وتحكمًا على مستوى الكتلة. من خلال الإعدادات الدقيقة والتكوين السليم، يمكن بناء بنية تحتية موثوقة وآمنة لتبادل البيانات بين الأنظمة في أي بيئة احترافية.

المصادر:

  1. Ubuntu Documentation – NFS and iSCSI setup guides

  2. Open-iSCSI Project Documentation – https://open-iscsi.github.io