Object Storage (S3, Ceph RGW)
En el panel de administración: Infrastructure › Cloud provider › Ceph S3 (RGW) (
/infra/s3). Cuentas: Services › Object Storage › S3 accounts (/s3). Precios: Services › Object Storage › PAYG pricing (/s3/policy). Active el módulo en System › Admin › License & updates.
Qué hace
Los clientes crean cuentas S3 desde el portal y obtienen claves de acceso. NexCMP crea y elimina los usuarios correspondientes en su Ceph RADOS Gateway (RGW) mediante la RGW Admin Ops API, lee el uso para la facturación y factura según el modelo de pago por uso: el almacenamiento que supere el nivel gratuito por GB al mes (cobrado por horas) y el tráfico de descarga por GB. Las subidas son gratuitas.
Utilícelo si gestiona un clúster Ceph con RGW y desea revender Object Storage.
Requisitos
| Elemento | Requisito |
|---|---|
| Ceph | Un clúster con al menos un demonio RGW y la Admin Ops API habilitada (el valor predeterminado rgw_enable_apis incluye admin). |
| Usuario administrador | Un usuario RGW para NexCMP con las capacidades que se indican a continuación. No utilice un usuario que contenga datos de clientes. |
| Endpoints | El endpoint S3 que utilizan los clientes y el endpoint Admin Ops. Ambos se introducen como https://host sin ruta, solo en el puerto 443, y deben resolver a una dirección pública: se rechazan las direcciones loopback, link-local, multicast, privadas y unique-local. |
| Certificado | Un certificado válido para el host del endpoint. |
| Registro de uso | Registro de uso de RGW habilitado (rgw_enable_usage_log = true) para que la API de uso pueda reportar el tráfico. |
| Zona | Una zona maestra con el servicio Object Storage (S3) marcado. Consulte Zonas. |
| Almacenamiento | Capacidad en Ceph para las cuotas que comercialice. |
| Depende de | El módulo Object Storage. El tráfico de descarga también cuenta para Bandwidth. |
Preparar la infraestructura
En un nodo de administración de Ceph:
Cree el usuario administrador y asígnele las capacidades de Admin Ops que necesita:
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_keyysecret_keydel resultado. Corresponden a Admin access key y Admin secret key en NexCMP.Active el registro de uso y reinicie los gateways:
bashceph config set client.rgw rgw_enable_usage_log trueConfigure los gateways tras HTTPS en el puerto 443 (un proxy inverso o el propio TLS de RGW), publique el nombre DNS y realice una prueba desde el servidor del panel:
bashcurl -fsS -o /dev/null -w '%{http_code}\n' https://s3.example.com/Debería recibir una respuesta XML de S3 (HTTP 200 o 403), no un tiempo de espera agotado.
Conectar en NexCMP
Asigne el servicio S3 a una zona. Abra Infrastructure › Datacenter › Zone, edite la zona y marque Object Storage (S3). Solo las zonas maestras con el servicio S3 aparecen en el formulario del backend.
Abra Infrastructure › Cloud provider › Ceph S3 (RGW) y haga clic en Add backend:
Campo Valor de ejemplo Nombre del backend Ceph RGW 1Zona la zona del paso 1 Endpoint de RGW Admin Ops https://s3.example.comEndpoint S3 del cliente https://s3.example.comRegión de firma S3 defaultClave de acceso de administrador XXXXClave secreta de administrador XXXXActivo activado Enable sales (requiere probar la conexión primero) desactivado por ahora Motivo del cambio initial setup
Haga clic en OK (guardar) y luego en Check en la fila. NexCMP llama a la Admin Ops API con la clave de administrador. Ceph connection successful y la etiqueta Verified indican que funciona.
Haga clic en Edit, active Enable sales y guarde. NexCMP no permitirá abrir las ventas hasta que una comprobación se haya completado con éxito.
Abra Services › Object Storage › PAYG pricing y establezca los precios:
Campo Significado Almacenamiento por encima del nivel gratuito (VND/GB/mes) Precio del almacenamiento; se factura por hora como el precio mensual dividido entre 730. Descarga (VND/GB) Precio del tráfico saliente. Subida (VND/GB) Siempre 0. Nivel gratuito con Running VM (GB) Fijado en 100 GB por cuenta mientras el cliente tenga al menos una VM en ejecución, compartido entre sus cuentas de S3 por tamaño. Límite de deuda (VND) Cuánto uso impago está permitido. Umbral de facturación (VND) El uso se acumula en una sola factura una vez que supera este importe. Saldo mínimo para crear S3 (VND) Saldo en el monedero necesario para crear una cuenta. Máximo de cuentas S3 por cliente, cuota técnica predeterminada (GB) Límites para nuevas cuentas. 
Los precios de S3 se introducen en VND. Se convierten para su visualización y para los cargos al monedero al tipo de cambio vigente; consulte Divisas y tipos de cambio.
Verificación
- Check devuelve "Ceph connection successful".
- Como cliente (o con una cuenta de prueba), cree una cuenta de S3. En Ceph,
radosgw-admin user listmuestra un nuevo usuario y S3 accounts la enumera. - Cree un bucket con cualquier cliente de S3 utilizando las claves del cliente con el endpoint de cliente. Suba un archivo.
- Tras el siguiente ciclo de facturación por hora, S3 accounts muestra el uso.
Límites y notas
- Un backend que ya tiene cuentas asociadas conserva su zona, endpoint y región; para cambiarlos, cree un nuevo backend.
- Una zona puede tener su propio backend; las cuentas y los backends quedan vinculados a una zona de forma definitiva.
- El nivel gratuito y «las subidas son gratuitas» son reglas fijas, no opciones.
- Las claves se almacenan cifradas; la consola solo muestra el campo «leave blank to keep the current key». Los pares de claves siempre se introducen juntos.
- Las claves secretas de los clientes se muestran una sola vez al crearse, nunca más. Si se pierde una clave, se reemplaza rotándola.
Resolución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
| "Endpoint requires HTTPS" | El endpoint utiliza HTTP sin cifrar | Publique HTTPS en el puerto 443. |
| "Puerto de endpoint no permitido" | Un puerto distinto del 443 | Utilice el puerto HTTPS estándar. |
| "Dirección del endpoint no permitida" | El nombre se resuelve en una dirección privada, loopback, link-local o unique-local | Utilice una dirección pública. |
| "El endpoint solo debe contener el protocolo y el host" | La URL contiene una ruta, consulta o información de usuario | Utilice únicamente https://host. |
| "Error al resolver el endpoint" | El DNS no resuelve desde el servidor del panel | Corrija el DNS. |
| "Error al conectar con Ceph" | Error de firewall o TLS | Pruebe con curl desde el servidor del panel. |
| "Ceph devolvió HTTP 403 AccessDenied" | Claves incorrectas o falta de capabilities | Compruebe las claves y vuelva a ejecutar radosgw-admin caps add. |
| "Respuesta de Ceph no válida" | El endpoint no es una API de Admin Ops de RGW | Apúntelo al RGW, no a una página web. |
| "La prueba de conexión debe completarse con éxito antes de habilitar las ventas" | Activó las ventas antes de un Check exitoso | Ejecute Check y luego habilite las ventas. |
| "Se requieren todas las claves nuevas para el endpoint" | Se cambió el endpoint sin proporcionar ambas claves | Introduzca la clave de acceso y la clave secreta juntas. |
| "El backend ya tiene recursos asociados; cree un nuevo backend para cambiar la zona o el endpoint" | Existen cuentas en este backend | Cree un nuevo backend. |
| "Seleccione la zona maestra con servicio S3" | La zona no es una zona maestra o no tiene el servicio S3 | Marque Object Storage (S3) en la zona. |
| "Región no válida" | La región contiene caracteres distintos de letras, dígitos, - y _ | Utilice default o el nombre de su zonegroup de RGW. |
| "Falta el resumen de uso de Ceph; no facturado" | Registro de uso deshabilitado | Habilite rgw_enable_usage_log. |