iSCSI هو اختصار لـ (Internet Small Computer System Interface) .
سنشرح هنا كيفية إعداد iSCSI على خادم Ubuntu 20.04.
المطلوب تحضيره قبل البدء في الخطوات
1- نظام يقوم بتشغيل Ubuntu 20.04 لـ iSCSI target مع محرك أقراص صلبة خارجي بسعة 1 جيجابايت.
2- نظام يشغل Ubuntu 20.04 حديثًا لـ iSCSI initiator.
3- إعداد عنوان IP ثابت 192.168.1.10 على iSCSI target وتم تكوين 192.168.1.20 على iSCSI initiator.
4- إعداد كلمة مرور لـ root على الخادمين.
قبل البدء ، من الجيد تحديث نظامك بأحدث الحزم.
يمكنك تحديثها بالأمر التالي:
apt-get update -y
apt-get upgrade -y
بمجرد تحديث جميع الحزم ، قم بإعادة تشغيل النظام لتطبيق التغييرات.
تثبيت iSCSI target
بشكل افتراضي ، تتوفر حزمة iSCSI target في Ubuntu 20.04 الافتراضي. يمكنك تثبيته عن طريق تشغيل الأمر التالي على خادم iSCSI Target:
apt-get install tgt -y
بعد تثبيت iSCSI Target ، تحقق من حالة الخادم بالأمر التالي:
systemctl status tgt
يجب أن تحصل على النتيجة التالية:
? tgt.service - (i)SCSI target daemon
Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-07-11 07:13:04 UTC; 23s ago
Docs: man:tgtd(8)
Main PID: 7770 (tgtd)
Status: "Starting event loop..."
Tasks: 1
Memory: 1.1M
CGroup: /system.slice/tgt.service
??7770 /usr/sbin/tgtd -f
Jul 11 07:13:04 ubuntu2004 systemd[1]: Starting (i)SCSI target daemon...
Jul 11 07:13:04 ubuntu2004 tgtd[7770]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Jul 11 07:13:04 ubuntu2004 tgtd[7770]: tgtd: work_timer_start(146) use timer_fd based scheduler
Jul 11 07:13:04 ubuntu2004 tgtd[7770]: tgtd: bs_init(387) use signalfd notification
Jul 11 07:13:04 ubuntu2004 systemd[1]: Started (i)SCSI target daemon.
عند هذه النقطة تم تثبيت iSCSI Target في الخادم الخاص بك يمكنك الآن المتابعة إلى الخطوة التالية.
إعداد iSCSI Target
أولاً ، ستحتاج إلى إنشاء جهاز LUN والذي هو اختصار لـ (Logical Unit Number) على خادم iSCSI.
LUN عبارة عن أجهزة تخزين خلفية (backend storage) وهي جزء من جهاز SCSI الفعلي.
جميع وحدات LUN المحددة لـ iSCSI target مرتبطة virtually بنظام تشغيل المستخدمين.
. لذلك ، يمكن للمبادرين إنشاء وإدارة أنظمة الملفات على iSCSI LUNs.
يمكنك إعداده عن طريق:
nano /etc/tgt/conf.d/iscsi.conf
أضف الأسطر التالية:
<target iqn.2020-07.example.com:lun1>
backing-store /dev/sdb
initiator-address 192.168.1.20
incominguser iscsi-user password
outgoinguser iscsi-target secretpass
</target>
احفظ وأغلق الملف عند الانتهاء.
يحدد السطر الأول اسم LUN.
يحدد السطر الثاني موقع واسم جهاز التخزين على خادم iSCSI Target.
يحدد السطر الثالث عنوان IP لـ iSCSI initiator.
يحدد السطر الرابع اسم المستخدم / كلمة المرور الواردة.
يحدد السطر الخامس اسم المستخدم / كلمة المرور التي سيوفرها target إلى initiator للسماح بمصادقة CHAP المتبادلة.
بعد ذلك ، أعد تشغيل خدمة iSCSI لتطبيق التغييرات:
systemctl restart tgt
بعد ذلك ، تحقق من خادم iSCSI Target باستخدام الأمر التالي:
tgtadm --mode target --op show
يجب أن تحصل على النتيجة:
Target 1: iqn.2020-07.example.com:lun1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
iscsi-user
iscsi-target (outgoing)
ACL information:
192.168.1.10
تثبيت وإعداد iSCSI initiator
بعد ذلك ، انتقل إلى جهاز iSCSI initiator وقم بتثبيت حزمة iSCSI initiator باستخدام الأمر التالي:
apt-get install open-iscsi -y
بمجرد اكتمال التثبيت ، اكتشف خادم iSCSI Target لمعرفة الأهداف المشتركة باستخدام الأمر التالي:
iscsiadm -m discovery -t st -p 192.168.1.10
يجب أن ترى النتيجة التالية:
192.168.1.10:3260,1 iqn.2020-07.example.com:lun1
بعد ذلك ، ستحتاج إلى تحديد اسم جهاز LUN في ملف initiatorname.iscsi:
nano /etc/iscsi/initiatorname.iscsi
أضف اسم iSCSI Target الخاص بك كما هو موضح أدناه:
InitiatorName = iqn.2020-07.example.com: lun1
احفظ وأغلق الملف عند الانتهاء.
بعد ذلك ، ستحتاج إلى تحديد معلومات CHAP التي قمت بتكوينها على iSCSI Target للوصول إلى iSCSI Target من iSCSI initiator.
سيكون ملف التكوين موجودًا في المجلد '/ etc / iscsi / nodes /' وسيكون به مجلد لكل LUN متاح.
سيكون ملف التكوين موجودًا في المجلد '/ etc / iscsi / nodes /' وسيكون به مجلد لكل LUN متاح.
يمكنك تعريفه بتحرير الملف التالي:
nano /etc/iscsi/nodes/iqn.2020-07.example.com\:lun1/192.168.1.10\,3260\,1/default
إضافة / تعديل الأسطر التالية:
node.session.auth.authmethod = CHAP
node.session.auth.username = iscsi-user
node.session.auth.password = password
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass
node.startup = automatic
احفظ وأغلق الملف ثم أعد تشغيل خدمة iSCSI initiator باستخدام الأمر التالي:
systemctl restart open-iscsi iscsid
يمكنك أيضًا التحقق من حالة الخدمة بالأمر التالي:
systemctl status open-iscsi
يجب أن ترى النتيجة التالية:
? open-iscsi.service - Login to default iSCSI targets
Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2020-07-11 07:24:19 UTC; 10s ago
Docs: man:iscsiadm(8)
man:iscsid(8)
Process: 3861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
Process: 3867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS)
Main PID: 3867 (code=exited, status=0/SUCCESS)
Jul 11 07:24:19 initiator systemd[1]: Starting Login to default iSCSI targets...
Jul 11 07:24:19 initiator iscsiadm[3861]: Logging in to [iface: default, target: iqn.2020-07.example.com:lun1, portal: 104.245.33.142,3260] (m>
Jul 11 07:24:19 initiator iscsiadm[3861]: Login to [iface: default, target: iqn.2020-07.example.com:lun1, portal: 104.245.33.142,3260] success>
Jul 11 07:24:19 initiator systemd[1]: Finished Login to default iSCSI targets.
يمكنك أيضًا التحقق من اتصال iSCSI باستخدام الأمر التالي:
iscsiadm -m session -o show
يجب أن ترى النتيجة التالية:
tcp: [2] 192.168.1.10:3260,1 iqn.2020-07.example.com:lun1 (non-flash)
يمكنك أيضًا التحقق من جهاز التخزين المشترك من iSCSI Target باستخدام الأمر التالي:
lsblk
يجب أن تشاهد sdb الجهاز المشترك في الإخراج التالي:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
??sda1 8:1 0 80G 0 part /
sdb 8:16 0 1000M 0 disk
إنشاء نظام ملفات (File System) على جهاز مشترك
لاستخدام الجهاز المشترك (Shared Device) على iSCSI initiator ، ستحتاج إلى إنشاء نظام ملفات على الجهاز المشترك (sdb) وإعداده.
أولاً ، قم بإنشاء نظام ملفات على الجهاز المشترك (sdb) باستخدام الأمر التالي:
fdisk /dev/sdb
أجب عن جميع الأسئلة كما هو موضح أدناه لإنشاء نظام ملفات:
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9743ddcf.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-2047999, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2047999, default 2047999):
Created a new partition 1 of type 'Linux' and of size 999 MiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
بعد ذلك ، قم بتهيئة القسم بالأمر التالي:
mkfs.ext4 /dev/sdb1
يجب أن ترى النتيجة التالية:
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 255744 4k blocks and 64000 inodes
Filesystem UUID: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
بعد ذلك ، قم بتحميل القسم إلى المجلد / mnt باستخدام الأمر التالي:
mount /dev/sdb1 /mnt
يمكنك الآن التحقق من القسم المركب باستخدام الأمر التالي:
df -h
يجب أن ترى النتيجة التالية:
Filesystem Size Used Avail Use% Mounted on
udev 981M 0 981M 0% /dev
tmpfs 199M 588K 199M 1% /run
/dev/sda1 79G 1.8G 74G 3% /
tmpfs 994M 0 994M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 994M 0 994M 0% /sys/fs/cgroup
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 968M 2.5M 899M 1% /mnt