在本文中,我们将完成Riak Cloud Storage系统组件的配置。
本文是Riak CS 2.1.1系统官方手册的一系列免费翻译的完成。
第1部分。设置Riak KV
第2部分。设置Riak CS组件
设置支柱
您应该在集群中使用一个并且只有一个Stanchion节点。必须将该群集中的所有Riak CS节点配置为与Stanchion节点进行通信,以便群集可以跟踪和协调因果关系操作。
Stanchion节点使用的所有设置都包含在stanchion.conf文件中,该文件位于大多数操作系统的/ etc / stanchion目录中。
如果要从Riak CS 2.0.0之前的版本升级-引入stanchion.conf和riak-cs.conf时-您仍然可以使用旧的app.config配置文件。下面的示例将是等效的。
STANCHION.CONF
configuration.name = value
应用程序配置
{stanchion, [
%% Configs here
]}
配置要配置的IP地址和端口
如果只有一个Riak CS节点,则无需更改Stanchion设置,因为Stanchion只是侦听来自本地主机的请求。如果Riak CS群集有许多节点,则必须设置Stanchion将在其上侦听来自其他节点的请求的IP地址和端口。
您可以使用listener参数设置IP地址。将127.0.0.1替换为Stanchion节点的IP地址,并将端口8080替换为节点端口:
STANCHION.CONF
listener = 127.0.0.1:8080
应用程序配置
{stanchion, [
{host, {"127.0.0.1", 8085}},
%% Other configs
]}
有关匹配IP地址的说明在
Riak CS和riak CS.conf中,您在此处输入的IP地址必须与riak.conf中stanchion_host参数中的IP地址匹配。
如果要使用SSL,请确保未对ssl.certfile和ssl.keyfile参数进行注释和正确配置。
STANCHION.CONF
ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"
应用程序配置
{stanchion, [
{ssl, [
{certfile, "./etc/cert.pem"},
{keyfile, "./etc/key.pem"}
]},
%% Other configs
]}
设置管理员帐户
配置Riak CS组件时将创建管理员。必须为集群中使用的每个Stanchion添加相同的权限。这是在stanchion.conf中配置的,该文件位于/ etc / stanchion目录中。输入相同的admin.key和admin.secret
STANCHION.CONF
admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==
应用程序配置
{stanchion, [
%% Admin user credentials
{admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
{admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
%% Other configs
]}
设置Riak KV信息
如果您正在运行单个节点进行实验,或者Riak KV节点正在本地运行并配置为侦听协议缓冲区流量为0.0.0.0,则默认设置应该很好。
否则,请在Stanchion配置文件中更新Riak主机的IP地址和端口。
STANCHION.CONF
riak_host = 127.0.0.1:8087
应用程序配置
{stanchion, [
{riak_host, {"127.0.0.1", 8087}},
%% Other configs
]}
Riak CS的负载平衡和代理
如果计划在工业用途中使用Riak CS,则强烈建议您在Riak CS之后安装负载平衡器或代理,软件或硬件。另请注意,您不得直接将Riak CS暴露给开放的网络接口。
Riak CS用户成功报告了将Riak CS与负载平衡器或代理一起使用。联合解决方案包括专有的硬件负载平衡器,基于云的负载平衡器选项(例如Amazon的Elastic Load Balancer)以及开源软件解决方案(例如HAProxy和Nginx)。
本指南简要回顾了HAProxy和Nginx源代码共享解决方案,并提供了从Riak用户和工程社区收集的一些配置和操作建议。
HAProxy
HAProxy是用于负载平衡以及代理HTTP和TCP应用程序流量的快速可靠的解决方案。
用户报告在许多配置和方案中成功将HAProxy与Riak CS结合使用。除了Riak工程师的意见,此部分的更多信息和配置示例适用于Riak CS社区的高级用户。
配置示例
以下示例是将HAProxy配置为Riak CS安装的负载平衡器的起点。
关于打开文件
限制的说明对于以下配置示例,操作系统打开文件的限制必须大于256,000。查看文档中打开文件的限制,以获取有关不同操作系统的值的详细设置。
配置
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
请注意,以上示例被视为起点,并且仍在进行中。
在应用此配置并对其进行修改以适合您的环境时,您必须小心。
该示例中值得注意的一个具体配置细节是使用SSL的注释选项。从1.5版开始,HAProxy直接支持SSL。确保您的HAProxy实例内置OpenSSL支持,您可以通过取消注释该行并对其进行修改以适合您的环境来激活SSL。
您可以在HAProxy文档中找到更多信息。
另外,请通过/ riak-cs / ping端点注意Riak CS运行状况检查选项。作为负载平衡循环方法的一部分,需要使用此参数来验证每个Riak CS主机。
Nginx的
一些用户报告成功使用Nginx HTTP服务器代理Riak CS的请求。这里提供了一个提供对Riak CS的访问权限的示例,以供参考。
配置示例
以下是Nginx用作Riak CS的前端代理的初始配置示例。
配置
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;
}
}
请注意,必须使用proxy_set_header Host $ http_host指令来确保HTTP Host:标头按接收到的方式传递给Riak CS,并且不会转换为Riak CS后端服务器的主机名或地址。
同样重要的是要注意proxy_pass不能以正斜杠结尾,因为这可能导致各种问题。
S3客户端设置
本教程向您展示如何将s3cmd用作S3客户端。尽管它不会涵盖客户端的所有功能,但它将向您展示如何创建配置和运行一些基本命令。
注意:s3cmd签名版本
如果您使用的是s3cmd 1.5.0或更高版本,则需要为每个针对Riak CS集群的命令添加--signature-v2标志,以便s3cmd使用AWS 2版本,而不是默认的AWS 3版本。
初始设置
要将s3cmd与Riak CS结合使用,必须将实用程序配置为与Riak CS系统进行交互。一种方法是创建一个.s3cfg文件并将其保存在主目录中。当您运行与s3cmd相关的任何命令时,默认情况下将读取文件的内容。或者,您可以使用-c标志指定配置文件。示例:
SHELL
s3cmd -c /PATH/TO/CONFIG/FILE <command>
配置s3cmd的另一种方法是运行s3cmd --configure,这将启动一个交互式工具并根据您输入的内容构建配置文件。
在下一部分中,您将找到一个.s3cfg文件的小示例,该文件可用于配置与Riak CS的通信。
本地使用的示例s3cmd配置文件
使用此示例.s3cfg配置文件可通过s3cmd在端口8080上与Riak CS进行本地通信(请记住,必要时包括特定于Riak CS安装的信息)。
配置
[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
样本s3cmd配置文件用于生产
使用此示例.s3cfg配置文件,通过生产系统上的s3cmd与Riak CS进行交互。
配置
[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
为了为用户配置s3cmd客户端,必须更改access_key和secret_key。
配置存储位置
默认情况下,.3cfg文件使用Amazon S3服务作为存储后端。对于Riak CS系统,更改以下设置以指向您的存储系统。
- host_base-提供域名或数据存储路径,例如data.example.com
- host_bucket-指定存储桶的位置,例如my_cs_bucket.data.example.com
在客户端中使用SSL
如果使用SSL,则将use_https参数设置为True。
链接
Riak云存储。第1部分。配置Riak KV
Riak云存储。第2部分。配置Riak CS
Riak云存储组件。第3部分。固定,代理和负载平衡,S3客户端
原始手册。