Riak skýjageymsla. Part 1: Uppsetning Riak KV

Riak CS (skýjageymsla) – hugbúnaður sem er auðveldur í notkun til að skipuleggja geymslu á hlutum sem keyrir ofan á Riak KV. Riak (KV) er dreifður NoSQL lykilgildi gagnagrunnur. Riak CS er hannað til að veita einfaldleika, aðgengi, dreifingu á skýjageymslu í hvaða mæli sem er og hægt að nota til að byggja upp skýjaarkitektúr - bæði opinbert og einkarekið - eða sem innviðageymslu fyrir mjög hlaðin forrit og þjónustu. Riak CS API er samhæft við Amazon S3 og styður getu til að taka á móti skýrslum um ýmsar aðstæður.

Riak skýjageymsla. Part 1: Uppsetning Riak KV
Þessi grein er ókeypis þýðing á opinberu handbókinni fyrir Riak CS kerfisútgáfu 2.1.1

Í Riak CS geymslukerfinu vinna þrír íhlutir saman, sem þýðir að hver íhlutur verður að vera stilltur til að vinna með hinum íhlutunum:

  • Riak (KV) – gagnagrunnskerfi sem virkar sem endakerfi.
  • Riak CS - Skýgeymslulag ofan á Riak sem veitir geymslu og API getu, geymir skrár og lýsigögn í Riak og dreifir þeim síðan til endanotenda.
  • Stanchion - Stjórnar fyrirspurnum sem fela í sér einstaka aðila á heimsvísu eins og fötum og notendum í Riak tilvikinu. Til dæmis að búa til notendur, búa til eða eyða fötum.

Að auki geturðu einnig stillt S3 biðlarann ​​til notkunar í skilaboðum með Riak CS kerfinu.

Þú ættir að ætla að hafa einn Riak hnút fyrir hvern Riak CS hnút á kerfinu þínu. Hægt er að keyra Riak og Riak CS hnúta á mismunandi líkamlegum vélum, en í flestum tilfellum er æskilegt að keyra einn Riak hnút og einn Riak CS hnút á sömu líkamlegu vélinni. Að því gefnu að ein líkamleg vél hafi nóg afl til að fullnægja þörfum bæði Riak og Riak CS hnúta, muntu almennt sjá betri afköst vegna minni netleynd.

Ef kerfið þitt samanstendur af nokkrum hnútum snýst stillingar fyrst og fremst um að setja upp samskipti milli íhluta. Aðrar stillingar, eins og hvar annálaskrárnar verða geymdar, hafa sjálfgefin gildi og þarf aðeins að breyta ef þú vilt nota óstöðluð gildi.

Uppsetning kerfishluta. Að setja upp Riak KV fyrir CS

Þar sem Riak CS er forrit sem byggt er ofan á Riak er mjög mikilvægt að fylgjast með Riak stillingunum þínum þegar þú keyrir Riak CS. Þetta skjal er bæði Riak stillingarleiðbeiningar og tilvísunarskjal sem lýsir mikilvægum stillingarbreytum.

Áður en þú setur upp skaltu ganga úr skugga um að Riak KV og Riak CS séu sett upp á hverjum hnút í þyrpingunni þinni. Stanchion ætti aftur á móti aðeins að vera sett upp á einum hnút í öllu klasanum.

Riak skýjageymsla. Part 1: Uppsetning Riak KV

Bakenda fyrir Riak CS

Sjálfgefinn bakendi sem Riak notar er Bitcask, en Riak CS pakkinn inniheldur sérstakan bakenda sem verður að nota af Riak klasanum sem er hluti af Riak CS kerfinu. Venjulega útgáfan er með staðlaða Multi backend sem fylgir Riak.

Sömu Riak föturnar og notaðar eru í Riak CS nota aukavísitölur, sem nú þurfa LevelDB bakenda. Aðrir hlutar Riak CS kerfisins geta notið góðs af því að nota Bticask bakenda. Notkun á sýnishorni Multi backend er innifalinn í Riak CS til að nýta báða þessa bakenda til að ná bestu samsetningu af frammistöðu og virkni. Næsti hluti lýsir því hvernig á að stilla Riak rétt til að nota þennan Multi-backend.

Bakenda er það sem Riak mun nota til að vista gögn. Riak KV hefur nokkra bakenda í vopnabúrinu sínu: Bitcask, LevelDB, Memory og Multi.

Að auki notar geymslureikningskerfið Riak MapReduse til að safna skrám í fötu. Þetta þýðir að þú verður að segja öllum Riak hnútum hvar á að leita að tilbúnum Riak CS skrám áður en þú reiknar út geymslu.

Breyta þarf nokkrum öðrum breytum til að stilla Riak hnútinn sem hluta af Riak CS kerfinu, svo sem IP tölu og IP tölu og tengi fyrir skilaboð í gegnum Protocol Buffers. Hægt er að breyta öðrum stillingum ef þörf krefur. Eftirfarandi hlutar lýsa því hvernig á að stilla Riak hnút til að starfa sem hluti af Riak CS kerfinu.

Að setja upp Riak backend

Fyrst er riak.conf eða advanced.config/app.config stillingarskránum breytt. Þessar skrár geta verið staðsettar í /etc/riak eða /opt/riak/etc möppum. Sjálfgefið er að Riak notar Bitcask bakenda. Það fyrsta sem við þurfum að gera er að breyta stillingarskránni með því að fjarlægja eftirfarandi línu:

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},
]}

Næst þurfum við að sýna fram á þörfina fyrir RiakCS einingar fyrir Riak og leiðbeina Riak um að nota uppsetta bakendann sem gefur Riak CS. Við þurfum að nota advanced.config eða app.config skrána fyrir þetta og bæta við eftirfarandi valkostum:

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
]}

Það er mjög mikilvægt að hafa í huga að mörg af þessum gildum munu ráðast af möppuafbrigðum sem eru sértækar fyrir stýrikerfið þitt, svo fylgdu leiðbeiningunum í samræmi við það. Til dæmis gerir add_paths valmöguleikinn ráð fyrir að Riak CS sé settur upp í /usr/lib/riak-cs, en data_root valkostirnir gera ráð fyrir að Riak sé uppsett í /var/lib. (Athugið: Í mínu tilfelli var það add_paths - /usr/lib64/riak-cs/).

Þessi uppsetning gerir ráð fyrir að Riak CS sé sett upp á sömu vél og Riak. Ef ekki, þá þarf að afrita pakkann á sérstakan gestgjafa.

Að setja upp systkinasköpun

Nú þurfum við að stilla allow_mult færibreytuna á satt. Við getum bætt við línu í riak.conf stillingarskránni, eða riak_core hluta í advanced.config eða 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
]}

Þetta gerir Riak kleift að búa til systkini sem eru nauðsynleg til að Riak CS virki. Ef þú tengist Riak CS með því að nota biðlarasafnið, ekki hafa áhyggjur: þú þarft ekki að leysa árekstra, þar sem allar Riak CS aðgerðir eru nákvæmlega samkvæmar eins og skilgreint er.

Systkini er leið til að geyma marga hluti í einum lykli þannig að hluturinn hafi mismunandi gildi á mismunandi hnútum.

Athugið: allow_mult
Sérhver Riak hnút sem styður einnig Riak CS mun alltaf hafa allow_mult stillt á satt. Riak CS mun endurstilla ræsingu ef gildið er rangt.

Stilling á hýsingarheiti og IP tölu

Hver Riak hnút hefur nafn sem hægt er að tilgreina í valmöguleikanum fyrir hnútaheiti í riak.conf. Ef þú ert að nota app.config stillingarskrána þarftu að búa til skrá sem heitir vm.args í sömu möppu og app.config og tilgreina hýsilheitið með því að nota -name fána. Við mælum með að tilgreina hnútaheiti á @ sniðinu. Og svo ef þú ert með þrjá hnúta sem keyra á einum gestgjafa 100.0.0.1 geturðu hringt í þá [netvarið], [netvarið]Og [netvarið] eða þú getur gefið nákvæmari nöfn, svo sem [netvarið], [netvarið] og svo framvegis. Dæmið hér að neðan sýnir hvernig hýsingarheitinu er breytt í [netvarið], sem mun keyra á localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Þú verður að nefna alla hnúta áður en þú byrjar þá og tengist þyrpingunni.

Uppsetningarpróf

Nú þegar öllum nauðsynlegum hnútstillingum hefur verið lokið getum við reynt að ræsa Riak:

SHELL

 riak start 

Athugið Svarið í mínu tilfelli:

Riak skýjageymsla. Part 1: Uppsetning Riak KV

Hér þarf að bíða aðeins. Þá geturðu byrjað að prófa hlaupandi hnút.

SHELL

 riak ping

Ef svarið er pong, þá er Riak í gangi; ef svarið er Node svarar ekki pingum, þá fór eitthvað úrskeiðis.

Athugið Svarið í mínu tilfelli:

Riak skýjageymsla. Part 1: Uppsetning Riak KV

Ef hnúturinn byrjaði ekki rétt skaltu skoða erlang.log.1 skrána í /log möppunni á hnútnum ef hægt er að bera kennsl á vandamálið. Ein algengasta villan er invalid_storage_backend. Sem gefur til kynna að slóðin að Riak CS bókasafninu í advanced.config eða í app.config sé röng (eða Riak CS er ekki uppsett á þjóninum). Þrátt fyrir þessa villu, vertu viss um að þú hafir ekki breytt úr riak_cs_kv_multi_backend í riak_kv_multi_backend.

Stillir Riak til að nota samskiptareglur biðminni

Riak samskiptareglur biðminni stillingar eru staðsettar í riak.conf eða í riak_api hlutanum í advanced.config eða app.config skránum, sem eru staðsettar í /etc/riak/ möppunni. Sjálfgefið er að gestgjafinn er með IP-tölu 127.0.0.1 og gátt 8087. Þú þarft að breyta þessu ef þú ætlar að keyra Riak og Riak CS í umhverfi sem ekki er á staðnum. Skiptu út 127.0.0.1 fyrir Riak hýsil IP tölu og tengi 8087 fyrir viðeigandi.

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
]}

Ath:Gildi listener.protobuf.internal færibreytunnar í riak.conf (eða gildi pb færibreytunnar í advanced.conf/app.config) skránni verður að passa við gildin fyrir riak_host í Riak CS riak-cs.config og Stanchion stanchion.conf (eða riak_host í sömu röð í háþróuðum .config/app.config) skrám.

Athugasemd um gáttarnúmerið
Annað gáttarnúmer gæti þurft ef gáttin stangast á við gáttir sem annað forrit notar eða ef þú ert að nota álagsjafnvægi eða proxy-miðlara.

Einnig er mælt með því að notendur tryggi að stærð Riak protobuf.backlog (eða í advanced.config/app.config skrám er þetta pb_backlog) sé jöfn eða stærri en pool.request.size sem tilgreind er fyrir Riak CS í riak-cs. config (eða request_pool_size í advanced.config/ app.conf skrám).

Ef gildi pool.request.size í Riak CS hefur verið breytt, þá þarf einnig að uppfæra gildi protobuf.backlog í Riak.

Aðrar Riak stillingar

riak.conf og advanced.config skrárnar innihalda aðrar stillingar sem stilla stofnun annálaskráa og hvar þær eru vistaðar. Þessar stillingar hafa sjálfgefin gildi og ættu að virka í flestum tilfellum. Fyrir frekari upplýsingar mælum við með að þú lesir skjölin okkar um stillingarskrár.

Að setja upp IP tölu fyrir Riak

Þegar þú setur upp IP tölu fyrir Riak verður þú að vera viss um að Riak hnútarnir hafi einstakt IP tölu, hvort sem þú ert að vinna með aðeins einn hnút eða bæta fleiri hnútum við kerfið. Riak IP vistfangið er að finna í riak.conf eða - ef þú ert að nota app.config skrána - í vm.args stillingarskránni, sem er staðsett þar í /etc/riak möppunni (eða /opt/riak/etc/ á öðrum stýrikerfum).

Upphaflega bendir línan sem inniheldur Riak IP töluna á staðbundinn gestgjafa á þessum stað:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Skiptu út 127.0.0.1 fyrir valinn IP tölu eða hýsilnafn Riak hnútsins.

Stillingar fyrir árangur og bandbreidd

Af frammistöðuástæðum mælum við eindregið með því að bæta gildum við Riak stillingarskrárnar riak.conf eða vm.args, staðsettar í /etc/riak/ eða /opt/riak/etc möppunni.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

## This setting should already be present for recent Riak installs.
 -env ERL_MAX_PORTS 65536

Slökkva á JavaScript MapReduce

Mælt er með því að nota ekki eldri JavaScript MapReduce með hvaða útgáfu af Riak CS sem er. Af frammistöðuástæðum ættir þú að slökkva á sýndarvélinni sem framkvæmir JavaScript MapReduce aðgerðir með því að stilla í riak.conf stillingarskránni, eða í riak_kv hlutanum í advanced.conf eða app.config:

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
]}

Næst þurfum við að stilla þá hluti sem eftir eru af Riak CS kerfinu.

Upprunaleg handbók.

Heimild: www.habr.com

Bæta við athugasemd