光纤通道帧如何填充并遍历结构?

光纤通道帧如何填充并遍历结构?

尝试理解光纤通道帧实际上是如何填充并通过交换结构发送的。我理解 WWNN WWPN,WWNN 是实际 HBA 的 WWN,而 WWPN 是卡上实际端口的 WWN。因此,如果 HBA 有 4 个端口,它们都共享相同的 WWNN,但具有不同的 WWPN。但仍不确定 WWNN 在结构中的通信中发挥什么作用。其次,FLOGI 过程,通过该过程,新的 N_port 节点尝试登录到结构并分配动态 FCID。之后完成 PLOGI,以便 N-port 节点可以提交其 WWPN。这保持了 WWPN 与 FCID 的关系……

最后,FC 寻址是域 ID、区域 ID 和端口 ID 的组合。全部为 8 位。我的理解是它用于定位接口在结构中的位置?因此,如果我有两个交换机域 1 和域 2,0100000 是否意味着第一个交换机区域 00 和端口 00?

此外,我仍然不确定主机如何向另一台主机发送数据。查看 FC 帧,有目标 ID 和源 ID 字段,它们是 24 位 FC 地址或 FCID。我的问题是这些目标 ID 和源 ID 是由主机 HBA 还是 FC 交换机填充的?我以为主机只从 HBA 知道它自己的 WWNN 和 WWPN?

其次,我没有看到光纤通道框架中任何地方有 WWNN 或 WWPN 发挥作用。除非它们仅在 FLOGI 和 PLOGI 过程中使用以获取动态 FCID。

谢谢你的帮助。非常感谢。

PS:我正在使用 Cisco MDS 和主机上的 fcinfo 来收集信息,我找不到在每个主机上使用 fcinfo 获取 FCID 的方法?这就是为什么我很困惑主机是否维护目标 FCID 列表。

此外,对于直接连接的主机,没有交换机参与,主机是否会相互 FLOGI?

答案1

一开始主机知道 WWNN 和 WWPN。

好吧,忘掉 WWNN 吧。理论上,一台计算机的所有 HBA 的所有端口上的 WWNN 都应该相同,但这种情况很少见。通常一个 HBA 上的 WWNN 是相同的,但我见过多端口 HBA 有多个 WWNN 的情况。所以有点混乱。

登录到架构 (FLOGI/PLOGI) 后,主机从交换机获知其 P_ID。而交换机从主机获知 WWPN/WWNN。因此,交换机知道哪个 WWPN 被一一分配给哪个 24 位 P_ID。

主机在正常运行时查询交换机,例如:

  • 我可以与哪些 WWPN 进行通信?
  • 我记得的块设备(我的硬盘)的 WWPN 的当前 P_ID 是什么?

很多人认为 WWPN 的作用类似于 MAC 地址,因为这两个数字看起来“很像”。它们几乎没有共同之处,而且发挥着不同的作用。

WWPN 或 WWNN 从未用作地址;P_ID 是。在 DNS 和 IP 类比中,WWPN 有点像my.node.com:它标识地址(111.112.113.114),但在实际通信过程中不用作地址;111.112.113.114在 FC 中,P_ID 将是帧中使用的实际地址。

这不是一个完美的类比。WWPN 不像 DNS 名称那样易于理解。而 P_ID 比 IP 更有用,因为它的格式本身就有助于 FC 交换机快速找出如何处理帧。无论如何,这是大局。

顺便说一句,FC 中没有类似于 MAC 地址的东西(对我们来说有好处!)——在 P_ID 寻址之下没有低级寻址。

答案2

警告 - 我不知道 MDS 更新的东西(FC-SW 等)会改变其中的一些,但它是一个(可怕的)向后兼容协议,所以......

我的理解是,FC 在其上的设备看来总是像一个环路。每个环路可以有多个设备,但 FC 本身没有路由或交换的概念,这些都由交换机处理(或其他技巧,但不在“正常”FC 框架内,不支持 VLAN 标记等,也许 FC-SW 可以)。

域是这些循环的逻辑组。

维基百科页面其实相当不错。

相关内容