Go to main content
Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.7.0

Quitter la vue de l'impression

Mis à jour : Mars 2017
 
 

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 97  Interface d'actions de base
Demande
/api/storage/v1
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 98  Accès aux planifications d'action
Demande
/api/storage/v1
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 99  Accès à la configuration des instantanés automatiques de réplication
Demande
/api/storage/v1
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 de réplication.

Table 100  Accès aux statistiques des actions de réplication
Demande
/api/storage/v1
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.

  • L'URI de toutes les opérations basées sur un projet commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>

  • L'URI de toutes les opérations basées sur un système de fichiers commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>/filesystems /<filesystem>

  • L'URI de toutes les opérations basées sur un LUN commencent ainsi : /api/storage/v1/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 101  Projet/Système de fichiers/Interface d'actions de base de 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 permettant de gérer les planifications d'action de réplication.

  • L'URI de toutes les opérations basées sur un projet commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>

  • L'URI de toutes les opérations basées sur un système de fichiers commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>/filesystems /<filesystem>

  • L'URI de toutes les opérations basées sur un LUN commencent ainsi : /api/storage/v1/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 102  Projet/Système de fichiers/Planifications d'actions de 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 permettant de gérer les instantanés automatiques de la réplication.

  • L'URI de toutes les opérations basées sur un projet commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>

  • L'URI de toutes les opérations basées sur un système de fichiers commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>/filesystems /<filesystem>

  • L'URI de toutes les opérations basées sur un LUN commencent ainsi : /api/storage/v1/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.


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 103  Projet/Système de fichiers/Configuration d'instantanés automatiques de réplication de 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 permettant d'obtenir les statistiques de réplication.

  • L'URI de toutes les opérations basées sur un projet commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>

  • L'URI de toutes les opérations basées sur un système de fichiers commencent ainsi : /api/storage/v1/pools/<pool>/projects /<project>/filesystems /<filesystem>

  • L'URI de toutes les opérations basées sur un LUN commencent ainsi : /api/storage/v1/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 104  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

List Replication Actions

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

Exemple de demande :

GET /api/storage/v1/replication/actions HTTP/1.1
Authorization: Basic ab6rt4psMWE=
Accept: application/json

Exemple de réponse :

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

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

Get Replication Action

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/v1/replication/actions/1438ed7f-aad3-c631-d869-9e85cd7f15b4 HTTP/1.1
Authorization: Basic ab6rt4psMWE=
Accept: application/json

Exemple de réponse :

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/v1/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": "gold",
        "project": "blah1",
        "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/v1/replication/actions HTTP/1.1
Authorization: Basic ab6rt4psMWE=
Content-Type:application/json

Exemple de réponse :

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"}]}

Create Replication Action

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/v1/replication/actions HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic ab6rt4psMWE=
Content-Type: application/json
Content-Length: 121
Accept: application/json

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

Exemple de réponse :

HTTP/1.1 201 Created
Content-Length: 506
Content-Type: application/json
Location: /api/storage/v1/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/v1/replication/pools/gold/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": "gold",
        "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/v1/replication/actions/b77bd8cd-17ed-69da-9e4b-aebe3cc63755/schedules HTTP/1.1
Host: emperor:215
Authorization: Basic cm9vdDpsMWE=
Accept: */*
Content-Type:application/json
Content-Length: 65

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

Exemple de réponse :

HTTP/1.1 201 Created
Date: Thu, 12 Jan 2017 17:35:48 GMT
Server: TwistedWeb/10.1.0
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: ak2013r/generic@2016.12.08,1-0

Modify Replication Action

Modifie une action de réplication existante.

Exemple de demande :

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

{"use_ssl": false}

Exemple de réponse :

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/v1/replication/actions/<action_id> -d '{"recovery_point_objective": 60}HTTP/1.1
Host: zfs-storage.example.com:215
Authorization: Basic ab6rt4psMWE=
Content-Type: application/json'

Exemple de réponse :

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/v1/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/v1/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/v1/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": "G",
        "replica_lag_over_error_limit": false,
        "target": "goby",
        "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

  • Building deduplication tables (seulement pour les flux de réplication dont les doublons ont été supprimés)

Exemple de demande :

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

Exemple de réponse :

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"
    }
}

Cancel Update

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

Exemple de demande :

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

Exemple de réponse :

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

Send Update

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

Exemple de demande :

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

Exemple de réponse :

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

Delete a Replication Action

Supprime une action de réplication existante.

Exemple de demande :

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

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

Exemple de réponse :

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