Toutes les opérations liées aux instantanés sont configurées pour porter sur un pool de stockage ou un projet donné. Les opérations liées aux instantanés peuvent également être définies pour porter sur le niveau du système de fichiers ou du LUN.
L'URI pour toutes les opérations liées aux instantanés et basées sur le projet commence ainsi : /api/storage/v{1|2}/pools/pool/projects/project
L'URI pour toutes les opérations liées aux instantanés et basées sur le système de fichiers commence ainsi : /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem
L'URI pour toutes les opérations liées aux instantanés et basées sur le LUN commence ainsi : /api/storage/v{1|2}/pools/pool/projects/project/luns/lun
Pour sauvegarder un instantané sur le cloud ou restaurer une sauvegarde instantanée sur l'appareil comme nouveau partage, reportez-vous à Service cloud de l'API RESTful.
|
Répertorie les instantanés disponibles sur un appareil. Selon l'URI de demande, cette liste contient les instantanés de projet, de système de fichiers ou de LUN.
|
Exemple de demande :
GET /api/storage/v1/pools/p1/projects/default/snapshots Accept: application/json
Exemple de résultat :
HTTP/1.1 200 OK Content-Type: application/json { "snapshots": [{ "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5", "display_name": "snap-001", "display_description": "Daily backup", "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", "status": "available", "size": 30, "created_at": "2012-02-29T03:50:07Z" }, { "id": "e479997c-650b-40a4-9dfe-77655818b0d2", "display_name": "snap-002", "display_description": "Weekly backup", "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358", "status": "available", "size": 25, "created_at": "2012-03-19T01:52:47Z" }] }
Affiche toutes les informations sur un instantané unique. En cas de succès, la commande renvoie le code de statut HTTP 200 (OK).
Exemple de demande :
GET /api/storage/v1/pools/p1/projects/default/snapshots/snap-001 Accept: application/json
Exemple de résultat :
HTTP/1.1 200 OK Content-Type: application/json { "snapshot": { "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5", "display_name": "snap-001", "display_description": "Daily backup", "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", "status": "available", "size": 30, "created_at": "2012-02-29T03:50:07Z" } }
La commande de création d'instantané crée des instantanés pour les projets, les systèmes de fichiers ou les LUN.
Création d'un instantané de projet : POST /pools/pool/projects/project/snapshots
Création d'un instantané de système de fichiers : POST /pools/pool/projects/project/filesystems/share/snapshots
Création d'un instantané de volume : POST /pools/pool/projects/project/luns/lun/snapshots
Exemple de demande :
POST /api/storage/v1/pools/p1/projects/default/snapshots Content-Type: application/json {"name": "initial-backup"}
Exemple de résultat :
HTTP/1.1 201 Created Content-Type: application/json Location: /pools/p1/projects/default/ snapshot/initial-backup { "snapshot": { "name": "initial-backup", "numclones": 0, "creation": "20130610T21:00:49", "collection": "local", "project": "default", "canonical_name": "zfs-storage-1/local/default@initial-backup", "usage": { "unique": 0.0, "loading": false, "data": 145408.0 }, "type": "snapshot", "id": "a26abd24-e22b-62b2-0000-000000000000", "pool": "p1" } }
Renomme un instantané existant.
URI de demande : instantané, nom de l'instantané actuel.
Corps de demande : objet JSON avec le paramètre de nom contenant le nouveau nom de l'instantané
Exemple de demande :
PUT /api/storage/v1/pools/p1/projects/default/snapshots/initial-snapshot Content-Type: application/json Accept: application/json {"name": "old-snapshot"}
Exemple de résultat :
HTTP/1.1 202 Accepted Content-Type: application/json Location: /pools/p1/projects/default/snapshot/initial-backup
Crée un nouveau système de fichiers ou LUN à partir d'un instantané existant.
Les paramètres URI suivants sont utilisés :
Nom du pool source
Nom du projet source
Nom du partage source pour l'instantané de système de fichiers
Nom du partage source pour l'instantané de LUN
Nom de l'instantané source
Clonage d'un système de fichiers :
PUT /pools/pool/projects/project/filesystems/share/snapshots/snapshot/clone
Clonage d'un volume :
PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/clone
Le corps de la demande contient un objet JSON avec les propriétés suivantes.
|
Exemple de demande :
PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs01/ snapshots/snap01/clone {"project":"rest", "share":"snap01clone01", "compression": "gzip-9"}
Exemple de résultat :
HTTP/1.1 201 Created Content-Length: 2035 X-Zfssa-Storage-Api: 1.0 Location: /api/storage/v1/pools/p1/projects/rest/filesystem/snap01clone01 Content-Type: application/json; charset=utf-8 { "filesystem": { "origin": { "project": "default", "share": "fs01", "snapshot": "snap01", "pool": "p1", "collection": "local" }, "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone01", "mountpoint": "/export/snap01clone01", "compression": "gzip-9", "source": { "compression": "local", ... }, ... "canonical_name": "zfs-storage-1/local/rest/snap01clone01" } }
La commande de restauration d'instantanés ramène le système de fichiers ou LUN source à son état au moment de la prise de l'instantané. Une demande traitée avec succès renvoie un code de statut HTTP 202 (Accepted) ainsi que les propriétés de l'instantané au format JSON.
Les paramètres URI suivants sont utilisés :
Nom du pool source
Nom du projet source
Nom du système de fichiers source pour l'instantané de système de fichiers
Nom du LUN source pour l'instantané de LUN
Nom de l'instantané source
Restauration d'un instantané de système de fichiers :
PUT /pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/rollback
Restauration d'un instantané de LUN :
PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/rollback
Exemple de demande :
PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs-01 /snapshots/initial-backup/rollback
Exemple de résultat :
HTTP/1.1 202 Accepted Location: /pools/p1/projects/default/filesystems/fs-01/snapshot/fs-01-initial-clone Content-Type: application/json { "snapshot": { "name": "fs-01-initial-clone", "numclones": 0, "creation": "20130610T21:00:49", "filesystem": "fs-01", "collection": "local", "project": "default", "canonical_name": "zfs-storage-1/local/default/ fs-01@fs-01-initial-clone", "usage": { "unique": 0.0, "loading": false, "data": 31744.0 }, "type": "snapshot", "id": "5c9bda07-21c1-2238-0000-000000000000", "pool": "p1" } }
La commande d'instantané DELETE supprime un instantané de projet, de système de fichiers ou de LUN du système.
Les paramètres URI suivants sont utilisés :
Nom du pool source
Nom du projet source
Nom du système de fichiers source
Nom de LUN
Nom de l'instantané source
Suppression d'un instantané de projet :
DELETE /api/storage/v1/pools/pool/projects/project/snapshots/snapshot
Suppression d'un instantané de système de fichiers :
DELETE /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
Suppression d'un LUN de système de fichiers :
DELETE /api/storage/v1/pools/pool/projects/projectsnapshot
Si l'instantané dispose d'un NDMP, ajoutez ?confirm=true à la commande DELETE. Toutefois, remarquez que cela peut affecter les opérations NDMP. Pour plus d'informations, reportez-vous à la section Configuration NDMP du manuel Guide d’administration d’Oracle® ZFS Storage Appliance, version OS8.8.x.
Exemple de demande :
DELETE /pools/p1/projects/default/filesystems/fs-01/snapshots/initial-backup?confirm=true
Exemple de résultat si ?confirm=true n'est pas ajouté :
Si ?confirm=true n'est pas ajouté lorsque l'instantané dispose d'un NDMP, la commande échoue avec la sortie suivante (les lignes sont artificiellement scindées pour une meilleure lisibilité) :
HTTP/1.1 409 Conflict {"fault": {"message": "request requires confirm=true to complete (confirmation needed for scripted command (scripted commands must be prefixed with \"confirm\" to automatically confirm or \"deny\" to automatically deny) (encountered while attempting to run command \"confirm destroy snap\"))", "code": 409, "name": "ERR_CONFIRM_REQUIRED"}}
Répertorie les dépendants d'un système de fichiers ou volume. Les paramètres URI suivants sont utilisés :
Nom du pool de stockage système
Nom de projet
Nom de système de fichiers
Nom de LUN
Nom de l'instantané
Liste des dépendants du système de fichiers :
GET /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/dependents
Liste des dépendants du volume :
GET /api/storage/v1/pools/pool/projects/project/lun/lun/snapshots/snapshot/dependents
Exemple de demande :
GET /api/storage/v1/pools/p1/projects/default/filesystems/fs01/snapshots/snap01/dependents Accept: application/json
Exemple de résultat :
HTTP/1.1 200 OK X-Zfssa-Storage-Api: 1.0 Content-Type: application/json; charset=utf-8 X-Zfssa-Api-Version: 1.0 { "dependents": [ { "project": "rest", "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone01", "share": "snap01clone01" }, { "project": "rest", "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone02", "share": "snap01clone02" }, { "project": "rest", "href": "/api/storage/v1/pools/p1/projects/rest/filesystems/snap01clone03", "share": "snap01clone03" } ] }