È possibile configurare la replica delle macchine virtuali da un sito di origine a un sito di destinazione utilizzando le REST API di vSphere Replication.

Prerequisiti

Per configurare una replica di una macchina virtuale:
  • È necessario registrare vSphere Replication in Platform Services Controller (PSC) utilizzando VRMS Appliance Management Interface o il gateway REST API di configurazione dell'appliance VRMS.
  • È necessario disporre di un'associazione di siti tra il sito di origine e il sito di destinazione.

Procedura

  1. Per accedere al sito di origine, eseguire una richiesta POST.
    POST BASE_URL/api/rest/vr/API_VERSION/session

    Immettere il nome utente e la password nell'intestazione HTTP autorizzazione. Utilizzare l'ID sessione restituito come valore per l'intestazione HTTP x-dr-session per tutte le chiamate successive alla REST API.

  2. Per ottenere l'ID di associazione e l'ID del vCenter Server locale, eseguire una richiesta GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/
    Risposta di esempio:
    {
       "pairing_id": "e41c183f-bc55-319b-bf76-8ec83d335074", <----------- Pairing ID
       "local_vc_server": {
          "id": "0a98c22d-a553-47e4-bd56-2844f45d8ef6", <--------------- VC ID
          "url": "https://s2-srm2-219-12.eng.vmware.com:443/sdk",
          "name": "s2-srm2-219-12.eng.vmware.com",
          "server_status": "OK",
          // Other fields are not relevant in this example
    }

    Salvare l'ID di associazione e l'ID del vCenter Server locale.

  3. Per ottenere gli ID delle macchine virtuali per associazione di siti, eseguire una richiesta GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_GUID/vms

    Salvare l'ID della macchina virtuale per cui si desidera configurare la replica.

  4. Per ottenere l'ID del server di vSphere Replication di destinazione:
    1. Eseguire una richiesta POST per accedere al sito di destinazione.
      POST BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/remote-session

      Immettere nome utente e password nell'intestazione HTTP autorizzazione. Assicurarsi che l'intestazione HTTP x-dr-session sia ancora presente.

    2. Eseguire una richiesta GET per ottenere tutte le istanze del server di vSphere Replication Management nell'associazione.
      GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vrs

      Salvare l'ID del server di vSphere Replication Management di destinazione.

    3. Eseguire una richiesta GET per ottenere tutti i server di vSphere Replication registrati nel server di vSphere Replication Management di destinazione.
      GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vrs/VR_ID/replication-servers

      Sostituire il valore PAIRING_ID con l'ID dell'associazione e il valore VR_ID con l'ID del server di vSphere Replication Management di destinazione del passaggio 4.b.

      Salvare l'ID del server di vSphere Replication di destinazione dal risultato.

  5. Per ottenere il datastore di destinazione, eseguire una richiesta GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_ID/datastores

    Sostituire il valore VC_ID con l'ID del vCenter Server di destinazione e salvare la risposta.

  6. Per ottenere l'ID del criterio di storage preferito, eseguire una richiesta GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_ID/storage-policies

    Sostituire il valore VC_ID con l'ID del vCenter Server di destinazione e salvare l'ID del criterio di storage di destinazione preferito.

  7. Per ottenere informazioni sui dischi di una macchina virtuale, eseguire una richiesta GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_ID/vms/VM_ID/disks

    Sostituire il valore VC_ID con l'ID del vCenter Server di origine, sostituire il valore VM_ID con l'ID della macchina virtuale ottenuto nel passaggio 3., quindi salvare la risposta.

  8. Per configurare la replica, eseguire una richiesta POST.
    POST BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/replications
    Corpo della richiesta di configurazione di una replica di esempio:
    [
       {
          "auto_replicate_new_disks": true,
          "rpo": 60,
          "lwd_encryption_enabled": false,
          "mpit_days": 0,
          "mpit_enabled": false,
          "mpit_instances": 0,
          "network_compression_enabled": false,
          "quiesce_enabled": false,
          // You get this from Step 3.
          "vm_id": "VirtualMachine:vm-38:fa655d23-b8ac-4eb1-8351-129954807e2c",
          //You get this from Step 4.
          "target_replication_server_id": "HmsRemoteHbrServer:HBRSRV-26c6bd13-1fac-4d04-adcb-2700a258025c:b41aa649-bd9b-45e0-9d41-a7a16c0b0946",
          "target_vc_id": "54d0e5ab-3e9d-4372-9f27-036cf1c24639"
          "disks": [
             {
                //  You get this from Step 5.
                "destination_datastore_id": "Datastore:datastore-18:54d0e5ab-3e9d-4372-9f27-036cf1c24639",
                // Options for destination_disk_format parameter: SAME_AS_SOURCE, SAME_AS_PRIMARY, AS_DEFINED_IN_PROFILE, FLAT, THICK, NATIVE_THICK, THIN, RDM.
                "destination_disk_format": "SAME_AS_SOURCE",
                "enabled_for_replication": true,
                "use_seeds": false,
                "destination_path": "target_folder/test-vm-1",
                // You get this from Step 6.
                "destination_storage_policy_id": "4b97756b-3c50-481a-a105-d6a7b1507f9a",
               //  You got this from Step 7.
                "vm_disk" : {
                    "vm_id": "VirtualMachine:vm-38:fa655d23-b8ac-4eb1-8351-129954807e2c",
                    "device_key": 2000,
                    "is_vm_home": false,
                    "encrypted": false,
                    "capacity": 524288,
                    "source_disk_format": "THIN",
                    "source_path": {
                        "datastore_id": "Datastore:datastore-17:fa655d23-b8ac-4eb1-8351-129954807e2c",
                        "datastore_name": "local",
                        "path": "test-vm-1",
                        "filename": "test-vm-1.vmdk"
                    },
                    "source_storage_policy_name": "Datastore Default",
                    "source_storage_policy_id": null,
                    "label": "Hard disk 1",
                    "controller_key": 1000,
                    "controller_label": "SCSI controller 0",
                    "supported_for_replication": true
                }
             },
             {
                //  You get this from Step 5.
                "destination_datastore_id": "Datastore:datastore-18:54d0e5ab-3e9d-4372-9f27-036cf1c24639",
                "destination_disk_format": "SAME_AS_SOURCE",
                "enabled_for_replication": true,
                "use_seeds": false,
                "destination_path": "target_folder/test-vm-1",
                //  You get this from Step 6.
                "destination_storage_policy_id": "4b97756b-3c50-481a-a105-d6a7b1507f9a",
                // You get this from Step 7.
                "vm_disk" : {
                    "vm_id": "VirtualMachine:vm-38:fa655d23-b8ac-4eb1-8351-129954807e2c",
                    "device_key": 0,
                    "is_vm_home": true,
                    "encrypted": false,
                    "capacity": 0,
                    "source_disk_format": null,
                    "source_path": {
                        "datastore_id": "Datastore:datastore-17:fa655d23-b8ac-4eb1-8351-129954807e2c",
                        "datastore_name": "local",
                        "path": "test-vm-1",
                        "filename": "test-vm-1.vmx"
                    },
                    "source_storage_policy_name": "Datastore Default",
                    "source_storage_policy_id": null,
                    "label": "VM home",
                    "controller_key": 0,
                    "controller_label": null,
                    "supported_for_replication": false
                }
             }
          ]
       }
    ]