Criação de um sistema de arquivos compartilhado
Função
Essa API é usada para criar um sistema de arquivos compartilhado. Depois que o sistema de arquivos for criado, você precisará montá-lo em ECSs para obter o armazenamento de arquivos compartilhados. Para obter detalhes sobre como montar o sistema de arquivos, consulte Primeiros passos do SFS.
Esta API é uma API assíncrona. Se o código de estado retornado for 200, a solicitação da API será entregue e recebida com sucesso. Posteriormente, você pode consultar o status e o caminho do sistema de arquivos compartilhados consultando Consulta de detalhes sobre um sistema de arquivos compartilhado para identificar se a criação foi concluída e bem-sucedida. Se o status do sistema de arquivos compartilhado available ou se o caminho compartilhado for gerado, a criação será bem-sucedida.
Depois que um sistema de arquivos compartilhado é criado com êxito, ele pode ser usado somente depois que você adicionar regras de acesso de compartilhamento, consultando Adição de uma regra de acesso de sistema de arquivos.
URI
- POST /v2/{project_id}/shares
- Descrição do parâmetro
Parâmetro
Obrigatoriedade
Tipo
Descrição
project_id
Sim
String
Especifica o ID do projeto do operador. Para obter detalhes de como conseguir o ID do projeto, consulte Obtenção de um ID de projeto.
Request Header
The operation message header is the same as that of a common request. For details, see Tabela 3.
Solicitação
- Descrição do parâmetro
Parâmetro
Obrigatoriedade
Tipo
Descrição
share
Sim
Object
Para obter detalhes, consulte a descrição do campo de share.
- Descrição do campo de share
Parâmetro
Obrigatoriedade
Tipo
Descrição
share_proto
Sim
String
Especifica o protocolo de compartilhamento de arquivos. O valor pode ser NFS (para SO Linux).
size
Sim
Integer
Especifica o tamanho (GB) do sistema de arquivos compartilhado. A capacidade aplicada do sistema de arquivos compartilhado não pode ser maior que a cota permitida. Para exibir a cota permitida, consulte Gerenciamento de cota.
name
Não
String
Especifica o nome do sistema de arquivos compartilhado, que contém de 0 a 255 caracteres e pode conter somente letras, dígitos, hífenes (-) e sublinhados (_).
description
Não
String
Especifica a descrição do sistema de arquivos compartilhado, que contém de 0 a 255 caracteres e pode conter somente letras, dígitos, hífenes (-) e sublinhados (_).
is_public
Não
Boolean
(Suportado pelas versões da API de v2.8 a v2.42). Especifica se um sistema de arquivos pode ser visto publicamente. Se estiver definido como true, o sistema de arquivos pode ser visto publicamente. Se for definido como false, o sistema de arquivos pode ser visto de forma privada. O valor padrão é false.
availability_zone
Não
String
Especifica o nome da zona de disponibilidade. Se esse parâmetro for deixado em branco, a zona de disponibilidade padrão será usada. Se a zona de disponibilidade padrão não contiver recursos de armazenamento, a criação do sistema de arquivos compartilhado falhará. O valor contém de 0 a 255 caracteres.
metadata
Não
Object
Especifica as informações de metadados usadas para criar o sistema de arquivos compartilhado. O valor consiste em um ou mais pares de chave e valor organizados como um dicionário de cadeias. Para obter detalhes, consulte a descrição do campo de metadata.
CUIDADO:- Por questões de segurança, a API para modificar o campo de metadata ainda não foi aberta. Portanto, verifique se os parâmetros e valores estão corretos ao criar um sistema de arquivos compartilhado com criptografia de dados usando o campo de metadata.
- A menos que especificado de outra forma (por exemplo, #sfs_crypt_key_id), as chaves que estão em conformidade com as seguintes regras no campo de metadata são para uso interno do sistema. Não personalize as configurações para evitar erros internos do sistema causados por conflitos com chaves predefinidas do sistema.
- Chave share_used
- Chaves que começam com #sfs
- Descrição dos campos de metadata (criação de um sistema de arquivos compartilhado com a função de criptografia)
Ao criar um sistema de arquivos compartilhado com a função de criptografia, obtenha o ID da chave, o ID do domínio e o alias da chave usando a solicitação HTTPS consultando a seção Consulta da lista de CMKs na Referência de API do Data Encryption Workshop. Em seguida, no campo de metadata, defina os pares chave-valor de acordo com a tabela a seguir. Certifique-se de que os pares chave-valor no campo de metadata estejam corretos.
Para criar um sistema de arquivos compartilhado com a função de criptografia, todos os parâmetros na tabela a seguir são obrigatórios. Se a função de criptografia não for necessária, esses parâmetros são opcionais.Chave
Tipo do valor
Obrigatoriedade
Descrição
#sfs_crypt_key_id
String
Sim
Especifica o ID da chave de criptografia.
Se esse campo, #sfs_crypt_domain_id e #sfs_crypt_alias existirem ao mesmo tempo, a função de criptografia de dados será ativada.
#sfs_crypt_domain_id
String
Sim
Especifica o ID do domínio do locatário.
Se esse campo, #sfs_crypt_key_id e #sfs_crypt_alias existirem ao mesmo tempo, a função de criptografia de dados será ativada.
#sfs_crypt_alias
String
Sim
Especifica o alias da chave de criptografia.
Se esse campo, #sfs_crypt_key_id e #sfs_crypt_domain_id existirem ao mesmo tempo, a função de criptografia de dados será ativada.
- É aconselhável usar a chave primária padrão sfs/default para criar um sistema de arquivos compartilhado criptografado. Para obter detalhes, consulte a seção "Criptografia do sistema de arquivos" e "Criptografia" no Guia de usuário do Scalable File Service.
- Quando você cria um sistema de arquivos com um ID de projeto empresarial, a seguinte chave é necessária nos metadados.
Chave
Tipo do valor
Obrigatoriedade
Descrição
enterprise_project_id
String
Sim
Especifica o ID do projeto empresarial.
Quando a função Projeto Empresarial está ativada, enterprise_project_id é usado como uma chave para especificar o ID do projeto empresarial do sistema de arquivos compartilhado.
- Exemplo de solicitação: POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
{ "share": { "name": "test", "description": "test description", "share_proto": "NFS", "share_network_id": null, "size": 1, "is_public": false } }
- Exemplo de solicitação (criação de um sistema de arquivos compartilhado com função de criptografia de dados): 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 } }
- Exemplo de solicitação (com a função Projeto Empresarial ativada): 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 } }
Resposta
- Descrição do parâmetro
Parâmetro
Tipo
Descrição
share
Object
Para obter detalhes, consulte a descrição do campo de share.
- Descrição do campo share
Parâmetro
Tipo
Descrição
links
Array
Especifica os links de sistemas de arquivos compartilhados.
availability_zone
String
Especifica a zona de disponibilidade.
share_server_id
String
Especifica o ID para gerenciar serviços de compartilhamento.
id
String
Especifica o ID do sistema de arquivos compartilhado.
size
Integer
Especifica o tamanho (GB) do sistema de arquivos compartilhado.
project_id
String
Especifica o ID do projeto ao qual o sistema de arquivos compartilhado pertence.
metadata
Object
Define uma ou mais chaves de metadados e pares de valor como um dicionário de cadeias de caracteres. O valor da chave share_used indica a capacidade usada pelo sistema de arquivos, em bytes. O valor da chave enterprise_project_id indica o ID do projeto empresarial ao qual o sistema de arquivos pertence.
status
String
Especifica o status do sistema de arquivos compartilhado.
description
String
Descreve o sistema de arquivos compartilhado.
host
String
Especifica o nome do host.
name
String
Especifica o nome do sistema de arquivos compartilhado.
created_at
String
Especifica o carimbo de data e hora quando o sistema de arquivos compartilhado foi criado.
share_proto
String
Especifica o protocolo para compartilhar sistemas de arquivos.
share_type_name
String
Especifica o tipo de serviço de armazenamento atribuído ao sistema de arquivos compartilhado, como armazenamento de alto desempenho (composto por SSDs) e armazenamento de grande capacidade (composto por discos SATA). Esse campo é compatível com a API v2.6 e versões posteriores.
share_type
String
Especifica o ID do tipo de sistema de arquivos.
volume_type
String
Especifica o tipo de volume. A definição deste parâmetro é a mesma de share_type.
export_locations
Array
Lista os locais de montagem. Atualmente, apenas um único local de montagem é suportado. Esse parâmetro existe somente quando X-Openstack-Manila-Api-Version especificado no cabeçalho da solicitação é menor que 2.9.
export_location
String
Especifica a localização da montagem. Esse parâmetro existe somente quando X-Openstack-Manila-Api-Version especificado no cabeçalho da solicitação é menor que 2.9.
is_public
Boolean
Especifica o nível de visibilidade do sistema de arquivos compartilhado. Se true for retornado, o sistema de arquivos pode ser visto publicamente. Se false for retornado, o sistema de arquivos pode ser visto privadamente. O valor padrão é false.
- Exemplo de resposta
{ "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" } }
Quando o cliente recebe a resposta do sistema, o sistema de arquivos compartilhado ainda está sendo criado. Por esse motivo, o caminho compartilhado não pode ser consultado imediatamente. Você pode usar a API de Consulta de locais de montagem de um sistema de arquivos compartilhado para consultar o caminho compartilhado após a conclusão da criação.
Códigos de estado
- Normal
- Anormal
Código de estado
Descrição
400 Bad Request
O servidor falhou ao processar a solicitação.
401 Unauthorized
Você precisa digitar o nome de usuário e senha para acessar a página solicitada.
403 Forbidden
O acesso à página solicitada é proibido.
404 Not Found
A página solicitada não foi encontrada.
405 Method Not Allowed
Você não tem permissão para usar o método especificado na solicitação.
406 Not Acceptable
A resposta gerada pelo servidor não poderia ser aceita pelo cliente.
407 Proxy Authentication Required
Você deve usar o servidor proxy para autenticação. Em seguida, a solicitação pode ser processada.
408 Request Timeout
A solicitação expirou o tempo limite.
409 Conflict
A solicitação não pôde ser processada devido a um conflito.
413 Quota Exceeded
Cota de usuário insuficiente.
500 Internal Server Error
Falhou ao concluir a solicitação porque ocorre um erro de serviço interno.
501 Not Implemented
Falhou ao concluir a solicitação porque o servidor não suporta a função solicitada.
502 Bad Gateway
Falhou ao concluir a solicitação porque a solicitação é inválida.
503 Service Unavailable
Falhou ao concluir a solicitação porque o serviço não está disponível.
504 Gateway Timeout
Ocorreu um erro de tempo limite de gateway.