Riaki pilvesalvestus. 1. osa: Riak KV seadistamine

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.

Riaki pilvesalvestus. 1. osa: Riak KV seadistamine
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.

Riaki pilvesalvestus. 1. osa: Riak KV seadistamine

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:

Riaki pilvesalvestus. 1. osa: Riak KV seadistamine

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:

Riaki pilvesalvestus. 1. osa: Riak KV seadistamine

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.

Originaal juhend.

Allikas: www.habr.com

Lisa kommentaar