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.
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.
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:
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:
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.