Go to main content

Guide RESTful API des systèmes Oracle® ZFS Storage Appliance, version OS8.8.x

Quitter la vue de l'impression

Mis à jour : Août 2021
 
 

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/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.

Table 50  Commandes d'instantané et de clonage
Demande
Ajouter au chemin /api/storage/v{1|2}
Description
GET
/snapshots
Liste de tous les instantanés locaux
GET
/pools/pool/projects?snaps=true
Liste de tous les projets, y compris les instantanés
GET
/pools/pool/projects/project/filesystems?snaps=true
Liste de tous les systèmes de fichiers, y compris les instantanés
GET
/pools/pool/projects/project/luns?snaps=true
Liste de tous les LUN, y compris les instantanés
GET
/pools/pool/projects/project/snapshots
Liste de tous les instantanés d'un projet
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots
Liste de tous les instantanés d'un système de fichiers
GET
/pools/pool/projects/project/luns/lun/snapshots
Liste de tous les instantanés d'un 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/projects/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éation d'un nouvel objet d'instantané automatique de projet
POST
/pools/pool/projects/project/automatic?convert=true
Création d'un nouvel objet d'instantané automatique de projet. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
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é
PUT
/pools/pool/projects/project/automatic/automatic?convert=true
Modification de l'objet de planification de l'instantané automatique du projet spécifié. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
DELETE
/pools/pool/projects/project/automatic/automatic
Destruction de l'objet automatique spécifié
DELETE
/pools/pool/projects/project/automatic/automatic?convert=true
Destruction de l'objet de planification de l'instantané automatique spécifié. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
POST
/pools/pool/projects/project/filesystems/filesystem/automatic
Création d'un nouvel objet d'instantané automatique de système de fichiers
POST
/pools/pool/projects/project/filesystems/filesystem/automatic?convert=true
Création d'un nouvel objet d'instantané automatique de système de fichiers. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
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é
PUT
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
Modification de l'objet de planification de l'instantané automatique du système de fichiers spécifié. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
Destruction de l'objet de planification de l'instantané automatique spécifié
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
Destruction de l'objet de planification de l'instantané automatique du système de fichiers spécifié. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
POST
/pools/pool/projects/project/luns/lun/automatic
Création d'un nouvel instantané automatique de LUN
POST
/pools/pool/projects/project/luns/lun/automatic?convert=true
Création d'une nouvelle planification d'instantané automatique de LUN. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
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é
PUT
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
Modification de l'objet de planification de l'instantané automatique du LUN spécifié. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic
Destruction de l'objet automatique de LUN spécifié
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
Destruction de l'objet de planification de l'instantané automatique du LUN spécifié. Les instantanés générés automatiquement existants qui ne conviennent pas aux nouvelles planifications sont convertis en instantanés manuels.
L'exclusion de la propriété convert entraîne la destruction des instantanés générés automatiquement existants.

Liste des instantanés

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 51  Liste des formes de commande d'instantané
Commande
Ajouter au chemin /api/storage/v{1|2}/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/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"
    }]
}

Obtention d'un instantané

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

Création d'un instantané

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

Modification du nom d'un instantané

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

Clonage d'un instantané

Crée un nouveau système de fichiers ou LUN à partir d'un instantané existant.

Les paramètres URI suivants sont utilisés :

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

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.

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

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

Restauration d'un instantané

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 :

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

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

Suppression d'un instantané

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 :

pool

Nom du pool source

project

Nom du projet source

filesystem

Nom du système de fichiers source

lun

Nom de LUN

snapshot

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

Liste des dépendants d'instantané

Répertorie les dépendants d'un système de fichiers ou volume. Les paramètres URI suivants sont utilisés :

pool

Nom du pool de stockage système

project

Nom de projet

filesystem

Nom de système de fichiers

lun

Nom de LUN

snapshot

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