Riak Cloud Storage. Karolo ea 1: Ho theha Riak KV

Riak CS (Cloud Storage) - software e bonolo ho e sebelisa bakeng sa ho hlophisa polokelo ea lintho, e sebetsang ka holim'a Riak KV. Riak (KV) ke pokello ea lintlha tsa bohlokoa tsa NoSQL. Riak CS e etselitsoe ho fana ka bonolo, ho fumaneha, kabo ea polokelo ea leru ea tekanyo efe kapa efe, 'me e ka sebelisoa ho aha meralo ea maru - ea sechaba le ea poraefete - kapa joalo ka polokelo ea litšebeletso bakeng sa lits'ebetso le lits'ebeletso tse jereng haholo. Riak CS API e lumellana le Amazon S3 mme e tšehetsa bokhoni ba ho fumana litlaleho ka maemo a fapaneng.

Riak Cloud Storage. Karolo ea 1: Ho theha Riak KV
Sengoliloeng sena ke phetolelo ea mahala ea bukana ea semmuso bakeng sa mofuta oa Riak CS system 2.1.1

Sistimi ea polokelo ea Riak CS, likarolo tse tharo li sebetsa 'moho, ho bolelang hore karolo ka 'ngoe e tlameha ho hlophisoa hore e sebetse le likarolo tse ling:

  • Riak (KV) - sistimi ea polokelo ea litaba e sebetsang e le sistimi ea pheletso.
  • Riak CS - Sebaka sa polokelo ea leru ka holim'a Riak se fanang ka bokhoni ba polokelo le API, se boloka lifaele le metadata ho Riak, ebe se li aba ho basebelisi ba ho qetela.
  • Stanchion - E laola lipotso tse amang mekhatlo e ikhethileng ea lefats'e joalo ka libakete le basebelisi ketsahalong ea Riak. Mohlala, ho theha basebelisi, ho theha kapa ho hlakola libakete.

Ntle le moo, o ka hlophisa moreki oa S3 hore a sebelisoe ho romellana melaetsa le sistimi ea Riak CS.

U lokela ho rera ho ba le node e le 'ngoe ea Riak bakeng sa node e' ngoe le e 'ngoe ea Riak CS tsamaisong ea hau. Li-node tsa Riak le Riak CS li ka tsamaisoa ka mechini e fapaneng ea 'mele, empa maemong a mangata ho molemo ho tsamaisa node e le 'ngoe ea Riak le node e le' ngoe ea Riak CS mochining o le mong oa 'mele. Ho nka hore mochine o le mong oa 'mele o na le matla a lekaneng a ho khotsofatsa litlhoko tsa li-node tsa Riak le Riak CS, ka kakaretso u tla bona ts'ebetso e ntlafetseng ka lebaka la ho fokotsa latency ea marang-rang.

Haeba sistimi ea hau e na le li-node tse 'maloa, tlhophiso e mabapi le ho theha puisano lipakeng tsa likarolo. Litlhophiso tse ling, joalo ka moo lifaele tsa log li tla bolokoa, li na le boleng ba kamehla 'me li hloka ho fetoloa feela haeba u batla ho sebelisa boleng bo sa tloaelehang.

Ho theha likarolo tsa sistimi. Ho theha Riak KV bakeng sa CS

Kaha Riak CS ke kopo e hahiloeng holim'a Riak, ke habohlokoa haholo ho ela hloko tlhophiso ea hau ea Riak ha u sebelisa Riak CS. Tokomane ena ke tataiso ea tlhophiso ea Riak le tokomane ea litšupiso e hlalosang maemo a bohlokoa a tlhophiso.

Pele o qala, etsa bonnete ba hore Riak KV le Riak CS li kentsoe node e 'ngoe le e' ngoe sehlopheng sa hau. Stanchion, ka lehlakoreng le leng, e lokela ho kenngoa feela node e le 'ngoe sehlopheng sohle.

Riak Cloud Storage. Karolo ea 1: Ho theha Riak KV

Backends bakeng sa Riak CS

Sebaka sa morao-rao se sebelisoang ke Riak ke Bitcask, empa sephutheloana sa Riak CS se kenyelletsa mokokotlo o khethehileng o lokelang ho sebelisoa ke sehlopha sa Riak seo e leng karolo ea tsamaiso ea Riak CS. Phetolelo e tloaelehileng e na le Multi backend e tloaelehileng e tlang le Riak.

Libakete tse tšoanang tsa Riak tse sebelisoang ka hare ho Riak CS li sebelisa li-index tsa bobeli, tseo hona joale li hlokang LevelDB backend. Likarolo tse ling tsa tsamaiso ea Riak CS li ka rua molemo ka ho sebelisa Bticask backend. Tšebeliso ea mohlala oa Multi backend e kenyelelitsoe ho Riak CS ho nka monyetla ka bobeli ba li-backend tsena ho finyella motsoako o motle oa ts'ebetso le ts'ebetso. Karolo e latelang e hlalosa mokhoa oa ho lokisa Riak hantle ho sebelisa Multi-backend ena.

Morao-rao ke seo Riak a tla se sebelisa ho boloka data. Riak KV e na le li-backend tse 'maloa sebakeng sa eona sa lihlomo: Bitcask, LevelDB, Memory le Multi.

Ntle le moo, sistimi ea lipalo ea polokelo e sebelisa Riak MapReduse ho kopanya lifaele ka libakete. Sena se bolela hore o tlameha ho bolella li-node tsohle tsa Riak moo o ka batlang lifaele tsa Riak CS tse lokiselitsoeng pele o etsa polokelo ea komporo.

Mekhahlelo e meng e mengata e tlameha ho fetoloa ho lokisa node ea Riak joalo ka karolo ea sistimi ea Riak CS, joalo ka aterese ea IP le aterese ea IP le boema-kepe bakeng sa melaetsa ka Protocol Buffers. Litlhophiso tse ling li ka fetoloa haeba ho hlokahala. Likarolo tse latelang li hlalosa mokhoa oa ho lokisa node ea Riak hore e sebetse e le karolo ea tsamaiso ea Riak CS.

Ho theha mokokotlo oa Riak

Taba ea pele, li-file tsa tlhophiso tsa riak.conf kapa advanced.config/app.config lia hlophisoa. Lifaele tsena li ka fumaneha ho /etc/riak kapa /opt/riak/etc directory. Ka ho sa feleng, Riak o sebelisa Bitcask backend. Ntho ea pele eo re lokelang ho e etsa ke ho fetola faele ea tlhophiso ka ho tlosa mola o latelang:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

TS'ELISO.TS'OANELO

{riak_kv,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIBE

{riak_kv, 
  [ %% Delete this line:
    {storage_backend, riak_kv_bitcask_backend},
]}

Ka mor'a moo, re hloka ho bonts'a tlhokahalo ea li-module tsa RiakCS bakeng sa Riak le ho laela Riak ho sebelisa backend e hlophisitsoeng e fanang ka Riak CS. Re hloka ho sebelisa file ea advanced.config kapa app.config bakeng sa sena mme re kenye likhetho tse latelang:

TS'ELISO.TS'OANELO

{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.CONFIBE

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

Ho bohlokoa haholo ho hlokomela hore bongata ba boleng bona bo tla ipapisa le mefuta e fapaneng ea li-directory ho sistimi ea hau ea ts'ebetso, kahoo latela litaelo ka nepo. Ka mohlala, khetho ea add_paths e nka hore Riak CS e kenngoa ho /usr/lib/riak-cs, ha likhetho tsa data_root li nka hore Riak e kentsoe /var/lib. (Tlhokomeliso: Tabeng ea ka e ne e le add_paths - /usr/lib64/riak-cs/).

Tlhophiso ena e nka hore Riak CS e kentsoe mochining o tšoanang le oa Riak. Haeba ho se joalo, sephutheloana se hloka ho kopitsoa ho moamoheli ea arohaneng.

Ho theha popo ea banab'eno

Joale, re hloka ho beha paramente ea allow_mult hore e be 'nete. Re ka kenya mohala faeleng ea tlhophiso ea riak.conf, kapa karolo ea riak_core ho advanced.config kapa app.config.

RIAK.CONF

buckets.default.allow_mult = true

TS'ELISO.TS'OANELO

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

APP.CONFIBE

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

Sena se tla lumella Riak ho theha banab'eno ba hlokahalang hore Riak CS e sebetse. Haeba o hokela ho Riak CS o sebelisa laeborari ea bareki, se ts'oenyehe: u ke ke ua tlameha ho rarolla likhohlano, kaha ts'ebetso eohle ea Riak CS e ts'oana joalo ka ha e hlalositsoe.

Ngoan'eno ke mokhoa oa ho boloka lintho tse ngata ka konopo e le 'ngoe e le hore ntho e be le boleng bo fapaneng ho li-node tse fapaneng.

Tlhokomeliso: allow_mult
Node efe kapa efe ea Riak e ts'ehetsang Riak CS e tla lumella_mult e be 'nete ka linako tsohle. Riak CS e tla tsosolosa tlhahiso haeba boleng bo fosahetse.

Ho beha Lebitso la Moamoheli le Aterese ea IP

Node e 'ngoe le e' ngoe ea Riak e na le lebitso, le ka hlalosoang ho khetho ea nodename ho riak.conf. Haeba u sebelisa app.config configuration file, u lokela ho etsa faele e bitsoang vm.args bukeng e tšoanang le app.config 'me u hlalose lebitso la moeti ho sebelisa -name flag. Re khothaletsa ho hlakisa mabitso a li-node ka sebopeho sa @. 'Me kahoo haeba u na le li-node tse tharo tse sebetsang ho moamoheli a le mong 100.0.0.1, u ka li bitsa [imeile e sirelelitsoe], [imeile e sirelelitsoe]le [imeile e sirelelitsoe] kapa o ka fana ka mabitso a tobileng, joalo ka [imeile e sirelelitsoe], [imeile e sirelelitsoe] joalo joalo. Mohlala o ka tlase o bonts'a ho fetola lebitso la moamoheli ho [imeile e sirelelitsoe], e tla sebetsa ho localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

U tlameha ho reha li-node tsohle pele u li qala le ho kopanya sehlopha.

Seta teko

Kaha joale litlhophiso tsohle tse hlokahalang tsa node li phethiloe, re ka leka ho qala Riak:

SHELL

 riak start 

Hlokomela Karabo tabeng ea ka:

Riak Cloud Storage. Karolo ea 1: Ho theha Riak KV

Mona o hloka ho ema hanyane. Joale o ka qala ho lekola node e sebetsang.

SHELL

 riak ping

Haeba karabelo e le pong, joale Riak e ntse e sebetsa; haeba karabelo e le Node e sa arabe pings, ho na le ho hong ho sa tsamaeeng hantle.

Hlokomela Karabo tabeng ea ka:

Riak Cloud Storage. Karolo ea 1: Ho theha Riak KV

Haeba node e sa qala hantle, sheba erlang.log.1 log in the /log directory ea node haeba bothata bo ka tsejoa. E 'ngoe ea liphoso tse atileng haholo ke invalid_storage_backend. E leng se bontšang hore tsela e eang laebraring ea Riak CS ho advanced.config kapa in app.config e fosahetse (kapa Riak CS ha e ea kenngoa ho seva). Leha ho na le phoso ena, etsa bonnete ba hore ha o so fetohe ho tloha ho riak_cs_kv_multi_backend ho ea ho riak_kv_multi_backend.

Ho lokisa Riak ho sebelisa li-buffers tsa protocol

Litlhophiso tsa buffer protocol tsa Riak li fumaneha ho riak.conf kapa karolong ea riak_api ho lifaele tsa advanced.config kapa app.config, tse fumanehang ho /etc/riak/ directory. Ka nako e sa lekanyetsoang, moamoheli o na le aterese ea IP ea 127.0.0.1 le port 8087. U tla hloka ho fetola tsena haeba u rera ho tsamaisa Riak le Riak CS sebakeng se seng sa sebaka seo. Kenya sebaka sa 127.0.0.1 ka aterese ea IP ea moamoheli oa Riak le port 8087 ka e loketseng.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

TS'ELISO.CONF

{riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

APP.CONFIBE

riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

Ela hloko:Boleng ba paramethara ya momamedi.protobuf.ka hare ho riak.conf (kapa boleng ba paramethara ya pb ho advanced.conf/app.config) e tlameha ho tsamaisana le boleng ba riak_host ho Riak CS riak-cs.config le Stanchion stanchion.conf (kapa riak_host ka tatelano difaeleng tse tsoetseng pele tsa .config/app.config).

Molaetsa o mabapi le nomoro ea boema-kepe
Ho ka 'na ha hlokahala nomoro ea boema-kepe e fapaneng haeba boema-kepe bo hohlana le boema-kepe bo sebelisoang ke sesebelisoa se seng kapa haeba u sebelisa sebapala-palo kapa seva ea moemeli.

Hape ho kgothaletswa hore basebedisi ba netefatse hore boholo ba Riak protobuf.backlog (kapa difaeleng tsa advanced.config/app.config this is pb_backlog) bo lekana kapa bo boholo ho feta pool.request.size e hlalositsweng bakeng sa Riak CS ka riak-cs. config (kapa request_pool_size lifaeleng tsa advanced.config/ app.conf).

Haeba boleng ba pool.request.size ho Riak CS bo fetotsoe, joale boleng ba protobuf.backlog le bona bo tlameha ho nchafatsoa ho Riak.

Litlhophiso tse ling tsa Riak

Lifaele tsa riak.conf le advanced.config li kenyelletsa litlhophiso tse ling tse hlophisang ho theha lifaele tsa log le moo li bolokiloeng teng. Litlhophiso tsena li na le litekanyetso tsa kamehla 'me li lokela ho sebetsa maemong a mangata. Bakeng sa tlhaiso-leseling e batsi, re khothaletsa ho bala litokomane tsa rona mabapi le lifaele tsa tlhophiso.

Ho theha aterese ea IP bakeng sa Riak

Ha u theha aterese ea IP bakeng sa Riak, u tlameha ho etsa bonnete ba hore li-node tsa Riak li na le aterese e ikhethang ea IP, ebang u sebetsa ka node e le 'ngoe feela kapa u eketsa lisebelisoa tse ling tsamaisong. Aterese ea IP ea Riak e teng ho riak.conf kapa - haeba u sebelisa faele ea app.config - faeleng ea tlhophiso ea vm.args, e teng moo ho /etc/riak directory (kapa /opt/riak/etc/ litsamaisong tse ling tsa ts'ebetso).

Qalong, mohala o nang le aterese ea IP ea Riak o supa motho ea lulang sebakeng sena:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Fetolela 127.0.0.1 ka aterese ea hau ea IP eo u e ratang kapa lebitso la moamoheli la node ea Riak.

Litlhophiso tsa Ts'ebetso le Bandwidth

Bakeng sa mabaka a ts'ebetso, re khothaletsa ka matla ho eketsa boleng ho lifaele tsa tlhophiso tsa Riak riak.conf kapa vm.args, e fumanehang ho /etc/riak/ kapa /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

E thibela JavaScript MapReduce

Ho khothaletsoa hore u se ke ua sebelisa JavaScript MapReduce ea khale ka mofuta ofe kapa ofe oa Riak CS. Ka mabaka a ts'ebetso, o lokela ho tima mochini o sebetsang o sebelisang JavaScript MapReduce ka ho seta faeleng ea litlhophiso tsa riak.conf, kapa karolong ea riak_kv ea advanced.conf kapa app.config:

RIAK.CONF

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

TS'ELISO.TS'OANELO

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

APP.CONFIBE

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

Ka mor'a moo re hloka ho lokisa likarolo tse setseng tsa tsamaiso ea Riak CS.

Bukana ea pele.

Source: www.habr.com

Eketsa ka tlhaloso