手册页部分 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(maxbwcospriority)、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-evsdelete-evsshow-evsset-evspropshow-evsprop
IPnet
add-ipnetremove-ipnetshow-ipnet
VPort
add-vportremove-vportshow-vportset-vportpropshow-vportpropreset-vport
EVS 控制器
set-controlpropshow-controlprop
EVS 客户机
set-propshow-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-portvxlan-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-rangeuplink-port。否则,EVS 创建将失败。

要实现 VXLAN,需要将一个 EVS 的所有 VPort 与同一个 VXLAN ID 相关联。要使用的 VXLAN ID 来自 vxlan-range 属性。其他 VXLAN 属性(例如 vxlan-addrvxlan-groupvxlan-ipversuplink-port)影响 VXLAN 的创建方式。至少必须指定 vxlan-rangeuplink-portvxlan-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.comhost3.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 与之关联,同时添加一个 maxbw1G 的 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)