Todas las operaciones del LUN o de se pueden acotar a una agrupación o a un proyecto determinados. Los siguientes comandos del LUN están disponibles.
|
La tabla siguiente muestra las distintas propiedades del LUN: Los volúmenes también pueden heredar o anular las propiedades del proyecto.
|
Algunas propiedades se pueden heredar del proyecto. El objeto de origen muestra cada una de esas propiedades e identifica si la propiedad es local para el LUN o heredada del proyecto. De forma predeterminada, estas propiedades se heredan del proyecto. Una vez que se configuran, son locales para el LUN. El objeto de origen es inmutable. Para volver a cambiar el origen a heredado, se puede anular la configuración de las propiedades.
Ejemplo de solicitud JSON para desconfigurar la compresión:
{"unset": ["compression"]}
El comando para mostrar LUN devuelve una lista de los LUN disponibles en una agrupación o en un proyecto determinados.
Se utilizan los siguientes parámetros de URI:
Nombre de agrupación de almacenamiento
Nombre de proyecto
Nombre de sistema de archivos
Ejemplo de solicitud para mostrar los LUN dentro del proyecto proj-01:
GET /api/storage/v1/pools/p1/projects/proj-01/luns HTTP/1.1 Host: zfs-storage.example.com:215 Accept: application/json
Un comando get correcto devuelve HTTP Status 200 (OK) (estado HTTP 200 [correcto]) junto con las propiedades del LUN en formato JSON.
Resultado de ejemplo:
HTTP/1.1 200 OK Content-Type: application/json { "luns": [{ "id": "fa4ac6fb-0bcc-d2e3-0000-000000000000", "name": "vol-01" ... }, { "id": "690ae407-7c4d-b5d2-0000-000000000000", "name": "vol-01", .... }] }
El comando "get LUN" devuelve las propiedades de un solo LUN para una agrupación o proyecto determinado.
Se utilizan los siguientes parámetros de URI:
Nombre de agrupación de almacenamiento
Nombre de proyecto
Nombre de LUN
Ejemplo de solicitud (para obtener un LUN denominado "vol-01"):
GET /api/storage/v1/pools/p1/projects/proj-01/lun/vol-01 HTTP/1.1 Host: zfs-storage.example.com:215 Accept: application/json
Un comando get correcto devuelve HTTP Status 200 (OK) (estado HTTP 200 [correcto]) junto con las propiedades del LUN en formato JSON.
Resultado de ejemplo:
HTTP/1.1 200 OK Content-Type: application/json { "lun": { "logbias": "latency", "creation": "20130423T21:31:17", "nodestroy": false, "dedup": false, "rrsrc_actions": [], "id": "e3045406-319b-cf7a-0000-000000000000", "writecache": false, "compression": "off", "copies": 1, "stmfguid": "600144F0D8E0AE4100005176FDA60001", "source": { "compression": "default", "checksum": "inherited", "logbias": "default", "dedup": "default", "copies": "default", "exported": "inherited", "rrsrc_actions": "inherited", "secondarycache": "default" }, "canonical_name": "p1/local/default/disk1", "snaplabel": "", "usage": { "available": 881469214720.0, "loading": false, "snapshots": 0.0, "compressratio": 100.0, "total": 1073758208.0, "data": 1073758208.0 }, "secondarycache": "all", "collection": "local", "exported": true, "volsize": 1073741824.0, "pool": "p1", "volblocksize": 8192, "checksum": "fletcher4", "project": "default", "sparse": false } }
Este comando crea un LUN nuevo. Debe suministrar un tamaño o un origen de clonación para el LUN nuevo.
Se utilizan los siguientes parámetros de URI:
Nombre de agrupación de almacenamiento
Nombre de proyecto
Parámetros de solicitud:
name: se debe suministrar el nombre del LUN para crear un nuevo LUN.
volume properties: cualquiera de las propiedades detalladas en las propiedades del LUN o del proyecto se pueden configurar como valores iniciales.
Ejemplo de solicitud:
POST /api/storage/v1/pools/p1/projects/proj-01/luns HTTP/1.1 Host: zfs-storage.example.com:215 Accept: application/json Request JSON: { name : "vol-001", // Volume name (required) size : 500000, // New Volume size blocksize : 8192, // New Volume block size sparse : true, // New Volume sparse data flag initiatorgroup : 'default', // Initiator group name targetgroup : 'default', // Target group name lunumber : 'auto', // Volume LU number status : 'online', // Initial Status ('online', 'offline') fixednumber : false, "source": { "snapshot_id" : "76b8950a-8594-4e5b-8dce-0dfa9c696358", "snapshot": "/pool-001/local/proj-001/snap-001" } }
La creación satisfactoria devuelve el estado HTTP Status 201 (Created) (HTTP 201 [creado]) con la cabecera de ubicación que contiene el LUN del sistema de archivos nuevo. El cuerpo contiene todas las propiedades del LUN en formato JSON.
Resultado de ejemplo:
HTTP/1.1 201 Created Content-Type: application/json Location: http://zfs-storage.example.com:215 /pools/p1/projects/proj-01/luns/vol-001 { "lun": { "name": "vol-001", ... } }
El comando de modificación de LUN cambia los atributos de un LUN existente.
Se utilizan los siguientes parámetros de URI:
Nombre de agrupación de almacenamiento
Nombre de proyecto
Nombre de LUN
Parámetros de solicitud: volume properties; se puede modificar cualquiera de las propiedades del LUN o del proyecto.
Ejemplo de solicitud para cambiar el nombre de un LUN de vol-01 a new-name:
POST /api/storage/v1/pools/p1/projects/proj-01/luns/vol-01 HTTP/1.1 Host: zfs-storage.example.com:215 Content-Type: application/json Accept: application/json { "name": "new-name", }
La respuesta satisfactoria devuelve HTTP Status 202 (Accepted) (estado HTTP 202 [aceptado]) y muestra todas las propiedades del LUN.
Resultado de ejemplo:
HTTP/1.1 201 Created Content-Type: application/json Location: /api/storage/v1/pools/p1/projects/proj-01/luns/new-name { "lun": { "name": "new-name", "pool": "p1", "collection": "local", "project": "proj-01", ... } }
El comando suprimir LUN elimina un solo LUN de una agrupación o un proyecto determinados.
Se utilizan los siguientes parámetros de URI:
Nombre de agrupación de almacenamiento
Nombre de proyecto
Nombre de LUN
Para supervisar la cantidad de espacio que se debe reclamar en la agrupación de almacenamiento, introduzca el comando GET para pools/pool. Tome nota de la cantidad de espacio para la propiedad async_destroy_reclaim_space. Una vez que finaliza la operación, se muestra 0 (cero).
Ejemplo de solicitud:
DELETE /pools/p1/projects/proj-01/luns/lun-01 HTTP/1.1 Host: zfs-storage.example.com:215 Accept: application/json
Un comando get correcto devuelve HTTP Status 204 (No Content) (estado HTTP 204 [sin contenido]).
Resultado de ejemplo:
HTTP/1.1 204 No-Content