1. iSCSI简介
从协议层次的角度看,通常所说的SCSI通常是指一组包含块命令、控制器管理、系统命令和enclosure服务等内容的协议规范,对应于回话层;而其下的物理通道和链接方式就对应在数据链路层,SCSI命令可以通过串口、Fibre Channel、SAS、infiniband、Internet、USB、PCIE等进行传输。iSCSI就是一种把异地存储资源通过TCP/IP网络映射到本地逻辑存储设备的SCSI实现。不同于NFS向用户提供按文件为单位访问远程存储的方式,它向用户提供了以块方式访问远程存储资源的接口,也就是说用户可以在本地/dev/下看到iSCSI映射后的磁盘。通常所说的target端是指远端存储资源所在的主机,比如存储服务器;而initiator端是指链接到target端并会访问远端存储资源的节点。
2. iSCSI target管理工具的特点
基于iSCSI的网络属性,很直观地我们能想到它基本上是基于server-client模型。提供存储资源的target相当于server,而使用远程存储资源的initiator端相当于client。基于现有的iSCSI协议规范,能够开发出target端和initiator端工具。在Linux系统上,initiator端工具可以用iscsiadm,目前大部分os都自带有这款工具;而target端的工具由于直接和性能和存储管理相关,数量更多,目前常见的有targetcli、targetadm、ietadm,它们各有所长,分别能适用不同的场合。
3.三种iSCSI target管理工具的使用对比
通过上面的介绍和举例,我们不难看到三种工具各有优劣,区别如下:
安装包 |
前端工具 |
后台服务 |
性能 |
登录历史 |
功能 |
iSNS |
|
LIO targetcli |
targetcli.noarch |
Targetcli |
Target; targetd |
好,2.6.38+原生内核支持 |
不记录initiator 登录信息 |
ACL控制 |
不支持 |
STGTT targetadm |
scsi-target-utils.x86_64 |
Tgtadm |
tgtd |
不好,用户态模拟设备 |
记录登录initiator名称 |
ACL; Tags; |
支持 |
STGT ietadm |
Iscsitarget-1.4.20.2 |
Ietadm |
Ietd |
好,有内核驱动模拟iSCSI设备 |
记录登录initiator名称及一些discovery信息 |
ACL; Tags; Disk ID ; 基于配置文件的管理 |
支持 |
未完 待续
参考文档和链接
https://github.com/agrover/targetcli-fb
SCSI target framework (tgtadm)
http://www.bubuko.com/infodetail-1152038.html
http://www.linuxidc.com/Linux/2015-03/114323.
http://www.linuxidc.com/Linux/2012-08/67740.htm
https://github.com/konis/tgt/blame/master/doc/README.passthrough
http://blog.chinaunix.net/uid-30212356-id-5520545.html
https://github.com/fujita/tgt
http://iscsitarget.sourceforge.net/
https://sourceforge.net/projects/iscsitarget
https://www.ibm.com/developerworks/community/blogs/5144904d-5d75-45ed-9d2b-cf1754ee936a/entry/linux_io_target%25e4%25bb%258b%25e7%25bb%258d_%25e4%25b8%2580?lang=en
http://czmmiao.iteye.com/blog/2055805