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