Hifadhi ya Wingu la Riak. Sehemu ya 1: Kuanzisha Riak KV

Riak CS (Hifadhi ya Wingu) - programu rahisi kutumia ya kupanga uhifadhi wa kitu, inayoendesha juu ya Riak KV. Riak (KV) ni hifadhidata ya thamani ya ufunguo ya NoSQL iliyosambazwa. Riak CS imeundwa ili kutoa urahisi, upatikanaji, usambazaji wa hifadhi ya wingu ya kiwango chochote, na inaweza kutumika kujenga usanifu wa wingu - wa umma na wa kibinafsi - au kama hifadhi ya miundombinu kwa programu na huduma zilizopakiwa sana. API ya Riak CS inaoana na Amazon S3 na inasaidia uwezo wa kupokea ripoti kuhusu hali mbalimbali.

Hifadhi ya Wingu la Riak. Sehemu ya 1: Kuanzisha Riak KV
Makala haya ni tafsiri isiyolipishwa ya mwongozo rasmi wa mfumo wa Riak CS toleo la 2.1.1

Katika mfumo wa hifadhi wa Riak CS, vijenzi vitatu vinafanya kazi kwa pamoja, ambayo ina maana kwamba kila kijenzi lazima kisanidiwe kufanya kazi na vipengele vingine:

  • Riak (KV) - mfumo wa hifadhidata ambao hufanya kazi kama mfumo wa mwisho.
  • Riak CS - Safu ya hifadhi ya wingu juu ya Riak ambayo hutoa uwezo wa kuhifadhi na API, huhifadhi faili na metadata katika Riak, na kisha kuzisambaza kwa watumiaji wa mwisho.
  • Stanchion - Hudhibiti hoja zinazohusisha huluki za kipekee duniani kote kama vile ndoo na watumiaji katika mfano wa Riak. Kwa mfano, kuunda watumiaji, kuunda au kufuta ndoo.

Zaidi ya hayo, unaweza pia kusanidi kiteja cha S3 kwa matumizi ya kutuma ujumbe na mfumo wa Riak CS.

Unapaswa kupanga kuwa na nodi moja ya Riak kwa kila nodi ya Riak CS kwenye mfumo wako. Nodi za Riak na Riak CS zinaweza kuendeshwa kwa mashine tofauti za kimaumbile, lakini katika hali nyingi ni vyema kuendesha nodi moja ya Riak na nodi moja ya Riak CS kwenye mashine moja halisi. Ikizingatiwa kuwa mashine moja halisi ina nguvu ya kutosha kutosheleza mahitaji ya nodi za Riak na Riak CS, kwa ujumla utaona utendaji bora kutokana na kupungua kwa muda wa kusubiri kwa mtandao.

Ikiwa mfumo wako una nodi kadhaa, usanidi kimsingi ni juu ya kusanidi mawasiliano kati ya vipengee. Mipangilio mingine, kama vile faili za kumbukumbu zitahifadhiwa, zina maadili chaguo-msingi na zinahitaji kubadilishwa tu ikiwa unataka kutumia maadili yasiyo ya kawaida.

Kuweka vipengele vya mfumo. Inasanidi Riak KV kwa CS

Kwa kuwa Riak CS ni programu iliyojengwa juu ya Riak, ni muhimu sana kuzingatia usanidi wako wa Riak unapoendesha Riak CS. Hati hii ni mwongozo wa usanidi wa Riak na hati ya marejeleo inayoelezea vigezo muhimu vya usanidi.

Kabla ya kusanidi, hakikisha kwamba Riak KV na Riak CS zimesakinishwa kwenye kila nodi kwenye kundi lako. Stanchion, kwa upande mwingine, inapaswa kusanikishwa tu kwenye nodi moja kwenye nguzo nzima.

Hifadhi ya Wingu la Riak. Sehemu ya 1: Kuanzisha Riak KV

Nyuma kwa Riak CS

Mazingira chaguo-msingi yanayotumiwa na Riak ni Bitcask, lakini kifurushi cha Riak CS kinajumuisha mandharinyuma maalum ambayo lazima itumike na nguzo ya Riak ambayo ni sehemu ya mfumo wa Riak CS. Toleo la kawaida lina muundo wa kawaida wa Multi unaokuja na Riak.

Ndoo sawa za Riak zinazotumiwa ndani ya Riak CS hutumia faharasa za pili, ambazo sasa zinahitaji mazingira ya nyuma ya LevelDB. Sehemu zingine za mfumo wa Riak CS zinaweza kufaidika kwa kutumia mazingira ya nyuma ya Bticask. Utumiaji wa sampuli ya Nyuma nyingi umejumuishwa katika Riak CS ili kunufaika na usaidizi huu wote ili kufikia mchanganyiko bora wa utendakazi na utendakazi. Sehemu inayofuata inaeleza jinsi ya kusanidi vizuri Riak ili kutumia Multi-backend.

Nyuma ndio Riak itatumia kuhifadhi data. Riak KV ina backends kadhaa katika arsenal yake: Bitcask, LevelDB, Kumbukumbu na Multi.

Zaidi ya hayo, mfumo wa kukokotoa uhifadhi hutumia Riak MapReduse kukusanya faili kwenye ndoo. Hii ina maana kwamba ni lazima uambie nodi zote za Riak mahali pa kutafuta faili za Riak CS zilizotayarishwa kabla ya kuhifadhi hifadhi.

Vigezo vingine kadhaa lazima vibadilishwe ili kusanidi nodi ya Riak kama sehemu ya mfumo wa Riak CS, kama vile anwani ya IP na anwani ya IP na mlango wa kutuma ujumbe kupitia Protocol Buffers. Mipangilio mingine inaweza kubadilishwa ikiwa ni lazima. Sehemu zifuatazo zinaelezea jinsi ya kusanidi nodi ya Riak kufanya kazi kama sehemu ya mfumo wa Riak CS.

Inaweka mazingira ya nyuma ya Riak

Kwanza, faili za usanidi za riak.conf au advanced.config/app.config huhaririwa. Faili hizi zinaweza kupatikana katika saraka /etc/riak au /opt/riak/etc. Kwa chaguo-msingi, Riak hutumia mazingira ya nyuma ya Bitcask. Jambo la kwanza tunalohitaji kufanya ni kubadilisha faili ya usanidi kwa kuondoa mstari ufuatao:

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

Kisha, tunahitaji kuonyesha hitaji la moduli za RiakCS za Riak na kumwagiza Riak kutumia mandharinyuma iliyosanidiwa kutoa Riak CS. Tunahitaji kutumia advanced.config au app.config faili kwa hili na kuongeza chaguo zifuatazo:

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

Ni muhimu sana kutambua kwamba nyingi za maadili haya yatategemea tofauti za saraka maalum kwa mfumo wako wa uendeshaji, kwa hiyo fuata maagizo ipasavyo. Kwa mfano, chaguo la add_paths linadhania kuwa Riak CS imesakinishwa katika /usr/lib/riak-cs, huku chaguo za data_root zikidhani kuwa Riak imesakinishwa katika /var/lib. (Kumbuka: Kwa upande wangu ilikuwa add_paths - /usr/lib64/riak-cs/).

Usanidi huu unachukulia kuwa Riak CS imesakinishwa kwenye mashine sawa na Riak. Ikiwa sivyo, basi kifurushi kinahitaji kunakiliwa kwa mwenyeji tofauti.

Kuanzisha uundaji wa ndugu

Sasa, tunahitaji kuweka parameta ya allow_mult kuwa kweli. Tunaweza kuongeza mstari katika faili ya usanidi ya riak.conf, au sehemu ya riak_core katika advanced.config au 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
]}

Hii itamruhusu Riak kuunda ndugu ambao ni muhimu kwa Riak CS kufanya kazi. Ukiunganisha kwa Riak CS ukitumia maktaba ya mteja, usijali: hutalazimika kusuluhisha mizozo, kwa kuwa utendakazi wote wa Riak CS ni thabiti kama inavyofafanuliwa.

Ndugu ni njia ya kuhifadhi vitu vingi katika ufunguo mmoja ili kitu kiwe na maadili tofauti kwenye nodi tofauti.

Kumbuka: allow_mult
Nodi yoyote ya Riak ambayo pia inaauni Riak CS itakuwa na allow_mult iliyowekwa kuwa kweli wakati wote. Riak CS itaweka upya uzinduzi ikiwa thamani si kweli.

Kuweka Jina la Mpangishaji na Anwani ya IP

Kila nodi ya Riak ina jina, ambalo linaweza kubainishwa katika chaguo la nodename katika riak.conf. Ikiwa unatumia faili ya usanidi ya app.config, unahitaji kuunda faili inayoitwa vm.args katika saraka sawa na app.config na ubainishe jina la mwenyeji kwa kutumia -name bendera. Tunapendekeza ubainishe majina ya nodi katika umbizo la @. Na kwa hivyo ikiwa una nodi tatu zinazoendesha kwenye mwenyeji mmoja 100.0.0.1, unaweza kuwaita [barua pepe inalindwa], [barua pepe inalindwa]Na [barua pepe inalindwa] au unaweza kutoa majina maalum zaidi, kama vile [barua pepe inalindwa], [barua pepe inalindwa] Nakadhalika. Mfano hapa chini unaonyesha kubadilisha jina la mwenyeji kuwa [barua pepe inalindwa], ambayo itaendeshwa kwa localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Lazima utaje nodi zote kabla ya kuzianzisha na kujiunga na nguzo.

Mtihani wa kuanzisha

Sasa kwa kuwa mipangilio yote muhimu ya nodi imekamilika, tunaweza kujaribu kuzindua Riak:

SHELL

 riak start 

Kumbuka Jibu katika kesi yangu:

Hifadhi ya Wingu la Riak. Sehemu ya 1: Kuanzisha Riak KV

Hapa unahitaji kusubiri kidogo. Kisha unaweza kuanza kupima nodi inayoendesha.

SHELL

 riak ping

Ikiwa jibu ni pong, basi Riak inaendesha; ikiwa jibu ni Nodi haijibu pings, basi kuna kitu kilienda vibaya.

Kumbuka Jibu katika kesi yangu:

Hifadhi ya Wingu la Riak. Sehemu ya 1: Kuanzisha Riak KV

Ikiwa nodi haikuanza kwa usahihi, angalia erlang.log.1 logi kwenye saraka ya /logi ya nodi ikiwa shida inaweza kutambuliwa. Mojawapo ya makosa ya kawaida ni invalid_storage_backend. Ambayo inaonyesha kuwa njia ya kwenda kwenye maktaba ya Riak CS katika advanced.config au katika app.config si sahihi (au Riak CS haijasakinishwa kwenye seva). Licha ya hitilafu hii, hakikisha kuwa hujabadilika kutoka riak_cs_kv_multi_backend hadi riak_kv_multi_backend.

Inasanidi Riak kutumia buffers za itifaki

Mipangilio ya bafa ya itifaki ya Riak iko katika riak.conf au katika sehemu ya riak_api katika faili za advanced.config au app.config, ambazo ziko katika saraka ya /etc/riak/. Kwa chaguomsingi, seva pangishi ina anwani ya IP ya 127.0.0.1 na mlango 8087. Utahitaji kubadilisha hizi ikiwa unapanga kuendesha Riak na Riak CS katika mazingira yasiyo ya karibu nawe. Badilisha 127.0.0.1 na anwani ya IP ya mwenyeji wa Riak na bandari 8087 na inayofaa.

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

Kumbuka:Thamani ya kigezo cha msikilizaji.protobuf.ndani katika riak.conf (au thamani ya kigezo cha pb katika advanced.conf/app.config) faili lazima ilingane na thamani za riak_host katika Riak CS riak-cs.config na Stanchion stanchion.conf (au riak_host mtawalia katika faili za kina za .config/app.config).

Ujumbe kuhusu nambari ya bandari
Nambari tofauti ya mlango inaweza kuhitajika ikiwa mlango unakinzana na milango inayotumiwa na programu nyingine au ikiwa unatumia sawazisha la upakiaji au seva mbadala.

Pia inapendekezwa kuwa watumiaji wahakikishe kuwa saizi ya Riak protobuf.backlog (au katika faili za advanced.config/app.config hii ni pb_backlog) ni sawa au kubwa kuliko pool.request.size iliyobainishwa kwa Riak CS katika riak-cs. config (au request_pool_size katika faili za advanced.config/ app.conf).

Ikiwa thamani ya pool.request.size katika Riak CS imebadilishwa, basi thamani ya protobuf.backlog lazima pia isasishwe katika Riak.

Mipangilio mingine ya Riak

Faili za riak.conf na advanced.config zinajumuisha mipangilio mingine inayosanidi uundaji wa faili za kumbukumbu na mahali zinahifadhiwa. Mipangilio hii ina maadili chaguo-msingi na inapaswa kufanya kazi katika hali nyingi. Kwa habari zaidi, tunapendekeza kusoma hati zetu kuhusu faili za usanidi.

Kuweka anwani ya IP ya Riak

Wakati wa kusanidi anwani ya IP ya Riak, lazima uwe na uhakika kwamba nodi za Riak zina anwani ya kipekee ya IP, iwe unafanya kazi na nodi moja tu au kuongeza nodi zaidi kwenye mfumo. Anwani ya IP ya Riak iko katika riak.conf au - ikiwa unatumia faili ya app.config - katika faili ya usanidi ya vm.args, ambayo iko hapo kwenye saraka ya /etc/riak (au /opt/riak/etc/ kwenye mifumo mingine ya uendeshaji).

Hapo awali, laini iliyo na anwani ya IP ya Riak inaelekeza kwa mwenyeji katika eneo hili:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Badilisha 127.0.0.1 na anwani yako ya IP au jina la mpangishaji la nodi ya Riak.

Utendaji na Mipangilio ya Bandwidth

Kwa sababu za utendakazi, tunapendekeza sana kuongeza thamani kwenye faili za usanidi za Riak riak.conf au vm.args, ziko katika saraka ya /etc/riak/ au /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

Inalemaza JavaScript MapReduce

Inapendekezwa kutotumia urithi wa JavaScript MapReduce na toleo lolote la Riak CS. Kwa sababu za utendakazi, unapaswa kuzima mashine pepe inayotekeleza JavaScript MapReduce kwa kuweka katika faili ya usanidi ya riak.conf, au katika sehemu ya riak_kv ya advanced.conf au 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
]}

Ifuatayo tunahitaji kusanidi vipengee vilivyobaki vya mfumo wa Riak CS.

Mwongozo wa asili.

Chanzo: mapenzi.com

Kuongeza maoni