Riak Cloud Storage. Část 1. Nastavení Riak KV

Riak CS (Cloud Storage) – snadno použitelný software pro organizaci objektového úložiště, který běží nad Riak KV. Riak (KV) je distribuovaná NoSQL databáze typu „klíč-hodnota (key-value)“. Riak CS je navržena tak, aby zajistila jednoduchost, dostupnost a distribuovanost cloudového úložiště jakéhokoli rozsahu a může být použita k výstavbě cloudových architektur — jak veřejných, tak soukromých — nebo jako infrastruktura pro vysoce zatížené aplikace a služby. Rozhraní API Riak CS je kompatibilní s Amazon S3 a podporuje možnost získávat zprávy o různých situacích.

Riak Cloud Storage. Část 1. Nastavení Riak KV
Tento článek je volným překladem oficiálního průvodce systémem Riak CS verze 2.1.1

V systému úložiště Riak CS spolupracují tři komponenty, což znamená nezbytnou konfiguraci každé komponenty pro spolupráci s ostatními komponenty:

  • Riak (KV) – systém databází, který funguje jako koncový systém.
  • Riak CS — vrstva cloudového úložiště nad Riak, která poskytuje úložiště a možnosti API, uchovává soubory a metadata v Riak a předává je koncovým uživatelům.
  • Stanchion — řídí požadavky zahrnující globálně unikátní entity, jako jsou koše a uživatelé v instanci Riak. Například vytváření uživatelů, vytváření nebo odstraňování košů.

Dále můžete také nakonfigurovat S3 klienta pro použití v komunikaci se systémem Riak CS.

Musíte naplánovat jeden uzel Riak pro každý uzel Riak CS ve vašem systému. Uzly Riak a Riak CS mohou být spuštěny na různých fyzických strojích, ale v většině případů je lepší spouštět jeden uzel Riak a jeden uzel Riak CS na stejném fyzickém stroji. Předpokládání, že jeden fyzický stroj má dostatečný výkon pro splnění potřeb obou uzlů Riak a Riak CS, obvykle uvidíte lepší výkon díky snížení síťových zpoždění.

Pokud se váš systém skládá z více uzlů, konfigurace je především nastavení komunikace mezi komponenty. Jiná nastavení, jako například to, kde budou ukládány protokolové soubory, mají výchozí hodnoty a potřebují změny pouze v případě, že chcete používat nestandardní hodnoty.

Nastavení systémových komponent. Konfigurace Riak KV pro CS

Jelikož je Riak CS aplikací postavenou na Riaku, je velmi důležité věnovat pozornost konfiguraci Riaku při spuštění Riak CS. Tento dokument slouží zároveň jako návod pro konfiguraci Riaku a jako referenční materiál popisující důležité konfigurační parametry.

Před konfigurací se ujistěte, že je Riak KV a Riak CS nainstalován na každém uzlu ve vašem clusteru. Stanchion by měl být nainstalován pouze na jednom uzlu v celém clusteru.

Riak Cloud Storage. Část 1. Nastavení Riak KV

Backendy pro Riak CS

Výchozí backend používaný Riak je Bitcask, ale balíček Riak CS obsahuje speciální backend, který by měl být používán Riak clusterem, který je součástí systému Riak CS. V běžné verzi existuje standardní Multi backend, který je dodáván s Riak.

Tyto stejné Riak buckety používané v rámci Riak CS používají sekundární indexy, které nyní vyžadují backend LevelDB. Ostatní části systému Riak CS mohou těžit z použití backendu Bitcask. Použití standardního Multi backendu je zahrnuto v Riak CS, aby se využily výhody obou těchto backendů pro dosažení nejlepšího kombinace výkonu a funkčnosti. V následující části je popsáno, jak správně nastavit Riak pro použití tohoto Multi backendu.

Backend — to je to, co Riak použije pro uložení dat. Riak KV má několik backendů: Bitcask, LevelDB, Memory a Multi.

Dále systém výpočtu úložiště používá Riak MapReduce k sumaci souborů do bucketů. To znamená, že musíte informovat všechny uzly Riak, kde hledat připravené soubory Riak CS před výpočtem úložiště.

Několik dalších parametrů by mělo být změněno, aby se uzel Riak nakonfiguroval jako součást systému Riak CS, jako je IP adresa a port pro komunikaci přes Protocol Buffers. Ostatní nastavení lze měnit pouze v případě potřeby. Následující části popisují, jak nakonfigurovat uzel Riak, aby fungoval jako součást systému Riak CS.

Nastavení Riak backendu

Za prvé, je třeba upravit konfigurační soubory riak.conf nebo advanced.config/app.config. Tyto soubory mohou být umístěny v /etc/riak nebo v /opt/riak/etc adresářích. Ve výchozím nastavení Riak používá Bitcask backend. První věc, kterou musíme udělat, je změnit konfigurační soubor odstraněním následujícího řádku:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

ADVANCED.CONFIG

{riak_kv,
 [ %% Odstraňte tento řádek: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

{riak_kv, 
  [ %% Odstraňte tento řádek:
    {storage_backend, riak_kv_bitcask_backend},
]}

Dále je třeba ukázat, že moduly RiakCS jsou nezbytné pro Riak a instruovat Riak, aby používal nastavený backend zajišťující Riak CS. K tomu musíme použít soubor advanced.config nebo app.config a přidat následující možnosti:

ADVANCED.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Další konfigurace
    {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"}
        ]}
    ]},
    %% Další konfigurace
]}

APP.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Další konfigurace
    {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"}
        ]}
    ]},
    %% Další konfigurace
]}

Je důležité poznamenat, že mnoho z těchto hodnot bude záviset na variacích adresářů specifických pro vaši operační systém, proto se řiďte instrukcemi podle nich. Například parametr add_paths předpokládá, že Riak CS je nainstalován v /usr/lib/riak-cs, zatímco parametry data_root předpokládají, že Riak je nainstalován v /var/lib. (Pozn. V mém případě to bylo add_paths — /usr/lib64/riak-cs/).

Tato konfigurace předpokládá, že Riak CS je nainstalován na stejném stroji jako Riak. Pokud ne, balíček musí být zkopírován na jiný host.

Nastavení povolení vytváření seedingů

Nyní musíme nastavit parametr allow_mult na hodnotu true. Můžeme přidat řádek do konfiguračního souboru riak.conf nebo do sekce riak_core v advanced.config nebo app.config.

RIAK.CONF

buckets.default.allow_mult = true

ADVANCED.CONFIG

{riak_core, [
    %% Další konfigurace
    {default_bucket_props, [{allow_mult, true}]},
    %% Další konfigurace
]}

APP.CONFIG

{riak_core, [
    %% Další konfigurace
    {default_bucket_props, [{allow_mult, true}]},
    %% Další konfigurace
]}

To umožní Riaku vytvářet seedingy, které jsou nezbytné pro fungování Riak CS. Pokud se připojujete k Riak CS pomocí klientské knihovny, nebojte se: nebudete muset řešit konflikty, protože všechny operace Riak CS jsou přísně konzistentní podle jejich definice.

Seeding je způsob uložení více objektů pod jedním klíčem, aby měl objekt různé hodnoty na různých uzlech.

Poznámka: allow_mult
Jakýkoli uzel Riak, který také podporuje Riak CS, bude mít trvale hodnotu true pro paramter allow_mult. Riak CS se při hodnotě false restartuje.

Nastavení názvu uzlu a IP adresy

Každý uzel Riak má název, který lze uvést v souboru riak.conf v možnosti nodename. Pokud používáte konfigurační soubor app.config, musíte vytvořit soubor s názvem vm.args ve stejné složce, kde se nachází app.config, a uvést název uzlu pomocí příznaku -name. Doporučujeme nastavit názvy uzlům ve formátu @. Pokud máte například tři spuštěné uzly na jednom hostiteli 100.0.0.1, můžete je pojmenovat riak1@100.0.0.1, riak2@100.0.0.1 a riak3@100.0.0.1, nebo jim můžete dát specifické názvy, jako test_cluster1@100.0.0.1, user_data3@100.0.0.1 a tak dále. Příklad níže ukazuje změnu názvu uzlu na riak1@127.0.0.1, což bude fungovat na místním hostiteli.

RIAK.CONF

 nodename = riak1@127.0.0.1 

VM.ARGS

 -name riak1@127.0.0.1

Musíte pojmenovat všechny uzly před spuštěním a přidáním do klastru.

Testovací nastavení

Nyní, když byla dokončena všechna nezbytná nastavení uzlu, můžeme se pokusit spustit Riak:

SHELL

 riak start 

Pozn. Odpověď v mém případě:

Riak Cloud Storage. Část 1. Nastavení Riak KV

Je třeba chvíli počkat. Poté lze začít test spuštěného uzlu.

SHELL

 riak ping

Pokud bude odpověď pong, znamená to, že Riak běží. Pokud se však objeví odpověď Node not responding to pings, něco se pokazilo.

Pozn. Odpověď v mém případě:

Riak Cloud Storage. Část 1. Nastavení Riak KV

Pokud se uzel nespustil správně, podívejte se do souboru erlang.log.1 v adresáři /log uzlu, jestli je možné problém identifikovat. Jednou z nejběžnějších chyb je invalid_storage_backend. To ukazuje, že cesta k knihovně Riak CS v advanced.config nebo app.config je nesprávná (nebo že Riak CS není na serveru nainstalován). I přes tuto chybu se ujistěte, že jste nezměnili z riak_cs_kv_multi_backend na riak_kv_multi_backend.

Nastavení Riak pro použití protocol buffers

Nastavení protocol buffers Riak se nachází v riak.conf nebo v sekci riak_api v souborech advanced.config nebo app.config, které se nacházejí v adresáři /etc/riak/. Ve výchozím nastavení má host IP adresu 127.0.0.1 a port 8087. Je nutné je změnit, pokud plánujete spustit Riak a Riak CS mimo lokální prostředí. Nahraďte 127.0.0.1 IP adresou uzlu Riak a port 8087 vhodným.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

ADVANCED.CONF

{riak_api, [
    %% Další konfigurace
    {pb, ["10.0.2.10", 10001]},
    %% Další konfigurace
]}

APP.CONFIG

riak_api, [
    %% Další konfigurace
    {pb, ["10.0.2.10", 10001]},
    %% Další konfigurace
]}

Poznámka:Hodnota parametru listener.protobuf.internal v souboru riak.conf (nebo hodnota parametru pb v souborech advanced.conf / app.config) by měla odpovídat hodnotám pro riak_host v souboru Riak CS riak-cs.config a Stanchion stanchion.conf (nebo riak_host v souborech advanced.config / app.config).

Poznámka o čísle portu
Může být potřeba jiný číslo portu, pokud port koliduje s porty používanými jinou aplikací, nebo pokud používáte vyrovnávač zátěže či proxy server.

Doporučuje se také, aby si uživatelé zajistili, že velikost Riak protobuf.backlog (nebo v souborech advanced.config / app.config toto pb_backlog) se rovná nebo je větší než velikost pool.request.size, uvedená pro Riak CS v riak-cs.config (nebo request_pool_size v souborech advanced.config / app.conf).

Pokud byla hodnota pool.request.size v Riak CS změněna, měla by být také aktualizována hodnota protobuf.backlog v Riak.

Další nastavení Riak

Soubory riak.conf a advanced.config obsahují další nastavení, které konfigurují vytváření logovacích souborů a cesty jejich ukládání. Tato nastavení mají výchozí hodnoty a měly by fungovat ve většině případů. Pro více informací doporučujeme přečíst si naši dokumentaci k souborům konfigurace.

Nastavení IP adresy pro Riak

Při nastavení IP adres pro Riak byste měli zajistit, že uzly Riak mají unikátní IP adresu, ať už pracujete pouze s jedním uzlem nebo přidáváte další uzly do systému. IP adresa Riak je obsažena v riak.conf nebo — pokud používáte app.config — v konfiguračním souboru vm.args, který se nachází ve stejné složce v /etc/riak (nebo v /opt/riak/etc/ v jiných operačních systémech).

Původně, řádek obsahující IP adresu Riak odkazuje na místní hostitele zde:

RIAK.CONF

 nodename = riak@127.0.0.1

VM.ARGS

 -name riak@127.0.0.1

Nahraďte 127.0.0.1 preferovanou IP adresou nebo jménem hostitele uzlu Riak.

Nastavení výkonu a propustnosti

Z důvodu výkonu důrazně doporučujeme přidat hodnoty do konfiguračních souborů Riak riak.conf nebo vm.args umístěných v /etc/riak/ nebo /opt/riak/etc složce.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

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

Deaktivace JavaScript MapReduce

Doporučuje se nepoužívat zastaralý JavaScript MapReduce ve spojení s jakoukoli verzí Riak CS. Z důvodu výkonu byste měli deaktivovat virtuální stroj provádějící operace JavaScript MapReduce nastavením v konfiguračním souboru riak.conf nebo v části riak_kv souboru advanced.conf nebo app.config:

RIAK.CONF

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

ADVANCED.CONFIG

{riak_kv, [
    %% Další konfigurace
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Další konfigurace
]}

APP.CONFIG

{riak_kv, [
    %% Další konfigurace
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Další konfigurace
]}

Dále je třeba nakonfigurovat zbývající komponenty systému Riak CS.

Originální příručka.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster