免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4002 | 回复: 0

[存储网络] iscsi几个关键字的协商与实现 [复制链接]

论坛徽章:
0
发表于 2009-10-12 01:22 |显示全部楼层

                                                                iscsi几个关键字的协商与实现
1.ErrorRecoveryLevel
  错误恢复级别, 目前好像只有微软Initiator/Target能支持ERL=2级,其它的都是0,至少我没遇到过。
2.MaxConnections
  准确来说应该时单个Session内最大连接数, 也就是允许单个Session内部最大能建几个
  Connection(MC/s)
3.InitialR2T  是否允许非请求类数据(solicited)。No表求允许,Yes表示不允许。
  比如,当双方协商为No时,Initiator发写指令时,发完首个PDU后,可以接着再发DataOut;
  但如果为Yes时,就必须等Target的R2T,再接着发DataOut。但对于首个PDU来说,得跟ImmediateData结
  合起来进行控制,下面说明。
4.ImmediateData  是否允许Initiator携带立即数据。Yes时,允许Initiator发SCSI写指令,再带一小段
  数据做为立即数据。No时,Initiator SCSI指令PDU不允许携带数据。跟InitialR2T配合如下:
   +----------+-------------+------------------+--------------+
   |InitialR2T|ImmediateData|    Unsolicited   |Immediate Data|
   |          |             |   Data Out PDUs  |              |
   +----------+-------------+------------------+--------------+
   | No       | No          | Yes              | No           |
   +----------+-------------+------------------+--------------+
   | No       | Yes         | Yes              | Yes          |
   +----------+-------------+------------------+--------------+
   | Yes      | No          | No               | No           |
   +----------+-------------+------------------+--------------+
   | Yes      | Yes         | No               | Yes          |
   +----------+-------------+------------------+--------------+
   比如:
   ImmediateData=No, InitialR2T=Yes, 则Initiator发出SCSI Write PDU不得携带立即数
   据,发完首个PDU后,得等Target返回R2T,再根据R2T范围,发送写数据的DataOut.
   ImmediateData=Yes, InitialR2T=Yes, 则Initiator发出SCSI Write PDU可以携带立即数
   据,发完首个PDU后,得等Target返回R2T,再根据R2T范围,发送写数据的DataOut.
   ImmediateData=Yes, InitialR2T=No, 则Initiator发出SCSI Write PDU可以携带立即数
   据,发完首个PDU后,如果数据长度未达到FirstBurstLength上限值,可接着发DataOut,达到
   FirstBurstLength上限后,得等Target返回R2T,再根据R2T范围,发送写数据的DataOut.
   ImmediateData=No, InitialR2T=No, 则Initiator发出SCSI Write PDU不得携带立即数
   据,发完首个PDU后,可直接发送DataOut,如果数据长度未达到MaxBurstLength上限值,可接着发
   DataOut,达到MaxBurstLength上限值以后,得等Target返回R2T,再根据R2T范围,发送写数据的
   DataOut.
5.MaxRecvDataSegmentLength
  PDU中数据段的数据最大长度。这个字段Initiator与Target相互独立,即协商时,各自表明自己能接收最大
  长度的PDU。发送PDU时,也按照这个长度进行数据分包发送。
6.FirstBurstLength
  非请求类数据的最大长度,结合上面例子看看
7.MaxBurstLength
  请求类数据的最大长度,这个值控制了Data-In以及Data-Out; Initiator的SCSI Read请求的所有
  Data-In数据长度不得超过该值,即Initiator每次SCSI_Read的长度不得超过该值;同时Target返回的
  R2T指定范围数据范围也不得超过该值,当然该R2T的所有Data-Out数据总长度也不能超过该值。
8.MaxOutstandingR2T
  每个任务可用R2T的上限值
  
  从上面这几个值,应该可以得出Initiator每次SCSI读写的最大长度来,但实际应用中,iSCSI是为OS中  的SCSI服务的,如果把上面几个协商值设得BT一点,就会看到iSCSI中的SCSI请求违返协商规定,或违背协商范围等。比如,Open-iscsi连接,格盘时,那几个SCSI_Write写长度都是1M的,还有MS nitiator超时MaxOutstandingR2T等等现象。
               
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104665/showart_2067906.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP