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.
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.
|
Le tableau suivant répertorie les commandes permettant de gérer les planifications d'action de réplication.
|
Le tableau suivant répertorie les commandes permettant de gérer les instantanés automatiques de la réplication.
|
Le tableau suivant répertorie la commande permettant d'obtenir les statistiques de réplication.
|
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.
|
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.
|
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.
|
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.
|
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": "", ... }] }
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"}]}
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
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, .......
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" } }
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
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
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