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
- 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
- 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.
- 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.
- 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.
- Pour obtenir l'ID du serveur vSphere Replication cible :
- 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.
- 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.
- 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.
- Effectuez une demande POST pour vous connecter au site cible.
- 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.
- 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.
- 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.
- 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 } } ] } ]