Object Storage (S3, Ceph RGW)
Onde encontrar no admin: Infrastructure › Cloud provider › Ceph S3 (RGW) (
/infra/s3). Contas: Services › Object Storage › S3 accounts (/s3). Preços: Services › Object Storage › PAYG pricing (/s3/policy). Ative o módulo em System › Admin › License & updates.
O que faz
Os clientes criam contas S3 no portal e obtêm chaves de acesso. O NexCMP cria e exclui os usuários correspondentes no seu Ceph RADOS Gateway (RGW) por meio da API Admin Ops do RGW, lê o uso para faturamento e cobra conforme o uso: armazenamento acima de uma franquia gratuita por GB por mês (cobrado por hora) e tráfego de download por GB. Os uploads são gratuitos.
Use-o quando você opera um cluster Ceph com RGW e deseja revender armazenamento de objetos.
Requisitos
| Item | Requisito |
|---|---|
| Ceph | Um cluster com pelo menos um daemon RGW, com a Admin Ops API ativada (a padrão rgw_enable_apis inclui admin). |
| Usuário admin | Um usuário RGW para o NexCMP com as permissões listadas abaixo. Não use um usuário que possua dados de clientes. |
| Endpoints | O endpoint S3 que os clientes usam e o endpoint Admin Ops. Ambos são gravados como https://host sem caminho, porta 443 apenas, e devem resolver para um endereço público: endereços de loopback, link-local, multicast, privados e unique-local são recusados. |
| Certificado | Um certificado válido para o host do endpoint. |
| Log de uso | O log de uso do RGW ativado (rgw_enable_usage_log = true), para que a API de uso possa relatar o tráfego. |
| Zone | Uma master zone com o serviço Object Storage (S3) marcado. Veja Zones. |
| Armazenamento | Capacidade no Ceph para as cotas que você vende. |
| Depende de | O módulo Object Storage. O tráfego de download também conta para Bandwidth. |
Preparar a infraestrutura
Em um nó de administração do Ceph:
Crie o usuário administrador e dê a ele as capacidades Admin Ops necessárias:
bashradosgw-admin user create --uid=nexcmp-admin --display-name="NexCMP admin" radosgw-admin caps add --uid=nexcmp-admin --caps="users=*;buckets=*;usage=read;metadata=read" radosgw-admin user info --uid=nexcmp-adminCopie
access_keyesecret_keyda saída. Eles são a Admin access key e a Admin secret key no NexCMP.Ative o log de uso e reinicie os gateways:
bashceph config set client.rgw rgw_enable_usage_log trueColoque os gateways atrás de HTTPS na porta 443 (um proxy reverso ou o TLS próprio do RGW), publique o nome DNS e teste a partir do servidor do painel:
bashcurl -fsS -o /dev/null -w '%{http_code}\n' https://s3.example.com/Você deve receber uma resposta XML do S3 (HTTP 200 ou 403), e não um timeout.
Conectar no NexCMP
Atribua o serviço S3 a uma zone. Abra Infrastructure › Datacenter › Zone, edite a zone e marque Object Storage (S3). Apenas master zones com o serviço S3 aparecem no formulário do backend.
Abra Infrastructure › Cloud provider › Ceph S3 (RGW) e clique em Add backend:
Campo Valor de exemplo Backend name Ceph RGW 1Zone a zone da etapa 1 RGW Admin Ops endpoint https://s3.example.comEndpoint S3 do cliente https://s3.example.comRegião de assinatura do S3 defaultChave de acesso do admin XXXXChave secreta do admin XXXXActive on Habilitar vendas (exige teste de conexão prévio) off por enquanto Motivo da alteração initial setup
Clique em OK (salvar) e depois em Check na linha. O NexCMP chama a API Admin Ops com a chave de admin. Ceph connection successful e a tag Verified indicam que está funcionando.
Clique em Edit, ative Enable sales e salve. O NexCMP recusa-se a abrir as vendas até que uma verificação seja bem-sucedida.
Abra Services › Object Storage › PAYG pricing e defina os preços:
Campo Significado Armazenamento além da camada gratuita (VND/GB/mês) Preço de armazenamento; cobrado por hora como o preço mensal dividido por 730. Download (VND/GB) Preço para tráfego de saída. Upload (VND/GB) Sempre 0. Camada gratuita com VM em execução (GB) Fixo em 100 GB por conta enquanto o cliente tiver pelo menos uma VM em execução, compartilhado entre suas contas de S3 por tamanho. Limite de dívida (VND) Quanto de uso não pago é permitido. Limite de faturamento (VND) O uso é consolidado em uma fatura assim que ultrapassa este valor. Saldo mín. para criar S3 (VND) Saldo necessário na carteira para criar uma conta. Máx. de contas S3 por cliente, cota técnica padrão (GB) Limites para novas contas. 
Os preços do S3 são inseridos em VND. Eles são convertidos para exibição e cobrança na carteira à taxa de câmbio vigente; consulte Currency and exchange rates.
Verificar
- Check retorna "Ceph connection successful".
- Como cliente (ou com uma conta de teste), crie uma conta S3. No Ceph,
radosgw-admin user listexibe um novo usuário, e S3 accounts o lista. - Crie um bucket com qualquer cliente S3 usando as chaves do cliente contra o endpoint do cliente. Faça o upload de um arquivo.
- Após o próximo ciclo de faturamento da hora, S3 accounts exibe o uso.
Limites e observações
- Um backend que já possui contas vinculadas mantém sua zona, endpoint e região; para alterá-los, crie um novo backend.
- Uma zona pode ter seu próprio backend; contas e backends ficam permanentemente vinculados a uma zona.
- A camada gratuita e a gratuidade de uploads são regras fixas, não opções.
- As chaves são armazenadas criptografadas; o console exibe apenas um campo para "deixar em branco para manter a chave atual". Um par de chaves é sempre inserido em conjunto.
- As chaves secretas dos clientes são exibidas uma vez na criação e nunca mais. Uma chave perdida é substituída por rotação.
Resolução de problemas
| Sintoma | Causa | Correção |
|---|---|---|
| "Endpoint requires HTTPS" | O endpoint usa HTTP simples | Publique HTTPS na porta 443. |
| "Porta do endpoint não permitida" | Uma porta diferente de 443 | Use a porta HTTPS padrão. |
| "Endereço do endpoint não permitido" | O nome resolve para um endereço privado, de loopback, link-local ou unique-local | Use um endereço público. |
| "O endpoint deve conter apenas protocolo e host" | A URL possui um caminho, consulta ou informações de usuário | Use apenas https://host. |
| "Falha ao resolver o endpoint" | O DNS não resolve a partir do servidor do painel | Corrija o DNS. |
| "Failed to connect to Ceph" | Erro de firewall ou TLS | Teste com curl a partir do servidor do painel. |
| "Ceph returned HTTP 403 AccessDenied" | Chaves incorretas ou permissões ausentes | Verifique as chaves e execute radosgw-admin caps add novamente. |
| "Invalid Ceph response" | O endpoint não é uma RGW Admin Ops API | Aponte para o RGW e não para uma página web. |
| "O teste de conexão deve ser bem-sucedido antes de habilitar as vendas" | Você ativou as vendas antes de um Check bem-sucedido | Execute Check e, em seguida, ative as vendas. |
| "Todas as novas chaves para o endpoint são obrigatórias" | Endpoint alterado sem ambas as chaves | Insira a chave de acesso e a chave secreta juntas. |
| "O backend já possui recursos vinculados; crie um novo backend para alterar a zona ou o endpoint" | Existem contas neste backend | Crie um novo backend. |
| "Selecione a zona master com serviço S3" | A zona não é uma zona mestre ou não possui o serviço S3 | Marque Object Storage (S3) na zona. |
| "Invalid region" | A região contém caracteres diferentes de letras, dígitos, - e _ | Use default ou o nome do seu zonegroup do RGW. |
| "Resumo de uso do Ceph ausente; não faturado" | Log de uso desativado | Ative rgw_enable_usage_log. |