跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中使用虚拟网络 Oracle Solaris 11.1 Information Library (简体中文) |
在 NIC 上,接收 (Rx) 环和传送 (Tx) 环是硬件资源,系统分别通过它们来接收和传送网络数据包。以下各节首先概述环,然后介绍用于为网络处理分配环的过程。还提供了示例,显示在发出命令分配环时环机制的工作方式。
MAC 客户机(如 VNIC 和其他数据链路)是在 NIC 上配置的,用于支持系统和其他网络节点之间的通信。配置客户机后,它同时使用 Rx 和 Tx 环来分别接收或传送网络数据包。MAC 客户机可以是基于硬件的或基于软件的。基于硬件的客户机需要满足以下任一条件:
有一个或多个专用 Rx 环。
有一个或多个专用 Tx 环。
有一个或多个专用 Rx 环和一个或多个专用 Tx 环。
不满足上述任一条件的客户机称为基于软件的 MAC 客户机。
根据具体的 NIC,可以为基于硬件的客户机指定专用环。一些 NIC(如 nxge)支持动态环分配。在此类 NIC 上,您不仅可以配置基于硬件的客户机,还可以灵活地确定要分配给此类客户机的环的数量(假定环仍可供分配)。环的使用始终针对主接口进行优化,例如 net0。主接口也称为主客户机。任何尚未被其他客户机指定为可用的专用环会自动指定给主接口。
其他 NIC(如 ixge)仅支持静态环分配。对于这些 NIC,您只能创建基于硬件的客户机。这些客户机会自动配置为每个客户机有一组固定的环。NIC 驱动程序的初始配置过程中会确定固定的环组。有关静态环分配的驱动程序初始配置的更多信息,请参阅《Oracle Solaris 11.1 可调参数参考手册》。
基于软件的客户机没有专用环。而是与其他基于软件的现有客户机或主客户机共享环。基于软件的客户机所使用的环取决于在环分配中优先级高的基于硬件的客户机的数量。
了解主客户机和其他辅助客户机之间的差别很重要。主客户机是 NIC 的物理数据链路。基于安装过程中 Oracle Solaris 提供的通用名称,主客户机将被命名为 netN,其中,N 是实例号。有关数据链路的通用名称的说明,请参见《Oracle Solaris 11 联网介绍》中的"网络设备和数据链路名称"。VNIC 是在物理数据链路上创建的辅助客户机。如果这些客户机是基于硬件的客户机,它们可以有专用环。否则,这些客户机为基于软件的客户机。
使用 VLAN 时,环分配根据创建 VLAN 的方式而有所不同。VLAN 通过以下两种方式之一创建:
使用 dladm create-vlan 子命令:
# dladm create-vlan -l link -v vid vlan
使用 dladm create-vnic 子命令:
# dladm create-vnic -l link -v vid vnic
使用 dladm create-vlan 子命令创建的 VLAN 与底层接口共享相同的 MAC 地址。因此,该 VLAN 还共享底层接口的 Rx 和 Tx 环。对于使用 dladm create-vnic 命令作为 VNIC 创建的 VLAN,其 MAC 地址与底层接口的不同。这种 VLAN 的环分配独立于底层链路的分配。因此,可以对该 VLAN 指定它自己的专用环(假定 NIC 支持基于硬件的客户机)。
要管理环,可以通过使用 dladm 命令设置两个环属性:
rxrings 指分配给指定链路的 Rx 环的数量。
txrings 指分配给指定链路的 Tx 环的数量。
可以将每个属性设置为三个可能的值之一:
sw 指示您正在配置基于软件的客户机。客户机没有专用环。相反,客户机与类似配置的任何其他现有客户机共享环。
n > 0(数大于零)仅适用于基于硬件的客户机的配置。数字指分配给客户机的专用环的数量。仅当底层 NIC 支持动态环分配时,才可以指定数量。
hw 也适用于基于硬件的客户机的配置。然而,对于这种客户机,不能指定专用环的实际数量。相反,根据 NIC 驱动程序的初始配置,已经为每个客户机设置固定的环数。仅当底层 NIC 支持静态环分配时,才可以将 *rings 属性设置为 hw。
要提供有关当前环的指定和使用的信息,可以使用以下附加的只读环属性:
rxrings-available 和 txrings-available 指可供分配的 Rx 和 Tx 环的数量。
rxhwclnt-available 和 txhwclnt-available 指在 NIC 上可配置的 Rx 和 Tx 基于硬件的客户机的数量。
要管理数据链路的接收环和传送环的使用,请使用以下基本 dladm 子命令:
dladm show-linkprop-显示链路属性的当前值,包括 Rx 和 Tx 环。其输出提供有关数据链路的环支持功能的以下信息。您需要这些信息来确定可以配置哪种类型的客户机以使用 Rx 和 Tx 环。
可以创建的可用客户机
可以分配给可用客户机的可用环
能否支持动态或静态环分配
如果仅支持静态环分配,现有客户机的当前环分布
环分配的数据链路属性进一步介绍了如何解释此命令的输出。
dladm create-vnic -p ring-properties vnic-创建具有特定 Tx 或 Rx 环数量的客户机来为通信服务。
dladm set-linkprop -p ring-properties datalink-如果环可用且支持环分配,将环分配给特定客户机。
本节介绍了显示数据链路与环相关的属性的 dladm show-linkprop 输出。
本节提供了有关环相关属性的命令输出示例,并介绍了您可获取的信息类型。示例中使用了以下 NIC:
net0(在 nxge 上)
net1(在 ixgbe 上)
net2(在 e1000g 上)
示例 3-1 nxge 环信息
# dladm show-linkprop net0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... net0 rxrings rw -- -- sw,<1-7> ... net0 txrings rw -- -- sw,<1-7> ... net0 rxrings-available r- 5 -- -- net0 txrings-available r- 5 -- -- net0 rxhwclnt-available r- 2 -- -- net0 txhwclnt-available r- 2 -- -- ...
对于 net0,rxrings 和 txrings 的 POSSIBLE 字段的值为 sw 和 <1-7>。这些值指示 nxge 支持基于硬件的客户机以及基于软件的客户机。范围 <1-7> 指示您可以为客户机设置的 Rx 或 Tx 环的数量限制。该范围还指示 NIC 支持动态环分配同时用于接收端和传送端。
此外,*rings-available 属性指示有五个 Rx 环和五个 Tx 环可分配给基于硬件的客户机。
但是,*clnt-available 属性显示您只能配置两个具有可用的专用 Rx 环的客户机。同样,您只能配置两个具有可用的专用 Tx 环的客户机。
示例 3-2 ixgbe 环信息
# dladm show-linkprop net1 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... net1 rxrings rw -- -- sw,hw ... net1 txrings rw -- -- sw,hw,<1-7> ... net1 rxrings-available r- 0 -- -- net1 txrings-available r- 5 -- -- net1 rxhwclnt-available r- 0 -- -- net1 txhwclnt-available r- 7 -- -- ...
对于 net1,rxrings 和 txrings 的 POSSIBLE 字段值 sw 和 hw 指示 ixgbe 同时支持基于硬件的客户机和基于软件的客户机。对于 Rx 环,仅支持静态环分配,即硬件将一组固定的 Rx 环指定给每个基于硬件的客户机。但是,对于 Tx 环,范围 <1–7> 指示支持动态分配。您可以确定将指定给基于硬件客户机的 Tx 环数量,在该示例中,最多七个环。
此外,*rings-available 属性指示有五个 Tx 环可分配给基于硬件的客户机,但没有可指定的 Rx 环。
最后,根据 *hwclnt-available 属性,您可以配置七个基于硬件的 Tx 客户机专用 Tx 环。但是,您无法创建具有专用 Rx 环的基于硬件客户机,因为不支持动态 Rx 环分配。
任一 *rings-available 属性的 VALUE 字段下的零 (0) 表示以下各项之一:
再没有环可分配给客户机。
不支持动态环分配。
您可以通过将 rxrings 和 txrings 的 POSSIBLE 字段与 rxrings-available 和 txrings-available 的 VALUE 字段进行比较来验证零的含义。
例如,假定 txrings-available 为 0,如下所示:
# dladm show-linkprop net1 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... net1 rxrings rw -- -- sw,hw net1 txrings rw -- -- sw,hw,<1-7> net1 rxrings-available r- 0 -- -- net1 txrings-available r- 0 -- -- ...
在此输出中,rxrings-available 的 VALUE 字段为 0,而 rxrings 的 POSSIBLE 字段为 sw,hw。这些信息结合起来,意味着由于 NIC 不支持动态环分配而没有可用的 Rx 环。在传送端,txrings-available 的 VALUE 字段为 0,而 txrings 的 POSSIBLE 字段为 sw,hw,<1-7>。这些信息结合起来,表示由于所有 Tx 环均已分配而没有可用的 Tx 环。但是,txrings 的 POSSIBLE 字段表示支持动态环分配。因此,您可以在 Tx 环变得可用时分配这些环。
示例 3-3 e1000g 环信息
# dladm show-linkprop net2 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... net2 rxrings rw -- -- -- ... net2 txrings rw -- -- -- ... net2 rxrings-available r- 0 -- -- net2 txrings-available r- 0 -- -- net2 rxhwclnt-available r- 0 -- -- net2 txhwclnt-available r- 0 -- -- ...
输出指示环和基于硬件的客户机均无法配置,因为 e1000g 中不支持环分配。
两个只读数据链路属性提供了有关数据链路上的现有客户机当前如何使用环的信息:
rxrings-effective
txrings-effective
要获取有关环使用以及将哪些环分布到客户机中的信息,请同时使用 dladm show-linkprop 和 dladm show-phys -H 子命令。
以下示例显示根据 Rx 和 Tx 环的使用以及这些环在客户机中的分布方式,这两个命令所生成的不同类型的输出。
示例 3-4 主客户机的环使用
主客户机是在 NIC 的物理数据链路上配置的接口。对于此示例,NIC 是 ixgbe 卡。缺省情况下,其数据链路是 net0。net0 上的 IP 接口是主客户机。
# dladm show-linkprop net0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... net0 rxrings rw -- -- sw,hw net0 rxrings-effective r 2 -- -- net0 txrings rw -- -- sw,hw,<1-7> net0 txrings-effective r 8 -- -- net0 txrings-available r- 7 -- -- net0 rxrings-available r- 0 -- -- net0 rxhwclnt-available r- 3 -- -- net0 txhwclnt-available r- 7 -- -- ... # dladm show-phys -H net0 LINK RINGTYPE RINGS CLIENTS net0 RX 0-1 <default,mcast> net0 TX 0-7 <default>net0 net0 RX 2-3 net0 net0 RX 4-5 -- net0 RX 6-7 --
输出提供有关主客户机 net0 的环使用和环分布的下列信息:
rxrings-effective 显示 net0 将自动接收两个 Rx 环。txrings-effective 显示 net0 使用八个 Tx 环。缺省情况下,所有未使用的环会自动指定给主客户机。
根据 dladm show-phys -H 命令的输出,分配给 net0 的两个 Rx 环为 2 和 3。对于 Tx 环,net0 使用环 0 到 7。
示例 3-5 辅助客户机的环使用
本示例假定在 net0(ixgbe 卡的物理数据链路)上配置了 VNIC 客户机 vnic1。
# dladm show-linkprop vnic1 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... vnic1 rxrings rw hw -- sw,hw vnic1 rxrings-effective r- 2 -- -- vnic1 txrings rw hw -- sw,hw,<1-7> vnic1 txrings-effective r- 1 -- -- ... # dladm show-linkprop net0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... net0 rxrings rw -- -- sw,hw net0 rxrings-effective r- 2 -- -- net0 txrings rw -- -- sw,hw,<1-7> net0 txrings-effective r- -- -- -- net0 txrings-available r- 6 -- -- net0 rxrings-available r- 0 -- -- net0 rxhwclnt-available r- 3 -- -- net0 txhwclnt-available r- 6 -- -- ... # dladm show-phys -H net0 LINK RINGTYPE RINGS CLIENTS net0 RX 0-1 <default,mcast> net0 TX 0,2-7 <default>net0 net0 RX 2-3 net0 net0 RX 4-5 vnic1 net0 RX 6-7 -- net0 TX 1 vnic1
结合这三个命令的输出,可提供以下信息:
vnic1 的 rxrings-effective 显示该 VNIC 将自动接收两个 Rx 环。txrings-effective 显示 vnic1 使用一个 Tx 环。按照为 *ring 属性设置的 hw 值所指示,这些环是静态分配的。
根据 dladm show-phys -H 命令的输出,分配给 net0 的两个 Rx 环为 2 和 3。对于 Tx 环,net0 使用环 0 和环 2 到 7。vnic1 为 Tx 环使用环 1,为 Rx 环使用环 4 和 5。
请注意,vnic1 配置为具有静态环分配的基于硬件的客户机。因此,net0 上可创建的可用 Tx 硬件客户机的数量 (txhwclnt-available) 减少为六个。
此过程介绍了如何基于环分配的支持类型在数据链路上配置客户机。请确保您可以解释显示数据链路环属性的 dladm 命令的输出,如显示数据链路的环分配功能和显示数据链路上的环使用和环分配中所述。这些信息可在您配置客户机的过程中给予指导。
# dladm show-linkprop datalink
从输出中确定以下信息:
NIC 是否支持基于硬件的客户机
NIC 支持的环分配的类型
要分配给基于硬件的客户机的环的可用性
您可以在链路上配置的基于硬件的客户机的可用性
如果 NIC 支持动态环分配,请使用以下语法创建基于硬件的客户机:
# dladm create-vnic -p rxrings=number[,txrings=number] -l link vnic
如果之前创建了客户机,请使用以下语法:
# dladm set-linkprop -p rxrings=number[,txrings=number] vnic
注 - 一些 NIC 支持 Rx 环或 Tx 环上的动态环分配,但不同时支持这两种类型。您在支持动态环分配的环类型上指定 number。
如果 NIC 支持静态环分配,请使用以下语法创建基于硬件的客户机:
# dladm create-vnic -p rxrings=hw[,txrings=hw] -l link vnic
如果之前创建了客户机,请使用以下语法:
# dladm set-linkprop -p rxrings=hw[,txrings=hw] vnic
注 - 一些 NIC 支持 Rx 环或 Tx 环上的静态环分配,但不同时支持这两种类型。您在支持静态环分配的环类型上指定 hw。
如果 NIC 仅支持基于软件的客户机,请使用以下语法创建客户机:
# dladm create-vnic -p rxrings=sw[,txrings=sw] -l link vnic
如果之前创建了客户机,请使用以下语法:
# dladm set-linkprop -p rxrings=sw[,txrings=sw] vnic
# dladm show-linkprop vnic
# dladm show-phys -H datalink
另请参见
有关显示如何使用流以及如何分配系统资源(包括 Rx 和 Tx 环)以在虚拟网络中处理网络通信的示例,请参见示例 3-8。