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 = bitcaskADVANCED.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 = trueADVANCED.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 failā riak.conf ar opciju nodename. Ja izmantojat konfigurācijas failu app.config, jums būs jāizveido fails ar nosaukumu vm.args tajā pašā direktorijā, kur atrodas fails app.config, un jānorāda mezgla nosaukums, izmantojot karodziņu -name. Iesakām mezglus nosaukt @ formātā. Tātad, ja vienā resursdatorā 100.0.0.1 darbojas trīs mezgli, varat tos nosaukt par riak1@100.0.0.1, riak2@100.0.0.1 un riak3@100.0.0.1 vai arī varat tiem piešķirt konkrētākus nosaukumus, piemēram, test_cluster1@100.0.0.1, user_data3@100.0.0.1 utt. Tālāk redzamajā piemērā ir parādīta mezgla nosaukuma maiņa uz riak1@127.0.0.1, kas darbosies arī vietnē localhost.
RIAK.CONF
nodename = riak1@127.0.0.1 VM.ARGS
-name riak1@127.0.0.1Jums 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 pingJa 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:10001ADVANCED.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 IP adreses Riak gadījumā jums jānodrošina, lai Riak mezgliem būtu unikāla IP adrese neatkarīgi no tā, vai jūs darbināt tikai vienu mezglu vai pievienojat sistēmai papildu mezglus. Riak IP adrese ir norādīta failā riak.conf vai — ja izmantojat failu app.config — konfigurācijas failā vm.args, kas atrodas arī 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 = riak@127.0.0.1VM.ARGS
-name riak@127.0.0.1Aizstā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 = 65536VM.ARGS
## This setting should already be present for recent Riak installs.
-env ERL_MAX_PORTS 65536JavaScript 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.
Avots: www.habr.com
