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 LUN

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.

Tabla 48  Comandos del volumen
Solicitud
Anexar a la ruta de acceso /api/storage/v{1|2}
Descripción
GET
/luns
Mostrar todos los LUN.
GET
/pools/pool/projects/project/luns
Mostrar los LUN.
GET
/pools/pool/projects/project/luns?snaps=true
Mostrar todos los LUN, incluidas las instantáneas.
GET
/pools/pool/projects/project/luns/lun
Obtener detalles del LUN.
POST
/pools/pool/projects/project/luns
Crear un LUN.
PUT
/pools/pool/projects/project/luns/lun
Modificar un LUN.
DELETE
/pools/pool/projects/project/luns/lun
Destruir un LUN.

La tabla siguiente muestra las distintas propiedades del LUN: Los volúmenes también pueden heredar o anular las propiedades del proyecto.

Tabla 49  Propiedades del volumen
Propiedad
Tipo
Descripción
assignednumber
number o list of numbers
El número LU asignado Si se presenta a varios grupos de iniciadores, el tipo es una lista de números.
Si se presenta a varios grupos de iniciadores, el orden de assignednumber y el orden de initiatorgroups están alineados. Por ejemplo, el primer elemento de la lista assignednumber corresponde al primer elemento de la lista initiatorgroups.
fixednumber
boolean
Marcar para corregir el número LU al valor actual.
initiatorgroups
list of strings
El grupo de iniciadores.
Si se presenta el LUN a varios grupos de iniciadores, el orden de assignednumber y el orden de initiatorgroups están alineados. Por ejemplo, el primer elemento de la lista assignednumber corresponde al primer elemento de la lista initiatorgroups.
lunguid
string
STMF GUID.
lunumber
number o string
El número LU. Un número o auto.
project
string
El nombre del proyecto (inmutable).
source
objeto
Mostrar la fuente de las propiedades: local o inherited.
sparse
boolean
Marcar para activar el aprovisionamiento fino.
status
string
Estado de la unidad lógica: online u offline.
targetgroup
string
El grupo de destinos
usage
objeto
Mostrar las estadísticas de uso del LUN
volblocksize
number
Tamaño del bloque de volumen
volsize
number
Tamaño del volumen
writecache
boolean
Marcar para activar la caché de escritura.

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

Mostrar los LUN.

El comando para mostrar LUN devuelve una lista de los LUN disponibles en una agrupación o en un proyecto determinados.


Notas -  No se admite el parámetro de consulta depth ni el parámetro de consulta match_property-name=value.

Se utilizan los siguientes parámetros de URI:

pool

Nombre de agrupación de almacenamiento

project

Nombre de proyecto

filesystem

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

Obtener LUN

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:

pool

Nombre de agrupación de almacenamiento

project

Nombre de proyecto

lun

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

Crear un LUN nuevo

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:

pool

Nombre de agrupación de almacenamiento

project

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

Modificar LUN

El comando de modificación de LUN cambia los atributos de un LUN existente.

Se utilizan los siguientes parámetros de URI:

pool

Nombre de agrupación de almacenamiento

project

Nombre de proyecto

lun

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

Suprimir Lun

El comando suprimir LUN elimina un solo LUN de una agrupación o un proyecto determinados.

Se utilizan los siguientes parámetros de URI:

pool

Nombre de agrupación de almacenamiento

project

Nombre de proyecto

lun

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