Riak Cloud Storage. Pjesa 1. Konfigurimi i Riak KV

Riak CS (Cloud Storage) – njĂ« softuer i lehtĂ« pĂ«r tu pĂ«rdorur pĂ«r organizimin e njĂ« depo objektesh qĂ« punon mbi Riak KV. Riak (KV) Ă«shtĂ« njĂ« bazĂ« tĂ« dhĂ«nash e shpĂ«rndarĂ« NoSQL tip «çelĂ«s-vlerĂ« (key-value)». Riak CS Ă«shtĂ« dizajnuar pĂ«r tĂ« ofruar thjeshtĂ«si, disponueshmĂ«ri dhe shpĂ«rndarje tĂ« magazinimit nĂ« cloud tĂ« çdo shkalle dhe mund tĂ« pĂ«rdoret pĂ«r ndĂ«rtimin e arkitekturave tĂ« cloud-it – si publike ashtu edhe private – ose si njĂ« depo infrastrukturore pĂ«r aplikacione dhe shĂ«rbime me ngarkesĂ« tĂ« lartĂ«. API i Riak CS Ă«shtĂ« i pajtueshĂ«m me Amazon S3 dhe mbĂ«shtet mundĂ«sinĂ« pĂ«r tĂ« marrĂ« raporte mbi situata tĂ« ndryshme.

Riak Cloud Storage. Pjesa 1. Konfigurimi i Riak KV
Ky artikull është një përkthim i lirë i udhëzuesit zyrtar për sistemin Riak CS versioni 2.1.1

Në sistemin e ruajtjes Riak CS, tre komponentë punojnë së bashku, që do të thotë se është e detyrueshme të konfigurohet secili komponent për të punuar me komponentët e tjerë:

  • Riak (KV) – njĂ« sistem bazash tĂ« dhĂ«nash qĂ« funksionon si njĂ« sistem final.
  • Riak CS – njĂ« shtresĂ« e ruajtjes nĂ« cloud mbi Riak, qĂ« ofron ruajtje dhe mundĂ«si API, ruan skedarĂ«t dhe metadatĂ«n nĂ« Riak, dhe i transmeton ato mĂ« pas te pĂ«rdoruesit pĂ«rfundimtarĂ«.
  • Stanchion – menaxhon kĂ«rkesat qĂ« pĂ«rfshijnĂ« entitete globalisht tĂ« veçanta, tĂ« tilla si kovĂ« dhe pĂ«rdorues nĂ« instancĂ«n e Riak. PĂ«r shembull, krijimi i pĂ«rdoruesve, krijimi ose fshirja e kovave.

Për më tepër, ju gjithashtu mund të konfiguroni klientin S3 për ta përdorur në komunikimin me sistemin Riak CS.

Duhet të planifikoni që të keni një nyje Riak për secilën nyje Riak CS në sistemin tuaj. Nyjet Riak dhe Riak CS mund të jenë të ekzekutuara në makina fizike të ndryshme, por në shumicën e rasteve, preferohet që një nyje Riak dhe një nyje Riak CS të ekzekutohen në të njëjtën makinë fizike. Nëse supozojmë se një makinë fizike ka kapacitet të mjaftueshëm për të përmbushur kërkesat e të dy nyjeve Riak dhe Riak CS, zakonisht do të shihni performancë më të mirë për shkak të reduktimit të vonesave rrjetore.

Nëse sistemi juaj përbëhet nga disa nyje, konfigurimi është kryesisht një vendosje e komunikimit midis komponentëve. Cilësime të tjera, si dhe ku do të ruajë skedarët log, kanë vlera të paracaktuara dhe kërkojnë ndryshime vetëm nëse dëshironi të përdorni vlera jo standarde.

Konfigurimi i komponentëve të sistemit. Konfigurimi i Riak KV për CS

Duke qenë se Riak CS është një aplikacion i zhvilluar mbi Riak, është shumë e rëndësishme të kushtoni vëmendje konfigurimit tuaj të Riak, kur Riak CS është në funksion. Ky dokument është njëkohësisht një udhëzues për konfigurimin e Riak, si dhe një dokument referencë për përshkrimin e parametrave të rëndësishëm të konfigurimit.

Para se të konfiguroni, sigurohuni që Riak KV dhe Riak CS janë instaluar në çdo nyje në klustërin tuaj. Stanchion, përkundrazi, duhet të instalohet vetëm në një nyje në të gjithë klustërin.

Riak Cloud Storage. Pjesa 1. Konfigurimi i Riak KV

Backend-et për Riak CS

Për default, backend-i që përdor Riak është Bitcask, por paketa Riak CS përfshin një backend të veçantë që duhet të përdoret nga klustëri Riak, i cili është pjesë e sistemit Riak CS. Në versionin e zakonshëm ka një backend standart Multi që vjen me Riak.

Të njëjtat Riak bakete që përdoren brenda Riak CS, përdorin indekse sekundarë, të cilat tani kërkojnë backend-in LevelDB. Pjesë të tjera të sistemit Riak CS mund të përfitojnë nga përdorimi i backend-it Bitcask. Përdorimi i backend-it model Multi përfshihet në Riak CS, për të përfituar nga avantazhet e të dy backend-eve për të arritur një kombinim optimal të performancës dhe funksionalitetit. Seksioni vijues përshkruan se si të konfiguroni saktësisht Riak për të përdorur këtë backend Multi.

Backend — Ă«shtĂ« ajo qĂ« Riak do tĂ« pĂ«rdorĂ« pĂ«r tĂ« ruajtur tĂ« dhĂ«nat. NĂ« arsenalin e Riak KV ekzistojnĂ« disa backend-e: Bitcask, LevelDB, Memory dhe Multi.

Për më tepër, sistemi i llogaritjes së ruajtjes së të dhënave përdor Riak MapReduce për të përmbledhur skedarët në bakete. Kjo do të thotë se duhet t'i tregoni të gjitha nyjeve Riak se ku të kërkojnë skedarët e përgatitur Riak CS para se të llogarisin ruajtjen.

Disa parametra të tjera duhet të ndryshohen për të konfiguruar një nyje Riak si pjesë e sistemit Riak CS, siç janë adresa IP dhe porta për komunikimin përmes Protocol Buffers. Cilësimet e tjera mund të ndryshohen nëse nevojitet. Seksionet e mëposhtme përshkruajnë se si të konfigurohet nyja Riak për të funksionuar si pjesë e sistemit Riak CS.

Konfigurimi i Riak backend

Së pari, redaktojmë skedarët konfiguruese riak.conf ose advanced.config/app.config. Këta skedarë mund të gjenden në direktorët /etc/riak ose në /opt/riak/etc. Me default, Riak përdor Bitcask backend. Gjëja e parë që na nevojitet është të ndryshojmë skedarin konfiguruese duke fshirë rreshtin e mëposhtëm:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

ADVANCED.CONFIG

{riak_kv,
 [ %% Fshihet ky rresht: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

{riak_kv, 
  [ %% Fshihet ky rresht:
    {storage_backend, riak_kv_bitcask_backend},
]}

Më pas, na nevojitet të tregojmë nevojën për modulat RiakCS për Riak dhe t'i tregojmë Riak se të përdorë backend-in e konfiguruar që siguron Riak CS. Kjo duhet të bëhet në skedarin advanced.config ose app.config duke shtuar opsionet e mëposhtme:

ADVANCED.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Konfigurime të tjera
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<>, 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"}
        ]}
    ]},
    %% Konfigurime të tjera
]}

APP.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Konfigurime të tjera
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<>, 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"}
        ]}
    ]},
    %% Konfigurime të tjera
]}

ËshtĂ« shumĂ« e rĂ«ndĂ«sishme tĂ« theksohet se shumica e kĂ«tyre vlerave do tĂ« varen nga variacione tĂ« direktorive specifike pĂ«r sistemin tuaj operativ, prandaj ndiqni udhĂ«zimet pĂ«rkatĂ«se. PĂ«r shembull, parametrat add_paths supozojnĂ« se Riak CS Ă«shtĂ« instaluar nĂ« /usr/lib/riak-cs, kur parametrat data_root supozojnĂ« se Riak Ă«shtĂ« instaluar nĂ« /var/lib. (ShĂ«nim: NĂ« rastin tim, kjo ishte add_paths — /usr/lib64/riak-cs/).

Kjo konfigurim supozon se Riak CS është instaluar në të njëjtën makinë si Riak. Nëse jo, paketa ka nevojë të kopjohet në një host të veçantë.

Konfigurimi i krijimit të siteve

Tani, na nevojitet të konfiguroni parametrin allow_mult në vlerën true. Mund të shtojmë një rresht në skedarin konfiguruese riak.conf, ose në seksionin riak_core në advanced.config ose app.config.

RIAK.CONF

buckets.default.allow_mult = true

ADVANCED.CONFIG

{riak_core, [
    %% Konfigurime të tjera
    {default_bucket_props, [{allow_mult, true}]},
    %% Konfigurime të tjera
]}

APP.CONFIG

{riak_core, [
    %% Konfigurime të tjera
    {default_bucket_props, [{allow_mult, true}]},
    %% Konfigurime të tjera
]}

Kjo do t'i mundësojë Riak të krijojë subkatalogë të nevojshme për funksionimin e Riak CS. Nëse po lidheni me Riak CS përmes një biblioteke klienti, mos u shqetësoni: nuk do t'ju duhet të zgjidhni konflikte, pasi të gjitha operacionet e Riak CS janë plotësisht të harmonizuara sipas definicionit të saj.

Subkatalogë është një mënyrë për të ruajtur disa objekte nën një çelës në mënyrë që objekti të ketë vlera të ndryshme në node të ndryshme.

Shënim: allow_mult
Çdo node Riak, qĂ« gjithashtu mbĂ«shtet Riak CS, do tĂ« ketĂ« gjithmonĂ« vlerĂ«n true pĂ«r parametrin allow_mult. Riak CS do tĂ« rifillojĂ« ekzekutimin nĂ«se vlera Ă«shtĂ« false.

Konfigurimi i emrit të nodit dhe IP-së

Çdo node Riak ka njĂ« emĂ«r qĂ« mund tĂ« pĂ«rcaktohet nĂ« riak.conf nĂ« opsionin nodename. NĂ«se po pĂ«rdorni skedarin e konfigurimit app.config, duhet tĂ« krijoni njĂ« skedar me emrin vm.args nĂ« tĂ« njĂ«jtĂ«n direktori ku ndodhet app.config, dhe tĂ« pĂ«rcaktoni emrin e nodit duke pĂ«rdorur flag -name. Ne rekomandojmĂ« tĂ« vendosni emra nĂ« formatin @. Pra, nĂ«se keni tre nodet tĂ« aktivizuara nĂ« njĂ« host 100.0.0.1, mund t'i quani riak1@100.0.0.1, riak2@100.0.0.1 dhe riak3@100.0.0.1, ose mund t'u jepni emra mĂ« specifikĂ« si test_cluster1@100.0.0.1, user_data3@100.0.0.1 dhe kĂ«shtu me radhĂ«. Shembulli nĂ« vijim ilustron ndryshimin e emrit tĂ« nodit nĂ« riak1@127.0.0.1, qĂ« do tĂ« funksionojĂ« nĂ« hostin lokal.

RIAK.CONF

 nodename = riak1@127.0.0.1 

VM.ARGS

 -name riak1@127.0.0.1

Duhet të vendosni emra për të gjithë nodet para se t'i aktivizoni dhe t'i përfshini ata në klaster.

Testi i konfigurimit

Tani, kur të gjitha konfigurimet e nevojshme për nodin janë kryer, mund të përpiqemi të aktivizojmë Riak:

SHELL

 riak start 

Shënim. Përgjigja në rastin tim:

Riak Cloud Storage. Pjesa 1. Konfigurimi i Riak KV

Këtu duhet të prisni pak. Pastaj mund të filloni testin e nodit të aktivizuar.

SHELL

 riak ping

Nëse përgjigja është pong, atëherë Riak është aktivizuar: ndryshe, nëse përgjigja është Node not responding to pings, do të thotë se diçka ka shkuar keq.

Shënim. Përgjigja në rastin tim:

Riak Cloud Storage. Pjesa 1. Konfigurimi i Riak KV

Nëse nodi është aktivizuar gabimisht, kontrolloni log-un erlang.log.1 në drejtorinë /log të nodit, nëse problemi mund të identifikohet. Një nga gabimet më të zakonshme është invalid_storage_backend. Kjo tregon se rruga për bibliotekën Riak CS në advanced.config ose në app.config është e gabuara (apo Riak CS nuk është instaluar në server). Pavarësisht kësaj gabimi, sigurohuni që nuk keni ndryshuar nga riak_cs_kv_multi_backend në riak_kv_multi_backend.

Konfiguro Riak për të përdorur bufferat e protokollit (protocol buffers)

Cilësimet e buferave të protokollit Riak ndodhen në riak.conf ose në seksionin riak_api në skedarët advanced.config ose app.config, të cilët janë vendosur në direktorinë /etc/riak/. Në mënyrë të parazgjedhur, hosti ka adresën IP 127.0.0.1 dhe portin 8087. Ju duhet t'i ndryshoni këto, nëse planifikoni të shkoni Riak dhe Riak CS jashtë ambientit lokal. Zëvendësoni adresën IP 127.0.0.1 të nodit Riak dhe portin 8087 me ato të përshtatshme.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

ADVANCED.CONF

{riak_api, [
    %% Cilësime të tjera
    {pb, ["10.0.2.10", 10001]},
    %% Cilësime të tjera
]}

APP.CONFIG

riak_api, [
    %% Cilësime të tjera
    {pb, ["10.0.2.10", 10001]},
    %% Cilësime të tjera
]}

Vërejtje:Vlera e parametrave listener.protobuf.internal në riak.conf (ose vlera e parametrave pb në skedarët advanced.conf / app.config) duhet të përputhen 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 advanced.config/app.config).

Shënim mbi numrin e portit
Mund të jetë e nevojshme një numër tjetër porti nëse porti përplaset me portet e përdorura nga një aplikacion tjetër ose nëse po përdorni një ekuilibruese ngarkese ose një server proxy.

Po ashtu rekomandohet që përdoruesit të sigurohen që madhësia e Riak protobuf.backlog (ose në skedarët advanced.config/app.config kjo është pb_backlog) të jetë e barabartë ose më shumë se madhësia e pool.request.size, e cila është e specifikuar për Riak CS në riak-cs.config (ose request_pool_size në skedarët advanced.config/app.conf).

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

Cilësime të tjera Riak

Skedarët riak.conf dhe advanced.config përfshijnë cilësime të tjera që rregullojnë krijimin e skedarëve të logut dhe rrugët e ruajtjes së tyre. Këto cilësime kanë vlerat e parazgjedhura dhe duhet të funksionojnë në shumicën e rasteve. Për më shumë informacion, ne rekomandojmë të lexoni dokumentacionin tonë për skedarët e konfigurimit.

Konfigurimi i adresës IP për Riak

Kur konfiguroni Adresa IP për Riak, duhet të jeni të sigurt se nodet Riak kanë një adresë IP unike, qoftë nëse punoni vetëm me një nod ose nëse po shtoni nodet e tjera në sistem. Adresa IP e Riak gjendet në riak.conf ose - nëse po përdorni skedarin app.config - në skedarin e konfigurimit vm.args, i cili ndodhet gjithashtu në direktorinë /etc/riak/ (ose në /opt/riak/etc/ në sisteme të tjera operative).

Fillimisht, vargu që përmban adresën IP të Riak tregon hostin lokal në këtë vend:

RIAK.CONF

 nodename = riak@127.0.0.1

VM.ARGS

 -name riak@127.0.0.1

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

Cilësimet e performancës dhe kapacitetit

Për shkak të arsyeve të performancës, ne rekomandojmë me këmbëngulje të shtoni vlera në skedarët e konfigurimit Riak riak.conf ose vm.args, që ndodhen në dosjet /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

ËshtĂ« e rekomandueshme tĂ« mos pĂ«rdorni JavaScript MapReduce tĂ« vjetruar nĂ« kombinim me çfarĂ«do versioni tĂ« Riak CS. PĂ«r arsye performancĂ«, duhet tĂ« çaktivizoni makinerinĂ« virtuale qĂ« kryen operacione JavaScript MapReduce duke e konfiguruar nĂ« skedarin riak.conf, ose nĂ« pjesĂ«n 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 

ADVANCED.CONFIG

{riak_kv, [
    %% Konfigurime të tjera
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Konfigurime të tjera
]}

APP.CONFIG

{riak_kv, [
    %% Konfigurime të tjera
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Konfigurime të tjera
]}

Më pas, na nevojitet të konfiguroni komponentët e mbetur të sistemit Riak CS.

Origjinali i manualit.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster