本节介绍了可用于灵活升级的其他选项,如下所述:

  • 回滚 - 错误恢复

  • 中止状态清理

  • SE 组恢复选项

回滚 - 错误恢复

  • 如果升级过程出现错误,则会启动自动回滚错误恢复,以使 NSX Advanced Load Balancer 控制器 进入已知的正常状态。

  • 如果使用了 suspend_on_failure 标记,则在 SE 组遇到错误时,SE 组将挂起升级。否则,将继续升级 SE 组中的其余服务引擎。

  • 如果修补程序的上下文中发生错误,则将回滚修补程序。

  • 如果在执行回滚机制期间遇到错误,则会视为升级已取消。

中止状态清理

每当回滚操作在触发后失败时,NSX Advanced Load Balancer 控制器 或 SE 组都将变为中止状态。在灵活升级中,可以清理这些状态,并将 NSX Advanced Load Balancer 控制器 和 SE 组转换为已知的稳定状态。

使用 SE 组恢复选项

注:

SE 组恢复选项仅在 NSX Advanced Load Balancer 版本 18.2.8 及更高版本中受支持。

如果在启用了 suspend_on_failure 的情况下升级 SE 组,那么在遇到问题时,将挂起该 SE 组的升级过程。通过手动干预解决问题后,可使用以下选项恢复升级:

  • Se-group-uuids - 指定需要恢复的 SE 组。

  • Ignore_failure - 该字段将覆盖之前的失败时挂起选项。在这种情况下,将无条件地执行升级,即使后续升级迭代失败,仍会继续升级。默认值为 false。

  • Skip-suspended - 该字段将跳过在先前的升级迭代中挂起的 SE,并继续升级组中的其余 SE。默认值为 false。

[admin:controller]: >resume segroup se_group_refs <se-group-name>
[admin:controller]: >resume segroup se_group_refs seg-a

以下选项可用于恢复 SE 组升级:

[admin:controller]: >resume segroup skip_suspended se_group_refs Default-Group action_on_error continue_upgrade_ops_on_error
[admin:controller]: >resume segroup skip_suspended se_group_refs Default-Group action_on_error suspend_upgrade_ops_on_error

使用以下 API POST 方法可恢复 SE 组升级。

API: /api/segroup/resume
POST /api/segroup/resume
JSON data:
{
        "se_group_uuids": [
                "serviceenginegroup-ec9c8141-844d-467d-bdc0-d7855e9d8419"
        ],
        "skip_warnings": true
}
注:

使用 skip_warnings": true 时,升级将继续,而不会显示警告消息和升级预览。

使用其他选项恢复升级:

选项:跳过挂起的 SE 并继续升级,且将 se_group action_on_error 更新为 CONTINUE_UPGRADE_OPS_ON_ERROR

{
        "se_group_options": {
              "action_on_error": "CONTINUE_UPGRADE_OPS_ON_ERROR",
              "skip_suspended": true
         },
        "se_group_resume_options": {
              "action_on_error": "CONTINUE_UPGRADE_OPS_ON_ERROR",
              "skip_suspended": true
         },
        "se_group_uuids": [
              "serviceenginegroup-ec9c8141-844d-467d-bdc0-d7855e9d8419"
        ],
        "skip_warnings": true
}

选项:跳过挂起的 SE 并继续升级。

{
        "se_group_options": {
              "action_on_error": "SUSPEND_UPGRADE_OPS_ON_ERROR",
              "skip_suspended": true
        },
        "se_group_resume_options": {
              "action_on_error": "SUSPEND_UPGRADE_OPS_ON_ERROR",
              "skip_suspended": true
        },
        "se_group_uuids": [
              "serviceenginegroup-ec9c8141-844d-467d-bdc0-d7855e9d8419"
        ],
        "skip_warnings": true
}

使用 SE 组模板创建 SE 组

在云启动和 SE 组创建期间,将检查云是否具有服务引擎组模板。如果有可用模板,则会从 SE 组模板复制基础映像或修补程序映像。否则,将从 NSX Advanced Load Balancer 控制器 获取映像信息。

对于每个云,都有一个 se_group_template_uuid。这用于确保新创建的 SE 组采用 se_group_template_uuid

可以将任何 SE 组指定为模板。如果将一个 SE 组 (Seg1) 指定为默认 SE 组模板,则新创建的 SE 组 (Seg2) 将从该 Seg 中获取基础映像和修补程序映像,如下所示。

[admin:controller]: > show upgrade status filter serviceenginegroup Seg2
+------+--------+---------------+------------------+-----------+-----------------------------+---------------------------------+
| Name | Tenant | Cloud         | State            | Operation | Image                       | Patch                           |
+------+--------+---------------+------------------+-----------+-----------------------------+---------------------------------+
| Seg3 | admin  | Default-Cloud | UPGRADE_FSM_INIT | None      | 18.2.9-9000-20200509.052234 | 18.2.9-9000-2p1-20200430.133146 |
+------+--------+---------------+------------------+-----------+-----------------------------+---------------------------------+

应当启用修补程序回滚选项,如下所示。

[admin:controller]: > show upgrade status detail filter serviceenginegroup Seg2
+-----------------------+-------------------------------------------------------------------------+
| Field                 | Value                                                                   |
+-----------------------+-------------------------------------------------------------------------+
| uuid                  | serviceenginegroup-d564305e-9db5-4ae6-941c-485a26af062a                 |
| name                  | Seg2                                                                    |
| node_type             | NODE_SE_GROUP                                                           |
| version               | 18.2.9-9000-20200509.052234                                             |
| image_ref             | 18.2.9-9000-20200509.052234                                             |
| patch_version         | 2p1                                                                     |
| patch_image_ref       | 18.2.9-9000-2p1-20200430.133146                                         |
| state                 |                                                                         |
|   state               | UPGRADE_FSM_INIT                                                        |
|   last_changed_time   | Sat May  9 06:15:49 2020 ms(41) UTC                                     |
| seg_status            |                                                                         |
|   notes[1]            | [2020-05-09 06:15:49] Init segroup(seg3 defaults to seg-template(seg1). |
| start_time            | 2020-05-09 06:15:49.406502                                              |
| enable_rollback       | False                                                                   |
| enable_patch_rollback | True                                                                    |
| progress              | 0 percent                                                               |
| tenant_ref            | admin                                                                   |
| obj_cloud_ref         | Default-Cloud                                                           |
+-----------------------+-------------------------------------------------------------------------|