本节介绍了 NSX Advanced Load Balancer 的 OpenStack 可用区感知的工作原理。

NSX Advanced Load Balancer OpenStack 部署能够识别 OpenStack 可用区。跨 OpenStack 可用区部署虚拟服务的冗余资源(例如,服务引擎、池成员)时,可降低应用程序中断的可能性。

注:

OpenStack 可用区不会隔离子网。相反,子网将跨多个 OpenStack 可用区;默认情况下,所有主机可以访问所有子网。因此,使用此功能并不能保证应用程序免受网络中断的影响。

部署 OpenStack 可用区

NSX Advanced Load Balancer 的 OpenStack 可用区感知会导致 SE 组中的 SE 部署在多个 OpenStack 可用区中。



根据上述流程,

  • 定义了两个可用区,即 AZ-1 和 AZ-2。图中显示,从时间 t0 开始,一个 SE 组扩展到总共 4 个 SE。

  • 在 t1 时,在 AZ-1 中部署了 SE1。在扩展该组时,NSX Advanced Load Balancer 的目标是确保该组在每个可用区中至少有一个 SE。

  • 需要部署 SE2 时,NSX Advanced Load Balancer 尝试将其放置在 AZ-2 中。此放置在 t2 时成功完成。

  • 在后续 SE 部署中,NSX Advanced Load Balancer 会从所有定义的可用区中随机选择。

  • NSX Advanced Load Balancer 部署 SE3 时,随机选择了 AZ-2。一段时间后,部署了 SE4;这次随机选择了 AZ-1。

  • 但它本可以选择 AZ-2。NSX Advanced Load Balancer 依靠其随机算法随时间在可用区之间均匀分配 SE。在选择可用区时,它不会考虑可用区的现有 SE 占用情况。

  • 如果某个可用区发生故障,NSX Advanced Load Balancer 会将受影响的 SE 重新部署到其余正常运行的可用区中,从而始终确保每个可用区中至少运行一个 SE。

通过 NSX Advanced Load Balancer UI 配置 OpenStack 可用区

导航到基础架构 > 服务引擎组以查看 SE 组列表。单击编辑图标。

在显示 SE 组编辑器时,单击高级选项卡以显示 SE 放置选项。选择任意服务引擎范围的默认值)以将 NSX Advanced Load Balancer OpenStack 可用区感知功能保持关闭状态。否则,请选择可用区,然后从下拉菜单中选择一个或多个可用区。

通过 NSX Advanced Load Balancer CLI 配置 OpenStack 可用区

通过向 ServiceEngineGroup 对象中的重复组 openstack_availability_zones 分配值,指定一个或多个 OpenStack 可用区。如果定义了一个或多个可用区,NSX Advanced Load Balancer 会将 SE 组成员部署到可用区中。如果不指定任何 openstack_availability_zones 值,则会使用默认值(无可用区感知)。

NSX Advanced Load Balancer Shell 的 configure 命令会显示 ServiceEngineGroup 对象中的参数值,并允许用户进行更改。以下是一个简短的示例输出,为了清楚起见,此处移除了大部分参数。

admin:jenkins-func-placement-controller]: > configure serviceenginegroup Default-Group
Updating an existing object. Currently, the object is:
+---------------------------------------+---------------------------------------------------------+
| Field                                 | Value                                                   |
+---------------------------------------+---------------------------------------------------------+
| uuid                                  | serviceenginegroup-5c82725c-8932-4f8a-88f7-f8063546c293 |
| name                                  | Default-Group                                           |
| max_vs_per_se                         | 4                                                       |
| min_scaleout_per_vs                   | 1                                                       |
| max_scaleout_per_vs                   | 2                                                       |
| max_se                                | 4                                                       |
.                                       .                                                         .
.                                       .                                                         .
.                                       .                                                         .
| openstack_availability_zones[1]       | testAZ                                                  |
| openstack_availability_zones[2]       | nova                                                    |
.                                       .                                                         .
.                                       .                                                         .
.                                       .                                                         .
+---------------------------------------+---------------------------------------------------------+