Riak mākoņu krātuve. 1. daļa: Riak KV iestatÄ«Å”ana

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.

Riak mākoņu krātuve. 1. daļa: Riak KV iestatÄ«Å”ana
Š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 mākoņu krātuve. 1. daļa: Riak KV iestatÄ«Å”ana

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ā:

Riak mākoņu krātuve. 1. daļa: Riak KV iestatÄ«Å”ana

Š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ā:

Riak mākoņu krātuve. 1. daļa: Riak KV iestatÄ«Å”ana

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.

Oriģinālā rokasgrāmata.

Avots: www.habr.com

Pievieno komentāru