Riak Cloud Storage. Part 1. Stabbilimentu di u Riak KV

Riak CS (Cloud Storage) - un software faciule d'utilizà per urganizà u almacenamentu di l'ughjetti, chì funziona sopra Riak KV. Riak (KV) hè una basa di dati di valori chjave NoSQL distribuitu. Riak CS hè pensatu per furnisce a simplicità, a dispunibilità, a distribuzione di u almacenamentu in nuvola di ogni scala, è pò esse usatu per custruisce architetture nuvola - sia publica sia privata - o cum'è almacenamiento di infrastruttura per applicazioni è servizii altamente carichi. Riak CS API hè cumpatibile cù Amazon S3 è sustene a capacità di riceve rapporti nantu à diverse situazioni.

Riak Cloud Storage. Part 1. Stabbilimentu di u Riak KV
Questu articulu hè una traduzzione libera di u manuale ufficiale per a versione di u sistema Riak CS 2.1.1

In u sistema di almacenamentu Riak CS, trè cumpunenti travaglianu in cunghjunzione cù l'altri, chì significa chì ogni cumpunente deve esse cunfiguratu per travaglià cù l'altri cumpunenti:

  • Riak (KV) - un sistema di basa di dati chì agisce cum'è un sistema finale.
  • Riak CS - Una strata di almacenamentu in nuvola sopra Riak chì furnisce capacità di almacenamento è API, almacena i fugliali è metadati in Riak, è poi li distribuisce à l'utilizatori finali.
  • Stanchion - Gestisce e dumande chì implicanu entità uniche globalmente cum'è buckets è utilizatori in l'istanza Riak. Per esempiu, creanu utilizatori, creanu o sguassate buckets.

Inoltre, pudete ancu cunfigurà u cliente S3 per l'usu in messageria cù u sistema Riak CS.

Avete bisognu di avè un node Riak per ogni node Riak CS in u vostru sistema. I nodi Riak è Riak CS ponu esse eseguiti in diverse macchine fisiche, ma in a maiò parte di i casi hè preferibile eseguisce un node Riak è un node Riak CS nantu à a stessa macchina fisica. Assumindu chì una macchina fisica hà abbastanza putenza per suddisfà i bisogni di i nodi Riak è Riak CS, generalmente vederete un rendimentu megliu per via di una latenza di rete ridotta.

Se u vostru sistema hè custituitu da parechji nodi, a cunfigurazione hè principalmente di stabilisce a cumunicazione trà cumpunenti. L'altri paràmetri, cum'è induve i fugliali di log seranu guardati, anu valori predeterminati è solu deve esse cambiatu se vulete usà valori non standard.

Stabbilimentu di cumpunenti di u sistema. Configurazione di Riak KV per CS

Siccomu Riak CS hè una applicazione custruita nantu à Riak, hè assai impurtante per attentu à a vostra cunfigurazione Riak quandu eseguite Riak CS. Stu documentu hè à tempu una guida di cunfigurazione Riak è un documentu di riferimentu chì descrive parametri di cunfigurazione impurtanti.

Prima di a stallazione, assicuratevi chì Riak KV è Riak CS sò stallati in ogni node in u vostru cluster. Stanchion, invece, deve esse installatu solu nantu à un node in tuttu u cluster.

Riak Cloud Storage. Part 1. Stabbilimentu di u Riak KV

Backends per Riak CS

U backend predeterminatu utilizatu da Riak hè Bitcask, ma u pacchettu Riak CS include un backend speciale chì deve esse usatu da u cluster Riak chì face parte di u sistema Riak CS. A versione regulare hà u standard Multi backend chì vene cù Riak.

I stessi bucket Riak utilizati in Riak CS utilizanu indici secundarii, chì avà necessitanu un backend LevelDB. Altre parti di u sistema Riak CS ponu benefiziu da l'usu di u backend Bticask. L'usu di un sample Multi backend hè inclusu in Riak CS per prufittà di questi dui backend per ottene a megliu cumminazione di prestazioni è funziunalità. A sezione dopu descrive cumu cunfigurà bè Riak per utilizà stu Multi-backend.

Backend hè ciò chì Riak aduprà per salvà dati. Riak KV hà parechji backends in u so arsenale: Bitcask, LevelDB, Memory è Multi.

Inoltre, u sistema di calculu di almacenamiento usa Riak MapReduse per aggregate i fugliali in buckets. Questu significa chì duvete dì à tutti i nodi Riak induve cercà i schedari CS Riak preparati prima di l'almacenamiento di l'informatica.

Diversi altri paràmetri deve esse cambiatu per cunfigurà u node Riak cum'è parte di u sistema Riak CS, cum'è l'indirizzu IP è l'indirizzu IP è u portu per a messageria attraversu Protocol Buffers. Altri paràmetri ponu esse cambiati se necessariu. I seguenti sezzioni descrizanu cumu cunfigurà un node Riak per operare cum'è parte di u sistema Riak CS.

Configurazione di u backend di Riak

Prima, i schedarii di cunfigurazione riak.conf o advanced.config/app.config sò editati. Questi fugliali ponu esse situati in i cartulari /etc/riak o /opt/riak/etc. Per automaticamente, Riak usa u backend Bitcask. A prima cosa chì avemu da fà hè di cambià u schedariu di cunfigurazione sguassendu a seguente linea:

RAK.CONF

## Delete this line:
storage_backend = bitcask

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

In seguitu, avemu bisognu di dimustrà a necessità di moduli RiakCS per Riak è urdinà à Riak per utilizà u backend cunfiguratu chì furnisce Riak CS. Avemu bisognu di utilizà u schedariu advanced.config o app.config per questu è aghjunghje l'opzioni seguenti:

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

Hè assai impurtante di nutà chì parechji di sti valori dependeranu di variazioni di u repertoriu specifichi di u vostru sistema operatore, cusì seguite l'istruzzioni per quessa. Per esempiu, l'opzione add_paths assume chì Riak CS hè stallatu in /usr/lib/riak-cs, mentri l'opzioni data_root assume chì Riak hè stallatu in /var/lib. (Nota: In u mo casu era add_paths - /usr/lib64/riak-cs/).

Questa cunfigurazione assume chì Riak CS hè stallatu nantu à a stessa macchina cum'è Riak. Se no, allora u pacchettu deve esse copiatu in un host separatu.

Configurazione di a creazione di frati

Avà, avemu bisognu di stabilisce u paràmetru allow_mult à veru. Pudemu aghjunghje una linea in u schedariu di cunfigurazione riak.conf, o una sezione riak_core in advanced.config o app.config.

RAK.CONF

buckets.default.allow_mult = true

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

Questu permetterà à Riak di creà fratelli chì sò necessarii per u funziunamentu di Riak CS. Se vi cunnettate à Riak CS utilizendu a biblioteca di u cliente, ùn vi preoccupate micca: ùn avete micca bisognu di risolve i cunflitti, postu chì tutte l'operazioni Riak CS sò strettamente coerenti cum'è definitu.

Fratellu hè un modu di almacenà parechji ogetti in una chjave per chì l'ughjettu hà valori diffirenti in diversi nodi.

Nota: allow_mult
Qualchese node Riak chì sustene ancu Riak CS averà allow_mult stabilitu à veru in ogni mumentu. Riak CS resettarà u lanciamentu se u valore hè falsu.

Configurazione di u nome di host è l'indirizzu IP

Ogni node Riak hà un nome, chì pò esse specificatu in l'opzione nodename in riak.conf. Sè vo aduprate u schedariu di cunfigurazione app.config, avete bisognu di creà un schedariu chjamatu vm.args in u stessu annuariu cum'è app.config è specificà u nome di l'ospitu cù a bandiera -name. Hè ricumandemu di specificà i nomi di i nodi in u formatu @. È cusì s'ellu avete trè nodi in esecuzione nantu à un host 100.0.0.1, pudete chjamà [email prutettu], [email prutettu]e [email prutettu] o pudete dà nomi più specifichi, cum'è [email prutettu], [email prutettu] eccetera. L'esempiu quì sottu mostra cambià u nome di l'ospite [email prutettu], chì correrà nantu à localhost.

RAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Duvete nome tutti i nodi prima di inizià è unisce à u cluster.

Test di stallazione

Avà chì tutti i paràmetri di node necessarii sò stati cumpletati, pudemu pruvà à lancià Riak:

SHELL

 riak start 

Nota A risposta in u mo casu:

Riak Cloud Storage. Part 1. Stabbilimentu di u Riak KV

Quì ci vole à aspittà un pocu. Allora pudete inizià a prova di u node in esecuzione.

SHELL

 riak ping

Se a risposta hè pong, allora Riak hè in esecuzione; se a risposta hè Node chì ùn risponde micca à i ping, allora qualcosa hè andatu male.

Nota A risposta in u mo casu:

Riak Cloud Storage. Part 1. Stabbilimentu di u Riak KV

Se u node ùn hà micca cuminciatu bè, fighjate à u log erlang.log.1 in u cartulare / log di u node se u prublema pò esse identificata. Unu di l'errori più cumuni hè invalid_storage_backend. Chì indica chì a strada di a biblioteca Riak CS in advanced.config o in app.config hè incorrecta (o Riak CS ùn hè micca stallatu in u servitore). Malgradu stu errore, assicuratevi chì ùn avete micca cambiatu da riak_cs_kv_multi_backend à riak_kv_multi_backend.

Configurazione di Riak per utilizà i buffer di protokollu

I paràmetri di u buffer di u protocolu Riak si trovanu in riak.conf o in a sezione riak_api in i schedari advanced.config o app.config, chì si trovanu in u cartulare /etc/riak/. Per automaticamente, l'ospitu hà un indirizzu IP di 127.0.0.1 è u portu 8087. Avete bisognu di cambià queste si pensa à eseguisce Riak è Riak CS in un ambiente non-lucale. Sustituisci 127.0.0.1 cù l'indirizzu IP host Riak è u portu 8087 cun un adattatu.

RAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

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

Nutate bè:U valore di u paràmetru listener.protobuf.internal in u schedariu riak.conf (o u valore di u paràmetru pb in advanced.conf/app.config) deve cuncordà i valori per riak_host in Riak CS riak-cs.config è Stanchion stanchion.conf (o riak_host rispettivamente in i schedari avanzati .config/app.config).

Una nota nantu à u numeru di portu
Un numeru di portu differente pò esse necessariu se u portu hè in cunflittu cù i porti utilizati da un'altra applicazione o sè utilizate un equilibratore di carica o un servitore proxy.

Hè ricumandemu ancu chì l'utilizatori assicuranu chì u Riak protobuf.backlog size (o in advanced.config/app.config files this is pb_backlog) hè uguale o più grande di u pool.request.size specificatu per Riak CS in riak-cs. config (o request_pool_size in advanced.config/app.conf files).

Se u valore di pool.request.size in Riak CS hè statu cambiatu, allura u valore di protobuf.backlog deve esse aghjurnatu ancu in Riak.

Altri paràmetri di Riak

I schedarii riak.conf è advanced.config includenu altre paràmetri chì cunfiguranu a creazione di schedarii di log è induve sò salvati. Queste paràmetri anu valori predeterminati è duveranu travaglià in a maiò parte di i casi. Per più infurmazione, ricumandemu di leghje a nostra documentazione nantu à i schedarii di cunfigurazione.

Configurazione di un indirizzu IP per Riak

Quandu stabilisce un indirizzu IP per Riak, deve esse sicuru chì i nodi Riak anu un indirizzu IP unicu, sia chì travagliate cù un solu node o aghjunghje più nodi à u sistema. L'indirizzu IP di Riak hè cuntatu in riak.conf o - se utilizate u schedariu app.config - in u schedariu di cunfigurazione vm.args, chì si trova in u cartulare /etc/riak (o /opt/riak/etc/). nantu à altri sistemi operativi).

Inizialmente, a linea chì cuntene l'indirizzu IP di Riak punta à u localhost in questu locu:

RAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Sustituisci 127.0.0.1 cù u vostru indirizzu IP preferitu o hostname di u node Riak.

Impostazioni di prestazione è larghezza di banda

Per ragioni di rendiment, ricumandemu fermamente di aghjunghje valori à i schedarii di cunfigurazione Riak riak.conf o vm.args, situati in u cartulare /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

Disattivà JavaScript MapReduce

Hè cunsigliatu di ùn aduprà JavaScript MapReduce legacy cù qualsiasi versione di Riak CS. Per ragioni di rendiment, duvete disattivà a macchina virtuale chì esegue l'operazione JavaScript MapReduce in u schedariu di cunfigurazione riak.conf, o in a sezione riak_kv di advanced.conf o app.config:

RAK.CONF

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

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

Dopu avemu bisognu di cunfigurà i cumpunenti restante di u sistema Riak CS.

Manuale originale.

Source: www.habr.com

Add a comment