Go to main content

Guía de la API de RESTful de Oracle® ZFS Storage Appliance (versión OS8.8.x)

Salir de la Vista de impresión

Actualización: Agosto de 2021
 
 

Operaciones de clonación e instantánea

Todas las operaciones de instantáneas se pueden acotar a una agrupación o a un proyecto determinados. Las operaciones de instantáneas también se pueden acotar a un sistema de archivos o nivel LUN.

  • El URI para todas las operaciones de instantáneas basadas en proyectos comienza con: /api/storage/v{1|2}/pools/pool/projects/project

  • El URI para todas las operaciones de instantáneas basadas en sistemas de archivos comienza con: /api/storage/v{1|2}/pools/pool/projects/project/filesystems/filesystem

  • El URI para todas las operaciones de instantáneas basadas en LUN comienza con: /api/storage/v{1|2}/pools/pool/projects/project/luns/lun

Para realizar una copia de seguridad de una instantánea en la nube o restaurar una copia de seguridad de una instantánea en el dispositivo como un recurso compartido nuevo, consulte Servicio en la nube de la API de RESTful.

Tabla 50  Comandos de clonación e instantánea
Solicitud
Anexar a la ruta de acceso /api/storage/v{1|2}
Descripción
GET
/snapshots
Mostrar todas las instantáneas locales.
GET
/pools/pool/projects?snaps=true
Mostrar todos los proyectos, incluidas las instantáneas.
GET
/pools/pool/projects/project/filesystems?snaps=true
Mostrar todos los sistemas de archivos, incluidas las instantáneas.
GET
/pools/pool/projects/project/luns?snaps=true
Mostrar todos los LUN, incluidas las instantáneas.
GET
/pools/pool/projects/project/snapshots
Mostrar todas las instantáneas de un proyecto.
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots
Mostrar todas las instantáneas de un sistema de archivos.
GET
/pools/pool/projects/project/luns/lun/snapshots
Mostrar todas las instantáneas de un LUN.
GET
/pools/pool/projects/project/snapshots/snapshot
Obtener detalles de la instantánea del proyecto.
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
Obtener detalles de la instantánea del sistema de archivos.
GET
/pools/pool/projects/project/luns/lun/snapshots/snapshot
Obtener detalles de la instantánea del LUN.
POST
/pools/pool/projects/project/snapshots
Crear una instantánea del proyecto.
POST
/pools/pool/projects/project/filesystems/filesystem/snapshots
Crear una instantánea del sistema de archivos.
POST
/pools/pool/projects/project/luns/lun/snapshots
Crear una instantánea del LUN.
PUT
/pools/pool/projects/project/snapshots/snapshot
Modificar una instantánea del proyecto.
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
Modificar una instantánea de un sistema de archivos.
PUT
/pools/pool/projects/project/luns/lun/snapshots/snapshot
Modificar una instantánea del LUN.
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/clone
Clonar una instantánea del sistema de archivos.
PUT
/pools/pool/projects/project/luns/lun/snapshots/snapshot/clone
Clonar una instantánea del LUN.
PUT
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/rollback
Revertir datos hasta la instantánea del sistema de archivos por defecto.
PUT
/pools/pool/projects/project/lun/lun/snapshots/snapshot/rollback
Revertir datos hasta la instantánea del LUN por defecto.
DELETE
/pools/pool/projects/project/snapshots/snapshot
Destruir una instantánea del proyecto.
DELETE
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot
Destruir la instantánea de un sistema de archivos.
DELETE
/pools/pool/projects/project/luns/lun/snapshots/snapshot
Destruir una instantánea del LUN.
GET
/pools/pool/projects/project/snapshots/snapshot/dependents
Mostrar dependientes de la instantánea del proyecto.
GET
/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/dependents
Mostrar dependientes de la instantánea del sistema de archivos.
GET
/pools/pool/projects/project/lun/lun/snapshots/snapshot/dependents
Mostrar dependientes de la instantánea del LUN.
POST
/pools/pool/projects/project/automatic
Crear un objeto de instantánea automática de un proyecto nuevo.
POST
/pools/pool/projects/project/automatic?convert=true
Crear un objeto de instantánea automática de un proyecto nuevo. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
GET
/pools/pool/projects/project/automatic/automatic
Obtener las propiedades de la instantánea automática del proyecto especificado.
GET
/pools/pool/projects/project/automatic
Mostrar los objetos de las instantáneas automáticas de todos los proyectos.
PUT
/pools/pool/projects/project/automatic/automatic
Modificar el objeto de la instantánea automática del proyecto especificado.
PUT
/pools/pool/projects/project/automatic/automatic?convert=true
Modificar el objeto de programa de instantánea automática del proyecto especificado. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
DELETE
/pools/pool/projects/project/automatic/automatic
Destruir el objeto automático especificado.
DELETE
/pools/pool/projects/project/automatic/automatic?convert=true
Destruir el objeto de programa de instantánea automática especificado. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
POST
/pools/pool/projects/project/filesystems/filesystem/automatic
Crear un objeto de instantánea automática de un sistema de archivos nuevo.
POST
/pools/pool/projects/project/filesystems/filesystem/automatic?convert=true
Crear un objeto de instantánea automática de un sistema de archivos nuevo. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
GET
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
Obtener las propiedades de la instantánea automática del sistema de archivos especificado.
GET
/pools/pool/projects/project/filesystems/filesystem/automatic
Mostrar todos los objetos de las instantáneas automáticas del sistema de archivos.
PUT
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
Modificar el objeto de la instantánea automática del sistema de archivos especificado.
PUT
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
Modificar el objeto de programa de instantánea automática del sistema de archivos especificado. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic
Destruir el objeto de programa de instantánea automática especificado.
DELETE
/pools/pool/projects/project/filesystems/filesystem/automatic/automatic?convert=true
Destruir el objeto de programa de instantánea automática del sistema de archivos especificado. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
POST
/pools/pool/projects/project/luns/lun/automatic
Crear una instantánea automática de un LUN nuevo.
POST
/pools/pool/projects/project/luns/lun/automatic?convert=true
Crear un programa de instantánea automática de un LUN nuevo. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
GET
/pools/pool/projects/project/luns/lun/automatic/automatic
Obtener las propiedades de la instantánea automática del LUN especificado.
GET
/pools/pool/projects/project/luns/lun/automatic
Mostrar los objetos de las instantáneas automáticas de todos los LUN.
PUT
/pools/pool/projects/project/luns/lun/automatic/automatic
Modificar el objeto de la instantánea automática del LUN especificado.
PUT
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
Modificar el objeto de programa de instantánea automática del LUN especificado. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic
Destruir el objeto automático del LUN especificado.
DELETE
/pools/pool/projects/project/luns/lun/automatic/automatic?convert=true
Destruir el objeto de programa de instantánea automática del LUN especificado. Las instantáneas generadas automáticamente ya existentes que no se adapten a los programas nuevos se convierten a instantáneas manuales.
Si se excluye la propiedad convert, las instantáneas generadas automáticamente ya existentes se destruyen.

Mostrar instantáneas

Mostrar las instantáneas disponibles en un dispositivo. Según el URI solicitado, la lista contiene instantáneas del proyecto, del sistema de archivos o del LUN.

Tabla 51  Mostrar las formas de comando de la instantánea.
Comando
Anexar a ruta de acceso /api/storage/v{1|2}/pools/pool/projects/project
Enumerar las instantáneas del proyecto
/snapshots
Enumerar las instantáneas del sistema de archivos
/filesystems/share/snapshots
Enumerar las instantáneas de LUN
/lun/share/snapshots

Ejemplo de solicitud:

GET /api/storage/v1/pools/p1/projects/default/snapshots
Accept: application/json

Resultado de ejemplo:

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

Obtener instantánea

Ver toda la información acerca de una sola instantánea. Devuelve HTTP Status 200 (OK) (estado HTTP 200 [correcto]) cuando la solicitud es correcta.

Ejemplo de solicitud:

GET /api/storage/v1/pools/p1/projects/default/snapshots/snap-001
Accept: application/json

Resultado de ejemplo:

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

Crear instantánea

El comando crear solicitud crea instantáneas para proyectos, sistemas de archivos, o LUN.

  • Crear instantánea de proyecto: POST /pools/pool/projects/project/snapshots

  • Crear instantánea de sistema de archivos: POST /pools/pool/projects/project/filesystems/share/snapshots

  • Crear instantánea de volumen: POST /pools/pool/projects/project/luns/lun/snapshots

Ejemplo de solicitud:

POST /api/storage/v1/pools/p1/projects/default/snapshots
Content-Type: application/json

{"name": "initial-backup"}

Resultado de ejemplo:

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

Cambiar el nombre de la instantánea

Cambia el nombre de una instantánea existente.

  • Solicitar URI: instantánea, el nombre de la instantánea actual

  • Cuerpo de la solicitud: objeto de JSON con parámetro de nombre que contiene el nombre de una instantánea nueva

Ejemplo de solicitud:

PUT /api/storage/v1/pools/p1/projects/default/snapshots/initial-snapshot
Content-Type: application/json
Accept: application/json

{"name": "old-snapshot"}

Resultado de ejemplo:

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /pools/p1/projects/default/snapshot/initial-backup

Clonar instantánea

Crear un sistema de archivos o LUN nuevo a partir de una instantánea existente.

Se utilizan los siguientes parámetros de URI:

pool

Nombre de la agrupación de origen

project

Nombre del proyecto de origen

filesystem

Nombre de recurso compartido de origen para instantánea del sistema de archivos

lun

Nombre de recurso compartido de origen para instantánea del LUN

snapshot

Nombre de la instantánea de origen

Clonar un sistema de archivos:

PUT /pools/pool/projects/project/filesystems/share/snapshots/snapshot/clone

Clonar volumen:

PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/clone

El cuerpo de la solicitud contiene un objeto de JSON con las siguientes propiedades.

Tabla 52  Propiedades de la clonación de instantáneas
Propiedad
Tipo
Descripción
pool
string
Nombre de la agrupación de destino de la clonación
project
string
Nombre de la agrupación de destino del proyecto
lun
string
Nombre de LUN de destino para instantánea del LUN

Ejemplo de solicitud:

PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs01/
    snapshots/snap01/clone

{"project":"rest", "share":"snap01clone01", "compression": "gzip-9"}

Resultado de ejemplo:

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

Revertir una instantánea

La opción Revestir instantánea hace que el sistema de archivos o el LUN de origen vuelvan al estado que tenían en el momento en el que se tomó la instantánea. La respuesta satisfactoria devuelve HTTP Status 202 (Accepted) (estado HTTP 202 [aceptado]) además de las propiedades de la instantánea en formato JSON.

Se utilizan los siguientes parámetros de URI:

pool

Nombre de la agrupación de origen

project

Nombre del proyecto de origen

filesystem

Nombre de sistema de archivos de origen para instantánea del sistema de archivos

lun

Nombre de LUN de origen para instantánea del LUN

snapshot

Nombre de la instantánea de origen

Revertir una instantánea del sistema de archivos:

PUT /pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/rollback

Revertir una instantánea del LUN:

PUT /pools/pool/projects/project/luns/lun/snapshots/snapshot/rollback

Ejemplo de solicitud:

PUT /api/storage/v1/pools/p1/projects/default/filesystems/fs-01
    /snapshots/initial-backup/rollback

Resultado de ejemplo:

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

Suprimir una instantánea

El comando DELETE para instantáneas suprime del sistema una instantánea de LUN, de proyecto o de sistema de archivos.

Se utilizan los siguientes parámetros de URI:

pool

Nombre de la agrupación de origen

project

Nombre del proyecto de origen

filesystem

Nombre de sistema de archivos de origen

lun

Nombre de LUN

snapshot

Nombre de la instantánea de origen

Suprimir una instantánea del proyecto:

DELETE /api/storage/v1/pools/pool/projects/project/snapshots/snapshot

Suprimir una instantánea del sistema de archivos:

DELETE /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot

Suprimir un LUN del sistema de archivos:

DELETE /api/storage/v1/pools/pool/projects/projectsnapshot

Si la instantánea tiene una retención de NDMP, se debe agregar ?confirm=true al comando DELETE. No obstante, tenga en cuenta que este procedimiento podría afectar de manera negativa el funcionamiento del NDMP. Para obtener más información, consulte Configuración de NDMP de Guía de administración de Oracle® ZFS Storage Appliance, versión OS8.8.x.

Ejemplo de solicitud:

DELETE /pools/p1/projects/default/filesystems/fs-01/snapshots/initial-backup?confirm=true

Ejemplo de resultado si no se agrega ?confirm=true:

Si no se agrega ?confirm=true cuando existe una retención NDMP en la instantánea, el comando generará un error con la siguiente salida (se aplicaron saltos de línea artificialmente para fines de legibilidad):

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

Visualización de dependientes de la instantánea

Mostrar los dependientes de un sistema de archivos o de un volumen. Se utilizan los siguientes parámetros de URI:

pool

Nombre de agrupación de almacenamiento del sistema

project

Nombre de proyecto

filesystem

Nombre de sistema de archivos

lun

Nombre de LUN

snapshot

Nombre de instantánea

Enumerar los dependientes del sistema de archivos:

GET /api/storage/v1/pools/pool/projects/project/filesystems/filesystem/snapshots/snapshot/dependents

Enumerar los dependientes del volumen:

GET /api/storage/v1/pools/pool/projects/project/lun/lun/snapshots/snapshot/dependents

Ejemplo de solicitud:

GET /api/storage/v1/pools/p1/projects/default/filesystems/fs01/snapshots/snap01/dependents
Accept: application/json

Resultado de ejemplo:

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