2,267 瀏覽數

Linux iSCSI Target 新增/移除硬碟

目前我的環境如下所示:

  1. RHEL5 Server – 當作 iSCSI Target 端,2顆硬碟,一個是 OS 另外一個就是給 iSCSI 當做分享出來的 raw devices 所使用.
  2. RHEL5 Client – 當作 iSCSI Initiator 端.
  3. Switch – 因為是 IP-SAN 所以不需要 Fiber switch,原來的 Network Switch 即可使用.建議使用 1Gb 以上的環境.

Initiator 指的是 "使用磁碟" 的主機端, Target 指的是 "提供磁碟" 的伺服器端.

前面已經完成了

  1. 安裝 iSCSI Target / initiator http://benjr.tw/15682
  2. 建立 iSCSI Target controller device http://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 請參考 http://benjr.tw/7336
-b /dev/sdb1 : 除了一般 partition 外還可以用  LVM.一般系統廠商所提供的 iSCSI Target 也都是配合 LVM 來運作.LVM (Logical Volume Manager)是一種可以動態變更磁區大小的方式,可以讓你能更容易利用管理你的硬碟. 關於 LVM 請參考http://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) http://benjr.tw/15652

發表迴響