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 del sistema de archivos

Lista de operaciones del sistema y gestión de recursos compartidos del sistema de archivos. Todos los comandos se pueden acotar a una agrupación de almacenamiento o a un proyecto determinados.

service_uri/pools/pool/project/project
Tabla 46  Comandos del sistema de archivos
Solicitud
Anexar a la ruta de acceso /api/storage/v{1|2}
Descripción
GET
/filesystems
Mostrar todos los sistemas de archivos.
GET
/pools/pool/projects/project/filesystems
Mostrar los sistemas de archivos especificados.
GET
/pools/pool/projects/project/filesystems?snaps=true
Mostrar todos los sistemas de archivos, incluidas las instantáneas.
GET
/pools/pool/projects/project/filesystems/filesystem
Obtener detalles del sistema de archivos.
POST
/pools/pool/projects/project/filesystems
Crear un sistema de archivos.
PUT
/pools/pool/projects/project/filesystems/filesystem
Modificar un sistema de archivos.
DELETE
/pools/pool/projects/project/filesystems/filesystem
Destruir un sistema de archivos.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/groups
Obtener uso de grupo del sistema de archivos.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/groups/group
Obtener uso del sistema de archivos para el grupo especificado.
POST
/pools/pool/projects/project/filesystems/filesystem/usage/groups
Crear cuota de grupo para un sistema de archivos.
PUT
/pools/pool/projects/project/filesystems/filesystem/usage/groups/name
Modificar cuota de grupo para un sistema de archivos.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/users
Obtener uso de usuario del sistema de archivos.
GET
/pools/pool/projects/project/filesystems/filesystem/usage/users/user
Obtener uso del sistema de archivos para el usuario especificado.
POST
/pools/pool/projects/project/filesystems/filesystem/usage/users
Crear cuota de usuario para un sistema de archivos.
PUT
/pools/pool/projects/project/filesystems/filesystem/usage/users/name
Modificar cuota de usuario para un sistema de archivos.
GET
/pools/pool/projects/project/filesystems/filesystem/shadow/errors
Mostrar errores de migración shadow.

Cada sistema de archivos contiene propiedades del proyecto y tiene las siguientes propiedades específicas del sistema de archivos.

Tabla 47  Propiedades del sistema de archivos
Propiedad
Tipo
Descripción
casesensitivity
string
Ajuste de distinción de mayúsculas y minúsculas : mixed, sensitive o insensitive
group
string
El nombre del grupo.
normalization
string
Normalización.
permissions
string
Los permisos del sistema de archivos.
project
string
El nombre del proyecto
quota_snap
boolean
Marcar para incluir instantáneas en la cuota.
reservation_snap
boolean
Marcar para incluir instantáneas en la reserva.
shadow
string
Origen de migración de datos.
errors
string
Errores de migración de datos.
sharesmb_name
string
Nombre del recurso compartido de SMB.
source
object
Propiedades de herencia del proyecto.
usage
object
Información sobre el uso del sistema de archivos.
user
string
El nombre de usuario que posee el recurso compartido.
utf8only
boolean
Marcar para rechazar configuraciones locales no UTF-8.

Mostrar sistemas de archivos

El comando Mostrar sistemas de archivos muestra todos los sistemas de archivos de una agrupación o un proyecto determinado.


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

Parámetros de solicitud: filter; un filtro simple de coincidencia de cadenas que requiere una propiedad dentro del proyecto para contener la misma cadena de filtros dentro de su valor.

Los comandos de enumeración de sistemas de archivos utilizan los siguientes parámetros de URI:

pool

Nombre de agrupación de almacenamiento

project

Nombre de proyecto

Ejemplo de solicitud:

GET /api/storage/v1/pools/p1/projects/proj-01/filesystems HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

La solicitud correcta devuelve HTTP Status 200 (OK) (estado HTTP 200 [correcto]) junto con una matriz de propiedades del sistema de archivos en formato JSON.

Resultado de ejemplo:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "filesystems": [{
        "name": "filesystem-01",
        "project": "proj-01",
        "pool": "p1",
        ...
    }, {
        "name": "filesystem-02",
        "project": "proj-01",
        "pool": "p1",
        ...
    }]
}

También se admite una lista de todos los sistemas de archivos de todas las agrupaciones y proyectos. En ese caso, el URI sería /api/storage/v{1|2}/filesystems.

Ejemplo de solicitud para obtener todos los sistemas de archivos con la cadena "abcd" como parte de sus propiedades:

GET /api/storage/v1/filesystems?filter=abcd HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

Obtener sistema de archivos

El comando "get filesystem" devuelve las propiedades de un solo sistema de archivos en 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

filesystem

Nombre de sistema de archivos

Ejemplo de solicitud para mostrar un proyecto denominado proj-01:

GET /api/storage/v1/pools/p1/projects/proj-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 sistema de archivos en formato JSON.

Resultado de ejemplo:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "filesystem": {
        "logbias": "latency",
        "creation": "20130423T21:30:34",
        "nodestroy": false,
        "dedup": false,
        "sharenfs": "on",
        "sharesmb": "off",
        "mountpoint": "/export/mnt1",
        "snaplabel": "",
        "id": "424ca2ec-b3fa-df86-0000-000000000000",
        "readonly": false,
        "rrsrc_actions": [],
        "compression": "off",
        "sharetftp": "",
        "source": {
            "logbias": "default",
            "dedup": "default",
            "sharenfs": "inherited",
            "sharesmb": "off",
            "mountpoint": "inherited",
            "rrsrc_actions": "local",
            "compression": "default",
            "sharetftp": "inherited",
            "snapdir": "default",
            "aclmode": "default",
            "copies": "default",
            "aclinherit": "default",
            "shareftp": "inherited",
            "readonly": "default",
            "secondarycache": "default",
            "exported": "inherited",
            "vscan": "default",
            "reservation": "local",
            "atime": "default",
            "recordsize": "default",
            "checksum": "inherited",
            "sharesftp": "inherited",
            "nbmand": "default",
            "rstchown": "default"
        },
        "snapdir": "hidden",
        "aclmode": "discard",
        "copies": 1,
        "aclinherit": "restricted",
        "shareftp": "",
        "canonical_name": "p1/local/default/mnt1",
        "recordsize": 131072.0,
        "usage": {
            "available": 880395477504.0,
            "loading": false,
            "quota": 0.0,
            "snapshots": 18432.0,
            "compressratio": 100.0,
            "reservation": 0.0,
            "total": 50176.0,
            "data": 31744.0
        },
        "secondarycache": "all",
        "collection": "local",
        "exported": true,
        "vscan": false,
        "reservation": 0.0,
        "shadow": "none",
        "atime": true,
        "pool": "p1",
        "quota_snap": true,
        "name": "mnt1",
        "checksum": "fletcher4",
        "project": "default",
        "sharesftp": "",
        "nbmand": false,
        "reservation_snap": true,
        "sharedav": "",
        "rstchown": true,
        "root_acl": {
             "owner@:cC:fd:deny",
             "everyone@:rw:fd:allow",
             "user:admin1:rw:allow",
        }
        "smbshareacl": {
             "owner@:cC:fd:deny",
             "everyone@:rw:fd:allow",
             "user:admin1:rw:allow",
        }
}

Crear sistema de archivos

El comando de creación de sistema de archivos de proyecto crea un sistema de archivos con un nombre determinado que reside en una agrupación de almacenamiento o un proyecto determinados. Se devuelve el sistema de archivos nuevo con propiedades predeterminadas.

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

Parámetros de solicitud:

  • name: se debe suministrar el nombre del sistema de archivos para crear un nuevo sistema de archivos.

  • filesystem properties: cualquiera de las propiedades enumeradas en las propiedades del sistema de archivos o del proyecto se pueden configurar como valores iniciales.

Ejemplo de solicitud (para crear un sistema de archivos denominado share-01 y de propiedad del usuario admin1):

POST /api/storage/v1/pools/p1/projects/proj-01/filesystems HTTP/1.1
Host: zfs-storage.example.com:215
Content-Type: application/json
Accept: application/json

{
    "name": "share-01",
    "root_user": "admin1"
}

La creación satisfactoria devuelve HTTP Status 201 (Created) (estado HTTP 201 [creado]) con la cabecera de ubicación que contiene el URI del sistema de archivos nuevo. El cuerpo contiene todas las propiedades del sistema de archivos en formato JSON.

Resultado de ejemplo:

HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/storage/v1/pools/p1/projects/proj-01/filesystems/share-01

{
    "filesystem": {
        "name": "share-01",
        "pool": "p1",
        "collection": "local",
        "project": "proj-01",
        "root_user": "admin1"
        ...
    }
}

Modificar sistema de archivos

El comando de modificación de sistema de archivos cambia los atributos de un sistema de archivos existente. La respuesta satisfactoria devuelve HTTP Status 202 (Accepted) (estado HTTP 202 [aceptado]) y muestra todas las propiedades del sistema de archivos.

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

Parámetros de solicitud: filesystem properties; se puede modificar cualquiera de las propiedades del sistema de archivos o del proyecto.

Ejemplo de solicitud (para cambiar el nombre de un sistema de archivos de share-01 a new-name y el propietario a nobody):

PUT /api/storage/v1/pools/p1/projects/proj-01/filesystems/share-01 HTTP/1.1
Host: zfs-storage.example.com:215
Content-Type: application/json
Accept: application/json

{
    "name": "new-name",
    "root_user": "nobody",
}

Resultado de ejemplo:

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: http://zfs-storage.example.com:215/pools/p1/projects/proj-01/filesystems/share-01

{
    "filesystem": {
        "name": "new-name",
        "pool": "p1",
        "collection": "local",
        "project": "proj-01",
        "root_user": "nobody"
        ...
    }
}

Suprimir sistema de archivos

El comando suprimir sistema de archivos elimina un solo sistema de archivos 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

filesystem

Nombre de sistema de archivos

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 /api/storage/v1/pools/p1/projects/proj-01/filesystems/share-01 HTTP/1.1
Host: zfs-storage.example.com:215
Accept: application/json

La supresión satisfactoria devuelve HTTP Status 204 (No Content) (estado HTTP 204 [sin contenido]).

Resultado de ejemplo:

HTTP/1.1 204 No-Content

Cuota y uso del sistema de archivos

Se pueden crear o modificar cuotas de usuario o de grupo con solicitudes POST o PUT, respectivamente. Las solicitudes GET para los recursos de uso del sistema de archivos se usan para obtener datos de uso por usuario o por grupo para el proyecto.