Riak Cloud Storage. Parti 1: Twaqqif ta' Riak KV

Riak CS (Ħażna fis-Sħab) – softwer faċli biex jintuża għall-organizzazzjoni tal-ħażna tal-oġġetti, li jaħdem fuq Riak KV. Riak (KV) hija database ta' valur ewlieni NoSQL distribwit. Riak CS huwa ddisinjat biex jipprovdi sempliċità, disponibbiltà, distribuzzjoni ta’ ħażna ta’ sħab ta’ kwalunkwe skala, u jista’ jintuża biex jinbnew arkitetturi ta’ sħab – kemm pubbliċi kif ukoll privati ​​– jew bħala ħażna ta’ infrastruttura għal applikazzjonijiet u servizzi mgħobbija ħafna. Riak CS API hija kompatibbli ma 'Amazon S3 u tappoġġja l-abbiltà li tirċievi rapporti dwar diversi sitwazzjonijiet.

Riak Cloud Storage. Parti 1: Twaqqif ta' Riak KV
Dan l-artikolu huwa traduzzjoni b'xejn tal-manwal uffiċjali għall-verżjoni 2.1.1 tas-sistema Riak CS

Fis-sistema tal-ħażna Riak CS, tliet komponenti jaħdmu flimkien ma 'xulxin, li jfisser li kull komponent għandu jkun ikkonfigurat biex jaħdem mal-komponenti l-oħra:

  • Riak (KV) – sistema ta' database li taġixxi bħala sistema finali.
  • Riak CS - Saff ta 'ħażna ta' sħab fuq Riak li jipprovdi kapaċitajiet ta 'ħażna u API, jaħżen fajls u metadejta f'Riak, u mbagħad iqassamhom lill-utenti finali.
  • Stanchion - Jiġġestixxi mistoqsijiet li jinvolvu entitajiet uniċi globalment bħal bramel u utenti fil-każ ta 'Riak. Per eżempju, il-ħolqien ta 'utenti, il-ħolqien jew it-tħassir ta' bramel.

Barra minn hekk, tista 'wkoll tikkonfigura l-klijent S3 għall-użu fil-messaġġi mas-sistema Riak CS.

Għandek tippjana li jkollok nodu Riak wieħed għal kull nodu Riak CS fis-sistema tiegħek. Nodi Riak u Riak CS jistgħu jitmexxew fuq magni fiżiċi differenti, iżda fil-biċċa l-kbira tal-każijiet huwa preferibbli li jitħaddem nodu wieħed Riak u nodu wieħed Riak CS fuq l-istess magna fiżika. Jekk wieħed jassumi magna fiżika waħda għandha qawwa biżżejjed biex tissodisfa l-bżonnijiet kemm tan-nodi Riak u Riak CS, tipikament tara prestazzjoni aħjar minħabba latenza mnaqqsa tan-netwerk.

Jekk is-sistema tiegħek tikkonsisti f'diversi nodi, il-konfigurazzjoni hija primarjament dwar it-twaqqif ta' komunikazzjoni bejn il-komponenti. Settings oħra, bħal fejn se jinħażnu r-log files, għandhom valuri awtomatiċi u jeħtieġ li jinbidlu biss jekk trid tuża valuri mhux standard.

Twaqqif ta' komponenti tas-sistema. Twaqqif ta' Riak KV għal CS

Peress li Riak CS hija applikazzjoni mibnija fuq Riak, huwa importanti ħafna li tagħti attenzjoni lill-konfigurazzjoni Riak tiegħek meta tħaddem Riak CS. Dan id-dokument huwa kemm gwida ta' konfigurazzjoni Riak kif ukoll dokument ta' referenza li jiddeskrivi parametri ta' konfigurazzjoni importanti.

Qabel is-setup, kun żgur li Riak KV u Riak CS huma installati fuq kull node fil-cluster tiegħek. Stanchion, min-naħa l-oħra, għandu jiġi installat biss fuq nodu wieħed fil-cluster kollu.

Riak Cloud Storage. Parti 1: Twaqqif ta' Riak KV

Backends għal Riak CS

Il-backend default użat minn Riak huwa Bitcask, iżda l-pakkett Riak CS jinkludi backend speċjali li għandu jintuża mill-cluster Riak li huwa parti mis-sistema Riak CS. Il-verżjoni regolari għandha l-backend Multi standard li jiġi ma 'Riak.

L-istess bramel Riak użati ġewwa Riak CS jużaw indiċi sekondarji, li issa jeħtieġu backend LevelDB. Partijiet oħra tas-sistema Riak CS jistgħu jibbenefikaw mill-użu tal-backend Bticask. L-użu ta 'kampjun Multi backend huwa inkluż f'Riak CS biex jieħu vantaġġ minn dawn iż-żewġ backends biex tinkiseb l-aħjar kombinazzjoni ta' prestazzjoni u funzjonalità. It-taqsima li jmiss tiddeskrivi kif tikkonfigura sew Riak biex tuża dan il-Multi-backend.

Backend huwa dak li se juża Riak biex jiffranka d-data. Riak KV għandu diversi backends fl-armament tiegħu: Bitcask, LevelDB, Memory u Multi.

Barra minn hekk, is-sistema tal-kalkolu tal-ħażna tuża Riak MapReduse biex taggrega l-fajls f'bramel. Dan ifisser li trid tgħid lin-nodi kollha Riak fejn għandek tfittex fajls Riak CS ippreparati qabel ma tikkomputa l-ħażna.

Diversi parametri oħra għandhom jinbidlu biex jiġi kkonfigurat in-node Riak bħala parti mis-sistema Riak CS, bħall-indirizz IP u l-indirizz IP u l-port għall-messaġġi permezz tal-Buffers tal-Protokoll. Settings oħra jistgħu jinbidlu jekk ikun meħtieġ. Is-sezzjonijiet li ġejjin jiddeskrivu kif tikkonfigura node Riak biex jopera bħala parti mis-sistema Riak CS.

Twaqqif ta 'backend ta' Riak

L-ewwel, il-fajls tal-konfigurazzjoni riak.conf jew advanced.config/app.config huma editjati. Dawn il-fajls jistgħu jinstabu fid-direttorji /etc/riak jew /opt/riak/etc. B'mod awtomatiku, Riak juża l-backend Bitcask. L-ewwel ħaġa li rridu nagħmlu hija li nibdlu l-fajl tal-konfigurazzjoni billi tneħħi l-linja li ġejja:

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

Sussegwentement, irridu nuru l-ħtieġa għal moduli RiakCS għal Riak u nagħtu struzzjonijiet lil Riak biex juża l-backend konfigurat li jipprovdi Riak CS. Għandna bżonn nużaw il-fajl advanced.config jew app.config għal dan u nżidu l-għażliet li ġejjin:

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

Huwa importanti ħafna li wieħed jinnota li ħafna minn dawn il-valuri jiddependu fuq varjazzjonijiet tad-direttorju speċifiċi għas-sistema operattiva tiegħek, għalhekk segwi l-istruzzjonijiet kif xieraq. Pereżempju, l-għażla add_paths tassumi li Riak CS huwa installat f'/usr/lib/riak-cs, filwaqt li l-għażliet data_root jassumu li Riak huwa installat f'/var/lib. (Nota: Fil-każ tiegħi kien add_paths - /usr/lib64/riak-cs/).

Din il-konfigurazzjoni tassumi li Riak CS huwa installat fuq l-istess magna bħal Riak. Jekk le, allura l-pakkett jeħtieġ li jiġi kkupjat f'host separat.

It-twaqqif tal-ħolqien tal-aħwa

Issa, irridu nissettjaw il-parametru allow_mult għal veru. Nistgħu nżidu linja fil-fajl tal-konfigurazzjoni riak.conf, jew sezzjoni riak_core f' advanced.config jew app.config.

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

Dan se jippermetti lil Riak joħloq aħwa li huma meħtieġa biex Riak CS jiffunzjona. Jekk tikkonnettja ma' Riak CS billi tuża l-librerija tal-klijenti, tinkwetax: ma jkollokx għalfejn issolvi l-kunflitti, peress li l-operazzjonijiet kollha ta 'Riak CS huma strettament konsistenti kif definiti.

Aħwa huwa mod ta 'ħażna ta' oġġetti multipli f'ċavetta waħda sabiex l-oġġett ikollu valuri differenti fuq nodi differenti.

Nota: allow_mult
Kwalunkwe nodu Riak li jappoġġja wkoll Riak CS se jkollu allow_mult issettjat għal veru f'kull ħin. Riak CS reset it-tnedija jekk il-valur ikun falz.

L-issettjar tal-Hostname u l-indirizz IP

Kull node Riak għandu isem, li jista 'jiġi speċifikat f'riak.conf fl-għażla nodename. Jekk qed tuża l-fajl tal-konfigurazzjoni app.config, trid toħloq fajl imsejjaħ vm.args fl-istess direttorju bħal app.config u tispeċifika l-isem tal-host billi tuża l-bandiera -name. Nirrakkomandaw li tispeċifika l-ismijiet tan-nodi fil-format @. U għalhekk jekk għandek tliet nodi li jaħdmu fuq ospitanti wieħed 100.0.0.1, tista 'tsejjaħhom [protett bl-email], [protett bl-email]U [protett bl-email] jew tista' tagħti ismijiet aktar speċifiċi, bħal [protett bl-email], [protett bl-email] u l-bqija. L-eżempju hawn taħt juri l-bidla tal-isem tal-host għal [protett bl-email], li se taħdem fuq localhost.

RAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Trid issemmi n-nodi kollha qabel ma tibdahom u tingħaqad mal-cluster.

Setup test

Issa li tlestew is-settings kollha meħtieġa tan-nodi, nistgħu nippruvaw inniedu Riak:

QOXRA

 riak start 

Nota It-tweġiba fil-każ tiegħi:

Riak Cloud Storage. Parti 1: Twaqqif ta' Riak KV

Hawnhekk trid tistenna ftit. Imbagħad tista 'tibda tittestja n-node running.

QOXRA

 riak ping

Jekk ir-rispons huwa pong, allura Riak qed jaħdem; jekk ir-rispons huwa Node li ma jirrispondix għal pings, allura xi ħaġa marret ħażin.

Nota It-tweġiba fil-każ tiegħi:

Riak Cloud Storage. Parti 1: Twaqqif ta' Riak KV

Jekk in-node ma bediex b'mod korrett, ħares lejn il-log erlang.log.1 fid-direttorju /log tan-node jekk il-problema tista 'tiġi identifikata. Wieħed mill-iżbalji l-aktar komuni huwa invalid_storage_backend. Li jindika li t-triq lejn il-librerija Riak CS f'advanced.config jew f'app.config mhix korretta (jew Riak CS mhix installata fuq is-server). Minkejja dan l-iżball, kun żgur li ma bdiltx minn riak_cs_kv_multi_backend għal riak_kv_multi_backend.

Konfigurazzjoni ta' Riak biex juża buffers tal-protokoll

Is-settings tal-buffer tal-protokoll Riak jinsabu f'riak.conf jew fit-taqsima riak_api fil-fajls advanced.config jew app.config, li jinsabu fid-direttorju /etc/riak/. B'mod awtomatiku, l-ospitant għandu indirizz IP ta '127.0.0.1 u port 8087. Ikollok bżonn tibdel dawn jekk qed tippjana li tħaddem Riak u Riak CS f'ambjent mhux lokali. Ibdel 127.0.0.1 bl-indirizz IP ospitanti Riak u l-port 8087 b'wieħed adattat.

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

Nota:Il-valur tal-parametru listener.protobuf.internal fil-fajl riak.conf (jew il-valur tal-parametru pb f' advanced.conf/app.config) għandu jaqbel mal-valuri għal riak_host f'Riak CS riak-cs.config u Stanchion stanchion.conf (jew riak_host rispettivament f'fajls avvanzati .config/app.config).

Nota dwar in-numru tal-port
Jista' jkun meħtieġ numru ta' port differenti jekk il-port ikun f'kunflitt ma' portijiet użati minn applikazzjoni oħra jew jekk qed tuża load balancer jew proxy server.

Huwa rakkomandat ukoll li l-utenti jiżguraw li d-daqs Riak protobuf.backlog (jew fil-fajls advanced.config/app.config dan huwa pb_backlog) huwa ugwali għal jew akbar mill-pool.request.size speċifikat għal Riak CS f'riak-cs. config (jew request_pool_size fil-fajls advanced.config/ app.conf).

Jekk il-valur ta 'pool.request.size f'Riak CS inbidel, allura l-valur ta' protobuf.backlog għandu wkoll jiġi aġġornat f'Riak.

Settings oħra ta' Riak

Il-fajls riak.conf u advanced.config jinkludu settings oħra li jikkonfiguraw il-ħolqien ta 'log files u fejn jiġu ssejvjati. Dawn is-settings għandhom valuri awtomatiċi u għandhom jaħdmu f'ħafna każijiet. Għal aktar informazzjoni, nirrakkomandaw li taqra d-dokumentazzjoni tagħna dwar il-fajls tal-konfigurazzjoni.

Twaqqif ta' indirizz IP għal Riak

Meta twaqqaf indirizz IP għal Riak, trid tkun ċert li n-nodi Riak għandhom indirizz IP uniku, kemm jekk tkun qed taħdem b'nodu wieħed biss jew jekk iżżid aktar nodi mas-sistema. L-indirizz IP Riak jinsab f'riak.conf jew - jekk qed tuża l-fajl app.config - fil-fajl tal-konfigurazzjoni vm.args, li jinsab hemm fid-direttorju /etc/riak (jew /opt/riak/etc/ fuq sistemi operattivi oħra).

Inizjalment, il-linja li fiha l-indirizz IP Riak tipponta lejn il-localhost f'dan il-post:

RAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Ibdel 127.0.0.1 bl-indirizz IP preferut tiegħek jew l-isem tal-host tan-node Riak.

Settings tal-Prestazzjoni u tal-Bandwidth

Għal raġunijiet ta' prestazzjoni, nirrakkomandaw bil-qawwa li żżid il-valuri mal-fajls ta' konfigurazzjoni Riak riak.conf jew vm.args, li jinsabu fid-direttorju /etc/riak/ jew /opt/riak/etc.

RAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

Jiddiżattiva JavaScript MapReduce

Huwa rakkomandat li ma tużax JavaScript MapReduce tal-wirt ma' kwalunkwe verżjoni ta' Riak CS. Għal raġunijiet ta' prestazzjoni, għandek tiddiżattiva l-magna virtwali li twettaq operazzjonijiet JavaScript MapReduce billi tissettja fil-fajl ta' konfigurazzjoni riak.conf, jew fit-taqsima riak_kv ta' advanced.conf jew app.config:

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

Sussegwentement irridu nikkonfiguraw il-komponenti li fadal tas-sistema Riak CS.

Manwal oriġinali.

Sors: www.habr.com

Żid kumment