使用驱动程序模块选项配置流控制
某些网络驱动程序提供了模块选项,用于在驱动程序中配置流控制功能。模块选项在启动过程中生效,因此,需要重新引导 ESX/ESXi 主机。有关如何确定可用模块选项以及如何设置选项的详细信息,请参见 Configuring advanced driver module parameters in ESX/ESXi (1017588)。
注意:最佳做法是,更改同一个参数设置时,请在更改前和更改后检查该参数设置的当前值。
例如,Intel e1000 网络接口驱动程序提供了 FlowControl 模块选项。选项值为每个网络接口的流控制设置列表(以逗号分隔)。此驱动程序可定义四项设置:
- 0 – 不启用流控制。
- 1 – 仅对接收的 (RX) 流量启用流控制。
- 2 – 仅对传输的 (TX) 流量启用流控制。
- 3 – 同时对接收的和传输的流量启用流控制。
ESX/ESXi 3.0 到 4.1:
- 要对四端口 Intel e1000 网络接口的所有端口禁用流控制,请在 e1000 模块上设置选项 FlowControl=0,0,0,0:
# esxcfg-module -s FlowControl=0,0,0,0 e1000
- 在 Intel 适配器 1 上禁用流控制,在适配器 2 上仅启用传输流控制,请执行以下设置:
# esxcfg-module -s FlowControl=0,2 e1000
- 在 Intel 适配器 1 和适配器 4 上启用传输流控制,请执行以下设置:
# esxcfg-module -s FlowControl=2,,,2 e1000
- 将更改恢复为无流控制的原始设置,请执行以下设置:
# esxcfg-module -s ModuleName ""
通过运行以下命令确认上述命令是否清除了特定模块的选项:
# esxcfg-module -g ModuleName
您会看到类似以下内容的输出:
该选项为空字符串 ModuleNameoptions = '' (The option is an empty string ModuleName options = '')
ESXi 5.x/6.0:
- 要对四端口 Intel e1000 网络接口的所有端口禁用流控制,请执行以下设置:
# esxcli system module parameters set --module e1000 --parameter-string "FlowControl=0"
注意:0 表示禁用,1 表示启用。
- 在四端口 Intel e1000 网络接口的所有端口上显示流控制参数的当前状态:
# esxcli system module parameters list --module e1000 | grep "FlowControl"
- 要将更改恢复为无流控制的原始设置:
# esxcli system module parameters set --module e1000 --parameter-string "FlowControl="
使用 ethtool 配置流控制
某些网络驱动程序允许您在 ESXi/ESX 主机的控制台上使用 ethtool 命令行实用程序修改配置选项。
- 打开 ESXi/ESX 主机的控制台。有关详细信息,请参见 Unable to connect to an ESX host using Secure Shell (SSH) (1003807) 或 Using Tech Support Mode in ESXi 4.1 and ESXi 5.x (1017910)。
- 使用以下命令可以获取网络接口卡和名称列表:
# esxcfg-nics -l
例如:
# esxcfg-nics -l
Name PCI Driver Link Speed Duplex MAC Address
vmnic0 00:02:04.00 ACME Up 1000Mbps Full 01:23:45:67:89:AB
vmnic1 00:02:05.00 ACME Up 1000Mbps Full 01:23:45:67:78:AC
- 使用 ethtool --show-pause 命令可显示每个网络接口的暂停帧参数信息,其中,接口名称取步骤 2 获取的名称:
# ethtool --show-pause <VMNic Name>
例如:
# ethtool --show-pause vmnic0
Pause parameters for vmnic0:
Autonegotiate:on
RX:off
TX:off
注意:在 ESXi 4.0 中,完整文本开关不会解析为 ethtool 命令。此时可使用 -A 和 -a 类型开关代替。
ethtool 用法帮助命令 ethtool -h 可提供所需的开关:
ethtool -a|--show-pause DEVNAME
ethtool -A|--pause DEVNAME
运行以下命令可在 ESXi 4.0 中显示暂停帧参数信息:
# ethtool -a <VMNic Name>
例如:
# ethtool -avmnic0
Pause parameters for vmnic0:
Autonegotiate:on
RX:off
TX:off
- 使用 ethtool --pause 命令更改正在运行的网络接口配置,其中,接口名称取步骤 2 中获取的名称。
- 要对发送和接收的流量禁用流控制,请使用以下命令:
# ethtool --pause<VMNic Name>tx off rx off
- 要对发送和接收的流量启用流控制,请使用以下命令:
# ethtool --pause <VMNic Name> tx on rx on
- 要启用流控制自动协商,请使用以下命令:
# ethtool --pause<VMNic Name>autoneg on
- 要禁用流控制自动协商,请使用以下命令:
# ethtool --pause<VMNic Name>autoneg off
- 将步骤 4 中使用的相同命令附加到 rc.local 或 local.sh 文件,以便在重新引导后可以保留这些设置。相应文件的名称和位置根据正在运行的 ESXi/ESX 版本而有所不同。
有关确定和修改该文件的详细信息,请参见 Modifying the rc.local or sh.local file in ESX/ESXi to execute commands while booting (2043564)。
- 保存此文件。
- 对于 ESXi 主机,请使用以下命令保存配置更改:
# /sbin/auto-backup.sh
使用 ethtool 时,脚本中的命令应在一行中进行声明,而不是每行声明一个命令。
例如:
# ethtool --pause vmnic0 autoneg off tx off rx off
而不是使用:
# ethtool --pause vmnic0 autoneg off
# ethtool --pause vmnic0 tx off rx off
# ethtool --show-pause vmnic0
Pause parameters for vmnic0:
Autonegotiate:on
RX:off
TX:off
注意:
- 在步骤 5 中附加到 rc.local 或 local.sh 文件的命令将在启动时执行,并且在重新引导后可以保留更改。
- 在 ESXi 5.1 及更高版本中已弃用 /etc/rc.local。不过,它仍然存在,但修改 ethtool 引导参数时应在 /etc/rc.local.d/local.sh 文件中进行。