Riak CS (Cloud Storage) â kasutajasĂ”bralik objektihaldustarkvara, mis töötab Riak KV peal. Riak (KV) on jaotatud NoSQL vĂ”tme-vÀÀrtuse (key-value) andmebaas. Riak CS on kavandatud lihtsuse, saadavuse ja jaotatuse tagamiseks pilvehoidla, mis sobib igas suuruses, ja seda saab kasutada nii avalike kui ka privaatsete pilvearhitektuuride loomiseks vĂ”i infrastruktuurihoidlana kĂ”rgelt koormatud rakenduste ja teenuste jaoks. Riak CS API on ĂŒhilduv Amazon S3-ga ja toetab erinevate olukordade aruandeid.

See artikkel on vaba tĂ”lge Riak CS sĂŒsteemi ametlikust juhendist, versioon 2.1.1.
Riak CS hoius faile, mida organiseerivad kolm koos töötavat komponenti, mistÔttu tuleb iga komponent seadistada, et nad saaksid omavahel korralikult suhelda:
- Riak (KV) â andmebaasisĂŒsteem, mis toimib lĂ”pp- vĂ”i viimane sĂŒsteem.
- Riak CS â pilvehoidlas, mis asub Riaki kohal, andes andmete salvestamise ja API vĂ”imalused, salvestades faile ja metaandmeid Riakis ja edastades need seejĂ€rel lĂ”ppkasutajatele.
- Stanchion â haldab pĂ€ringuid, mis hĂ”lmavad globaalselt unikaalseid entiteete, nagu mahutid ja kasutajad Riaki eksemplaris. NĂ€iteks kasutajate loomine, mahutite loomine vĂ”i kustutamine.
Samuti saate seadistada S3 kliendi, et kasutada seda Riak CS sĂŒsteemiga suhtlemiseks.
Peate planeerima ĂŒhe Riaki sĂ”lme iga Riak CS sĂ”lme jaoks teie sĂŒsteemis. Riaki ja Riak CS sĂ”lmed vĂ”ivad töötada erinevates fĂŒĂŒsilistes seadmetes, kuid enamasti on eelistatav kĂ€ivitada ĂŒks Riaki sĂ”lm ja ĂŒks Riak CS sĂ”lm samas fĂŒĂŒsilises seadmes. Eeldades, et ĂŒhel fĂŒĂŒsilisel seadmel on piisavalt jĂ”udlust, et rahuldada mĂ”lema Riaki ja Riak CS sĂ”lme vajadusi, nĂ€ete reeglina paremat jĂ”udlust, kuna vĂ”rgu viivitusi on vĂ€hem.
Kui teie sĂŒsteem koosneb mitmest sĂ”lmest, on konfiguratsioon peamiselt komponentide vahelise suhtlemise seadistamine. Teised seadistused, nĂ€iteks kus ja kuidas logifailid salvestatakse, on vaikeseaded ning neid tuleb muuta ainult juhul, kui soovite kasutada mittevaikeseadeid.
SĂŒsteemi komponentide seadistamine. Riak KV seadistamine CS-ile
Kuna Riak CS on rakendus, mis on vÀlja töötatud Riaki peal, on vÀga oluline pöörata tÀhelepanu oma Riaki konfiguratsioonile, kui kÀivitatakse Riak CS. See dokument on samaaegselt Riaki seadistamise juhend ja ka viidatud dokument, mis kirjeldab olulisi konfiguratsiooni parameetreid.
Enne seadistamist veenduge, et Riak KV ja Riak CS on installitud igas sĂ”lmes teie klastris. Stanchion, vastupidiselt, peab olema installitud ainult ĂŒhes sĂ”lmes kogu klastris.

Riak CS jaoks mĂ”eldud taustasĂŒsteemid
Vaikimisi on Riaki kasutatav taustasĂŒsteem Bitcask, kuid Riak CS pakett sisaldab spetsiaalset taustasĂŒsteemi, mida peab kasutama Riaki klaster, mis on osa Riak CS sĂŒsteemist. Tavalises versioonis on saadaval standardne Multi taustasĂŒsteem, mis kaasas Riakiga.
Samad Riak konteinerid, mida kasutatakse Riak CS sees, kasutavad sekundaarseid indekseid, mis nĂŒĂŒd nĂ”uavad LevelDB taustasĂŒsteemi. Muud Riak CS sĂŒsteemi osad saavad kasu Bticask taustasĂŒsteemi kasutamisest. NĂ€idis Multi taustasĂŒsteemi kasutamine on Riak CS-is, et saada kasu mĂ”lemast taustasĂŒsteemist, saavutades parima jĂ”udluse ja funktsionaalsuse tasakaalu. JĂ€rgmises osas kirjeldatakse, kuidas Riaki korralikult seadistada selle Multi taustasĂŒsteemi kasutamiseks.
TaustasĂŒsteem â see on see, mida Riak kasutab andmete salvestamiseks. Riak KV-l on mitmeid taustasĂŒsteeme: Bitcask, LevelDB, Memory ja Multi.
Lisaks kasutab andmesalvestuse arvutamise sĂŒsteem Riak MapReduce faile konteineritesse koondamiseks. See tĂ€hendab, et peate teavitama kĂ”iki Riaki sĂ”lmi, kus otsida ettevalmistatud faile Riak CS-i enne salvestuse arvutamist.
MĂ”ned muud parameetrid peavad olema muudetud, et seadistada Riaki sĂ”lm osana Riak CS sĂŒsteemist, nagu IP-aadress ja IP-aadress ning port sĂ”numite vahetamiseks Protocol Buffers kaudu. ĂlejÀÀnud seadistusi saab vajadusel muuta. JĂ€rgmised osad kirjeldavad, kuidas seadistada Riaki sĂ”lme töötama osana Riak CS sĂŒsteemist.
Riaki taustasĂŒsteemi seadistamine
Esiteks, redigeeritakse riak.conf vÔi advanced.config/app.config konfiguratsioonifailid. Need failid vÔivad asuda kaustades /etc/riak vÔi /opt/riak/etc. Vaikimisi kasutab Riak Bitcask tagapinda. Esimene asi, mida peame tegema, on konfiguratsioonifaili muutmine, eemaldades jÀrgmise rea:
RIAK.CONF
## Delete this line:
storage_backend = bitcaskADVANCED.CONFIG
{riak_kv,
[ %% Eemalda see rida:
{storage_backend, riak_kv_bitcask_backend},
]}APP.CONFIG
{riak_kv,
[ %% Eemalda see rida:
{storage_backend, riak_kv_bitcask_backend},
]}JÀrgmisena peame nÀitama RiakCS moodulite vajalikkuse Riak jaoks ja mÀÀrama Riaki kasutama seadistatud tagapinda, mis toetab Riak CS. Selleks peame kasutama advanced.config vÔi app.config faili ja lisama jÀrgmised valikud:
ADVANCED.CONFIG
{eleveldb, [
{total_leveldb_mem_percent, 30}
]},
{riak_kv, [
%% Muud seaded
{add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
{storage_backend, riak_cs_kv_multi_backend},
{multi_backend_prefix_list, [{<>, 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"}
]}
]},
%% Muud seaded
]}
APP.CONFIG
{eleveldb, [
{total_leveldb_mem_percent, 30}
]},
{riak_kv, [
%% Muud seaded
{add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
{storage_backend, riak_cs_kv_multi_backend},
{multi_backend_prefix_list, [{<>, 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"}
]}
]},
%% Muud seaded
]}On vĂ€ga oluline mĂ€rkida, et paljude nende vÀÀrtuste aluseks on teie operatsioonisĂŒsteemiga spetsiifilised kaustade variatsioonid, seega jĂ€rgige juhiseid vastavalt. NĂ€iteks eeldab add_paths parameeter, et Riak CS on installitud kausta /usr/lib/riak-cs, samas kui data_root parameetrid eeldavad, et Riak on installitud kausta /var/lib. (MĂ€rkus: minu puhul oli see add_paths - /usr/lib64/riak-cs/).
See konfiguratsioon eeldab, et Riak CS on installitud samasse masinasse kui Riak. Kui ei, siis tuleb pakett kopeerida eraldi hosti.
SĂŒmbalite loomise seadistus
NĂŒĂŒd peame seadistama allow_mult parameetri vÀÀrtuseks true. Saame lisada rea konfiguratsioonifaili riak.conf, vĂ”i riak_core jaotises advanced.config vĂ”i app.config.
RIAK.CONF
buckets.default.allow_mult = trueADVANCED.CONFIG
{riak_core, [
%% Muud seaded
{default_bucket_props, [{allow_mult, true}]},
%% Muud seaded
]}APP.CONFIG
{riak_core, [
%% Muud seaded
{default_bucket_props, [{allow_mult, true}]},
%% Muud seaded
]}See vĂ”imaldab Riak'il luua sĂŒmbaleid, mis on vajalikud Riak CS'i toimimiseks. Kui ĂŒhendate Riak CS'iga kliendi teegiga, siis Ă€rge muretsege: te ei pea konflikte lahendama, sest kĂ”ik Riak CS toimingud on rangelt kooskĂ”lastatud oma mÀÀratlemise jĂ€rgi.
SĂŒmbal on viis salvestada mitu objekti ĂŒhes vĂ”tmes, et objektidel oleks erinevad vÀÀrtused erinevates sĂ”lmedes.
MĂ€rkus: allow_mult
Iga Riak sĂ”lm, mis toetab ka Riak CS-i, peab alati olema parameetri allow_mult vÀÀrtus true. Riak CS kĂ€ivitamine tĂŒhistatakse, kui vÀÀrtus on false.
SÔlme nime ja IP-aadressi seadistamine
Igal Riak sĂ”lm on nimi, mis saab mÀÀrata failis riak.conf parameetri nodename all. Kui kasutate konfigureerimisse pikendust app.config, peate looma faili nimega vm.args samas kaustas, kus asub app.config, ning mÀÀrama sĂ”lme nime lipu -name abil. Soovitame mÀÀrata sĂ”lme nimed vormingus @. NĂ€iteks, kui teil on kolm kĂ€ivitatud sĂ”lme ĂŒhel hostil 100.0.0.1, vĂ”ite nimetada need riak1@100.0.0.1, riak2@100.0.0.1 ja riak3@100.0.0.1 vĂ”i anda neile spetsiifilisemaid nimesid, nagu test_cluster1@100.0.0.1, user_data3@100.0.0.1 jne. Allolev nĂ€ide nĂ€itab, kuidas muuta sĂ”lme nime riak1@127.0.0.1, mis töötab kohaliku hosti peal.
RIAK.CONF
nodename = riak1@127.0.0.1 VM.ARGS
-name riak1@127.0.0.1Te peate mÀÀrama kÔikide sÔlmede nimed enne nende kÀivitamist ja klastrisse lisamist.
Seadistustestimine
NĂŒĂŒd, kui kĂ”ik vajalikud sĂ”lme seadistused on lĂ”petatud, saame proovida Riaki kĂ€ivitada:
SHELL
riak start MĂ€rkus. Vastus minu puhul:

Siin tuleks natuke oodata. Siis saab alustada teste kÀivitatud sÔlme suhtes.
SHELL
riak pingKui vastuseks on pong, siis tÀhendab, et Riak on kÀivitatud: kui aga vastus on Node not responding to pings, tÀhendab see, et midagi lÀks valesti.
MĂ€rkus. Vastus minu puhul:

Kui sĂ”lm kĂ€ivitati vigaselt, vaadake logifaile erlang.log.1 kaustas /log sĂ”lme, et probleemi tuvastada. Ăks levinumaid vigu on invalid_storage_backend, mis viitab sellele, et teek Riak CS-ini advanced.config vĂ”i app.config failis on vale (vĂ”i Riak CS ei ole serveris installitud). Vaatamata sellele veale veenduge, et te ei oleks muutnud riak_cs_kv_multi_backend-ilt riak_kv_multi_backend-ile.
Riaki seadistamine protokollipuhvrite (protocol buffers) kasutamiseks
Riaki protokollipuhvrite seaded asuvad failis riak.conf vÔi riak_api sektsioonis advanced.config vÔi app.config, mis asuvad kaustas /etc/riak/. Vaikimisi on hosti IP-aadress 127.0.0.1 ja port 8087. Peate need muutma, kui kavatsete kÀivitada Riaki ja Riak CS-i teises keskkonnas. Asendage 127.0.0.1 Riak sÔlme IP-aadress ning port 8087 sobiva aadressiga.
RIAK.CONF
listener.protobuf.internal = 10.0.2.10:10001ADVANCED.CONF
{riak_api, [
%% Teised seaded
{pb, ["10.0.2.10", 10001]},
%% Teised seaded
]}APP.CONFIG
riak_api, [
%% Teised seaded
{pb, ["10.0.2.10", 10001]},
%% Teised seaded
]}MÀrkus:Parametri listener.protobuf.internal vÀÀrtus riak.conf (vÔi pb vÀÀrtus advanced.conf / app.config failis) peab vastama riak_host vÀÀrtustele Riak CS riak-cs.config ja Stanchion stanchion.conf (vÔi riak_host vastavalt advanced.config/app.config failides).
MĂ€rkus pordi numbri kohta
VÔib olla vajalik teine pordinumber, kui port on konfliktis teiste rakenduste kasutatavate portidega vÔi kui kasutate koormuse tasakaalustajat vÔi vahetusserverit.
Soovitame samuti, et kasutajad tagaksid, et Riak protobuf.backlog (vÔi advanced.config/app.config failides pb_backlog) on vÔrdne vÔi suurem kui pool.request.size, mis on mÀÀratud Riak CS jaoks riak-cs.config failis (vÔi request_pool_size advanced.config/app.conf failides).
Kui pool.request.size vÀÀrtus Riak CS-is on muudetud, tuleb ka protobuf.backlog vÀÀrtus Riakis uuendada.
Teised Riaki sÀtted
Failid riak.conf ja advanced.config sisaldavad teisi sÀtteid, mis konfigureerivad logifailide loomist ja nende salvestamise teed. Need sÀtted omavad vaikimisi vÀÀrtusi ja peaksid töötama enamikus olukordades. Rohkem teabe saamiseks soovitame lugeda meie konfiguratsioonifailide dokumentatsiooni.
IP-aadressi seadistamine Riaki jaoks
Seadistamise kĂ€igus IP-aadressid Riaki jaoks peate olema kindel, et Riaki sĂ”lmedel on unikaalne IP-aadress, olgu te töötate ainult ĂŒhe sĂ”lmega vĂ”i lisate sĂŒsteemi tĂ€iendavaid sĂ”lmi. Riaki IP-aadress asub riak.conf failis vĂ”i â kui kasutate app.config faili â vm.args konfiguratsioonifailis, mis asub seal samas /etc/riak kaustas (vĂ”i /opt/riak/etc teistes operatsioonisĂŒsteemides).
Alguses nÀitab Riaki IP-aadressi sisaldav rida, et see on kohaliku hosti aadress:
RIAK.CONF
nodename = riak@127.0.0.1VM.ARGS
-name riak@127.0.0.1Asendage 127.0.0.1 eelistatud IP-aadressi vÔi Riaki sÔlme hostinimega.
TÔhususe ja lÀbilaskevÔime sÀtted
TÔhususe kaalutluste tÔttu soovitame tungivalt lisada vÀÀrtusi Riaki konfigureerimisfailidesse riak.conf vÔi vm.args, mis asuvad /etc/riak/ vÔi /opt/riak/etc kaustas.
RIAK.CONF
erlang.max_ports = 65536VM.ARGS
## This setting should already be present for recent Riak installs.
-env ERL_MAX_PORTS 65536JavaScript MapReduce vĂ€ljalĂŒlitamine
Soovitame mitte kasutada vananenud JavaScript MapReduce koos ĂŒhegi Riak CS versiooniga. TĂ”hususe pĂ”hjuseid silmas pidades peaksite JavaScript MapReduce toimingute teostamiseks vajaliku virtuaalse masina vĂ€ljalĂŒlitama, seadistades riak.conf konfigureerimisfailis vĂ”i advanced.conf vĂ”i app.config riak_kv osas:
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
]}JĂ€rgmine on vaja seadistada ĂŒlejÀÀnud Riak CS sĂŒsteemi komponendid.
Allikas: habr.com
