Cet article est une traduction gratuite du manuel officiel du système Riak CS version 2.1.1
Dans le système de stockage Riak CS, trois composants fonctionnent ensemble, ce qui signifie que chaque composant doit être configuré pour fonctionner avec d'autres composants:
- Riak (KV) est un système de base de données qui agit comme un système final.
- Riak CS est une couche de stockage cloud au-dessus de Riak qui fournit des capacités de stockage et d'API, stocke les fichiers et les métadonnées dans Riak, puis les transfère aux utilisateurs finaux.
- Stanchion - Gère les requêtes impliquant des entités uniques au monde telles que des buckets et des utilisateurs dans une instance Riak. Par exemple, créer des utilisateurs, créer ou supprimer des compartiments.
En outre, vous pouvez également configurer le client S3 pour une utilisation dans la messagerie avec le système Riak CS.
Vous devriez prévoir d'avoir un Riak Node pour chaque Riak CS Node sur votre système. Les nœuds Riak et Riak CS peuvent fonctionner sur différentes machines physiques, mais dans la plupart des cas, il est préférable d'exécuter un nœud Riak et un nœud Riak CS sur la même machine physique. En supposant qu'une seule machine physique dispose de suffisamment de puissance pour répondre aux besoins des nœuds Riak et Riak CS, vous constaterez généralement de meilleures performances en raison d'une latence réseau réduite.
Si votre système se compose de plusieurs nœuds, la configuration consiste principalement à établir la communication entre les composants. D'autres paramètres, tels que l'emplacement de stockage des fichiers journaux, ont des valeurs par défaut et ne doivent être modifiés que si vous souhaitez utiliser des valeurs non standard.
Configuration des composants du système. Configuration de Riak KV pour CS
Étant donné que Riak CS est une application construite sur Riak, il est très important de faire attention à votre configuration Riak lors du démarrage de Riak CS. Ce document est à la fois un guide de configuration Riak et un document de référence pour décrire les paramètres de configuration importants.
Assurez-vous que Riak KV et Riak CS sont installés sur chaque nœud de votre cluster avant la configuration. Stanchion, en revanche, ne doit être installé que sur un nœud de l'ensemble du cluster.
Backends pour Riak CS
Par défaut, le backend utilisé par Riak est Bitcask, mais le package Riak CS inclut un backend spécial qui doit être utilisé par le cluster Riak qui fait partie du système Riak CS. La version standard dispose d'un backend Multi standard livré avec Riak.
Les mêmes buckets Riak utilisés en interne par Riak CS utilisent des index secondaires qui nécessitent désormais le backend LevelDB. D'autres parties du système Riak CS peuvent bénéficier du backend Bticask. L'utilisation de l'exemple de backend Multi est incluse dans Riak CS pour tirer parti de ces deux backends pour obtenir la meilleure combinaison de performances et de fonctionnalités. La section suivante décrit comment configurer correctement Riak pour utiliser ce multi-backend.
Le backend est ce que Riak utilisera pour enregistrer les données. Riak KV a plusieurs backends dans son arsenal: Bitcask, LevelDB, Memory et Multi.
De plus, le système de calcul du stockage utilise Riak MapReduse pour résumer les fichiers en buckets. Cela signifie que vous devez indiquer à tous les nœuds Riak où rechercher les fichiers Riak CS provisionnés avant de calculer le stockage.
Plusieurs autres paramètres doivent être modifiés afin de configurer le nœud Riak en tant que partie du système Riak CS, tels que l'adresse IP et l'adresse IP et le port pour la messagerie via les tampons de protocole. Le reste des paramètres peut être modifié si nécessaire. Les sections suivantes décrivent comment configurer un nœud Riak pour qu'il fonctionne dans le cadre d'un système Riak CS.
Configuration du backend Riak
Tout d'abord, les fichiers de configuration riak.conf ou advanced.config / app.config sont modifiés. Ces fichiers peuvent être situés dans les répertoires / etc / riak ou / opt / riak / etc. Par défaut, Riak utilise le backend Bitcask. La première chose à faire est de modifier le fichier de configuration en supprimant la ligne suivante:
RIAK.CONF
## Delete this line:
storage_backend = bitcask
ADVANCED.CONFIG
{riak_kv,
[ %% Delete this line:
{storage_backend, riak_kv_bitcask_backend},
]}
APP.CONFIG
{riak_kv,
[ %% Delete this line:
{storage_backend, riak_kv_bitcask_backend},
]}
Ensuite, nous devons montrer le besoin de modules RiakCS pour Riak et dire à Riak d'utiliser le backend Riak CS personnalisé. Nous devons utiliser le fichier advanced.config ou app.config pour cela et ajouter les options suivantes:
ADVANCED.CONFIG
{eleveldb, [
{total_leveldb_mem_percent, 30}
]},
{riak_kv, [
%% Other configs
{add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
{storage_backend, riak_cs_kv_multi_backend},
{multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
{multi_backend_default, be_default},
{multi_backend, [
{be_default, riak_kv_eleveldb_backend, [
{data_root, "/var/lib/riak/leveldb"}
]},
{be_blocks, riak_kv_bitcask_backend, [
{data_root, "/var/lib/riak/bitcask"}
]}
]},
%% Other configs
]}
APP.CONFIG
{eleveldb, [
{total_leveldb_mem_percent, 30}
]},
{riak_kv, [
%% Other configs
{add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
{storage_backend, riak_cs_kv_multi_backend},
{multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
{multi_backend_default, be_default},
{multi_backend, [
{be_default, riak_kv_eleveldb_backend, [
{data_root, "/var/lib/riak/leveldb"}
]},
{be_blocks, riak_kv_bitcask_backend, [
{data_root, "/var/lib/riak/bitcask"}
]}
]},
%% Other configs
]}
Il est très important de noter que bon nombre de ces valeurs dépendront des variantes de répertoire spécifiques à votre système d'exploitation, alors suivez les instructions en conséquence. Par exemple, le paramètre add_paths suppose que Riak CS est installé dans / usr / lib / riak-cs, tandis que les paramètres data_root supposent que Riak est installé dans / var / lib. (Remarque. Dans mon cas, c'était add_paths - / usr / lib64 / riak-cs /).
Cette configuration suppose que le Riak CS est installé sur la même machine que le Riak. Sinon, le package doit être copié sur un hôte distinct.
Mise en place de la création de frères et sœurs
Maintenant, nous devons définir le paramètre allow_mult sur true. Nous pouvons ajouter une ligne dans le fichier de configuration riak.conf, ou une section riak_core dans advanced.config ou app.config.
RIAK.CONF
buckets.default.allow_mult = true
ADVANCED.CONFIG
{riak_core, [
%% Other configs
{default_bucket_props, [{allow_mult, true}]},
%% Other configs
]}
APP.CONFIG
{riak_core, [
%% Other configs
{default_bucket_props, [{allow_mult, true}]},
%% Other configs
]}
Cela permettra à Riak de créer les frères et sœurs dont Riak CS a besoin pour fonctionner. Si vous vous connectez à Riak CS à l'aide de la bibliothèque cliente, ne vous inquiétez pas: vous n'aurez pas à résoudre les conflits, car toutes les opérations de Riak CS sont strictement cohérentes selon leur définition.
Le frère est un moyen de stocker plusieurs objets dans une clé afin que l'objet ait des valeurs différentes à différents nœuds.
Remarque: allow_mult
Tout nœud Riak qui prend également en charge Riak CS aura toujours le paramètre allow_mult défini sur true. Riak CS réinitialisera le démarrage si la valeur est fausse.
DĂ©finition du nom d'hĂ´te et de l'adresse IP
Chaque nœud Riak a un nom qui peut être spécifié dans riak.conf avec l'option nodename. Si vous utilisez le fichier de configuration app.config, vous devez créer un fichier appelé vm.args dans le même répertoire que app.config et spécifier le nom d'hôte à l'aide de l'indicateur -name. Nous vous recommandons de nommer les nœuds au format @. Donc, si vous avez trois nœuds en cours d'exécution sur le même hôte 100.0.0.1, vous pouvez les nommer riak1@100.0.0.1, riak2@100.0.0.1 et riak3@100.0.0.1, ou vous pouvez les nommer plus spécifiques, comme test_cluster1@100.0 .0.1, user_data3@100.0.0.1, et ainsi de suite. L'exemple ci-dessous montre comment changer le nom d'hôte en riak1@127.0.0.1, qui fonctionnera sur l'hôte local.
RIAK.CONF
nodename = riak1@127.0.0.1
VM.ARGS
-name riak1@127.0.0.1
Vous devez nommer tous les nœuds avant de les démarrer et de les ajouter au cluster.
Test de réglage
Maintenant que tous les paramètres de nœuds nécessaires sont terminés, nous pouvons essayer de démarrer Riak:
SHELL
riak start
Environ. La réponse dans mon cas:
ici, vous devez attendre un peu. Ensuite, vous pouvez commencer à tester le nœud en cours d'exécution.
COQUILLE
riak ping
Si la réponse est pong, alors Riak est en cours d'exécution: si la réponse est que Node ne répond pas aux pings, alors quelque chose s'est mal passé.
Environ. La réponse dans mon cas:
si le nœud n'a pas démarré correctement, regardez le journal erlang.log.1 dans le répertoire / log du nœud si le problème peut être identifié. L'une des erreurs les plus courantes est invalid_storage_backend. Ce qui indique que le chemin d'accès à la bibliothèque Riak CS dans advanced.config ou app.config est incorrect (ou Riak CS n'est pas installé sur le serveur). Malgré cette erreur, assurez-vous que vous n'avez pas changé de riak_cs_kv_multi_backend à riak_kv_multi_backend.
Configuration de Riak pour utiliser des tampons de protocole
Les paramètres du tampon de protocole Riak se trouvent dans la section riak.conf ou riak_api des fichiers advanced.config ou app.config, qui se trouvent dans le répertoire / etc / riak /. Par défaut, l'hôte a une adresse IP de 127.0.0.1 et un port de 8087. Vous devez les modifier si vous prévoyez d'exécuter Riak et Riak CS en dehors de votre environnement local. Remplacez 127.0.0.1 par l'adresse IP de l'hôte Riak et le port 8087 par une adresse appropriée.
RIAK.CONF
listener.protobuf.internal = 10.0.2.10:10001
ADVANCED.CONF
{riak_api, [
%% Other configs
{pb, ["10.0.2.10", 10001]},
%% Other configs
]}
APP.CONFIG
riak_api, [
%% Other configs
{pb, ["10.0.2.10", 10001]},
%% Other configs
]}
Remarque: La valeur du paramètre listener.protobuf.internal dans riak.conf (ou la valeur du paramètre pb dans le fichier advanced.conf / app.config) doit correspondre aux valeurs de riak_host dans Riak CS riak-cs.config et Stanchion stanchion.conf (ou riak_host respectivement) dans les fichiers advanced.config / app.config).
Remarque sur le numéro de port Vous
pouvez avoir besoin d'un numéro de port différent si le port entre en conflit avec les ports utilisés par une autre application, ou si vous utilisez un équilibreur de charge ou un serveur proxy.
Il est également recommandé aux utilisateurs de s'assurer que la taille du Riak protobuf.backlog (ou pb_backlog dans les fichiers advanced.config / app.config) est égale ou supérieure à la taille pool.request.size spécifiée pour le Riak CS dans riak-cs.config (ou request_pool_size dans les fichiers advanced.config / app.conf).
Si la valeur de pool.request.size dans Riak CS a été modifiée, la valeur de protobuf.backlog dans Riak doit également être mise à jour.
Autres paramètres Riak
Les fichiers riak.conf et advanced.config incluent d'autres paramètres qui configurent la manière dont les fichiers journaux sont générés et où ils sont enregistrés. Ces paramètres ont des valeurs par défaut et devraient fonctionner dans la plupart des cas. Pour plus d'informations, nous vous recommandons de lire notre documentation sur les fichiers de configuration.
Configuration d'une adresse IP pour Riak
Lors de la configuration d'une adresse IP pour Riak, vous devez vous assurer que les nœuds Riak ont ​​une adresse IP unique, que vous travailliez avec un seul nœud ou que vous ajoutiez plusieurs nœuds au système. L'adresse IP de Riak est contenue dans riak.conf ou - si vous utilisez le fichier app.config - dans le fichier de configuration vm.args, qui se trouve là dans le répertoire / etc / riak (ou / opt / riak / etc / sur d'autres systèmes d'exploitation ).
Initialement, la ligne contenant l'adresse IP de Riak pointe vers l'hĂ´te local Ă ce stade:
RIAK.CONF
nodename = riak@127.0.0.1
VM.ARGS
-name riak@127.0.0.1
Remplacez 127.0.0.1 par votre adresse IP ou le nom d'hôte préféré de l'hôte Riak.
Paramètres de performances et de bande passante
Pour des raisons de performances, nous vous recommandons vivement d'ajouter des valeurs aux fichiers de configuration riak.conf ou vm.args situés dans le répertoire / etc / riak / ou / opt / riak / etc.
RIAK.CONF
erlang.max_ports = 65536
VM.ARGS
## This setting should already be present for recent Riak installs.
-env ERL_MAX_PORTS 65536
DĂ©sactiver JavaScript MapReduce
Il est recommandé de ne pas utiliser JavaScript MapReduce obsolète avec une version quelconque de Riak CS. Pour des raisons de performances, vous devez désactiver la machine virtuelle effectuant des opérations JavaScript MapReduce en définissant dans le fichier de configuration riak.conf, ou dans la section riak_kv de advanced.conf ou app.config:
RIAK.CONF
javascript.map_pool_size = 0
javascript.reduce_pool_size = 0
javascript.hook_pool_size = 0
ADVANCED.CONFIG
{riak_kv, [
%% Other configs
{map_js_vm_count, 0},
{reduce_js_vm_count, 0},
{hook_js_vm_count, 0}
%% Other configs
]}
APP.CONFIG
{riak_kv, [
%% Other configs
{map_js_vm_count, 0},
{reduce_js_vm_count, 0},
{hook_js_vm_count, 0}
%% Other configs
]}
Ensuite, nous devons configurer les autres composants du système Riak CS.
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
.