Riak Cloud Storage. Del 1. Opsætning af Riak KV

Riak CS (Cloud Storage) – nem at bruge software til organisering af objektlagring, der kører oven på Riak KV. Riak (KV) er en distribueret NoSQL-nøgleværdi-database. Riak CS er designet til at give enkelhed, tilgængelighed, distribution af cloud-lagring af enhver skala, og kan bruges til at bygge cloud-arkitekturer - både offentlige og private - eller som infrastrukturlagring til højt belastede applikationer og tjenester. Riak CS API er kompatibel med Amazon S3 og understøtter muligheden for at modtage rapporter om forskellige situationer.

Riak Cloud Storage. Del 1. Opsætning af Riak KV
Denne artikel er en gratis oversættelse af den officielle manual til Riak CS-systemet version 2.1.1

I Riak CS-lagersystemet arbejder tre komponenter sammen med hinanden, hvilket betyder, at hver komponent skal konfigureres til at fungere med de andre komponenter:

  • Riak (KV) – et databasesystem, der fungerer som et slutsystem.
  • Riak CS - Et cloud storage-lag oven på Riak, der giver storage og API-funktioner, gemmer filer og metadata i Riak og derefter distribuerer dem til slutbrugere.
  • stanchion - Håndterer forespørgsler, der involverer globalt unikke entiteter såsom buckets og brugere i Riak-instansen. For eksempel oprettelse af brugere, oprettelse eller sletning af buckets.

Derudover kan du også konfigurere S3-klienten til brug i meddelelser med Riak CS-systemet.

Du bør planlægge at have én Riak-node for hver Riak CS-node på dit system. Riak og Riak CS noder kan køres på forskellige fysiske maskiner, men i de fleste tilfælde foretrækkes det at køre en Riak node og en Riak CS node på den samme fysiske maskine. Forudsat at én fysisk maskine har strøm nok til at tilfredsstille behovene for både Riak og Riak CS noder, vil du generelt se bedre ydeevne på grund af reduceret netværksforsinkelse.

Hvis dit system består af flere noder, handler konfigurationen primært om opsætning af kommunikation mellem komponenter. Andre indstillinger, såsom hvor logfilerne bliver gemt, har standardværdier og skal kun ændres, hvis du vil bruge ikke-standardværdier.

Opsætning af systemkomponenter. Opsætning af Riak KV til CS

Da Riak CS er en applikation bygget oven på Riak, er det meget vigtigt at være opmærksom på din Riak-konfiguration, når du kører Riak CS. Dette dokument er både en Riak konfigurationsvejledning og et referencedokument, der beskriver vigtige konfigurationsparametre.

Før opsætning skal du sørge for, at Riak KV og Riak CS er installeret på hver node i din klynge. Stanchion, på den anden side, bør kun installeres på én node i hele klyngen.

Riak Cloud Storage. Del 1. Opsætning af Riak KV

Backends til Riak CS

Standard-backend, som Riak bruger, er Bitcask, men Riak CS-pakken indeholder en speciel backend, som skal bruges af Riak-klyngen, der er en del af Riak CS-systemet. Den almindelige version har standard Multi-backend, der følger med Riak.

De samme Riak-bøtter, der bruges inde i Riak CS, bruger sekundære indekser, som nu kræver en LevelDB-backend. Andre dele af Riak CS-systemet kan drage fordel af at bruge Bticask-backend. Brugen af ​​en prøve Multi-backend er inkluderet i Riak CS for at drage fordel af begge disse backends for at opnå den bedste kombination af ydeevne og funktionalitet. Det næste afsnit beskriver, hvordan Riak korrekt konfigureres til at bruge denne Multi-backend.

Bagende er, hvad Riak vil bruge til at gemme data. Riak KV har flere backends i sit arsenal: Bitcask, LevelDB, Memory og Multi.

Derudover bruger lagerberegningssystemet Riak MapReduse til at samle filer i buckets. Det betyder, at du skal fortælle alle Riak-noder, hvor de skal lede efter forberedte Riak CS-filer, før du beregner lagring.

Adskillige andre parametre skal ændres for at konfigurere Riak-noden som en del af Riak CS-systemet, såsom IP-adressen og IP-adressen og porten til meddelelser via protokolbuffere. Andre indstillinger kan ændres om nødvendigt. De følgende afsnit beskriver, hvordan man konfigurerer en Riak-node til at fungere som en del af Riak CS-systemet.

Opsætning af Riak backend

Først redigeres riak.conf eller advanced.config/app.config konfigurationsfilerne. Disse filer kan findes i mapperne /etc/riak eller /opt/riak/etc. Som standard bruger Riak Bitcask-backend. Den første ting vi skal gøre er at ændre konfigurationsfilen ved at fjerne følgende linje:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

AVANCERET.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},
]}

Dernæst skal vi demonstrere behovet for RiakCS-moduler til Riak og instruere Riak i at bruge den konfigurerede backend, der leverer Riak CS. Vi skal bruge filen advanced.config eller app.config til dette og tilføje følgende muligheder:

AVANCERET.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 er meget vigtigt at bemærke, at mange af disse værdier vil afhænge af biblioteksvariationer, der er specifikke for dit operativsystem, så følg instruktionerne i overensstemmelse hermed. For eksempel antager indstillingen add_paths, at Riak CS er installeret i /usr/lib/riak-cs, mens data_root-indstillingerne antager, at Riak er installeret i /var/lib. (Bemærk: I mit tilfælde var det add_paths - /usr/lib64/riak-cs/).

Denne konfiguration forudsætter, at Riak CS er installeret på samme maskine som Riak. Hvis ikke, skal pakken kopieres til en separat vært.

Opsætning af søskendeoprettelse

Nu skal vi indstille parameteren allow_mult til sand. Vi kan tilføje en linje i riak.conf-konfigurationsfilen eller en riak_core-sektion i advanced.config eller app.config.

RIAK.CONF

buckets.default.allow_mult = true

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

Dette vil give Riak mulighed for at skabe søskende, der er nødvendige for, at Riak CS kan fungere. Hvis du opretter forbindelse til Riak CS ved hjælp af klientbiblioteket, skal du ikke bekymre dig: du behøver ikke at løse konflikter, da alle Riak CS-operationer er strengt konsistente som defineret.

Søskende er en måde at gemme flere objekter i én nøgle, så objektet har forskellige værdier på forskellige noder.

Bemærk: allow_mult
Enhver Riak-node, der også understøtter Riak CS, vil altid have allow_mult sat til sand. Riak CS nulstiller lanceringen, hvis værdien er falsk.

Indstilling af værtsnavn og IP-adresse

Hver Riak-node har et navn, som kan specificeres i nodenavn-indstillingen i riak.conf. Hvis du bruger app.config-konfigurationsfilen, skal du oprette en fil kaldet vm.args i samme mappe som app.config og angive værtsnavnet ved hjælp af flaget -name. Vi anbefaler at angive nodenavne i @-formatet. Og så hvis du har tre noder, der kører på én vært 100.0.0.1, kan du kalde dem [e-mail beskyttet], [e-mail beskyttet]Og [e-mail beskyttet] eller du kan give mere specifikke navne, som f.eks [e-mail beskyttet], [e-mail beskyttet] og så videre. Eksemplet nedenfor viser ændring af værtsnavnet til [e-mail beskyttet], som kører på localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Du skal navngive alle noder, før du starter dem op og tilslutter dig klyngen.

Opsætningstest

Nu hvor alle de nødvendige nodeindstillinger er gennemført, kan vi prøve at starte Riak:

SHELL

 riak start 

Bemærk Svaret i mit tilfælde:

Riak Cloud Storage. Del 1. Opsætning af Riak KV

Her skal du vente lidt. Så kan du begynde at teste den kørende node.

SHELL

 riak ping

Hvis svaret er pong, så kører Riak; hvis svaret er, at Node ikke reagerer på ping, så gik noget galt.

Bemærk Svaret i mit tilfælde:

Riak Cloud Storage. Del 1. Opsætning af Riak KV

Hvis noden ikke startede korrekt, skal du se på erlang.log.1-loggen i /log-mappen på noden, hvis problemet kan identificeres. En af de mest almindelige fejl er invalid_storage_backend. Hvilket indikerer at stien til Riak CS biblioteket i advanced.config eller i app.config er forkert (eller Riak CS er ikke installeret på serveren). På trods af denne fejl, sørg for at du ikke har ændret fra riak_cs_kv_multi_backend til riak_kv_multi_backend.

Konfiguration af Riak til at bruge protokolbuffere

Riak-protokollens bufferindstillinger er placeret i riak.conf eller i riak_api-sektionen i filerne advanced.config eller app.config, som er placeret i mappen /etc/riak/. Som standard har værten en IP-adresse på 127.0.0.1 og port 8087. Du skal ændre disse, hvis du planlægger at køre Riak og Riak CS i et ikke-lokalt miljø. Erstat 127.0.0.1 med Riak-værts-IP-adressen og port 8087 med en passende.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

AVANCERET.KONF

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

Note:Værdien af ​​listener.protobuf.internal parameteren i riak.conf (eller værdien af ​​pb parameteren i advanced.conf/app.config) filen skal matche værdierne for riak_host i Riak CS riak-cs.config og Stanchion stanchion.conf (eller riak_host henholdsvis i avancerede .config/app.config) filer.

En note om portnummeret
Et andet portnummer kan være påkrævet, hvis porten er i konflikt med porte, der bruges af et andet program, eller hvis du bruger en load balancer eller proxyserver.

Det anbefales også, at brugere sikrer, at Riak protobuf.backlog-størrelsen (eller i advanced.config/app.config-filer er dette pb_backlog) er lig med eller større end pool.request.size, der er angivet for Riak CS i riak-cs. config (eller request_pool_size i advanced.config/ app.conf filer).

Hvis værdien af ​​pool.request.size i Riak CS er ændret, så skal værdien af ​​protobuf.backlog også opdateres i Riak.

Andre Riak-indstillinger

Filerne riak.conf og advanced.config inkluderer andre indstillinger, der konfigurerer oprettelsen af ​​logfiler og hvor de gemmes. Disse indstillinger har standardværdier og burde fungere i de fleste tilfælde. For mere information anbefaler vi at læse vores dokumentation om konfigurationsfiler.

Opsætning af en IP-adresse til Riak

Når du opretter en IP-adresse til Riak, skal du være sikker på, at Riak-noderne har en unik IP-adresse, uanset om du arbejder med kun én node eller tilføjer flere noder til systemet. Riak IP-adressen er indeholdt i riak.conf eller - hvis du bruger app.config-filen - i vm.args-konfigurationsfilen, som er placeret der i mappen /etc/riak (eller /opt/riak/etc/ på andre operativsystemer).

Til at begynde med peger linjen, der indeholder Riak IP-adressen, til den lokale vært på denne placering:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Erstat 127.0.0.1 med din foretrukne IP-adresse eller værtsnavn på Riak-noden.

Indstillinger for ydeevne og båndbredde

Af præstationsmæssige årsager anbefaler vi kraftigt at tilføje værdier til Riak-konfigurationsfilerne riak.conf eller vm.args, som findes i mappen /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

Deaktivering af JavaScript MapReduce

Det anbefales ikke at bruge ældre JavaScript MapReduce med nogen version af Riak CS. Af ydeevnemæssige årsager bør du deaktivere den virtuelle maskine, der udfører JavaScript MapReduce-operationer ved at indstille i riak.conf-konfigurationsfilen eller i riak_kv-sektionen i advanced.conf eller app.config:

RIAK.CONF

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

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

Dernæst skal vi konfigurere de resterende komponenter i Riak CS-systemet.

Original manual.

Kilde: www.habr.com

Tilføj en kommentar