Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134118
  • 博文数量: 38
  • 博客积分: 1277
  • 博客等级: 中尉
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-11 23:24
文章分类

全部博文(38)

文章存档

2012年(2)

2011年(7)

2010年(24)

2009年(5)

分类: 服务器与存储

2009-10-16 01:31:28

   python写的一个iscsi target端。(Linux内核版的有IET了, Windows版的Windows Storage带了,就用python写吧,呵呵)。源码和Windows下可执行档都在:

    目前最新版: pyTarget-1.5.4, 非常欢迎大家参与讨论以及改进!

一、目前支持如下功能:
    1、 支持多Target,多Session, 多Connect (MC/s)
    2、 各个Target可以配置独立的协商关键字,相互独立
    3、 支持通过Text来协商关键字
    4、 支持Initiator/Target多端CHAP认证
    5、 支持Login时通过C_Bit连包
    6、 支持Header及Data Digest
    7、 Lun设备是采用文件模拟方式
    8、 所有配置都过xml文件形式保存,方便修改及阅读
    9、 支持模拟各种暂时/永久SCSI磁盘错误
    10、支持模拟磁盘plist,glist坏块查询
    11、支持坏块重映射Reassign_blocks
    12、支持Start_Stop_Unit启停设备
    13、支持SES
    14、支持在线Web管理(如添加Target,等)
    15、支持高级错误恢复(ERL=2)
    16、支持VTL(虚拟磁带库)
    17、支持高级错误恢复(ERL=2)
    18、支持iSNS(SCN, ESI)
    19、其它

二、安装与配置:
    如果你下载的是Windows下二进制可执行包,可直接执行。
    如果直接运行python源码,需要安装python 2.6.1运行环境。

三、配置说明:打开编辑 config.xml文件
    1.
    # ip为空表示侦听本机所有IP中的指定port, 如果指定了ip, 则只侦听该IP。
    # debug_level控制调试信息显示等级,如果嫌console打得太多,就把值改小点,文件里有详细说明。

    2.
    # 配置Target, name为TargetName,ip, port及portal组成TargetAddress, 这些Initiator Discovery时
    # 会返回给Initiator

    3.
    # 配置host, host附属于Target,name为IQN, target_pwd为Login时Target端认证密码,initiator_pwd为
    # Initiator端身份认证密码,为空时不进行CHAP认证。

    4.
    # 配置Lun, lun附属于host, Initiator用哪个IQN登陆,会连接到相应的host,同时能看到该host下的所有
    # Lun设备。 id为Lun ID号,host内独立; type为Lun类型,0为Disk, 1为Tape,path为模拟Lun设备的文件名; capability为设定Lun设备容量,
    # 单位为block,1M=2*1024=2048

    5.
    # 这些为iSCSI Login协商关键字,附属于Target, 看看RFC3720吧,照着协议实现的。
    # MaxConnections,InitialR2T,ImmediateData, FirstBurstLength
    # MaxBurstLength,MaxRecvDataSegmentLength 这几个比较好玩。

四、实际应用
   1、由于python的本质决定了,这不是一个高效能的iscsi target
   2、Initiator与Target最好分开在两台机器上
   3、提供这么多功能,如果当成个测试功具,应该是个不错的选择。当然,你也可根据需要来进行修改。
   4、如果你了解协议,大部修改都相当容易。比如你想让一个Lun变成只读的,只须增加两行:
     在scsi_lib.py的__ModeSenseRsp(cmd)函数中增加两行(注释那两行):
   5、其它一些功能,像快照之类的,都相当好实现。

 

 

阅读(1305) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-06-12 00:51:31

遗精打开web了,原来用的是80端口,汗,这个端口可以修改么? 其次,运行后,提示10054错误,是为什么?

chinaunix网友2010-06-11 23:40:48

请问web在线管理如何实现?

chinaunix网友2010-01-14 20:31:23

代码刚整理出来,现已发布!

chinaunix网友2010-01-12 00:37:21

请问怎么没看到1.0.2的源码呀?