Riak Cloud Storage. Part 1. Configuració del Riak KV

Riak CS (emmagatzematge al núvol) – programari fàcil d'utilitzar per organitzar l'emmagatzematge d'objectes, que s'executa sobre Riak KV. Riak (KV) és una base de dades de valor-clau NoSQL distribuïda. Riak CS està dissenyat per proporcionar simplicitat, disponibilitat, distribució de l'emmagatzematge al núvol de qualsevol escala i es pot utilitzar per construir arquitectures al núvol, tant públiques com privades, o com a emmagatzematge d'infraestructura per a aplicacions i serveis molt carregats. Riak CS API és compatible amb Amazon S3 i admet la possibilitat de rebre informes sobre diverses situacions.

Riak Cloud Storage. Part 1. Configuració del Riak KV
Aquest article és una traducció gratuïta del manual oficial de la versió 2.1.1 del sistema Riak CS

Al sistema d'emmagatzematge Riak CS, tres components funcionen conjuntament entre si, el que significa que cada component s'ha de configurar per funcionar amb els altres components:

  • Riak (KV) – un sistema de bases de dades que actua com a sistema final.
  • Riak CS - Una capa d'emmagatzematge al núvol a la part superior de Riak que proporciona capacitats d'emmagatzematge i API, emmagatzema fitxers i metadades a Riak i després els distribueix als usuaris finals.
  • Pissó - Gestiona les consultes que involucren entitats úniques globalment, com ara cubs i usuaris a la instància de Riak. Per exemple, la creació d'usuaris, la creació o la supressió de cubs.

A més, també podeu configurar el client S3 per utilitzar-lo en missatgeria amb el sistema Riak CS.

Hauríeu de planificar tenir un node Riak per a cada node Riak CS del vostre sistema. Els nodes Riak i Riak CS es poden executar en màquines físiques diferents, però en la majoria dels casos és preferible executar un node Riak i un node Riak CS a la mateixa màquina física. Suposant que una màquina física té prou potència per satisfer les necessitats dels nodes Riak i Riak CS, generalment veureu un millor rendiment a causa de la latència de xarxa reduïda.

Si el vostre sistema consta de diversos nodes, la configuració consisteix principalment a configurar la comunicació entre components. Altres paràmetres, com ara on s'emmagatzemaran els fitxers de registre, tenen valors predeterminats i només cal canviar-los si voleu utilitzar valors no estàndard.

Configuració dels components del sistema. Configuració de Riak KV per a CS

Com que Riak CS és una aplicació construïda sobre Riak, és molt important parar atenció a la configuració de Riak quan executeu Riak CS. Aquest document és alhora una guia de configuració de Riak i un document de referència que descriu paràmetres de configuració importants.

Abans de la configuració, assegureu-vos que Riak KV i Riak CS estiguin instal·lats a tots els nodes del vostre clúster. Stanchion, d'altra banda, només s'ha d'instal·lar en un node de tot el clúster.

Riak Cloud Storage. Part 1. Configuració del Riak KV

Backends per a Riak CS

El backend predeterminat utilitzat per Riak és Bitcask, però el paquet Riak CS inclou un backend especial que ha de ser utilitzat pel clúster Riak que forma part del sistema Riak CS. La versió normal té el backend estàndard Multi que ve amb Riak.

Els mateixos cubs Riak utilitzats a Riak CS utilitzen índexs secundaris, que ara requereixen un backend LevelDB. Altres parts del sistema Riak CS es poden beneficiar de l'ús del backend Bticask. L'ús d'un backend multi de mostra s'inclou a Riak CS per aprofitar ambdós backends per aconseguir la millor combinació de rendiment i funcionalitat. La següent secció descriu com configurar correctament Riak per utilitzar aquest Multi-backend.

Backend és el que farà servir Riak per guardar les dades. Riak KV té diversos backends al seu arsenal: Bitcask, LevelDB, Memory i Multi.

A més, el sistema de càlcul d'emmagatzematge utilitza Riak MapReduse per agregar fitxers en cubs. Això vol dir que heu d'indicar a tots els nodes Riak on buscar els fitxers Riak CS preparats abans de calcular l'emmagatzematge.

S'han de canviar diversos paràmetres per configurar el node Riak com a part del sistema Riak CS, com ara l'adreça IP i l'adreça IP i el port per a la missatgeria a través dels buffers de protocol. Es poden canviar altres paràmetres si cal. Les seccions següents descriuen com configurar un node Riak perquè funcioni com a part del sistema Riak CS.

Configurant el backend de Riak

En primer lloc, s'editen els fitxers de configuració riak.conf o advanced.config/app.config. Aquests fitxers es poden localitzar als directoris /etc/riak o /opt/riak/etc. Per defecte, Riak utilitza el backend de Bitcask. El primer que hem de fer és canviar el fitxer de configuració eliminant la línia següent:

RAK.CONF

## Delete this line:
storage_backend = bitcask

CONFIG.AVANÇAT

{riak_kv,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

{riak_kv, 
  [ %% Delete this line:
    {storage_backend, riak_kv_bitcask_backend},
]}

A continuació, hem de demostrar la necessitat de mòduls RiakCS per a Riak i instruir a Riak perquè utilitzi el backend configurat que proporciona Riak CS. Hem d'utilitzar el fitxer advanced.config o app.config per a això i afegir les opcions següents:

CONFIG.AVANÇAT

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

APP.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

És molt important tenir en compte que molts d'aquests valors dependran de les variacions de directoris específiques del vostre sistema operatiu, així que seguiu les instruccions en conseqüència. Per exemple, l'opció add_paths suposa que Riak CS està instal·lat a /usr/lib/riak-cs, mentre que les opcions data_root assumeixen que Riak està instal·lat a /var/lib. (Nota: en el meu cas era add_paths - /usr/lib64/riak-cs/).

Aquesta configuració suposa que Riak CS està instal·lat a la mateixa màquina que Riak. Si no és així, s'ha de copiar el paquet en un host separat.

Configuració de la creació de germans

Ara, hem d'establir el paràmetre allow_mult com a true. Podem afegir una línia al fitxer de configuració riak.conf, o una secció riak_core a advanced.config o app.config.

RAK.CONF

buckets.default.allow_mult = true

CONFIG.AVANÇAT

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

APP.CONFIG

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

Això permetrà a Riak crear germans necessaris perquè Riak CS funcioni. Si us connecteu a Riak CS mitjançant la biblioteca del client, no us preocupeu: no haureu de resoldre conflictes, ja que totes les operacions de Riak CS són estrictament coherents tal com es defineix.

Germà és una manera d'emmagatzemar diversos objectes en una clau perquè l'objecte tingui valors diferents en diferents nodes.

Nota: allow_mult
Qualsevol node Riak que també admeti Riak CS tindrà allow_mult establert com a true en tot moment. Riak CS restablirà el llançament si el valor és fals.

Configuració del nom d'amfitrió i l'adreça IP

Cada node Riak té un nom, que es pot especificar a l'opció nodename a riak.conf. Si utilitzeu el fitxer de configuració app.config, haureu de crear un fitxer anomenat vm.args al mateix directori que app.config i especificar el nom de l'amfitrió amb el senyalador -name. Us recomanem que especifiqueu els noms dels nodes en el format @. I, per tant, si teniu tres nodes en execució en un host 100.0.0.1, podeu trucar-los [protegit per correu electrònic], [protegit per correu electrònic]I [protegit per correu electrònic] o pots donar noms més específics, com ara [protegit per correu electrònic], [protegit per correu electrònic] etcètera. L'exemple següent mostra el canvi del nom d'amfitrió a [protegit per correu electrònic], que s'executarà a localhost.

RAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Heu de posar nom a tots els nodes abans d'iniciar-los i unir-vos al clúster.

Prova de configuració

Ara que s'han completat tots els paràmetres de nodes necessaris, podem intentar llançar Riak:

PETXA

 riak start 

Nota La resposta en el meu cas:

Riak Cloud Storage. Part 1. Configuració del Riak KV

Aquí cal esperar una mica. A continuació, podeu començar a provar el node en execució.

PETXA

 riak ping

Si la resposta és pong, aleshores Riak s'està executant; si la resposta és que Node no respon als pings, alguna cosa ha fallat.

Nota La resposta en el meu cas:

Riak Cloud Storage. Part 1. Configuració del Riak KV

Si el node no s'ha iniciat correctament, mireu el registre erlang.log.1 al directori /log del node si es pot identificar el problema. Un dels errors més comuns és invalid_storage_backend. El que indica que el camí a la biblioteca Riak CS a advanced.config o app.config és incorrecte (o Riak CS no està instal·lat al servidor). Malgrat aquest error, assegureu-vos que no heu canviat de riak_cs_kv_multi_backend a riak_kv_multi_backend.

Configuració de Riak per utilitzar els buffers de protocol

La configuració del buffer del protocol Riak es troba a riak.conf o a la secció riak_api dels fitxers advanced.config o app.config, que es troben al directori /etc/riak/. Per defecte, l'amfitrió té una adreça IP de 127.0.0.1 i un port 8087. Haureu de canviar-los si teniu previst executar Riak i Riak CS en un entorn no local. Substituïu 127.0.0.1 per l'adreça IP de l'amfitrió Riak i el port 8087 per un d'adequat.

RAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

ADVANCED.CONF

{riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

APP.CONFIG

riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

Nota:El valor del paràmetre listener.protobuf.internal al fitxer riak.conf (o el valor del paràmetre pb a advanced.conf/app.config) ha de coincidir amb els valors de riak_host a Riak CS riak-cs.config i Fitxers Stanchion stanchion.conf (o riak_host respectivament en avançats fitxers .config/app.config).

Una nota sobre el número de port
És possible que es requereixi un número de port diferent si el port entra en conflicte amb els ports utilitzats per una altra aplicació o si utilitzeu un equilibrador de càrrega o un servidor intermediari.

També es recomana que els usuaris s'assegurin que la mida del Riak protobuf.backlog (o als fitxers advanced.config/app.config és pb_backlog) és igual o superior a la pool.request.size especificada per a Riak CS a riak-cs. config (o request_pool_size als fitxers advanced.config/app.conf).

Si s'ha canviat el valor de pool.request.size a Riak CS, el valor de protobuf.backlog també s'ha d'actualitzar a Riak.

Altres configuracions de Riak

Els fitxers riak.conf i advanced.config inclouen altres paràmetres que configuren la creació de fitxers de registre i on es desen. Aquests paràmetres tenen valors predeterminats i haurien de funcionar en la majoria dels casos. Per obtenir més informació, us recomanem que llegiu la nostra documentació sobre fitxers de configuració.

Configuració d'una adreça IP per a Riak

Quan configureu una adreça IP per a Riak, heu d'assegurar-vos que els nodes Riak tenen una adreça IP única, tant si esteu treballant amb un sol node com si esteu afegint més nodes al sistema. L'adreça IP de Riak es troba a riak.conf o, si utilitzeu el fitxer app.config, al fitxer de configuració vm.args, que es troba allà al directori /etc/riak (o /opt/riak/etc/). en altres sistemes operatius).

Inicialment, la línia que conté l'adreça IP de Riak apunta al localhost en aquesta ubicació:

RAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Substituïu 127.0.0.1 per la vostra adreça IP preferida o el nom d'amfitrió del node Riak.

Configuració de rendiment i ample de banda

Per raons de rendiment, recomanem encaridament afegir valors als fitxers de configuració de Riak riak.conf o vm.args, situats al directori /etc/riak/ o /opt/riak/etc.

RAK.CONF

 erlang.max_ports = 65536

VM.ARGS

## This setting should already be present for recent Riak installs.
 -env ERL_MAX_PORTS 65536

S'està desactivant JavaScript MapReduce

Es recomana no utilitzar JavaScript MapReduce heretat amb cap versió de Riak CS. Per raons de rendiment, hauríeu de desactivar la màquina virtual que realitza operacions de JavaScript MapReduce configurant-lo al fitxer de configuració riak.conf o a la secció riak_kv de advanced.conf o app.config:

RAK.CONF

 javascript.map_pool_size = 0
 javascript.reduce_pool_size = 0
 javascript.hook_pool_size = 0 

CONFIG.AVANÇAT

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

APP.CONFIG

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

A continuació, hem de configurar els components restants del sistema Riak CS.

Manual original.

Font: www.habr.com

Afegeix comentari