iSCSI Target和Initiator安装与操作步骤详解

来源:互联网 发布:指南针软件下载 编辑:程序博客网 时间:2024/05/20 04:15

iSCSI Target 编译安装过程

1. 解压:tar zxvf iscsitarget-1.4.18.tar.gz

2. cd iscsitarget-1.4.18

3. Linux2.6.32的内核太新了最新的iSCSI Target版本1.4.18还没有支持,网上有高手做了相应的补丁,于是打上补丁 patch -p1 <iscsitarget-1.4.18+linux-2.6.32.patch

4. 编译:make  KSRC=/usr/src/linux-2.6.32.2

5. 安装:make install /usr/src/linux-2.6.32.2

 

iSCSI Target 配置和常用操作详解

1. 修改配置文件

vi /etc/ietd.conf

 

2. 使用IET管理命令行
         

²  添加一个新的target

   ietadm --op new --tid=[id] --params Name=iqn.foo.example


其中[id] 为数字,必须是没有使用过的。后面的Name 需要自己自定义,也需要保证是唯一的。
当然不知道自己本机所有target id 的话,可以使用这个命令查看当前的target 状态和得到target id

 

² 添加一个新的 lun
Note:在一个已经存在的 target 上加入一个lun,以便共享出来给外界。
ietadm --op new --tid=[id] --lun=[lun] --params Path=/path/exported/file,Type=fileio


    [id] 必须是一个已经存在的tid 号,[lun]可以自己定义。
    后面的path 就是共享的路径了。
    NOTE通过这种方式添加的LUN在重启服务之后会丢失。

 

² 停止某个Target的某个Connection的连接

ietadm --op delete --tid=2 --sid=562950876233792 --cid=1 && ietadm --op delete --tid=2

 

² 停止所有Target的连接

ietadm --op delete

 

² 删除某个Target(已经没有Session连接的)

ietadm --op delete --tid=1

 

上面列出了ietadm常用的命令,关于ietadm 其余的命令,大家可以使用 ietadm --help 来查看更多的指令。

3. 常用操作命令
 查看当前虚拟单元清单
 cat /proc/net/iet/volume

tid:2 name:200M.img

        lun:1 state:0 iotype:fileio iomode:wt path:/work/janco/VirtualDisk/test.iso

tid:1 name:windows.iso

        lun:0 state:0 iotype:fileio iomode:wt path:/work/janco/VirtualDisk/windows.iso


     查看当前服务器 ISCSI target 服务以及连接状态命令
     cat /proc/net/iet/sessions

tid:2 name:200M.img

        sid:562950876233792 initiator:iqn.1991-05.com.microsoft:admin-pc

                cid:1 ip:192.168.1.240 state:active hd:none dd:none

        sid:281475899523136 initiator:jacko

                cid:1 ip:192.168.1.60 state:active hd:none dd:none

tid:1 name:windows.iso

 

启动、停止、重启iscsi-target服务

/etc/init.d/iscsi-target start

/etc/init.d/iscsi-target stop

/etc/init.d/iscsi-target restart

 

iSCSI Initiator编译安装过程

1. 解压:tar -xzvf open-iscsi-2.0-870.tar.gz

2. cd open-iscsi-2.0-870

3. 编译:make KSRC=/usr/src/linux-headers-$(uname -r)

4. 安装:make install KSRC=/usr/src/linux-headers-$(uname -r)

 

iSCSI Initiator配置和常用操作详解

² 配置可以通过编辑/etc/iscsi/目录下的iscsid.conf 文件进行,相关操作iscsid.conf文件内有详细的编写范例和说明。

 

² 开启、停止、重启Initistor服务

/etc/init.d/open-iscsi start

/etc/init.d/open-iscsi stop

/etc/init.d/open-iscsi restart

² 探测某台机器的Target

iscsiadm -m discovery -t sendtargets -p 192.168.5.35

192.168.5.35:3260,1 iqn.2010-03.com.Datastore:C3560:iSCSI.100G.634879

192.168.5.35:3260,1 iqn.2010-03.com.Datastore:C3560:iSCSI.Q.634879

² 列出所有 Target
iscsiadm -m node

192.168.5.35:3260,1 iqn.2010-03.com.Datastore:C3560:iSCSI.Q.634879

192.168.5.35:3260,1 iqn.2010-03.com.Datastore:C3560:iSCSI.100G.634879

² 连接所有 Target
iscsiadm -m node -L all

² 连接指定 Target
iscsiadm -m node -T iqn.2010-03.com.Datastore:C3560:iSCSI.janco.634879 -p 192.168.5.35 --login

    

² 带用户名和密码的Target登陆,需要编辑/etc/iscsi/node目录下对应的文件

例如:vi  /etc/iscsi/node/iqn.2010-03.com.Datastore:C3560:iSCSI.100GTest.741F81

修改

node.session.auth.authmethod = None

node.session.auth.authmethod = CHAP

node.session.auth.username = janco

node.session.auth.password = youraregoodman

node.session.auth.username_in =
node.session.auth.password_in =

然后再按照上述方法进行连接

注意,如果执行了discovery后,上述修改将会被还原。

 

² 使用如下命令可以查看数据结构的树状信息

# iscsiadm -m node -o show -T iqn.2010-03.com.Datastore:C3560:iSCSI.janco.634879


node.name = iqn.2010-03.com.Datastore:C3560:iSCSI.janco.634879

node.tpgt = 1
node.startup = automatic
iface.hwaddress = default
iface.iscsi_ifacename = default
iface.net_ifacename = default
iface.transport_name = tcp
node.discovery_address = 192.168.x.x
node.discovery_port = 3260
node.discovery_type = send_targets
node.session.initial_cmdsn = 0
node.session.initial_login_retry_max = 4
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.auth.authmethod = CHAP
node.session.auth.username = janco
node.session.auth.password = ********
node.session.auth.username_in =
node.session.auth.password_in =
node.session.timeo.replacement_timeout = 120
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.session.iscsi.DefaultTime2Retain = 0
node.session.iscsi.DefaultTime2Wait = 0
node.session.iscsi.MaxConnections = 1
node.session.iscsi.MaxOutstandingR2T = 1
node.session.iscsi.ERL = 0
node.conn[0].address = 192.168.x.x
node.conn[0].port = 3260
node.conn[0].startup = manual
node.conn[0].tcp.window_size = 524288
node.conn[0].tcp.type_of_service = 0
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.auth_timeout = 45
node.conn[0].timeo.active_timeout = 5
node.conn[0].timeo.idle_timeout = 60
node.conn[0].timeo.ping_timeout = 5
node.conn[0].timeo.noop_out_interval = 10
node.conn[0].timeo.noop_out_timeout = 15
node.conn[0].iscsi.MaxRecvDataSegmentLength = 131072
node.conn[0].iscsi.HeaderDigest = None,CRC32C
node.conn[0].iscsi.DataDigest = None
node.conn[0].iscsi.IFMarker = No
node.conn[0].iscsi.OFMarker = No

 

² 查看目前 iSCSI target 连接状态
iscsiadm -m session

tcp: [1] 192.168.5.35:3260,1 iqn.2010-03.com.Datastore:C3560:iSCSI.janco.634879

² 通过ls /dev/sd* 查看确认已经增加了磁盘设备

² 断开所有 Target连接

iscsiadm -m node -U all

² 断开指定 Target连接
iscsiadm -m node -T iqn.2010-03.com.Datastore:C3560:iSCSI.janco.634879 -p 192.168.5.35 --logout

² 查看目前连接状态
iscsiadm -m session

iscsiadm: No active sessions. (目前已沒有连接的 iSCSI target)

² 刪除所有 node 信息 (需重新 discovery)
 iscsiadm -m node --op delete