Riak Cloud Storage. Del 1: Installation av Riak KV

Riak CS (molnlagring) – lättanvänd programvara för att organisera objektlagring, som körs ovanpå Riak KV. Riak (KV) är en distribuerad NoSQL nyckel-värde databas. Riak CS är designad för att tillhandahålla enkelhet, tillgänglighet, distribution av molnlagring av alla skala, och kan användas för att bygga molnarkitekturer – både offentliga och privata – eller som infrastrukturlagring för högt laddade applikationer och tjänster. Riak CS API är kompatibel med Amazon S3 och stödjer möjligheten att ta emot rapporter om olika situationer.

Riak Cloud Storage. Del 1: Installation av Riak KV
Den här artikeln är en fri översättning av den officiella manualen för Riak CS-systemversion 2.1.1

I Riak CS lagringssystem fungerar tre komponenter tillsammans med varandra, vilket innebär att varje komponent måste konfigureras för att fungera med de andra komponenterna:

  • Riak (KV) – ett databassystem som fungerar som ett slutsystem.
  • Riak CS – Ett molnlagringslager ovanpå Riak som tillhandahåller lagrings- och API-möjligheter, lagrar filer och metadata i Riak och sedan distribuerar dem till slutanvändare.
  • Stolpe - Hanterar frågor som involverar globalt unika enheter som hinkar och användare i Riak-instansen. Till exempel skapa användare, skapa eller ta bort hinkar.

Dessutom kan du också konfigurera S3-klienten för användning i meddelandehantering med Riak CS-systemet.

Du bör planera att ha en Riak-nod för varje Riak CS-nod på 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äckligt med kraft för att tillfredsställa behoven hos både Riak och Riak CS-noder, kommer du vanligtvis att se bättre prestanda på grund av minskad nätverkslatens.

Om ditt system består av flera noder handlar konfigurationen i första hand om att sätta upp kommunikation mellan komponenter. Andra inställningar, som var loggfilerna kommer att lagras, har standardvärden och behöver bara ändras om du vill använda icke-standardvärden.

Installation av systemkomponenter. Konfigurera Riak KV för CS

Eftersom Riak CS är en applikation byggd ovanpå Riak är det mycket viktigt att vara uppmärksam på din Riak-konfiguration när du kör Riak CS. Detta dokument är både en Riak konfigurationsguide och ett referensdokument som beskriver viktiga konfigurationsparametrar.

Innan installationen, se till att Riak KV och Riak CS är installerade på varje nod i ditt kluster. Stanchion, å andra sidan, bör endast installeras på en nod i hela klustret.

Riak Cloud Storage. Del 1: Installation av Riak KV

Backends för Riak CS

Standardbackend som används av Riak är Bitcask, men Riak CS-paketet innehåller en speciell backend som måste användas av Riak-klustret som är en del av Riak CS-systemet. Den vanliga versionen har standard Multi-backend som följer med Riak.

Samma Riak-hinkar som används i Riak CS använder sekundära index, som nu kräver en LevelDB-backend. Andra delar av Riak CS-systemet kan dra nytta av att använda Bticask-backend. Användningen av ett exempel på Multi-backend ingår i Riak CS för att dra fördel av båda dessa backends för att uppnå den bästa kombinationen av prestanda och funktionalitet. Nästa avsnitt beskriver hur man korrekt konfigurerar Riak för att använda denna Multi-backend.

Backend är vad Riak kommer att använda för att spara data. Riak KV har flera backends i sin arsenal: Bitcask, LevelDB, Memory och Multi.

Dessutom använder lagringsberäkningssystemet Riak MapReduse för att aggregera filer i hinkar. Det betyder att du måste tala om för alla Riak-noder var de ska leta efter förberedda Riak CS-filer 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 IP-adress och port för meddelanden via Protocol Buffers. Andra inställningar kan ändras vid behov. Följande avsnitt beskriver hur man konfigurerar en Riak-nod för att fungera som en del av Riak CS-systemet.

Installerar Riak backend

Först redigeras konfigurationsfilerna riak.conf eller advanced.config/app.config. Dessa filer kan finnas i katalogerna /etc/riak eller /opt/riak/etc. Som standard använder Riak Bitcasks 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,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

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

Därefter måste vi demonstrera behovet av RiakCS-moduler för Riak och instruera Riak att använda den konfigurerade backend som tillhandahåller Riak CS. Vi måste använda filen advanced.config eller app.config för detta och lägga till följande alternativ:

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

Det är mycket viktigt att notera att många av dessa värden kommer att bero på katalogvariationer som är specifika för ditt operativsystem, så följ instruktionerna därefter. Till exempel antar alternativet add_paths att Riak CS är installerat i /usr/lib/riak-cs, medan data_root-alternativen förutsätter 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 installerad på samma maskin som Riak. Om inte, måste paketet kopieras till en separat värd.

Ställer in syskonskapande

Nu måste vi ställa in allow_mult-parametern till true. Vi kan lägga till en rad i riak.conf-konfigurationsfilen, eller en riak_core-sektion i advanced.config eller app.config.

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

Detta gör att Riak kan skapa syskon som är nödvändiga för att Riak CS ska fungera. Om du ansluter till Riak CS med hjälp av klientbiblioteket, oroa dig inte: du behöver inte lösa konflikter, eftersom alla Riak CS-operationer är strikt konsekventa enligt definitionen.

Syskon är ett sätt att lagra flera objekt i en nyckel så att objektet har olika värden på olika noder.

Obs: allow_mult
Varje Riak-nod som också stöder Riak CS kommer alltid att ha allow_mult inställd på sant. Riak CS återställer lanseringen om värdet är falskt.

Ställa in värdnamn och IP-adress

Varje Riak-nod har ett namn, som kan anges i riak.conf i alternativet nodnamn. Om du använder konfigurationsfilen app.config måste du skapa en fil som heter vm.args i samma katalog som app.config och ange värdnamnet med flaggan -name. Vi rekommenderar att du anger nodnamn i @-formatet. Och så om du har tre noder som körs på en värd 100.0.0.1, kan du anropa dem [e-postskyddad], [e-postskyddad]Och [e-postskyddad] eller så kan du ge mer specifika namn, som t.ex [e-postskyddad], [e-postskyddad] och så vidare. Exemplet nedan visar hur du ändrar värdnamnet till [e-postskyddad], som kommer att köras på localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Du måste namnge alla noder innan du startar dem och går med i klustret.

Inställningstest

Nu när alla nödvändiga nodinställningar har slutförts kan vi försöka starta Riak:

SKAL

 riak start 

Notera Svaret i mitt fall:

Riak Cloud Storage. Del 1: Installation av Riak KV

Här måste du vänta lite. Sedan kan du börja testa den löpande noden.

SKAL

 riak ping

Om svaret är pong, kör Riak, om svaret är Node som inte svarar på pingar, då gick något fel.

Notera Svaret i mitt fall:

Riak Cloud Storage. Del 1: Installation av Riak KV

Om noden inte startade korrekt, titta på erlang.log.1-loggen i /log-katalogen för noden om problemet kan identifieras. Ett av de vanligaste felen är invalid_storage_backend. Vilket indikerar att sökvägen till Riak CS-biblioteket i advanced.config eller i app.config är felaktig (eller så är Riak CS inte 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.

Konfigurerar Riak att använda protokollbuffertar

Riak-protokollets buffertinställningar finns i riak.conf eller i riak_api-sektionen i filerna advanced.config eller app.config, som finns i katalogen /etc/riak/. Som standard har värden en IP-adress på 127.0.0.1 och port 8087. Du måste ändra dessa om du planerar att köra Riak och Riak CS i en icke-lokal miljö. Ersätt 127.0.0.1 med Riak-värdens IP-adress och port 8087 med en lämplig.

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

Notera:Värdet på listener.protobuf.internal parametern i riak.conf (eller värdet på pb-parametern i advanced.conf/app.config) filen måste matcha värdena för riak_host i Riak CS riak-cs.config och Stanchion stanchion.conf (eller riak_host i avancerade .config/app.config)-filer.

En notering om portnumret
Ett annat portnummer kan krävas om porten kommer i konflikt med portar som används av ett annat program eller om du använder en lastbalanserare eller proxyserver.

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

Om värdet på pool.request.size i Riak CS har ändrats måste värdet på protobuf.backlog också uppdateras i Riak.

Andra Riak-inställningar

Filerna riak.conf och advanced.config inkluderar andra inställningar som konfigurerar skapandet av loggfiler och var de sparas. Dessa inställningar har standardvärden och bör fungera i de flesta fall. För mer information rekommenderar vi att du läser vår dokumentation om konfigurationsfiler.

Ställa in en IP-adress för Riak

När du ställer in en IP-adress för Riak måste du vara säker på att Riak-noderna har en unik IP-adress, oavsett om du arbetar med bara en nod eller lägger till fler noder i systemet. Riak IP-adressen finns i riak.conf eller - om du använder filen app.config - i konfigurationsfilen vm.args, som finns där i katalogen /etc/riak (eller /opt/riak/etc/ på andra operativsystem).

Inledningsvis pekar raden som innehåller Riak IP-adressen till den lokala värden på denna plats:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Ersätt 127.0.0.1 med din föredragna IP-adress eller värdnamn för Riak-noden.

Inställningar för prestanda och bandbredd

Av prestandaskäl rekommenderar vi starkt att du lägger till värden till Riak-konfigurationsfilerna riak.conf eller vm.args, som finns i katalogen /etc/riak/ eller /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

Inaktiverar JavaScript MapReduce

Det rekommenderas att inte använda äldre JavaScript MapReduce med någon version av Riak CS. Av prestandaskäl bör du inaktivera den virtuella maskinen som utför JavaScript MapReduce-operationer genom att ställa in i riak.conf-konfigurationsfilen eller i riak_kv-sektionen 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, [
    %% 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
]}

Därefter måste vi konfigurera de återstående komponenterna i Riak CS-systemet.

Original manual.

Källa: will.com

Lägg en kommentar