Object Storage (S3, Ceph RGW)
Où trouver dans l'admin : Infrastructure › Cloud provider › Ceph S3 (RGW) (
/infra/s3). Comptes : Services › Object Storage › S3 accounts (/s3). Tarification : Services › Object Storage › PAYG pricing (/s3/policy). Activez le module sous System › Admin › License & updates.
Description
Les clients créent des comptes S3 depuis le portail et obtiennent des clés d'accès. NexCMP crée et supprime les utilisateurs correspondants sur votre Ceph RADOS Gateway (RGW) via l'API Admin Ops du RGW, lit l'utilisation pour la facturation et facture à l'usage : le stockage au-delà d'un palier gratuit par Go et par mois (facturé à l'heure) ainsi que le trafic de téléchargement par Go. Les téléversements sont gratuits.
Utilisez cette option lorsque vous exploitez un cluster Ceph avec RGW et souhaitez revendre du stockage objet.
Prérequis
| Élément | Prérequis |
|---|---|
| Ceph | Un cluster doté d'au moins un démon RGW, avec l'Admin Ops API activée (le défaut rgw_enable_apis inclut admin). |
| Utilisateur administrateur | Un utilisateur RGW pour NexCMP disposant des privilèges listés ci-dessous. N'utilisez pas un utilisateur qui possède des données clients. |
| Points de terminaison | Le point de terminaison S3 utilisé par les clients et le point de terminaison Admin Ops. Tous deux sont écrits sous la forme https://host sans chemin, port 443 uniquement, et doivent se résoudre en une adresse publique : les adresses de boucle locale, de liaison locale, de multidiffusion, privées et locales uniques sont refusées. |
| Certificat | Un certificat valide pour l'hôte du point de terminaison. |
| Journal d'utilisation | La journalisation d'utilisation RGW activée (rgw_enable_usage_log = true), afin que l'API d'utilisation puisse rapporter le trafic. |
| Zone | Une zone principale avec le service Object Storage (S3) coché. Voir Zones. |
| Stockage | De la capacité dans Ceph pour les quotas que vous vendez. |
| Dépend de | Le module Object Storage. Le trafic de téléchargement entrant compte également dans Bandwidth. |
Préparer l'infrastructure
Sur un nœud d'administration Ceph :
Créez l'utilisateur administrateur et attribuez-lui les privilèges Admin Ops nécessaires :
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-adminCopiez la
access_keyet lasecret_keydepuis la sortie. Ce sont la clé d'accès administrateur et la clé secrète administrateur dans NexCMP.Activez le journal d'utilisation et redémarrez les passerelles :
bashceph config set client.rgw rgw_enable_usage_log truePlacez les passerelles derrière HTTPS sur le port 443 (un proxy inverse ou le TLS propre au RGW), publiez le nom DNS et testez depuis le serveur du panneau :
bashcurl -fsS -o /dev/null -w '%{http_code}\n' https://s3.example.com/Vous devriez obtenir une réponse XML S3 (HTTP 200 ou 403), et non un délai d'attente (timeout).
Connecter dans NexCMP
Attribuer le service S3 à une zone. Ouvrez Infrastructure › Datacenter › Zone, modifiez la zone et cochez Object Storage (S3). Seules les zones principales disposant du service S3 apparaissent dans le formulaire du backend.
Ouvrez Infrastructure › Cloud provider › Ceph S3 (RGW) et cliquez sur Add backend :
Champ Exemple de valeur Nom du backend Ceph RGW 1Zone la zone de l'étape 1 Point de terminaison RGW Admin Ops https://s3.example.comPoint de terminaison S3 client https://s3.example.comRégion de signature S3 defaultClé d'accès administrateur XXXXClé secrète administrateur XXXXActif activé Activer les ventes (nécessite d'abord un test de connexion) désactivé pour l'instant Motif de la modification initial setup
Cliquez sur OK (enregistrer), puis sur Check dans la ligne. NexCMP appelle l'API Admin Ops avec la clé admin. Ceph connection successful et l'étiquette Verified indiquent que tout fonctionne.
Cliquez sur Edit, activez Enable sales et enregistrez. NexCMP refuse d'ouvrir les ventes tant qu'un test n'a pas réussi.
Ouvrez Services › Object Storage › PAYG pricing et définissez la tarification :
Champ Description Stockage au-delà du palier gratuit (VND/Go/mois) Prix du stockage ; facturé à l'heure comme le prix mensuel divisé par 730. Téléchargement sortant (VND/Go) Prix du trafic sortant. Téléchargement entrant (VND/Go) Toujours 0. Palier gratuit avec VM en cours d'exécution (Go) Fixé à 100 Go par compte tant que le client a au moins une VM en cours d'exécution, partagé entre ses comptes S3 par taille. Limite de découvert (VND) Montant d'utilisation impayée autorisé. Seuil de facturation (VND) L'utilisation est regroupée en une facture une fois ce montant dépassé. Solde min. pour créer S3 (VND) Solde du portefeuille requis pour créer un compte. Comptes S3 max. par client, Quota technique par défaut (Go) Limites pour les nouveaux comptes. 
Les prix S3 sont saisis en VND. Ils sont convertis pour l'affichage et les prélèvements sur le portefeuille au taux de change en vigueur ; voir Currency and exchange rates.
Vérification
- Check renvoie « Ceph connection successful ».
- En tant que client (ou avec un compte de test), créez un compte S3. Sur Ceph,
radosgw-admin user listaffiche un nouvel utilisateur, et S3 accounts le liste. - Créez un compartiment avec n'importe quel client S3 en utilisant les clés du client sur le point de terminaison client. Téléversez un fichier.
- Après le cycle de facturation de l'heure suivante, S3 accounts affiche l'utilisation.
Limites et remarques
- Un backend qui possède déjà des comptes associés conserve sa zone, son point de terminaison et sa région ; pour les modifier, créez un nouveau backend.
- Une zone peut avoir son propre backend ; les comptes et les backends sont définitivement liés à une zone.
- Le palier gratuit et la gratuité des téléversements sont des règles fixes, non des options.
- Les clés sont stockées de manière chiffrée ; la console n'affiche qu'un champ « laisser vide pour conserver la clé actuelle ». Une paire de clés est toujours saisie ensemble.
- Les clés secrètes des clients ne sont affichées qu'une seule fois à la création, plus jamais. Une clé perdue est remplacée par une rotation.
Dépannage
| Symptôme | Cause | Solution |
|---|---|---|
| "Endpoint requires HTTPS" | Le point de terminaison utilise du HTTP non chiffré | Publiez HTTPS sur le port 443. |
| "Port de point de terminaison non autorisé" | Un port autre que 443 | Utilisez le port HTTPS standard. |
| "Adresse de point de terminaison non autorisée" | Le nom se résout vers une adresse privée, de boucle locale (loopback), locale au lien (link-local) ou locale unique (unique-local) | Utilisez une adresse publique. |
| "Le point de terminaison ne doit contenir que le protocole et l'hôte" | L'URL comporte un chemin, une requête ou des informations utilisateur | Utilisez https://host uniquement. |
| "Échec de la résolution du point de terminaison" | La résolution DNS échoue depuis le serveur du panneau | Corrigez le DNS. |
| "Failed to connect to Ceph" | Erreur de pare-feu ou de TLS | Testez avec curl depuis le serveur du panneau. |
| "Ceph returned HTTP 403 AccessDenied" | Clés incorrectes ou privilèges manquants | Vérifiez les clés et relancez radosgw-admin caps add. |
| "Invalid Ceph response" | L'endpoint ne correspond pas à une API RGW Admin Ops | Pointez vers le RGW, et non vers une page Web. |
| "Le test de connexion doit réussir avant d'activer la vente" | Vous avez activé les ventes avant un Check réussi | Exécutez Check, puis activez les ventes. |
| "Toutes les nouvelles clés pour le point de terminaison sont requises" | Endpoint modifié sans les deux clés | Saisissez la clé d'accès et la clé secrète ensemble. |
| "Le backend possède déjà des ressources associées ; créez un nouveau backend pour changer de zone ou de point de terminaison" | Des comptes existent sur ce backend | Créez un nouveau backend. |
| "Sélectionnez la zone principale avec le service S3" | La zone n'est pas une zone maître ou ne dispose pas du service S3 | Cochez Object Storage (S3) sur la zone. |
| "Invalid region" | La région contient des caractères autres que des lettres, des chiffres, - et _ | Utilisez default ou le nom de votre zonegroup RGW. |
| "Résumé d'utilisation Ceph manquant ; non facturé" | Journal d'utilisation désactivé | Activez rgw_enable_usage_log. |