I-Riak Cloud Storage. Ingxenye 1: Ukusetha i-Riak KV

I-Riak CS (Isitoreji Samafu) – isoftware esebenziseka kalula yokuhlela ukugcinwa kwezinto, isebenza phezu kweRiak KV. I-Riak (KV) iyisizindalwazi senani lokhiye we-NoSQL esabalalisiwe. I-Riak CS yakhelwe ukuhlinzeka ngobulula, ukutholakala, ukusatshalaliswa kwesitoreji samafu kwanoma yisiphi isikali, futhi ingasetshenziselwa ukwakha izakhiwo zamafu - kokubili okusesidlangalaleni neziyimfihlo - noma njengendawo yokugcina ingqalasizinda yezinhlelo zokusebenza ezilayishwe kakhulu namasevisi. I-Riak CS API iyahambisana ne-Amazon S3 futhi isekela amandla okuthola imibiko ngezimo ezihlukahlukene.

I-Riak Cloud Storage. Ingxenye 1: Ukusetha i-Riak KV
Lesi sihloko siwukuhumusha kwamahhala kwebhukwana elisemthethweni lenguqulo yesistimu ye-Riak CS 2.1.1

Kuhlelo lokugcina lwe-Riak CS, izingxenye ezintathu zisebenza ngokuhlanganyela, okusho ukuthi ingxenye ngayinye kufanele ilungiswe ukuze isebenze nezinye izingxenye:

  • I-Riak (KV) - uhlelo lwedathabheyisi olusebenza njengohlelo lokugcina.
  • URiak CS - Isendlalelo sesitoreji samafu phezu kwe-Riak esihlinzeka ngamakhono okulondoloza kanye ne-API, sigcina amafayela nemethadatha e-Riak, bese sisabalalisa kubasebenzisi bokugcina.
  • I-Stanchion - Ilawula imibuzo ebandakanya amabhizinisi ahlukile emhlabeni jikelele njengamabhakede nabasebenzisi kusibonelo se-Riak. Isibonelo, ukudala abasebenzisi, ukudala noma ukususa amabhakede.

Ukwengeza, ungaphinda ulungiselele iklayenti le-S3 ukuthi lisetshenziswe ekuthumeleni imiyalezo ngohlelo lwe-Riak CS.

Kufanele uhlele ukuba ne-Riak node eyodwa yenodi ngayinye ye-Riak CS ohlelweni lwakho. Amanodi e-Riak ne-Riak CS angasebenza ngemishini ehlukile yomzimba, kodwa ezimweni eziningi kungcono ukusebenzisa inodi ye-Riak eyodwa kanye nenodi ye-Riak CS emshinini ofanayo womzimba. Uma sicabanga ukuthi umshini owodwa ophathekayo unamandla anele okwanelisa izidingo zazo zombili izindawo ze-Riak ne-Riak CS, ngokuvamile uzobona ukusebenza okungcono ngenxa yokubambezeleka kwenethiwekhi okuncishisiwe.

Uma isistimu yakho iqukethe ama-node amaningana, ukumisa kumayelana nokumisa ukuxhumana phakathi kwezingxenye. Ezinye izilungiselelo, njengokuthi amafayela welogi azogcinwa kuphi, anamanani azenzakalelayo futhi adinga ukushintshwa kuphela uma ufuna ukusebenzisa amanani angajwayelekile.

Ukusetha izingxenye zesistimu. Isetha i-Riak KV ye-CS

Njengoba i-Riak CS iwuhlelo lokusebenza olwakhelwe phezu kwe-Riak, kubaluleke kakhulu ukunaka ukucushwa kwakho kwe-Riak lapho usebenzisa i-Riak CS. Lo mbhalo womibili umhlahlandlela wokumisa we-Riak kanye nedokhumenti eyireferensi echaza imingcele ebalulekile yokumisa.

Ngaphambi kokusetha, qiniseka ukuthi i-Riak KV ne-Riak CS zifakiwe kuwo wonke ama-node kuqoqo lakho. I-Stanchion, ngakolunye uhlangothi, kufanele ifakwe endaweni eyodwa kuphela kulo lonke iqoqo.

I-Riak Cloud Storage. Ingxenye 1: Ukusetha i-Riak KV

Ibuyisela emuva ku-Riak CS

I-backend ezenzakalelayo esetshenziswa u-Riak yi-Bitcask, kodwa iphakheji ye-Riak CS ihlanganisa i-backend ekhethekile okufanele isetshenziswe iqoqo le-Riak eliyingxenye yesistimu ye-Riak CS. Inguqulo evamile ine-Multi backend ejwayelekile efika ne-Riak.

Amabhakede afanayo e-Riak asetshenziswa ngaphakathi kwe-Riak CS asebenzisa izinkomba zesibili, manje ezidinga i-LevelDB backend. Ezinye izingxenye zesistimu ye-Riak CS zingazuza ngokusebenzisa i-backend ye-Bticask. Ukusetshenziswa kwesampula ye-Multi backend kufakwe ku-Riak CS ukuze kuzuze zombili lezi zingemuva ukuze kuzuzwe inhlanganisela engcono kakhulu yokusebenza nokusebenza. Isigaba esilandelayo sichaza indlela yokumisa kahle i-Riak ukuze isebenzise le-Multi-backend.

Ingemuva yilokho u-Riak azokusebenzisa ukulondoloza idatha. I-Riak KV inama-backends amaningana ku-arsenal yayo: i-Bitcask, i-LevelDB, i-Memory kanye ne-Multi.

Ukwengeza, isistimu yokubala isitoreji isebenzisa i-Riak MapReduse ukuze ihlanganise amafayela abe amabhakede. Lokhu kusho ukuthi kufanele utshele wonke ama-Riak node ukuthi uwabheke kuphi amafayela e-Riak CS alungisiwe ngaphambi kokuba wenze isitoreji sekhompyutha.

Amanye amapharamitha amaningana kufanele ashintshwe ukuze amise inodi ye-Riak njengengxenye yesistimu ye-Riak CS, njengekheli lasesizindeni se-inthanethi nekheli lasesizindeni se-inthanethi kanye nembobo yokuthumela imilayezo ngama-Protocol Buffers. Ezinye izilungiselelo zingashintshwa uma kunesidingo. Izigaba ezilandelayo zichaza indlela yokumisa inodi ye-Riak ukuthi isebenze njengengxenye yohlelo lwe-Riak CS.

Isetha i-Riak backend

Okokuqala, i-riak.conf noma amafayela okucupha e-Advanced.config/app.config ayahlelwa. Lawa mafayela angatholakala kokuthi /etc/riak noma /opt/riak/etc directory. Ngokuzenzakalelayo, u-Riak usebenzisa i-backend ye-Bitcask. Into yokuqala okudingeka siyenze ukushintsha ifayela lokumisa ngokususa umugqa olandelayo:

I-RIAK.CONF

## Delete this line:
storage_backend = bitcask

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

Okulandelayo, sidinga ukukhombisa isidingo samamojula e-RiakCS e-Riak futhi siyalele u-Riak ukuthi asebenzise i-backend emisiwe ehlinzeka nge-Riak CS. Sidinga ukusebenzisa i-Advanced.config noma ifayela le-app.config kulokhu futhi sengeze izinketho ezilandelayo:

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

Kubaluleke kakhulu ukuqaphela ukuthi amaningi alawa magugu azoncika ekuhlukeni kohlu lwemibhalo oluqondene nohlelo lwakho lokusebenza, ngakho landela imiyalo ngokufanele. Isibonelo, inketho ye-add_paths ithatha ukuthi i-Riak CS ifakiwe ku-/usr/lib/riak-cs, kuyilapho izinketho ze-data_root zicabanga ukuthi i-Riak ifakiwe ku-/var/lib. (Qaphela: Endabeni yami bekuyi-add_paths - /usr/lib64/riak-cs/).

Lokhu kulungiselelwa kuthatha ukuthi i-Riak CS ifakwe emshinini ofanayo nowe-Riak. Uma kungenjalo, iphakheji idinga ukukopishelwa kumsingathi ohlukile.

Isetha ukudalwa kwezelamani

Manje, sidinga ukusetha ipharamitha ye- allow_mult ibe yiqiniso. Singangeza umugqa kufayela lokumisa le-riak.conf, noma isigaba se-riak_core kokuthi advanced.config noma app.config.

I-RIAK.CONF

buckets.default.allow_mult = true

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

Lokhu kuzovumela u-Riak ukuthi akhe izingane zakubo ezidingekayo ukuze u-Riak CS asebenze. Uma uxhuma ku-Riak CS usebenzisa umtapo wezincwadi weklayenti, ungakhathazeki: ngeke kudingeke uxazulule izingxabano, njengoba yonke imisebenzi ye-Riak CS ivumelana ngokuqinile njengoba kuchaziwe.

Izelamani iyindlela yokugcina izinto eziningi kukhiye owodwa ukuze into ibe namanani ahlukene kumanodi ahlukene.

Qaphela: allow_mult
Noma iyiphi inodi ye-Riak ephinde isekele i-Riak CS izoba ne- allow_mult isethwe ukuze ibe iqiniso ngaso sonke isikhathi. I-Riak CS izosetha kabusha ukwethulwa uma inani lingamanga.

Ukusetha igama lomethuleli kanye nekheli le-IP

I-Riak node ngayinye inegama, elingashiwo ku-riak.conf kunketho ye-nodename. Uma usebenzisa ifayela le-app.config, udinga ukudala ifayela elibizwa ngokuthi i-vm.args kuhla lwemibhalo olufana ne-app.config futhi ucacise igama lomsingathi usebenzisa ifulegi -igama. Sincoma ukuthi ucacise amagama anodi ngefomethi ethi @. Futhi ngakho uma unamanodi amathathu asebenza kumsingathi oyedwa 100.0.0.1, ungawabiza [i-imeyili ivikelwe], [i-imeyili ivikelwe]futhi [i-imeyili ivikelwe] noma unganikeza amagama aqondile, njengokuthi [i-imeyili ivikelwe], [i-imeyili ivikelwe] njalo njalo. Isibonelo esingezansi sibonisa ukushintsha igama lomsingathi libe [i-imeyili ivikelwe], ezosebenza ku-localhost.

I-RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Kufanele uqambe wonke amanodi ngaphambi kokuba uwaqalise futhi uhlanganise iqoqo.

Setha ukuhlolwa

Manje njengoba zonke izilungiselelo ze-node ezidingekayo seziqediwe, singazama ukwethula i-Riak:

SHELL

 riak start 

Qaphela Impendulo ivela ku- yami:

I-Riak Cloud Storage. Ingxenye 1: Ukusetha i-Riak KV

Lapha udinga ukulinda kancane. Bese ungaqala ukuhlola i-node esebenzayo.

SHELL

 riak ping

Uma impendulo i-pong, khona-ke u-Riak uyasebenza; uma impendulo iyi-Node engaphenduli kuma-pings, khona-ke kukhona okungahambanga kahle.

Qaphela Impendulo ivela ku- yami:

I-Riak Cloud Storage. Ingxenye 1: Ukusetha i-Riak KV

Uma i-node ingaqalanga kahle, bheka erlang.log.1 log in the directory/log directory of the node uma inkinga ingabonakala. Elinye lamaphutha ajwayelekile invalid_storage_backend. Okubonisa ukuthi indlela eya kulabhulali ye-Riak CS kokuthi advanced.config noma ku-app.config ayilungile (noma i-Riak CS ayifakiwe kuseva). Ngaphandle kwaleli phutha, qiniseka ukuthi awushintshile ukusuka ku-riak_cs_kv_multi_backend ukuya ku-riak_kv_multi_backend.

Ilungiselela i-Riak ukuze isebenzise amabhafa ephrothokholi

Izilungiselelo zebhafa yephrothokholi ye-Riak zitholakala ku-riak.conf noma esigabeni riak_api kokuthi advanced.config noma amafayela we-app.config, atholakala kuhlu lwemibhalo /etc/riak/. Ngokuzenzakalelayo, umsingathi unekheli lasesizindeni se-inthanethi elingu-127.0.0.1 kanye nembobo engu-8087. Uzodinga ukushintsha lokhu uma uhlela ukusebenzisa i-Riak ne-Riak CS endaweni okungeyona eyendawo. Shintsha okuthi 127.0.0.1 ufake ikheli le-IP le-Riak host kanye nechweba elingu-8087 ngelifanele.

I-RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

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

Qaphela:Inani lepharamitha yangaphakathi yomlaleli.protobuf.ku-riak.conf (noma inani lepharamitha ye-pb kufayela eliphezulu.conf/app.config) kufanele lifane namanani e-riak_host ku-Riak CS riak-cs.config kanye I-Stanchion stanchion.conf (noma i-riak_host ngokulandelanayo kumafayela athuthukisiwe we-.config/app.config).

Inothi elimayelana nenombolo yembobo
Inombolo yembobo ehlukile ingase idingeke uma imbobo ingqubuzana nezimbobo ezisetshenziswa olunye uhlelo lokusebenza noma uma usebenzisa isilinganisi somthwalo noma iseva elibamba.

Kuphinde kunconywe ukuthi abasebenzisi baqinisekise ukuthi usayizi we-Riak protobuf.backlog (noma kumafayela e-Advanced.config/app.config lena pb_backlog) uyalingana noma mkhulu kuno-pool.request.size oshiwo ku-Riak CS nge-riak-cs. config (noma request_pool_size in advanced.config/ app.conf files).

Uma inani le-pool.request.size ku-Riak CS lishintshiwe, inani le-protobuf.backlog kumele nalo libuyekezwe ku-Riak.

Ezinye izilungiselelo ze-Riak

I-riak.conf kanye namafayela e-Advanced.config ahlanganisa ezinye izilungiselelo ezilungiselela ukudalwa kwamafayela okungena kanye nalapho alondolozwa khona. Lezi zilungiselelo zinamanani azenzakalelayo futhi kufanele zisebenze ezimweni eziningi. Ukuze uthole ulwazi olwengeziwe, sincoma ukuthi ufunde amadokhumenti ethu mayelana namafayela okumisa.

Isethela i-Riak ikheli le-IP

Lapho usetha ikheli le-IP le-Riak, kufanele uqiniseke ukuthi ama-Riak node anekheli le-IP eliyingqayizivele, kungakhathaliseki ukuthi usebenza ngenodi eyodwa noma wengeza amanye ama-node ohlelweni. Ikheli le-Riak IP liqukethwe kokuthi riak.conf noma - uma usebenzisa ifayela le-app.config - kufayela lokumisa le-vm.args, elitholakala lapho kuhla lwemibhalo /etc/riak (noma /opt/riak/etc/ kwezinye izinhlelo zokusebenza).

Ekuqaleni, ulayini oqukethe ikheli lase-Riak IP ukhomba umphathi wendawo kule ndawo:

I-RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Faka esikhundleni 127.0.0.1 ikheli lakho le-IP olithandayo noma igama lomethuleli lenodi ye-Riak.

Izilungiselelo zokusebenza kanye nomkhawulokudonsa

Ngenxa yezizathu zokusebenza, sincoma ngokuqinile ukungeza amanani kumafayela wokumisa we-Riak riak.conf noma i-vm.args, atholakala kuhla lwemibhalo /etc/riak/ noma /opt/riak/etc.

I-RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

Ikhubaza i-JavaScript MapReduce

Kunconywa ukuthi ungasebenzisi i-JavaScript MapYehlisa ifa nganoma iyiphi inguqulo ye-Riak CS. Ngenxa yezizathu zokusebenza, kufanele ukhubaze umshini obonakalayo owenza imisebenzi ye-JavaScript MapYehlisa ngokumisa ifayela lokucushwa le-riak.conf, noma esigabeni se-riak_kv se-Advanced.conf noma i-app.config:

I-RIAK.CONF

 javascript.map_pool_size = 0
 javascript.reduce_pool_size = 0
 javascript.hook_pool_size = 0 

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

Okulandelayo sidinga ukumisa izingxenye ezisele zohlelo lwe-Riak CS.

Imanuwali yoqobo.

Source: www.habr.com

Engeza amazwana