Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version 2013.1.4.0

Quitter la vue de l'impression

Mis à jour : Avril 2015
 
 

Opérations liées aux instantanés et au clonage

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}

Table 12-24  Commandes d'instantané et de clonage
Demande
Chemin /api/storage/v1
Description
GET
/snapshots
Liste de tous les instantanés locaux
GET
/pools/<pool>/ts /<project>/snapshots
Liste de tous les instantanés du projet
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots
Liste de tous les instantanés du système de fichiers
GET
/pools/<pool>/projects /<project>/luns/<lun> /snapshots
Liste de tous les instantanés du LUN
GET
/pools/<pool>/projects /<project>/snapshots/<snapshot>
Obtention des détails des instantanés du projet
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots /<snapshot>
Obtention des détails des instantanés de systèmes de fichiers
GET
/pools/<pool>/projects /<project>/luns/<lun> /snapshots/<snapshot>
Obtention des détails des instantanés de LUN
POST
/pools/<pool>/ts /<project>/snapshots
Création d'un instantané de projet
POST
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots
Création d'un instantané de système de fichiers
POST
/pools/<pool>/projects /<project>/luns/<lun> /snapshots
Création d'un instantané de LUN
PUT
/pools/<pool>/projects /<project>/snapshots/<snapshot>
Modification d'un instantané de projet
PUT
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots /<snapshot>
Modification d'un instantané de système de fichiers
PUT
/pools/<pool>/projects /<project>/luns/<lun> /snapshots/<snapshot>
Modification d'un instantané de LUN
PUT
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots /<snapshot>/clone
Clonage d'un instantané de système de fichiers
PUT
/pools/<pool>/projects /<project>/luns/<lun> /snapshots/<snapshot>/clone
Clonage d'un instantané de LUN
PUT
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots /<snapshot>/rollback
Restauration de données vers l'instantané de système de fichiers donné
PUT
/pools/<pool>/projects /<project>/lun/<lun> /snapshots/<snapshot>/rollback
Restauration de données vers l'instantané de LUN donné
DELETE
/pools/<pool>/projects /<project>/snapshots/<snapshot>
Destruction d'un instantané de projet
DELETE
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots /<snapshot>
Destruction d'un instantané de système de fichiers
DELETE
/pools/<pool>/projects /<project>/luns/<lun> /snapshots/<snapshot>
Destruction d'un instantané de LUN
GET
/pools/<pool>/projects /<project>/snapshots/<snapshot> /dependents
Enumération des dépendants d'instantané de projet
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/snapshots /<snapshot>/dependents
Enumération des dépendants d'instantanés de système de fichiers
GET
/pools/<pool>/projects /<project>/lun/<lun> /snapshots/<snapshot> /dependents
Enumération des dépendants d'instantanés LUN
POST
/pools/<pool>/projects /<project>/automatic
Créer un nouvel instantané automatique de projet
GET
/pools/<pool>/projects /<project>/automatic /<automatic>
Obtention des propriétés de l'instantané automatique du projet spécifié
GET
/pools/<pool>/projects /<project>/automatic
Enumération de tous les objets d'instantané automatique de projet
PUT
/pools/<pool>/projects /<project>/automatic /<automatic>
Modification de l'objet de l'instantané automatique du projet spécifié
DELETE
/pools/<pool>/projects /<project>/automatic /<automatic>
Destruction de l'objet automatique spécifié
POST
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic
Création d'un nouvel instantané automatique de système de fichiers
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic /<automatic>
Obtention des propriétés de l'instantané automatique du système de fichiers spécifié
GET
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic
Enumération de tous les objets d'instantané automatique de système de fichiers
PUT
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic /<automatic>
Modification de l'objet de l'instantané automatique du système de fichiers spécifié
DELETE
/pools/<pool>/projects /<project>/filesystems /<filesystem>/automatic /<automatic>
Destruction de l'objet automatique spécifié
POST
/pools/<pool>/projects /<project>/luns/<lun>/automatic
Création d'un nouvel instantané automatique de LUN
GET
/pools/<pool>/projects /<project>/luns/<lun>/automatic /<automatic>
Obtention des propriétés de l'instantané automatique du LUN spécifié
GET
/pools/<pool>/projects /<project>/luns/<lun>/automatic
Enumération de tous les objets d'instantané automatique de LUN
PUT
/pools/<pool>/projects /<project>/luns/<lun>/automatic /<automatic>
Modification de l'objet de l'instantané automatique du LUN spécifié
DELETE
/pools/<pool>/projects /<project>/luns/<lun>/automatic /<automatic>
Destruction de l'objet automatique spécifié

List Snapshots

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.

Table 12-25  Liste des formes de commande d'instantané
Commande
/api/storage/v1/pools/{pool}/projects/{project}
Liste d'instantanés de projet
/snapshots
Liste d'instantanés de système de fichiers
/filesystems/{share}/snapshots
Liste d'instantanés de LUN
/lun/{share}/snapshots

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

Get Snapshot

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

Create Snapshot

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

Rename Snapshot

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

Clone Snapshot

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
Table 12-26  Paramètres URI
Paramètre
Description
pool
Nom du pool source
project
Nom du projet source
filesystem
Nom du partage source (pour l'instantané de système de fichiers)
lun
Nom du partage source (pour l'instantané de LUN)
snapshot
Nom de l'instantané source

Le corps de la demande contient un objet JSON avec les propriétés suivantes.

Table 12-27  Propriétés des instantanés clones
Type
Nom
Description
string
pool
Nom du pool clone de destination
string
project
Nom du projet clone de destination
string
lun
Nom du LUN de destination (pour l'instantané de LUN)

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

Rollback Snapshot

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
Table 12-28  Paramètres URI
Paramètre
Description
pool
Nom du pool source
project
Nom du projet source
filesystem
Nom du système de fichiers source (pour l'instantané de système de fichiers)
lun
Nom du LUN source (pour l'instantané de LUN)
snapshot
Nom de l'instantané source

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

Delete a Snapshot

La commande d'instantané DELETE supprime un instantané de projet, de système de fichiers ou de LUN du système.

Table 12-29  Formes de commande d'instantané de suppression
Commande
DELETE /api/storage/v1/pools/{pool}/projects/{project}
Suppression d'un instantané de projet avec le nom de pool, de projet et d'instantané donné
/snapshots/{snapshot_name}
Suppression d'un instantané de système de fichiers avec le nom de pool, de projet et d'instantané donné
/filesystems/{share_name}/snapshots/{snapshot_name}
Suppression d'un LUN de système de fichiers avec le nom de pool, de projet et d'instantané donné
/luns/ {lun_name}/snapshots/{snapshot_name}
Table 12-30  Paramètres URI
Paramètre
Description
pool
Nom du pool source
project
Nom du projet source
filesystem
Nom du système de fichiers source
lun
Nom du LUN
snapshot
Nom de l'instantané source

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 Working with NDMP in Oracle ZFS Storage Appliance Administration Guide, Release 2013.1.4.0 .

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

List Snapshot Dependents

Répertorie les dépendants d'un système de fichiers ou volume.

Table 12-31  Liste des formes de commande de dépendants d'instantané
Commande
/api/storage/v1/pools/{pool}/projects/{project}
List Filesystem Dependents
/filesystems/{share}/snapshots/{snapshot}/dependents
List Volume Dependents
lun/{lun}/snapshots/{snapshot}/dependents
Table 12-32  Paramètres URI
Paramètre
Description
pool
Nom du pool de stockage système
project
Nom du projet
filesystem
Nom du système de fichiers
lun
Nom du LUN

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