在 Oracle® Solaris 11.2 中管理网络虚拟化和网络资源

退出打印视图

更新时间: 2014 年 9 月
 
 

使用池和 CPU

下图显示了将 pool 属性指定给数据链路时池的工作原理。

图 7-1  指定给一个区域的 VNIC 的 pool 属性

image:说明了指定给区域的 CPU 池的图形。

在图中,系统有八个 CPU。如果系统上没有配置池,则所有 CPU 都属于缺省池并由全局区域使用。不过,在本示例中,已创建 pool99 池,其中包含 CPU 3CPU 4。该池与专用区域 zone1 相关联。如果 pool99 设置为 vnic1 的一个属性,则 pool99 变为专用的,还用来管理 vnic1 的网络进程。在将 vnic1 指定为 zone1 的网络接口后,pool99 中的 CPU 将被保留,用于管理 zone1 的网络和非网络进程。

pool 属性在本质上是动态的。可以使用一个 CPU 范围配置区域池,内核确定将哪些 CPU 指定给该池的 CPU 集。对池的更改会自动针对数据链路实现,从而简化了该链路的池管理。相反,通过使用 cpu 属性将特定 CPU 指定给链路时会要求您指定要分配的 CPU。每次要更改池的 CPU 组成时,您必须设置 cpu 属性。

例如,假定使Figure 7–1 中的系统 CPU 4 脱机。由于 pool 属性是动态的,软件会自动将另一个 CPU 与池相关联。因此,会保留池的两个 CPU 的初始配置。对于 vnic1,此更改是透明的。更新后的配置如下图所示。

图 7-2  pool 属性的自动重新配置

image:显示了池的动态重新配置的图形。

使用 dladm show-linkprop 命令显示数据链路的信息时,针对 poolcpus 数据链路属性的 EFFECTIVE 列中的值指示这些属性当前的系统选定值。

    针对 poolcpus 属性显示了以下只读值:

  • 对于 pool 数据链路属性,EFFECTIVE 列中的值指示用于网络处理的池。

  • 对于 cpus 数据链路属性,EFFECTIVE 列中的值指示用于网络处理的 CPU。有关说明如何显示数据链路的 cpus 属性的示例,请参见Example 7–5

要管理区域的 CPU 资源,您不需要设置数据链路的池属性。您可以使用诸如 zonecfgpoolcfg 等命令将区域配置为使用某个资源池。如果没有为数据链路设置 cpuspool 链路属性,数据链路的 poolcpus 属性的 EFFECTIVE 列中的值是根据引导区域时区域的配置自动设置的。缺省池显示在 pool 属性的 EFFECTIVE 列中,系统将选择 cpus 属性的 EFFECTIVE 列中的值。因此,如果使用 dladm show-linkprop 命令,则 poolcpus 属性的值为空,但值会显示在 poolcpus 属性的 EFFECTIVE 列中。

您还可以直接设置数据链路的 poolcpu 属性,以为联网进程分配区域的 CPU 池。配置这些属性后,它们的值会反映在 poolcpus 属性的 EFFECTIVE 列中。但是,通常不使用此替代方法来管理区域的网络资源。