用户工具

站点工具


feature:i:iscsi

iSCSI 与 FreeBSD

FreeBSD 可以充当 iSCSI 资源/服务器 的服务端(iSCSI-target)。该target端移植自 NetBSD 的 iscsi-target,可以很方便地通过 ports 来安装。

Ports 中, iscsi-target 位于:ports/net/iscsi-target/

同时,FreeBSD 从 7.0开始加入了内核级别的 iSCSI 客户端 ( iSCSI-initator ) 部分。

freebsd 的 ports 相关页面在:http://www.freebsd.org/cgi/ports.cgi?query=iscsi&stype=all

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     *:*
/data/vhosts/wiki-data/pages/feature/i/iscsi.txt · 最后更改: 2013/11/30 05:35 由 flfq