Vous pouvez configurer la réplication des machines virtuelles d'un site source vers un site cible à l'aide des instances de REST API de vSphere Replication.

Conditions préalables

Pour configurer une réplication de machine virtuelle :
  • Vous devez enregistrer votre instance de vSphere Replication dans Platform Services Controller (PSC) à l'aide de VRMS Appliance Management Interface ou de la passerelle REST API de configuration du dispositif VRMS.
  • Vous devez disposer d'une paire de sites entre les sites source et cible.

Procédure

  1. Pour vous connecter au site source, effectuez une demande POST.
    POST BASE_URL/api/rest/vr/API_VERSION/session

    Entrez votre nom d'utilisateur et votre mot de passe dans l'en-tête HTTP d'autorisation. Utilisez l'ID de session renvoyé comme valeur pour l'en-tête HTTP x-dr-session pour tous les appels suivants à REST API.

  2. Pour obtenir l'ID de couplage et l'ID de l'instance locale de vCenter Server, effectuez une demande GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/
    Exemple de réponse :
    {
       "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
    }

    Enregistrez l'ID de couplage et l'ID de l'instance locale de vCenter Server.

  3. Pour obtenir les ID de machines virtuelles par paire de sites, effectuez une demande GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_GUID/vms

    Enregistrez l'ID de la machine virtuelle pour laquelle vous souhaitez configurer la réplication.

  4. Pour obtenir l'ID du serveur vSphere Replication cible :
    1. Effectuez une demande POST pour vous connecter au site cible.
      POST BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/remote-session

      Entrez votre nom d'utilisateur et votre mot de passe dans l'en-tête HTTP d'autorisation. Assurez-vous que l'en-tête HTTP x-dr-session est toujours présent.

    2. Effectuez une demande GET pour obtenir toutes les instances du serveur de gestion vSphere Replication dans le couplage.
      GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vrs

      Enregistrez l'ID du serveur de gestion vSphere Replication cible.

    3. Effectuez une demande GET pour obtenir tous les serveurs vSphere Replication enregistrés dans le serveur de gestion vSphere Replication cible.
      GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vrs/VR_ID/replication-servers

      Remplacez la valeur PAIRING_ID par l'ID du couplage et la valeur VR_ID par l'ID du serveur de gestion vSphere Replication cible de l'étape 4.b.

      Enregistrez l'ID de serveur vSphere Replication cible du résultat.

  5. Pour obtenir la banque de données cible, effectuez une demande GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_ID/datastores

    Remplacez la valeur VC_ID par l'ID de l'instance cible de vCenter Server et enregistrez la réponse.

  6. Pour obtenir l'ID de stratégie de stockage préféré, effectuez une demande GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_ID/storage-policies

    Remplacez la valeur VC_ID par l'ID de l'instance cible de vCenter Server et enregistrez l'ID de la stratégie de stockage cible préférée.

  7. Pour obtenir des informations sur les disques d'une machine virtuelle, effectuez une demande GET.
    GET BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/vcenters/VC_ID/vms/VM_ID/disks

    Remplacez la valeur VC_ID par l'ID de l'instance source de vCenter Server, remplacez la valeur VM_ID par l'ID de la machine virtuelle que vous avez obtenue à l'étape 3, puis enregistrez la réponse.

  8. Pour configurer la réplication, effectuez une demande POST.
    POST BASE_URL/api/rest/vr/API_VERSION/pairings/PAIRING_ID/replications
    Exemple de corps de demande de configuration de la réplication :
    [
       {
          "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
                }
             }
          ]
       }
    ]