Ruajtja në renë kompjuterike të Riak. Pjesa 1: Vendosja e Riak KV

Riak CS (Storage në renë kompjuterike) – Softuer i lehtë për t’u përdorur për organizimin e ruajtjes së objekteve, që funksionon në krye të Riak KV. Riak (KV) është një bazë të dhënash me vlera kyçe NoSQL të shpërndara. Riak CS është krijuar për të ofruar thjeshtësi, disponueshmëri, shpërndarje të ruajtjes së cloud të çdo shkalle dhe mund të përdoret për të ndërtuar arkitekturë cloud - publike dhe private - ose si ruajtje infrastrukturore për aplikacione dhe shërbime të ngarkuara shumë. Riak CS API është i pajtueshëm me Amazon S3 dhe mbështet aftësinë për të marrë raporte për situata të ndryshme.

Ruajtja në renë kompjuterike të Riak. Pjesa 1: Vendosja e Riak KV
Ky artikull është një përkthim falas i manualit zyrtar për versionin 2.1.1 të sistemit Riak CS

Në sistemin e ruajtjes Riak CS, tre komponentë punojnë së bashku me njëri-tjetrin, që do të thotë se secili komponent duhet të konfigurohet për të punuar me komponentët e tjerë:

  • Riak (KV) – një sistem bazë të dhënash që vepron si një sistem përfundimtar.
  • Riak CS - Një shtresë ruajtjeje në renë kompjuterike në krye të Riak që ofron aftësi ruajtjeje dhe API, ruan skedarë dhe meta të dhëna në Riak dhe më pas i shpërndan ato tek përdoruesit fundorë.
  • Stanchion - Menaxhon pyetjet që përfshijnë entitete unike globalisht të tilla si kova dhe përdoruesit në shembullin Riak. Për shembull, krijimi i përdoruesve, krijimi ose fshirja e kovave.

Për më tepër, mund të konfiguroni gjithashtu klientin S3 për përdorim në mesazhe me sistemin Riak CS.

Ju duhet të planifikoni të keni një nyje Riak për çdo nyje Riak CS në sistemin tuaj. Nyjet Riak dhe Riak CS mund të ekzekutohen në makina të ndryshme fizike, por në shumicën e rasteve preferohet të ekzekutohet një nyje Riak dhe një nyje Riak CS në të njëjtën makinë fizike. Duke supozuar se një makinë fizike ka fuqi të mjaftueshme për të kënaqur nevojat e nyjeve Riak dhe Riak CS, në përgjithësi do të shihni performancë më të mirë për shkak të vonesës së reduktuar të rrjetit.

Nëse sistemi juaj përbëhet nga disa nyje, konfigurimi ka të bëjë kryesisht me vendosjen e komunikimit ndërmjet komponentëve. Cilësimet e tjera, si ku do të ruhen skedarët e regjistrit, kanë vlera të paracaktuara dhe duhet të ndryshohen vetëm nëse dëshironi të përdorni vlera jo standarde.

Vendosja e komponentëve të sistemit. Vendosja e Riak KV për CS

Meqenëse Riak CS është një aplikacion i ndërtuar në krye të Riak, është shumë e rëndësishme t'i kushtoni vëmendje konfigurimit tuaj të Riak kur përdorni Riak CS. Ky dokument është njëkohësisht një udhëzues konfigurimi i Riak dhe një dokument referimi që përshkruan parametra të rëndësishëm të konfigurimit.

Përpara konfigurimit, sigurohuni që Riak KV dhe Riak CS të jenë instaluar në çdo nyje të grupit tuaj. Stanchion, nga ana tjetër, duhet të instalohet vetëm në një nyje në të gjithë grupimin.

Ruajtja në renë kompjuterike të Riak. Pjesa 1: Vendosja e Riak KV

Backends për Riak CS

Backend-i i parazgjedhur i përdorur nga Riak është Bitcask, por paketa Riak CS përfshin një backend të veçantë që duhet të përdoret nga grupi Riak që është pjesë e sistemit Riak CS. Versioni i rregullt ka bazën standarde Multi që vjen me Riak.

Të njëjtat kova Riak të përdorura brenda Riak CS përdorin indekse dytësore, të cilat tani kërkojnë një backend LevelDB. Pjesë të tjera të sistemit Riak CS mund të përfitojnë nga përdorimi i backend-it Bticask. Përdorimi i një mostre Multi backend përfshihet në Riak CS për të përfituar nga të dyja këto backend për të arritur kombinimin më të mirë të performancës dhe funksionalitetit. Seksioni tjetër përshkruan se si të konfiguroni siç duhet Riak për të përdorur këtë Multi-backend.

Backend është ajo që Riak do të përdorë për të ruajtur të dhënat. Riak KV ka disa mbështetëse në arsenalin e tij: Bitcask, LevelDB, Memory dhe Multi.

Për më tepër, sistemi i llogaritjes së ruajtjes përdor Riak MapReduse për të grumbulluar skedarë në kova. Kjo do të thotë që ju duhet t'u tregoni të gjitha nyjeve Riak se ku të kërkojnë skedarët e përgatitur të Riak CS përpara se të llogaritni ruajtjen e kompjuterit.

Disa parametra të tjerë duhet të ndryshohen për të konfiguruar nyjen Riak si pjesë e sistemit Riak CS, të tilla si adresa IP dhe adresa IP dhe porta për mesazhe përmes Protokollit Buffer. Cilësimet e tjera mund të ndryshohen nëse është e nevojshme. Seksionet e mëposhtme përshkruajnë se si të konfiguroni një nyje Riak për të funksionuar si pjesë e sistemit Riak CS.

Konfigurimi i backend-it të Riak

Së pari, redaktohen skedarët e konfigurimit riak.conf ose advanced.config/app.config. Këta skedarë mund të vendosen në drejtoritë /etc/riak ose /opt/riak/etc. Si parazgjedhje, Riak përdor backend-in Bitcask. Gjëja e parë që duhet të bëjmë është të ndryshojmë skedarin e konfigurimit duke hequr rreshtin e mëposhtëm:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

I AVANCUAR.KONFIGUAR

{riak_kv,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

{riak_kv, 
  [ %% Delete this line:
    {storage_backend, riak_kv_bitcask_backend},
]}

Më pas, ne duhet të demonstrojmë nevojën për modulet RiakCS për Riak dhe të udhëzojmë Riak të përdorë backend-in e konfiguruar që ofron Riak CS. Ne duhet të përdorim skedarin advanced.config ose app.config për këtë dhe të shtojmë opsionet e mëposhtme:

I AVANCUAR.KONFIGUAR

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

Është shumë e rëndësishme të theksohet se shumë nga këto vlera do të varen nga variacionet e direktorive specifike për sistemin tuaj operativ, prandaj ndiqni udhëzimet në përputhje me rrethanat. Për shembull, opsioni add_paths supozon se Riak CS është i instaluar në /usr/lib/riak-cs, ndërsa opsionet data_root supozojnë se Riak është i instaluar në /var/lib. (Shënim: Në rastin tim ishte add_paths - /usr/lib64/riak-cs/).

Ky konfigurim supozon se Riak CS është i instaluar në të njëjtën makinë si Riak. Nëse jo, atëherë paketa duhet të kopjohet në një host të veçantë.

Vendosja e krijimit të vëllezërve

Tani, ne duhet të vendosim parametrin allow_mult në true. Mund të shtojmë një rresht në skedarin e konfigurimit riak.conf ose një seksion riak_core në advanced.config ose app.config.

RIAK.CONF

buckets.default.allow_mult = true

I AVANCUAR.KONFIGUAR

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

Kjo do të lejojë Riak të krijojë vëllezër e motra që janë të nevojshme për funksionimin e Riak CS. Nëse lidheni me Riak CS duke përdorur bibliotekën e klientit, mos u shqetësoni: nuk do t'ju duhet të zgjidhni konfliktet, pasi të gjitha operacionet e Riak CS janë rreptësisht të qëndrueshme siç përcaktohet.

Vëlla e motra është një mënyrë për të ruajtur objekte të shumta në një çelës në mënyrë që objekti të ketë vlera të ndryshme në nyje të ndryshme.

Shënim: allow_mult
Çdo nyje Riak që gjithashtu mbështet Riak CS do ta ketë të drejtë_mult të caktuar në çdo kohë. Riak CS do të rivendosë nisjen nëse vlera është false.

Vendosja e emrit të hostit dhe adresës IP

Çdo nyje Riak ka një emër, i cili mund të specifikohet në opsionin nodename në riak.conf. Nëse jeni duke përdorur skedarin e konfigurimit app.config, duhet të krijoni një skedar të quajtur vm.args në të njëjtën direktori si app.config dhe të specifikoni emrin e hostit duke përdorur flamurin -name. Ne rekomandojmë të specifikoni emrat e nyjeve në formatin @. Dhe kështu, nëse keni tre nyje që funksionojnë në një host 100.0.0.1, mund t'i telefononi ato [email mbrojtur], [email mbrojtur]Dhe [email mbrojtur] ose mund të jepni emra më specifikë, si p.sh [email mbrojtur], [email mbrojtur] e kështu me radhë. Shembulli i mëposhtëm tregon ndryshimin e emrit të hostit në [email mbrojtur], i cili do të funksionojë në localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Ju duhet të emërtoni të gjitha nyjet përpara se t'i nisni ato dhe t'i bashkoheni grupit.

Testi i konfigurimit

Tani që të gjitha cilësimet e nevojshme të nyjës janë përfunduar, mund të përpiqemi të nisim Riak:

GUASKË

 riak start 

shënim Përgjigja në rastin tim:

Ruajtja në renë kompjuterike të Riak. Pjesa 1: Vendosja e Riak KV

Këtu duhet të prisni pak. Pastaj mund të filloni të testoni nyjen e funksionimit.

GUASKË

 riak ping

Nëse përgjigja është pong, atëherë Riak është duke vrapuar; nëse përgjigja është Node që nuk i përgjigjet ping, atëherë diçka shkoi keq.

shënim Përgjigja në rastin tim:

Ruajtja në renë kompjuterike të Riak. Pjesa 1: Vendosja e Riak KV

Nëse nyja nuk ka filluar si duhet, shikoni regjistrin erlang.log.1 në drejtorinë /log të nyjes nëse problemi mund të identifikohet. Një nga gabimet më të zakonshme është invalid_storage_backend. Që tregon se shtegu për në bibliotekën Riak CS në advanced.config ose në app.config është i pasaktë (ose Riak CS nuk është i instaluar në server). Pavarësisht këtij gabimi, sigurohuni që të mos keni ndryshuar nga riak_cs_kv_multi_backend në riak_kv_multi_backend.

Konfigurimi i Riak për të përdorur buferët e protokollit

Cilësimet e tamponit të protokollit Riak janë të vendosura në riak.conf ose në seksionin riak_api në skedarët advanced.config ose app.config, të cilat ndodhen në drejtorinë /etc/riak/. Si parazgjedhje, hosti ka një adresë IP prej 127.0.0.1 dhe portin 8087. Ju duhet t'i ndryshoni këto nëse planifikoni të ekzekutoni Riak dhe Riak CS në një mjedis jo lokal. Zëvendësoni 127.0.0.1 me adresën IP të hostit të Riak dhe portin 8087 me një të përshtatshme.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

I AVANTUAR.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
]}

Shenim:Vlera e parametrit listener.protobuf.internal në skedarin riak.conf (ose vlera e parametrit pb në advanced.conf/app.config) duhet të përputhet me vlerat për riak_host në Riak CS riak-cs.config dhe Stanchion stanchion.conf (ose riak_host përkatësisht në skedarët e avancuar .config/app.config).

Një shënim për numrin e portit
Mund të kërkohet një numër i ndryshëm porti nëse porti bie ndesh me portet e përdorura nga një aplikacion tjetër ose nëse jeni duke përdorur një balancues ngarkese ose server proxy.

Rekomandohet gjithashtu që përdoruesit të sigurojnë që madhësia e Riak protobuf.backlog (ose në skedarët advanced.config/app.config kjo është pb_backlog) është e barabartë ose më e madhe se pool.request.size e specifikuar për Riak CS në riak-cs. config (ose request_pool_size në skedarët advanced.config/ app.conf).

Nëse vlera e pool.request.size në Riak CS është ndryshuar, atëherë vlera e protobuf.backlog duhet të përditësohet gjithashtu në Riak.

Cilësimet e tjera të Riak

Skedarët riak.conf dhe advanced.config përfshijnë cilësime të tjera që konfigurojnë krijimin e skedarëve të regjistrit dhe vendin ku ruhen ato. Këto cilësime kanë vlera të paracaktuara dhe duhet të funksionojnë në shumicën e rasteve. Për më shumë informacion, ju rekomandojmë të lexoni dokumentacionin tonë në lidhje me skedarët e konfigurimit.

Vendosja e një adrese IP për Riak

Kur vendosni një adresë IP për Riak, duhet të jeni të sigurt që nyjet Riak kanë një adresë IP unike, pavarësisht nëse jeni duke punuar me vetëm një nyje ose duke shtuar më shumë nyje në sistem. Adresa IP e Riak gjendet në riak.conf ose - nëse jeni duke përdorur skedarin app.config - në skedarin e konfigurimit vm.args, i cili ndodhet atje në drejtorinë /etc/riak (ose /opt/riak/etc/ në sisteme të tjera operative).

Fillimisht, linja që përmban adresën IP të Riak tregon lokalin në këtë vendndodhje:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Zëvendësoni 127.0.0.1 me adresën tuaj IP të preferuar ose emrin e hostit të nyjës Riak.

Cilësimet e performancës dhe gjerësisë së brezit

Për arsye të performancës, ne rekomandojmë fuqimisht shtimin e vlerave në skedarët e konfigurimit të Riak riak.conf ose vm.args, të vendosura në drejtorinë /etc/riak/ ose /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

Çaktivizimi i JavaScript MapReduce

Rekomandohet të mos përdorni JavaScript MapReduce të trashëgimisë me asnjë version të Riak CS. Për arsye të performancës, duhet të çaktivizoni makinën virtuale që kryen operacione JavaScript MapReduce duke vendosur në skedarin e konfigurimit riak.conf ose në seksionin riak_kv të advanced.conf ose app.config:

RIAK.CONF

 javascript.map_pool_size = 0
 javascript.reduce_pool_size = 0
 javascript.hook_pool_size = 0 

I AVANCUAR.KONFIGUAR

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

Më pas duhet të konfigurojmë komponentët e mbetur të sistemit Riak CS.

Manuali origjinal.

Burimi: www.habr.com

Shto një koment