portwd 标识符 SFF 无效错误

问题

以下日志消息不断出现在 /var/log/syslog

2017-03-16T00:39:30.292349+00:00 hostname portwd: Port 49, invalid SFF identifier: 0x0c
2017-03-16T00:39:30.298340+00:00 hostname portwd: Port 50, invalid SFF identifier: 0x0c
2017-03-16T00:39:30.300035+00:00 hostname portwd: Port 50, invalid SFF identifier: 0x0c
2017-03-16T00:39:30.301740+00:00 hostname portwd: Port 50, invalid SFF identifier: 0x0c
2017-03-16T00:39:30.303486+00:00 hostname portwd: Port 50, invalid SFF identifier: 0x0c
2017-03-16T00:39:30.309608+00:00 hostname portwd: Port 51, invalid SFF identifier: 0x0c

环境

  • Cumulus Linux 3.y.z

原因

出现此问题的原因是 portwd 无法正确识别光模块。这通常是因为光模块未正确识别其功能。

以下是 ethtool 输出的示例,显示了正确识别的光模块

cumulus@switch:~$ sudo ethtool -m swp1
        Identifier                                : 0x0d (QSFP+)
        Extended identifier                       : 0x00 (1.5W max. Power consumption, No CDR in TX, No CDR in RX)
        Connector                                 : 0x0c (MPO Parallel Optic)
        Transceiver codes                         : 0x04 0x00 0x00 0x00 0x40 0x40 0x02 0x00
        Transceiver type                          : 40G Ethernet: 40G Base-SR4
        Transceiver type                          : FC: short distance (S)
        Transceiver type                          : FC: Shortwave laser w/o OFC (SN)
        Transceiver type                          : FC: Multimode, 50um (OM3)

以下是 ethtool 输出的示例,显示了未识别其功能的光模块

cumulus@switch:~$ sudo ethtool -m swp29
        Identifier                                : 0x0d (QSFP+)
        Extended identifier                       : 0xdc (3.5W max. Power consumption, CDR present in TX, CDR present in RX)
        Connector                                 : 0x07 (LC)
        Transceiver codes                         : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Encoding                                  : 0x05 (64B/66B)

解决方法

如果您遇到此消息,并且认为光模块的行为不符合预期,请联系 NVIDIA Cumulus 支持团队

抑制日志消息

“无效 SFF 标识符”日志消息不断在您的 /var/log/syslog 中生成,使其更难以解释其他日志消息。您可以通过在 rsyslog 配置中添加以下行来阻止此消息的日志记录

:msg, contains, "invalid SFF identifier:" ~

您需要在系统定义 /var/log/syslog 文件之前添加此配置。最简单的方法是创建一个名为 /etc/rsyslogd.d/1-suppress.conf 的文件,并将条目放在此文件中

  1. 创建文件

    cumulus@switch:~$ sudo vi /etc/rsyslog.d/1-suppress.conf
    
  2. 将以下行添加到文件

    :msg, contains, "invalid SFF identifier:" ~
    
  3. 重启 rsyslogd

    cumulus@switch:~$ sudo systemctl restart rsyslog.service