Atom feed of this document
  

 特定插件扩展

每个供应商可以选择实现核心 API 的额外 API 扩展。本小节将描述插件的扩展。

 VMware NSX 扩展

这些章节解释了NSX插件扩展。

 VMware NSX QoS 扩展

VMware NSX QoS 扩展速率限制网络端口来保证每个端口具有特定数量的带宽。这个扩展默认情况下只对具有管理员角色的租户是可访问的,但可以通过 policy.json 文件进行配置。要使用这个扩展,需要创建一个队列并指定最大/最小带宽速率 (kbps),还可以选择性地设置 QoS Marking 和 DSCP 值 (如果您的网络光纤使用了这些值来进行转发决定的话)。一旦创建了,您可以关联一个队列到网络中。然后,当端口在该网络创建爱你后,它们会自动地被创建,并关联到相关网络的特定队列大小中。由于每个网络上的端口的一个队列大小可能不是优化的,那么当创建爱你端口来扩展队列时,nova 类型的 'rxtx_factor' 缩放选项会从计算服务传递过来。

最后,如果您想为带宽数目设置一个特定的基准的 QoS 策略,单个端口可以使用 (除非网络队列指定了所创建的网络端口) 一个在 Networking 中创建的队列,它之后会引起端口创建关联到一个该大小乘以 rxtx 扩展元素的队列。请注意在网络或默认队列指定之后,队列会被添加到随后创建但没有添加到已有端口的端口中。

 VMware NSX Qos的基本操作

此表展示了一个neutron的例子,其可以让你完成查询操作:

表 7.18. VMware NSX Qos的基本操作
操作 命令

创建QoS队列(仅管理员)。

$ neutron queue-create --min 10 --max 1000 myqueue

将队列和网络关联。

$ neutron net-create network --queue_id QUEUE_ID

创建一个默认的系统队列。

$ neutron queue-create --default True --min 10 --max 2000 default

列出QoS队列。

$ neutron queue-list

删除一个QoS队列。

$ neutron queue-delete QUEUE_ID_OR_NAME'
 VMware NSX 提供商网络扩展

在NSX平台下可以有不同的提供网络的实现方法。

FLATVLAN 网络类型使用桥接传输连接器。这些网络类型允许大规模数目的端口附加。为了处理增加的扩展,NSX 插件可以回调一个 NSX 逻辑开关链的单个 OpenStack 网络。您可以指定这个链上的每个逻辑开关的最大端口数目,可以在 max_lp_per_bridged_ls 参数中指定,它的默认值是 5,000。

该参数的建议值与 NSX 运行在后端的版本变化,如下表所示。

表 7.19.  max_lp_per_bridged_ls 的建议值
NSX 版本 建议值
2.x 64
3.0.x 5,000
3.1.x 5,000
3.2.x 10,000

除了这些网络类型,NSX 插件也支持一个特定的 l3_ext 网络类型,它映射外部网络到指定的 NSX 网关服务中,正如下一个小节所讨论的那样。

 VMware NSX 3层扩展

NSX 通过一般配置在 OpenStack 上不同频道信号传输的网关服务暴露其 L3 容量。要使用 NSX 的 L3 容量,首先需要在 NSX 管理者中创建 L3 网关服务。接着,在 /etc/neutron/plugins/vmware/nsx.ini 中将 default_l3_gw_service_uuid 设置为该值。默认情况下,路由是映射到这个网关服务上的。

 VMware NSX 3层扩展操作

创建外部网络,且将之映射到指定的NSX网关服务:

$ neutron net-create public --router:external True --provider:network_type l3_ext \
--provider:physical_network L3_GATEWAY_SERVICE_UUID

从一个NSX网关服务终止一个指定的VLAN流量:

$ neutron net-create public --router:external True --provider:network_type l3_ext \
--provider:physical_network L3_GATEWAY_SERVICE_UUID --provider:segmentation_id VLAN_ID
 在VMwareNSX插件中操作状态同步

以 Havana 发行版启动,VMware NSX 插件提供了一个异步机制来从 NSX 后端中获取 neutron 资源操作的状态;它可以应用于 networkportrouter 资源。

后端周期性投票并检索每个每个资源的状态;然后,Networking 数据库中的资源状态会在状态改变时更新。由于现在可操作的状态是异步检索的,GET 操作的性能会有一定的提高。

数据从后端检索分块以避免昂贵的 API 请求;这是利用 NSX API 响应分页功能实现的。最小的块大小可以通过配置选项指定;实际的块大小会根据这些来动态地决定:检索的总资源数目、两个同步任务执行之间的时间间隔、对 NSX 后端的两个连续请求之间的最小延时。

可操作的状态同步可以通过该表格中的配置选项进行调整或禁用;值得一提的是,在大多数情况下,默认值已经可以很好地工作。

表 7.20. NSX 插件中调整可操作的状态同步的配置选项
选项名称 默认值 类型和约束 注记
state_sync_interval nsx_sync 10秒 整型;没有约束。 运行两个同步任务之间的时间间隔,以秒计算。如果同步任务的执行花费了超过 state_sync_interval 秒的时间,该任务的新实例会在其他任务执行完成时马上启动。可以设置该选项的值为 0 来禁用同步任务。
max_random_sync_delay nsx_sync 0秒 整型。不可执行min_sync_req_delay 当不为 0时,在下一个块执行之前,会在 0 和 max_random_sync_delay 之间选择一个随机延时添加其中。
min_sync_req_delay nsx_sync 1秒 整型。不可执行state_sync_interval 该选项的值可以根据 NSX 控制器实测的负荷进行调整。较低的值会导致更快的同步,但可能会增加控制集群上的负荷。
min_chunk_size nsx_sync 500 资源 整型;没有约束。 每个同步块从后端检索的资源的最小值。同步块的期望数值通过给定 state_sync_intervalmin_sync_req_delay 之间的比率来设置。如果资源的总数目超过 min_chunk_size 必需从一个块中以当前块的数目获取的资源,这个块的大小可能会增加。
always_read_status nsx_sync False 布尔;没有约束。 如果启用了这个选项,可操作的状态将总是从 NSX 后端的每个 GET 请求中获取的。在这个情况下,禁用同步任务是明智之举。

如果运行多个 OpenStack Networking 服务器实例,那么状态同步任务不应该在每个节点上运行;这样会发送不必要的流量到 NSX 后端中并进行不必要的数据库操作。在一个节点上专门设置 state_sync_interval 配置选项为一个非零值,以诊断后端状态的同步。

Networking API 请求中的 fields=status 参数总是触发一个明确的 NSX 后端查询,即使您启用了异步状态同步。例如,GET /v2.0/networks/NET_ID?fields=status&fields=name

 Big Switch 插件扩展

此节阐释了Big Switch neutron插件的扩展。

 Big Switch 路由规则

Big Switch 允许添加路由规则到每个租户路由中。这些规则可以用于增强路由策略,例如拒绝子网之间的流量或拒绝到达外网的流量。通过在路由级别进行增强,网络分段策略可以通过不同安全组的虚拟机得到增强。

 路由规则属性

每个租户路由有一套路由规则与它关联。每个路由规则在这个表中有一些属性。路由规则和它们的属性可以使用 neutron router-update 命令来设置,通过 horizon 接口或 Networking API 均可。

表 7.21. Big Switch 路由规则属性
属性名称 必须 输入类型 描述
一合法段CIDR,或者其中是'any' 或 'external'任何一个的关键字 一个网络,它的数据包的源 IP 必需匹配所应用的规则
目的 一合法段CIDR,或者其中是'any' 或 'external'任何一个的关键字 一个网络,它的数据包的目的 IP 必需匹配所应用的规则
动作 'permit' 或 'deny' 决定匹配的包是否允许通过路由
下一跳 下一跳 IP 地址的 plus-separated (+) 列表。例如,1.1.1.1+1.1.1.2 覆盖了默认虚拟路由,用于处理匹配规则的包的流量
 处理规则的顺序

路由规则的顺序是没有影响的。在源地址和目的地址上使用最长的前缀匹配来评估重叠的规则。源地址首先匹配,所以它总是比目的地址具有更高的优先级。换句话说,最长前缀匹配仅在有多个规则匹配同一个源地址时,使用在目的地址上。

 Big Switch 路由规则操作

路由规则以 OpenStack Networking 中的一个路由更新操作来进行配置。更新会覆盖所有之前设置的规则,所以规则必需在同一时间一次性设置。

以规则更新路由,默认允许流量,但阻止从外网到达 10.10.10.0/24 子网的流量:

$ neutron router-update ROUTER_UUID --router_rules type=dict list=true\
source=any,destination=any,action=permit \
source=external,destination=10.10.10.0/24,action=deny

为特定的子网指定候补的下一跳地址:

$ neutron router-update ROUTER_UUID --router_rules type=dict list=true\
source=any,destination=any,action=permit \
source=10.10.10.0/24,destination=any,action=permit,nexthops=10.10.10.254+10.10.10.253

阻止两个子网之间的流量,允许其他流量:

$ neutron router-update ROUTER_UUID --router_rules type=dict list=true\
source=any,destination=any,action=permit \
source=10.10.10.0/24,destination=10.20.20.20/24,action=deny
Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...