
本文是Riak CS 2.1.1系统官方手册的免费翻译的继续。
第1部分。配置Riak KV为了确保Riak CS组件正确运行,重要的是要知道如何连接到Riak KV。Riak CS节点通常与其对应的Riak KV节点在同一服务器上运行。这意味着仅在使用默认参数以外的其他参数配置Riak时才需要进行更改。
第3部分。固定,代理和负载平衡,S3客户端
Riak CS设置位于riak-cs.conf和advanced.conf配置文件中的CS节点上。这两个文件通常位于/ etc / riak-cs目录中。新的riak-cs.conf文件是带有config = option pair的简单列表,但是有些选项只能通过advanced.config文件进行更改。看起来像这样:
ADVANCED.CONFIG
{riak_cs, [
{parameter1, value},
{parameter2, value},
%% and so on...
]},
如果要从2.0.0之前的版本升级(引入riak-cs.conf文件时),您仍然可以使用riak-cs.conf / advanced.config位置的app.config文件。app.config文件的语法与advanced.conf文件的语法相同,因此,用于advanced.conf的任何示例都可以直接在app.config文件中使用。
请注意,旧的app.config文件将替换新的配置文件。如果存在app.config,则不会使用riak-cs.conf和advanced.config。
注意:关于旧版app.config以下各节描述了Riak CS的重要配置选项。
如果要从Riak CS的早期版本升级到Riak CS 2.0,并计划继续使用继承的app.config文件,请注意,某些配置文件中的选项名称已更改。此外,在2.0版中,Stanchion,Riak,Riak CS的IP /端口格式已更改。您可以在滚动升级文档中查看更改。
有关app.config的可用选项的完整列表和选项的完整列表,请参阅《完整配置参考》文档。
主机和端口。
要将Riak CS连接到Riak KV,请确保已设置Riak KV使用的主机和端口参数:
- riak_host-用要将Riak CS连接到的Riak KV节点的IP地址和端口号替换127.0.0.1:8087。
您还需要为Riak CS设置侦听器主机:
- 侦听器-如果打算非本地使用,请用Riak CS主机的IP地址和端口号替换127.0.0.1:8080。确保端口号与在同一台计算机上运行的Riak KV主机和Riak CS主机的riak_host端口没有冲突。
注意:关于IP地址对riak-cs.conf进行一些更改后,如果Riak CS节点已经在运行,请重新启动它。
,除非Riak CS在完全不同的网络上运行,否则您在此处输入的IP地址必须与riak.conf文件中为Riak KV协议缓冲区接口指定的IP地址匹配。地址翻译。
支柱节点参数
如果您使用一个Riak CS节点,则无需更改“ Stanchion”设置,因为它在本地主机上运行(注意:“ Stanchion”仅在整个群集的一个实例中安装)。如果Riak CS系统具有多个节点,在这种情况下,您必须指定Stanchion节点的IP地址和端口以及是否使用SSL。
Stanchion的参数位于Riak CS节点的./etc/riak-cs/conf目录中的Riak CS节点的riak-cs.conf配置文件中。
要为Stanchion设置主机和端口,请确保为Stanchion使用的主机和端口设置以下参数:
- stanchion_host-用Stanchion主机的IP地址和端口替换127.0.0.1:8085。
使用SSL
默认在Stanchion中禁用SSL,即 参数stanchion_ssl已关闭。如果将Stanchion配置为使用SSL,请将其值更改为on。以下配置示例将Stanchion设置为localhost,端口8085(默认),并允许使用SSL。
里克-CS.CONF
stanchion_host = 127.0.0.1:8085
stanchion_ssl = on
高级配置
{riak_cs, [
%% Other configs
{stanchion_host, {"127.0.0.1", 8085}},
{stanchion_ssl, true},
%% Other configs
]}
设置主机名
您还可以定义一个更方便的Riak CS主机名,以帮助您识别在故障排除过程中提示的主机。这是在riak-cs.conf或vm.args配置文件中配置的,该文件也位于/etc/riak-cs.conf中。Riak CS节点名称将在此处设置riak_cs@127.0.0.1:
RIAK-CS.CONF
nodename = riak_cs@127.0.0.1
虚拟机
-name riak_cs@127.0.0.1
将127.0.0.1更改为运行Riak CS的服务器的IP地址或主机名。
创建一个管理员帐户
管理员是特殊的授权用户,可以执行诸如创建用户或获取统计信息之类的操作。管理员帐户与另一个用户的帐户没有什么不同。您必须创建一个管理员帐户,以供Riak CS将来使用。
注意:关于创建匿名用户。要创建管理员帐户,请使用POST HTTP请求和管理员帐户所需的用户名。例如:
在创建管理员帐户之前,您必须在riak-cs.conf中的参数上设置anonymous_user_creation = on(或在advanced.config / app.config中设置{anonymous_user_creation,true})。您可以在创建管理员后再次禁用它。
CURL
curl -H 'Content-Type: application/json' \
-XPOST http://<host>:<port>/riak-cs/user \
--data '{"email":"admin@example.com", "name":"admin"}'
JSON响应应如下所示:
{
"display_name" : "admin",
"email" : "admin@example.com",
"id" : "8d6f05190095117120d4449484f5d87691aa03801cc4914411ab432e6ee0fd6b",
"key_id" : "OUCXMB6I3HOZ6D0GWO2D",
"key_secret" : "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==",
"name" : "admin_example",
"status" : "enabled"
}
通过将Content-Type设置为application / xml,可以选择发送和接收XML。
创建管理员后,必须为每个Riak CS节点设置管理员权限。管理员特权在/ etc / riak-cs目录中的riak-cs.conf配置文件中设置。在admin.key的引号之间插入key_id行。粘贴secret_key参数字段admin.secret:
RIAK-CS.CONF
admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==
高级配置
{riak_cs, [
%% Admin user credentials
{admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
{admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
%% Other configs
]}
限位铲斗
您还可以设置用户创建的存储桶数的限制。默认值是最大100个存储桶。请注意,如果用户超过了存储分区创建限制,则他们仍可用于其他操作,包括删除存储分区。您可以在advanced.config文件中的每个节点上使用max_buckets_per_user参数更改默认限制-这不会在riak-cs.conf文件中进行相同的更改。例如,以下配置最多指定1000:
ADVANCED.CONFIG
{riak_cs, [
%% Other configs
{max_buckets_per_user, 1000},
%% Other configs
]}
如果要删除一个用户创建存储桶的限制,可以将max_buckets_per_user参数的值设置为无限制。
连接池
Riak CS使用两个显式连接池来与Riak KV进行通信:主(主)池和辅助池。
主连接池用于处理与加载或检索对象有关的大多数API请求。在配置文件中将其指定为pool.request.size。默认池大小为128。
辅助连接池严格用于存储区内容的枚举请求。需要单独的连接池以提高性能。
辅助连接池在配置文件中定义为pool.list.size。默认情况下,其大小为5。
下面是connection_pools配置条目可以在app.config文件中找到的默认值:
RIAK-CS.CONF
pool.request.size = 128
pool.request.overflow = 0
pool.list.size = 5
pool.list.overflow = 0
高级配置
{riak_cs, [
%% Other configs
{connection_pools,
[
{request_pool, {128, 0} },
{bucket_list_pool, {5, 0} }
]},
%% Other configs
]}
每个池的值均分成几对,其中第一个数字代表池的正常大小。这是Riak CS节点可以服务的特定类型的并发请求数。第二个数字是允许的池溢出数。在此不建议对溢出使用非0的任何值,除非经过仔细测试表明所选的值对特定情况有用。
调音
强烈建议您在Riak KV中设置pb_backlog参数的值时要小心。启动Riak CS节点后,每个连接池都会建立与Riak KV的连接。这可能会导致一个雷鸣的牧群问题,其中池中的连接被认为与Riak KV有关,但实际上它们已被丢弃。由于TCP RST数据包速率的限制(由net.inet.icmp.icmplim参数控制),某些数据包在用于服务用户请求之前可能不会收到通知。这在Riak CS日志文件中表现为{错误,断开连接}消息,并向用户返回了错误。
Riak-CS中的SSL连接
里克-CS.CONF
ssl.certfile = "./etc/cert.pem"
ssl.keyfile = "./etc/key.pem"
高级配置
{ssl, [
{certfile, "./etc/cert.pem"},
{keyfile, "./etc/key.pem"}
]},
替换SSL加密密钥路径中引号中的文本。默认情况下,在每个节点上,cert.pem和key.pem文件位于/ etc目录中。您可以自由使用这些键或自己使用。
请注意,您还必须提供证书颁发机构(Certification Authority),即CA证书。如果可以,则必须使用advanced.config配置文件,并在cacertfile参数中指定其位置。与certfile和keyfile不同,cacertfile参数不会被注释掉。这是您必须添加证书的地方。这种配置的示例:
ADVANCED.CONFIG
{ssl, [
{certfile, "./etc/cert.pem"},
{keyfile, "./etc/key.pem"},
{cacertfile, "./etc/cacert.pem"}
]},
%% Other configs
您可以找到有关如何在第三方资源上创建CA证书的说明。
代理与直接连接
Riak CS可以通过以下两种方式之一与S3客户端进行交互:
- 代理配置-当S3客户端就像从Amazon S3连接到Riak CS时,即具有典型的Amazon URL。
- 直接连接-要求将连接到Riak CS的S3客户端配置为“ S3兼容服务”,即Riak CS连接点伪装成Amazon S3。此类服务的示例是Transmit,s3cmd,DragonDisk。
代理
要设置代理配置,请将代理客户端配置为Riak CS群集地址上的一个点。然后使用Riak CS凭据设置您的客户端。
当Riak CS接收到代理请求时,它将自己处理请求并响应客户端,就像请求已转到S3一样。
在服务器端,riak -cs.conf文件中的root_host参数必须为s3.amazonaws.com,因为所有客户端对存储段URL的请求都将针对s3.amazonaws.com。这是默认值。
重要说明:代理配置的一个问题是,许多GUI客户端仅允许为所有连接配置一个代理。对于试图同时连接到S3和Riak CS的客户,这可能会出现问题。
直接连接
通过app.config文件的riak -cs部分中的cs_root_host参数配置直接连接。该值必须设置为Riak CS入口点的FQDN,因为所有存储桶URL都将以FQDN入口点为目标。
对于入口点的任何子级,您还将需要通配符DNS记录,以将其解析为端点本身。示例:
CONFIG
data.riakcs.net
*.data.riakcs.net
垃圾收集器设置

以下设置可用于在Riak CS中配置垃圾收集器。有关更多信息,请参见垃圾收集部分。
- 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(advanced.config或app.config中的active_delete_threshold)-小于阈值的对象块被同步删除,并且其清单标记为Scheduled_delete。默认值为0。
有些其他设置只能在advanced.config或app.config配置文件中设置。通过riak-cs.conf配置文件无法使用以下任何设置
- epoch_start — , . , + leeway_seconds. 0 . , , , . . Erlang. , 10, <<«10»>>.
- initial_gc_delay — gc_interval Riak CS. : GC ; GC. , initial_gc_delay.
- max_scheduled_delete_manifests — ( ), scheduled_delete . , , . , , , leeway_seconds. , , . .
- gc_batch_size-此参数表示用于对二级索引查询的结果进行分页的大小。默认值为1000。
不建议使用的配置
目前,Riak CS 2.0仍支持设置pg_paginated_indexes参数,强烈建议不要使用这些设置。这些设置将在下一个主要版本中删除。
其他Riak CS设置
有关可配置Riak CS参数的完整列表,请参阅《配置参考文档》。
链接
Riak云存储。第1部分。配置Riak KV
Riak云存储。第2部分。配置Riak CS
Riak云存储组件。第3部分。固定,代理和负载平衡,S3客户端
原始手册。