Ibi ipamọ awọsanma Riak. Apá 1: Ṣiṣeto Riak KV

Riak CS (Ipamọ awọsanma) - sọfitiwia irọrun-lati-lo fun siseto ibi ipamọ ohun, nṣiṣẹ lori oke Riak KV. Riak (KV) jẹ ipilẹ data iye-bọtini NoSQL ti a pin kaakiri. Riak CS jẹ apẹrẹ lati pese ayedero, wiwa, pinpin ibi ipamọ awọsanma ti iwọn eyikeyi, ati pe o le ṣee lo lati kọ awọn ayaworan awọsanma - mejeeji ni gbangba ati ikọkọ - tabi bi ibi ipamọ amayederun fun awọn ohun elo ati awọn iṣẹ ti o rù pupọ. Riak CS API jẹ ibamu pẹlu Amazon S3 ati atilẹyin agbara lati gba awọn ijabọ lori awọn ipo pupọ.

Ibi ipamọ awọsanma Riak. Apá 1: Ṣiṣeto Riak KV
Nkan yii jẹ itumọ ọfẹ ti itọnisọna osise fun ẹya eto Riak CS 2.1.1

Ninu eto ibi ipamọ Riak CS, awọn paati mẹta ṣiṣẹ ni apapọ pẹlu ara wọn, eyiti o tumọ si pe paati kọọkan gbọdọ wa ni tunto lati ṣiṣẹ pẹlu awọn paati miiran:

  • Riak (KV) – eto data ti o ṣiṣẹ bi eto ipari.
  • Riak CS - Layer ibi ipamọ awọsanma lori oke ti Riak ti o pese ibi ipamọ ati awọn agbara API, tọju awọn faili ati metadata ni Riak, ati lẹhinna pin wọn si awọn olumulo ipari.
  • Stanchion - Ṣakoso awọn ibeere ti o kan awọn nkan alailẹgbẹ agbaye gẹgẹbi awọn garawa ati awọn olumulo ni apẹẹrẹ Riak. Fun apẹẹrẹ, ṣiṣẹda awọn olumulo, ṣiṣẹda tabi piparẹ awọn buckets.

Ni afikun, o tun le tunto alabara S3 fun lilo ninu fifiranṣẹ pẹlu eto Riak CS.

O yẹ ki o gbero lati ni ipade Riak kan fun ipade Riak CS kọọkan lori ẹrọ rẹ. Awọn apa Riak ati Riak CS le ṣee ṣiṣẹ lori oriṣiriṣi awọn ẹrọ ti ara, ṣugbọn ni ọpọlọpọ awọn ọran o dara julọ lati ṣiṣẹ ipade Riak kan ati ipade Riak CS kan lori ẹrọ ti ara kanna. Ti a ro pe ẹrọ ti ara kan ni agbara to lati ni itẹlọrun awọn iwulo ti awọn mejeeji Riak ati awọn apa Riak CS, iwọ yoo rii iṣẹ ṣiṣe ti o dara julọ nitori aipe nẹtiwọọki ti o dinku.

Ti eto rẹ ba ni awọn apa pupọ, iṣeto ni akọkọ nipa siseto ibaraẹnisọrọ laarin awọn paati. Awọn eto miiran, gẹgẹbi ibiti awọn faili log yoo wa ni ipamọ, ni awọn iye aiyipada ati pe o nilo lati yipada nikan ti o ba fẹ lo awọn iye ti kii ṣe deede.

Eto soke eto irinše. Ṣiṣeto Riak KV fun CS

Niwọn igba ti Riak CS jẹ ohun elo ti a ṣe lori oke Riak, o ṣe pataki pupọ lati san ifojusi si iṣeto Riak rẹ nigbati o nṣiṣẹ Riak CS. Iwe yii jẹ mejeeji itọsọna iṣeto ni Riak ati iwe itọkasi ti n ṣalaye awọn ipilẹ iṣeto pataki.

Ṣaaju iṣeto, rii daju pe Riak KV ati Riak CS ti fi sori ẹrọ lori gbogbo ipade inu iṣupọ rẹ. Stanchion, ni ida keji, yẹ ki o fi sori ẹrọ nikan lori ipade kan ni gbogbo iṣupọ.

Ibi ipamọ awọsanma Riak. Apá 1: Ṣiṣeto Riak KV

Awọn afẹyinti fun Riak CS

Atilẹyin aiyipada ti Riak lo jẹ Bitcask, ṣugbọn package Riak CS pẹlu ẹhin pataki kan ti o gbọdọ lo nipasẹ iṣupọ Riak ti o jẹ apakan ti eto Riak CS. Awọn deede ti ikede ni awọn boṣewa Multi backend ti o wa pẹlu Riak.

Awọn buckets Riak kanna ti a lo ninu Riak CS lo awọn atọka atẹle, eyiti o nilo ẹhin LevelDB kan. Awọn ẹya miiran ti eto Riak CS le ni anfani lati lilo ẹhin Bticask. Lilo apẹẹrẹ Multi backend wa ninu Riak CS lati lo anfani ti awọn mejeeji ti awọn ẹhin wọnyi lati ṣaṣeyọri apapọ ti o dara julọ ti iṣẹ ati iṣẹ ṣiṣe. Abala ti o tẹle ṣe apejuwe bi o ṣe le tunto Riak daradara lati lo Olona-pada yii.

Igbẹhin jẹ ohun ti Riak yoo lo lati fi data pamọ. Riak KV ni ọpọlọpọ awọn ẹhin ninu arsenal rẹ: Bitcask, LevelDB, Iranti ati Multi.

Ni afikun, eto iṣiro ibi ipamọ nlo Riak MapReduse lati ṣajọpọ awọn faili sinu awọn garawa. Eyi tumọ si pe o gbọdọ sọ fun gbogbo awọn apa Riak nibiti o le wa fun awọn faili Riak CS ti a pese silẹ ṣaaju ibi ipamọ iširo.

Ọpọlọpọ awọn paramita miiran gbọdọ yipada lati tunto node Riak gẹgẹbi apakan ti eto Riak CS, gẹgẹbi adiresi IP ati adiresi IP ati ibudo fun fifiranṣẹ nipasẹ Awọn ifibọ Ilana. Awọn eto miiran le yipada ti o ba jẹ dandan. Awọn apakan atẹle yii ṣapejuwe bi o ṣe le tunto ipade Riak kan lati ṣiṣẹ gẹgẹbi apakan ti eto Riak CS.

Eto soke Riak backend

Ni akọkọ, awọn faili atunto riak.conf tabiAdvanced.config/app.config ti wa ni satunkọ. Awọn faili wọnyi le wa ni /etc/riak tabi /opt/riak/ati be be lo awọn ilana. Nipa aiyipada, Riak nlo ẹhin Bitcask. Ohun akọkọ ti a nilo lati ṣe ni yi faili iṣeto pada nipa yiyọ laini atẹle:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

TO ti ni ilọsiwaju.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},
]}

Nigbamii ti, a nilo lati ṣafihan iwulo fun awọn modulu RiakCS fun Riak ati kọ Riak lati lo ẹhin atunto ti n pese Riak CS. A nilo lati lo Advanced.config tabi faili app.config fun eyi ki o ṣafikun awọn aṣayan wọnyi:

TO ti ni ilọsiwaju.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
]}

O ṣe pataki pupọ lati ṣe akiyesi pe ọpọlọpọ awọn iye wọnyi yoo dale lori awọn iyatọ itọsọna pato si ẹrọ iṣẹ rẹ, nitorinaa tẹle awọn ilana ni ibamu. Fun apẹẹrẹ, aṣayan add_paths dawọle pe Riak CS ti fi sii ni /usr/lib/riak-cs, lakoko ti awọn aṣayan data_root ro pe Riak ti fi sii ni /var/lib. (Akiyesi: Ninu ọran mi o jẹ add_paths - /usr/lib64/riak-cs/).

Iṣeto ni pe Riak CS ti fi sori ẹrọ lori ẹrọ kanna bi Riak. Ti kii ba ṣe bẹ, lẹhinna package nilo lati daakọ si agbalejo lọtọ.

Eto soke sibling ẹda

Ni bayi, a nilo lati ṣeto paramita allow_mult si otitọ. A le ṣafikun laini kan ninu faili iṣeto ni riak.conf, tabi apakan riak_core ni advance.config tabi app.config.

RIAK.CONF

buckets.default.allow_mult = true

TO ti ni ilọsiwaju.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
]}

Eyi yoo gba Riak laaye lati ṣẹda awọn arakunrin ti o jẹ pataki fun Riak CS lati ṣiṣẹ. Ti o ba sopọ si Riak CS nipa lilo ile-ikawe alabara, maṣe yọ ara rẹ lẹnu: iwọ kii yoo ni lati yanju awọn ija, nitori gbogbo awọn iṣẹ Riak CS ni ibamu muna bi a ti ṣalaye.

Arakunrin jẹ ọna ti titoju awọn nkan lọpọlọpọ ni bọtini kan ki ohun naa ni awọn iye oriṣiriṣi lori awọn apa oriṣiriṣi.

Akiyesi: allow_mult
Ipin Riak eyikeyi ti o tun ṣe atilẹyin Riak CS yoo ni allow_mult ṣeto si otitọ ni gbogbo igba. Riak CS yoo tun ifilọlẹ naa ti iye ba jẹ eke.

Ṣiṣeto Orukọ ogun ati Adirẹsi IP

Ipin Riak kọọkan ni orukọ kan, eyiti o le ṣe pato ninu aṣayan nodename ni riak.conf. Ti o ba nlo faili atunto app.config, o nilo lati ṣẹda faili kan ti a pe ni vm.args ninu itọsọna kanna bi app.config ati pato orukọ agbalejo nipa lilo asia -name. A ṣeduro pato awọn orukọ ipade ni ọna kika @. Ati nitorinaa ti o ba ni awọn apa mẹta ti o nṣiṣẹ lori ogun kan 100.0.0.1, o le pe wọn [imeeli ni idaabobo], [imeeli ni idaabobo]ati [imeeli ni idaabobo] tabi o le fun awọn orukọ pato diẹ sii, gẹgẹbi [imeeli ni idaabobo], [imeeli ni idaabobo] ati bẹbẹ lọ. Apẹẹrẹ ti o wa ni isalẹ ṣe afihan iyipada orukọ agbalejo si [imeeli ni idaabobo], eyi ti yoo ṣiṣẹ lori localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

O gbọdọ lorukọ gbogbo awọn apa ṣaaju ki o to bẹrẹ wọn soke ati didapọ mọ iṣupọ naa.

Idanwo iṣeto

Ni bayi pe gbogbo awọn eto ipade pataki ti pari, a le gbiyanju lati ṣe ifilọlẹ Riak:

IKU

 riak start 

Akiyesi Idahun ninu ọran mi:

Ibi ipamọ awọsanma Riak. Apá 1: Ṣiṣeto Riak KV

Nibi o nilo lati duro diẹ. Lẹhinna o le bẹrẹ idanwo ipade ti nṣiṣẹ.

IKU

 riak ping

Ti idahun ba jẹ pong, lẹhinna Riak nṣiṣẹ; ti idahun ba jẹ Node ko dahun si awọn pings, lẹhinna nkan kan ti jẹ aṣiṣe.

Akiyesi Idahun ninu ọran mi:

Ibi ipamọ awọsanma Riak. Apá 1: Ṣiṣeto Riak KV

Ti ipade naa ko ba bẹrẹ ni deede, wo erlang.log.1 log ni / log directory ti node ti iṣoro naa ba le ṣe idanimọ. Ọkan ninu awọn aṣiṣe ti o wọpọ julọ jẹ invalid_storage_backend. Eyi ti o tọkasi pe ọna si ile-ikawe Riak CS ni advance.config tabi ni app.config ko tọ (tabi Riak CS ko fi sii lori olupin naa). Pelu aṣiṣe yii, rii daju pe o ko yipada lati riak_cs_kv_multi_backend si riak_kv_multi_backend.

Ṣiṣeto Riak lati lo awọn buffers Ilana

Awọn eto ifipamọ ilana Ilana Riak wa ni riak.conf tabi ni apakan riak_api ni ilọsiwaju.config tabi awọn faili app.config, eyiti o wa ninu /etc/riak/ directory. Nipa aiyipada, agbalejo naa ni adiresi IP ti 127.0.0.1 ati ibudo 8087. Iwọ yoo nilo lati yi awọn wọnyi pada ti o ba gbero lati ṣiṣe Riak ati Riak CS ni agbegbe ti kii ṣe agbegbe. Ropo 127.0.0.1 pẹlu Riak ogun IP adirẹsi ati ibudo 8087 pẹlu kan ti o dara.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

Ilọsiwaju.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
]}

akiyesi:Iye ti olutẹtisi.protobuf.internal paramita ni riak.conf (tabi iye ti paramita pb ni advance.conf/app.config) faili gbọdọ baramu awọn iye fun riak_host ni Riak CS riak-cs.config ati Stanchion stanchion.conf (tabi riak_host lẹsẹsẹ ni ilọsiwaju .config/app.config) awọn faili.

Akọsilẹ nipa nọmba ibudo
Nọmba ibudo ti o yatọ le nilo ti ibudo naa ba koju pẹlu awọn ebute oko oju omi ti ohun elo miiran lo tabi ti o ba nlo iwọntunwọnsi fifuye tabi olupin aṣoju.

O tun ṣeduro pe awọn olumulo rii daju pe iwọn Riak protobuf.backlog (tabi ni awọn faili Advanced.config/app.config eyi ni pb_backlog) jẹ dọgba si tabi tobi ju pool.request.size ti a sọ fun Riak CS ni riak-cs. konfigi (tabi request_pool_size ni advance.config/app.conf awọn faili).

Ti iye pool.request.size ni Riak CS ti yipada, lẹhinna iye protobuf.backlog gbọdọ tun ni imudojuiwọn ni Riak.

Awọn eto Riak miiran

Awọn faili riak.conf atiAdvanced.config ni awọn eto miiran ti o tunto ẹda awọn faili log ati ibi ti wọn ti fipamọ. Awọn eto wọnyi ni awọn iye aiyipada ati pe o yẹ ki o ṣiṣẹ ni ọpọlọpọ awọn ọran. Fun alaye diẹ sii, a ṣeduro kika iwe wa nipa awọn faili iṣeto ni.

Ṣiṣeto adiresi IP kan fun Riak

Nigbati o ba ṣeto adiresi IP kan fun Riak, o gbọdọ rii daju pe awọn apa Riak ni adiresi IP alailẹgbẹ kan, boya o n ṣiṣẹ pẹlu ipade kan tabi ṣafikun awọn apa diẹ sii si eto naa. Adirẹsi IP Riak naa wa ninu riak.conf tabi - ti o ba nlo faili app.config - ninu faili iṣeto vm.args, eyiti o wa nibẹ ninu itọsọna /etc/riak (tabi /opt/riak/etc/ lori awọn ọna ṣiṣe miiran).

Ni ibẹrẹ, laini ti o ni adiresi IP Riak tọka si agbegbe agbegbe ni ipo yii:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Rọpo 127.0.0.1 pẹlu adiresi IP ti o fẹ tabi orukọ olupin ti ipade Riak.

Awọn iṣẹ ṣiṣe ati awọn Eto bandiwidi

Fun awọn idi iṣẹ, a ṣeduro ni iyanju fifi awọn iye kun si awọn faili atunto Riak riak.conf tabi vm.args, ti o wa ninu /etc/riak/ tabi /opt/riak/etc directory.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

Pa JavaScript MapDinku

O ti wa ni niyanju lati ma lo julọ JavaScript MapReduce pẹlu eyikeyi version of Riak CS. Fun awọn idi iṣẹ, o yẹ ki o mu ẹrọ foju ti n ṣiṣẹ JavaScript MapDinku awọn iṣẹ ṣiṣe nipasẹ ṣiṣeto ni faili iṣeto ni riak.conf, tabi ni apakan riak_kv tiAdvanced.conf tabi app.config:

RIAK.CONF

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

TO ti ni ilọsiwaju.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
]}

Nigbamii a nilo lati tunto awọn paati ti o ku ti eto Riak CS.

Atilẹba Afowoyi.

orisun: www.habr.com

Fi ọrọìwòye kun