Riak Cloud Storage. Mahele 1: Hoʻonohonoho i ka Riak KV

ʻO Riak CS (Cloud Storage) - polokalamu maʻalahi e hoʻohana no ka hoʻonohonoho ʻana i kahi waiho mea, e holo ana ma luna o Riak KV. ʻO Riak (KV) kahi waihona waiwai kī NoSQL i hoʻolaha ʻia. Hoʻolālā ʻia ʻo Riak CS e hāʻawi i ka maʻalahi, ka loaʻa ʻana, ka hāʻawi ʻana i ka mālama ʻana i ke ao o kēlā me kēia unahi, a hiki ke hoʻohana ʻia no ke kūkulu ʻana i nā hale kiʻi kapuaʻi - ma ka lehulehu a me ka pilikino - a i ʻole ka mālama ʻana i nā ʻōnaehana no nā noi a me nā lawelawe i hoʻokau nui ʻia. Ua kūpono ʻo Riak CS API me Amazon S3 a kākoʻo i ka hiki ke loaʻa nā hōʻike no nā kūlana like ʻole.

Riak Cloud Storage. Mahele 1: Hoʻonohonoho i ka Riak KV
He unuhi manuahi kēia ʻatikala o ka manual official no ka Riak CS system version 2.1.1

Ma ka ʻōnaehana mālama Riak CS, ʻekolu mau ʻāpana e hana pū me kekahi, ʻo ia hoʻi, pono e hoʻonohonoho ʻia kēlā me kēia ʻāpana e hana pū me nā ʻāpana ʻē aʻe:

  • Riak (KV) - he ʻōnaehana waihona e hana ana ma ke ʻano he ʻōnaehana hopena.
  • Riak CS - He papa waihona kapuaʻi ma luna o Riak e hāʻawi ana i ka waihona a me nā mana API, mālama i nā faila a me nā metadata ma Riak, a laila e hāʻawi iā lākou i nā mea hoʻohana hope.
  • Kūʻai - Hoʻoponopono i nā nīnau e pili ana i nā hui kūʻokoʻa o ka honua e like me nā bākeke a me nā mea hoʻohana i ka hiʻohiʻona Riak. No ka laʻana, hana i nā mea hoʻohana, hana a holoi paha i nā bākeke.

Eia hou, hiki iā ʻoe ke hoʻonohonoho i ka mea kūʻai aku S3 no ka hoʻohana ʻana i ka memo me ka ʻōnaehana Riak CS.

Pono ʻoe e hoʻolālā e loaʻa i hoʻokahi node Riak no kēlā me kēia node Riak CS ma kāu ʻōnaehana. Hiki ke holo ʻia nā node Riak a me Riak CS ma nā mīkini kino like ʻole, akā i ka hapanui o nā hihia ʻoi aku ka maikaʻi o ka holo ʻana i hoʻokahi node Riak a me hoʻokahi node Riak CS ma ka mīkini kino like. Ke manaʻo nei ua lawa ka mana o ka mīkini kino e hoʻokō i nā pono o nā node Riak a me Riak CS, e ʻike pinepine ʻoe i ka hana ʻoi aku ka maikaʻi ma muli o ka hōʻemi ʻana o ka latency pūnaewele.

Inā loaʻa i kāu ʻōnaehana he mau nodes, ʻo ka hoʻonohonoho ʻana e pili ana i ka hoʻonohonoho ʻana i ke kamaʻilio ma waena o nā ʻāpana. ʻO nā hoʻonohonoho ʻē aʻe, e like me kahi e mālama ʻia ai nā faila log, loaʻa nā waiwai paʻamau a pono e hoʻololi ʻia inā makemake ʻoe e hoʻohana i nā waiwai maʻamau.

Hoʻonohonoho i nā ʻāpana ʻōnaehana. Hoʻonohonoho ʻana iā Riak KV no CS

No ka mea he noi ʻo Riak CS i kūkulu ʻia ma luna o Riak, he mea nui e hoʻolohe i kāu hoʻonohonoho Riak i ka wā e holo ai ʻo Riak CS. ʻO kēia palapala he alakaʻi hoʻonohonoho Riak a me kahi palapala kuhikuhi e wehewehe ana i nā ʻāpana hoʻonohonoho koʻikoʻi.

Ma mua o ka hoʻonohonoho ʻana, e hōʻoia e hoʻokomo ʻia ʻo Riak KV a me Riak CS ma kēlā me kēia node o kāu hui. ʻO Stanchion, ma ka ʻaoʻao ʻē aʻe, pono e hoʻokomo ʻia ma hoʻokahi node o ka hui holoʻokoʻa.

Riak Cloud Storage. Mahele 1: Hoʻonohonoho i ka Riak KV

Nā hope no Riak CS

ʻO ka ʻaoʻao paʻamau i hoʻohana ʻia e Riak ʻo Bitcask, akā aia ka pūʻulu Riak CS i kahi backend kūikawā pono e hoʻohana ʻia e ka hui Riak kahi ʻāpana o ka ʻōnaehana Riak CS. Loaʻa i ka mana maʻamau ka backend Multi maʻamau e hele mai me Riak.

Hoʻohana nā ʻeke Riak i hoʻohana ʻia i loko o Riak CS i nā ʻōlelo kuhikuhi lua, i kēia manawa e koi ai i kahi backend LevelDB. Hiki i nā ʻāpana ʻē aʻe o ka ʻōnaehana Riak CS ke pōmaikaʻi mai ka hoʻohana ʻana i ka backend Bticask. Hoʻohana ʻia ka hoʻohana ʻana i kahi laʻana Multi backend i Riak CS e hoʻohana pono i kēia mau hope ʻelua e hoʻokō i ka hui maikaʻi loa o ka hana a me ka hana. Hōʻike ka ʻāpana aʻe i ka hoʻonohonoho pono ʻana iā Riak e hoʻohana i kēia Multi-backend.

Hopena hope ʻo ia ka mea e hoʻohana ai ʻo Riak e mālama i ka ʻikepili. He mau backends ko Riak KV i kāna mea kaua: Bitcask, LevelDB, Memory a me Multi.

Eia hou, hoʻohana ka ʻōnaehana helu waihona iā Riak MapReduse e hōʻuluʻulu i nā faila i loko o nā bākeke. ʻO ke ʻano kēia, pono ʻoe e haʻi i nā node Riak āpau kahi e ʻimi ai i nā faila Riak CS i hoʻomākaukau ʻia ma mua o ka mālama ʻana i ka helu.

Pono e hoʻololi ʻia kekahi mau ʻāpana ʻē aʻe e hoʻonohonoho i ka node Riak ma ke ʻano he ʻāpana o ka ʻōnaehana Riak CS, e like me ka IP address a me ka IP address a me ke awa no ka leka uila ma o Protocol Buffers. Hiki ke hoʻololi i nā hoʻonohonoho ʻē aʻe inā pono. Hōʻike nā ʻāpana aʻe pehea e hoʻonohonoho ai i kahi node Riak e hana ma ke ʻano he ʻāpana o ka ʻōnaehana Riak CS.

Hoʻonohonoho ʻana iā Riak backend

ʻO ka mua, hoʻoponopono ʻia nā faila hoʻonohonoho riak.conf a i ʻole advanced.config/app.config. Hiki ke loaʻa kēia mau faila ma /etc/riak a i ʻole /opt/riak/etc directories. Ma ka maʻamau, hoʻohana ʻo Riak i ka hope Bitcask. ʻO ka mea mua e pono ai mākou e hoʻololi i ka faila hoʻonohonoho ma ka wehe ʻana i kēia laina:

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

A laila, pono mākou e hōʻike i ka pono o RiakCS modules no Riak a aʻo iā Riak e hoʻohana i ka backend i hoʻonohonoho ʻia e hāʻawi iā Riak CS. Pono mākou e hoʻohana i ka file advanced.config a i ʻole app.config no kēia a hoʻohui i kēia mau koho:

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

He mea nui ia e hoʻomaopopo i ka nui o kēia mau waiwai e hilinaʻi ʻia i nā ʻano kuhikuhi kuhikuhi kikoʻī i kāu ʻōnaehana hana, no laila e hahai i nā ʻōlelo aʻoaʻo e like me ia. No ka laʻana, manaʻo ka koho add_paths ua hoʻokomo ʻia ʻo Riak CS i /usr/lib/riak-cs, aʻo nā koho data_root i manaʻo ua hoʻokomo ʻia ʻo Riak i /var/lib. (E hoʻomaopopo: I koʻu hihia, ʻo ia ka add_paths - /usr/lib64/riak-cs/).

Ke manaʻo nei kēia hoʻonohonoho ua hoʻokomo ʻia ʻo Riak CS ma ka mīkini like me Riak. Inā ʻaʻole, pono e kope ʻia ka pūʻolo i kahi hoʻokipa ʻokoʻa.

Hoʻonohonoho i ka hoʻokumu ʻana i nā kaikaina

I kēia manawa, pono mākou e hoʻonohonoho i ka allow_mult parameter i ʻoiaʻiʻo. Hiki iā mākou ke hoʻohui i kahi laina ma ka faila hoʻonohonoho riak.conf, a i ʻole kahi ʻāpana riak_core ma advanced.config a i ʻole 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
]}

E ʻae kēia iā Riak e hana i nā kaikunāne e pono ai no Riak CS e hana. Inā hoʻopili ʻoe iā Riak CS me ka hoʻohana ʻana i ka waihona mea kūʻai aku, mai hopohopo: ʻaʻole pono ʻoe e hoʻoponopono i nā paio, no ka mea ua kūpaʻa nā hana a pau Riak CS e like me ka wehewehe ʻana.

kaikaina He ala ia e mālama ai i nā mea he nui i hoʻokahi kī i loaʻa nā waiwai like ʻole o ka mea ma nā node like ʻole.

Nānā: allow_mult
ʻO kēlā me kēia Riak node e kākoʻo pū ana iā Riak CS e loaʻa iā allow_mult i hoʻonohonoho ʻia i ka ʻoiaʻiʻo i nā manawa āpau. E hoʻihoʻi hou ʻo Riak CS i ka hoʻomaka inā he hewa ka waiwai.

Hoʻonohonoho i ka inoa inoa a me ka IP Address

He inoa ko kēlā me kēia node Riak, hiki ke kuhikuhi ʻia i ka koho nodename ma riak.conf. Inā ʻoe e hoʻohana ana i ka faila hoʻonohonoho app.config, pono ʻoe e hana i kahi faila i kapa ʻia ʻo vm.args ma ka papa kuhikuhi like me app.config a kuhikuhi i ka inoa host me ka hoʻohana ʻana i ka hae -name. Manaʻo mākou e kuhikuhi i nā inoa node ma ke ʻano @. A no laila inā ʻekolu mau nodes e holo ana ma hoʻokahi host 100.0.0.1, hiki iā ʻoe ke kāhea iā lākou [pale ʻia ka leka uila], [pale ʻia ka leka uila]a [pale ʻia ka leka uila] a i ʻole hiki iā ʻoe ke hāʻawi i nā inoa kikoʻī hou aku, e like me [pale ʻia ka leka uila], [pale ʻia ka leka uila] a laila. Hōʻike ka laʻana ma lalo nei i ka hoʻololi ʻana i ka inoa host i [pale ʻia ka leka uila], e holo ana ma localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Pono ʻoe e inoa i nā node a pau ma mua o ka hoʻomaka ʻana iā lākou a hui pū i ka pūʻulu.

Hoʻonohonoho hoʻāʻo

I kēia manawa ua pau nā hoʻonohonoho node pono, hiki iā mākou ke hoʻāʻo e hoʻomaka iā Riak:

SHELL

 riak start 

Nānā ʻO ka pane i koʻu hihia:

Riak Cloud Storage. Mahele 1: Hoʻonohonoho i ka Riak KV

Maanei pono ʻoe e kali iki. A laila hiki iā ʻoe ke hoʻomaka e hoʻāʻo i ka node holo.

SHELL

 riak ping

Inā he pong ka pane, a laila ke holo nei ʻo Riak; inā ʻaʻole pane ʻo Node i nā pings, a laila ua hewa kekahi mea.

Nānā ʻO ka pane i koʻu hihia:

Riak Cloud Storage. Mahele 1: Hoʻonohonoho i ka Riak KV

Inā ʻaʻole i hoʻomaka pololei ka node, e nānā i ka log erlang.log.1 ma ka papa kuhikuhi / log o ka node inā hiki ke ʻike ʻia ka pilikia. ʻO kekahi o nā hewa maʻamau he invalid_storage_backend. ʻO ia ka mea e hōʻike ana ʻaʻole pololei ke ala i ka waihona Riak CS ma advanced.config a i ʻole app.config (a ʻaʻole hoʻokomo ʻia ʻo Riak CS ma ke kikowaena). Me kēia hewa, e hōʻoia ʻaʻole ʻoe i hoʻololi mai riak_cs_kv_multi_backend i riak_kv_multi_backend.

Ka hoʻonohonoho ʻana iā Riak e hoʻohana i nā pale protocol

Aia ka Riak protocol buffer hoʻonohonoho ma riak.conf a i ʻole ma ka ʻāpana riak_api ma nā faila advanced.config a i ʻole app.config, aia ma ka papa kuhikuhi /etc/riak/. Ma ka maʻamau, loaʻa i ka mea hoʻokipa kahi IP address o 127.0.0.1 a me ka port 8087. Pono ʻoe e hoʻololi i kēia mau mea inā hoʻolālā ʻoe e holo Riak a me Riak CS ma kahi ʻano kūloko. E hoʻololi i ka 127.0.0.1 me ka Riak host IP address a me ka port 8087 me kahi kūpono.

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

'Ōlelo Aʻo:Pono ka waiwai o ka listener.protobuf.internal parameter ma ka riak.conf (a i ʻole ka waiwai o ka pb parameter ma advanced.conf/app.config) file e kūpono i nā waiwai no riak_host ma Riak CS riak-cs.config a Stanchion stanchion.conf (a i ʻole riak_host i kēlā me kēia ma nā faila .config/app.config).

He leka e pili ana i ka helu awa
Pono paha kekahi helu awa ʻē aʻe inā kūʻē ke awa me nā awa i hoʻohana ʻia e kekahi noi ʻē aʻe a i ʻole ke hoʻohana nei ʻoe i kahi mea hoʻohālikelike ukana a i ʻole server proxy.

Manaʻo ʻia nā mea hoʻohana e hōʻoia i ka nui o Riak protobuf.backlog (a i ʻole ma advanced.config/app.config files ʻo pb_backlog kēia) i like a ʻoi aku paha ma mua o ka pool.request.size i kuhikuhi ʻia no Riak CS ma riak-cs. config (a i ʻole request_pool_size i nā faila advanced.config/ app.conf).

Inā ua hoʻololi ʻia ka waiwai o pool.request.size ma Riak CS, pono e hoʻonui hou ʻia ka waiwai o protobuf.backlog ma Riak.

Nā hoʻonohonoho Riak ʻē aʻe

Aia nā faila riak.conf a advanced.config i nā hoʻonohonoho ʻē aʻe e hoʻonohonoho i ka hana ʻana i nā faila log a me kahi e mālama ʻia ai. Loaʻa kēia mau hoʻonohonoho i nā waiwai paʻamau a pono e hana i ka nui o nā hihia. No ka ʻike hou aku, paipai mākou e heluhelu i kā mākou palapala e pili ana i nā faila hoʻonohonoho.

Hoʻonohonoho i kahi IP address no Riak

I ka hoʻonohonoho ʻana i kahi IP address no Riak, pono ʻoe e hōʻoia i ka loaʻa ʻana o nā node Riak i kahi leka uila IP kūʻokoʻa, inā ʻoe e hana ana me hoʻokahi node a i ʻole e hoʻohui i nā node hou i ka ʻōnaehana. Aia ka helu IP Riak ma riak.conf a i ʻole - inā ʻoe e hoʻohana ana i ka faila app.config - ma ka faila hoʻonohonoho vm.args, aia ma laila ma ka papa kuhikuhi /etc/riak (a i ʻole /opt/riak/etc/ ma nā ʻōnaehana hana ʻē aʻe).

I ka hoʻomaka, ʻo ka laina i loaʻa ka Riak IP address e kuhikuhi i ka localhost ma kēia wahi:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

E hoʻololi i ka 127.0.0.1 me kāu helu IP i makemake ʻia a i ʻole inoa inoa o ka node Riak.

Nā hoʻonohonoho hana a me ka Bandwidth

No nā kumu hana, paipai ikaika mākou e hoʻohui i nā waiwai i nā faila hoʻonohonoho Riak riak.conf a i vm.args, aia ma ka papa kuhikuhi /etc/riak/ a i ʻole /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

Hoʻopau i ka JavaScript MapReduce

Manaʻo ʻia ʻaʻole e hoʻohana i ka JavaScript MapReduce me kekahi mana o Riak CS. No nā kumu hana, pono ʻoe e hoʻopau i ka mīkini virtual e hana ana i nā hana JavaScript MapReduce ma ka hoʻonohonoho ʻana i ka faila hoʻonohonoho riak.conf, a i ʻole ma ka ʻāpana riak_kv o advanced.conf a i ʻole 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
]}

A laila pono mākou e hoʻonohonoho i nā ʻāpana i koe o ka ʻōnaehana Riak CS.

Manual kumu.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka