Stocare în cloud Riak. Partea 1: Configurarea Riak KV

Riak CS (stocare în cloud) – software ușor de utilizat pentru organizarea stocării obiectelor, care rulează pe Riak KV. Riak (KV) este o bază de date NoSQL distribuită cheie-valoare. Riak CS este conceput pentru a oferi simplitate, disponibilitate, distribuție a stocării în cloud de orice scară și poate fi folosit pentru a construi arhitecturi cloud - atât publice, cât și private - sau ca stocare a infrastructurii pentru aplicații și servicii foarte încărcate. Riak CS API este compatibil cu Amazon S3 și acceptă capacitatea de a primi rapoarte pentru diverse situații.

Stocare în cloud Riak. Partea 1: Configurarea Riak KV
Acest articol este o traducere gratuită a manualului oficial pentru versiunea 2.1.1 a sistemului Riak CS

În sistemul de stocare Riak CS, trei componente funcționează împreună, ceea ce înseamnă că fiecare componentă trebuie configurată pentru a funcționa cu celelalte componente:

  • Riak (KV) – un sistem de baze de date care acționează ca un sistem final.
  • Riak CS - Un strat de stocare în cloud deasupra Riak care oferă capabilități de stocare și API, stochează fișiere și metadate în Riak și apoi le distribuie utilizatorilor finali.
  • proptea - Gestionează interogări care implică entități unice la nivel global, cum ar fi găleți și utilizatori în instanța Riak. De exemplu, crearea de utilizatori, crearea sau ștergerea compartimentelor.

În plus, puteți configura și clientul S3 pentru a fi utilizat în mesagerie cu sistemul Riak CS.

Ar trebui să planificați să aveți câte un nod Riak pentru fiecare nod Riak CS de pe sistemul dumneavoastră. Nodurile Riak și Riak CS pot fi rulate pe mașini fizice diferite, dar în majoritatea cazurilor este de preferat să rulați un nod Riak și un nod Riak CS pe aceeași mașină fizică. Presupunând că o singură mașină fizică are suficientă putere pentru a satisface atât nevoile nodurilor Riak, cât și ale nodurilor Riak CS, veți vedea în general performanțe mai bune datorită latenței reduse a rețelei.

Dacă sistemul dumneavoastră este format din mai multe noduri, configurarea se referă în primul rând la configurarea comunicării între componente. Alte setări, cum ar fi locul în care vor fi stocate fișierele jurnal, au valori implicite și trebuie modificate doar dacă doriți să utilizați valori non-standard.

Configurarea componentelor sistemului. Configurarea Riak KV pentru CS

Deoarece Riak CS este o aplicație construită pe deasupra Riak, este foarte important să acordați atenție configurației dumneavoastră Riak atunci când rulați Riak CS. Acest document este atât un ghid de configurare Riak, cât și un document de referință care descrie parametri importanți de configurare.

Înainte de configurare, asigurați-vă că Riak KV și Riak CS sunt instalate pe fiecare nod din clusterul dvs. Stanchion, pe de altă parte, ar trebui să fie instalat doar pe un singur nod din întregul cluster.

Stocare în cloud Riak. Partea 1: Configurarea Riak KV

Backend-uri pentru Riak CS

Backend-ul implicit folosit de Riak este Bitcask, dar pachetul Riak CS include un backend special care trebuie utilizat de clusterul Riak care face parte din sistemul Riak CS. Versiunea obișnuită are backend-ul Multi standard care vine cu Riak.

Aceleași găleți Riak utilizate în interiorul Riak CS folosesc indecși secundari, care necesită acum un backend LevelDB. Alte părți ale sistemului Riak CS pot beneficia de utilizarea backend-ului Bticask. Utilizarea unui exemplu de backend multiplu este inclusă în Riak CS pentru a profita de ambele backend-uri pentru a obține cea mai bună combinație de performanță și funcționalitate. Următoarea secțiune descrie cum să configurați corect Riak pentru a utiliza acest Multi-backend.

Backend este ceea ce va folosi Riak pentru a salva datele. Riak KV are mai multe backend-uri în arsenalul său: Bitcask, LevelDB, Memory și Multi.

În plus, sistemul de calcul al stocării folosește Riak MapReduse pentru a agrega fișierele în găleți. Aceasta înseamnă că trebuie să spuneți tuturor nodurilor Riak unde să căutați fișierele Riak CS pregătite înainte de a calcula stocarea.

Mai mulți alți parametri trebuie modificați pentru a configura nodul Riak ca parte a sistemului Riak CS, cum ar fi adresa IP și adresa IP și portul pentru mesagerie prin Protocol Buffers. Alte setări pot fi modificate dacă este necesar. Următoarele secțiuni descriu cum să configurați un nod Riak pentru a funcționa ca parte a sistemului Riak CS.

Configurarea backend-ului Riak

Mai întâi, fișierele de configurare riak.conf sau advanced.config/app.config sunt editate. Aceste fișiere pot fi localizate în directoarele /etc/riak sau /opt/riak/etc. În mod implicit, Riak folosește backend-ul Bitcask. Primul lucru pe care trebuie să-l facem este să schimbăm fișierul de configurare eliminând următoarea linie:

RAK.CONF

## Delete this line:
storage_backend = bitcask

ADVANCED.CONFIG

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

APP.CONFIG

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

În continuare, trebuie să demonstrăm necesitatea modulelor RiakCS pentru Riak și să îi instruim pe Riak să folosească backend-ul configurat care oferă Riak CS. Trebuie să folosim fișierul advanced.config sau app.config pentru aceasta și să adăugăm următoarele opțiuni:

ADVANCED.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
]}

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
]}

Este foarte important să rețineți că multe dintre aceste valori vor depinde de variațiile de director specifice sistemului dvs. de operare, așa că urmați instrucțiunile în consecință. De exemplu, opțiunea add_paths presupune că Riak CS este instalat în /usr/lib/riak-cs, în timp ce opțiunile data_root presupun că Riak este instalat în /var/lib. (Notă: în cazul meu a fost add_paths - /usr/lib64/riak-cs/).

Această configurație presupune că Riak CS este instalat pe aceeași mașină ca și Riak. Dacă nu, atunci pachetul trebuie copiat pe o gazdă separată.

Configurarea creației fraților

Acum, trebuie să setăm parametrul allow_mult la true. Putem adăuga o linie în fișierul de configurare riak.conf sau o secțiune riak_core în advanced.config sau app.config.

RAK.CONF

buckets.default.allow_mult = true

ADVANCED.CONFIG

{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
]}

Acest lucru îi va permite lui Riak să creeze frați care sunt necesari pentru ca Riak CS să funcționeze. Dacă vă conectați la Riak CS folosind biblioteca client, nu vă faceți griji: nu va trebui să rezolvați conflictele, deoarece toate operațiunile Riak CS sunt strict consecvente așa cum sunt definite.

Frate este o modalitate de a stoca mai multe obiecte într-o singură cheie, astfel încât obiectul să aibă valori diferite pe diferite noduri.

Notă: allow_mult
Orice nod Riak care acceptă și Riak CS va avea allow_mult setat la true în orice moment. Riak CS va reseta lansarea dacă valoarea este falsă.

Setarea numelui de gazdă și a adresei IP

Fiecare nod Riak are un nume, care poate fi specificat în opțiunea nodename din riak.conf. Dacă utilizați fișierul de configurare app.config, trebuie să creați un fișier numit vm.args în același director cu app.config și să specificați numele gazdei folosind steag-ul -name. Vă recomandăm să specificați numele nodurilor în format @. Și așadar, dacă aveți trei noduri care rulează pe o gazdă 100.0.0.1, le puteți apela [e-mail protejat], [e-mail protejat]și [e-mail protejat] sau puteți da nume mai specifice, cum ar fi [e-mail protejat], [e-mail protejat] și așa mai departe. Exemplul de mai jos demonstrează schimbarea numelui gazdei în [e-mail protejat], care va rula pe localhost.

RAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Trebuie să numiți toate nodurile înainte de a le porni și de a vă alătura clusterului.

Test de configurare

Acum că toate setările de nod necesare au fost finalizate, putem încerca să lansăm Riak:

COAJĂ

 riak start 

Notă Raspunsul in cazul meu:

Stocare în cloud Riak. Partea 1: Configurarea Riak KV

Aici trebuie să așteptați puțin. Apoi puteți începe să testați nodul care rulează.

COAJĂ

 riak ping

Dacă răspunsul este pong, atunci Riak rulează; dacă răspunsul este Node care nu răspunde la ping-uri, atunci ceva a mers prost.

Notă Raspunsul in cazul meu:

Stocare în cloud Riak. Partea 1: Configurarea Riak KV

Dacă nodul nu a pornit corect, priviți jurnalul erlang.log.1 din directorul /log al nodului dacă problema poate fi identificată. Una dintre cele mai frecvente erori este invalid_storage_backend. Ceea ce indică faptul că calea către biblioteca Riak CS în advanced.config sau în app.config este incorectă (sau Riak CS nu este instalat pe server). În ciuda acestei erori, asigurați-vă că nu ați schimbat de la riak_cs_kv_multi_backend la riak_kv_multi_backend.

Configurarea Riak pentru a utiliza bufferele de protocol

Setările buffer-ului protocolului Riak se află în riak.conf sau în secțiunea riak_api din fișierele advanced.config sau app.config, care se află în directorul /etc/riak/. În mod implicit, gazda are o adresă IP de 127.0.0.1 și portul 8087. Va trebui să le modificați dacă intenționați să rulați Riak și Riak CS într-un mediu non-local. Înlocuiți 127.0.0.1 cu adresa IP a gazdei Riak și portul 8087 cu unul adecvat.

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:Valoarea parametrului listener.protobuf.internal din fișierul riak.conf (sau valoarea parametrului pb din advanced.conf/app.config) trebuie să se potrivească cu valorile pentru riak_host din Riak CS riak-cs.config și Fișierele Stanchion stanchion.conf (sau riak_host, respectiv în .config/app.config avansate).

O notă despre numărul portului
Poate fi necesar un alt număr de port dacă portul intră în conflict cu porturile utilizate de o altă aplicație sau dacă utilizați un echilibrator de încărcare sau un server proxy.

De asemenea, se recomandă utilizatorilor să se asigure că dimensiunea Riak protobuf.backlog (sau în fișierele advanced.config/app.config, acesta este pb_backlog) este egală sau mai mare decât pool.request.size specificată pentru Riak CS în riak-cs. config (sau request_pool_size în fișierele advanced.config/ app.conf).

Dacă valoarea pool.request.size în Riak CS a fost modificată, atunci valoarea protobuf.backlog trebuie să fie actualizată și în Riak.

Alte setări Riak

Fișierele riak.conf și advanced.config includ alte setări care configurează crearea fișierelor jurnal și unde sunt salvate. Aceste setări au valori implicite și ar trebui să funcționeze în majoritatea cazurilor. Pentru mai multe informații, vă recomandăm să citiți documentația noastră despre fișierele de configurare.

Configurarea unei adrese IP pentru Riak

Când configurați o adresă IP pentru Riak, trebuie să vă asigurați că nodurile Riak au o adresă IP unică, indiferent dacă lucrați cu un singur nod sau adăugați mai multe noduri la sistem. Adresa IP Riak este conținută în riak.conf sau - dacă utilizați fișierul app.config - în fișierul de configurare vm.args, care se află acolo în directorul /etc/riak (sau /opt/riak/etc/ pe alte sisteme de operare).

Inițial, linia care conține adresa IP Riak indică localhost în această locație:

RAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Înlocuiți 127.0.0.1 cu adresa IP preferată sau numele de gazdă al nodului Riak.

Setări de performanță și lățime de bandă

Din motive de performanță, recomandăm insistent adăugarea de valori la fișierele de configurare Riak riak.conf sau vm.args, aflate în directorul /etc/riak/ sau /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

Dezactivarea JavaScript MapReduce

Se recomandă să nu utilizați JavaScript MapReduce vechi cu nicio versiune de Riak CS. Din motive de performanță, ar trebui să dezactivați mașina virtuală care efectuează operațiuni JavaScript MapReduce setând în fișierul de configurare riak.conf sau în secțiunea riak_kv din advanced.conf sau app.config:

RAK.CONF

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

ADVANCED.CONFIG

{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
]}

În continuare, trebuie să configuram componentele rămase ale sistemului Riak CS.

Manual original.

Sursa: www.habr.com

Adauga un comentariu