站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

Istgt-架設 iSCSI Target

前言

在 FreeBSD Ports Collection 中有二套 iSCSi Target 套件比較主流,分別是來至 NetBSD 的 [iscsi-target] (/usr/ports/net/iscsi-target),以及目前搭配內建於 FreeNAS 的 [istgt] (/usr/ports/net/istgt),並且在 FreeBSD 8 內建已經有 iSCSI initiator,而本篇內容將以 [istgt] 套件進行 iSCSI Targe 實作。

實作環境

安裝及設定

步驟1.安裝 istgt 套件

 #cd /usr/ports/net/istgt                        //切換至安裝路徑
 #make install clean                             //安裝套件並清除安裝過程中產生不必要檔案

步驟2.修改 istgt 設定檔

由於實作環境當中並未採用 CHAP 機制,在設定檔中只會採用 iSCSI Initiator 的 IQN 以及網段進行限制,所以只需要修改主要設定檔 istgt.conf 即可,若需要 CHAP 機制請配合修改 auth.conf、istgtcontrol.conf,以下為此次實作的 istgt.conf 設定檔內容:

 #cat /usr/local/etc/istgt/istgt.conf
 [Global]
  Comment "Global section"
  NodeBase "iqn.2012-05.org.weithenn.istgt"                //屆時 iSCSI Initiator 所看到的 iSCSI Target IQN
  PidFile /var/run/istgt.pid
  MediaDirectory /var/istgt
  LogFacility "local7"
  Timeout 30
  NopInInterval 20
  DiscoveryAuthMethod Auto
  MaxSessions 16
  MaxConnections 4
  MaxR2T 32
  MaxOutstandingR2T 16
  DefaultTime2Wait 2
  DefaultTime2Retain 60
  FirstBurstLength 262144
  MaxBurstLength 1048576
  MaxRecvDataSegmentLength 262144
  InitialR2T Yes
  ImmediateData Yes
  DataPDUInOrder Yes
  DataSequenceInOrder Yes
  ErrorRecoveryLevel 0
 [UnitControl]
  Comment "Internal Logical Unit Controller"
  AuthMethod Auto
  Portal UC1 127.0.0.1:3261
  Netmask 127.0.0.1
 [PortalGroup1]
  Comment "Portal Group"
  Portal DA1 192.168.1.250:3260                           //iSCSI Target Listen IP 及 Port 號
 [InitiatorGroup1]
  Comment "Initiator Group1"
  InitiatorName "iqn.1998-01.com.vmware:vm1-2985561d"     //允許此 iSCSI Initiator IQN 可連接 
  InitiatorName "iqn.1998-01.com.vmware:vm2-63bd9cf4"     //允許此 iSCSI Initiator IQN 可連接 
  Netmask 192.168.1.0/24                                  //允許此網段的 iSCSI Initiator 可連接
 [LogicalUnit1]
  Comment "iSCSI Hard Disk"
  TargetName disk1
  TargetAlias "iSCSI Data Disk1"
  Mapping PortalGroup1 InitiatorGroup1
  AuthMethod Auto
  UseDigest Auto
  UnitType Disk
  LUN0 Storage /home/backup/VM/istgt-disk1 300GB         //屆時 iSCSI Initiator 看到的 iSCSI Target 空間

步驟3.建立 iSCSI Target Disk File

使用如下指令建立 iSCSI Target Disk File,請注意!! 設定檔中設定為 300 GB 而下列指令其單位為 MB

 #dd if=/dev/zero of=/home/backup/VM/istgt-disk1 bs=`expr 1024 \* 1024` count=300000

步驟4.設定開機時自動執行 istgt 服務

修改 rc.conf 設定檔,以便下次機器重新開機時能自動啟動 istgt 服務

 #vi /etc/rc.conf               //修改 rc.conf 設定檔
 istgt_enable="YES"             //加入此行

步驟5.啟動 istgt 服務

相關完成後我們鍵入以下指令來啟動 istgt 服務

 #/usr/local/etc/rc.d/istgt start
 Starting istgt.
 istgt version 0.4 (20111008)
 normal mode
 LU1 HDD UNIT
 LU1: LUN0 file=/home/backup/VM/istgt-disk1, size=322122547200
 LU1: LUN0 629145600 blocks, 512 bytes/block
 LU1: LUN0 300.0GB storage for iqn.2012-05.org.weithenn.istgt:disk1
 LU1: LUN0 serial 10000001
 LU1: LUN0 read cache enabled, write cache enabled
 LU1: LUN0 command queuing enabled, depth 32

檢查執行序 (process) 是否已有 istgt 服務

 #ps aux |grep istgt                   //查看 istgt 執行序是否運作
 root  58558  0.0  0.8 37680 16848  ??  Ss   12:31下午   2:49.80 /usr/local/bin/istgt -c /usr/local/etc/istgt/istgt.conf

檢查相關 Port 號是否 Listen

 #sockstat |grep istgt
 root     istgt      58558 3  dgram  -> /var/run/logpriv
 root     istgt      58558 6  tcp4   127.0.0.1:3261        *:*
 root     istgt      58558 7  tcp4   10.10.25.250:3260     *:*

Me FAQ

Q.啟動 istgt 服務時出現錯誤訊息?

Error Message:

啟動 istgt 服務時出現錯誤訊息?

 #/usr/local/etc/rc.d/istgt start
 Starting istgt.
 istgt version 0.4 (20111008)
 normal mode
 istgt_lu_ctl.c:1483:istgt_init_uctl: ***ERROR*** find_cf_section failed()
 istgt.c:1104:istgt_init: ***ERROR*** istgt_init_uctl() failed
 istgt.c:1659:main: ***ERROR*** istgt_init() failed
 /usr/local/etc/rc.d/istgt: WARNING: failed to start istgt

Ans:

此次我的狀況是在 istgt.conf 設定檔中,對於 UnitControl 部份沒有設定好所造成,修改為如下設定內容後運作正常

 [UnitControl]
  Comment "Internal Logical Unit Controller"
  AuthMethod Auto
  Portal UC1 127.0.0.1:3261
  Netmask 127.0.0.1

參考

[FreeBSD iSCSI How-To]

[How to use FreeBSD as a ISCI Target and Initiator (with CHAP)]

[An iSCSI target implementation for multipath failover cluster nodes]

[iSCSI: istgt, docs, questions, multiple target config]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com