Riak-cloudopslag. Deel 1: Riak KV opzetten

Riak CS (cloudopslag) – eenvoudig te gebruiken software voor het organiseren van objectopslag, draaiend bovenop Riak KV. Riak (KV) is een gedistribueerde NoSQL-sleutelwaardedatabase. Riak CS is ontworpen om eenvoud, beschikbaarheid en distributie van cloudopslag van elke schaal te bieden, en kan worden gebruikt om cloudarchitecturen te bouwen - zowel publiek als privaat - of als infrastructuuropslag voor zwaarbelaste applicaties en diensten. Riak CS API is compatibel met Amazon S3 en ondersteunt de mogelijkheid om rapporten over verschillende situaties te ontvangen.

Riak-cloudopslag. Deel 1: Riak KV opzetten
Dit artikel is een gratis vertaling van de officiële handleiding voor het Riak CS-systeem versie 2.1.1

In het Riak CS opbergsysteem werken drie componenten met elkaar samen, wat betekent dat elk onderdeel moet worden geconfigureerd om met de andere componenten te werken:

  • Riak (KV) – een databasesysteem dat als eindsysteem fungeert.
  • Riak CS - Een cloudopslaglaag bovenop Riak die opslag- en API-mogelijkheden biedt, bestanden en metadata opslaat in Riak en deze vervolgens distribueert naar eindgebruikers.
  • Stang - Beheert zoekopdrachten waarbij wereldwijd unieke entiteiten betrokken zijn, zoals buckets en gebruikers in de Riak-instantie. Bijvoorbeeld het aanmaken van gebruikers, het aanmaken of verwijderen van buckets.

Bovendien kunt u de S3-client ook configureren voor gebruik in berichtenuitwisseling met het Riak CS-systeem.

U moet plannen om één Riak-knooppunt te hebben voor elk Riak CS-knooppunt op uw systeem. Riak- en Riak CS-knooppunten kunnen op verschillende fysieke machines worden uitgevoerd, maar in de meeste gevallen verdient het de voorkeur om één Riak-knooppunt en één Riak CS-knooppunt op dezelfde fysieke machine te gebruiken. Ervan uitgaande dat één fysieke machine voldoende stroom heeft om aan de behoeften van zowel Riak- als Riak CS-knooppunten te voldoen, zult u over het algemeen betere prestaties zien als gevolg van de verminderde netwerklatentie.

Als uw systeem uit meerdere knooppunten bestaat, gaat het bij de configuratie vooral om het opzetten van de communicatie tussen componenten. Andere instellingen, zoals waar de logbestanden worden opgeslagen, hebben standaardwaarden en hoeven alleen te worden gewijzigd als je niet-standaardwaarden wilt gebruiken.

Systeemcomponenten instellen. Riak KV opzetten voor CS

Omdat Riak CS een applicatie is die bovenop Riak is gebouwd, is het erg belangrijk om aandacht te besteden aan uw Riak-configuratie wanneer u Riak CS gebruikt. Dit document is zowel een Riak-configuratiegids als een referentiedocument waarin belangrijke configuratieparameters worden beschreven.

Zorg er vóór de installatie voor dat Riak KV en Riak CS op elk knooppunt in uw cluster zijn geïnstalleerd. Stanchion mag daarentegen slechts op één knooppunt in het hele cluster worden geïnstalleerd.

Riak-cloudopslag. Deel 1: Riak KV opzetten

Backends voor Riak CS

De standaard backend die Riak gebruikt is Bitcask, maar het Riak CS-pakket bevat een speciale backend die moet worden gebruikt door het Riak-cluster dat deel uitmaakt van het Riak CS-systeem. De reguliere versie heeft de standaard Multi-backend die bij Riak wordt geleverd.

Dezelfde Riak-buckets die in Riak CS worden gebruikt, gebruiken secundaire indexen, waarvoor nu een LevelDB-backend vereist is. Andere delen van het Riak CS-systeem kunnen profiteren van het gebruik van de Bticask-backend. Het gebruik van een voorbeeld Multi-backend is opgenomen in Riak CS om van beide backends te profiteren en de beste combinatie van prestaties en functionaliteit te bereiken. In het volgende gedeelte wordt beschreven hoe u Riak correct configureert om deze Multi-backend te gebruiken.

Achterkant is wat Riak gaat gebruiken om gegevens op te slaan. Riak KV heeft verschillende backends in zijn arsenaal: Bitcask, LevelDB, Memory en Multi.

Bovendien gebruikt het opslagberekeningssysteem Riak MapReduse om bestanden in buckets samen te voegen. Dit betekent dat u alle Riak-knooppunten moet vertellen waar ze naar voorbereide Riak CS-bestanden moeten zoeken voordat u de opslag gaat berekenen.

Verschillende andere parameters moeten worden gewijzigd om het Riak-knooppunt te configureren als onderdeel van het Riak CS-systeem, zoals het IP-adres en het IP-adres en de poort voor berichtenuitwisseling via protocolbuffers. Andere instellingen kunnen indien nodig worden gewijzigd. In de volgende secties wordt beschreven hoe u een Riak-knooppunt configureert om te functioneren als onderdeel van het Riak CS-systeem.

Riak-backend opzetten

Eerst worden de configuratiebestanden riak.conf of advanced.config/app.config bewerkt. Deze bestanden kunnen zich in de mappen /etc/riak of /opt/riak/etc bevinden. Standaard gebruikt Riak de Bitcask-backend. Het eerste dat we moeten doen is het configuratiebestand wijzigen door de volgende regel te verwijderen:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

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

Vervolgens moeten we de noodzaak van RiakCS-modules voor Riak aantonen en Riak instrueren om de geconfigureerde backend te gebruiken die Riak CS biedt. We moeten hiervoor het bestand advanced.config of app.config gebruiken en de volgende opties toevoegen:

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

Het is erg belangrijk op te merken dat veel van deze waarden afhankelijk zijn van mapvariaties die specifiek zijn voor uw besturingssysteem, dus volg de instructies dienovereenkomstig. De optie add_paths gaat er bijvoorbeeld van uit dat Riak CS is geïnstalleerd in /usr/lib/riak-cs, terwijl de opties data_root ervan uitgaan dat Riak is geïnstalleerd in /var/lib. (Opmerking: in mijn geval was het add_paths - /usr/lib64/riak-cs/).

Bij deze configuratie wordt ervan uitgegaan dat Riak CS op dezelfde machine is geïnstalleerd als Riak. Als dit niet het geval is, moet het pakket naar een afzonderlijke host worden gekopieerd.

Aanmaak van broers en zussen instellen

Nu moeten we de parameter allow_mult instellen op true. We kunnen een regel toevoegen aan het riak.conf-configuratiebestand, of een riak_core-sectie in advanced.config of app.config.

RIAK.CONF

buckets.default.allow_mult = true

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

Hierdoor kan Riak broers en zussen creëren die nodig zijn om Riak CS te laten functioneren. Als u verbinding maakt met Riak CS via de clientbibliotheek, hoeft u zich geen zorgen te maken: u hoeft geen conflicten op te lossen, aangezien alle Riak CS-bewerkingen strikt consistent zijn zoals gedefinieerd.

Broer of zus is een manier om meerdere objecten in één sleutel op te slaan, zodat het object op verschillende knooppunten verschillende waarden heeft.

Opmerking: allow_mult
Bij elk Riak-knooppunt dat ook Riak CS ondersteunt, is allow_mult altijd op true ingesteld. Riak CS zal de lancering resetten als de waarde false is.

De hostnaam en het IP-adres instellen

Elk Riak-knooppunt heeft een naam, die kan worden opgegeven in de knooppuntnaamoptie in riak.conf. Als u het configuratiebestand app.config gebruikt, moet u een bestand met de naam vm.args maken in dezelfde map als app.config en de hostnaam opgeven met de vlag -name. We raden u aan knooppuntnamen op te geven in het @-formaat. En dus als je drie knooppunten hebt die op één host 100.0.0.1 draaien, kun je ze bellen [e-mail beveiligd], [e-mail beveiligd]En [e-mail beveiligd] of u kunt specifiekere namen geven, zoals [e-mail beveiligd], [e-mail beveiligd] enzovoort. In het onderstaande voorbeeld ziet u hoe u de hostnaam wijzigt in [e-mail beveiligd], die op localhost draait.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

U moet alle knooppunten een naam geven voordat u ze opstart en lid wordt van het cluster.

Opstellingstest

Nu alle benodigde knooppuntinstellingen zijn voltooid, kunnen we proberen Riak te starten:

SHELL

 riak start 

Opmerking Het antwoord in mijn geval:

Riak-cloudopslag. Deel 1: Riak KV opzetten

Hier moet je even wachten. Vervolgens kunt u beginnen met het testen van het actieve knooppunt.

SHELL

 riak ping

Als het antwoord pong is, is Riak actief; als het antwoord is dat Node niet reageert op pings, is er iets misgegaan.

Opmerking Het antwoord in mijn geval:

Riak-cloudopslag. Deel 1: Riak KV opzetten

Als het knooppunt niet correct is gestart, kijk dan naar het erlang.log.1-logboek in de map /log van het knooppunt om te zien of het probleem kan worden geïdentificeerd. Een van de meest voorkomende fouten is invalid_storage_backend. Dit geeft aan dat het pad naar de Riak CS-bibliotheek in advanced.config of in app.config onjuist is (of dat Riak CS niet op de server is geïnstalleerd). Zorg er ondanks deze fout voor dat u niet bent gewijzigd van riak_cs_kv_multi_backend naar riak_kv_multi_backend.

Riak configureren om protocolbuffers te gebruiken

De Riak-protocolbufferinstellingen bevinden zich in riak.conf of in de sectie riak_api in de bestanden advanced.config of app.config, die zich in de map /etc/riak/ bevinden. Standaard heeft de host het IP-adres 127.0.0.1 en poort 8087. U moet deze wijzigen als u van plan bent Riak en Riak CS in een niet-lokale omgeving te gebruiken. Vervang 127.0.0.1 door het IP-adres van de Riak-host en poort 8087 door een geschikt exemplaar.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

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

Opmerking:De waarde van de parameter listener.protobuf.internal in het bestand riak.conf (of de waarde van de parameter pb in advanced.conf/app.config) moet overeenkomen met de waarden voor riak_host in Riak CS riak-cs.config en Stanchion stanchion.conf (of riak_host respectievelijk in geavanceerde .config/app.config) bestanden.

Een opmerking over het poortnummer
Er kan een ander poortnummer nodig zijn als de poort conflicteert met poorten die door een andere toepassing worden gebruikt of als u een load balancer of proxyserver gebruikt.

Het wordt ook aanbevolen dat gebruikers ervoor zorgen dat de Riak protobuf.backlog-grootte (of in advanced.config/app.config-bestanden is dit pb_backlog) gelijk is aan of groter is dan de pool.request.size die is opgegeven voor Riak CS in riak-cs. config (of request_pool_size in advanced.config/app.conf-bestanden).

Als de waarde van pool.request.size in Riak CS is gewijzigd, moet de waarde van protobuf.backlog ook in Riak worden bijgewerkt.

Overige Riak-instellingen

De bestanden riak.conf en advanced.config bevatten andere instellingen die het maken van logbestanden configureren en waar ze worden opgeslagen. Deze instellingen hebben standaardwaarden en zouden in de meeste gevallen moeten werken. Voor meer informatie raden wij u aan onze documentatie over configuratiebestanden te lezen.

Een IP-adres instellen voor Riak

Wanneer u een IP-adres voor Riak instelt, moet u er zeker van zijn dat de Riak-knooppunten een uniek IP-adres hebben, of u nu met slechts één knooppunt werkt of meer knooppunten aan het systeem toevoegt. Het Riak IP-adres bevindt zich in riak.conf of - als u het bestand app.config gebruikt - in het configuratiebestand vm.args, dat zich daar in de map /etc/riak bevindt (of /opt/riak/etc/ op andere besturingssystemen).

In eerste instantie wijst de regel met het Riak IP-adres naar de localhost op deze locatie:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Vervang 127.0.0.1 door het IP-adres van uw voorkeur of de hostnaam van het Riak-knooppunt.

Prestatie- en bandbreedte-instellingen

Om prestatieredenen raden we ten zeerste aan om waarden toe te voegen aan de Riak-configuratiebestanden riak.conf of vm.args, die zich in de map /etc/riak/ of /opt/riak/etc bevinden.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

JavaScript MapReduce uitschakelen

Het wordt aanbevolen om verouderde JavaScript MapReduce niet te gebruiken met welke versie van Riak CS dan ook. Om prestatieredenen moet u de virtuele machine uitschakelen die JavaScript MapReduce-bewerkingen uitvoert door in het riak.conf-configuratiebestand of in de riak_kv-sectie van advanced.conf of app.config het volgende in te stellen:

RIAK.CONF

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

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

Vervolgens moeten we de resterende componenten van het Riak CS-systeem configureren.

Originele handleiding.

Bron: www.habr.com

Voeg een reactie