目前我的環境如下所示:
- RHEL5 Server – 當作 iSCSI Target 端,2顆硬碟,一個是 OS 另外一個就是給 iSCSI 當做分享出來的 raw devices 所使用.
- RHEL5 Client – 當作 iSCSI Initiator 端.
- Switch – 因為是 IP-SAN 所以不需要 Fiber switch,原來的 Network Switch 即可使用.建議使用 1Gb 以上的環境.
Initiator 指的是 "使用磁碟" 的主機端, Target 指的是 "提供磁碟" 的伺服器端.
前面已經完成了
- 安裝 iSCSI Target / initiator https://benjr.tw/15682
- 建立 iSCSI Target controller device https://benjr.tw/15679
iSCSI Target 新增硬碟
剛剛建立好了 iqn 接下來就是要 指定硬碟空間給 iSCSI Target.
[root@benjr ~]# tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 1 -b /dev/sdb1
–tid 1 : 還記得剛剛設定的 tid 吧!!
–lun 1 : 除了剛剛自動建立好的 lun 0 ,第一個指定為 lun1,以此類推.
通常 SCSI RAID 會用多顆 SCSI HD 組合成一個邏輯裝置(LUN),SCSI 控制器就可以使用單一的邏輯裝置來做存取 ,關於 LUN 請參考 https://benjr.tw/7336
-b /dev/sdb1 : 除了一般 partition 外還可以用 LVM.一般系統廠商所提供的 iSCSI Target 也都是配合 LVM 來運作.LVM (Logical Volume Manager)是一種可以動態變更磁區大小的方式,可以讓你能更容易利用管理你的硬碟. 關於 LVM 請參考https://benjr.tw/7364
沒有出現錯誤訊息你會看到和我一樣的 lun1 對應到 /dev/sdb1
[root@benjr ~]# tgtadm –lld iscsi –op show –mode target Target 1: iqn.2009-4.tw.benjr:storage System information: Driver: iscsi Status: running I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: deadbeaf1:0 SCSI SN: beaf10 Size: 0 Backing store: No backing store LUN: 1 Type: disk SCSI ID: deadbeaf1:1 SCSI SN: beaf11 Size: 9G Backing store: /dev/sdb1 Account information: ACL information:
iSCSI Target 移除硬碟
剛剛我們指定了一個硬碟 /dev/sdb1 給 iSCSI Target ,現在我們再透過指令新增另外一個硬碟 /dev/sdb2 ,後面就是這一次的重點如何移除指定好的硬碟.
[root@benjr ~]# tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 2 -b /dev/sdb2 [root@benjr ~]# tgtadm –lld iscsi –op show –mode target Target 1: iqn.2009-4.tw.benjr:storage System information: Driver: iscsi Status: running I_T nexus information: I_T nexus: 3 Initiator: iqn.1994-05.com.redhat:116f23e2ef8 Connection: 0 IP Address: 192.8.1.121 LUN information: LUN: 0 Type: controller SCSI ID: deadbeaf1:0 SCSI SN: beaf10 Size: 0 Backing store: No backing store LUN: 1 Type: disk SCSI ID: deadbeaf1:1 SCSI SN: beaf11 Size: 9G Backing store: /dev/sdb1 LUN: 2 Type: disk SCSI ID: deadbeaf1:2 SCSI SN: beaf12 Size: 9G Backing store: /dev/sdb2 Account information: ACL information: 192.8.1.121 192.8.1.0/24
透過參數 –op delete 去移除 –lun2 也就是 /dev/sdb2 的硬碟空間.
[root@benjr ~]# tgtadm –lld iscsi –op delete –mode logicalunit –tid 1 –lun 2 [root@benjr ~]# tgtadm –lld iscsi –op show –mode target Target 1: iqn.2009-4.tw.benjr:storage System information: Driver: iscsi Status: running I_T nexus information: I_T nexus: 3 Initiator: iqn.1994-05.com.redhat:116f23e2ef8 Connection: 0 IP Address: 192.8.1.121 LUN information: LUN: 0 Type: controller SCSI ID: deadbeaf1:0 SCSI SN: beaf10 Size: 0 Backing store: No backing store LUN: 1 Type: disk SCSI ID: deadbeaf1:1 SCSI SN: beaf11 Size: 9G Backing store: /dev/sdb1 Account information: ACL information: 192.8.1.121 192.8.1.0/24
很好 –lun 2 已經不存在了.不過很可惜是剛剛所有使用 tgtadm 指令設定 iSCSI Target 在重新開機後就不存在了,所以建議將剛剛幾個指令寫在 /etc/rc.local 檔案中.
接下來要來設定 iSCSI Target ACL 預設是不讓任何人存取,除非設定了 ACL(Access Control List) https://benjr.tw/15652