
Neste artigo, concluiremos a configuração dos componentes do sistema Riak Cloud Storage.
Este artigo é a conclusão de uma série de traduções gratuitas do manual oficial do sistema Riak CS 2.1.1.
Parte 1. Configurando o Riak KV
Parte 2. Configurando o componente Riak CS
Configurando o Stanchion
Você deve usar um e apenas um nó Stanchion em seu cluster. Todos os nós Riak CS neste cluster devem ser configurados para se comunicar com o nó Stanchion para que o cluster possa rastrear e reconciliar operações causais.
Todas as configurações usadas pelo nó Stanchion estão contidas no arquivo stanchion.conf, que está localizado no diretório / etc / stanchion na maioria dos sistemas operacionais.
Se você estiver atualizando de uma versão anterior ao Riak CS 2.0.0 - quando stanchion.conf e riak-cs.conf foram introduzidos - você ainda pode usar o arquivo de configuração app.config antigo. Os exemplos abaixo serão equivalentes.
STANCHION.CONF
configuration.name = value
APP.CONFIG
{stanchion, [
%% Configs here
]}
Configurando endereço IP e porta para escora
Se você tiver apenas um nó Riak CS, não precisa alterar as configurações do Stanchion, porque o Stanchion está apenas ouvindo os pedidos do host local. Se o cluster Riak CS tiver muitos nós, você deve definir o endereço IP e a porta em que o Stanchion atenderá as solicitações de outros nós.
Você pode definir o endereço IP usando o parâmetro listener . Substitua 127.0.0.1 pelo IP do host
Stanchion e a porta 8080 pela porta do host: STANCHION.CONF
listener = 127.0.0.1:8080
APP.CONFIG
{stanchion, [
{host, {"127.0.0.1", 8085}},
%% Other configs
]}
Observação sobre endereços IP correspondentes O
endereço IP inserido aqui deve corresponder ao endereço IP no parâmetro stanchion_host no riak.conf para Riak e riak-cs.conf para Riak CS.
Se desejar usar SSL, certifique-se de que os parâmetros ssl.certfile e ssl.keyfile não estejam comentados e configurados corretamente.
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
]}
Configurando uma conta de administrador
O administrador é criado ao configurar o componente Riak CS. As mesmas permissões devem ser adicionadas para cada escora usada no cluster. Isso é configurado em stanchion.conf, que está localizado no diretório / etc / stanchion. Insira os mesmos admin.key e admin.secret
STANCHION.CONF
admin.key = OUCXMB6I3HOZ6D0GWO2D
admin.secret = a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag==
APP.CONFIG
{stanchion, [
%% Admin user credentials
{admin_key, "OUCXMB6I3HOZ6D0GWO2D"},
{admin_secret, "a58Mqd3qN-SqCoFIta58Mqd3qN7umE2hnunGag=="},
%% Other configs
]}
Configurando as informações do Riak KV
Se você estiver executando um nó para experimentação, ou se o nó Riak KV estiver executando localmente e configurado para ouvir o tráfego do buffer de protocolo em 0.0.0.0, então a configuração padrão deve ser adequada.
Caso contrário, atualize o endereço IP e a porta do host Riak no arquivo de configuração do Stanchion.
STANCHION.CONF
riak_host = 127.0.0.1:8087
APP.CONFIG
{stanchion, [
{riak_host, {"127.0.0.1", 8087}},
%% Other configs
]}
Balanceamento de carga e proxy para Riak CS

Se você planeja usar o Riak CS em uso industrial, recomendamos fortemente que você instale um balanceador de carga ou proxy, software ou hardware, após Riak CS. Observe também que você não deve expor diretamente o Riak CS a interfaces de rede abertas.
Os usuários do Riak CS relatam o uso bem-sucedido do Riak CS com um balanceador de carga ou proxy. As soluções colaborativas incluem balanceadores de carga de hardware proprietários, opções de balanceadores de carga baseados em nuvem, como o Elastic Load Balancer da Amazon, e soluções de software de código aberto, como HAProxy e Nginx.
Este guia analisa brevemente a solução de compartilhamento de código-fonte HAProxy e Nginx e fornece algumas configurações e conselhos operacionais obtidos da comunidade de engenheiros e usuários do Riak.
HAProxy
O HAProxy é uma solução rápida e confiável para balanceamento de carga e proxy do tráfego de aplicativos HTTP e TCP.
Os usuários relatam o uso bem-sucedido do HAProxy em combinação com o Riak CS em várias configurações e cenários. Mais informações e exemplos de configuração para esta seção são para usuários avançados na comunidade Riak CS, além de comentários dos engenheiros da Riak.
Exemplo de configuração
O exemplo a seguir é o ponto de partida para configurar o HAProxy como um balanceador de carga para uma instalação do Riak CS.
Observação sobre
limites de arquivos abertos Os limites de arquivos abertos do sistema operacional devem ser maiores que 256.000 para o seguinte exemplo de configuração. Verifique a documentação para limites de arquivos abertos para configuração detalhada do valor para diferentes sistemas operacionais.
CONFIG
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
Observe que o exemplo acima é considerado um ponto de partida e é um trabalho em andamento.
Você deve ter cuidado ao aplicar esta configuração e modificá-la para se adequar ao seu ambiente.
Um detalhe de configuração específico que vale a pena observar no exemplo é a opção comentada para usar SSL. O HAProxy oferece suporte a SSL diretamente desde a versão 1.5. Certifique-se de que sua instância HAProxy seja construída com suporte a OpenSSL, você pode habilitar SSL removendo o comentário da linha e modificando-a para se adequar ao seu ambiente.
Você pode encontrar mais informações na documentação do HAProxy .
Além disso, preste atenção à opção de verificação de integridade do Riak CS por meio do endpoint / riak-cs / ping. Este parâmetro é necessário para validar cada host Riak CS como parte do método round robin de balanceamento de carga.
Nginx
Vários usuários relataram com sucesso o uso de um servidor Nginx HTTP para solicitações de proxy para Riak CS. Um exemplo de acesso ao Riak CS está incluído aqui para referência.
Exemplo de configuração
Abaixo está um exemplo de configuração inicial para Nginx para atuar como um proxy front-end para Riak CS.
CONFIG
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;
}
}
Observe que a diretiva proxy_set_header Host $ http_host é necessária para garantir que o cabeçalho HTTP Host: seja passado ao Riak CS conforme recebido, e não traduzido no nome do host ou endereço do servidor backend Riak CS.
Também é importante observar que proxy_pass não deve terminar com uma barra, pois isso pode levar a vários problemas.
Configuração do cliente S3

Este tutorial mostra como usar o s3cmd como um cliente S3. Embora não cubra todos os recursos do cliente, ele mostrará como criar uma configuração e executar alguns comandos básicos.
Nota: Versão de assinatura s3cmd
Se você estiver usando s3cmd versão 1.5.0 ou superior, você precisa adicionar o sinalizador --signature-v2 para cada comando direcionado ao cluster Riak CS para que s3cmd use AWS versão 2 e não a versão AWS 3 padrão.
Configuração inicial
Para usar s3cmd em conjunto com Riak CS, você deve configurar o utilitário para fazer interface com seu sistema Riak CS. Uma maneira é criar um arquivo .s3cfg e salvá-lo em seu diretório inicial. Ao executar qualquer comando relacionado ao s3cmd, o conteúdo do arquivo será lido por padrão. Alternativamente, você pode especificar um arquivo de configuração usando o sinalizador -c . Exemplo:
SHELL
s3cmd -c /PATH/TO/CONFIG/FILE <command>
Uma forma alternativa de configurar o s3cmd é executar s3cmd --configure , que iniciará uma ferramenta interativa e construirá um arquivo de configuração baseado no que você inserir.
Na próxima seção, você encontrará um pequeno exemplo de arquivos .s3cfg que podem ser usados para configurar a comunicação com o Riak CS.
Arquivo de configuração s3cmd de amostra para uso local
Use este exemplo de arquivo de configuração .s3cfg para se comunicar com o Riak CS localmente na porta 8080 com s3cmd (lembre-se de incluir informações específicas para a instalação do Riak CS, se necessário).
CONFIG
[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
Arquivo de configuração s3cmd de amostra para uso na produção
Use este arquivo de configuração .s3cfg de exemplo para interagir com o Riak CS via s3cmd em um sistema de produção.
CONFIG
[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
Para configurar o cliente s3cmd para um usuário, você deve alterar access_key e secret_key.
Configurando o local de armazenamento
Por padrão, o arquivo .3cfg usa o serviço Amazon S3 como back-end de armazenamento. Para um sistema Riak CS, altere as configurações a seguir para apontar para seu sistema de armazenamento.
- host_base - forneça um nome de domínio ou caminho para seu armazenamento de dados, por exemplo data.example.com
- host_bucket - especifique a localização do intervalo, por exemplo my_cs_bucket.data.example.com
Usando SSL no cliente
Se você estiver usando SSL, defina o parâmetro use_https como True .
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
.