Riak Cloud Storage. Dio 1: Postavljanje Riak KV

Riak CS (pohrana u oblaku) – softver jednostavan za korištenje za organiziranje pohrane objekata, radi na vrhu Riak KV. Riak (KV) je distribuirana NoSQL baza podataka ključ-vrijednost. Riak CS je osmišljen kako bi pružio jednostavnost, dostupnost, distribuciju pohrane u oblaku bilo kojeg opsega i može se koristiti za izgradnju arhitekture oblaka - javnih i privatnih - ili kao pohrana infrastrukture za visoko opterećene aplikacije i usluge. Riak CS API kompatibilan je s Amazonom S3 i podržava mogućnost primanja izvješća o različitim situacijama.

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

U Riak CS sustavu za pohranu, tri komponente rade međusobno, što znači da svaka komponenta mora biti konfigurirana za rad s ostalim komponentama:

  • Riak (KV) – sustav baze podataka koji djeluje kao krajnji sustav.
  • Riak CS - Sloj za pohranu u oblaku na vrhu Riaka koji pruža mogućnosti pohrane i API-ja, pohranjuje datoteke i metapodatke u Riaku, a zatim ih distribuira krajnjim korisnicima.
  • Nosač - Upravlja upitima koji uključuju globalno jedinstvene entitete kao što su spremnici i korisnici u Riak instanci. Na primjer, stvaranje korisnika, stvaranje ili brisanje spremnika.

Osim toga, također možete konfigurirati S3 klijent za korištenje u porukama sa sustavom Riak CS.

Trebali biste planirati da imate jedan Riak čvor za svaki Riak CS čvor na vašem sustavu. Riak i Riak CS čvorovi mogu se izvoditi na različitim fizičkim strojevima, ali u većini slučajeva poželjno je pokrenuti jedan Riak čvor i jedan Riak CS čvor na istom fizičkom računalu. Pod pretpostavkom da jedan fizički stroj ima dovoljno snage da zadovolji potrebe i Riak i Riak CS čvorova, općenito ćete vidjeti bolju izvedbu zbog smanjene latencije mreže.

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

Postavljanje komponenti sustava. Postavljanje Riak KV za CS

Budući da je Riak CS aplikacija izgrađena na temelju Riaka, vrlo je važno obratiti pozornost na konfiguraciju Riaka kada pokrećete Riak CS. Ovaj dokument je i Riak konfiguracijski vodič i referentni dokument koji opisuje važne konfiguracijske parametre.

Prije postavljanja provjerite jesu li 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

Zadana pozadina koju koristi Riak je Bitcask, ali Riak CS paket uključuje posebnu pozadinu koju mora koristiti Riak klaster koji je dio Riak CS sustava. Obična verzija ima standardni Multi backend koji dolazi s Riakom.

Isti Riak spremnici koji se koriste unutar Riak CS-a koriste sekundarne indekse, koji sada zahtijevaju LevelDB backend. Drugi dijelovi Riak CS sustava mogu imati koristi od korištenja Bticask pozadine. Korištenje uzorka Multi pozadine uključeno je u Riak CS kako bi se iskoristile obje ove pozadine za postizanje najbolje kombinacije performansi i funkcionalnosti. Sljedeći odjeljak opisuje kako ispravno konfigurirati Riak za korištenje ovog Multi-backend-a.

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

Osim toga, sustav za izračun pohrane koristi Riak MapReduse za prikupljanje datoteka u spremnike. To znači da morate reći svim Riak čvorovima gdje da traže pripremljene Riak CS datoteke prije računanja pohrane.

Nekoliko drugih parametara mora se promijeniti da bi se Riak čvor konfigurirao kao dio Riak CS sustava, kao što su IP adresa i IP adresa i port za slanje poruka kroz međuspremnike protokola. Ostale postavke mogu se promijeniti ako je potrebno. Sljedeći odjeljci opisuju kako konfigurirati Riak čvor za rad kao dio Riak CS sustava.

Postavljanje Riak pozadine

Prvo se uređuju konfiguracijske datoteke riak.conf ili advanced.config/app.config. Te se datoteke mogu nalaziti u direktorijima /etc/riak ili /opt/riak/etc. Prema zadanim postavkama, Riak koristi Bitcask pozadinu. Prvo što trebamo učiniti je promijeniti konfiguracijsku datoteku uklanjanjem sljedećeg retka:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

NAPREDNO.KONFIG

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

APL.KONFIG

{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 konfiguriranu pozadinu koja pruža Riak CS. Za to trebamo koristiti datoteku advanced.config ili app.config i dodati sljedeće opcije:

NAPREDNO.KONFIG

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

APL.KONFIG

{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 imati na umu da će mnoge od ovih vrijednosti ovisiti o varijacijama direktorija specifičnim za vaš operativni sustav, stoga slijedite upute u skladu s tim. Na primjer, opcija add_paths pretpostavlja da je Riak CS instaliran u /usr/lib/riak-cs, dok opcija data_root pretpostavlja da je Riak instaliran u /var/lib. (Napomena: u mom slučaju to je bio add_paths - /usr/lib64/riak-cs/).

Ova konfiguracija pretpostavlja da je Riak CS instaliran na istom računalu kao i Riak. Ako nije, tada paket treba kopirati na zasebno računalo.

Postavljanje stvaranja srodnog brata

Sada moramo postaviti parametar allow_mult na true. Možemo dodati redak u konfiguracijsku datoteku riak.conf ili odjeljak riak_core u advanced.config ili app.config.

RIAK.CONF

buckets.default.allow_mult = true

NAPREDNO.KONFIG

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

APL.KONFIG

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

To će omogućiti Riaku da stvori braću i sestre koji su potrebni za funkcioniranje Riak CS-a. Ako se povežete na Riak CS pomoću klijentske biblioteke, ne brinite: nećete morati rješavati sukobe, budući da su sve operacije Riak CS-a strogo dosljedne kako je definirano.

Brat ili sestra 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
Bilo koji Riak čvor koji također podržava Riak CS imat će allow_mult postavljen na true u svakom trenutku. Riak CS će poništiti pokretanje ako je vrijednost lažna.

Postavljanje imena glavnog računala i IP adrese

Svaki Riak čvor ima ime koje se može navesti u opciji naziva čvora u riak.conf. Ako koristite konfiguracijsku datoteku app.config, morate stvoriti datoteku pod nazivom vm.args u istom direktoriju kao app.config i navesti naziv glavnog računala pomoću oznake -name. Preporučujemo da nazive čvorova navedete u formatu @. Dakle, ako imate tri čvora koji rade na jednom hostu 100.0.0.1, možete ih nazvati [e-pošta zaštićena], [e-pošta zaštićena]I [e-pošta zaštićena] ili možete dati konkretnija imena, kao što je [e-pošta zaštićena], [e-pošta zaštićena] i tako dalje. Primjer ispod pokazuje promjenu naziva glavnog računala u [e-pošta zaštićena], 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 postavljanja

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

SHELL

 riak start 

Bilješka Odgovor u mom slučaju:

Riak Cloud Storage. Dio 1: Postavljanje Riak KV

Ovdje morate malo pričekati. Zatim možete početi testirati pokrenuti čvor.

SHELL

 riak ping

Ako je odgovor pong, 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 zapisnik erlang.log.1 u /log direktoriju čvora ako se problem može identificirati. Jedna od najčešćih pogrešaka je invalid_storage_backend. Što znači da je put do biblioteke Riak CS u advanced.config ili u app.config netočan (ili Riak CS nije instaliran na poslužitelju). Unatoč ovoj pogrešci, provjerite da niste promijenili riak_cs_kv_multi_backend u riak_kv_multi_backend.

Konfiguriranje Riaka za korištenje međuspremnika protokola

Postavke međuspremnika protokola Riak nalaze se u riak.conf ili u odjeljku riak_api u datotekama advanced.config ili app.config, koje se nalaze u direktoriju /etc/riak/. Prema zadanim postavkama, host ima IP adresu 127.0.0.1 i port 8087. Morat ćete to promijeniti ako planirate pokrenuti Riak i Riak CS u ne-lokalnom okruženju. Zamijenite 127.0.0.1 IP adresom Riak hosta i port 8087 odgovarajućim.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

NAPREDNO.KONF

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

APL.KONFIG

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

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

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

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

Ako je vrijednost pool.request.size u Riak CS-u 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 konfiguriraju stvaranje datoteka dnevnika i gdje se spremaju. Ove postavke imaju zadane vrijednosti i trebale bi funkcionirati 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

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

U početku, redak koji sadrži Riak IP adresu upućuje na lokalni host na ovoj lokaciji:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Zamijenite 127.0.0.1 svojom željenom IP adresom ili nazivom hosta Riak čvora.

Postavke performansi i propusnosti

Zbog performansi, toplo preporučujemo dodavanje vrijednosti Riak konfiguracijskim datotekama 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ćivanje JavaScript MapReduce

Preporuča se ne koristiti naslijeđeni JavaScript MapReduce s bilo kojom verzijom Riak CS-a. Zbog performansi, trebali biste onemogućiti virtualno računalo koje izvodi JavaScript MapReduce operacije postavljanjem u konfiguracijskoj datoteci riak.conf ili u odjeljku riak_kv u advanced.conf ili app.config:

RIAK.CONF

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

NAPREDNO.KONFIG

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

APL.KONFIG

{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 sustava.

Originalni priručnik.

Izvor: www.habr.com

Dodajte komentar