บทความนี้กล่าวถึงการติดตั้งโปรแกรม iSCSI target และการคอนฟิกเพื่อให้เครืองอื่นๆ ที่ทำหน้าที่ initiator สามารถมาเรียกใช้ storage ได้
ติดตั้งไฟล์ rpm
ไฟล์ rpm ที่ต้องใช้ เพื่อคอนฟิกเครื่องให้ทำหน้าที่เป็น iSCSI target ได้ คือ “scsi-target-utils”
ตัวอย่างการติดตั้งไฟล์ rpm สำหรับ Fedora 11
[root@fc11-server ~]# rpm -i scsi-target-utils-0.9.5-1.fc11.x86_64.rpm
error: Failed dependencies:
perl(Config::General) is needed by scsi-target-utils-0.9.5-1.fc11.x86_64
หากเจอ error แบบนี้ ต้องลงไฟล์ rpm ชื่อ perl-Config-General ก่อน
[root@fc11-server ~]# rpm -i perl-Config-General-2.42-2.fc11.noarch.rpm [root@fc11-server ~]# rpm -i scsi-target-utils-0.9.5-1.fc11.x86_64.rpm
รันเซอร์วิส tgtd
รันเซอร์วิส tgtd (The Generic storage Target Daemon) ก่อน โดยใช้คำสั่ง service
[root@fc11-server ~]# /etc/init.d/tgtd start Starting SCSI target daemon: [ OK ]
สร้าง target ใหม่
ใช้คำสั่ง tgtadm เพื่อสร้าง target ใหม่ โดยพารามิเตอร์ที่ต้องระบุคือ target id (–tid) และชื่อ target (-T)
เราสามารถสร้างได้หลาย target ในเซิร์ฟเวอร์เครื่องหนึ่ง แต่ต้องมี id และชื่อแตกต่างกัน สำหรับ id เราสามารถรันตัวเลขเริ่มจาก 1 ได้ ส่วนชื่อ target ที่นิยมกันจะตั้งชื่อในรูปแบบ iqn (iSCSI Qualified Name)
รูปแบบชื่อแบบ iqn
iqn.yyyy-mm.{reversed domain name}:resource_name
ในบทความนี้ตั้งชื่อเป็น iqn.2001-04.com.example:storage.test.disk-01
ตัวอย่างการสร้าง target ใหม่
[root@fc11-server ~]# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2001-04.com.example:storage.test.disk-01
หลังจากที่สร้างแล้ว สามารถใช้คำสั่ง tgtadm –op show เพื่อตรวจสอบคอนฟิก target ที่ทำงานอยู่ได้
[root@fc11-server ~]# tgtadm --lld iscsi --op show --mode target Target 1: iqn.2001-04.com.example:storage.test.disk-01 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 Online: Yes Removable media: No Backing store: No backing store Account information: ACL information:
เพิ่ม logical unit เข้า target
เมื่อสร้าง target แล้ว จะยังไม่สามารถใช้งานได้ทันที ต้องเพิ่ม logical unit ที่จะทำหน้าที่เป็น storage ของ target นี้ก่อน
เราสามารถใช้ disk partition หรือ LVM logical volume เพื่อทำหน้าที่เป็น logical unit ได้ ในที่นี้จะใช้ disk partition /dev/sdb1
คำเตือน!!! ข้อมูลใน disk ที่จะใช้เป็น logical unit จะถูกทำลายทั้งหมด จาก initiator
ตัวอย่างการเพิ่ม logical unit เข้า target
[root@fc11-server ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1
ตรวจสอบหลังจากการเพิ่ม logical unit
[root@fc11-server ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2001-04.com.example:storage.test.disk-01
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
Online: Yes
Removable media: No
Backing store: No backing store
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 40049 MB
Online: Yes
Removable media: No
Backing store: /dev/sdb1
Account information:
ACL information:
คอนฟิก bind target
สุดท้ายต้องระบุการ bind เพื่อเป็นการอนุญาตให้เครื่อง client หรือ initiator สามารถเข้ามาใช้ (access) target ได้
เบื้องต้น เราจะอนุญาตทั้งหมดให้เข้ามาใช้ได้ ด้วยการระบบออปชั่น “-I ALL”
[root@fc11-server ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
ตรวจสอบหลังจากคอนฟิก
[root@fc11-server ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2001-04.com.example:storage.test.disk-01
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
Online: Yes
Removable media: No
Backing store: No backing store
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 40049 MB
Online: Yes
Removable media: No
Backing store: /dev/sdb1
Account information:
ACL information:
ALL
ทดสอบจาก iSCSI initiator
ทดสอบรันคำสั่ง iscsiadm -m discovery จากเครื่องอื่น เพื่อทดสอบการค้นหา target ที่เพิ่งสร้างขึ้น สมมติว่าเคื่อง server ที่ทำหน้าที่ target มี ip address เป็น 192.168.1.1
[root@fc11-client ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.1 192.168.1.1:3260,1 iqn.2001-04.com.example:storage.test.disk-01
ต้องเองไฟล์ไปไว้ที่ไหนค่ะ ถึงจะใช้คำสั่งนี้ได้เลยอ่าคะ
rpm -i scsi-target-utils-0.9.5-1.fc11.x86_64.rpm
แล้วถ้าไฟล์ของเรา scsi-target-utils-0.9.5-1.fc11.src.rpm
ไฟล์ .src.rpm เป็นไฟล์ source code ครับ ไม่สามารถใช้งานได้ทันที ต้องนำไป compile ก่อน
window connect ไม่ได้ เพราะจะทราบสาเหตุไหมครับ