可以使用 Site Recovery Manager REST API 运行恢复计划。

过程

  1. 发出 POST 请求以登录到主站点。
    POST BASE_URL/api/rest/srm/API_VERSION/session
  2. 发出 GET 请求以获取配对 ID 和本地 vCenter Server ID。
    GET BASE_URL/api/rest/srm/v1/pairings/
    示例响应:
    [
       {
          "pairing_id": "7ae3c72d-9fd6-3157-bec5-07c2982bd1e8",
          "local_vc_server": { "id": "0a98c22d-a553-47e4-bd56-2844f45d8ef6",
          "url": "https://s2-srm2-219-12.eng.vmware.com:443/sdk",
          "name": "s2-srm2-219-12.eng.vmware.com",
          "server_status": "OK",
       },
       ...
    ]

    保存配对 ID 和本地 vCenter Server ID。

  3. 发出 GET 请求以获取所有现有恢复计划的列表。
    GET BASE_URL/api/rest/srm/v1/pairings/PAIRING_ID/recovery-management/plans

    PAIRING_ID 替换为在“步骤 1”中记录的值。

    示例响应:
    [
        {
            "id": "DrRecoveryRecoveryPlan:08ba3a70-5770-4089-a395-f11226e6fe21:93eb1820-f2fd-4238-b8fb-418cd96c1146", 
            "status": "TEST_COMPLETE",
            "protected_site_name": "primary-vc",
            "recovery_site_name": "secondary-vc",
            "protected_vc_guid": "0a98c22d-a553-47e4-bd56-2844f45d8ef6",
            "recovery_vc_guid": "71541212-0cb3-409f-9974-1733cd53d993",
            "name": "rp2",
            "description": null,
            "location": "DrFolder:DrRecoveryRootFolder:93eb1820-f2fd-4238-b8fb-418cd96c1146",
            "location_name": "Recovery Plans",
            "progress": 0,
            "is_running": false
        },
        {...},
        {...},
        {...},
    ]

    保存恢复计划 ID。

  4. 通过发出 POST 请求来登录到远程站点。
    POST BASE_URL/api/rest/srm/v1/pairings/PAIRING_ID/remote-session

    PAIRING_ID 替换为在“步骤 1”中记录的值。

    在“身份验证”标头中输入远程 Platform Services Controller 的用户名和密码。
  5. 发出 POST 请求以运行恢复计划。
    POST BASE_URL/api/rest/srm/v1/pairings/PAIRING_ID/recovery-management/plans/RECOVERY_PLAN_ID/actions/recovery

    PAIRING_ID 替换为在步骤 1 中记录的值,并将 RECOVERY_PLAN_ID 替换为在步骤 2 中记录的值。

    示例响应:
    {
        "skip_protection_site_operations": "false",
        "migrate_eligible_vms": "false",
        "sync_data": "true",
        "planned_failover": "true"
    }