ISCSI Target 的常用配置和常用操作(备忘)

这里都是关于 使用 ISCSI Enterprise Target (简称 IET ) 的使用说明。

常用操作命令:
查看当前虚拟单元清单。
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 的配置,常用有两种方式
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

// 后半句很重要,如果不执行的话 Initiator 有可能自动重连,导致又生成一个 session connection

² 停止所有 Target 的连接

ietadm --op delete

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

ietadm --op delete --tid= 1

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

其他常见问题
1. 防火墙链接限制,外界无法访问 Target 服务器 3260 端口。
请在防火墙上手动放开 3260 端口,或者有条件的话干脆关闭防火墙。
更改防火墙配置并重启生效
vi /etc/sysconfig/iptables
server iptable restart

2. 共享的路径都可以有哪些?
IET 的技术文档中规定,以下几种路径是被支持的:
1) 一个完整的 block 磁盘,比如我在前文中所述的 /dev/sdb
2) 一个 RAID 设备或者是一个 LVM , 这个我没测试过! -_-!
3) 一个虚拟的镜像文件 , 可能性能可比直接 IO 读取稍差点!
例子:

制作一个 512M 的磁盘镜像

dd if=/dev/zero of=/disk.img bs=512 count=1000000

IET 配置中 lun 设置:

LUN 0 Path=/disk.img,Type=fileio

重启 IET 服务生效!

/etc/init.d/iscsi-target restart


版权声明:本文为do2jiang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。