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/v1/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/v1/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/v1/pools/{pool}/projects/{project}/luns/{lun}
|
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/gold/projects/default/snapshots Accept: application/json
Exemple de réponse :
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/gold/projects/default/snapshots/snap-001 Accept: application/json
Exemple de réponse :
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/gold/projects/default/snapshots Content-Type: application/json {"name": "initial-backup"}
Exemple de réponse :
HTTP/1.1 201 Created Content-Type: application/json Location: /pools/gold/projects/default/ snapshot/initial-backup { "snapshot": { "name": "initial-backup", "numclones": 0, "creation": "20130610T21:00:49", "collection": "local", "project": "default", "canonical_name": "gold/local/default@initial-backup", "usage": { "unique": 0.0, "loading": false, "data": 145408.0 }, "type": "snapshot", "id": "a26abd24-e22b-62b2-0000-000000000000", "pool": "gold" } }
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/gold/projects/default/snapshots/initial-snapshot Content-Type: application/json Accept: application/json {“name”:”old-snapshot”}
Exemple de réponse :
HTTP/1.1 202 Accepted Content-Type: application/json Location: /pools/gold/projects/default/snapshot/initial-backup
Crée un nouveau système de fichiers ou LUN à partir d'un instantané existant.
Système de fichiers clone d'URI de demande :
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/clone
Volume clone :
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/gold/projects/default/filesystems/fs01/ snapshots/snap01/clone {"project":"rest", "share":"snap01clone01", "compression": "gzip-9"}
Exemple de réponse :
HTTP/1.1 201 Created Content-Length: 2035 X-Zfssa-Storage-Api: 1.0 Location: /api/storage/v1/pools/gold/projects/rest/filesystem/snap01clone01 Content-Type: application/json; charset=utf-8 { "filesystem": { "origin": { "project": "default", "share": "fs01", "snapshot": "snap01", "pool": "gold", "collection": "local" }, "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone01", "mountpoint": "/export/snap01clone01", "compression": "gzip-9", "source": { "compression": "local", ... }, ... "canonical_name": "gold/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.
Restauration d'un instantané de système de fichiers :
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/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/gold/projects/default/filesystems/fs-01 /snapshots/initial-backup/rollback
Exemple de réponse :
HTTP/1.1 202 Accepted Location: /pools/gold/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": "gold/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": "gold" } }
La commande d'instantané DELETE supprime un instantané de projet, de système de fichiers ou de LUN du système.
|
|
Si l'instantané dispose d'un NDMP, ?confirm=true doit être ajouté à 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 des systèmes Oracle ZFS Storage Appliance, version OS8.6.x.
Exemple
DELETE /pools/gold/projects/default/filesystems/fs-01/snapshots/initial-backup?confirm=true
Si ?confirm=true n'est pas ajouté lorsqu'un NDMP existe sur un instantané, la commande échoue avec la sortie suivante :
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.
|
|
Exemple de demande :
GET /api/storage/v1/pools/gold/projects/default/filesystems/fs01/snapshots/snap01/dependents Accept: application/json
Exemple de réponse :
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/gold/projects/rest/filesystems/snap01clone01", "share": "snap01clone01" }, { "project": "rest", "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone02", "share": "snap01clone02" }, { "project": "rest", "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone03", "share": "snap01clone03" } ] }