Riak CS (mÄkoÅkrÄtuve) ā Ärti lietojama programmatÅ«ra objektu uzglabÄÅ”anas organizÄÅ”anai, kas darbojas uz Riak KV. Riak (KV) ir izplatÄ«ta NoSQL atslÄgu vÄrtÄ«bu datu bÄze. Riak CS ir izstrÄdÄts, lai nodroÅ”inÄtu jebkura mÄroga mÄkoÅkrÄtuves vienkÄrŔību, pieejamÄ«bu un izplatÄ«Å”anu, un to var izmantot, lai izveidotu mÄkoÅdatoÅ”anas arhitektÅ«ras ā gan publiskas, gan privÄtas ā vai kÄ infrastruktÅ«ras krÄtuve ļoti noslogotÄm lietojumprogrammÄm un pakalpojumiem. Riak CS API ir saderÄ«ga ar Amazon S3 un atbalsta iespÄju saÅemt ziÅojumus par dažÄdÄm situÄcijÄm.
Å is raksts ir Riak CS sistÄmas versijas 2.1.1 oficiÄlÄs rokasgrÄmatas bezmaksas tulkojums
Riak CS krÄtuves sistÄmÄ trÄ«s komponenti darbojas kopÄ, kas nozÄ«mÄ, ka katrs komponents ir jÄkonfigurÄ darbam ar citiem komponentiem:
- Riaks (KV) ā datu bÄzes sistÄma, kas darbojas kÄ gala sistÄma.
- Riaks CS - MÄkoÅa krÄtuves slÄnis Riak virspusÄ, kas nodroÅ”ina krÄtuves un API iespÄjas, glabÄ failus un metadatus Riak un pÄc tam izplata tos galalietotÄjiem.
- Stanchion - PÄrvalda vaicÄjumus, kas ietver globÄli unikÄlas entÄ«tijas, piemÄram, kopas un lietotÄjus Riak instancÄ. PiemÄram, lietotÄju izveide, segmentu izveide vai dzÄÅ”ana.
TurklÄt jÅ«s varat arÄ« konfigurÄt S3 klientu lietoÅ”anai ziÅojumapmaiÅai ar Riak CS sistÄmu.
Jums vajadzÄtu plÄnot, ka katram sistÄmas Riak CS mezglam ir viens Riak mezgls. Riak un Riak CS mezglus var darbinÄt dažÄdÄs fiziskÄs iekÄrtÄs, taÄu vairumÄ gadÄ«jumu ir vÄlams darbinÄt vienu Riak mezglu un vienu Riak CS mezglu vienÄ un tajÄ paÅ”Ä fiziskajÄ maŔīnÄ. PieÅemot, ka vienai fiziskai maŔīnai ir pietiekami daudz jaudas, lai apmierinÄtu gan Riak, gan Riak CS mezglu vajadzÄ«bas, samazinÄta tÄ«kla latentuma dÄļ kopumÄ tiks nodroÅ”inÄta labÄka veiktspÄja.
Ja jÅ«su sistÄma sastÄv no vairÄkiem mezgliem, konfigurÄcija galvenokÄrt ir saistÄ«ta ar komunikÄcijas iestatÄ«Å”anu starp komponentiem. Citiem iestatÄ«jumiem, piemÄram, kur tiks saglabÄti žurnÄlfaili, ir noklusÄjuma vÄrtÄ«bas, un tie ir jÄmaina tikai tad, ja vÄlaties izmantot nestandarta vÄrtÄ«bas.
SistÄmas komponentu iestatÄ«Å”ana. Riak KV iestatÄ«Å”ana CS
TÄ kÄ Riak CS ir lietojumprogramma, kas veidota uz Riak, palaižot Riak CS, ir ļoti svarÄ«gi pievÄrst uzmanÄ«bu savai Riak konfigurÄcijai. Å is dokuments ir gan Riak konfigurÄcijas rokasgrÄmata, gan atsauces dokuments, kurÄ aprakstÄ«ti svarÄ«gi konfigurÄcijas parametri.
Pirms iestatÄ«Å”anas pÄrliecinieties, vai Riak KV un Riak CS ir instalÄti katrÄ jÅ«su klastera mezglÄ. No otras puses, Stanchion ir jÄinstalÄ tikai vienÄ mezglÄ visÄ klasterÄ«.
Riak CS aizmugursistÄmas
Riak izmantotÄ noklusÄjuma aizmugursistÄma ir Bitcask, bet Riak CS pakotnÄ ir iekļauta Ä«paÅ”a aizmugursistÄma, kas jÄizmanto Riak klasterim, kas ir daļa no Riak CS sistÄmas. Parastajai versijai ir standarta Multi aizmugursistÄma, kas tiek piegÄdÄta kopÄ ar Riak.
Tie paÅ”i Riak segmenti, kas tiek izmantoti Riak CS, izmanto sekundÄros indeksus, kuriem tagad ir nepiecieÅ”ama LevelDB aizmugursistÄma. Citas Riak CS sistÄmas daļas var gÅ«t labumu no Bticask aizmugursistÄmas izmantoÅ”anas. Riak CS ir iekļauta vairÄku aizmugurprogrammu parauga izmantoÅ”ana, lai izmantotu abu Å”o aizmugursistÄmu sniegtÄs priekÅ”rocÄ«bas un panÄktu vislabÄko veiktspÄjas un funkcionalitÄtes kombinÄciju. NÄkamajÄ sadaÄ¼Ä ir aprakstÄ«ts, kÄ pareizi konfigurÄt Riak, lai izmantotu Å”o Multi-backend.
AizmugursistÄma ir tas, ko Riak izmantos datu saglabÄÅ”anai. Riak KV arsenÄlÄ ir vairÄkas aizmugursistÄmas: Bitcask, LevelDB, Memory un Multi.
TurklÄt krÄtuves aprÄÄ·inu sistÄma izmanto Riak MapReduse, lai apkopotu failus segmentos. Tas nozÄ«mÄ, ka pirms krÄtuves aprÄÄ·inÄÅ”anas jums ir jÄpaziÅo visiem Riak mezgliem, kur meklÄt sagatavotos Riak CS failus.
Ir jÄmaina vairÄki citi parametri, lai konfigurÄtu Riak mezglu kÄ daļu no Riak CS sistÄmas, piemÄram, IP adrese un IP adrese un ports ziÅojumapmaiÅai, izmantojot protokola buferus. Ja nepiecieÅ”ams, var mainÄ«t citus iestatÄ«jumus. NÄkamajÄs sadaļÄs ir aprakstÄ«ts, kÄ konfigurÄt Riak mezglu, lai tas darbotos kÄ daļa no Riak CS sistÄmas.
Riak aizmugursistÄmas iestatÄ«Å”ana
Vispirms tiek rediÄ£Äti riak.conf vai advanced.config/app.config konfigurÄcijas faili. Å ie faili var atrasties direktorijÄs /etc/riak vai /opt/riak/etc. PÄc noklusÄjuma Riak izmanto Bitcask aizmugursistÄmu. PirmÄ lieta, kas mums jÄdara, ir mainÄ«t konfigurÄcijas failu, noÅemot Å”o rindu:
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},
]}
PÄc tam mums ir jÄpierÄda RiakCS moduļu nepiecieÅ”amÄ«ba Riak un jÄnorÄda Riak izmantot konfigurÄto aizmugursistÄmu, kas nodroÅ”ina Riak CS. Å im nolÅ«kam ir jÄizmanto fails advanced.config vai app.config un jÄpievieno Å”Ädas opcijas:
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
]}
Ir ļoti svarÄ«gi atzÄ«mÄt, ka daudzas no Ŕīm vÄrtÄ«bÄm bÅ«s atkarÄ«gas no direktoriju variÄcijÄm, kas raksturÄ«gas jÅ«su operÄtÄjsistÄmai, tÄpÄc izpildiet attiecÄ«gi norÄdÄ«jumus. PiemÄram, opcija add_paths pieÅem, ka Riak CS ir instalÄts mapÄ /usr/lib/riak-cs, savukÄrt datu_root opcijas pieÅem, ka Riak ir instalÄta mapÄ /var/lib. (PiezÄ«me: manÄ gadÄ«jumÄ tas bija add_paths - /usr/lib64/riak-cs/).
Å ajÄ konfigurÄcijÄ tiek pieÅemts, ka Riak CS ir instalÄts tajÄ paÅ”Ä maŔīnÄ, kur Riak. Ja nÄ, pakotne ir jÄkopÄ atseviÅ”Ä·Ä resursdatorÄ.
Notiek brÄļu un mÄsu izveides iestatÄ«Å”ana
Tagad mums ir jÄiestata parametrs allow_mult uz true. MÄs varam pievienot rindiÅu konfigurÄcijas failÄ riak.conf vai sadaļu riak_core failÄ advanced.config vai 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
]}
Tas ļaus Riak izveidot brÄļus un mÄsas, kas ir nepiecieÅ”ami Riak CS darbÄ«bai. Ja izveidojat savienojumu ar Riak CS, izmantojot klienta bibliotÄku, neuztraucieties: jums nebÅ«s jÄatrisina konflikti, jo visas Riak CS darbÄ«bas ir stingri konsekventas, kÄ noteikts.
BrÄlis un mÄsa ir veids, kÄ vienÄ atslÄgÄ saglabÄt vairÄkus objektus, lai objektam dažÄdos mezglos bÅ«tu dažÄdas vÄrtÄ«bas.
Piezīme: allow_mult
JebkurÅ” Riak mezgls, kas atbalsta arÄ« Riak CS, vienmÄr bÅ«s iestatÄ«jis allow_mult uz true. Riak CS atiestatÄ«s palaiÅ”anu, ja vÄrtÄ«ba ir nepatiesa.
Resursdatora nosaukuma un IP adreses iestatīŔana
Katram Riak mezglam ir nosaukums, ko var norÄdÄ«t riak.conf opcijas nodename opcijÄ. Ja izmantojat konfigurÄcijas failu app.config, tajÄ paÅ”Ä direktorijÄ kÄ app.config ir jÄizveido fails vm.args un jÄnorÄda resursdatora nosaukums, izmantojot karogu -name. MÄs iesakÄm norÄdÄ«t mezglu nosaukumus @ formÄtÄ. TÄtad, ja vienÄ resursdatorÄ 100.0.0.1 darbojas trÄ«s mezgli, varat tos izsaukt [e-pasts aizsargÄts], [e-pasts aizsargÄts]Un [e-pasts aizsargÄts] vai arÄ« varat dot konkrÄtÄkus nosaukumus, piemÄram, [e-pasts aizsargÄts], [e-pasts aizsargÄts] un tÄ tÄlÄk. TÄlÄk sniegtajÄ piemÄrÄ ir parÄdÄ«ta resursdatora nosaukuma maiÅa uz [e-pasts aizsargÄts], kas darbosies uz localhost.
RIAK.CONF
nodename = [email protected]
VM.ARGS
-name [email protected]
Jums ir jÄnosauc visi mezgli pirms to palaiÅ”anas un pievienoÅ”anÄs klasterim.
IestatÄ«Å”anas pÄrbaude
Tagad, kad visi nepiecieÅ”amie mezgla iestatÄ«jumi ir pabeigti, mÄs varam mÄÄ£inÄt palaist Riak:
SHELL
riak start
PiezÄ«me Atbilde manÄ gadÄ«jumÄ:
Å eit jums nedaudz jÄpagaida. PÄc tam varat sÄkt pÄrbaudÄ«t darba mezglu.
SHELL
riak ping
Ja atbilde ir pong, tad Riak darbojas; ja atbilde ir Mezgls nereaÄ£Ä uz ping, tad kaut kas nogÄja greizi.
PiezÄ«me Atbilde manÄ gadÄ«jumÄ:
Ja mezgls netika startÄts pareizi, skatiet erlang.log.1 žurnÄlu mezgla direktorijÄ /log, ja problÄmu var identificÄt. Viena no visbiežÄk sastopamajÄm kļūdÄm ir invalid_storage_backend. Tas norÄda, ka ceļŔ uz Riak CS bibliotÄku failÄ advanced.config vai app.config ir nepareizs (vai Riak CS nav instalÄts serverÄ«). Neskatoties uz Å”o kļūdu, pÄrliecinieties, vai neesat mainÄ«jis riak_cs_kv_multi_backend uz riak_kv_multi_backend.
Riak konfigurÄÅ”ana protokolu buferu izmantoÅ”anai
Riak protokola bufera iestatÄ«jumi atrodas failÄ riak.conf vai faila advanced.config vai app.config sadaÄ¼Ä riak_api, kas atrodas direktorijÄ /etc/riak/. PÄc noklusÄjuma resursdatora IP adrese ir 127.0.0.1 un ports 8087. Jums tie bÅ«s jÄmaina, ja plÄnojat palaist Riak un Riak CS nelokÄlÄ vidÄ. AizstÄjiet 127.0.0.1 ar Riak resursdatora IP adresi un portu 8087 ar piemÄrotu.
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
]}
PiezÄ«me:Parametra listener.protobuf.internal vÄrtÄ«bai failÄ riak.conf (vai parametra pb vÄrtÄ«bai advanced.conf/app.config) ir jÄatbilst parametra riak_host vÄrtÄ«bÄm Riak CS riak-cs.config un Stanchion stanchion.conf (vai attiecÄ«gi riak_host uzlabotajos .config/app.config) failos.
Piezīme par porta numuru
Var bÅ«t nepiecieÅ”ams cits porta numurs, ja ports ir pretrunÄ ar portiem, ko izmanto cita lietojumprogramma, vai ja izmantojat slodzes balansÄtÄju vai starpniekserveri.
LietotÄjiem ir arÄ« ieteicams nodroÅ”inÄt, lai Riak protobuf.backlog lielums (vai advanced.config/app.config failos tas ir pb_backlog) bÅ«tu vienÄds vai lielÄks par pool.request.size, kas norÄdÄ«ts Riak CS failÄ riak-cs. config (vai request_pool_size failos advanced.config/app.conf).
Ja Riak CS ir mainÄ«ta pool.request.size vÄrtÄ«ba, tad Riak ir jÄatjaunina arÄ« protobuf.backlog vÄrtÄ«ba.
Citi Riak iestatījumi
Riak.conf un advanced.config faili ietver citus iestatÄ«jumus, kas konfigurÄ Å¾urnÄlfailu izveidi un to saglabÄÅ”anas vietu. Å iem iestatÄ«jumiem ir noklusÄjuma vÄrtÄ«bas, un tiem vairumÄ gadÄ«jumu vajadzÄtu darboties. Lai iegÅ«tu papildinformÄciju, iesakÄm izlasÄ«t mÅ«su dokumentÄciju par konfigurÄcijas failiem.
IP adreses iestatīŔana Riakam
Iestatot Riak IP adresi, jums ir jÄbÅ«t pÄrliecinÄtiem, ka Riak mezgliem ir unikÄla IP adrese neatkarÄ«gi no tÄ, vai strÄdÄjat tikai ar vienu mezglu vai pievienojat sistÄmai vairÄkus mezglus. Riak IP adrese ir ietverta failÄ riak.conf vai, ja izmantojat failu app.config, vm.args konfigurÄcijas failÄ, kas atrodas tur direktorijÄ /etc/riak (vai /opt/riak/etc/ citÄs operÄtÄjsistÄmÄs).
SÄkotnÄji rinda, kurÄ ir Riak IP adrese, norÄda uz vietÄjo saimniekdatoru Å”ajÄ vietÄ:
RIAK.CONF
nodename = [email protected]
VM.ARGS
-name [email protected]
AizstÄjiet 127.0.0.1 ar vÄlamo Riak mezgla IP adresi vai resursdatora nosaukumu.
VeiktspÄjas un joslas platuma iestatÄ«jumi
VeiktspÄjas dÄļ mÄs ļoti iesakÄm pievienot vÄrtÄ«bas Riak konfigurÄcijas failiem riak.conf vai vm.args, kas atrodas direktorijÄ /etc/riak/ vai /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
JavaScript MapReduce atspÄjoÅ”ana
NevienÄ Riak CS versijÄ nav ieteicams izmantot mantoto JavaScript MapReduce. VeiktspÄjas apsvÄrumu dÄļ jums vajadzÄtu atspÄjot virtuÄlo maŔīnu, kas veic JavaScript MapReduce darbÄ«bas, iestatot riak.conf konfigurÄcijas failÄ vai sadaÄ¼Ä advanced.conf vai app.config riak_kv:
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
]}
TÄlÄk mums jÄkonfigurÄ atlikuÅ”ie Riak CS sistÄmas komponenti.