手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

evsadm (1M)

名称

evsadm - 创建和管理弹性虚拟交换机 (Elastic Virtual Switch, EVS) 及其资源,也就是 IP 网络 (IP network, IPnet) 和虚拟端口 (Virtual Port, VPort)。

用法概要

evsadm
evsadm set-prop -p <prop>=[<val>[,...]]
evsadm show-prop [[-c] -o <field>[,...]] [-p <prop>[,...]]
evsadm set-controlprop [-h host] -p <prop>=[<val>[,...]]
evsadm show-controlprop [[-c] -o <field>[,...]] [-p <prop>[,...]]
evsadm create-evs [-T <tenantname>] [-p {<prop>=<val>[,...]}[,..]]
	  <evsname>
evsadm delete-evs [-T <tenantname>] <evsname>
evsadm show-evs [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]]
	  [<evsname>]
evsadm add-ipnet [-T <tenantname>]
	  -p subnet=<val>[{,<prop>=<val>[,...]}[,...]] <evsname>/<ipnetname>
evsadm remove-ipnet [-T <tenantname>] <evsname>/<ipnetname>
evsadm show-ipnet [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]]
	  [[<evsname>/][ipnetname]]
evsadm add-vport [-T <tenantname>] [-p {<prop>=val[,...]}[,...]]
	  <evsname>/<vportname>
evsadm remove-vport [-T <tenantname>] <evsname>/<vportname>
evsadm reset-vport [-T <tenantname>] <evsname>/<vportname>
evsadm show-vport [-f {<fname>=<val>[,...]}[,...]] [[-c] -o <field>[,...]]
	  [[<evsname>/][<vportname>]]
evsadm set-evsprop [-T <tenantname>] -p <prop>=<val> <evsname>
evsadm show-evsprop [-f {<fname>=<val>[,...]}[,...]]
	  [[-c] -o <field>[,...]] [-p <prop>[,...]] [evsname]
evsadm set-vportprop [-T <tenantname>] -p <prop>=<val>
	  <evsname>/<vportname>
evsadm show-vportprop [-f {<fname>=<val>[,...]}[,...]]
	  [[-c] -o <field>[,...]] [-p <prop>[,...]] [[evsname/][vportname]]
evsadm help [subcommand-name]

描述

evsadm 命令提供了一组子命令来执行以下操作:

  • 管理 EVS

  • 管理与 EVS 关联的 IP 网络

  • 管理与 EVS 关联的虚拟端口

概念

EVS

弹性虚拟交换机 (Elastic Virtual Switch, EVS) 是跨越一台或多台服务器(物理计算机)的虚拟交换机。它表示一个隔离的 L2 网段,该隔离是通过 VLAN 或 VXLAN 实现的。EVS 在连接到它的虚拟机之间提供网络连接。有两种与 EVS 关联的主要资源:IPnet 和 VPort。

IPnet

IP 网络表示一个 IPv4 或 IPv6 地址片区(也就是子网)以及用于该片区的缺省路由器。一个 EVS 只能关联一个 IPnet。通过 VPort 连接到 EVS 的所有区域/VNIC 将从与 EVS 关联的 IPnet 获取 IP 地址。

VPort

VPort 表示 VNIC 与 EVS 之间的连接点。它封装了各种网络配置参数,例如 SLA(maxbw、cos 和 priority)、IP 地址以及 MAC 地址。此配置是 VNIC 连接到 VPort 时由 VNIC 继承的。

EVS 控制器

针对 EVS 以及与其关联的所有资源提供配置和管理功能。应当使用一个控制器管理网络中的所有 EVS。控制器有与之关联的用于捕获在物理计算机中实现 L2 网段所需的信息的属性,这些属性可通过 set-controlprop 子命令进行管理。EVS 控制器用一个 RAD 模块实现并导出 EVS 客户机使用的 RAD 接口。

EVS 管理器

这指的是与 EVS 控制器进行通信来定义 L2 网络拓扑和在这些网络上使用的 IP 地址的实体。因此,evsadm(1m) 是一个 EVS 管理器。

EVS 客户机

借助 evsadm 并使用 EVS、IPnet 和 VPort,可以定义 L2 网络拓扑和在这些网络上使用的 IP 地址。然后,可以使用 dladm(1M) 将 VNIC 连接到这些拓扑或者使用 zonecfg(1M) 将 VNIC anet(并因此将区域)连接到这些拓扑。dladm(1m) 和 zonecfg(1m) 构成了 EVS 控制器的客户机,并从控制器提取信息来检索 VPort 属性。(起初,使用 evsadm(1m) 将配置推送到控制器)。请注意,支持本地区域和内核区域。

EVS 节点

任何希望将其 VNIC 或其区域的 VNIC anet 资源作为 EVS 一部分的主机。已对现有工具 dladm(1M) 和 zonecfg(1M) 进行了修改,以指定 VNIC 需要成为 EVS 的一部分。

Tenant

Tenant 用于名称空间管理。在一个 tenant 内定义的 EVS 及其资源在该 tenant 的名称空间外不可见。Tenant 用作一个容器,将该 tenant 的所有资源存放在一起。

每个 evsadm 子命令都针对上面提到的某个对象运行。对应关系如下所示。

对象
子命令
EVS
create-evs、delete-evs、show-evs、set-evsprop、show-evsprop
IPnet
add-ipnet、remove-ipnet、show-ipnet
VPort
add-vport、remove-vport、show-vport、set-vportprop、show-vportprop、reset-vport
EVS 控制器
set-controlprop、show-controlprop
EVS 客户机
set-prop、show-prop

EVS、IPnet 和 VPort 用一个名称来标识。名称不能超过 127 个字符,并且应当是字母数字字符以及 "." 和 "_" 的组合。

此外,这些名称还可以包含特殊分隔符字符 "-"。这些名称表示资源是在 evsadm 外部创建的。名称包含一个前缀(标识创建者),后跟一个 "-" 和一个传统的资源名称。例如 sys-vport0,其中,此处的 "sys" 表示资源是由系统创建的。这可以确保使用 evsadm 创建的资源永远不会出现命名冲突。相应地,evsadm 无法用来创建包含 "-" 的资源。

只要计算机能够与运行 EVS 控制器的计算机进行通信,就可以在该计算机上运行 evsadm 命令。该计算机与 EVS 控制器一起工作来执行所有 evsadm 子命令。在使用 evsadm 之前,必须指定 EVS 控制器的主机名或 IP 地址。这可以通过使用 "set-prop" 子命令设置 "controller" 属性来完成。

# evsadm set-prop -p controller=ssh://[username@]evs-controller.example.com
# evsadm show-prop
NAME            VALUE                              DEFAULT
controller      ssh://[username@]evs-controller.example.com   --

其中,可选的 'username' 为分配了 "Elastic Virtual Switch Administration"(弹性虚拟交换机管理)RBAC 配置文件(请参见 prof_attr(4))的用户。为了简化配置,当安装强制性的 EVS IPS 软件包 (service/network/evs) 时会创建一个称为 'evsuser' 且具有执行 EVS 操作所需的所有授权和特权的用户。如果要使用附带的 'evsuser',则将控制器属性设置为:

# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com

正如您可以看到的,SSH 用于与 EVS 控制器通信。为了使该通信是非交互式的,必须在主机(即,将执行 vsadm 的主机)与 EVS 控制器之间设置使用预先共享的公钥执行的 SSH 验证。

evsadm 的每个子命令具有与之关联的选项,下文围绕每个子命令介绍了这些选项。许多子命令都具有以下共同选项:

–T tenantname, –-tenant=tenantname

指定应在其名称空间中应用子命令操作的 tenant 的名称。如果未指定,则会假定操作在缺省的 tenant sys-global 中执行。

所需的授权和安全模型

用户必须具有 solaris.network.evs.admin 授权才能执行以下子命令:

create-evs      delete-evs   show-evs    set-evsprop show-evsprop
add-ipnet       remove-ipnet show-ipnet
add-vport       remove-vport show-vport  set-vportprop show-vportprop
reset-vport

用户必须具有 solaris.network.evs.client 授权才能执行 set-prop 子命令,必须具有 solaris.network.evs.controller 授权才能执行 set-controlprop 子命令。

具有 RBAC 配置文件 "Elastic Virtual Switch Administration"(弹性虚拟交换机管理)的用户可以执行上述所有子命令。

子命令


注 -  没有子命令的 evsadm 命令将显示 EVS 控制器管理的所有弹性虚拟交换机的简明摘要。该显示内容还包含与每个 EVS 关联的 IP 网络和虚拟端口。有关更多信息,请参见下文的“示例”部分。

支持以下子命令:

evsadm set-prop –p <prop>=[<val>[,...]]

为执行命令的主机设置某个属性的值。唯一支持的属性是 "controller"。当前,此属性仅支持 rad(1m) SSH URI 机制。有关更多信息,请参见下文的“示例”部分。

–p <prop>=[<val>[,...]], -–prop <prop>=[<val>[,...]]

要设置为指定值的属性的名称。一次只能设置一个属性。请注意,如果未提供 <val>,则属性将重置为其缺省值。

evsadm show-prop [[–c] –o <field>[,...]][–p <prop>[,...]]

显示当前主机的一个或多个属性的当前值。唯一支持的属性是 'controller',该属性指定要连接到的 EVS 控制器。

–o <field>[,...], -output=<field>[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值all。

NAME

属性的名称

PERM

属性的权限。可以是 rw 或 r-。

VALUE

属性的值

DEFAULT

属性的缺省值

–c、–-parseable

使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。

evsadm set-controlprop [–h host] –p <prop>=[<val>[,...]]

将 EVS 控制器的属性修改为用户指定的值。有关控制器属性的列表及其可能值,请参见下文中的“控制器属性”部分。可以使用 show-controlprop 子命令检索这些属性。

–h, –-host

所设置的属性仅应用于指定的主机。

–p <prop>=[<val>[,...]], –-prop <prop>=[<val>[,...]]

EVS 控制器上要设置为指定值的控制器属性的名称。如果该属性接受多个值,则应使用逗号作为分隔符来指定这些值。一次只能指定一个属性。请注意,如果未提供 <val>,则属性将重置为其缺省值。

evsadm show-controlprop [[–c] –o <field>[,...]][–p <prop>[,...]]

显示控制器的一个或多个属性的当前值。如果未指定属性,则将显示所有可用控制器属性。有关控制器属性的列表,请参见下文中的“控制器属性”部分。

–o <field>[,...], –-output=<field>[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值all。

NAME

控制器属性的名称

PERM

控制器属性的权限

VALUE

控制器属性的值

DEFAULT

控制器属性的缺省值

HOST

如果值为 "--",则属性将应用于所有主机或属于全局作用域。否则,它指定属性应用于该特定的主机。

–c、–-parseable

使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”部分。

evsadm create-evs [–T <tenantname>] [–p {<prop>=<val>[,...]}[,..]]<evsname>

创建名为 evsname 的 EVS。如果指定了一个 tenant 名称,则将在该 tenant 的名称空间内创建 EVS,否则将在缺省的 tenant sys-global 中创建。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

–p {<prop>=<val>[,...]}[,..], –-prop {<prop>=<val>[,...]}[,..]

要创建的 EVS 上要设置为指定值的 EVS 属性的逗号分隔列表。有关支持的属性的更多信息,请参见下文中的“EVS 属性”部分。

evsadm delete-evs [–T <tenantname>] <evsname>

删除指定的 EVS。如果有任何 VPort 在使用,此操作将失败。如果 VPort 有连接到它的 VNIC,则说明它在使用。如果没有 VPort 在使用,此操作将删除与 EVS 关联的所有 VPort 和 IPnet。show-evs 输出中的 STATUS 字段显示 EVS 是处于繁忙还是空闲状态。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

evsadm show-evs [–f {<fname>=<val>[,...]}[,...]][[–c] –o <field>[,...]][<evsname>]

显示 EVS 控制器管理的所有 EVS 或者指定 EVS 的 EVS 信息。

–f {<fname>=<val>[,...]}[,...], –-filter {<fname>=<val>[,...]}[,...]

用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:

tenant

按 tenant 名称过滤 EVS

evs

按 EVS 名称过滤 EVS

host

按主机名过滤 EVS

ipnet

按 ipnet 名称过滤 EVS

vport

按 vport 名称过滤 EVS

–L, –-l2-type

EVS 表示一个隔离的 L2 网段。要实施或实现这一点,需要使用 VLAN 或 VXLAN。此选项通过以下字段提供该信息。

EVS

EVS 的名称

TENANT

拥有 EVS 的 tenant 的名称

VID

用来实现 EVS 的 VLAN ID

VNI

用来实现 EVS 的 VXLAN 网段 ID

–o <field>[,...], –-output=<field>[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值all。

EVS

EVS 的名称

TENANT

拥有 EVS 的 tenant 的名称

STATUS

EVS 处于空闲还是繁忙状态。如果 EVS 至少有一个 VPort 连接了 VNIC,则它处于繁忙状态。

NVPORTS

与 EVS 关联的虚拟端口的数目。

IPNETS

与 EVS 关联的 IP 网络的列表。当前,一个 EVS 只能关联一个 IP 网络。

HOST

EVS 跨越的主机的列表。

–c、–-parseable

使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。

evsadm add-ipnet [–T <tenantname>] –p subnet=<val>[{,<prop>=<val>[,...]}[,...]]<evsname>/<ipnetname>

为给定的 EVS evsname 添加名为 ipnetname 的 ipnet。如果指定了 tenant 名称,则 ipnet 将与 tenant tenantname 名称空间中的 EVS evsname 相关联。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

–p {<prop>=<val>[,...]}[,..], –-prop {<prop>=<val>[,...]}[,..]

要创建的 EVS 上要设置为指定值的 IPnet 属性的逗号分隔列表。有关支持的属性的更多信息,请参见下文中的“IPnet 属性”部分。请注意,"subnet" 是必需属性,如果未指定该属性,操作将失败。

evsadm remove-ipnet [–T <tenantname>] <evsname>/<ipnetname>

从 EVS evsname 中删除指定的 ipnet ipnetname。如果有任何 VPort 在使用,此操作将失败。如果 VPort 有连接到它的 VNIC,则说明它在使用。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

evsadm show-ipnet [–f {<fname>=<val>[,...]}[,...]][[–c] –o <field>[,...]] [ipnetname]

显示 EVS 控制器管理的所有 IPnet 或者指定 IPnet 的 IPnet 信息。

–f {<fname>=<val>[,...]}[,...], -filter {<fname>=<val>[,...]}[,...]

用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:

tenant

按 tenant 名称过滤 ipnet

evs

按 EVS 名称过滤 ipnet

ipnet

按 ipnet 名称过滤 ipnet

host

按主机名过滤 ipnet

–o <field>[,...], –-output=<field>[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值all。

NAME

ipnet 的名称以及与之关联的 EVS 的名称。格式为 evsname/ipnetname。

IPNET

ipnet 的名称

EVS

EVS 的名称

TENANT

拥有 EVS 的 tenant 的名称。

SUBNET

表示此 IPnet 的子网(IPv4 或 IPv6)。

START

IP 地址范围的起始地址。

END

IP 地址范围的结束地址。

DEFROUTER

给定 ipnet 的缺省路由器的 IP 地址。

AVAILRANGE

可以分配给 VPort 的可用 IP 地址的逗号分隔列表。

–c、–-parseable

使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。

evsadm add-vport [–T <tenantname>] [–p {<prop>=val[,...]}[,...]]<evsname>/<vportname>

为给定的 EVS evsname 添加名为 vportname 的 VPort。如果指定了 tenant 名称,则 VPort 将与 tenant tenantname 名称空间中的 EVS evsname 相关联。

当创建 VPort 时,将为其分配一个随机 MAC 地址和 ipnet 地址范围中的一个 IP 地址。因此,在向 EVS 添加 VPort 之前,绝对有必要将一个 IPnet 与 EVS 相关联。

请注意,不一定要向 EVS 添加 VPort。当创建 VNIC 时,指定要将 VNIC 连接到的 EVS 名称就足够了。在这种情况下,控制器将生成一个系统 VPort(在 VPort 名称中由前缀 "sys-" 予以标识),并且它继承 EVS 属性。

显式创建 VPort 的优势在于,可以在创建该 VPort 时为其指定所需的属性并且可以在创建之后对其进行修改。另一方面,不能指定也不能修改系统 VPort 的属性。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

–p {<prop>=<val>[,...]}[,..]

要创建的 VPort 上要设置为指定值的 VPort 属性的逗号分隔列表。有关支持的属性的更多信息,请参见下文中的“虚拟端口属性”部分。

evsadm remove-vport [–T <tenantname>] <evsname>/<vportname>

删除指定的 VPort。当删除某个 VPort 时,将释放与该 VPort 关联的 IP 地址和 MAC 地址。

请注意,如果有与该 VPort 关联的 VNIC,删除 VPort 会失败。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

evsadm reset-vport [–T <tenantname>] <evsname>/<vportname>

重置指定的 VPort。当某个 VPort 与实际上不存在的 VNIC 相关联时,可以通过重置该 VPort 将其释放。重置系统 VPort 后会立即将其删除。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

evsadm show-vport [–f {<fname>=<val>[,...]}[,...]][[–c] –o <field>[,...]][[<evsname>/][<vportname>]]

显示 EVS 控制器管理的所有 VPort 或者指定 VPort 的 VPort 信息。

–f {<fname>=<val>[,...]}[,...], –-filter {<fname>=<val>[,...]}[,...]

用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:

tenant

按 tenant 名称过滤 VPort

evs

按 EVS 名称过滤 VPort

vport

按 VPort 名称过滤 VPort

host

按主机名过滤 VPort

–o <field>[,...], –-output=<field>[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值all。

NAME

VPort 的名称以及与之关联的 EVS 的名称。格式为 evsname/vportname。

VPORT

VPort 的名称

EVS

EVS 的名称

TENANT

拥有 EVS 的 tenant 的名称

STATUS

VPort 在使用还是空闲。如果 VPort 有与之关联的 VNIC,则说明它在使用。否则,它是空闲的。

VNIC

与 VPort 关联的 VNIC 的名称。

HOST

与 VPort 关联的 VNIC 所在的主机。

–c、–-parseable

使用稳定的可供计算机解析的格式显示。–o 选项需要与 –c 一起使用。请参见下文中的“可解析的输出格式”。

evsadm set-evsprop [–T <tenantname>] –p <prop>=<val>[,...]<evsname>

在指定 evsname 上设置某个属性的值。有关 EVS 属性的列表及其可能值,请参见下文中的“EVS 属性”部分。可以使用 show-evsprop 子命令检索这些属性。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

–p <prop>=<val>[,...], –-prop <prop>=<val>[,...]

要设置为指定值的属性的名称

evsadm show-evsprop [–f {<fname>=<val>[,...]}[,...][[–c] –o <field>[,...]][–p <prop>[,...]] [evsname]

显示所有 EVS 或指定 EVS 的一个或多个属性的当前值。如果未指定属性,则将显示所有可用 EVS 属性。有关 EVS 属性的列表,请参见下文中的“EVS 属性”部分。

–f {<fname>=<val>[,...]}[,...], –-filter {<fname>=<val>[,...]}[,...]

用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:

tenant

按 tenant 名称过滤 EVS

evs

按 EVS 名称过滤 EVS

host

按主机名过滤 EVS

–o <field>[,...], –-output=<field>[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值all。

EVS

EVS 的名称

TENANT

拥有 EVS 的 tenant 的名称

PROPERTY

EVS 属性的名称

PERM

属性的读/写权限。显示的值是 r- 和 rw 中的一个。

VALUE

当前的属性值。如果未设置值,则将显示为 "--"。如果是未知的,则值显示为 "?"。

DEFAULT

属性的缺省值。如果属性没有缺省值,则会显示 "--"。

POSSIBLE

属性可以具有的值的逗号分隔列表。如果这些值在某个数字范围中,则可以显示简写形式min-max。如果可能的值未知或无限制,则会显示 "--"。

evsadm set-vportprop [–T <tenantname>] –p <prop>=<val>[,...]<evsname>/<vportname>

在指定 vportname 上设置某个属性的值。有关 VPort 属性的列表及其可能值,请参见下文中的“虚拟端口属性”部分。可以使用 show-vportprop 子命令检索这些属性。

如果 VPort 有连接到它的 VNIC,则设置该 VPort 上的属性还会导致 VNIC 的属性更改。

请注意,不允许更改系统 VPort 的属性。有关系统 VPort 的更多信息,请参见 add-vport 子命令。

–T, –-Tenant

有关 –T 选项的更多信息,请参见上文的“概念”部分。

–p <prop>=<val>[,...], –-prop <prop>=<val>[,...]

要设置为指定值的属性的名称

evsadm show-vportprop [–f {<fname>=<val>[,...]}[,...][[–c] –o <field>[,...]][–p <prop>[,...]] [[evsname/][vportname]]

显示所有 VPort 或指定 VPort 的一个或多个属性的当前值。如果未指定属性,则将显示所有可用 VPort 属性。有关 VPort 属性的列表,请参见下文中的“虚拟端口属性”部分。

[–f {<fname>=<val>[,...]}[,...], –-filter <fname>=<val>[,...]

用来过滤输出的以逗号分隔的“名称-值”对(选择行)。如果指定了多个过滤器,则所显示的输出是对过滤器执行 AND 操作的结果。如果过滤器值是多值的,则所显示的输出是对过滤器值执行 OR 操作的结果。支持的过滤器包括:

tenant

按 tenant 名称过滤 VPort

evs

按 EVS 名称过滤 VPort

vport

按 VPort 名称过滤 VPort

host

按主机名过滤 VPort

–o <field>[,...], –-output=<field>[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔(选择列)。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值all。

NAME

VPort 的名称以及与之关联的 EVS 的名称。格式为 evsname/vportname。

VPORT

VPort 的名称

EVS

EVS 的名称

TENANT

拥有 EVS 的 tenant 的名称

PROPERTY

VPort 属性的名称

PERM

属性的读/写权限。显示的值是 r- 和 rw 中的一个。

VALUE

当前的属性值。如果未设置值,则将显示为 "--"。如果是未知的,则值显示为 "?"。

DEFAULT

属性的缺省值。如果属性没有缺省值,则显示 "--"。

POSSIBLE

属性可以具有的值的逗号分隔列表。如果这些值在某个数字范围中,则可以显示简写形式min-max。如果可能的值未知或无限制,则会显示 "--"。

evsadm help [subcommand-name]

显示所有受支持的 evsadm 子命令或显示给定子命令的用法。如果您针对某个特定子命令调用 help,则会显示命令语法。使用无参数的 evsadm help 将显示所有受支持的子命令。

可解析的输出格式

许多 evsadm 子命令都具有一个以计算机可解析的格式显示输出的选项。输出格式是一行或多行以冒号 (:) 分隔的字段。显示的字段特定于使用的子命令,并且在给定子命令的 –o 选项的条目下列出。输出仅包括通过 –o 选项请求的字段,这些字段按请求的顺序排列。

当请求多个字段时,将在输出之前使用反斜杠 (\) 对任何文本冒号字符进行转义。类似地,也会对文本反斜杠字符进行转义 (\\)。通过使用带有环境变量 IFS=: 的 shell read(1) 函数,可以解析此转义格式(请参见下文的“示例”部分)。请注意,当仅请求一个字段时,不会进行转义。

控制器属性

这些属性包含着在物理计算机中实现虚拟交换机或 L2 网段所必需的信息。对于大多数属性,作用域或适用范围实际上是整个数据中心或全局。不过,也有一些属性(具体有 uplink-port 和 vxlan-addr),可以以主机为单位覆盖其值。

l2-type

定义将如何在物理计算机中实现 EVS。可能值为 "vlan" 或 "vxlan"。缺省情况下,l2-type 为 "vlan"。请注意,更改 l2-type 不会影响在更改之前创建的那些 EVS。只有在更改之后创建的 EVS 才会具有新的 l2-type。这意味着基于 VLAN 和 VXLAN 的 L2 网段可以共存。

要实现 VLAN,需要将一个 EVS 的所有 VPort 与同一个 VLAN ID 相关联。要使用的 VLAN ID 来自 vlan-range 属性。此 l2-type 假定物理网络已配置为在这些 VLAN 上发送/接收数据包,或者已在 Oracle Solaris 和交换结构中启用了 GVRP 之类的协议。至少必须指定 vlan-range 和 uplink-port。否则,EVS 创建将失败。

要实现 VXLAN,需要将一个 EVS 的所有 VPort 与同一个 VXLAN ID 相关联。要使用的 VXLAN ID 来自 vxlan-range 属性。其他 VXLAN 属性(例如 vxlan-addr、vxlan-group、vxlan-ipvers 和 uplink-port)影响 VXLAN 的创建方式。至少必须指定 vxlan-range 和 uplink-port 或 vxlan-addr。否则,EVS 创建将失败。

vlan-range

将用于创建 EVS 的 VLAN ID 范围的逗号分隔列表。对于所创建的每个 EVS 都将消耗一个 VLAN ID。VLAN ID 在 EVS 之间提供数据包隔离。有效值为 [1-4094]。

vxlan-range

可以用于创建 EVS 的 VXLAN 网段编号范围的逗号分隔列表。对于所创建的每个 EVS 都将消耗一个 VXLAN 网段编号。VXLAN 网段编号在 EVS 之间提供了 L2 隔离。有效值为 [0 - 16777215]。

vxlan-addr

指定创建 VXLAN 数据链路时应当基于的 IP 地址。这还可以设置为一个子网地址。

vxlan-mgroup

创建 VXLAN 链路时需要使用的多播地址。VXLAN 链路将使用此地址来搜索同一 VXLAN 网段上的其他 VXLAN 链路。如果未设置此属性,则 VXLAN 链路将使用缺省的 all-host 地址。

vxlan-ipvers

表示承载 VXLAN 数据链路的 IP 接口必须使用的 IP 地址的版本。可能值为 "v4" 和 "v6"。缺省值为 "v4"。

uplink-port

指定要用于 VLAN 或 VXLAN 的数据链路。

IPnet 属性

subnet

表示 IPv4 或 IPv6 地址的片区。对于 IPv4,该值指定为以 len 为前缀的标准 IPv4 点分十进制形式,即:

ddd.ddd.ddd.ddd/yy

其中,"ddd" 是介于 0 和 255 之间的一到三位十进制数字,"yy" 是介于 1 和 30 之间的一到两位十进制数字。

对于 IPv6,该值指定为以 len 为前缀的标准 IPv6 文本,即:

ex:x:x:x:x:x:x:x/yyy

其中,"x" 是地址的八个 16 位部件的十六进制值,"yy" 是介于 1 和 126 之间的一到三位十进制数字。

defrouter

缺省路由器指定给定子网的网关的 IP 地址。这是可选的,未指定时,将选择范围中的第一个地址作为缺省的路由器 IP 地址。

虚拟端口属性

cos

为虚拟端口上的外发包设置 802.1p 优先级。值的范围为 0 到 7。当设置了此属性时,虚拟端口上的所有外发包将带有一个 VLAN 标记,其中优先级字段设置为该属性值。这可以用来在各个 VPort 之间提供差异化服务。

maxbw

设置虚拟端口的全双工带宽。此带宽指定为一个带有某个容量级后缀(分别表示 Kbps、Mbps 和 Gbps 的 K、M 或 G)的整数。如果未指定单位,输入值将以 Mbps 为单位进行读取。缺省值是无带宽限制。

priority

设置虚拟端口的相对优先级。该值可指定为 high、medium 或 low 标记之一。缺省值为 medium。此优先级不会反映在线路上的任何协议优先级字段中,而是用于系统内的包处理调度。高优先级链路可能延迟更短,具体取决于可用的系统资源。

ipaddr

表示与虚拟端口关联的 IP 地址。当 VNIC 连接到某个 VPort 时,此地址将应用于 VNIC。缺省情况下,EVS 控制器将自动从与 EVS 关联的 IPnet 选择 IP 地址。如果需要为某个区域/VNIC 分配一个特定的 IP 地址,则可以通过在向 EVS 添加 VPort 时手动将 ipaddr 设置为所需的 IP 地址来实现此目的。

创建 VPort 之后,将无法通过 evsadm set-vportprop 命令更改其 IP 地址。

macaddr

表示与虚拟端口关联的 MAC 地址。连接到此 VPort 的 VNIC 基本上从此 VPort 继承 MAC 地址。缺省情况下,EVS 控制器将为 VPort 生成一个随机 MAC 地址。如果需要为某个 VNIC 分配一个特定的 MAC 地址,则可以通过在向 EVS 添加 VPort 时手动将 macaddr 设置为所需的 MAC 地址来实现此目的。

创建 VPort 之后,将无法通过 evsadm set-vportprop 命令更改其 MAC 地址。

evs

一个只读属性,表示 VPort 与之关联的 EVS。

tenant

一个只读属性,表示 VPort 与之关联的 tenant。

EVS 属性

maxbw

请参见上文中的“虚拟端口属性”部分。这定义将与 EVS 的每个虚拟端口关联的缺省 maxbw。

priority

请参见上文中的“虚拟端口属性”部分。这定义将与 EVS 的每个虚拟端口关联的缺省优先级。

tenant

一个只读属性,表示 EVS 与之关联的 tenant。


注 -  如果为虚拟端口显式设置了某个属性,则该属性值将覆盖对应的 EVS 属性值。

示例

在下面的所有示例中,假定 EVS 管理器、EVS 控制器和 EVS 节点在同一个节点上。

示例 1 设置 evsadm 应当连接到的 EVS 控制器
# evsadm set-prop -p controller=ssh://evsuser@evs-controller.example.com

现在为使用 ssh-keygen(1) 调用 evsadm 的用户创建 SSH 密钥。将 $HOME/.ssh/id_rsa.pub 复制到 /var/user/evsuser/.ssh/authorized_keys。现在以 evsuser 身份对 evs-controller.example.com 进行 SSH 连接,以验证是否可以在不使用口令的情况下进行连接(注:回答 SSH 客户机弹出的 yes/no 问题)。

# evsadm show-prop
NAME            VALUE                                     DEFAULT
controller      ssh://evs-controller.example.com          --
示例 2 对 EVS 控制器进行设置,以便使用 VLAN 创建 L2 网段

继续上面的示例,现在控制器是 evs-controller.example.com,使用 set-controlprop 命令所做的任何更改都将反映在该控制器上。

# evsadm set-controlprop -p l2-type=vlan
# evsadm set-controlprop -p vlan-range=200-300,400-500
# evsadm set-controlprop -p uplink-port=net2
# evsadm set-controlprop -h host2.example.com -p uplink-port=net3
# evsadm set-controlprop -h host3.example.com -p uplink-port=net4

NAME                VALUE               DEFAULT             HOST
l2-type             vlan                vxlan               --
vlan-range          200-300,400-500     --                  --
uplink-port         net2                --                  --
uplink-port         net3                --                  host2.example.com
uplink-port         net4                --                  host3.example.com

VLAN ID 200-300 和 400-500 是为 EVS 预留的。net2 是除了 host2.example.com 和 host3.example.com 之外的所有主机上的 uplink-port。在 host2 上,net3 将用作 uplink-port,在 host3 上,net4 将用作 uplink-port。

示例 3 对 EVS 控制器进行设置,以便使用 VXLAN 创建 L2 网段
# evsadm set-controlprop -p l2-type=vxlan
# evsadm set-controlprop -p vxlan-range=20000-30000
# evsadm set-controlprop -p vxlan-addr=192.168.10.0/24
# evsadm show-controlprop -p l2-type,vxlan-range,vxlan-addr

NAME                VALUE               DEFAULT             HOST
l2-type             vxlan               vxlan               --
vxlan-range         20000-30000         --                  --
vxlan-addr          192.168.10.0/24     0.0.0.0             --

VXLAN ID 20000-30000 是为 EVS 预留的。将使用属于子网 192.168.10.0/24 的 IP 接口来创建 VXLAN 链路。

示例 4 创建一个 EVS,关联一个 IP 子网,向 EVS 添加一个 VPort 并连接一个 VNIC

在使用 evsadm 之前,设置控制器属性。

# evsadm set-prop -p controller=ssh://evs-controller.example.com

另外,还必须在 RAD 客户机与控制器之间手动设置使用预先共享的密钥执行的 SSH 验证,以便 RAD 客户机能够以非交互方式连接到 EVS 控制器。

现在创建名为 HR 的 EVS。

# evsadm create-evs HR
# evsadm show-evs HR

EVS    TENANT      STATUS NVPORTS IPNETS HOST
HR     sys-global  --     0       --     --

因为没有提供 tenant 名称,所以 EVS 创建在 sys-global 下。它没有与之关联的 IP 网络或 VPort。

现在创建一个 IP 网络。

# evsadm add-ipnet -p subnet=192.168.13.0/24 HR/hr_ipnet
# evsadm show-ipnet

NAME        TENANT     SUBNET          DEFROUTER    AVAILRANGE
HR/hr_ipnet sys-global 192.168.13.0/24 192.168.13.1 192.168.13.2-192.168.13.254

现在向 HR 添加一个 VPort。

# evsadm add-vport HR/vport0
# evsadm show-vport

NAME       TENANT     STATUS VNIC      HOST
HR/vport0  sys-global free   --        --

# evsadm show-vport -o name,macaddr,ipaddr

NAME                MACADDR         IPADDR
HR/vport0           2:8:20:95:1:de  192.168.13.2/24

不带子命令的 evsadm 将生成以下输出。

# evsadm

NAME          TENANT        STATUS VNIC         IP
HR            sys-global    --     --           hr_ipnet
vport0        --            free   --           192.168.13.2/24

现在将 VNIC vnic0 连接到 HR/vport0。

# dladm create-vnic -t -c HR/vport0 vnic0
# dladm show-vnic -c

LINK     TENANT      EVS  VPORT   OVER            MACADDRESS        VIDS
vnic0    sys-global  HR   vport0  evs-vxlan200    2:8:20:95:1:de    0

# dladm show-linkprop -p allowed-ips vnic0

LINK     PROPERTY        PERM VALUE        EFFECTIVE    DEFAULT   POSSIBLE
vnic0    allowed-ips     rw   192.168.13.2 192.168.13.2 --        -- 

注意 vnic0 的 allowed-ips 是如何通过 VPort 的 IP 地址设置的。

现在将 VPort 的 maxbw 属性设置为 1G 并查看它如何反映在 vnic0 上。

# dladm show-linkprop -p maxbw vnic0

LINK     PROPERTY    PERM VALUE        EFFECTIVE    DEFAULT   POSSIBLE
vnic0    maxbw       rw   --           --           --        -- 

# evsadm set-vportprop -p maxbw=1G HR/vport0
# dladm show-linkprop -p maxbw vnic0

LINK     PROPERTY        PERM VALUE        EFFECTIVE    DEFAULT   POSSIBLE
vnic0    maxbw           rw    1000         1000        --        -- 
示例 5 显示 EVS 的属性
# evsadm show-evsprop HR

EVS   TENANT        PROPERTY  PERM VALUE     DEFAULT   POSSIBLE
HR    sys-global    maxbw     rw   --        --        --
HR    sys-global    priority  rw   --        medium    low,medium,
                                                       high
HR    sys-global    tenant    r-   sys-global --       --
示例 6 显示 VPort 的属性
# evsadm show-vportprop HR/

NAME        TENANT        PROPERTY  PERM VALUE     DEFAULT   POSSIBLE
HR/vport0   sys-global    cos       rw   3         0         0-7
HR/vport0   sys-global    maxbw     rw   --        --        10K-
HR/vport0   sys-global    priority  rw   --        medium    low,medium,
HR/vport0   sys-global    ipaddr    r-   192.168.13.2/24 --  --
HR/vport0   sys-global    macaddr   r-   2:8:20:5c:cb:a5 --  --
HR/vport0   sys-global    evs       r-   HR        --        --
HR/vport0   sys-global    tenant    r-   sys-global --       --
示例 7 删除虚拟端口
# evsadm remove-vport HR/vport0

请注意,如果 vport 正在使用,以上操作会失败。

示例 8 删除 IPnet
# evsadm remove-ipnet HR/hr_ipnet

请注意,如果 IP 子网中的某个 IP 地址正在使用,以上操作会失败。

示例 9 删除 EVS
# evsadm delete-evs HR

请注意,如果 EVS 的某个 VPort 正在使用,以上操作会失败。

示例 10 为 Tenant 创建一个 EVS 并关联一个 IPnet 和 VPort

以下示例为 tenant tenantA 创建 EVS evsA 并将 192.168.100.0/24 作为 IPnet 与之关联,同时添加一个 maxbw 为 1G 的 VPort。

# evasdm create-evs -T tenantA evsA
# evsadm add-ipnet -T tenantA -p subnet=192.168.100.0/24 evsA/ipnetA
# evsadm add-vport -T tenantA -p maxbw=1G evsA/vport0
# evsadm

NAME          TENANT        STATUS VNIC         IP                HOST
evsA          tenantA       --     --           ipnetA            --
vport0     --            free   --           192.168.100.2/24  --

# evsadm show-vport
NAME                TENANT        STATUS VNIC         HOST
evsA/vport0         tenantA       free   --           --

# evsadm show-ipnet
NAME         TENANT  SUBNET           DEFROUTER      AVAILRANGE
evsA/ipnetA  tenantA 192.168.100.0/24 192.168.100.1  192.168.100.3-192.168.100.254

属性

有关下列属性的说明,请参见 attributes(5):

属性类型
属性值
可用性
service/network/evs
接口稳定性
Committed(已确定)

另请参见

evsstat(1M)、dladm(1M)、zonecfg(1M)、rad(1M)、attributes(5)、prof_attr(4)、ssh-keygen(1)