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}
|
Cada sistema de archivos contiene propiedades del proyecto y tiene las siguientes propiedades específicas del sistema de archivos.
|
El comando Mostrar sistemas de archivos muestra todos los sistemas de archivos de una agrupación o un proyecto determinado.
Filtro de parámetros de consulta: un filtro de coincidencia de cadenas simple que requiere una propiedad dentro del proyecto para contener la misma cadena de filtros dentro de su valor.
|
Ejemplo de solicitud:
GET /api/storage/v1/pools/gold/projects/proj-01/filesystems HTTP/1.1 Host: zfs-storage.example.com 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”: “gold”,
...
}, {
“name”: “filesystem-02”,
“project”: “proj-01”,
“pool”: “gold”,
...
}]
}
También se admite una lista de todos los sistemas de archivos de todas las agrupaciones y proyectos. En ese caso, el URI será /api/storage/v1/filesystems..
Solicitud de ejemplo (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 Accept: application/json
El comando obtener sistema de archivos devuelve las propiedades del sistema de archivos en una agrupación o en un proyecto determinados.
|
Ejemplo de solicitud (para visualizar un proyecto denominado "proj-01"):
GET /api/storage/v1/pools/gold/projects/proj-01 HTTP/1.1 Host: zfs-storage.example.com 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.
Ejemplo de respuesta:
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/grape",
"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": "platinum/local/default/grape",
"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": "platinum",
"quota_snap": true,
"name": "grape",
"checksum": "fletcher4",
"project": "default",
"sharesftp": "",
"nbmand": false,
"reservation_snap": true,
"sharedav": "",
"rstchown": true,
"root_acl": {
"owner@:cC:fd:deny",
"everyone@:rw:fd:allow",
"user:john:rw:allow",
}
"smbshareacl": {
"owner@:cC:fd:deny",
"everyone@:rw:fd:allow",
"user:john:rw:allow",
}
}
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.
|
Solicitar parámetros:
name: se debe suministrar el nombre del sistema de archivos para crear un nuevo sistema de archivos.
filesystem properties: cualquiera de las propiedades detalladas 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 propiedad del usuario "joe"):
POST /api/storage/v1/pools/gold/projects/proj-01/filesystems HTTP/1.1
Host: zfs-storage.example.com
Content-Type: application/json
Accept: application/json
{
“name”: “share-01”,
“owner”: “joe”
}
La creación satisfactoria devuelve HTTP Status 201 (Created) (estado HTTP 201 [creado]) con el encabezado 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.
Ejemplo de respuesta:
HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01
{
“filesystem”: {
“name”: “share-01”,
“pool”: “gold”,
“collection”: “local”,
“project”: “proj-01”,
“owner”: “joe”
...
}
}
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.
Solicitar parámetros (propiedades del sistema de archivos): 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/gold/projects/proj-01/filesystems/share-01
HTTP/1.1
Host: zfs-storage.example.com
Content-Type: application/json
Accept: application/json
{
“name”: “new-name”,
“owner”: “nobody”,
}
Ejemplo de respuesta:
HTTP/1.1 202 Accepted
Content-Type: application/json
Location: http://zfs-storage.example.com:215
/pools/gold/projects/proj-01/filesystems/share-01
{
“filesystem”: {
“name”: “new-name”,
“pool”: “gold”,
“collection”: “local”,
“project”: “proj-01”,
“owner”: “nobody”
...
}
}
El comando suprimir sistema de archivos elimina un solo sistema de archivos de una agrupación o un proyecto determinados.
|
Ejemplo de solicitud:
DELETE /api/storage/v1/pools/gold/projects/proj-01/filesystems/share-01
HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json
La supresión satisfactoria devuelve HTTP Status 204 (No Content) (estado HTTP 204 [sin contenido]).
Ejemplo de respuesta:
HTTP/1.1 204 No-Content
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.