Stòradh Cloud Riak. Pàirt 1: A 'stèidheachadh Riak KV

Riak CS (Cloud Storage) - bathar-bog a tha furasta a chleachdadh airson stòradh stuthan a chuir air dòigh, a’ ruith air mullach Riak KV. Tha Riak (KV) na stòr-dàta luach-iuchrach NoSQL sgaoilte. Tha Riak CS air a dhealbhadh gus sìmplidheachd, ruigsinneachd, cuairteachadh stòraidh neòil de sgèile sam bith a thoirt seachad, agus faodar a chleachdadh gus ailtireachd sgòthan a thogail - an dà chuid poblach agus prìobhaideach - no mar stòradh bun-structair airson tagraidhean agus seirbheisean làn luchdaichte. Tha Riak CS API co-chòrdail ri Amazon S3 agus a 'toirt taic don chomas aithisgean fhaighinn air diofar shuidheachaidhean.

Stòradh Cloud Riak. Pàirt 1: A 'stèidheachadh Riak KV
Tha an artaigil seo na eadar-theangachadh an-asgaidh den leabhar-làimhe oifigeil airson siostam Riak CS dreach 2.1.1

Ann an siostam stòraidh Riak CS, bidh trì pàirtean ag obair ann an co-bhonn ri chèile, a tha a’ ciallachadh gum feum gach pàirt a bhith air a rèiteachadh gus obrachadh leis na pàirtean eile:

  • Riak (KV) - siostam stòr-dàta a bhios ag obair mar shiostam crìochnachaidh.
  • Riak CS - Sreath stòraidh sgòthan a bharrachd air Riak a bheir seachad comasan stòraidh agus API, a ’stòradh faidhlichean agus meata-dàta ann an Riak, agus an uairsin gan sgaoileadh gu luchd-cleachdaidh deireannach.
  • Stanchion - A’ riaghladh cheistean anns a bheil buidhnean gun samhail air feadh na cruinne leithid bucaidean agus luchd-cleachdaidh ann an eisimpleir Riak. Mar eisimpleir, a 'cruthachadh luchd-cleachdaidh, a' cruthachadh no a sguabadh às bucaidean.

A bharrachd air an sin, faodaidh tu cuideachd an neach-dèiligidh S3 a rèiteachadh airson a chleachdadh ann an teachdaireachdan leis an t-siostam Riak CS.

Bu chòir dhut planadh gum bi aon nód Riak agad airson gach nód Riak CS air an t-siostam agad. Faodar nodan Riak agus Riak CS a ruith air diofar innealan corporra, ach sa mhòr-chuid de chùisean tha e nas fheàrr aon nód Riak agus aon nód Riak CS a ruith air an aon inneal corporra. Leis gu bheil cumhachd gu leòr aig aon inneal fiosaigeach gus feumalachdan gach cuid nodan Riak agus Riak CS a shàsachadh, mar as trice chì thu coileanadh nas fheàrr mar thoradh air latency lìonra nas lugha.

Ma tha grunn nodan anns an t-siostam agad, tha an rèiteachadh gu sònraichte mu bhith a’ stèidheachadh conaltradh eadar co-phàirtean. Tha luachan bunaiteach aig roghainnean eile, leithid far an tèid na faidhlichean log a stòradh, agus cha leig thu leas ach atharrachadh ma tha thu airson luachan neo-àbhaisteach a chleachdadh.

A 'suidheachadh co-phàirtean siostam. A’ stèidheachadh Riak KV airson CS

Leis gur e tagradh a th ’ann an Riak CS a chaidh a thogail air mullach Riak, tha e glè chudromach aire a thoirt don rèiteachadh Riak agad nuair a bhios tu a’ ruith Riak CS. Tha an sgrìobhainn seo an dà chuid na stiùireadh rèiteachaidh Riak agus na sgrìobhainn iomraidh a’ toirt cunntas air paramadairean rèiteachaidh cudromach.

Mus cuir thu air dòigh, dèan cinnteach gu bheil Riak KV agus Riak CS air an stàladh air a h-uile nód sa bhuidheann agad. Cha bu chòir Stanchion, air an làimh eile, a bhith air a chuir a-steach ach air aon nód anns a’ bhuidheann gu lèir.

Stòradh Cloud Riak. Pàirt 1: A 'stèidheachadh Riak KV

Cùl-fhiosrachadh airson Riak CS

Is e Bitcask an backend bunaiteach a chleachdas Riak, ach tha pasgan Riak CS a’ toirt a-steach backend sònraichte a dh’ fheumas a bhith air a chleachdadh leis a’ bhuidheann Riak a tha na phàirt de shiostam Riak CS. Anns an dreach cunbhalach tha an backend àbhaisteach Multi a thig le Riak.

Bidh na h-aon bhucaidean Riak a chleachdar taobh a-staigh Riak CS a’ cleachdadh clàran-amais àrd-sgoile, a tha a-nis feumach air backend LevelDB. Faodaidh pàirtean eile de shiostam Riak CS buannachd fhaighinn bho bhith a’ cleachdadh backend Bticask. Tha cleachdadh sampall Multi backend air a ghabhail a-steach ann an Riak CS gus brath a ghabhail air an dà backend sin gus am measgachadh as fheàrr de choileanadh agus comas-gnìomh a choileanadh. Tha an ath earrann ag innse mar a chuireas tu Riak air dòigh gu ceart gus an Ioma-backend seo a chleachdadh.

Cùl-fhiosrachadh Is e sin a chleachdas Riak airson dàta a shàbhaladh. Tha grunn backends aig Riak KV san arsenal aige: Bitcask, LevelDB, Memory and Multi.

A bharrachd air an sin, bidh an siostam àireamhachaidh stòraidh a’ cleachdadh Riak MapReduse gus faidhlichean a chruinneachadh ann am bucaidean. Tha seo a’ ciallachadh gum feum thu innse dha na nodan Riak gu lèir far am bu chòir dhut coimhead airson faidhlichean Riak CS ullaichte mus tèid an stòradh.

Feumar grunn pharaimearan eile atharrachadh gus an nód Riak a rèiteachadh mar phàirt den t-siostam Riak CS, leithid an seòladh IP agus seòladh IP agus port airson teachdaireachdan tro Protocol Buffers. Faodar roghainnean eile atharrachadh ma tha sin riatanach. Tha na h-earrannan a leanas a’ toirt cunntas air mar a chuireas tu nód Riak air dòigh gus obrachadh mar phàirt de shiostam Riak CS.

A 'stèidheachadh cùl-taic Riak

An toiseach, tha na faidhlichean rèiteachaidh riak.conf no advanced.config/app.config air an deasachadh. Faodar na faidhlichean sin a lorg ann an / etc/riak or / opt/riak/etc directory. Gu gnàthach, bidh Riak a’ cleachdadh backend Bitcask. Is e a’ chiad rud a dh’ fheumas sinn a dhèanamh am faidhle rèiteachaidh atharrachadh le bhith a’ toirt air falbh an loidhne a leanas:

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

An ath rud, feumaidh sinn sealltainn gu bheil feum air modalan RiakCS airson Riak agus stiùireadh a thoirt do Riak an backend rèiteachaidh a chleachdadh a’ toirt seachad Riak CS. Feumaidh sinn am faidhle advanced.config no app.config a chleachdadh airson seo agus cuir ris na roghainnean a leanas:

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

Tha e glè chudromach cuimhneachadh gum bi mòran de na luachan sin an urra ri caochlaidhean eòlaire a tha sònraichte don t-siostam obrachaidh agad, mar sin lean an stiùireadh a rèir sin. Mar eisimpleir, tha an roghainn add_paths a’ gabhail ris gu bheil Riak CS air a chuir a-steach / usr / lib / riak-cs, fhad ‘s a tha na roghainnean data_root a’ gabhail ris gu bheil Riak air a chuir a-steach / var / lib. (Nòta: Anns a 'chùis agam b' e add_paths a bh 'ann - / usr/lib64/riak-cs/).

Tha an rèiteachadh seo a’ gabhail ris gu bheil Riak CS air a chuir a-steach air an aon inneal ri Riak. Mura h-eil, feumaidh am pasgan a bhith air a chopaigeadh gu aoigheachd air leth.

Cruthachadh sibling a stèidheachadh

A-nis, feumaidh sinn am paramadair allow_mult a shuidheachadh gu fìor. Faodaidh sinn loidhne a chuir ris anns an fhaidhle rèiteachaidh riak.conf, no roinn riak_core ann an advanced.config no 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
]}

Leigidh seo le Riak peathraichean a chruthachadh a tha riatanach airson Riak CS a bhith ag obair. Ma nì thu ceangal ri Riak CS a’ cleachdadh an leabharlann teachdaiche, na gabh dragh: cha bhith agad ri còmhstrithean fhuasgladh, leis gu bheil gnìomhachd Riak CS gu tur cunbhalach mar a chaidh a mhìneachadh.

peathraichean na dhòigh air grunn nithean a stòradh ann an aon iuchair gus am bi luachan eadar-dhealaichte aig an nì air diofar nodan.

Thoir an aire: allow_mult
Bidh cead_mult air a shuidheachadh gu fìor an-còmhnaidh aig nód Riak sam bith a bheir taic do Riak CS. Cuiridh Riak CS ath-shuidheachadh air bhog ma tha an luach meallta.

A 'suidheachadh an t-ainm aoigheachd agus an seòladh IP

Tha ainm aig gach nód Riak, a dh'fhaodar a shònrachadh anns an roghainn nodename ann an riak.conf. Ma tha thu a 'cleachdadh am faidhle rèiteachaidh app.config, feumaidh tu faidhle ris an canar vm.args a chruthachadh anns an aon eòlaire ri app.config agus sònraich an t-ainm aoigheachd a' cleachdadh an t-ainm bratach. Tha sinn a’ moladh ainmean nod a shònrachadh anns a’ chruth @. Agus mar sin ma tha trì nodan agad a’ ruith air aon aoigh 100.0.0.1, faodaidh tu fios a chuir thuca [post-d fo dhìon], [post-d fo dhìon]agus [post-d fo dhìon] no faodaidh tu ainmean nas mionaidiche a thoirt seachad, leithid [post-d fo dhìon], [post-d fo dhìon] Agus mar sin air adhart. Tha an eisimpleir gu h-ìosal a’ sealltainn atharrachadh ainm an òstair gu [post-d fo dhìon], a ruitheas air localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Feumaidh tu a h-uile nod ainmeachadh mus tòisich thu orra agus a dhol dhan bhuidheann.

Deuchainn rèiteachaidh

A-nis gu bheil na roghainnean nodan riatanach uile air an crìochnachadh, is urrainn dhuinn feuchainn ri Riak a chuir air bhog:

SGEUL

 riak start 

Thoir an aire Am freagairt anns a 'chùis agam:

Stòradh Cloud Riak. Pàirt 1: A 'stèidheachadh Riak KV

An seo feumaidh tu feitheamh beagan. An uairsin faodaidh tu tòiseachadh air deuchainn a dhèanamh air an nód ruith.

SGEUL

 riak ping

Ma tha am freagairt pong, tha Riak a’ ruith; mas e am freagairt nach eil Node a’ freagairt pings, chaidh rudeigin ceàrr.

Thoir an aire Am freagairt anns a 'chùis agam:

Stòradh Cloud Riak. Pàirt 1: A 'stèidheachadh Riak KV

Mura do thòisich an nód gu ceart, thoir sùil air log erlang.log.1 ann an eòlaire / log an nód ma thèid an duilgheadas aithneachadh. Is e aon de na mearachdan as cumanta invalid_storage_backend. A tha a’ nochdadh gu bheil an t-slighe gu leabharlann Riak CS ann an advanced.config no ann an app.config ceàrr (no Riak CS nach eil air a chuir a-steach air an fhrithealaiche). A dh'aindeoin na mearachd seo, dèan cinnteach nach eil thu air atharrachadh bho riak_cs_kv_multi_backend gu riak_kv_multi_backend.

A’ rèiteachadh Riak gus bufairean protocol a chleachdadh

Tha na roghainnean bufair protocol Riak suidhichte ann an riak.conf no anns an roinn riak_api anns na faidhlichean advanced.config no app.config, a tha suidhichte anns an /etc/riak/ directory. Gu gnàthach, tha seòladh IP de 127.0.0.1 agus port 8087 aig an aoigh. Feumaidh tu iad sin atharrachadh ma tha thu an dùil Riak agus Riak CS a ruith ann an àrainneachd nach eil ionadail. Cuir an àite 127.0.0.1 le seòladh IP aoigheachd Riak agus port 8087 le fear iomchaidh.

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

Note:Feumaidh luach an neach-èisteachd. Stanchion stanchion.conf (no riak_host fa leth ann an adhartach .config/app.config) faidhlichean.

Nota mun àireamh port
Dh’ fhaodadh gum bi feum air àireamh puirt eadar-dhealaichte ma tha am port a’ dol an aghaidh a’ phuirt a chleachdar le aplacaid eile no ma tha thu a’ cleachdadh cothromaiche luchdan no frithealaiche progsaidh.

Thathas cuideachd a’ moladh gun dèan luchd-cleachdaidh cinnteach gu bheil meud protobuf.backlog Riak (no ann am faidhlichean adhartach.config/app.config is e seo pb_backlog) co-ionann no nas motha na an pool.request.size a chaidh a shònrachadh airson Riak CS ann an riak-cs. config (no request_pool_size ann am faidhlichean adhartach.config/ app.conf).

Ma tha luach pool.request.size ann an Riak CS air atharrachadh, feumar luach protobuf.backlog ùrachadh cuideachd ann an Riak.

Roghainnean Riak eile

Tha na faidhlichean riak.conf agus advanced.config a 'gabhail a-steach suidheachaidhean eile a tha a' rèiteachadh cruthachadh faidhlichean log agus far a bheil iad air an sàbhaladh. Tha luachan bunaiteach aig na roghainnean sin agus bu chòir dhaibh obrachadh sa mhòr-chuid de chùisean. Airson tuilleadh fiosrachaidh, tha sinn a’ moladh na sgrìobhainnean againn mu fhaidhlichean rèiteachaidh a leughadh.

A’ stèidheachadh seòladh IP airson Riak

Nuair a bhios tu a’ stèidheachadh seòladh IP airson Riak, feumaidh tu a bhith cinnteach gu bheil seòladh IP sònraichte aig na nodan Riak, ge bith a bheil thu ag obair le dìreach aon nód no a’ cur barrachd nodan ris an t-siostam. Tha an seòladh IP Riak ann an riak.conf no - ma tha thu a’ cleachdadh am faidhle app.config - anns an fhaidhle rèiteachaidh vm.args, a tha suidhichte an sin san eòlaire /etc/riak (no /opt/riak/etc/ air siostaman obrachaidh eile).

An toiseach, tha an loidhne anns a bheil an seòladh IP Riak a’ comharrachadh gu localhost aig an àite seo:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Cuir an seòladh IP as fheàrr leat no an t-ainm aoigheachd aig nód Riak an àite 127.0.0.1.

Roghainnean Coileanaidh agus Bandwidth

Airson adhbharan coileanaidh, tha sinn a 'moladh gu làidir luachan a chur ris na faidhlichean rèiteachaidh Riak riak.conf no vm.args, a tha suidhichte anns an eòlaire /etc/riak/ or /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

A' cur JavaScript MapReduce à comas

Thathas a’ moladh gun a bhith a’ cleachdadh dìleab JavaScript MapReduce le dreach sam bith de Riak CS. Airson adhbharan dèanadais, bu chòir dhut an inneal brìgheil a tha a’ coileanadh obrachaidhean JavaScript MapReduce a dhì-cheadachadh le bhith a’ suidheachadh ann am faidhle rèiteachaidh riak.conf, no anns an roinn riak_kv de advanced.conf no 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
]}

An uairsin feumaidh sinn na pàirtean eile den t-siostam Riak CS a rèiteachadh.

Leabhar-làimhe tùsail.

Source: www.habr.com

Cuir beachd ann