Les opérations du service cloud permettent de gérer des sauvegardes d'instantanés d'appareil dans Oracle Cloud Infrastructure Object Storage. Vous pouvez énumérer les cibles et les sauvegardes dans Oracle Cloud Infrastructure Object Storage, retirer une cible, supprimer une sauvegarde, en restaurer une sous la forme d'un nouveau partage d'appareil, et annuler ou redémarrer un travail de service cloud.
Pour créer une sauvegarde, reportez-vous à Création d'une sauvegarde instantanée dans Opérations de sauvegarde instantanée. Il peut s'agir de sauvegardes complètes ou incrémentielles d'instantanés de partage. Pour créer un instantané, reportez-vous à Opérations liées aux instantanés et au clonage.
Les paramètres suivants sont utilisés dans le tableau des opérations du service cloud :
Format dans lequel la sauvegarde a été enregistrée dans Oracle Cloud Infrastructure Object Storage.
La valeur de format est zfs ou tar. Si format n'est pas spécifié pour la création d'une sauvegarde instantanée, zfs est la valeur par défaut. Le format zfs prend en charge les instantanés de systèmes de fichiers et de LUN; le format tar, uniquement les instantanés de systèmes de fichiers. Pour plus d'informations sur les formats zfs et tar, reportez-vous à la section Création d’une sauvegarde cloud (CLI) du manuel Guide d’administration d’Oracle® ZFS Storage Appliance, version OS8.8.x.
Identificateur de la copie d'un instantané d'appareil enregistrée dans Oracle Cloud Infrastructure Object Storage. La valeur de backup-id est celle de la propriété id lorsque vous énumérez les sauvegardes, comme indiqué dans Liste des sauvegardes cloud.
Pour une sauvegarde instantanée complète, la valeur de backup-id est pool_id/snapshot_id, comme indiqué dans l'exemple suivant :
3e035b7e546e0d02/1cbfdb5ff2259b76
Pour une sauvegarde instantanée incrémentielle, la valeur de backup-id est pool_id/child_snapshot_id-parent_snapshot_id, comme indiqué dans l'exemple suivant :
6913a5703bee98dc/46be95ced54e99d9-667f3eb88fd209e1
Emplacement d'Oracle Cloud Infrastructure Object Storage où une sauvegarde est enregistrée. Une sauvegarde donnée peut être enregistrée dans plusieurs cibles. Le même ID de sauvegarde backup-id peut apparaître dans différents emplacements target-id.
La valeur de target-id est celle de la propriété target lorsque vous énumérez les sauvegardes.
Identificateur du travail en cours d'exécution. La valeur de job-id est celle de la propriété id lorsque vous énumérez les travaux, comme indiqué dans Liste des travaux.
|
Pour activer le service cloud, définissez la propriété status sur enable, comme indiqué dans l'exemple suivant.
Exemple de demande :
PUT /api/service/v2/services/cloud HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */* Content-Type: application/json Content-Length: 22 { "<status>": "enable" }
Utilisez la demande suivante pour afficher le fichier journal du service cloud :
GET /api/log/v1/logs/appliance-kit-cloud:default HTTP/1.1
Exemple de demande :
GET /api/service/v2/services/cloud HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Exemple de résultat :
HTTP/1.1 200 OK Date: Wed, 24 Jul 2019 20:30:59 GMT Content-Length: 843 X-Zfssa-Service-Api: 2.0 X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8 { "service": { "href": "/api/service/v2/services/cloud", "<status>": "online", "tls_version": [ "TLSv1.1", "TLSv1.2" ], "ciphers": [ "ECDHE-RSA-AES128-GCM-SHA256", "ECDHE-RSA-AES256-GCM-SHA384", "DHE-RSA-AES128-GCM-SHA256", "DHE-RSA-AES256-GCM-SHA384", "AES128-SHA", "AES256-SHA", "DES-CBC3-SHA" ], "targets": { "href": "/api/service/v2/services/cloud/targets", "entries": 2 }, "backups": { "href": "/api/service/v2/services/cloud/backups", "entries": 2548 }, "jobs": { "href": "/api/service/v2/services/cloud/jobs", "entries": 0 } } }
Exemple de demande :
PUT /api/service/v2/services/cloud HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */* Content-Type: application/json Content-Length: 48 { "tls_version": [ "TLSv1.0","TLSv1.1","TLSv1.2" ] }
L'exemple suivant répertorie toutes les listes.
Exemple de demande :
GET /api/service/v2/services/cloud/targets HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Exemple de résultat :
HTTP/1.1 200 OK Date: Wed, 24 Jul 2019 21:06:18 GMT Content-Length: 1086 X-Zfssa-Service-Api: 2.0 X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8 { "targets": [{ "bucket": "pl-test", "href": "/api/service/v2/services/cloud/targets/target-id1", "id": "target-id1", "key": true, "location": "https://objectstorage.us-ashburn-1.oraclecloud.com", "name": "oci-ashburn", "online": true, "proxy_host": "", "proxy_on": false, "proxy_password": false, "proxy_user": "", "tenancy": "ocid1.tenancy.oc1..tenancy-id", "user": "ocid1.user.oc1..user-id" },{ "bucket": "pl-test2", "href": "/api/service/v2/services/cloud/targets/target-id2", "id": "target-id2", "key": true, "location": "https://objectstorage.us-phoenix-1.oraclecloud.com", "name": "oci-phoenix", "online": true, "proxy_host": "www-proxy.example.com:80", "proxy_on": true, "proxy_password": false, "proxy_user": "", "tenancy": "ocid1.tenancy.oc1..tenancy-id", "user": "ocid1.user.oc1..user-id" }] }
L'exemple suivant permet d'obtenir la liste spécifiée :
GET /api/service/v2/services/cloud/targets/target-id HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Les paramètres suivants sont requis pour créer une cible cloud.
|
L'exemple suivant crée une cible.
Exemple de demande :
POST /api/service/v2/services/cloud/targets HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= { "name": "oci4", "location": "https://objectstorage.us-phoenix-1.oraclecloud.com", "user": "ocid1.user.oc1..user-id", "bucket": "test-bucket3", "tenancy": "ocid1.tenancy.oc1..tenancy-id", "key": "key", "proxy_on": false, "readlimit": -1, "writelimit": -1 }
Exemple de résultat :
HTTP/1.1 201 Created Date: Wed, 24 Jul 2019 21:14:39 GMT Content-Length: 568 X-Zfssa-Service-Api: 2.0 Location: /api/service/v2/services/cloud/targets/target-id X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8 { "target": { "bucket": "test-bucket3", "href": "/api/service/v2/services/cloud/targets/target-id", "id": "target-id", "key": true, "location": "https://objectstorage.us-phoenix-1.oraclecloud.com", "name": "oci4", "proxy_on": false, "readlimit": -1, "state": "offline", "tenancy": "ocid1.tenancy.oc1..tenancy-id", "user": "ocid1.user.oc1..user-id", "writelimit": -1 } }
Le tableau suivant présente les propriétés modifiables d'une cible cloud.
|
Exemple de demande :
PUT /api/service/v2/services/cloud/targets/target-id HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= User-Agent: curl/7.54.0 Accept: */* Content-Type: application/json Content-Length: 19 { "proxy_on": true, "proxy_host": "www-proxy.example.com:80", "readlimit": 4194304, "writelimit": 5242880 }
Avant de supprimer une cible, effectuez les vérifications suivantes :
Vérifiez si une sauvegarde est en cours sur cette cible. Reportez-vous à Liste des travaux.
Déterminez si cette cible comporte des sauvegardes. Utilisez le filtre target, comme indiqué dans Liste des sauvegardes cloud pour énumérer les sauvegardes stockées sur cette cible.
L'exemple suivant supprime la cible cloud spécifiée du service.
Exemple de demande :
DELETE /api/service/v2/services/cloud/targets/target-id HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Exemple de résultat :
HTTP/1.1 204 No Content Date: Wed, 24 Jul 2019 21:20:27 GMT X-Content-Type-Options: nosniff X-Zfssa-Service-Api: 2.0 X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8
Utilisez la requête suivante pour énumérer toutes les sauvegardes effectuées dans n'importe quel format; les plus récentes apparaissant en premier. Pour obtenir des informations sur les sauvegardes en cours, reportez-vous à Liste des travaux.
Exemple de demande :
GET /api/service/v2/services/cloud/backups HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Exemple de résultat :
Dans cet exemple, la première sauvegarde indiquée est l'enfant de la seconde. La valeur de parent de la première sauvegarde est celle de dataset de la seconde (app-data-fullsnap), et la valeur parent de la seconde sauvegarde est nulle. Une sauvegarde enfant aura le même format que le parent. Dans cet exemple, les sauvegardes enfant et parent sont au format tar.
HTTP/1.1 200 OK Date: Wed, 22 Jan 2020 21:22:40 GMT X-Zfssa-Service-Api: 2.0 X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8 Transfer-Encoding: chunked { "backups": [{ "target": "target-id2", "parent": "app-data-fullsnap", "started": "2020-01-06T20:03:32Z", "completed": "2020-01-06T20:04:36Z", "id": "backup-id2", "source": "cloudsnap0", "href": "/api/service/v2/services/cloud/backups/tar/backup-id2/target-id2", "tier": "standard", "dataset": "p1/local/default/app-data@app-data-incsnap", "format": "tar", "size": 3224982536.0 },{ "target": "target-id1", "parent": "", "started": "2020-01-06T20:01:16Z", "completed": "2020-01-06T20:01:17Z", "id": "backup-id1", "source": "cloudsnap0", "href": "/api/service/v2/services/cloud/backups/tar/backup-id1/target-id1", "tier": "standard", "dataset": "p1/local/default/app-data@app-data-fullsnap", "format": "tar", "size": 2149988056.0 }] }
Utilisez la demande suivante pour obtenir la sauvegarde spécifiée.
GET /api/service/v2/services/cloud/backups/format/backup-id/target-id HTTP/1.1
Paramètres des requêtes d'énumération de sauvegardes cloud
Les paramètres suivants sont pris en charge pour filtrer la liste des sauvegardes cloud. Ils peuvent tous être utilisés dans la même requête. Utilisez une opération AND (&) entre les paramètres de requête, comme indiqué dans les exemples qui suivent le tableau.
|
L'exemple suivant énumère les sauvegardes les plus anciennes, en commençant par la sauvegarde portant le numéro d'index 2000. Si la valeur de la propriété entries de la section backups de la liste des propriétés du service cloud est 2865, l'exemple suivant présente 865 sauvegardes : sauvegardes 2000 à 2864.
GET /api/service/v2/services/cloud/backups?start=2000
L'exemple suivant n'obtient que la sauvegarde portant le numéro d'index 2000 :
GET /api/service/v2/services/cloud/backups?start=2000&limit=1
L'exemple suivant énumère les 500 sauvegardes les plus anciennes créées à ou après l'heure spécifiée :
GET /api/service/v2/services/cloud/backups?start=2019-07-12T00:00:00Z&limit=500
L'exemple suivant énumère les 500 sauvegardes les plus récentes créées à ou avant l'heure spécifiée :
GET /api/service/v2/services/cloud/backups?end=2019-07-12T00:00:00Z&limit=500
L'exemple suivant énumère toutes les sauvegardes créées à ou après l'heure de début start spécifiée, mais avant ou à l'heure de fin end indiquée :
GET /api/service/v2/services/cloud/backups?start=2019-07-11T00:00:00Z&end=2019-07-12T00:00:00Z
L'exemple suivant énumère les sauvegardes les plus récentes de tout ensemble de données contenant app-data dans son nom et au format de sauvegarde tar :
GET /api/service/v2/services/cloud/backups?dataset=app-data&format=tar
L'exemple suivant énumère les sauvegardes les plus récentes de tout ensemble de données contenant app-data dans son nom et sur la cible target-id :
GET /api/service/v2/services/cloud/backups?dataset=app-data&target=target-id
L'exemple suivant énumère les sauvegardes les plus récentes de tout ensemble de données contenant app-data dans son nom, sur la cible target-id et doté de la source cloudsnap0 :
GET /api/service/v2/services/cloud/backups?dataset=app-data&target=target-id&source=cloudsnap0
Avant de supprimer une sauvegarde cloud, effectuez les vérifications suivantes :
Vérifiez si une restauration de cette sauvegarde est en cours. Reportez-vous à Liste des travaux.
Déterminez si cette sauvegarde comporte des enfants. Vous ne pouvez pas supprimer de sauvegarde comportant des enfants. Ceux-ci ont une valeur parent identique à la valeur dataset de la sauvegarde que vous souhaitez supprimer. Reportez-vous à Liste des sauvegardes cloud.
L'exemple suivant soumet une demande de travail pour supprimer la sauvegarde spécifiée sur la cible indiquée d'Oracle Cloud Infrastructure Object Storage. Un appareil peut fonctionner à l'aide de n'importe quelle sauvegarde sur une cible quelconque accessible à l'appareil, même si cette sauvegarde a été créée sur un appareil différent.
Comparez cette opération à Suppression d'une sauvegarde instantanée, qui explique comment supprimer une sauvegarde instantanée de partage sur l'appareil.
Exemple de demande :
DELETE /api/service/v2/services/cloud/backups/format/backup-id/target-id HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Exemple de résultat :
{ "action": "job-id" }
Pour visualiser la progression de la suppression d'une sauvegarde cloud, utilisez Liste des travaux pour afficher le travail portant l'identificateur job-id ci-dessus.
Une sauvegarde cloud peut être restaurée en tant que partage nouvellement cloné sur n'importe quel appareil disposant d'un accès à cette cible cloud.
L'exemple suivant soumet une demande de travail pour restaurer la sauvegarde spécifiée. Spécifiez le pool et le projet où la sauvegarde doit être restaurée et le nom du nouveau partage. Pour visualiser la progression de la suppression de la restauration, utilisez Liste des travaux pour afficher le travail portant l'identificateur job-id renvoyé.
Si la propriété readlimit est définie pour la cible, le nombre d'octets par seconde lus depuis cette dernière ne dépasse pas la valeur readlimit. Reportez-vous à Création d'une cible.
Exemple de demande :
POST /api/service/v2/services/cloud/backups/format/backup-id/target-id/restore HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */* Content-Length: 55 { "pool":"p1", "project":"default", "share": "restore6" }
Exemple de résultat :
{ "action": "job-id" }
L'exemple énumère tous les travaux en cours et récemment exécutés, le plus récent apparaissant en premier.
Exemple de demande :
GET /api/service/v2/services/cloud/jobs HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Exemple de résultat :
Dans cet exemple, deux travaux de sauvegarde enregistrent deux sauvegardes différentes dans la même cible.
HTTP/1.1 200 OK Date: Wed, 22 Jan 2020 21:37:52 GMT Content-Length: 983 X-Zfssa-Service-Api: 2.0 X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8 { "jobs": [{ "href": "/api/service/v2/services/cloud/jobs/job-id2", "op": "backup", "target": "target-id", "targetName": "oci-ashburn", "created": "2020-02-06T16:52:42Z", "updated": "2020-02-06T16:52:48Z", "id": "job-id2", "status": "in-progress", "rate": 10002432, "transferred": 80019456, "estimated_size": 43088792088, "dataset": "p1/local/default/f-1", "backup": "backup-id2", "snapshot": "snap3", "format": "tar", "details": "uploading backup to zfs/backups/tar/backup-id2/000000001" },{ "href": "/api/service/v2/services/cloud/jobs/job-id1", "op": "backup", "target": "target-id", "targetName": "oci-ashburn", "created": "2020-02-06T16:52:28Z", "updated": "2020-02-06T16:52:48Z", "id": "job-id1", "status": "in-progress", "rate": 1942, "transferred": 3884, "estimated_size": 0, "dataset": "p1/local/default/f-1", "backup": "backup-id1", "snapshot": "snap2", "format": "zfs", "details": "uploading backup to zfs/backups/zfs/backup-id1/000000001" }] }
L'exemple suivant permet d'obtenir le travail spécifié :
GET /api/service/v2/services/cloud/jobs/job-id2 HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Paramètres des requêtes d'énumération des travaux de sauvegarde cloud
Les paramètres de requête start et limit sont pris en charge pour filtrer la liste des travaux de sauvegarde cloud.
La valeur du paramètre start représente l'index du travail. Les valeurs de cet index sont comprises entre 0 et la valeur de la propriété entries moins un de la section jobs de la demande présentée dans Liste des propriétés du service cloud.
La valeur du paramètre limit représente le nombre maximal de travaux à énumérer.
Ces paramètres peuvent être utilisés tous les deux dans la même requête. Utilisez une opération AND (&) entre les paramètres de requête, comme indiqué dans les exemples suivants.
L'exemple énumère les 100 travaux en cours les plus récents et récemment exécutés, le plus récent apparaissant en premier.
GET /api/service/v2/services/cloud/jobs?limit=100
L'exemple suivant n'obtient que le travail le plus ancien en cours ou récemment exécuté.
GET /api/service/v2/services/cloud/jobs?start=0&limit=1
L'exemple énumère tous les travaux en cours et récemment exécutés dont le numéro d'index est supérieur ou égal à 4, le travail le plus récent apparaissant en premier.
GET /api/service/v2/services/cloud/jobs?start=4
L'exemple suivant annule le travail du service cloud spécifié.
Exemple de demande :
PUT /api/service/v2/services/cloud/jobs/job-id/cancel HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= Accept: */*
Exemple de résultat :
HTTP/1.1 202 Accepted Date: Wed, 24 Jul 2019 21:50:29 GMT Content-Length: 0 X-Zfssa-Service-Api: 2.0 X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8
L'exemple suivant redémarre le travail du service cloud spécifié.
Exemple de demande :
PUT /api/service/v2/services/cloud/jobs/job-id/restart HTTP/1.1 Host: hostname:215 Authorization: Basic Tm8gcGVla2luZyE= User-Agent: curl/7.54.0 Accept: */*
Exemple de résultat :
HTTP/1.1 202 Accepted Date: Wed, 24 Jul 2019 21:51:08 GMT Content-Length: 0 X-Zfssa-Service-Api: 2.0 X-Zfssa-Api-Version: 2.0 Content-Type: application/json; charset=utf-8