存储 频道

取代FC 专家解析SAS服务delivery子系统

  连接过程

  initiator和target连接后,就在双方之间传送dwords。连接会有三个过称:建立、通信和移除阶段。

连接过程

  当建立连接的时候,就指定了互相传输的协议(SSP,SMP,STP)。SSP/STP协议时,处理一条命令,会发生多次连接打开和中断。SMP协议时,只有一个完整的单一连接。

  有多少个PHY就只能有多少连接,即连接数不可能超过物理PHY的数量。

  initiator和target的port用于少有的SAS address,expander设备也是如此。下图是wide和narrow通过expander互联的连接图。

连接过程

  若initiator和target的PHY直连,即全部都在一个expander内,则PHY之间只有一个potential pathway存在。但是当两者之间需跨越expander则将有多条potential pathway。如下图HOST和机柜1之间的PHY只有一条potential pathway,但是HOST和机柜2之间则有4条potential pathway。由于相同链路和PHY之间会存在不同的potential pathway,那么必然会存在竞争。如机柜A和B之间只有4条potential pathway,如果两个HOST都发起请求,肯定有4个会失败。

连接过程

  当OPEN address的报文到达expander,如果该连接的path 资源已经已经被占用,那么将会blocked该forward进程,需要等待直到资源释放。也就是说,一条物理PHY间的链路,只能有一条一个方向的pathway存在。但是会出现一个deaklock。如下图,HOST1想和DISK4建立连接,而DISK4也想和HOST1建立连接,那么谁都无法占用这个pathway。这就好比一条独木桥上的两只山羊….

连接过程

  更复杂的情况如下:

连接过程

  如何从deadlock恢复?利用每个expander 的PHY的timeout定时器。此时会强制backoff该request为最低优先级并发送OPEN_REJECT的primitive dword。这会释放path 资源。若还是deadlock,那么pathway timeout会逐步让这些request expire,直到deadlock被打破。

0
相关文章