Riak Cloud Storage. Del 1. Konfigurera Riak KV

Riak CS (Cloud Storage) – lĂ€ttanvĂ€nt programvara för att organisera objektlagring som arbetar ovanpĂ„ Riak KV. Riak (KV) Ă€r en distribuerad NoSQL-databas av typen "nyckel-vĂ€rde (key-value)". Riak CS Ă€r designad för att sĂ€kerstĂ€lla enkelhet, tillgĂ€nglighet och distribution av molnlagring i alla skalor och kan anvĂ€ndas för att bygga molnarkitekturer — bĂ„de offentliga och privata — eller som infrastrukturarkiv för högbelastade applikationer och tjĂ€nster. Riak CS API Ă€r kompatibelt med Amazon S3 och stöder rapporteringsmöjligheter för olika situationer.

Riak Cloud Storage. Del 1. Konfigurera Riak KV
Denna artikel Àr en fri översÀttning av den officiella manualen för Riak CS-systemet version 2.1.1

I lagringssystemet Riak CS arbetar tre komponenter tillsammans, vilket innebÀr att varje komponent mÄste konfigureras för att fungera med de andra komponenterna:

  • Riak (KV) – en databassystem som fungerar som en slutlig system.
  • Riak CS — ett lager av molnlagring ovanpĂ„ Riak, som tillhandahĂ„ller lagring och API-möjligheter, lagrar filer och metadata i Riak, och överför dem sedan till slutanvĂ€ndare.
  • Stanchion — hanterar förfrĂ„gningar som involverar globalt unika enheter, sĂ„som buckets och anvĂ€ndare i ett Riak-exempel. Till exempel, skapa anvĂ€ndare, skapa eller ta bort buckets.

Dessutom kan du ocksÄ konfigurera S3-klienter för att anvÀnda vid kommunikation med Riak CS-systemet.

Du bör planera att ha en Riak-nod för varje Riak CS-nod i ditt system. Riak- och Riak CS-noder kan köras pÄ olika fysiska maskiner, men i de flesta fall Àr det att föredra att köra en Riak-nod och en Riak CS-nod pÄ samma fysiska maskin. Förutsatt att en fysisk maskin har tillrÀcklig kapacitet för att möta behoven av bÄda Riak- och Riak CS-noder, ser man vanligtvis bÀttre prestanda pÄ grund av minskade nÀtverksförseningar.

Om ditt system bestÄr av flera noder bestÄr konfigurationen frÀmst av att stÀlla in kommunikationen mellan komponenterna. Andra instÀllningar, sÄsom var loggfilerna ska lagras, har standardvÀrden och behöver endast Àndras om du vill anvÀnda icke-standardvÀrden.

InstÀllning av systemkomponenter. Konfigurera Riak KV för CS

Eftersom Riak CS Àr en applikation som Àr byggd ovanpÄ Riak, Àr det viktigt att noggrant övervÀga din Riak-konfiguration nÀr Riak CS startas. Detta dokument fungerar bÄde som en guide för att konfigurera Riak och som en referens för viktiga konfigurationsparametrar.

Innan konfigurationen pÄbörjas, se till att Riak KV och Riak CS Àr installerade pÄ varje nod i din kluster. Stanchion bör dÀremot endast installeras pÄ en nod i hela klustret.

Riak Cloud Storage. Del 1. Konfigurera Riak KV

Backend för Riak CS

Som standard anvÀnder Riak backend Bitcask, men Riak CS-paketet inkluderar en sÀrskild backend som ska anvÀndas av Riak-klustret som Àr en del av Riak CS-systemet. I den vanliga versionen finns det en standard Multi backend som levereras med Riak.

De samma Riak-bucketar som anvÀnds inom Riak CS anvÀnder sekundÀra index, som nu krÀver LevelDB backend. Andra delar av Riak CS-systemet kan dra nytta av att anvÀnda Bitcask backend. AnvÀndningen av den provade Multi-backenden ingÄr i Riak CS för att utnyttja fördelarna med bÄda dessa backends för att uppnÄ den bÀsta kombinationen av prestanda och funktionalitet. I nÀsta avsnitt beskrivs hur man korrekt konfigurerar Riak för att anvÀnda denna Multi-backend.

Backend Àr vad Riak kommer att anvÀnda för att lagra data. Riak KV har flera backends: Bitcask, LevelDB, Memory och Multi.

Dessutom anvÀnder lagringsberÀkningssystemet Riak MapReduce för att summera filer till bucketar. Detta innebÀr att du mÄste informera alla Riak-noder om var de ska leta efter de förberedda filer Riak CS innan lagringen berÀknas.

Flera andra parametrar mĂ„ste Ă€ndras för att konfigurera Riak-noden som en del av Riak CS-systemet, sĂ„som IP-adress och port för meddelandeutbyte via Protocol Buffers. Övriga instĂ€llningar kan Ă€ndras om det behövs. Följande avsnitt beskriver hur man konfigurerar Riak-noden för att fungera som en del av Riak CS-systemet.

Konfigurera Riak backend

För det första redigeras konfigurationsfilerna riak.conf eller advanced.config/app.config. Dessa filer kan finnas i /etc/riak eller i /opt/riak/etc mapparna. Som standard anvÀnder Riak Bitcask backend. Det första vi behöver göra Àr att Àndra konfigurationsfilen genom att ta bort följande rad:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

ADVANCED.CONFIG

{riak_kv,
 [ %% Ta bort denna rad: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

{riak_kv, 
  [ %% Ta bort denna rad:
    {storage_backend, riak_kv_bitcask_backend},
]}

DÀrefter behöver vi ange behovet av RiakCS-moduler för Riak och instruera Riak att anvÀnda den konfigurerade backend-lösningen för Riak CS. Vi mÄste anvÀnda advanced.config eller app.config-filen och göra följande alternativ:

ADVANCED.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Andra konfigurationer
    {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"}
        ]}
    ]},
    %% Andra konfigurationer
]}

APP.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Andra konfigurationer
    {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"}
        ]}
    ]},
    %% Andra konfigurationer
]}

Det Ă€r mycket viktigt att notera att mĂ„nga av dessa vĂ€rden kommer att bero pĂ„ variationer i kataloger specifika för ditt operativsystem, sĂ„ följ instruktionerna i enlighet med detta. Till exempel förutsĂ€tter parametern add_paths att Riak CS Ă€r installerat i /usr/lib/riak-cs, medan parametrarna data_root antyder att Riak Ă€r installerat i /var/lib. (Obs. I mitt fall var det add_paths — /usr/lib64/riak-cs/).

Denna konfiguration förutsÀtter att Riak CS Àr installerat pÄ samma maskin som Riak. Om sÄ inte Àr fallet, behöver paketet kopieras till en separat vÀrd.

InstÀllning av skapande av systrÀd

Nu behöver vi stÀlla in parametern allow_mult till vÀrdet true. Vi kan lÀgga till en rad i konfigurationsfilen riak.conf, eller avsnittet riak_core i advanced.config eller app.config.

RIAK.CONF

buckets.default.allow_mult = true

ADVANCED.CONFIG

{riak_core, [
    %% Andra konfigurationer
    {default_bucket_props, [{allow_mult, true}]},
    %% Andra konfigurationer
]}

APP.CONFIG

{riak_core, [
    %% Andra konfigurationer
    {default_bucket_props, [{allow_mult, true}]},
    %% Andra konfigurationer
]}

Detta kommer att tillÄta Riak att skapa systrÀd som Àr nödvÀndiga för att Riak CS ska fungera. Om du ansluter till Riak CS med hjÀlp av ett klientbibliotek behöver du inte bekymra dig: du kommer inte att behöva lösa konflikter, eftersom alla Riak CS-operationer strikt överensstÀmmer med sin definition.

SystrÀd Àr ett sÀtt att lagra flera objekt under en nyckel för att ett objekt ska kunna ha olika vÀrden pÄ olika noder.

Obs: allow_mult
Varje Riak-nod som ocksÄ stöder Riak CS kommer alltid att ha vÀrdet true för parametern allow_mult. Riak CS kommer att avbryta starten om vÀrdet Àr false.

Konfigurera nodnamn och IP-adress

Varje Riak-nod har ett namn som kan anges i riak.conf under alternativet nodename. Om du anvÀnder konfigurationsfilen app.config mÄste du skapa en fil med namnet vm.args i samma katalog som app.config och ange nodnamnet med flaggan -name. Vi rekommenderar att ge noderna namn i formatet @. Och sÄ om du har tre körande noder pÄ samma vÀrd 100.0.0.1, kan du namnge dem riak1@100.0.0.1, riak2@100.0.0.1 och riak3@100.0.0.1 eller ge dem mer specifika namn, som test_cluster1@100.0.0.1, user_data3@100.0.0.1 och sÄ vidare. Exemplet nedan visar hur man Àndrar nodnamnet till riak1@127.0.0.1, vilket kommer att fungera pÄ den lokala vÀrden.

RIAK.CONF

 nodename = riak1@127.0.0.1 

VM.ARGS

 -name riak1@127.0.0.1

Du mÄste ge namn till alla noder innan du startar och ansluter dem till klustret.

Testkonfiguration

Nu nÀr alla nödvÀndiga nodinstÀllningar Àr gjorda kan vi försöka starta Riak:

SHELL

 riak start 

Obs. Svar i mitt fall:

Riak Cloud Storage. Del 1. Konfigurera Riak KV

HÀr behöver du vÀnta en stund. Sedan kan du börja testa den körande noden.

SHELL

 riak ping

Om svaret Àr pong, betyder det att Riak körs: om svaret Àr Node not responding to pings, betyder det att nÄgot har gÄtt fel.

Obs. Svar i mitt fall:

Riak Cloud Storage. Del 1. Konfigurera Riak KV

Om noden startades felaktigt, titta i loggen erlang.log.1 i katalogen /log för noden om problemet kan identifieras. En av de vanligaste felen Àr invalid_storage_backend. Som indikerar att sökvÀgen till biblioteken för Riak CS i advanced.config eller app.config Àr felaktig (eller att Riak CS inte Àr installerat pÄ servern). Trots detta fel, se till att du inte har Àndrat frÄn riak_cs_kv_multi_backend till riak_kv_multi_backend.

Konfigurera Riak för att anvÀnda protokollbuffrar (protocol buffers)

InstÀllningarna för Riaks protokollbuffrar finns i riak.conf eller i sektionen riak_api i filerna advanced.config eller app.config som ligger i /etc/riak/ katalogen. Som standard har vÀrden IP-adressen 127.0.0.1 och porten 8087. Du mÄste Àndra dessa om du planerar att köra Riak och Riak CS inte i en lokal miljö. ErsÀtt 127.0.0.1 IP-adressen för Riak-noden och port 8087 med lÀmplig.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

ADVANCED.CONF

{riak_api, [
    %% Andra konfigurationer
    {pb, ["10.0.2.10", 10001]},
    %% Andra konfigurationer
]}

APP.CONFIG

riak_api, [
    %% Andra konfigurationer
    {pb, ["10.0.2.10", 10001]},
    %% Andra konfigurationer
]}

AnmÀrkning:VÀrdet för parametern listener.protobuf.internal i riak.conf (eller vÀrdet för parametern pb i advanced.conf / app.config) ska matcha vÀrdena för riak_host i Riak CS riak-cs.config och Stanchion stanchion.conf (eller riak_host respektive i advanced.config/app.config) filer.

Notering om portnummer
Ett annat portnummer kan behövas om porten krockar med portarna som anvÀnds av ett annat program eller om du anvÀnder en belastningsbalanserare eller en proxyserver.

Det rekommenderas ocksÄ att anvÀndare sÀkerstÀller att storleken pÄ Riak protobuf.backlog (eller i advanced.config/app.config-filer Àr det pb_backlog) Àr lika med eller större Àn storleken pÄ pool.request.size som anges för Riak CS i riak-cs.config (eller request_pool_size i advanced.config/app.conf-filer).

Om vÀrdet pÄ pool.request.size i Riak CS har Àndrats, dÄ mÄste vÀrdet pÄ protobuf.backlog Àven i Riak uppdateras.

Andra instÀllningar för Riak

Filerna riak.conf och advanced.config inkluderar andra instÀllningar som konfigurerar skapandet av loggfiler och vÀgar för deras lagring. Dessa instÀllningar har standardvÀrden och bör fungera i de flesta fall. För mer information rekommenderar vi att lÀsa vÄr dokumentation om konfigurationsfiler.

Konfigurera IP-adress för Riak

Vid konfigurering IP-adresser för Riak mĂ„ste du sĂ€kerstĂ€lla att Riak-noderna har unika IP-adresser, oavsett om du arbetar med en enda nod eller lĂ€gger till fler noder till systemet. IP-adressen för Riak finns i riak.conf eller — om du anvĂ€nder app.config-filen — i vm.args-konfigurationsfilen, som ligger i /etc/riak-katalogen (eller i /opt/riak/etc/-katalogen i andra operativsystem).

Inledningsvis anger raden som innehÄller Riak-IP-adressen den lokala vÀrden hÀr:

RIAK.CONF

 nodename = riak@127.0.0.1

VM.ARGS

 -name riak@127.0.0.1

ErsÀtt 127.0.0.1 med den föredragna IP-adressen eller nodens vÀrdnamn för Riak.

Prestanda- och kapacitetsinstÀllningar

Av prestandaskÀl rekommenderar vi starkt att lÀgga till vÀrden i konfigurationsfilerna för Riak riak.conf eller vm.args, som finns i /etc/riak/ eller /opt/riak/etc-katalogen.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

Avaktivera JavaScript MapReduce

Det rekommenderas att inte anvÀnda det förÄldrade JavaScript MapReduce tillsammans med nÄgon version av Riak CS. Av prestandaskÀl bör du avaktivera virtuella maskiner som kör JavaScript MapReduce genom att konfigurera det i riak.conf konfigurationsfilen, eller i riak_kv-delen av advanced.conf eller app.config:

RIAK.CONF

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

ADVANCED.CONFIG

{riak_kv, [
    %% Övriga konfigurationer
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Övriga konfigurationer
]}

APP.CONFIG

{riak_kv, [
    %% Övriga konfigurationer
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Övriga konfigurationer
]}

DÀrefter behöver vi konfigurera de ÄterstÄende komponenterna i Riak CS.

Originalmanualen.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster