Creación de un sistema de archivos compartido
Función
Esta API se utiliza para crear un sistema de archivos compartido. Después de crear el sistema de archivos, debe montar el sistema de archivos en ECS para lograr el almacenamiento de archivos compartidos. Para obtener más información sobre cómo montar el sistema de archivos, consulte Tareas iniciales de SFS.
Esta API es una API asíncrona. Si el código de estado devuelto es 200, la solicitud API se entrega y recibe con éxito. Más adelante, puede consultar el estado y la ruta de acceso del sistema de archivos compartido haciendo referencia a Consulta de detalles acerca de un sistema de archivos compartido para identificar si la creación se ha completado y se ha completado correctamente. Si el estado del sistema de archivos compartido queda available o se genera la ruta de acceso compartida, la creación se realiza correctamente.
Una vez que se ha creado correctamente un sistema de archivos compartido, solo se puede utilizar después de agregar reglas de acceso a recursos compartidos haciendo referencia a Adición de una regla de acceso al sistema de archivos.
URI
- POST /v2/{project_id}/shares
- Descripción del parámetro
Parámetro
Obligatorio
Tipo
Descripción
project_id
Sí
String
Especifica el ID de proyecto del operador. Para obtener más información sobre cómo obtener el ID del proyecto, consulte Obtención de un ID de proyecto.
Request Header
The operation message header is the same as that of a common request. For details, see Tabla 3.
Solicitud
- Descripción del parámetro
Parámetro
Obligatorio
Tipo
Descripción
share
Sí
Object
Para obtener más información, consulte la descripción del campo share.
- Descripción del campo share
Parámetro
Obligatorio
Tipo
Descripción
share_proto
Sí
String
Especifica el protocolo de uso compartido de archivos. El valor puede ser NFS (for Linux OS).
size
Sí
Integer
Especifica el tamaño (GB) del sistema de archivos compartido. La capacidad aplicada del sistema de archivos compartido no puede ser mayor que la cuota permitida. Para ver la cuota permitida, consulte Gestión de cuotas.
name
No
String
Especifica el nombre del sistema de archivos compartido, que contiene de 0 a 255 caracteres y solo puede contener letras, dígitos, guiones (-) y guiones bajos (_).
description
No
String
Especifica la descripción del sistema de archivos compartido, que contiene de 0 a 255 caracteres y solo puede contener letras, dígitos, guiones (-) y guiones bajos (_).
is_public
No
Boolean
(Soportado por las versiones de API de v2.8 a v2.42). Especifica si un sistema de archivos se puede ver públicamente. Si se establece en true, el sistema de archivos se puede ver públicamente. Si se establece en false, el sistema de archivos se puede ver de forma privada. El valor predeterminado es false.
availability_zone
No
String
Especifica el nombre de la zona de disponibilidad. Si este parámetro se deja en blanco, se utilizará la zona de disponibilidad predeterminada. Si la zona de disponibilidad predeterminada no contiene recursos de almacenamiento, se produce un error en la creación del sistema de archivos compartido. El valor contiene de 0 a 255 caracteres.
metadata
No
Object
Especifica la información de metadatos utilizada para crear el sistema de archivos compartido. El valor consiste en uno o más pares clave y valor organizados como un diccionario de cadenas. Para obtener más información, consulte la descripción del campo de metadata.
ATENCIÓN:- Por motivos de seguridad, la API para modificar el campo de metadata aún no está abierta. Por lo tanto, asegúrese de que los parámetros y valores sean correctos al crear un sistema de archivos compartido con encriptación de datos mediante el campo de metadatos.
- A menos que se especifique lo contrario (por ejemplo, #sfs_crypt_key_id), las claves que cumplen con las siguientes reglas en el campo de metadata son para uso interno del sistema. No personalice la configuración para evitar errores internos del sistema causados por conflictos con claves predefinidas del sistema.
- Clave share_used
- Claves que comienzan con #sfs
- Descripción de campos de metadata (crear un sistema de archivos compartido con la función de encriptación)
Al crear un sistema de archivos compartido con la función de encriptación, obtenga el ID de clave, el ID de dominio y el alias de clave de la clave de encriptación mediante la solicitud HTTPS haciendo referencia a la sección Consulta de la lista de CMK en la Referencia de API de Data Encryption Workshop. A continuación, en el campo de metadata, establezca los pares clave-valor de acuerdo con la siguiente tabla. Asegúrese de que los pares clave-valor en el campo de metadata son correctos.
Para crear un sistema de archivos compartido con la función de encriptación, todos los parámetros de la siguiente tabla son obligatorios. Si la función de encriptación no es necesaria, estos parámetros son opcionales.Clave
Tipo de valor
Obligatorio
Descripción
#sfs_crypt_key_id
String
Sí
Especifica el ID de clave de encriptación.
Si este campo, #sfs_crypt_domain_id y #sfs_crypt_alias existen al mismo tiempo, la función de encriptación de datos está habilitada.
#sfs_crypt_domain_id
String
Sí
Especifica el ID de dominio del inquilino.
Si este campo, #sfs_crypt_key_id y #sfs_crypt_alias existen al mismo tiempo, la función de encriptación de datos está habilitada.
#sfs_crypt_alias
String
Sí
Especifica el alias de clave de encriptación.
Si este campo, #sfs_crypt_key_id y #sfs_crypt_domain_id existen al mismo tiempo, la función de encriptación de datos está habilitada.
- Se recomienda utilizar la clave principal predeterminada sfs/default para crear un sistema de archivos compartido cifrado. Para obtener más información, consulte la sección "Encriptación del sistema de archivos" y "Encriptación" en la Guía de usuario de Scalable File Service.
- Cuando se crea un sistema de archivos con un ID de proyecto de empresa, se requiere la siguiente clave en los metadatos.
Clave
Tipo de valor
Obligatorio
Descripción
enterprise_project_id
String
Sí
Especifica el ID del proyecto de empresa.
Cuando la función Proyecto empresarial está habilitada, enterprise_project_id se utiliza como clave para especificar el ID del proyecto de empresa del sistema de archivos compartido.
- Ejemplo de solicitud: POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
{ "share": { "name": "test", "description": "test description", "share_proto": "NFS", "share_network_id": null, "size": 1, "is_public": false } }
- Solicitud de ejemplo (creación de un sistema de archivos compartido con función de encriptación de datos): POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
{ "share": { "name": "test", "description": "test description", "metadata": { "#sfs_crypt_key_id": "9130c90d-73b8-4203-b790-d49f98d503df", "#sfs_crypt_domain_id": "3b2d9670690444c582942801ed7d457b", "#sfs_crypt_alias": "sfs/default" }, "share_proto": "NFS", "share_network_id": null, "size": 1, "is_public": false } }
- Ejemplo de solicitud (con la función Proyecto empresarial activada): POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
{ "share": { "share_type": null, "name": "test", "snapshot_id": null, "description": "test description", "metadata": { "enterprise_project_id": "9130c90d-73b8-4203-b790-d49f98d503df" }, "share_proto": "NFS", "share_network_id": null, "size": 1, "is_public": false } }
Respuesta
- Descripción del parámetro
Parámetro
Tipo
Descripción
share
Object
Para obtener más información, consulte la descripción del campo share.
- Descripción del campo share
Parámetro
Tipo
Descripción
links
Array
Especifica los vínculos de los sistemas de archivos compartidos.
availability_zone
String
Especifica la zona de disponibilidad.
share_server_id
String
Especifica el ID para administrar los servicios compartidos.
id
String
Especifica el ID del sistema de archivos compartido.
size
Integer
Especifica el tamaño (GB) del sistema de archivos compartido.
project_id
String
Especifica el ID del proyecto al que pertenece el sistema de archivos compartido.
metadata
Object
Establece uno o más pares de clave y valor de metadatos como un diccionario de cadenas. El valor de la clave share_used indica la capacidad utilizada del sistema de archivos, en bytes. El valor de la clave enterprise_project_id indica el ID del proyecto de empresa al que pertenece el sistema de archivos.
status
String
Especifica el estado del sistema de archivos compartido.
description
String
Describe el sistema de archivos compartido.
host
String
Especifica el nombre del host.
name
String
Especifica el nombre del sistema de archivos compartido.
created_at
String
Especifica la marca de fecha y hora cuando se creó el sistema de archivos compartido.
share_proto
String
Especifica el protocolo para compartir sistemas de archivos.
share_type_name
String
Especifica el tipo de servicio de almacenamiento asignado para el sistema de archivos compartido, como el almacenamiento de alto rendimiento (compuesto por SSD) y el almacenamiento de gran capacidad (compuesto por discos SATA). Este campo es compatible con API v2.6 y versiones posteriores.
share_type
String
Especifica el ID del tipo de sistema de archivos.
volume_type
String
Especifica el tipo de volumen. La definición de este parámetro es la misma que la de share_type.
export_locations
Array
Muestra las ubicaciones de montaje. Actualmente, solo se admite una única ubicación de montaje. Este parámetro solo existe cuando X-Openstack-Manila-Api-Version especificado en el encabezado de solicitud es menor que 2.9.
export_location
String
Especifica la ubicación de montaje. Este parámetro solo existe cuando X-Openstack-Manila-Api-Version especificado en el encabezado de solicitud es menor que 2.9.
is_public
Boolean
Especifica el nivel de visibilidad del sistema de archivos compartido. Si se devuelve true, el sistema de archivos se puede ver públicamente. Si se devuelve false, el sistema de archivos se puede ver de forma privada. El valor predeterminado es false.
- Ejemplo de respuesta
{ "share": { "status": "creating", "project_id": "16e1ab15c35a457e9c2b2aa189f544e1", "name": "share_London", "share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7", "availability_zone": "az1.dc1", "created_at": "2015-09-18T10:25:24.533287", "export_location": null, "links": [ { "href": "http://192.168.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264", "rel": "self" }, { "href": "http://192.168.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264", "rel": "bookmark" } ], "share_network_id": null, "export_locations": [], "share_proto": "NFS", "host": null, "volume_type": "default", "snapshot_id": null, "is_public": true, "metadata": { "project": "my_app", "aim": "doc" }, "id": "011d21e2-fbc3-4e4a-9993-9ea223f73264", "size": 1, "description": "My custom share London" } }
Cuando el cliente recibe la respuesta del sistema, el sistema de archivos compartido todavía se está creando. Por esta razón, la ruta compartida no se puede consultar inmediatamente. Puede utilizar la API de Consulta de ubicaciones de montaje de un sistema de archivos compartido para consultar la ruta de acceso compartida una vez completada la creación.
Códigos de estado
- Normal
- Anormal
Código de estado
Descripción
400 Bad Request
Se produjo un error en el servidor al procesar la solicitud.
401 Unauthorized
Debe introducir un nombre de usuario y la contraseña para acceder a la página solicitada.
403 Forbidden
El acceso a la página solicitada está prohibido.
404 Not Found
La página solicitada no se ha podido encontrar.
405 Method Not Allowed
No se le permite utilizar el método especificado en la solicitud.
406 Not Acceptable
El cliente no pudo aceptar la respuesta generada por el servidor.
407 Proxy Authentication Required
Debe utilizar el servidor proxy para la autenticación. Entonces la solicitud puede ser procesada.
408 Request Timeout
Se agotó el tiempo de espera de la solicitud.
409 Conflict
La solicitud no se pudo procesar debido a un conflicto.
413 Quota Exceeded
Cuota de usuario insuficiente.
500 Internal Server Error
Se produjo un error al completar la solicitud debido a un problema de servicio interno.
501 Not Implemented
Error al completar la solicitud porque el servidor no admite la función solicitada.
502 Bad Gateway
Error al completar la solicitud porque la solicitud no es válida.
503 Service Unavailable
Se produjo un error al completar la solicitud porque el servicio no está disponible.
504 Gateway Timeout
Se ha producido un error de tiempo de espera de la puerta de enlace.