Riak CS (pilvesalvestus) – hõlpsasti kasutatav tarkvara objektide hoidmise korraldamiseks, mis töötab Riak KV peal. Riak (KV) on hajutatud NoSQL-i võtmeväärtuste andmebaas. Riak CS on loodud pakkuma mis tahes ulatusega pilvesalvestuse lihtsust, kättesaadavust ja levitamist ning seda saab kasutada pilvearhitektuuride loomiseks – nii avalikuks kui ka privaatseks – või infrastruktuuri salvestusruumina kõrgelt koormatud rakenduste ja teenuste jaoks. Riak CS API ühildub Amazon S3-ga ja toetab võimalust saada aruandeid erinevate olukordade kohta.
See artikkel on Riak CS süsteemi versiooni 2.1.1 ametliku juhendi tasuta tõlge
Riak CS-i salvestussüsteemis töötavad kolm komponenti üksteisega koos, mis tähendab, et iga komponent tuleb konfigureerida töötama koos teiste komponentidega:
- Riak (KV) – lõppsüsteemina toimiv andmebaasisüsteem.
- Riak CS - Riaki peal asuv pilvesalvestuskiht, mis pakub salvestus- ja API-võimalusi, salvestab failid ja metaandmed Riakis ning jagab need seejärel lõppkasutajatele.
- Stanchion - Haldab päringuid, mis hõlmavad globaalselt unikaalseid üksusi, nagu ämbrid ja kasutajad Riaki eksemplaris. Näiteks kasutajate loomine, ämbrite loomine või kustutamine.
Lisaks saate konfigureerida S3-kliendi ka Riak CS-süsteemiga sõnumivahetuseks.
Peaksite plaanima oma süsteemi iga Riak CS-i sõlme jaoks ühe Riaki sõlme. Riak ja Riak CS sõlme saab käivitada erinevates füüsilistes masinates, kuid enamikul juhtudel on eelistatav käitada ühte Riak sõlme ja ühte Riak CS sõlme samas füüsilises masinas. Eeldades, et ühel füüsilisel masinal on nii Riaki kui ka Riak CS-i sõlmede vajaduste rahuldamiseks piisavalt võimsust, näete võrgu latentsuse vähenemise tõttu üldiselt paremat jõudlust.
Kui teie süsteem koosneb mitmest sõlmest, seisneb konfigureerimine peamiselt komponentidevahelise suhtluse seadistamises. Muudel seadistustel, nagu näiteks logifailide salvestamise koht, on vaikeväärtused ja neid tuleb muuta ainult siis, kui soovite kasutada mittestandardseid väärtusi.
Süsteemi komponentide seadistamine. Riak KV seadistamine CS jaoks
Kuna Riak CS on rakendus, mis on üles ehitatud Riakile, on Riak CS-i käitamisel väga oluline pöörata tähelepanu oma Riak konfiguratsioonile. See dokument on nii Riaki konfiguratsioonijuhend kui ka viitedokument, mis kirjeldab olulisi konfiguratsiooniparameetreid.
Enne seadistamist veenduge, et Riak KV ja Riak CS on installitud teie klastri igasse sõlme. Stanchion seevastu tuleks paigaldada ainult ühte sõlme kogu klastris.
Riak CS-i taustaprogrammid
Riaki kasutatav vaiketaustaprogramm on Bitcask, kuid Riak CS-i pakett sisaldab spetsiaalset taustaprogrammi, mida peab kasutama Riak CS-i süsteemi kuuluv klaster. Tavaversioonil on tavaline Multi taustaprogramm, mis on kaasas Riakiga.
Samad Riak CS-i sees kasutatavad ämbrid kasutavad sekundaarseid indekseid, mis nõuavad nüüd LevelDB taustaprogrammi. Teised Riak CS-süsteemi osad saavad kasu Bticaski taustaprogrammi kasutamisest. Riak CS sisaldab mitme taustaprogrammi näidisprogrammi, et kasutada mõlemat taustaprogrammi, et saavutada jõudluse ja funktsionaalsuse parim kombinatsioon. Järgmises jaotises kirjeldatakse, kuidas Riaki õigesti konfigureerida selle mitme taustaprogrammi kasutamiseks.
Taustaprogramm seda kasutab Riak andmete salvestamiseks. Riak KV arsenalis on mitu taustaprogrammi: Bitcask, LevelDB, Memory ja Multi.
Lisaks kasutab salvestusarvutussüsteem failide ämbritesse koondamiseks Riak MapReduse. See tähendab, et enne salvestusruumi arvutamist peate ütlema kõigile Riak sõlmedele, kust otsida ettevalmistatud Riak CS-faile.
Riak sõlme konfigureerimiseks Riak CS süsteemi osana tuleb muuta mitmeid muid parameetreid, näiteks IP-aadressi ja IP-aadressi ning porti protokollipuhvrite kaudu sõnumite edastamiseks. Muid sätteid saab vajadusel muuta. Järgmistes jaotistes kirjeldatakse, kuidas konfigureerida Riak sõlme töötama Riak CS süsteemi osana.
Riaki taustaprogrammi seadistamine
Esiteks redigeeritakse riak.conf või advanced.config/app.config konfiguratsioonifaile. Need failid võivad asuda kataloogides /etc/riak või /opt/riak/etc. Vaikimisi kasutab Riak Bitcaski taustaprogrammi. Esimene asi, mida peame tegema, on konfiguratsioonifaili muutmine, eemaldades järgmise rea:
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},
]}
Järgmisena peame näitama vajadust RiakCS-i moodulite järele ja andma Riakile käsu kasutada konfigureeritud taustaprogrammi, mis pakub Riak CS-i. Peame selleks kasutama faili advanced.config või app.config ja lisama järgmised valikud:
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
]}
On väga oluline märkida, et paljud neist väärtustest sõltuvad teie operatsioonisüsteemi spetsiifilistest kataloogivariatsioonidest, seega järgige juhiseid vastavalt. Näiteks eeldab suvand add_paths, et Riak CS on installitud kausta /usr/lib/riak-cs, samas kui suvandid data_root 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 Riakiga samasse masinasse. Kui ei, siis tuleb pakett eraldi hosti kopeerida.
Õdede-vendade loomise seadistamine
Nüüd peame määrama parameetri allow_mult väärtuseks true. Saame lisada rea konfiguratsioonifaili riak.conf või jaotise riak_core faili Advanced.config või 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
]}
See võimaldab Riakil luua õdesid-vendi, mis on Riak CS-i toimimiseks vajalikud. Kui loote ühenduse Riak CS-iga klienditeegi abil, ärge muretsege: te ei pea konflikte lahendama, kuna kõik Riak CS-i toimingud on täpselt määratletud.
Õde-vend on viis mitme objekti salvestamiseks ühte võtmesse, nii et objektil on erinevates sõlmedes erinevad väärtused.
Märkus: allow_mult
Kõik Riak sõlmed, mis toetavad ka Riak CS-i, seavad luba_multi väärtuseks alati tõene. Riak CS lähtestab käivitamise, kui väärtus on vale.
Hostinime ja IP-aadressi määramine
Igal Riaki sõlmel on nimi, mille saab määrata riak.conf suvandis nodename. Kui kasutate konfiguratsioonifaili app.config, peate looma faili nimega vm.args samasse kataloogi kui app.config ja määrama hostinime lipu -name abil. Soovitame määrata sõlmede nimed @-vormingus. Ja kui teil on kolm sõlme, mis töötavad ühes hostis 100.0.0.1, saate neile helistada [meiliga kaitstud], [meiliga kaitstud]Ja [meiliga kaitstud] või võite anda täpsemaid nimesid, nt [meiliga kaitstud], [meiliga kaitstud] ja nii edasi. Allolev näide demonstreerib hostinime muutmist [meiliga kaitstud], mis töötab localhostis.
RIAK.CONF
nodename = [email protected]
VM.ARGS
-name [email protected]
Enne nende käivitamist ja klastriga liitumist peate nimetama kõik sõlmed.
Seadistamise test
Nüüd, kui kõik vajalikud sõlme seaded on tehtud, võime proovida käivitada Riak:
SHELL
riak start
Märge Vastus minu puhul:
Siin peate natuke ootama. Seejärel saate hakata töötavat sõlme testima.
SHELL
riak ping
Kui vastus on pong, siis Riak töötab; kui vastus on, et sõlm ei reageeri pingidele, siis läks midagi valesti.
Märge Vastus minu puhul:
Kui sõlm ei käivitunud õigesti, vaadake sõlme kataloogis /log olevat logi erlang.log.1, kui probleemi on võimalik tuvastada. Üks levinumaid vigu on invalid_storage_backend. Mis näitab, et Advanced.config või app.config Riak CS teegi tee on vale (või Riak CS pole serverisse installitud). Vaatamata sellele veale veenduge, et te poleks riak_cs_kv_multi_backendilt riak_kv_multi_backendiks muutunud.
Riaki konfigureerimine protokollipuhvrite kasutamiseks
Riaki protokolli puhvri sätted asuvad riak.conf või riak_api jaotises failides advanced.config või app.config, mis asuvad kataloogis /etc/riak/. Vaikimisi on hosti IP-aadress 127.0.0.1 ja port 8087. Kui kavatsete Riak ja Riak CS-i käitada mittekohalikus keskkonnas, peate neid muutma. Asendage 127.0.0.1 Riak hosti IP-aadressiga ja port 8087 sobivaga.
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
]}
Märkus:Parameetri listener.protobuf.internal väärtus failis riak.conf (või parameetri pb väärtus failis advanced.conf/app.config) peab ühtima parameetri riak_host väärtustega Riak CS riak-cs.config ja Stanchion stanchion.conf (või täiustatud .config/app.config-failides vastavalt riak_host).
Märkus pordi numbri kohta
Kui port on vastuolus mõne teise rakenduse kasutatavate portidega või kui kasutate koormuse tasakaalustajat või puhverserverit, võib olla vaja teistsugust pordinumbrit.
Samuti on kasutajatel soovitatav tagada, et Riak protobuf.backlogi suurus (või failides advanced.config/app.config on see pb_backlog) on võrdne või suurem kui Riak CS-i jaoks riak-cs määratud pool.request.size. config (või request_pool_size failides advanced.config/app.conf).
Kui Riak CS-is on pool.request.size väärtust muudetud, siis tuleb Riakis uuendada ka protobuf.backlog väärtust.
Muud Riaki seaded
Failid riak.conf ja advanced.config sisaldavad muid sätteid, mis konfigureerivad logifailide loomise ja nende salvestamise. Nendel sätetel on vaikeväärtused ja need peaksid enamikul juhtudel töötama. Lisateabe saamiseks soovitame lugeda meie dokumentatsiooni konfiguratsioonifailide kohta.
Riaki IP-aadressi seadistamine
Riaki IP-aadressi seadistamisel peate olema kindel, et Riaki sõlmedel on kordumatu IP-aadress, olenemata sellest, kas töötate ainult ühe sõlmega või lisate süsteemi rohkem sõlme. Riaki IP-aadress sisaldub failis riak.conf või – kui kasutate faili app.config – konfiguratsioonifailis vm.args, mis asub seal kataloogis /etc/riak (või /opt/riak/etc/ teistes operatsioonisüsteemides).
Esialgu osutab Riaki IP-aadressi sisaldav rida kohalikule hostile selles asukohas:
RIAK.CONF
nodename = [email protected]
VM.ARGS
-name [email protected]
Asendage 127.0.0.1 Riaki sõlme eelistatud IP-aadressi või hostinimega.
Jõudluse ja ribalaiuse sätted
Jõudluse huvides soovitame tungivalt lisada väärtused Riaki konfiguratsioonifailidele riak.conf või vm.args, mis asuvad kataloogis /etc/riak/ või /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'i keelamine
Soovitatav on mitte kasutada pärand JavaScript MapReduce'i ühegi Riak CS-i versiooniga. Toimivuse huvides peaksite keelama JavaScripti MapReduce'i toiminguid teostava virtuaalmasina, määrates riak.conf konfiguratsioonifailis või faili advanced.conf või app.config jaotises 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
]}
Järgmisena peame konfigureerima Riak CS süsteemi ülejäänud komponendid.
Allikas: www.habr.com