iscsi分为两部分:服务端、客户端
原理:
suse10 自带的 iscsi 配置:
suse10 自带的 iscsi 服务端(版本:0.4.15)的内容:
iscsi_trgt.ko iscsi 驱动模块
ietd iscsitarget 的守护进程,主要作用是把完成 TCP 到 iscsi 协议转换
ietadm iscsitarget的用户层管理工具
/etc/init.d/iscsitarget iscsitarget的启动脚本,主要调用 ietd 守护进程
/etc/ietd.conf iscsitarget的配置文件
/etc/initiators.allow 控制initiator对target的访问权限。
/etc/initiators.deny 控制initiator对target的访问权限。
/etc/iet/targets.allow 控制不同target的被访问权限。
1)配置/etc/ietd.conf
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
Lun 0 Path=/dev/sda1,Type=fileio #分区
Lun 1 Path=/home/iscsi.img,Type=fileio #文件
大致说明:
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz 表示该ISCSI Target 的命名,命名在同一子网内应该是唯一的,标准命名方式为:
"Target "+ target名字 (格式如下: iqn.yyyy-mm.<reversed domain name>[:identifier] )
“Lun 0 Path=/dev/sda1”表示块设备号为0,映射的磁盘为/dev/sda1。
本次配置中 Type 的设定为"fileio",我主要用来对一个磁盘进行存储共享。
当然也可以针对需要设置为: "file" or "LVM"。
除此之外还有很多其他参数可以设置,具体参考:
http://manpages.ubuntu.com/manpages/hardy/man5/ietd.conf.5.html
2)配置访问权限
/etc/initiators.allow 控制initiator对target的访问权限。
/etc/initiators.deny 控制initiator对target的访问权限。
例如:vi /etc/initiators.allow
iqn.2001-04.com.example:storage.disk2.sys1.xyz ALL
3)启动iscsitarget
/etc/init.d/iscsitarget start
或者 service iscsitarget start
4)检查是否成功
cat /proc/net/iet/volume
tid:1 name:iqn.2001-04.com.example:storage.disk2.sys1.xyz
lun:0 state:0 iotype:fileio iomode:wt path:/dev/sda1
lun:1 state:0 iotype:fileio iomode:wt path:/home1/sxit/kl/iscsi.img
cat /proc/net/iet/session
tid:1 name:iqn.2001-04.com.example:storage.disk2.sys1.xyz
sid:564049469047296 initiator:iqn.2001-04.com.example:storage.disk2.sys1.xyz
cid:0 ip:10.10.0.113 state:active hd:none dd:none
sid:282574492336640 initiator:iqn.2001-04.com.example:storage.disk2.sys1.xyz
cid:0 ip:10.10.0.111 state:active hd:none dd:none
dmesg
iSCSI Enterprise Target Software - version 0.4.15
iscsi_trgt: Registered io type fileio
iscsi_trgt: Registered io type blockio
iscsi_trgt: Registered io type nullio
iscsi 驱动架构图: iSCSI Access To Storage | SCSI or FC Access to Storage ==================================================================== | Host applications | Host applications | =======|===========|===============================|================ | | | | | +------------+ | | | | SCSI | | | | | driver | | | | +------------+ | +-----------+ | | iSCSI | | | | | | driver | | | SCSI | +---------+------------+ | | or FC | | TCP/IP | | | adapter | +----------------------+ | | driver | | Network drivers | | | | +----------------------+ | +-----------+ | | | =============|=====================================|================ | | | +-----------+ | +-----------+ | NIC | | | HBA | +-----------+ | +-----------+ | | | =============|=====================================|================ _|_ | _|_ _( )_ | _( )_ _( IP )_ | _( FC )_ (_ network _) | (_ or SCSI _) (_ _) | (_ _) (_ _) | (_ _) | | | +------------------+ | | | Storage Router | | | | or Gateway | | | +------------------+ | | | | | +------------------+ | +------------------+ | Storage | | | Storage | +------------------+ | +------------------+ | (___)(___)(___) | | | (___)(___)(___) | | (___)(___)(___) | | | (___)(___)(___) | | (___)(___)(___) | | | (___)(___)(___) | | (___)(___)(___) | | | (___)(___)(___) | +------------------+ | +------------------+ ====================================================================
参考:
/etc/initiators.deny 控制initiator对target的访问权限。
/etc/iet/targets.allow 控制不同target的被访问权限。
例如打开所有权限:
vi /etc/iet/targets.allow
ALL ALL