
Internet Small Computer Systems Interface (iSCSI) เป็น Internet Protocol ใช้สำหรับการแลกเปลี่ยนข้อมูลในโลกของ Storage Networking ซึ่งจะทำงานอยู่บนมาตรฐาน TCP/IP Network ในรูปแบบของ Server-Client โดยที่ iSCSI Target (Server) จะเป็นผู้ให้บริการ Storage แก่ iSCSI Initiator (Clients) เพื่อนำ Storage ดังกล่าวไปใช้งาน
ในบทความนี้จะแสดงวิธีการคอนฟิก iSCSI Initiator (Clients) บน ระบบปฏิบัติการ Ubuntu เพื่อนำ Storage จาก iSCSI Target (Server) มาใช้งาน
Environment – iSCSI Target (Server)
- Computer Name: DC
- Operating System: Windows Server 2022 Standard
- IP Address: 10.0.0.99
Environment – iSCSI Initiator (Client)
- Computer Name: veeamrepo
- Operating System: Ubuntu 22.04.3 LTS
- IP Address: 10.0.0.111
บทความอื่นๆ ที่เกี่ยวข้อง
- การคอนฟิก iSCSI Target (Server) บน Windows Server 2022: https://www.ablenet.co.th/2024/03/04/win-iscsi-target/
- การคอนฟิก iSCSI Initiator (Clients) บนระบบปฏิบัติการ Windows: https://www.ablenet.co.th/2024/02/08/iscsi-initiator-win/
- การคอนฟิก iSCSI Initiator (Clients) บนระบบปฏิบัติการ Ubuntu: https://www.ablenet.co.th/2024/04/04/iscsi-initiator-ubt/
ขั้นตอนการตั้งค่าต่างๆ มีดังนี้
1.คอนฟิก iSCSI Initiator (Client) เพื่อไปเชื่อมต่อกับ iSCSI Target (Server)
Step1: ติดตั้ง open-iscsi
root@veeamrepo:/home/veeamrepo# apt -y install open-iscsi
Step2: เปลี่ยนชื่อ Initiator
root@veeamrepo:/home/veeamrepo# vi /etc/iscsi/initiatorname.iscsi ## Change Initiator Name InitiatorName=iqn.2004-10.com.ubuntu:01:srvtest
Step3: เปิดโหมด Authentication เพื่อใส่รหัสผ่านที่ตั้งไว้บน iSCSI Taget (ถ้าไม่ได้ตั้งรหัส ข้ามขั้นตอนนี้ได้)
root@veeamrepo:/home/veeamrepo# vi /etc/iscsi/iscsid.conf
# line 58 : uncomment node.session.auth.authmethod = CHAP # line 69,70: uncomment และใส่รหัสผ่านที่ได้ตั้งไว้บน iSCSI target server node.session.auth.username = username node.session.auth.password = password
Step4: Restart open-iscsi service
root@veeamrepo:/home/veeamrepo# systemctl restart iscsid open-iscsi
Step5: Discovert iSCSI Target
root@veeamrepo:/home/veeamrepo# iscsiadm -m discovery -t sendtargets -p 10.0.0.99
10.0.0.99:3260,1 iqn.1991-05.com.microsoft:hx-dc-ubt-target
Step6: ตรวจสอบการ iSCSI Target
root@veeamrepo:/home/veeamrepo# iscsiadm -m node -o show
# BEGIN RECORD 2.1.5 node.name = iqn.1991-05.com.microsoft:hx-dc-ubt-target node.tpgt = 1 node.startup = manual node.leading_login = No iface.iscsi_ifacename = default ..... ..... node.conn[0].iscsi.DataDigest = None node.conn[0].iscsi.IFMarker = No node.conn[0].iscsi.OFMarker = No # END RECORD
Step7: ตรวจสอบ Disk partitions
จะเห็นว่ามี Device ใหม่ที่ถูกเพิ่มขึ้นมา นั่นคือ sdb ขนาด 100GB
root@veeamrepo:/home/veeamrepo# cat /proc/partitions
major minor #blocks name
7 0 64972 loop0
7 1 114636 loop1
7 2 54536 loop2
11 0 1048575 sr0
8 0 104857600 sda
8 1 1024 sda1
8 2 2097152 sda2
8 3 102757376 sda3
252 0 51376128 dm-0
8 16 104857600 sdb
2.คอนฟิก Disk partition และ Mount Disk
Step1: สร้าง Label
root@veeamrepo:/home/veeamrepo# parted --script /dev/sdb "mklabel gpt"
Step2: สร้าง Partition
root@veeamrepo:/home/veeamrepo# parted --script /dev/sdb "mkpart primary 0% 100%"
Step3: Format with ext4
root@veeamrepo:/home/veeamrepo# mkfs.ext4 /dev/sdb1
Step5: Mount ไปยัง Path ที่ต้องการใช้งาน
root@veeamrepo:/home/veeamrepo# mount /dev/sdb1 /mnt
Step6: ตรวจสอบ File System
root@veeamrepo:/home/veeamrepo# df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 391M 1.2M 390M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 48G 6.9G 39G 16% /
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 ext4 2.0G 149M 1.7G 9% /boot
tmpfs tmpfs 391M 4.0K 391M 1% /run/user/1000
/dev/sdb1 ext4 98G 24K 93G 1% /mnt
จะเห็นว่าเราสามารถ Mount Storage จาก Windows Server มาใช้งานบนระบบปฏิบัติการ Ununtu ได้ ผ่านโปรโตคอล iSCSI
Reference: https://www.server-world.info/en/note?os=Ubuntu_22.04&p=iscsi&f=3