Riak CS (Storage nĂ« Cloud) â njĂ« software i lehtĂ« pĂ«r t'u pĂ«rdorur pĂ«r organizimin e magazinĂ«s sĂ« objektĂ«ve, qĂ« funksionon mbi Riak KV. Riak (KV) Ă«shtĂ« njĂ« bazĂ« tĂ« dhĂ«nash e shpĂ«rndarĂ« NoSQL tip âçelĂ«s-vlerĂ« (key-value)â. Riak CS Ă«shtĂ« projektuar pĂ«r tĂ« siguruar thjeshtĂ«sinĂ«, disponueshmĂ«rinĂ« dhe shpĂ«rndarjen e magazinĂ«s nĂ« cloud nĂ« çdo shkallĂ«, dhe mund tĂ« pĂ«rdoret pĂ«r tĂ« ndĂ«rtuar strukturat e cloud - si publike ashtu edhe private - ose si njĂ« depĂČ infrastrukturore pĂ«r aplikacione dhe shĂ«rbime me ngarkesĂ« tĂ« lartĂ«. API-i i Riak CS Ă«shtĂ« i pajtueshĂ«m me Amazon S3 dhe mbĂ«shtet mundĂ«sinĂ« e raportimit mbi situata tĂ« ndryshme.

Ky artikull është një përkthim i lirë i udhëzuesit zyrtar për sistemin Riak CS versioni 2.1.1
Në sistemin e magazinës Riak CS, tre komponentë punojnë së bashku, që do të thotë se është e domosdoshme të konfigurohet çdo komponent për të punuar me komponentët e tjerë:
- Riak (KV) â njĂ« sistem bazash tĂ« dhĂ«nash qĂ« vepron si njĂ« sistem pĂ«rfundimtar.
- Riak CS â njĂ« shtresĂ« e magazinĂ«s nĂ« cloud mbi Riak, e cila ofron magazinim dhe mundĂ«si API, ruan skedarĂ« dhe metadata nĂ« Riak, dhe i transmeton ata mĂ« pas tek pĂ«rdoruesit pĂ«rfundimtarĂ«.
- Stanchion â menaxhon kĂ«rkesat qĂ« pĂ«rfshijnĂ« entitete globalisht unikĂ«, siç janĂ« kovĂ«t dhe pĂ«rdoruesit nĂ« instancĂ«n Riak. PĂ«r shembull, krijimi i pĂ«rdoruesve, krijimi ose fshirja e kovĂ«ve.
Për më tepër, gjithashtu mund të konfiguroni klientin S3 për ta përdorur në shkëmbimin e mesazheve me sistemin Riak CS.
Duhet të planifikoni që të keni një nyje Riak për secilën nyje Riak CS në sistemin tuaj. Nyjet Riak dhe Riak CS mund të ekzekutohen në makina fizike të ndryshme, por në shumicën e rasteve preferohet që të ekzekutoni një nyje Riak dhe një nyje Riak CS në të njëjtën makinë fizike. Me kusht që një makinë fizike të ketë mjaft kapacitet për të përmbushur kërkesat e të dy nyjeve Riak dhe Riak CS, zakonisht do të shihni performancë më të mirë për shkak të reduktimit të vonesave rrjetës.
Nëse sistemi juaj përbëhet nga disa nyje, konfigurimi kryesisht përbën ndihmën e komunikimit midis komponentëve. Caktimet e tjera, si dhe ku do të ruhet dosja e log-fajleve, kanë vlera të paracaktuara dhe kanë nevojë për ndryshime vetëm nëse dëshironi të përdorni vlera jo standarde.
Konfigurimi i komponentëve të sistemit. Konfigurimi i Riak KV për CS
Duke qenë se Riak CS është një aplikacion i zhvilluar mbi Riak, është shumë e rëndësishme të kushtoni vëmendje konfigurimit tuaj Riak, kur ekzekutohet Riak CS. Ky dokument është njëkohësisht një udhëzues për konfigurimin e Riak, si dhe një dokument referues për përshkrimin e parametrave të rëndësishëm të konfigurimit.
Para konfigurimit, sigurohuni që Riak KV dhe Riak CS janë instaluar në çdo nyje në klasterin tuaj. Stanchion, përkundrazi, duhet të instalohet vetëm në një nyje në të gjithë klasterin.

Backend për Riak CS
Për default, backend-i i përdorur nga Riak është Bitcask, por paketa Riak CS përfshin një backend të veçantë që duhet të përdoret nga klasteri Riak, i cili është pjesë e sistemit Riak CS. Në versionin standard, ka backend-in Multi standard që ofrohet me Riak.
Kovët e Riak që përdoren brenda Riak CS përdorin indekse dytësore, të cilat tani kërkojnë backend-in LevelDB. Pjesët e tjera të sistemit Riak CS mund të përfitojnë duke përdorur backend-in Bticask. Përdorimi i backend-it të shumëfishtë të përzgjedhur është i përfshirë në Riak CS, për të shfrytëzuar avantazhet e të dy backend-eve për të arritur kombinimin më të mirë të performancës dhe funksionalitetit. Në seksionin e ardhshëm përshkruhet se si të konfiguroni saktë Riak për të përdorur këtë backend të shumëfishtë.
Backend â Ă«shtĂ« ajo qĂ« Riak do tĂ« pĂ«rdorĂ« pĂ«r tĂ« ruajtur tĂ« dhĂ«nat. Riak KV ka disa backend-e: Bitcask, LevelDB, Memory dhe Multi.
Për më tepër, sistemi i kalkulimit të ruajtjes së të dhënave përdor Riak MapReduce për të përmbledhur skedarët në kovët. Kjo nënkupton se duhet t'i tregoni të gjitha nyjeve Riak se ku të kërkojnë skedarët përgatitorët e Riak CS para llogaritjes së ruajtjes.
Disa parametra të tjerë duhet të ndryshohen për të konfiguruar nyjën Riak, si pjesë e sistemit Riak CS, siç është adresa IP dhe adresa IP dhe porta për komunikimin nëpërmjet Protocol Buffers. Caktimet e tjera mund të përmirësohen nëse ka nevojë. Seksionet e ardhshme përshkruajnë se si të konfiguroni nyjën Riak për të funksionuar si pjesë e sistemit Riak CS.
Konfigurimi i backend-it të Riak
Së pari, skedaret e konfigurimit riak.conf ose advanced.config/app.config redaktohen. Këto skedare mund të gjenden në /etc/riak ose në /opt/riak/etc. Në mënyrë të parazgjedhur, Riak përdor Bitcask si backend. Gjëja e parë që duhet të bëjmë është të ndryshojmë skedarin e konfigurimit duke e hequr këtë rresht:
RIAK.CONF
## Delete this line:
storage_backend = bitcaskADVANCED.CONFIG
{riak_kv,
[ %% Hiqni këtë rresht:
{storage_backend, riak_kv_bitcask_backend},
]}APP.CONFIG
{riak_kv,
[ %% Hiqni këtë rresht:
{storage_backend, riak_kv_bitcask_backend},
]}Më pas, na nevojitet të tregojmë nevojën për modulet RiakCS për Riak dhe të tregojmë Riak të përdorë backend-in e konfiguruar që siguron Riak CS. Ne duhet të përdorim advanced.config ose app.config dhe të shtojmë këto mundësi:
ADVANCED.CONFIG
{eleveldb, [
{total_leveldb_mem_percent, 30}
]},
{riak_kv, [
%% Konfigurime të tjera
{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"}
]}
]},
%% Konfigurime të tjera
]}
APP.CONFIG
{eleveldb, [
{total_leveldb_mem_percent, 30}
]},
{riak_kv, [
%% Konfigurime të tjera
{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"}
]}
]},
%% Konfigurime të tjera
]}ĂshtĂ« shumĂ« e rĂ«ndĂ«sishme tĂ« theksohet se shumĂ« nga kĂ«to vlera do tĂ« varen nga variacionet e drejtorive specifike pĂ«r sistemin tuaj operativ, prandaj ndiqni udhĂ«zimet nĂ« pĂ«rputhje me to. PĂ«r shembull, parametri add_paths supozon se Riak CS Ă«shtĂ« instaluar nĂ« /usr/lib/riak-cs, kur parametrat data_root supozon se Riak Ă«shtĂ« instaluar nĂ« /var/lib. (PĂ«r shembuj, nĂ« rastin tim Ă«shtĂ« add_paths â /usr/lib64/riak-cs/).
Kjo konfigurim supozon se Riak CS është instaluar në të njëjtën makinë me Riak. Nëse jo, atëherë paketa ka nevojë të kopjohet në një host të veçantë.
Konfigurimi i krijimit të subobjekteve
Tani, na nevojitet të konfigurojmë parametrin allow_mult në vlerën true. Ne mund të shtojmë një rresht në skedarin e konfigurimit riak.conf, ose në seksionin riak_core në advanced.config ose app.config.
RIAK.CONF
buckets.default.allow_mult = trueADVANCED.CONFIG
{riak_core, [
%% Konfigurime të tjera
{default_bucket_props, [{allow_mult, true}]},
%% Konfigurime të tjera
]}APP.CONFIG
{riak_core, [
%% Konfigurime të tjera
{default_bucket_props, [{allow_mult, true}]},
%% Konfigurime të tjera
]}Kjo do të lejojë Riak të krijojë subobjekte, të cilat janë të nevojshme për funksionimin e Riak CS. Nëse po lidheni me Riak CS përmes një biblioteke klienti, mos u shqetësoni: nuk do t'ju duhet të zgjidhni konflikte, pasi të gjitha operacionet e Riak CS janë tërësisht të koordinuara sipas definicionit të saj.
Subobjeket â Ă«shtĂ« njĂ« mĂ«nyrĂ« pĂ«r tĂ« ruajtur disa objekte nĂ«n njĂ« çelĂ«s nĂ« mĂ«nyrĂ« qĂ« objekti tĂ« ketĂ« vlera tĂ« ndryshme nĂ« nodo tĂ« ndryshme.
Shënim: allow_mult
Ădo nod Riak, i cili gjithashtu mbĂ«shtet Riak CS, do tĂ« ketĂ« gjithmonĂ« vlerĂ«n true pĂ«r parametrin allow_mult. Riak CS do tĂ« ndalojĂ« funksionimin nĂ«se vlera Ă«shtĂ« false.
Konfigurimi i emrit të nodit dhe adresës IP
Ădo nod Riak ka njĂ« emĂ«r qĂ« mund tĂ« caktohet nĂ« riak.conf nĂ« opsionin nodename. NĂ«se po pĂ«rdorni skedarin e konfigurimit app.config, duhet tĂ« krijoni njĂ« skedar me emrin vm.args nĂ« tĂ« njĂ«jtĂ«n drejtori ku ndodhet app.config, dhe tĂ« caktoni emrin e nodit duke pĂ«rdorur flamurin -name. Ne rekomandojmĂ« tĂ« caktoni emrat e nodave nĂ« formatin @. Pra, nĂ«se keni tre nodo tĂ« aktivizuara nĂ« njĂ« host 100.0.0.1, mund t'i quani riak1@100.0.0.1, riak2@100.0.0.1, dhe riak3@100.0.0.1 ose mund tĂ« jepni emra mĂ« specifikĂ«, si test_cluster1@100.0.0.1, user_data3@100.0.0.1, e kĂ«shtu me radhĂ«. Shembulli mĂ« poshtĂ« ilustron ndryshimin e emrit tĂ« nodit nĂ« emrin riak1@127.0.0.1, i cili do tĂ« funksionojĂ« nĂ« hostin lokal.
RIAK.CONF
nodename = riak1@127.0.0.1 VM.ARGS
-name riak1@127.0.0.1Duhet të caktoni emra për të gjithë nodet para se t'i startoni dhe t'i përfshini në klaster.
Testi i konfigurimit
Tani, kur janë bërë të gjitha konfigurimet e nevojshme të nodit, mund të përpiqemi të aktivizojmë Riak:
SHELL
riak start Shënim. Përgjigjja në rastin tim:

Këtu duhet pritur pak. Më pas mund të filloni testin e nodit të aktivizuar.
SHELL
riak pingNëse përgjigjja është pong, atëherë Riak është aktivizuar: në të kundërt, nëse përgjigjja është Node not responding to pings, atëherë diçka ka shkuar keq.
Shënim. Përgjigjja në rastin tim:

Nëse nodi është aktivizuar gabimisht, kontrolloni regjistrin erlang.log.1 në drejtorinë /log të nodit, nëse problemi mund të identifikohet. Një nga gabimet më të zakonshme është invalid_storage_backend. E cila tregon se rruga ndaj bibliotekës Riak CS në advanced.config ose app.config është e gabuar (ose Riak CS nuk është instaluar në server). Pavarësisht kësaj gabimi, sigurohuni që të keni lënë si është rruga nga riak_cs_kv_multi_backend në riak_kv_multi_backend.
Konfigurimi i Riak për përdorimin e buffers protokollit (protocol buffers)
Caktimet e buffers të protokollit të Riak ndodhen në riak.conf ose në seksionin riak_api në advanced.config ose app.config skedarët, të cilët ndodhen në drejtorinë /etc/riak/. Në mënyrë të parazgjedhur, hosti ka adresën IP 127.0.0.1 dhe portin 8087. Ju duhet t'i ndryshoni ato nëse planifikoni të aktivizoni Riak dhe Riak CS jo në një ambient lokal. Zëvendësoni adresën IP 127.0.0.1 të nodit Riak dhe portin 8087 me ato të përshtatshme.
RIAK.CONF
listener.protobuf.internal = 10.0.2.10:10001ADVANCED.CONF
{riak_api, [
%% Konfigurime të tjera
{pb, ["10.0.2.10", 10001]},
%% Konfigurime të tjera
]}APP.CONFIG
riak_api, [
%% Konfigurime të tjera
{pb, ["10.0.2.10", 10001]},
%% Konfigurime të tjera
]}Shënim:Vlera e parametrave listener.protobuf.internal në riak.conf (ose vlera e parametrave pb në advanced.conf / app.config) duhet të përputhet me vlerat për riak_host në Riak CS riak-cs.config dhe Stanchion stanchion.conf (ose riak_host përkatësisht në advanced.config / app.config) skedarët.
Shënim mbi numrin e portit
Mund të nevojitet një numër tjetër porti nëse porti është në konflikt me portet që përdoren nga një aplikacion tjetër ose nëse po përdorni një balancues ngarkese ose një server proxy.
Gjithashtu rekomandohet që përdoruesit të sigurohen se madhësia e Riak protobuf.backlog (ose në advanced.config / app.config skedarët, kjo është pb_backlog) është e barabartë ose më e madhe se madhësia e pool.request.size, e cila është e specifikuar për Riak CS në riak-cs.config (ose request_pool_size në advanced.config / app.conf skedarët).
Nëse vlera e pool.request.size në Riak CS është ndryshuar, atëherë vlera e protobuf.backlog gjithashtu në Riak duhet të azhurnohet.
Cilësime të tjera të Riak
Skedaret riak.conf dhe advanced.config përmbajnë cilësime të tjera që konfigurojnë krijimin e skedarëve të regjistrave dhe rrugët e ruajtjes së tyre. Këto cilësime kanë vlera të paracaktuara dhe duhet të punojnë në shumicën e rasteve. Për më shumë informata, ju rekomandojmë të lexoni dokumentacionin tonë mbi skedaret e konfigurimit.
Cilësimi i adresës IP për Riak
Kur cilësoni IP të përkushtuar për Riak duhet të jeni të sigurt që nyjet Riak kanë një adresë IP unike, qoftë të punoni vetëm me një nyje apo duke shtuar më shumë nyje në sistem. Adresa IP e Riak është e përfshirë në riak.conf ose - nëse po përdorni skedarin app.config - në skedarin e konfigurimit vm.args, i cili ndodhet në /etc/riak direktorinë (ose në /opt/riak/etc/ në sisteme të tjera operative).
fillimisht, linja që përmban adresën IP të Riak tregon hostin lokal këtu:
RIAK.CONF
nodename = riak@127.0.0.1VM.ARGS
-name riak@127.0.0.1Zëvendësoni 127.0.0.1 me adresën IP të preferuar ose emrin e hostit të nyjes Riak.
Cilësimet e performancës dhe kapacitetit
Për arsye performance, ne rekomandojmë fuqimisht të shtoni vlera në skedaret e konfigurimit të Riak riak.conf ose vm.args, që gjenden në /etc/riak/ ose /opt/riak/etc direktorinë.
RIAK.CONF
erlang.max_ports = 65536VM.ARGS
## This setting should already be present for recent Riak installs.
-env ERL_MAX_PORTS 65536Ăaktivizimi i JavaScript MapReduce
Rekomandohet që të mos përdoret JavaScript MapReduce e vjetruar me asnjë version të Riak CS. Për arsye performance, duhet të çaktivizoni makinën virtuale që kryen operacione JavaScript MapReduce duke e cilësuar atë në skedarin e konfigurimit riak.conf, ose në seksionin riak_kv të advanced.conf ose app.config:
RIAK.CONF
javascript.map_pool_size = 0
javascript.reduce_pool_size = 0
javascript.hook_pool_size = 0 ADVANCED.CONFIG
{riak_kv, [
%% Cilësime të tjera
{map_js_vm_count, 0},
{reduce_js_vm_count, 0},
{hook_js_vm_count, 0}
%% Cilësime të tjera
]}APP.CONFIG
{riak_kv, [
%% Cilësime të tjera
{map_js_vm_count, 0},
{reduce_js_vm_count, 0},
{hook_js_vm_count, 0}
%% Cilësime të tjera
]}Më pas, duhet të konfiguroni komponentët e mbetur të sistemit Riak CS.
Burimi: habr.com
