Stockage dans le cloud Riak. Partie 2. Configuration du composant Riak CS

Dans cet article, nous continuerons à configurer les composants individuels du système Riak Cloud Storage, à savoir le composant Riak CS.



image


Cet article est une suite de traductions gratuites du manuel officiel du système Riak CS 2.1.1.

Partie 1. Configuration de Riak KV

Partie 3. Stanchion, proxy et équilibrage de charge, client S3

Afin de garantir le bon fonctionnement du composant Riak CS, il est important de savoir comment se connecter au Riak KV. Un nœud Riak CS fonctionne généralement sur le même serveur que son nœud Riak KV correspondant. Cela signifie que des modifications ne seront nécessaires que si le Riak est configuré à l'aide de paramètres autres que ceux par défaut.



Les paramètres de Riak CS se trouvent sur le nœud CS dans les fichiers de configuration riak-cs.conf et advanced.conf. Les deux fichiers se trouvent généralement dans le répertoire / etc / riak-cs. Le nouveau fichier riak-cs.conf est une simple liste avec des paires config = option , mais il existe des options qui ne peuvent être modifiées que via le fichier advanced.config. Cela ressemble à quelque chose comme ceci:



ADVANCED.CONFIG



{riak_cs, [
    {parameter1, value},
    {parameter2, value},
    %% and so on...
]},


Si vous effectuez une mise à niveau à partir d'une version antérieure à 2.0.0 - lorsque le fichier riak-cs.conf a été introduit - vous pouvez toujours utiliser le fichier app.config situé à l'emplacement de riak-cs.conf / advanced.config. Le fichier app.config a la même syntaxe que le fichier advanced.conf, de sorte que tous les exemples utilisés pour advanced.conf peuvent être directement utilisés dans le fichier app.config.

Veuillez noter que l'ancien fichier app.config remplace les nouveaux fichiers de configuration. Si app.config est présent, ni riak-cs.conf ni advanced.config ne seront utilisés.
Remarque: à propos de l'héritage app.config

Si vous mettez à niveau des versions précédentes de Riak CS vers Riak CS 2.0 et prévoyez de continuer à utiliser le fichier app.config hérité, veuillez noter que les noms d'options ont changé dans certains fichiers de configuration. De plus, le format IP / Port a été modifié dans la version 2.0 pour Stanchion, Riak, Riak CS. Vous pouvez voir les modifications dans le document sur les mises à niveau progressives .



Pour une liste exhaustive des options disponibles et une liste complète des options pour app.config, consultez le document de référence de configuration complète .
Les sections ci-dessous décrivent les options de configuration importantes pour le Riak CS.



Hôte et port.



Pour connecter le Riak CS au Riak KV, assurez-vous que l'hôte et le port utilisés par le Riak KV sont définis:



  • riak_host - remplacez 127.0.0.1:8087 par l'adresse IP et le numéro de port du nœud Riak KV auquel vous souhaitez connecter le Riak CS.


Vous devez également définir l'hôte d'écoute pour Riak CS:



  • listener - remplacez 127.0.0.1:8080 par l'adresse IP et le numéro de port de l'hôte Riak CS si vous avez l'intention de l'utiliser de manière non locale. Assurez-vous que le numéro de port n'est pas en conflit avec le port riak_host de l'hôte Riak KV et de l'hôte Riak CS qui s'exécutent sur la même machine.


Remarque: à propos de l'adresse IP L'adresse

IP que vous entrez ici doit correspondre à l'adresse IP spécifiée pour l'interface des tampons de protocole Riak KV dans le fichier riak.conf, sauf si le Riak CS fonctionne sur un réseau complètement différent, auquel cas il est obligatoire traduction d'adresses.
Après quelques modifications apportées à riak-cs.conf, redémarrez le nœud Riak CS s'il était déjà en cours d'exécution.



Paramètres du nœud de poteau



Si vous utilisez un nœud Riak CS, vous n'avez pas besoin de modifier les paramètres de Stanchion, car il s'exécute sur l'hôte local (Remarque. Stanchion est installé dans une seule instance pour l'ensemble du cluster). Si le système Riak CS possède plusieurs nœuds, vous devez spécifier l'adresse IP et le port du nœud Stanchion et si SSL est utilisé ou non.

Les paramètres de Stanchion se trouvent dans le fichier de configuration riak-cs.conf du nœud Riak CS situé dans le répertoire ./etc/riak-cs/conf de chaque nœud Riak CS.



Pour définir l'hôte et le port pour Stanchion, assurez-vous que le paramètre suivant est défini pour l'hôte et le port utilisés par Stanchion:



  • stanchion_host - Remplacez 127.0.0.1:8085 par l'adresse IP et le port de l'hôte Stanchion.


Utiliser SSL



SSL est désactivé par défaut dans Stanchion, c'est-à-dire le paramètre stanchion_ssl est désactivé . Si Stanchion est configuré pour utiliser SSL, modifiez la valeur sur on . L'exemple de configuration suivant définit Stanchion sur localhost, port 8085 (par défaut) et autorise l'utilisation de SSL.



RIAK-CS.CONF



stanchion_host = 127.0.0.1:8085
stanchion_ssl = on


ADVANCED.CONFIG

{riak_cs, [
    %% Other configs
    {stanchion_host, {"127.0.0.1", 8085}},
    {stanchion_ssl, true},
    %% Other configs
]}


Définition du nom d'hôte



Vous pouvez également définir un nom d'hôte Riak CS plus pratique pour vous aider à identifier l'hôte invité lors du dépannage. Ceci est configuré dans le fichier de configuration riak-cs.conf ou vm.args, qui se trouve également dans /etc/riak-cs.conf. Le nom du nœud Riak CS sera défini ici riak_cs@127.0.0.1:



RIAK-CS.CONF



nodename = riak_cs@127.0.0.1


VM.ARGS



-name riak_cs@127.0.0.1


Remplacez 127.0.0.1 par l'adresse IP ou le nom d'hôte du serveur exécutant Riak CS.



Créer un compte administrateur



Un administrateur est un utilisateur spécialement autorisé à effectuer des actions telles que la création d'utilisateurs ou l'obtention de statistiques. Un compte administrateur n'est pas différent du compte d'un autre utilisateur. Vous devez créer un compte administrateur pour une utilisation future de Riak CS.

Remarque: à propos de la création d'un utilisateur anonyme.



Avant de créer un compte administrateur, vous devez définir le paramètre anonymous_user_creation = on dans riak-cs.conf (ou définir {anonymous_user_creation, true} dans advanced.config / app.config). Vous pouvez le désactiver à nouveau lors de la création de l'administrateur.
Pour créer un compte administrateur, utilisez une requête HTTP POST et le nom d'utilisateur souhaité pour le compte administrateur. Par exemple comme:



CURL



curl -H 'Content-Type: application/json' \
  -XPOST http://<host>:<port>/riak-cs/user \
  --data '{"email":"admin@example.com", "name":"admin"}'


La réponse JSON doit ressembler à ceci:



{
  "display_name" : "admin",
  "email" : "admin@example.com",
  "id" : "8d6f05190095117120d4449484f5d87691aa03801cc4914411ab432e6ee0fd6b",
  "key_id" : "OUCXMB6I3HOZ6D0GWO2D",
  "key_secret" : "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==",
  "name" : "admin_example",
  "status" : "enabled"
}


Vous pouvez éventuellement envoyer et recevoir du XML en définissant Content-Type sur application / xml.



Une fois l'administrateur créé, vous devez définir des privilèges d'administrateur pour chaque nœud Riak CS. Les privilèges d'administrateur sont définis dans le fichier de configuration riak-cs.conf situé dans le répertoire / etc / riak-cs. Insérez une ligne key_id entre les guillemets pour admin.key. Collez le champ de paramètre secret_key admin.secret:



RIAK-CS.CONF



admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==


ADVANCED.CONFIG



{riak_cs, [
           %% Admin user credentials
           {admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
           {admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
           %% Other configs
          ]}


Limiter les seaux



Vous pouvez également définir une limite sur le nombre de compartiments créés par l'utilisateur. La valeur par défaut est de 100 seaux maximum. N'oubliez pas que si l'utilisateur dépasse la limite de création de compartiment, il sera toujours disponible pour d'autres opérations, y compris la suppression d'un compartiment. Vous pouvez modifier la limite par défaut en utilisant le paramètre max_buckets_per_user sur chaque nœud du fichier advanced.config - et ce ne sera pas un changement égal dans le fichier riak-cs.conf. Par exemple, la configuration ci-dessous spécifie un maximum de 1000:



ADVANCED.CONFIG



{riak_cs, [
           %% Other configs
           {max_buckets_per_user, 1000},
           %% Other configs
          ]}


Si vous souhaitez supprimer les restrictions de création de buckets par un utilisateur, vous pouvez définir la valeur du paramètre max_buckets_per_user sur unlimited.



Pools de connexion



Riak CS utilise deux pools de connexions explicites pour communiquer avec Riak KV: les pools primaires (principaux) et secondaires.



Le pool de connexions principal est utilisé pour traiter la plupart des demandes d'API liées au chargement ou à la récupération d'objets. Il est spécifié dans le fichier de configuration sous la forme pool.request.size . La taille du pool par défaut est de 128. Le



pool de connexions secondaire est strictement utilisé pour les demandes d'énumération du contenu du compartiment. Un pool de connexions distinct est nécessaire pour améliorer les performances.

Le pool de connexions secondaire est défini dans le fichier de configuration comme pool.list.size . Par défaut, sa taille est de 5.



Ci-dessous se trouve l'entrée de configuration connection_poolsla valeur par défaut qui se trouve dans le fichier app.config:



RIAK-CS.CONF



pool.request.size = 128
pool.request.overflow = 0
pool.list.size = 5
pool.list.overflow = 0


ADVANCED.CONFIG



{riak_cs, [
           %% Other configs
           {connection_pools,
           [
            {request_pool, {128, 0} },
            {bucket_list_pool, {5, 0} }
           ]},
           %% Other configs
]}


La valeur de chaque pool est divisée en paires, le premier nombre représentant la taille normale du pool. Il s'agit du nombre de requêtes simultanées d'un type particulier que le nœud Riak CS peut servir. Le deuxième nombre est le nombre de débordements de pool autorisés. Il n'est pas recommandé d'utiliser une valeur autre que 0 pour le dépassement ici, sauf si des tests minutieux ont montré que la valeur choisie est utile pour le cas particulier.



Réglage



Nous vous recommandons fortement d'être prudent lors de la définition de la valeur du paramètre pb_backlog dans Riak KV. Lorsque le nœud Riak CS est démarré, chaque pool de connexions établit des connexions au Riak KV. Cela peut conduire à un problème de troupeau tonitruant , dans lequel les connexions dans la piscine sont supposées être liées au Riak KV, mais en réalité, elles ont été abandonnées. En raison de la limitation du débit de paquets TCP RST (contrôlée par le paramètre net.inet.icmp.icmplim ), certains paquets peuvent ne pas recevoir de notification tant qu'ils ne sont pas utilisés pour répondre à la demande de l'utilisateur. Cela se manifeste par des messages {error, disconnected} dans les fichiers journaux de Riak CS et une erreur renvoyée à l'utilisateur.



Connexion SSL dans Riak-CS



RIAK-CS.CONF



ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"


ADVANCED.CONFIG

{ssl, [
    {certfile, "./etc/cert.pem"},
    {keyfile, "./etc/key.pem"}
   ]},


Remplacez le texte entre guillemets dans le chemin d'accès à vos clés de cryptage SSL. Par défaut, sur chaque nœud, les fichiers cert.pem et key.pem se trouvent dans le répertoire / etc. Vous êtes libre d'utiliser ces clés ou les vôtres.



Veuillez noter que vous devez également fournir une autorité de certification (CA), c'est-à-dire un certificat CA. Si vous le pouvez, vous devez utiliser le fichier de configuration advanced.config et spécifier son emplacement dans le paramètre cacertfile . Contrairement à certfile et keyfile, le paramètre cacertfile n'est pas commenté. C'est là que vous devez ajouter votre certificat. Un exemple d'une telle configuration:



ADVANCED.CONFIG



{ssl, [
       {certfile, "./etc/cert.pem"},
       {keyfile, "./etc/key.pem"},
       {cacertfile, "./etc/cacert.pem"}
      ]},
      %% Other configs


Vous pouvez trouver des instructions pour créer un certificat CA sur des ressources tierces .



Proxy vs connexion directe



Riak CS peut interagir avec les clients S3 de deux manières:



  1. configuration du proxy - lorsqu'un client S3 se connecte à Riak CS comme depuis Amazon S3, c'est-à-dire avec des URL Amazon typiques.
  2. connexion directe - nécessite que le client S3 connecté au Riak CS soit configuré en tant que «service compatible S3», c'est-à-dire que le point de connexion Riak CS se fait passer pour Amazon S3. Des exemples de tels services sont Transmit, s3cmd, DragonDisk.


Procuration



Pour configurer la configuration du proxy, configurez votre client proxy en tant que point à l'adresse du cluster Riak CS. Configurez ensuite votre client avec les informations d'identification Riak CS.



Lorsque Riak CS reçoit une demande de mandataire, il sert la demande elle-même et répond au client comme si la demande allait à S3.



Du côté serveur, le paramètre root_host dans le fichier riak-cs.conf doit être s3.amazonaws.com car toutes les demandes des clients pour les URL de compartiment cibleront s3.amazonaws.com. C'est la valeur par défaut.

Important : un problème avec les configurations de proxy est que de nombreux clients GUI n'autorisent qu'un seul proxy à être configuré pour toutes les connexions. Pour les clients essayant de se connecter à la fois à S3 et à Riak CS, cela peut être problématique.

Connexion directe



La connexion directe est configurée via le paramètre cs_root_host dans la section riak-cs du fichier app.config. La valeur doit être définie sur le FQDN de votre point d'entrée Riak CS, car toutes les URL de compartiment cibleront le point d'entrée FQDN.



Vous aurez également besoin d'enregistrements DNS génériques pour tout enfant du point d'entrée pour le résoudre en point final lui-même. Exemple:



CONFIG



data.riakcs.net
*.data.riakcs.net


Paramètres du ramasse-miettes



image


Les paramètres suivants sont disponibles pour configurer le garbage collector dans Riak CS. Pour plus d'informations, consultez la section Garbage Collection .



  • gc.leeway_period — (leeway_seconds advanced.config app.config) — , , , , . 24h(24 )
  • gc.interval (gc_interval advanced.config app.config) — , . 15m (15 ). , . , gc_interval infinity.
  • gc.retry_interval (gc_retry_interval advanced.config app.config) — , , pending_delete . - , , - . 6h (6 ).
  • gc.max_workers (gc.max_workers advanced.config app.config) — , . 2.
  • active_delete_threshold (active_delete_threshold dans advanced.config ou app.config) - les blocs d'objets inférieurs à la valeur de seuil sont supprimés de manière synchrone et leurs manifestes sont marqués comme planifié_delete . La valeur par défaut est 0.


Certains paramètres supplémentaires ne peuvent être définis que dans les fichiers de configuration advanced.config ou app.config. Aucun des paramètres suivants n'est disponible via le fichier de configuration riak-cs.conf



  • epoch_start — , . , + leeway_seconds. 0 . , , , . . Erlang. , 10, <<«10»>>.
  • initial_gc_delaygc_interval Riak CS. : GC ; GC. , initial_gc_delay.
  • max_scheduled_delete_manifests — ( ), scheduled_delete . , , . , , , leeway_seconds. , , . .
  • gc_batch_size - Ce paramètre représente la taille utilisée pour paginer les résultats d'une requête d'index secondaire. La valeur par défaut est 1000.


Configuration obsolète Pour

le moment, Riak CS 2.0 prend toujours en charge la définition du paramètre pg_paginated_indexes, et il est fortement recommandé de ne pas utiliser ces paramètres. Les paramètres seront supprimés dans la prochaine version majeure.

Autres paramètres Riak CS



Pour une liste complète des paramètres Riak CS configurables, vous pouvez vous référer au document de référence de configuration .



Liens



Stockage dans le cloud Riak. Partie 1. Configuration de Riak KV

Riak Cloud Storage. Partie 2. Configuration du composant Riak CS

Riak Cloud Storage. Partie 3. Stanchion, Proxy et Load Balancing, Manuel d'origine du client S3



.



All Articles