Cloudové úložiště Riak. Část 1. Nastavení Riak KV

Riak CS (cloudové úložiště) – snadno použitelný software pro organizaci ukládání objektů, běžící nad Riak KV. Riak (KV) je distribuovaná databáze klíč-hodnota NoSQL. Riak CS je navržen tak, aby poskytoval jednoduchost, dostupnost a distribuci cloudového úložiště jakéhokoli rozsahu a lze jej použít k budování cloudových architektur – veřejných i soukromých – nebo jako úložiště infrastruktury pro vysoce zatížené aplikace a služby. Riak CS API je kompatibilní s Amazon S3 a podporuje možnost přijímat zprávy o různých situacích.

Cloudové úložiště Riak. Část 1. Nastavení Riak KV
Tento článek je volným překladem oficiálního manuálu pro systém Riak CS verze 2.1.1

V úložném systému Riak CS fungují tři komponenty ve vzájemném spojení, což znamená, že každá komponenta musí být nakonfigurována tak, aby spolupracovala s ostatními komponentami:

  • Riak (KV) – databázový systém, který funguje jako koncový systém.
  • Riak CS - Vrstva cloudového úložiště nad Riakem, která poskytuje úložiště a možnosti rozhraní API, ukládá soubory a metadata v Riak a poté je distribuuje koncovým uživatelům.
  • Sloup - Spravuje dotazy týkající se globálně jedinečných entit, jako jsou buckety a uživatelé v instanci Riak. Například vytváření uživatelů, vytváření nebo mazání bucketů.

Kromě toho můžete také nakonfigurovat klienta S3 pro použití při zasílání zpráv se systémem Riak CS.

Měli byste plánovat mít jeden uzel Riak pro každý uzel Riak CS ve vašem systému. Uzly Riak a Riak CS lze provozovat na různých fyzických počítačích, ale ve většině případů je vhodnější provozovat jeden uzel Riak a jeden uzel Riak CS na stejném fyzickém počítači. Za předpokladu, že jeden fyzický stroj má dostatek výkonu k uspokojení potřeb uzlů Riak i Riak CS, obecně zaznamenáte lepší výkon díky snížené latenci sítě.

Pokud se váš systém skládá z několika uzlů, je konfigurace primárně o nastavení komunikace mezi komponentami. Ostatní nastavení, například kde se budou ukládat soubory protokolu, mají výchozí hodnoty a je třeba je změnit pouze v případě, že chcete použít nestandardní hodnoty.

Nastavení součástí systému. Nastavení Riak KV pro CS

Vzhledem k tomu, že Riak CS je aplikace postavená na Riak, je velmi důležité věnovat pozornost konfiguraci Riak při spuštění Riak CS. Tento dokument je jak průvodcem konfigurace Riak, tak referenčním dokumentem popisujícím důležité konfigurační parametry.

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

Cloudové úložiště Riak. Část 1. Nastavení Riak KV

Backendy pro Riak CS

Výchozí backend používaný Riakem je Bitcask, ale balíček Riak CS obsahuje speciální backend, který musí používat cluster Riak, který je součástí systému Riak CS. Běžná verze má standardní Multi backend, který je dodáván s Riakem.

Stejné buckety Riak používané v 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 Bticask. Použití ukázkového Multi backendu je součástí Riak CS, aby bylo možné využít oba tyto backendy k dosažení nejlepší kombinace výkonu a funkčnosti. Další část popisuje, jak správně nakonfigurovat Riak pro použití tohoto Multi-backendu.

Backend je to, co Riak použije k uložení dat. Riak KV má ve svém arzenálu několik backendů: Bitcask, LevelDB, Memory a Multi.

Systém výpočtu úložiště navíc používá Riak MapReduse k agregaci souborů do segmentů. To znamená, že musíte všem uzlům Riak sdělit, kde mají hledat připravené soubory Riak CS, než začnete počítat úložiště.

Aby bylo možné nakonfigurovat uzel Riak jako součást systému Riak CS, je třeba změnit několik dalších parametrů, jako je IP adresa a IP adresa a port pro zasílání zpráv prostřednictvím vyrovnávací paměti protokolu. V případě potřeby lze změnit další nastavení. Následující části popisují, jak nakonfigurovat uzel Riak, aby fungoval jako součást systému Riak CS.

Nastavení backendu Riak

Nejprve se upraví konfigurační soubory riak.conf nebo advanced.config/app.config. Tyto soubory mohou být umístěny v adresářích /etc/riak nebo /opt/riak/etc. Ve výchozím nastavení používá Riak backend Bitcask. 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,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

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

Dále musíme demonstrovat potřebu modulů RiakCS pro Riak a instruovat Riaka, aby používal nakonfigurovaný backend poskytují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, [
    %% 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
]}

Je velmi důležité poznamenat, že mnoho z těchto hodnot bude záviset na variantách adresářů specifických pro váš operační systém, takže postupujte podle pokynů. Například volba add_paths předpokládá, že Riak CS je nainstalován v /usr/lib/riak-cs, zatímco volby data_root předpokládají, že je Riak nainstalován v /var/lib. (Poznámka: V mém případě to byly add_paths - /usr/lib64/riak-cs/).

Tato konfigurace předpokládá, že Riak CS je nainstalován na stejném počítači jako Riak. Pokud ne, pak je třeba balíček zkopírovat do samostatného hostitele.

Nastavení tvorby sourozenců

Nyní musíme nastavit parametr allow_mult na hodnotu true. Můžeme přidat řádek v konfiguračním souboru riak.conf nebo sekci riak_core v advanced.config nebo 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
]}

To umožní Riakovi vytvářet sourozence, kteří jsou nezbytní pro fungování Riak CS. Pokud se připojíte k Riak CS pomocí klientské knihovny, nemějte obavy: nebudete muset řešit konflikty, protože všechny operace Riak CS jsou přísně konzistentní, jak je definováno.

Sourozenec je způsob uložení více objektů do jednoho klíče, takže objekt má různé hodnoty na různých uzlech.

Poznámka: allow_mult
Každý uzel Riak, který také podporuje Riak CS, bude mít allow_mult vždy nastaveno na true. Riak CS resetuje spuštění, pokud je hodnota nepravdivá.

Nastavení názvu hostitele a IP adresy

Každý uzel Riak má jméno, které lze zadat ve volbě nodename v riak.conf. Pokud používáte konfigurační soubor app.config, musíte vytvořit soubor s názvem vm.args ve stejném adresáři jako app.config a zadat název hostitele pomocí parametru -name. Názvy uzlů doporučujeme zadávat ve formátu @. A tak pokud máte tři uzly běžící na jednom hostiteli 100.0.0.1, můžete je zavolat [chráněno e-mailem], [chráněno e-mailem]A [chráněno e-mailem] nebo můžete uvést konkrétnější názvy, jako např [chráněno e-mailem], [chráněno e-mailem] a tak dále. Níže uvedený příklad ukazuje změnu názvu hostitele na [chráněno e-mailem], který poběží na localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Před spuštěním a připojením ke clusteru musíte všechny uzly pojmenovat.

Test nastavení

Nyní, když jsou všechna potřebná nastavení uzlů dokončena, můžeme zkusit spustit Riak:

SHELL

 riak start 

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

Cloudové úložiště Riak. Část 1. Nastavení Riak KV

Zde musíte chvíli počkat. Poté můžete začít testovat běžící uzel.

SHELL

 riak ping

Pokud je odpověď pong, pak běží Riak, pokud je odpověď Uzel nereaguje na ping, pak se něco pokazilo.

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

Cloudové úložiště Riak. Část 1. Nastavení Riak KV

Pokud se uzel nespustil správně, podívejte se do protokolu erlang.log.1 v adresáři /log uzlu, zda lze problém identifikovat. Jednou z nejčastějších chyb je invalid_storage_backend. Což znamená, že cesta ke knihovně Riak CS v advanced.config nebo v app.config je nesprávná (nebo Riak CS není na serveru nainstalován). Navzdory této chybě se ujistěte, že jste se nezměnili z riak_cs_kv_multi_backend na riak_kv_multi_backend.

Konfigurace Riaku pro použití vyrovnávacích pamětí protokolu

Nastavení vyrovnávací paměti protokolu Riak se nachází v riak.conf nebo v sekci riak_api v souborech advanced.config nebo app.config, které jsou umístěny v adresáři /etc/riak/. Ve výchozím nastavení má hostitel IP adresu 127.0.0.1 a port 8087. Pokud plánujete provozovat Riak a Riak CS v nelokálním prostředí, budete je muset změnit. Nahraďte 127.0.0.1 IP adresou hostitele Riak a port 8087 vhodným.

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

Poznámka:Hodnota parametru listener.protobuf.internal v souboru riak.conf (nebo hodnota parametru pb v souboru advanced.conf/app.config) se musí shodovat s hodnotami pro riak_host v Riak CS riak-cs.config a Stanchion stanchion.conf (nebo riak_host v pokročilých souborech .config/app.config).

Poznámka k číslu portu
Pokud je port v konfliktu s porty používanými jinou aplikací nebo pokud používáte nástroj pro vyrovnávání zatížení nebo proxy server, může být vyžadováno jiné číslo portu.

Také se doporučuje, aby uživatelé zajistili, že velikost Riak protobuf.backlog (nebo v souborech advanced.config/app.config je to pb_backlog) je stejná nebo větší než pool.request.size zadaná pro Riak CS v riak-cs. config (nebo request_pool_size v souborech advanced.config/app.conf).

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

Další nastavení Riak

Soubory riak.conf a advanced.config obsahují další nastavení, která konfigurují vytváření souborů protokolu a kam se ukládají. Tato nastavení mají výchozí hodnoty a ve většině případů by měla fungovat. Pro více informací doporučujeme přečíst si naši dokumentaci o konfiguračních souborech.

Nastavení IP adresy pro Riaka

Při nastavování IP adresy pro Riak si musíte být jisti, že uzly Riak mají jedinečnou IP adresu, ať už pracujete pouze s jedním uzlem nebo přidáváte do systému více uzlů. IP adresa Riak je obsažena v riak.conf nebo - pokud používáte soubor app.config - v konfiguračním souboru vm.args, který se tam nachází v adresáři /etc/riak (nebo /opt/riak/etc/ na jiných operačních systémech).

Zpočátku řádek obsahující Riak IP adresu ukazuje na localhost v tomto umístění:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Nahraďte 127.0.0.1 svou preferovanou IP adresou nebo názvem hostitele uzlu Riak.

Nastavení výkonu a šířky pásma

Z důvodů výkonu důrazně doporučujeme přidat hodnoty do konfiguračních souborů Riak riak.conf nebo vm.args, které se nacházejí v adresáři /etc/riak/ nebo /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

Deaktivace JavaScript MapReduce

Doporučuje se nepoužívat starší JavaScript MapReduce s žádnou verzí Riak CS. Z důvodů 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 sekci riak_kv na 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, [
    %% 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ále musíme nakonfigurovat zbývající komponenty systému Riak CS.

Originální manuál.

Zdroj: www.habr.com

Přidat komentář