
Este artigo é uma continuação das traduções gratuitas do manual oficial do sistema Riak CS 2.1.1.
Parte 1. Configurando Riak KVPara garantir o funcionamento correto do componente Riak CS, é importante saber como se conectar ao Riak KV. Um nó Riak CS geralmente é executado no mesmo servidor que seu nó Riak KV correspondente. Isso significa que as alterações só serão necessárias se o Riak for configurado com parâmetros diferentes do padrão.
Parte 3. Estante, Proxy e Balanceamento de Carga, Cliente S3
As configurações do Riak CS estão localizadas no nó CS nos arquivos de configuração riak-cs.conf e advanced.conf. Ambos os arquivos geralmente estão localizados no diretório / etc / riak-cs. O novo arquivo riak-cs.conf é uma lista simples com pares de opções config = , mas há opções que só podem ser alteradas por meio do arquivo advanced.config. Ele se parece com isto:
ADVANCED.CONFIG
{riak_cs, [
{parameter1, value},
{parameter2, value},
%% and so on...
]},
Se você estiver atualizando de uma versão anterior a 2.0.0 - quando o arquivo riak-cs.conf foi introduzido - você ainda pode usar o arquivo app.config localizado no local de riak-cs.conf / advanced.config. O arquivo app.config tem a mesma sintaxe do arquivo advanced.conf, portanto, quaisquer exemplos usados para advanced.conf podem ser usados diretamente no arquivo app.config.
Observe que o arquivo app.config antigo substitui os novos arquivos de configuração. Se app.config estiver presente, nem riak-cs.conf nem advanced.config serão usados.
Observação: sobre o app.config herdadoAs seções abaixo descrevem opções de configuração importantes para o Riak CS.
Se você estiver atualizando de versões anteriores do Riak CS para o Riak CS 2.0 e planeja continuar usando o arquivo app.config herdado, observe que os nomes das opções foram alterados em alguns arquivos de configuração. Além disso, o formato IP / Port foi alterado na versão 2.0 para Stanchion, Riak, Riak CS. Você pode ver as mudanças no documento Rolling Upgrades .
Para obter uma lista exaustiva de opções disponíveis e uma lista completa de opções para app.config, consulte a Referência de configuração completa .
Host e porta.
Para conectar o Riak CS ao Riak KV, certifique-se de que o host e a porta usados pelo Riak KV estejam definidos:
- riak_host - substitua 127.0.0.1:8087 pelo endereço IP e número da porta do nó Riak KV ao qual deseja conectar o Riak CS.
Você também precisa definir o host do ouvinte para Riak CS:
- listener - substitua 127.0.0.1:8080 pelo endereço IP e número da porta do host Riak CS se você pretende usá-lo não localmente. Certifique-se de que o número da porta não entre em conflito com a porta riak_host do host Riak KV e o host Riak CS que estão sendo executados na mesma máquina.
Nota: sobre o endereço IP O endereçoApós algumas alterações no riak-cs.conf, reinicie o nó Riak CS se ele já estiver em execução.
IP inserido aqui deve corresponder ao endereço IP especificado para a interface de buffers de protocolo Riak KV no arquivo riak.conf, a menos que o Riak CS esteja sendo executado em uma rede completamente diferente, caso em que é necessário tradução de endereços.
Parâmetros do nó de suporte
Se você estiver usando um nó Riak CS, não será necessário alterar as configurações do Stanchion, pois ele é executado no host local (Observação. O Stanchion é instalado em apenas uma instância para todo o cluster). Se o sistema Riak CS tiver vários nós, você deve especificar o endereço IP e a porta do nó Stanchion e se SSL é usado ou não.
Os parâmetros para Stanchion estão no arquivo de configuração riak-cs.conf do nó Riak CS localizado no diretório ./etc/riak-cs/conf de cada nó Riak CS.
Para definir o host e a porta do Stanchion, certifique-se de que o seguinte parâmetro seja definido para o host e a porta usados pelo Stanchion:
- stanchion_host - substitua 127.0.0.1:8085 pelo endereço IP e porta do host Stanchion.
Usando SSL
SSL é desabilitado por padrão no Stanchion, ou seja, parâmetro stanchion_ssl está desativado . Se o Stanchion estiver configurado para usar SSL, altere o valor para on . O exemplo de configuração a seguir define Stanchion para localhost, porta 8085 (padrão) e permite que SSL seja usado.
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
]}
Configurando o nome do host
Você também pode definir um nome de host Riak CS mais conveniente para ajudá-lo a identificar o host que está sendo solicitado durante a solução de problemas. Isso é configurado no arquivo de configuração riak-cs.conf ou vm.args, que também está localizado em /etc/riak-cs.conf. O nome do nó Riak CS será definido aqui 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
Altere 127.0.0.1 para o endereço IP ou nome de host do servidor que executa o Riak CS.
Crie uma conta de administrador
Um administrador é um usuário autorizado especial para executar ações como criar usuários ou obter estatísticas. Uma conta de administrador não é diferente da conta de outro usuário. Você deve criar uma conta de administrador para uso futuro do Riak CS.
Nota: sobre como criar um usuário anônimo.Para criar uma conta de administrador, use uma solicitação POST HTTP e o nome de usuário que deseja para a conta de administrador. Por exemplo, como:
Antes de criar uma conta de administrador, você deve definir o parâmetro anonymous_user_creation = on em riak-cs.conf (ou definir {anonymous_user_creation, true} em advanced.config / app.config). Você pode desativá-lo novamente quando o administrador for criado.
CURL
curl -H 'Content-Type: application/json' \
-XPOST http://<host>:<port>/riak-cs/user \
--data '{"email":"admin@example.com", "name":"admin"}'
A resposta JSON deve ser semelhante a esta:
{
"display_name" : "admin",
"email" : "admin@example.com",
"id" : "8d6f05190095117120d4449484f5d87691aa03801cc4914411ab432e6ee0fd6b",
"key_id" : "OUCXMB6I3HOZ6D0GWO2D",
"key_secret" : "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==",
"name" : "admin_example",
"status" : "enabled"
}
Você pode opcionalmente enviar e receber XML definindo o Content-Type como application / xml.
Uma vez que o administrador foi criado, você deve definir privilégios de administrador para cada nó Riak CS. Os privilégios de administrador são definidos no arquivo de configuração riak-cs.conf localizado no diretório / etc / riak-cs. Insira uma linha key_id entre as aspas para admin.key. Cole o campo do parâmetro 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
]}
Limitando baldes
Você também pode definir um limite para o número de depósitos criados pelo usuário. O padrão é 100 depósitos no máximo. Lembre-se de que, se o usuário exceder o limite de criação do intervalo, ele ainda estará disponível para outras operações, incluindo a exclusão de um intervalo. Você pode alterar o limite padrão usando o parâmetro max_buckets_per_user em cada nó no arquivo advanced.config - e esta não será uma mudança igual no arquivo riak-cs.conf. Por exemplo, a configuração abaixo especifica um máximo de 1000:
ADVANCED.CONFIG
{riak_cs, [
%% Other configs
{max_buckets_per_user, 1000},
%% Other configs
]}
Se você deseja remover as restrições na criação de depósitos por um usuário, pode definir o valor do parâmetro max_buckets_per_user como ilimitado.
Pools de conexão
O Riak CS usa dois pools de conexão explícita com o objetivo de se comunicar com o Riak KV: pools primários (primários) e secundários.
O pool de conexão principal é usado para atender à maioria das solicitações de API relacionadas ao carregamento ou recuperação de objetos. Ele é especificado no arquivo de configuração como pool.request.size . O tamanho do pool padrão é 128. O
pool de conexão secundária é estritamente usado para solicitações de enumeração para o conteúdo do bucket. Um pool de conexão separado é necessário para melhorar o desempenho.
O pool de conexão secundária é definido no arquivo de configuração como pool.list.size . Por padrão, seu tamanho é 5.
Abaixo está a entrada de configuração connection_poolso padrão que pode ser encontrado no arquivo 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
]}
O valor de cada pool é dividido em pares, onde o primeiro número representa o tamanho normal do pool. Este é o número de solicitações simultâneas de um tipo específico que o nó Riak CS pode atender. O segundo número é o número de estouro de pool permitido. Não é recomendado usar qualquer valor diferente de 0 para estouro aqui, a menos que um teste cuidadoso tenha mostrado que o valor escolhido é útil para o caso específico.
Tuning
É altamente recomendável que você tenha cuidado ao definir o valor do parâmetro pb_backlog no Riak KV. Quando o nó Riak CS é iniciado, cada pool de conexão estabelece conexões com o Riak KV. Isso pode levar a um grande problema de rebanho , no qual se acredita que as conexões na piscina estejam relacionadas ao Riak KV, mas na realidade elas foram descartadas. Devido à limitação da taxa de pacotes TCP RST (controlada pelo parâmetro net.inet.icmp.icmplim ), alguns pacotes podem não receber notificação até que sejam usados para atender à solicitação do usuário. Isso se manifesta como mensagens de {erro, desconectado} nos arquivos de log do Riak CS e um erro retornado ao usuário.
Conexão SSL em 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"}
]},
Substitua o texto entre aspas no caminho para suas chaves de criptografia SSL. Por padrão, em cada nó, os arquivos cert.pem e key.pem estão localizados no diretório / etc. Você é livre para usar essas chaves ou as suas.
Observe que você também deve fornecer uma Autoridade de Certificação (CA), ou seja, um certificado CA. Se puder, você deve usar o arquivo de configuração advanced.config e especificar sua localização no parâmetro cacertfile . Ao contrário de certfile e keyfile, o parâmetro cacertfile não está comentado. É aqui que você deve adicionar seu certificado. Um exemplo de configuração:
ADVANCED.CONFIG
{ssl, [
{certfile, "./etc/cert.pem"},
{keyfile, "./etc/key.pem"},
{cacertfile, "./etc/cacert.pem"}
]},
%% Other configs
Você pode encontrar instruções para criar um certificado CA em recursos de terceiros .
Proxy vs. Conexão Direta
O Riak CS pode interagir com clientes S3 de duas maneiras:
- configuração de proxy - quando um cliente S3 se conecta ao Riak CS como se fosse do Amazon S3, ou seja, com URLs típicos da Amazon.
- conexão direta - requer que o cliente S3 conectado ao Riak CS seja configurado como "serviço compatível com S3", ou seja, o ponto de conexão Riak CS mascarado como Amazon S3. Exemplos de tais serviços são Transmit, s3cmd, DragonDisk.
Proxy
Para definir a configuração do proxy, configure seu cliente proxy como um ponto no endereço do cluster Riak CS. Em seguida, configure seu cliente com credenciais Riak CS.
Quando o Riak CS recebe uma solicitação de proxy, ele a atende e responde ao cliente como se a solicitação fosse para o S3.
No lado do servidor, o parâmetro root_host no arquivo riak-cs.conf deve ser s3.amazonaws.com porque todas as solicitações do cliente para URLs de bucket serão direcionadas a s3.amazonaws.com. Este é o padrão.
Importante : Um problema com as configurações de proxy é que muitos clientes GUI permitem que apenas um proxy seja configurado para todas as conexões. Para clientes que tentam se conectar ao S3 e ao Riak CS, isso pode ser problemático.
Conexão direta
A configuração de uma conexão direta é feita por meio do parâmetro cs_root_host na seção riak-cs do arquivo app.config. O valor deve ser definido como o FQDN de seu ponto de entrada Riak CS, já que todos os URLs de bucket terão como alvo o ponto de entrada FQDN.
Você também precisará de registros DNS curinga para qualquer filho do ponto de entrada para resolvê-lo no próprio ponto de extremidade. Exemplo:
CONFIG
data.riakcs.net
*.data.riakcs.net
Configurações do coletor de lixo

As configurações a seguir estão disponíveis para configurar o coletor de lixo no Riak CS. Para obter mais informações, consulte a seção Coleta de lixo .
- 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 em advanced.config ou app.config) - blocos de objeto que são menores que o valor do limite são excluídos de forma síncrona e seus manifestos são marcados como schedule_delete . O padrão é 0.
Existem algumas configurações adicionais que só podem ser definidas nos arquivos de configuração advanced.config ou app.config. Nenhuma das configurações a seguir está disponível por meio do arquivo de configuração 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 - Este parâmetro representa o tamanho usado para paginar os resultados de uma consulta de índice secundário. O padrão é 1000.
Configuração desatualizada
No momento, o Riak CS 2.0 ainda suporta a configuração do parâmetro pg_paginated_indexes, e é altamente recomendável não usar essas configurações. As configurações serão removidas na próxima versão principal.
Outras configurações do Riak CS
Para obter uma lista completa dos parâmetros configuráveis do Riak CS, você pode consultar o documento de referência de configuração .
Links
Riak Cloud Storage. Parte 1. Configurando o Riak KV
Riak Cloud Storage. Parte 2. Configurando o componente
Riak CS Riak Cloud Storage. Parte 3. Stanchion, Proxy e Balanceamento de Carga, Manual Original do Cliente S3
.