Go to main content

Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.8.x

Quitter la vue de l'impression

Mis à jour : Août 2021
 
 

Actions de réplication

Les actions de réplication définissent les règles pour la réplication des données associées aux cibles de réplication. Les commandes suivantes gèrent les actions de réplication.

Utilisation de l'interface d'actions

Il est possible d'adresser des demandes de gestion des actions de réplication directement à un appareil, sans spécifier de projet ou de partage.

Le tableau suivant répertorie les commandes de base permettant de gérer les actions de réplication.

Table 57  Interface d'actions de base
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/replication/actions
Enumération de tous les objets de l'action de réplication
GET
/replication/actions/ra_id
Obtention des propriétés de l'action de réplication spécifiée
PUT
/replication/actions/ra_id
Modification de l'objet de l'action de réplication spécifiée
DELETE
/replication/actions/ra_id
Suppression de l'objet de l'action de réplication spécifiée
PUT
/replication/actions/ra_id/sendupdate
Démarrage de l'action de réplication sélectionnée
PUT
/replication/actions/ra_id/cancelupdate
Interruption de l'action de réplication sélectionnée

Le tableau suivant répertorie les commandes permettant de gérer les planifications d'action de réplication.

Table 58  Accès aux planifications d'action
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/replication/actions/ra_id/schedules
Enumération de tous les objets de planification de l'action de réplication
GET
/replication/actions/ra_id/schedules/ra_schedule
Obtention des propriétés de planification de l'action de réplication spécifiée
POST
/replication/actions/ra_id/schedules
Création d'une nouvelle planification de l'action de réplication
PUT
/replication/actions/ra_id/schedules/ra_schedule
Modification de l'objet de planification de l'action de réplication spécifiée
DELETE
/replication/actions/ra_id/schedules/ra_schedule
Suppression de l'objet de planification de l'action de réplication spécifiée

Le tableau suivant répertorie les commandes permettant de gérer les instantanés automatiques de la réplication.


Remarque -  Les planifications d'instantanés automatiques de niveau partage configurées dans des actions de réplication de niveau projet sont inaccessibles à l'aide des commandes suivantes. Les actions de niveau projet peuvent disposer de plusieurs planifications d'instantanés automatiques dans plusieurs partages. Cette interface ne permet pas d'identifier toutes les combinaisons de manière définitive.
Table 59  Accès à la configuration des instantanés automatiques de réplication
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/replication/actions/ra_id/autosnaps
Récupération des configurations d'instantanés automatiques de l'action de réplication sélectionnée
GET
/replication/actions/ra_id/autosnaps/autosnaps_id
Obtention de l'objet d'instantané automatique de l'action de réplication spécifiée
PUT
/replication/actions/ra_id/autosnaps
Modification des propriétés d'instantané automatique de l'action de réplication spécifiée
PUT
/replication/actions/ra_id/autosnaps/autosnaps_id
Modification de l'objet d'instantané automatique de l'action de réplication spécifiée
DELETE
/replication/actions/ra_id/autosnaps/autosnaps_id
Suppression de l'objet d'instantané automatique de l'action de réplication spécifiée

Le tableau suivant répertorie la commande permettant d'obtenir les statistiques des actions de réplication.

Table 60  Accès aux statistiques des actions de réplication
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/replication/actions/ra_id/stats
Récupération des statistiques en lecture seule de l'action de réplication sélectionnée

Actions de réplication dans le contexte d'un projet, d'un système de fichiers ou d'un LUN

Les demandes de gestion des actions de réplication peuvent également s'effectuer dans le contexte d'un projet, d'un système de fichiers ou d'un LUN spécifique.

Le tableau suivant répertorie les commandes de base permettant de gérer les actions de réplication.

  • Les URI des opérations basées sur un projet commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project
  • Les URI des opérations basées sur un système de fichiers commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem
  • Les URI des opérations basées sur un LUN commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/luns/lun

Ajoutez les commandes de base suivantes à l'URI du contexte souhaité répertorié ci-dessus pour gérer les actions de réplication.

Table 61  Interfaces des actions de réplication de base d'un projet, d'un système de fichiers ou d'un LUN
Demande
Ajout à l'URI du projet, système de fichiers ou LUN répertorié ci-dessus
Description
GET
/replication/actions
Enumération de tous les objets de l'action de réplication
GET
/replication/actions/ra_id
Obtention des propriétés de l'action de réplication spécifiée
POST
/replication/actions
Création d'une nouvelle action de réplication
PUT
/replication/actions/ra_id
Modification de l'objet de l'action de réplication spécifiée
DELETE
/replication/actions/ra_id
Suppression de l'objet de l'action de réplication spécifiée
PUT
/replication/actions/ra_id/sendupdate
Démarrage de l'action de réplication sélectionnée
PUT
/replication/actions/ra_id/cancelupdate
Interruption de l'action de réplication sélectionnée

Le tableau suivant répertorie les commandes de base permettant de gérer les planifications de réplication.

  • Les URI des opérations basées sur un projet commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project
  • Les URI des opérations basées sur un système de fichiers commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem
  • Les URI des opérations basées sur un LUN commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/luns/lun

Ajoutez les commandes de base suivantes à l'URI du contexte souhaité répertorié ci-dessus pour gérer les planifications de réplication.

Table 62  Planifications des actions de réplication d'un projet, d'un système de fichiers ou d'un LUN
Demande
Ajout à l'URI du projet, système de fichiers ou LUN répertorié ci-dessus
Description
GET
/replication/actions/ra_id/schedules
Enumération de tous les objets de planification de l'action de réplication
GET
/replication/actions/ra_id/schedules/ra_schedule
Obtention des propriétés de planification de l'action de réplication spécifiée
POST
/replication/actions/ra_id/schedules
Création d'une nouvelle planification de l'action de réplication
PUT
/replication/actions/ra_id/schedules/ra_schedule
Modification de l'objet de planification de l'action de réplication spécifiée
DELETE
/replication/actions/ra_id/schedules/ra_schedule
Suppression de l'objet de planification de l'action de réplication spécifiée

Le tableau suivant répertorie les commandes de base permettant de gérer la configuration des instantanés automatiques de réplication.

  • Les URI des opérations basées sur un projet commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project
  • Les URI des opérations basées sur un système de fichiers commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem
  • Les URI des opérations basées sur un LUN commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/luns/lun

Ajoutez les commandes de base suivantes à l'URI du contexte souhaité répertorié ci-dessus pour gérer la configuration des instantanés automatiques de réplication.


Remarque -  Les planifications d'instantanés automatiques de niveau partage configurées dans des actions de réplication de niveau projet sont inaccessibles à l'aide des opérations basées sur un projet suivantes. Les actions de niveau projet peuvent disposer de plusieurs planifications d'instantanés automatiques dans plusieurs partages. Cette interface ne permet pas d'identifier toutes les combinaisons de manière définitive.
Table 63  Configuration d'instantanés automatiques de réplication d'un projet, système de fichiers ou LUN
Demande
Ajout à l'URI du projet, système de fichiers ou LUN répertorié ci-dessus
Description
GET
/replication/actions/ra_id/autosnaps
Récupération des configurations d'instantanés automatiques de l'action de réplication sélectionnée d'un projet ou partage
GET
/replication/actions/ra_id/autosnaps/autosnaps_id
Obtention de la configuration d'instantané automatique de l'action de réplication spécifiée d'un projet ou partage
POST
/replication/actions/ra_id/autosnaps
Création d'un nouvel l'objet d'instantané automatique pour une action de réplication de niveau projet ou partage
PUT
/replication/actions/ra_id/autosnaps
Modifiez la stratégie de conservation des instantanés automatiques cibles de l'action de réplication spécifiée pour un projet ou un partage.
PUT
/replication/actions/ra_id/autosnaps/autosnaps_id
Modification de l'objet d'instantané automatique de l'action de réplication spécifiée
DELETE
/replication/actions/ra_id/autosnaps/autosnaps_id
Suppression de l'objet d'instantané automatique de l'action de réplication spécifiée

Le tableau suivant répertorie la commande de base permettant d'accéder aux statistiques des actions de réplication.

  • Les URI des opérations basées sur un projet commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project
  • Les URI des opérations basées sur un système de fichiers commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem
  • Les URI des opérations basées sur un LUN commencent par :

    /api/storage/v{1|2}/pools/pool/projects/project/luns/lun

Ajoutez les commandes de base suivantes à l'URI du contexte souhaité répertorié ci-dessus pour accéder aux statistiques des actions de réplication.

Table 64  Accès aux statistiques des actions de réplication
Demande
Ajout à l'URI du projet, système de fichiers ou LUN répertorié ci-dessus
Description
GET
/replication/actions/ra_id/stats
Récupération des statistiques en lecture seule de l'action de réplication sélectionnée

Liste des actions de réplication

Obtient une liste de toutes les actions de réplication disponibles.

Exemple de demande :

GET /api/storage/v2/replication/actions HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Accept: application/json

Exemple de résultat :

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
    "actions": [{
        "href": ""
        ...
    }, {
        "href": "",
        ...
    }]
}

Obtention d'une action de réplication

La commande d'obtention du statut de l'action de réplication renvoie le statut d'une action de réplication unique fourni par son ID.

Exemple de demande :

GET /api/storage/v2/replication/actions/1438ed7f-aad3-c631-d869-9e85cd7f15b4 HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Accept: application/json

Exemple de résultat :

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
    "action": {
        "average_throughput": 0.0,
        "bytes_sent": 0.0,
        "collection": "local",
        "compression": true,
        "continuous": false,
        "enabled": true,
        "estimated_size": 0.0,
        "estimated_time_left": 0.0,
        "href": "/api/storage/v2/replication/actions",
        "id": "8373d331-de60-e590-90e8-9ad69fcb4aec",
        "include_clone_origin_as_data": false,
        "include_snaps": true,
        "last_sync": "20130916T21:36:50",
        "last_try": "20130916T21:36:50",
        "max_bandwidth": 0,
        "pool": "p1",
        "project": "proj-01",
        "retain_user_snaps_on_target": false,
        "share": "fs1",
        "state": "sending",
        "target": "38094753-6c90-49ed-aa92-995a296d432a",
        "use_ssl": true
    }
}

Exemple de demande :

La réponse à l'action de réplication suivante présente un exemple d'objectif de point de récupération (RPO) et les alertes et avertissement associés relatifs à la latence de réplication.

GET /api/storage/v2/replication/actions HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Content-Type:application/json

Exemple de résultat :

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
    "action": {"id": "12d981c3-b098-c65a-e1e9-a6b8263a0f6a",
        "target_id": "4fd305ac-4af5-c34a-87c3-88203207305b",
        ...
        "replica_lag": "42:25:31",
        "recovery_point_objective": 0,
        "replica_lag_warning_alert": 0,
        "replica_lag_error_alert": 0,
        "replica_lag_over_warning_limit": false,
        "replica_lag_over_error_limit": false,
        "project": "default"
    }
}

Création d'une action de réplication

Crée une nouvelle action de réplication.

Propriétés de création :

Initial values:
                          target = cleo
                         enabled = true
                      continuous = false
                   include_snaps = true
     retain_user_snaps_on_target = false
                           dedup = true
    include_clone_origin_as_data = false
                   max_bandwidth = unlimited
                      bytes_sent = 0
                  estimated_size = 0
             estimated_time_left = 0
              average_throughput = 0
                         use_ssl = true
                     compression = on

Exemple de demande :

POST /api/storage/v2/replication/actions HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=
Content-Type: application/json
Content-Length: 121
Accept: application/json

{
    "pool": "p1",
    "project": "proj-01",
    "share": "fs1",
    "target_pool": "pool1",
    "target": "38094753-6c90-49ed-aa92-995a296d432a"
}

Exemple de résultat :

HTTP/1.1 201 Created
Content-Length: 506
Content-Type: application/json
Location: /api/storage/v2/replication/action/8373d331-de60-e590-90e8-9ad69fcb4aec
X-Zfssa-Replication-Api: 1.0

{
    "action": {
        "project": "blue1",
        "target": "38094753-6c90-49ed-aa92-995a296d432a",
        "bytes_sent": 0.0,
        "compression": true,
        "continuous": false,
        "enabled": true,
        "dedup": false,
        "max_bandwidth": 0,
        "collection": "local",
        "estimated_size": 0.0,
        "state": "idle",
        "href": "/api/storage/v2/replication/pools/p1/projects/blah1/shares/fs1/
                  actions/8373d331-de60-e590-90e8-9ad69fcb4aec",
        "average_throughput": 0.0,
        "use_ssl": true,
        "estimated_time_left": 0.0,
        "retain_user_snaps_on_target": false,
        "share": "fs1",
        "id": "8373d331-de60-e590-90e8-9ad69fcb4aec",
        "pool": "p1",
        "include_clone_origin_as_data": false,
        "include_snaps": true
    }
}

Crée une planification pour une action de réplication.

Exemple de demande :

POST /api/storage/v2/replication/actions/b77bd8cd-17ed-69da-9e4b-aebe3cc63755/schedules HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=
Accept: */*
Content-Type:application/json
Content-Length: 65

{"frequency":"month","day":"5th", "hour":"auto", "minute":"auto"}

Exemple de résultat :

HTTP/1.1 201 Created
Date: Thu, 12 Jan 2017 17:35:48 GMT
Server: TwistedWeb/192.0.2
Content-Length: 0
X-Zfssa-Storage-Api: 1.1
Content-Type: application/json; charset=utf-8
X-Zfssa-Api-Version: 1.0
X-Zfssa-Version: user/generic@2016.12.08,1-0

Modification d'une action de réplication

Modifie une action de réplication existante.

Exemple de demande :

PUT /api/storage/v2/replication/actions/c141d88d-ffd2-6730-d489-b71905f340cc HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=
Content-Type: application/json

{"use_ssl": false}

Exemple de résultat :

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 620

{
    "action": {
        "target_id": "407642ae-91b5-681c-de5e-afcd5cbf2974",
        "compression": true,
        "continuous": false,
        "enabled": true,
        "max_bandwidth": 0,
        "dedup": false,
        "retain_user_snaps_on_target": false,
        "use_ssl": false,
        "id": "c141d88d-ffd2-6730-d489-b71905f340cc",
        "include_clone_origin_as_data": false,
        "include_snaps": true
    }
}

Exemple de demande :

PUT /api/storage/v2/replication/actions/action_id -d '{"recovery_point_objective": 60}HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=
Content-Type: application/json

Exemple de résultat :

X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 620

{
    "action": {
        "state_description": "Idle (no update in progress)",
        "recovery_point_objective": 60,
        "replica_lag_over_warning_limit": false,
        "bytes_sent": "0",
        "last_try": "Mon Nov 21 2016 23:25:59 GMT+0000 (UTC)",
        "max_bandwidth": 0,
        "estimated_size": "0",
        "href": "/api/storage/v2/replication/actions/12d981c3-b098-c65a-e1e9-a6b8263a0f6a",
        "estimated_time_left": 0,
        "use_ssl": true,
        "id": "12d981c3-b098-c65a-e1e9-a6b8263a0f6a",
        "stats": {"total_logical_bytes": 40656,
        "last_dd_table_build": 9169029,
        "total_after_dedup": 18476,
        "last_try": "Mon Nov 21 2016 23:25:59 GMT+0000 (UTC)",
        "dd_total_updates": 1,
        "href": "/api/storage/v2/replication/actions/12d981c3-b098-c65a-e1e9-a6b8263a0f6a/stats", 
        "dd_total_duration": 47149245470,
        "last_logical_bytes": 40656,
        "dd_total_table_mem": 2097152,
        "last_result": "success",
        "last_after_dedup": 18476,
        "last_duration": 47149245470,
        {"dd_total_logical_bytes": 40656,
        "total_updates": 1,
        "total_duration": 47149245470,
        "replica_data_timestamp": "Mon Nov 21 2016 23:25:12 GMT+0000 (UTC)",
        "total_to_network": 9623,
        "dd_total_table_build": 9169029,
        "dd_total_phys_bytes": 16800,
        "last_to_network": 9623,
        "total_phys_bytes": 16800,
        "last_phys_bytes": 16800,
        "last_sync": "Mon Nov 21 2016 23:25:59 GMT+0000 (UTC)",
        "last_dd_table_mem": 2097152,
        "dd_total_after_dedup": 18476,
        "dd_total_to_network": 9623},
        "compression": "on",
        "dedup": true,
        "replica_lag_warning_alert": 0,
        "last_result": "success",
        "include_clone_origin_as_data": false,
        "state": "idle",
        "offline": false,
        "export_path": "",
        "export_pending": false,
        "autosnaps": {"autosnaps_retention_policies":
        "synchronized",
        "href": "/api/storage/v2/replication/actions/12d981c3-b098-c65a-e1e9-a6b8263a0f6a/autosnaps"},
        "replica_data_timestamp": "Mon Nov 21 2016 23:25:12 GMT+0000 (UTC)",
        "continuous": false,
        "target_id": "4fd305ac-4af5-c34a-87c3-88203207305b",
        {"average_throughput": "0B/s",
        "next_update": "Sync now",
        "pool": "p1",
        "replica_lag_over_error_limit": false,
        "target": "pool1",
        "replica_lag": "42:28:24",
        "retain_user_snaps_on_target": false,
        ...
    }
}

Surveillance de la progression d'une action de réplication

La commande d'obtention du statut de l'action de réplication renvoie le statut d'une action de réplication unique fourni par son ID. Examinez les propriétés state et state_description pour déterminer la progression de la réplication.

Valeurs de la propriété state :

  • sending

  • idle

Valeurs de la propriété state_description :

  • Connecting to replication target

  • Receiving checkpoint from target

  • Estimating size of update

  • Génération des tables de suppression des doublons

    Cette valeur de propriété concerne seulement les flux de réplication dont les doublons ont été supprimés.

Exemple de demande :

GET /api/storage/v2/replication/actions/1438ed7f-aad3-c631-d869-9e85cd7f15b4 HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=
Accept: application/json

Exemple de résultat :

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
    "action": {
       "id": "1438ed7f-aad3-c631-d869-9e85cd7f15b4",
       "target_id": "4fd3483e-b1f5-4bdc-9be3-b3a4becd0c42",
       "target": "cleo",
       "pool": "p0",
       "replication_of": "testproj",
       "enabled": true,
       "continuous": false,
       "include_snaps": true,
       "retain_user_snaps_on_target": false,
       "dedup": true,
       "include_clone_origin_as_data": false,
       "max_bandwidth": -1,
       "bytes_sent": 0,
       "estimated_size": 0,
       "estimated_time_left": 0,
       "average_throughput": 0,
       "use_ssl": true,
       "compression": "on",
       "export_path": "",
       "state": "sending",
       "state_description": "Receiving checkpoint from target",
       "export_pending": false,
       "offline": false,
       "next_update": "Sync now",
       "replica_data_timestamp": "Thu Apr 28 2016 22:38:03 GMT+0000 (UTC)",
       "last_sync": "<unknown>",
       "last_try": "<unknown>",
       "last_result": "<unknown>",
       "replica_lag": "00:00:18",
       "recovery_point_objective": 0,
       "replica_lag_warning_alert": 0,
       "replica_lag_error_alert": 0,
       "replica_lag_over_warning_limit": false,
       "replica_lag_over_error_limit": false,
       "project": "testproj"
    }
}

Annulation d'une mise à jour

Annule une mise à jour de réplication en cours.

Exemple de demande :

PUT /api/storage/v2/replication/actions/c141d88d-ffd2-6730-d489-b71905f340cc/cancelupdate HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=

Exemple de résultat :

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

Envoi d'une mise à jour

Planifie le démarrage au plus tôt d'une mise à jour de réplication.

Exemple de demande :

PUT /api/storage/v2/replication/actions/c141d88d-ffd2-6730-d489-b71905f340cc/sendupdate HTTP/1.1
Authorization: Basic Tm8gcGVla2luZyE=

Exemple de résultat :

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

Suppression d'une action de réplication

Supprime une action de réplication existante.

Exemple de demande :

DELETE /api/storage/v2/replication/actions/e7e688b1-ff07-474f-d5cd-cac08293506e HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic Tm8gcGVla2luZyE=

Une suppression réussie renvoie le code HTTP 204 (No Content).

Exemple de résultat :

HTTP/1.1 204 No-Content
X-Zfssa-Replication-Api: 1.0