Storio Cwmwl Riak. Rhan 1. Sefydlu'r Riak KV

Riak CS (Storio Cwmwl) – meddalwedd hawdd ei ddefnyddio ar gyfer trefnu storio gwrthrychau, yn rhedeg ar ben Riak KV. Mae Riak (KV) yn gronfa ddata gwerth bysell NoSQL ddosbarthedig. Mae Riak CS wedi'i gynllunio i ddarparu symlrwydd, argaeledd, dosbarthiad storio cwmwl o unrhyw raddfa, a gellir ei ddefnyddio i adeiladu pensaernïaeth cwmwl - cyhoeddus a phreifat - neu fel storfa seilwaith ar gyfer cymwysiadau a gwasanaethau llwyth iawn. Mae Riak CS API yn gydnaws ag Amazon S3 ac yn cefnogi'r gallu i dderbyn adroddiadau ar wahanol sefyllfaoedd.

Storio Cwmwl Riak. Rhan 1. Sefydlu'r Riak KV
Mae'r erthygl hon yn gyfieithiad am ddim o'r llawlyfr swyddogol ar gyfer fersiwn system Riak CS 2.1.1

Yn system storio Riak CS, mae tair cydran yn gweithio ar y cyd â'i gilydd, sy'n golygu bod yn rhaid i bob cydran gael ei ffurfweddu i weithio gyda'r cydrannau eraill:

  • Riak (KV) – system cronfa ddata sy'n gweithredu fel system derfyn.
  • Riak CS - Haen storio cwmwl ar ben Riak sy'n darparu galluoedd storio ac API, yn storio ffeiliau a metadata yn Riak, ac yna'n eu dosbarthu i ddefnyddwyr terfynol.
  • Stanchion - Rheoli ymholiadau sy'n ymwneud ag endidau byd-eang unigryw fel bwcedi a defnyddwyr yn achos Riak. Er enghraifft, creu defnyddwyr, creu neu ddileu bwcedi.

Yn ogystal, gallwch hefyd ffurfweddu'r cleient S3 i'w ddefnyddio mewn negeseuon gyda system Riak CS.

Dylech gynllunio i gael un nod Riak ar gyfer pob nod Riak CS ar eich system. Gellir rhedeg nodau Riak a Riak CS ar wahanol beiriannau ffisegol, ond yn y rhan fwyaf o achosion mae'n well rhedeg un nod Riak ac un nod Riak CS ar yr un peiriant corfforol. Gan dybio bod gan un peiriant corfforol ddigon o bŵer i fodloni anghenion nodau Riak a Riak CS, yn gyffredinol fe welwch berfformiad gwell oherwydd llai o hwyrni rhwydwaith.

Os yw'ch system yn cynnwys sawl nod, mae cyfluniad yn ymwneud yn bennaf â sefydlu cyfathrebu rhwng cydrannau. Mae gan leoliadau eraill, megis lle bydd y ffeiliau log yn cael eu storio, werthoedd rhagosodedig a dim ond os ydych chi am ddefnyddio gwerthoedd ansafonol y mae angen eu newid.

Sefydlu cydrannau system. Sefydlu Riak KV ar gyfer CS

Gan fod Riak CS yn gymhwysiad sydd wedi'i adeiladu ar ben Riak, mae'n bwysig iawn rhoi sylw i'ch cyfluniad Riak wrth redeg Riak CS. Mae'r ddogfen hon yn ganllaw cyfluniad Riak ac yn ddogfen gyfeirio sy'n disgrifio paramedrau cyfluniad pwysig.

Cyn gosod, gwnewch yn siŵr bod Riak KV a Riak CS wedi'u gosod ar bob nod yn eich clwstwr. Ar y llaw arall, dim ond ar un nod yn y clwstwr cyfan y dylid gosod Stanchion.

Storio Cwmwl Riak. Rhan 1. Sefydlu'r Riak KV

Backends ar gyfer Riak CS

Y backend rhagosodedig a ddefnyddir gan Riak yw Bitcask, ond mae pecyn Riak CS yn cynnwys backend arbennig y mae'n rhaid ei ddefnyddio gan y clwstwr Riak sy'n rhan o system Riak CS. Mae gan y fersiwn reolaidd y backend Aml safonol sy'n dod gyda Riak.

Mae'r un bwcedi Riak a ddefnyddir y tu mewn i Riak CS yn defnyddio mynegeion eilaidd, sydd bellach angen backend LevelDB. Gall rhannau eraill o system Riak CS elwa o ddefnyddio backend Bticask. Mae defnyddio backend Aml sampl wedi'i gynnwys yn Riak CS i fanteisio ar y ddau gefn hyn i gyflawni'r cyfuniad gorau o berfformiad ac ymarferoldeb. Mae'r adran nesaf yn disgrifio sut i ffurfweddu Riak yn gywir i ddefnyddio'r Aml-gefn hwn.

Cefn yw'r hyn y bydd Riak yn ei ddefnyddio i arbed data. Mae gan Riak KV sawl backend yn ei arsenal: Bitcask, LevelDB, Memory ac Aml.

Yn ogystal, mae'r system cyfrifo storio yn defnyddio Riak MapReduse i agregu ffeiliau yn fwcedi. Mae hyn yn golygu bod yn rhaid i chi ddweud wrth bob nod Riak ble i chwilio am ffeiliau Riak CS parod cyn storio cyfrifiadurol.

Rhaid newid sawl paramedr arall i ffurfweddu'r nod Riak fel rhan o system Riak CS, megis y cyfeiriad IP a'r cyfeiriad IP a'r porthladd ar gyfer negeseuon trwy Protocol Buffers. Gellir newid gosodiadau eraill os oes angen. Mae'r adrannau canlynol yn disgrifio sut i ffurfweddu nod Riak i weithredu fel rhan o system Riak CS.

Sefydlu backend Riak

Yn gyntaf, mae'r ffeiliau cyfluniad riak.conf neu advanced.config/app.config yn cael eu golygu. Gellir lleoli'r ffeiliau hyn mewn cyfeirlyfrau /etc/riak neu /opt/riak/etc. Yn ddiofyn, mae Riak yn defnyddio'r backend Bitcask. Y peth cyntaf y mae angen i ni ei wneud yw newid y ffeil ffurfweddu trwy ddileu'r llinell ganlynol:

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

Nesaf, mae angen inni ddangos yr angen am fodiwlau RiakCS ar gyfer Riak a chyfarwyddo Riak i ddefnyddio'r backend ffurfweddu sy'n darparu Riak CS. Mae angen i ni ddefnyddio'r ffeil advanced.config neu app.config ar gyfer hyn ac ychwanegu'r opsiynau canlynol:

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

Mae'n bwysig iawn nodi y bydd llawer o'r gwerthoedd hyn yn dibynnu ar amrywiadau cyfeiriadur sy'n benodol i'ch system weithredu, felly dilynwch y cyfarwyddiadau yn unol â hynny. Er enghraifft, mae'r opsiwn add_paths yn tybio bod Riak CS wedi'i osod yn /usr/lib/riak-cs, tra bod yr opsiynau data_root yn tybio bod Riak wedi'i osod yn /var/lib. (Sylwer: Yn fy achos i, roedd yn add_paths - /usr/lib64/riak-cs/).

Mae'r cyfluniad hwn yn tybio bod Riak CS wedi'i osod ar yr un peiriant â Riak. Os na, yna mae angen copïo'r pecyn i westeiwr ar wahân.

Sefydlu creu brodyr a chwiorydd

Nawr, mae angen i ni osod y paramedr allow_mult yn wir. Gallwn ychwanegu llinell yn y ffeil ffurfweddu riak.conf, neu adran riak_core yn advanced.config neu 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
]}

Bydd hyn yn caniatáu i Riak greu brodyr a chwiorydd sy'n angenrheidiol i Riak CS weithredu. Os ydych chi'n cysylltu â Riak CS gan ddefnyddio'r llyfrgell cleientiaid, peidiwch â phoeni: ni fydd yn rhaid i chi ddatrys gwrthdaro, gan fod holl weithrediadau Riak CS yn gwbl gyson fel y'i diffinnir.

Brawd neu chwaer yn ffordd o storio gwrthrychau lluosog mewn un cywair fel bod gan y gwrthrych werthoedd gwahanol ar nodau gwahanol.

Nodyn: allow_mult
Bydd unrhyw nod Riak sydd hefyd yn cefnogi Riak CS wedi set allow_mult i wir bob amser. Bydd Riak CS yn ailosod y lansiad os yw'r gwerth yn ffug.

Gosod yr Enw Gwesteiwr a'r Cyfeiriad IP

Mae gan bob nod Riak enw, y gellir ei nodi yn yr opsiwn enw nodename yn riak.conf. Os ydych chi'n defnyddio'r ffeil ffurfweddu app.config, mae angen i chi greu ffeil o'r enw vm.args yn yr un cyfeiriadur ag app.config a nodi'r enw gwesteiwr gan ddefnyddio'r -name baner. Rydym yn argymell nodi enwau nodau yn y fformat @. Ac felly os oes gennych dri nod yn rhedeg ar un gwesteiwr 100.0.0.1, gallwch eu ffonio [e-bost wedi'i warchod], [e-bost wedi'i warchod]Ac [e-bost wedi'i warchod] neu gallwch roi enwau mwy penodol, megis [e-bost wedi'i warchod], [e-bost wedi'i warchod] ac yn y blaen. Mae'r enghraifft isod yn dangos newid enw'r gwesteiwr i [e-bost wedi'i warchod], a fydd yn rhedeg ar localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Rhaid i chi enwi pob nod cyn eu cychwyn ac ymuno â'r clwstwr.

Prawf gosod

Nawr bod yr holl osodiadau nod angenrheidiol wedi'u cwblhau, gallwn geisio lansio Riak:

SHELL

 riak start 

Nodyn Yr ateb yn fy achos i:

Storio Cwmwl Riak. Rhan 1. Sefydlu'r Riak KV

Yma mae angen i chi aros ychydig. Yna gallwch chi ddechrau profi'r nod rhedeg.

SHELL

 riak ping

Os mai pong yw'r ymateb, yna mae Riak yn rhedeg; os mai'r ymateb yw nad yw Node yn ymateb i pings, yna aeth rhywbeth o'i le.

Nodyn Yr ateb yn fy achos i:

Storio Cwmwl Riak. Rhan 1. Sefydlu'r Riak KV

Os na ddechreuodd y nod yn gywir, edrychwch ar y log erlang.log.1 yng nghyfeiriadur /log y nod os gellir adnabod y broblem. Un o'r gwallau mwyaf cyffredin yw invalid_storage_backend. Sy'n nodi bod y llwybr i lyfrgell Riak CS yn advanced.config neu yn app.config yn anghywir (neu nid yw Riak CS wedi'i osod ar y gweinydd). Er gwaethaf y gwall hwn, gwnewch yn siŵr nad ydych wedi newid o riak_cs_kv_multi_backend i riak_kv_multi_backend.

Ffurfweddu Riak i ddefnyddio byfferau protocol

Mae gosodiadau byffer protocol Riak wedi'u lleoli yn riak.conf neu yn yr adran riak_api yn y ffeiliau advanced.config neu app.config, sydd wedi'u lleoli yn y /etc/riak/ directory. Yn ddiofyn, mae gan y gwesteiwr gyfeiriad IP o 127.0.0.1 a phorthladd 8087. Bydd angen i chi newid y rhain os ydych chi'n bwriadu rhedeg Riak a Riak CS mewn amgylchedd nad yw'n lleol. Amnewid 127.0.0.1 gyda chyfeiriad IP gwesteiwr Riak a phorthladd 8087 gydag un addas.

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

Nodyn:Rhaid i werth y paramedr listener.protobuf.internal yn y ffeil riak.conf (neu werth y paramedr pb yn advanced.conf/app.config) gydweddu â'r gwerthoedd ar gyfer riak_host yn Riak CS riak-cs.config a Stanchion stanchion.conf (neu riak_host yn y drefn honno mewn ffeiliau .config/app.config uwch).

Nodyn am rif y porthladd
Efallai y bydd angen rhif porthladd gwahanol os yw'r porthladd yn gwrthdaro â phorthladdoedd a ddefnyddir gan raglen arall neu os ydych yn defnyddio cydbwysydd llwyth neu weinydd dirprwy.

Argymhellir hefyd bod defnyddwyr yn sicrhau bod maint protobuf.backlog Riak (neu mewn ffeiliau advanced.config/app.config dyma pb_backlog) yn hafal i neu'n fwy na'r pool.request.size a nodir ar gyfer Riak CS yn riak-cs. config (neu request_pool_size mewn ffeiliau advanced.config/ app.conf).

Os yw gwerth pool.request.size yn Riak CS wedi'i newid, yna mae'n rhaid diweddaru gwerth protobuf.backlog yn Riak hefyd.

Gosodiadau Riak eraill

Mae'r ffeiliau riak.conf ac advanced.config yn cynnwys gosodiadau eraill sy'n ffurfweddu creu ffeiliau log a lle maent yn cael eu cadw. Mae gan y gosodiadau hyn werthoedd rhagosodedig a dylent weithio yn y rhan fwyaf o achosion. Am ragor o wybodaeth, rydym yn argymell darllen ein dogfennaeth am ffeiliau ffurfweddu.

Sefydlu cyfeiriad IP ar gyfer Riak

Wrth sefydlu cyfeiriad IP ar gyfer Riak, rhaid i chi fod yn siŵr bod gan nodau Riak gyfeiriad IP unigryw, p'un a ydych chi'n gweithio gydag un nod yn unig neu'n ychwanegu mwy o nodau i'r system. Mae cyfeiriad IP Riak wedi'i gynnwys yn riak.conf neu - os ydych chi'n defnyddio'r ffeil app.config - yn y ffeil ffurfweddu vm.args, sydd wedi'i leoli yno yn y cyfeiriadur /etc/riak (neu /opt/riak/etc/ ar systemau gweithredu eraill).

I ddechrau, mae'r llinell sy'n cynnwys cyfeiriad IP Riak yn pwyntio at y localhost yn y lleoliad hwn:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Amnewid 127.0.0.1 gyda'ch cyfeiriad IP dewisol neu enw gwesteiwr y nod Riak.

Perfformiad a Gosodiadau Lled Band

Am resymau perfformiad, rydym yn argymell yn gryf ychwanegu gwerthoedd at y ffeiliau cyfluniad Riak riak.conf neu vm.args, a leolir yn y cyfeiriadur /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

Analluogi JavaScript MapReduce

Argymhellir peidio â defnyddio JavaScript MapReduce etifeddol gydag unrhyw fersiwn o Riak CS. Am resymau perfformiad, dylech analluogi'r peiriant rhithwir sy'n perfformio gweithrediadau JavaScript MapReduce trwy osod yn y ffeil ffurfweddu riak.conf, neu yn yr adran riak_kv o advanced.conf neu 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
]}

Nesaf mae angen i ni ffurfweddu'r cydrannau sy'n weddill o'r system Riak CS.

Llawlyfr gwreiddiol.

Ffynhonnell: hab.com

Ychwanegu sylw