
In diesem Artikel werden wir die Konfiguration der Komponenten des Riak Cloud Storage-Systems abschließen.
Dieser Artikel ist die Vervollständigung einer Reihe kostenloser Übersetzungen des offiziellen Handbuchs für das Riak CS 2.1.1-System.
Teil 1. Riak KV einrichten
Teil 2. Riak CS-Komponente einrichten
Stütze einrichten
Sie sollten einen und nur einen Rungenknoten in Ihrem Cluster verwenden. Alle Riak CS-Knoten in diesem Cluster müssen für die Kommunikation mit dem Stanchion-Knoten konfiguriert sein, damit der Cluster kausale Vorgänge überwachen und abgleichen kann.
Alle vom Stanchion-Knoten verwendeten Einstellungen sind in der Datei stanchion.conf enthalten, die sich auf den meisten Betriebssystemen im Verzeichnis / etc / stanchion befindet.
Wenn Sie ein Upgrade von einer früheren Version als Riak CS 2.0.0 durchführen - als stanchion.conf und riak-cs.conf eingeführt wurden -, können Sie weiterhin die alte Konfigurationsdatei app.config verwenden. Die folgenden Beispiele sind gleichwertig.
STANCHION.CONF
configuration.name = value
APP.CONFIG
{stanchion, [
%% Configs here
]}
IP-Adresse und Port für Stanchion konfigurieren
Wenn Sie nur einen Riak CS-Knoten haben, müssen Sie die Stanchion-Einstellungen nicht ändern, da Stanchion nur auf Anforderungen vom lokalen Host wartet. Wenn der Riak CS-Cluster viele Knoten hat, müssen Sie die IP-Adresse und den Port festlegen, an dem Stanchion auf Anforderungen von anderen Knoten wartet.
Sie können die IP-Adresse mit dem Listener- Parameter einstellen . Ersetzen Sie 127.0.0.1 durch die IP-Adresse des Stanchion-Knotens und Port 8080 durch den Knoten-Port:
STANCHION.CONF
listener = 127.0.0.1:8080
APP.CONFIG
{stanchion, [
{host, {"127.0.0.1", 8085}},
%% Other configs
]}
Hinweis zum Abgleichen von IP-Adressen Die
hier eingegebene IP-Adresse muss mit der IP-Adresse im Parameter stanchion_host in der riak.conf für Riak und der riak-cs.conf für Riak CS übereinstimmen.
Wenn Sie SSL verwenden möchten, stellen Sie sicher, dass die Parameter ssl.certfile und ssl.keyfile nicht auskommentiert und korrekt konfiguriert sind.
STANCHION.CONF
ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"
APP.CONFIG
{stanchion, [
{ssl, [
{certfile, "./etc/cert.pem"},
{keyfile, "./etc/key.pem"}
]},
%% Other configs
]}
Einrichten eines Administratorkontos
Der Administrator wird beim Konfigurieren der Riak CS-Komponente erstellt. Für jede im Cluster verwendete Stütze müssen dieselben Berechtigungen hinzugefügt werden. Dies wird in der Datei stanchion.conf konfiguriert, die sich im Verzeichnis / etc / stanchion befindet. Geben Sie denselben admin.key und denselben admin.secret STANCHION.CONF
ein
admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==
APP.CONFIG
{stanchion, [
%% Admin user credentials
{admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
{admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
%% Other configs
]}
Riak KV-Informationen einrichten
Wenn Sie einen einzelnen Knoten zum Experimentieren ausführen oder wenn der Riak KV-Knoten lokal ausgeführt wird und so konfiguriert ist, dass er auf Protokollpufferverkehr mit 0.0.0.0 wartet, sollte die Standardeinstellung in Ordnung sein.
Andernfalls aktualisieren Sie die IP-Adresse und den Port für den Riak-Host in der Stanchion-Konfigurationsdatei.
STANCHION.CONF
riak_host = 127.0.0.1:8087
APP.CONFIG
{stanchion, [
{riak_host, {"127.0.0.1", 8087}},
%% Other configs
]}
Lastausgleich und Proxy für Riak CS

Wenn Sie Riak CS im industriellen Einsatz verwenden möchten, empfehlen wir dringend, nach Riak CS einen Load Balancer oder Proxy, Software oder Hardware zu installieren. Beachten Sie auch, dass Sie Riak CS nicht direkt offenen Netzwerkschnittstellen aussetzen dürfen.
Riak CS-Benutzer berichten über die erfolgreiche Verwendung von Riak CS mit einem Load Balancer oder Proxy. Zu den kollaborativen Lösungen gehören proprietäre Hardware-Load-Balancer, Cloud-basierte Load-Balancer-Optionen wie Amazon Elastic Load Balancer und Open-Source-Softwarelösungen wie HAProxy und Nginx.
In diesem Handbuch wird kurz auf die Lösung für die gemeinsame Nutzung von HAProxy- und Nginx-Quellcode eingegangen und es werden einige Konfigurations- und Betriebsempfehlungen von Riak-Benutzern und Ingenieuren gegeben.
HAProxy
HAProxy ist eine schnelle und zuverlässige Lösung für den Lastausgleich und das Proxying von HTTP- und TCP-Anwendungsverkehr.
Benutzer berichten über die erfolgreiche Verwendung von HAProxy in Kombination mit Riak CS in einer Reihe von Konfigurationen und Szenarien. Weitere Informationen und Konfigurationsbeispiele für diesen Abschnitt richten sich neben Kommentaren von Riak-Ingenieuren an fortgeschrittene Benutzer in der Riak CS-Community.
Konfigurationsbeispiel
Das folgende Beispiel ist der Ausgangspunkt für die Konfiguration von HAProxy als Load Balancer für eine Riak CS-Installation.
Hinweis zu
Grenzwerten für offene Dateien Das Limit für offene Dateien des Betriebssystems muss für das folgende Konfigurationsbeispiel größer als 256.000 sein. In der Dokumentation finden Sie Informationen zu Grenzwerten für geöffnete Dateien, um den Wert für verschiedene Betriebssysteme detailliert festzulegen.
KONFIG
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 256000
spread-checks 5
daemon
defaults
log global
option dontlognull
option redispatch
option allbackups
no option httpclose
retries 3
maxconn 256000
timeout connect 5000
timeout client 5000
timeout server 5000
frontend riak_cs
bind 10.0.24.100:8080
# Example bind for SSL termination
# bind 10.0.24.100:8443 ssl crt /opt/local/haproxy/etc/data.pem
mode http
option httplog
capture request header Host len 64
acl good_ips src -f /opt/local/haproxy/etc/gip.lst
block if !good_ips
use_backend riak_cs_backend if good_ips
backend riak_cs_backend
mode http
balance roundrobin
# Ping Riak CS to determine health
option httpchk GET /riak-cs/ping
timeout connect 60s
timeout http-request 60s
server riak1 r1s01.example.com:8081 weight 1 maxconn 1024 check
server riak2 r1s02.example.com:8081 weight 1 maxconn 1024 check
server riak3 r1s03.example.com:8081 weight 1 maxconn 1024 check
server riak4 r1s04.example.com:8081 weight 1 maxconn 1024 check
server riak5 r1s05.example.com:8081 weight 1 maxconn 1024 check
Bitte beachten Sie, dass das obige Beispiel als Ausgangspunkt betrachtet wird und noch in Arbeit ist.
Sie müssen vorsichtig sein, wenn Sie diese Konfiguration anwenden und an Ihre Umgebung anpassen.
Ein spezielles Konfigurationsdetail aus dem Beispiel ist die auskommentierte Option für die Verwendung von SSL. HAProxy unterstützt SSL direkt seit Version 1.5. Stellen Sie sicher, dass Ihre HAProxy-Instanz mit OpenSSL-Unterstützung erstellt wurde. Sie können SSL aktivieren, indem Sie die Zeile auskommentieren und an Ihre Umgebung anpassen.
Weitere Informationen finden Sie in der HAProxy-Dokumentation .
Beachten Sie auch die Option Riak CS Health Check über den Endpunkt / riak-cs / ping. Dieser Parameter ist erforderlich, um jeden Riak CS-Host im Rahmen der Round-Robin-Methode für den Lastausgleich zu validieren.
Nginx
Mehrere Benutzer haben gemeldet, dass sie einen Nginx-HTTP-Server erfolgreich für Proxy-Anforderungen für Riak CS verwenden. Ein Beispiel für den Zugriff auf Riak CS finden Sie hier als Referenz.
Konfigurationsbeispiel
Nachfolgend finden Sie ein Beispiel für die Erstkonfiguration von Nginx als Front-End-Proxy für Riak CS.
KONFIG
upstream riak_cs_host {
server 10.0.1.10:8080;
}
server {
listen 80;
server_name _;
access_log /var/log/nginx/riak_cs.access.log;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 64k; # If set to a smaller value,
# nginx can complain with a
# "headers too large" error
proxy_buffers 8 64k; # Increase from default of (8, 8k).
# If left to default with increased
# proxy_buffer_size, nginx complains
# that proxy_busy_buffers_size is too
# large.
proxy_pass http://riak_cs_host;
}
}
Beachten Sie, dass die Anweisung proxy_set_header Host $ http_host erforderlich ist , um sicherzustellen, dass der HTTP-Host: -Header wie empfangen an Riak CS übergeben und nicht in den Hostnamen oder die Adresse des Riak CS-Backend-Servers übersetzt wird.
Es ist auch wichtig zu beachten, dass proxy_pass nicht mit einem Schrägstrich enden sollte, da dies zu verschiedenen Problemen führen kann.
S3-Client-Setup

Dieses Tutorial zeigt Ihnen, wie Sie s3cmd als S3-Client verwenden. Es werden zwar nicht alle Funktionen des Clients behandelt, es zeigt Ihnen jedoch, wie Sie eine Konfiguration erstellen und einige grundlegende Befehle ausführen.
Hinweis: s3cmd-Signaturversion
Wenn Sie s3cmd Version 1.5.0 oder höher verwenden, müssen Sie für jeden Befehl, der auf den Riak CS-Cluster abzielt, das Flag --signature-v2 hinzufügen, damit s3cmd AWS Version 2 und nicht die Standardversion von AWS 3 verwendet.
Ersteinrichtung
Um s3cmd in Verbindung mit Riak CS verwenden zu können, müssen Sie das Dienstprogramm für die Schnittstelle mit Ihrem Riak CS-System konfigurieren. Eine Möglichkeit besteht darin, eine .s3cfg- Datei zu erstellen und in Ihrem Home-Verzeichnis zu speichern. Wenn Sie einen Befehl für s3cmd ausführen, wird der Inhalt der Datei standardmäßig gelesen. Alternativ können Sie eine Konfigurationsdatei mit dem Flag -c angeben . Beispiel:
SHELL
s3cmd -c /PATH/TO/CONFIG/FILE <command>
Eine alternative Möglichkeit zum Konfigurieren von s3cmd besteht darin, s3cmd --configure auszuführen. Dadurch wird ein interaktives Tool gestartet und eine Konfigurationsdatei basierend auf Ihren Eingaben erstellt .
Im nächsten Abschnitt finden Sie ein kleines Beispiel für .s3cfg-Dateien, mit denen die Kommunikation mit Riak CS konfiguriert werden kann.
Beispiel einer s3cmd-Konfigurationsdatei für die lokale Verwendung
Verwenden Sie diese .s3cfg- Konfigurationsdatei für die lokale Kommunikation mit Riak CS über Port 8080 mit s3cmd (denken Sie bei Bedarf daran, spezifische Informationen für Ihre Riak CS-Installation anzugeben).
KONFIG
[default]
access_key = 8QON4KC7BMAYYBCEX5J+
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
enable_multipart = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/local/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase = password
guess_mime_type = True
host_base = s3.amazonaws.com
host_bucket = %(bucket)s.s3.amazonaws.com
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host = localhost
proxy_port = 8080
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key = rGyDLBi7clBuvrdrkFA6mAJkwJ3ApUVr4Pr9Aw==
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = False
verbosity = WARNING
signature_v2 = True
Beispiel für eine s3cmd-Konfigurationsdatei zur Verwendung in der Produktion
Verwenden Sie diese .s3cfg-Konfigurationsdatei, um über s3cmd auf einem Produktionssystem mit Riak CS zu interagieren.
KONFIG
[default]
access_key = EJ8IUJX9X0F2P9HAMIB0
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
enable_multipart = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/local/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase = password
guess_mime_type = True
host_base = <YOUR DOMAIN HERE>
host_bucket = %(bucket)s.<YOUR DOMAIN HERE>
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host =
proxy_port = 0
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key = XOY/9IFKVEDUl6Allrkj7oyH9XW+CANnFLEVuw==
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = True
verbosity = WARNING
signature_v2 = True
Um den s3cmd-Client für einen Benutzer zu konfigurieren, müssen Sie den access_key und den secret_key ändern.
Speicherort konfigurieren
Standardmäßig verwendet die .3cfg-Datei den Amazon S3-Dienst als Speicher-Backend. Ändern Sie für ein Riak CS-System die folgenden Einstellungen, um auf Ihr Speichersystem zu verweisen.
- host_base - Geben Sie einen Domainnamen oder Pfad zu Ihrem Datenspeicher an, z. B. data.example.com
- host_bucket - Geben Sie den Speicherort des Buckets an, z. B. my_cs_bucket.data.example.com
Verwenden von SSL im Client
Wenn Sie SSL verwenden, setzen Sie den Parameter use_https auf True .
Links
Riak Cloud Storage. Teil 1. Konfigurieren des Riak KV
Riak Cloud-Speichers. Teil 2. Konfigurieren der Riak CS
Riak Cloud Storage- Komponente . Teil 3. Stütze, Proxy und Lastausgleich, S3 Client
Originalhandbuch.