Riak Cloud Storage. Dio 1. Postavljanje Riak KV

Riak CS (Cloud Storage) – jednostavan za korištenje softver za organiziranje skladištenja objekata, koji radi na vrhu Riak KV. Riak (KV) je distribuirana NoSQL baza podataka ključ/vrijednost. Riak CS je dizajniran da obezbedi jednostavnost, dostupnost, distribuciju skladištenja u oblaku bilo koje skale, i može se koristiti za izgradnju cloud arhitekture – javnih i privatnih – ili kao infrastrukturno skladištenje za visoko opterećene aplikacije i usluge. Riak CS API je kompatibilan sa Amazon S3 i podržava mogućnost primanja izvještaja o različitim situacijama.

Riak Cloud Storage. Dio 1. Postavljanje Riak KV
Ovaj članak je besplatni prijevod službenog priručnika za Riak CS sistem verziju 2.1.1

U Riak CS sistemu za skladištenje, tri komponente rade zajedno jedna s drugom, što znači da svaka komponenta mora biti konfigurirana za rad s ostalim komponentama:

  • Riak (KV) – sistem baze podataka koji djeluje kao krajnji sistem.
  • Riak CS - Sloj za pohranu u oblaku na vrhu Riak-a koji pruža pohranu i API mogućnosti, pohranjuje datoteke i metapodatke u Riak-u, a zatim ih distribuira krajnjim korisnicima.
  • Stanchion - Upravlja upitima koji uključuju globalno jedinstvene entitete kao što su buckets i korisnici u instanci Riak. Na primjer, kreiranje korisnika, kreiranje ili brisanje košarica.

Osim toga, možete također konfigurirati S3 klijenta za korištenje u razmjeni poruka sa Riak CS sistemom.

Trebali biste planirati da imate jedan Riak čvor za svaki Riak CS čvor na vašem sistemu. Riak i Riak CS čvorovi mogu se pokretati na različitim fizičkim mašinama, ali u većini slučajeva je poželjno pokrenuti jedan Riak čvor i jedan Riak CS čvor na istoj fizičkoj mašini. Pod pretpostavkom da jedna fizička mašina ima dovoljno snage da zadovolji potrebe i Riak i Riak CS čvorova, općenito ćete vidjeti bolje performanse zbog smanjenog kašnjenja mreže.

Ako se vaš sistem sastoji od nekoliko čvorova, konfiguracija se prvenstveno odnosi na postavljanje komunikacije između komponenti. Ostale postavke, kao što je mjesto gdje će se pohranjivati ​​datoteke dnevnika, imaju zadane vrijednosti i potrebno ih je promijeniti samo ako želite koristiti nestandardne vrijednosti.

Postavljanje komponenti sistema. Postavljanje Riak KV za CS

Pošto je Riak CS aplikacija izgrađena na vrhu Riaka, veoma je važno obratiti pažnju na svoju Riak konfiguraciju kada pokrećete Riak CS. Ovaj dokument je i Riak konfiguracijski vodič i referentni dokument koji opisuje važne konfiguracijske parametre.

Prije postavljanja, uvjerite se da su Riak KV i Riak CS instalirani na svakom čvoru u vašem klasteru. Stanchion, s druge strane, treba biti instaliran samo na jednom čvoru u cijelom klasteru.

Riak Cloud Storage. Dio 1. Postavljanje Riak KV

Pozadina za Riak CS

Podrazumevana pozadina koju koristi Riak je Bitcask, ali Riak CS paket uključuje poseban backend koji mora da koristi Riak klaster koji je deo Riak CS sistema. Redovna verzija ima standardni Multi backend koji dolazi uz Riak.

Isti Riak kanti koji se koriste unutar Riak CS-a koriste sekundarne indekse, koji sada zahtijevaju LevelDB backend. Ostali dijelovi Riak CS sistema mogu imati koristi od korištenja Bticask backenda. Upotreba uzorka Multi backend-a je uključena u Riak CS kako bi se iskoristile prednosti oba ova pozadina za postizanje najbolje kombinacije performansi i funkcionalnosti. Sljedeći odjeljak opisuje kako pravilno konfigurirati Riak da koristi ovaj Multi-backend.

Backend je ono što će Riak koristiti za spremanje podataka. Riak KV ima nekoliko backenda u svom arsenalu: Bitcask, LevelDB, Memory i Multi.

Dodatno, sistem za kalkulaciju skladištenja koristi Riak MapReduse da agregira datoteke u kante. To znači da morate reći svim Riak čvorovima gdje da traže pripremljene Riak CS datoteke prije računanja memorije.

Nekoliko drugih parametara se mora promijeniti da bi se Riak čvor konfigurirao kao dio Riak CS sistema, kao što su IP adresa i IP adresa i port za razmjenu poruka preko protokolnih bafera. Ostale postavke se mogu promijeniti ako je potrebno. Sljedeći odjeljci opisuju kako konfigurirati Riak čvor da radi kao dio Riak CS sistema.

Postavljanje Riak backenda

Prvo se uređuju konfiguracijske datoteke riak.conf ili advanced.config/app.config. Ove datoteke se mogu nalaziti u direktorijima /etc/riak ili /opt/riak/etc. Podrazumevano, Riak koristi Bitcask backend. Prva stvar koju treba da uradimo je da promenimo konfiguracioni fajl uklanjanjem sledećeg reda:

RIAK.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},
]}

Zatim, moramo pokazati potrebu za RiakCS modulima za Riak i uputiti Riak da koristi konfigurirani backend koji pruža Riak CS. Za ovo moramo koristiti datoteku advanced.config ili app.config i dodati sljedeće opcije:

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

Vrlo je važno napomenuti da će mnoge od ovih vrijednosti ovisiti o varijacijama direktorija specifičnih za vaš operativni sistem, stoga slijedite upute u skladu s tim. Na primjer, opcija add_paths pretpostavlja da je Riak CS instaliran u /usr/lib/riak-cs, dok data_root opcije pretpostavljaju da je Riak instaliran u /var/lib. (Napomena: U mom slučaju je to bio add_paths - /usr/lib64/riak-cs/).

Ova konfiguracija pretpostavlja da je Riak CS instaliran na istoj mašini kao i Riak. Ako nije, onda paket treba kopirati na poseban host.

Postavljanje kreiranja braće i sestara

Sada trebamo postaviti parametar allow_mult na true. Možemo dodati red u konfiguracijski fajl riak.conf ili odjeljak riak_core u advanced.config ili app.config.

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

Ovo će omogućiti Riaku da stvori braću i sestre koji su neophodni da bi Riak CS funkcionirao. Ako se povežete na Riak CS koristeći biblioteku klijenta, ne brinite: nećete morati rješavati konflikte, budući da su sve Riak CS operacije striktno konzistentne kako je definirano.

Sibling je način pohranjivanja više objekata u jednom ključu tako da objekt ima različite vrijednosti na različitim čvorovima.

Napomena: dopusti_mult
Svaki Riak čvor koji također podržava Riak CS imat će allow_mult postavljen na true u svakom trenutku. Riak CS će resetirati lansiranje ako je vrijednost lažna.

Postavljanje imena hosta i IP adrese

Svaki Riak čvor ima ime koje se može specificirati u opciji ime čvora u riak.conf. Ako koristite konfiguracijsku datoteku app.config, trebate kreirati datoteku pod nazivom vm.args u istom direktoriju kao app.config i navesti ime hosta pomoću oznake -name. Preporučujemo da navedete imena čvorova u @ formatu. I tako ako imate tri čvora koji rade na jednom hostu 100.0.0.1, možete ih pozvati [email zaštićen], [email zaštićen]i [email zaštićen] ili možete dati konkretnija imena, kao npr [email zaštićen], [email zaštićen] i tako dalje. Primjer ispod pokazuje promjenu imena hosta u [email zaštićen], koji će se izvoditi na lokalnom hostu.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Morate imenovati sve čvorove prije nego što ih pokrenete i pridružite klasteru.

Test podešavanja

Sada kada su sve potrebne postavke čvorova završene, možemo pokušati pokrenuti Riak:

školjka

 riak start 

Bilješka Odgovor u mom slučaju:

Riak Cloud Storage. Dio 1. Postavljanje Riak KV

Ovdje treba malo sačekati. Tada možete početi testirati pokrenuti čvor.

školjka

 riak ping

Ako je odgovor pong, onda Riak radi; ako je odgovor Node ne odgovara na pingove, onda je nešto pošlo po zlu.

Bilješka Odgovor u mom slučaju:

Riak Cloud Storage. Dio 1. Postavljanje Riak KV

Ako se čvor nije ispravno pokrenuo, pogledajte dnevnik erlang.log.1 u /log direktoriju čvora ako se problem može identificirati. Jedna od najčešćih grešaka je invalid_storage_backend. Što ukazuje da je putanja do Riak CS biblioteke u advanced.config ili u app.config netačna (ili Riak CS nije instaliran na serveru). Uprkos ovoj grešci, uvjerite se da niste promijenili iz riak_cs_kv_multi_backend u riak_kv_multi_backend.

Konfiguriranje Riak-a za korištenje međuspremnika protokola

Postavke bafera Riak protokola nalaze se u riak.conf ili u odjeljku riak_api u datotekama advanced.config ili app.config, koje se nalaze u direktoriju /etc/riak/. Po defaultu, host ima IP adresu 127.0.0.1 i port 8087. Morat ćete ih promijeniti ako planirate da pokrenete Riak i Riak CS u ne-lokalnom okruženju. Zamijenite 127.0.0.1 sa Riak IP adresom hosta i port 8087 odgovarajućim.

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

Napomena:Vrijednost parametra listener.protobuf.internal u datoteci riak.conf (ili vrijednost pb parametra u advanced.conf/app.config) mora odgovarati vrijednostima za riak_host u Riak CS riak-cs.config i Stanchion stanchion.conf (ili riak_host u naprednim .config/app.config) datotekama.

Napomena o broju porta
Drugi broj porta može biti potreban ako je port u sukobu sa portovima koje koristi druga aplikacija ili ako koristite balansator opterećenja ili proxy server.

Također se preporučuje da korisnici osiguraju da je veličina Riak protobuf.backlog (ili u datotekama advanced.config/app.config ovo je pb_backlog) jednaka ili veća od pool.request.size specificirane za Riak CS u riak-cs. config (ili request_pool_size u advanced.config/app.conf fajlovima).

Ako je vrijednost pool.request.size u Riak CS promijenjena, tada se vrijednost protobuf.backlog također mora ažurirati u Riaku.

Ostale Riak postavke

Datoteke riak.conf i advanced.config uključuju druge postavke koje konfigurišu kreiranje datoteka evidencije i gdje se one pohranjuju. Ove postavke imaju zadane vrijednosti i trebale bi raditi u većini slučajeva. Za više informacija, preporučujemo da pročitate našu dokumentaciju o konfiguracijskim datotekama.

Postavljanje IP adrese za Riak

Kada postavljate IP adresu za Riak, morate biti sigurni da Riak čvorovi imaju jedinstvenu IP adresu, bilo da radite sa samo jednim čvorom ili dodajete više čvorova sistemu. Riak IP adresa je sadržana u riak.conf ili - ako koristite datoteku app.config - u konfiguracijskoj datoteci vm.args, koja se nalazi tamo u /etc/riak direktoriju (ili /opt/riak/etc/ na drugim operativnim sistemima).

U početku, linija koja sadrži Riak IP adresu ukazuje na localhost na ovoj lokaciji:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Zamijenite 127.0.0.1 vašom željenom IP adresom ili imenom hosta Riak čvora.

Postavke performansi i propusnosti

Iz razloga performansi, toplo preporučujemo dodavanje vrijednosti u Riak konfiguracijske datoteke riak.conf ili vm.args, koje se nalaze u direktoriju /etc/riak/ ili /opt/riak/etc.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

Onemogućavanje JavaScript MapReduce

Preporučuje se da ne koristite zastareli JavaScript MapReduce sa bilo kojom verzijom Riak CS. Iz razloga performansi, trebali biste onemogućiti virtuelnu mašinu koja izvodi JavaScript MapReduce operacije tako što ćete postaviti u konfiguracionoj datoteci riak.conf ili u odeljku riak_kv Advanced.conf ili app.config:

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

Zatim moramo konfigurirati preostale komponente Riak CS sistema.

Originalni priručnik.

izvor: www.habr.com

Dodajte komentar