︿
Top

1、前言

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




文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 istgt 套件
          步驟2.修改 istgt 設定檔
          步驟3.建立 iSCSI Target Disk File
          步驟4.設定開機時自動執行 istgt 服務
          步驟5.啟動 istgt 服務
4、參考
5、Me FAQ
          Q1.啟動 istgt 服務時出現錯誤訊息?



2、實作環境

  • FreeBSD 8.2 RELEASE-p4
  • istgt-20111008 



3、安裝及設定

步驟 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 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 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     *:*






4、參考






5、Me FAQ

Q1. 啟動 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

    文章標籤: