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.
|
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.
|
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" }] }
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" } }
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" } }
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
Crear un sistema de archivos o LUN nuevo a partir de una instantánea existente.
Se utilizan los siguientes parámetros de URI:
Nombre de la agrupación de origen
Nombre del proyecto de origen
Nombre de recurso compartido de origen para instantánea del sistema de archivos
Nombre de recurso compartido de origen para instantánea del LUN
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.
|
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" } }
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:
Nombre de la agrupación de origen
Nombre del proyecto de origen
Nombre de sistema de archivos de origen para instantánea del sistema de archivos
Nombre de LUN de origen para instantánea del LUN
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" } }
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:
Nombre de la agrupación de origen
Nombre del proyecto de origen
Nombre de sistema de archivos de origen
Nombre de LUN
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"}}
Mostrar los dependientes de un sistema de archivos o de un volumen. Se utilizan los siguientes parámetros de URI:
Nombre de agrupación de almacenamiento del sistema
Nombre de proyecto
Nombre de sistema de archivos
Nombre de LUN
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" } ] }