Cloudové úložisko Riak. Časť 1: Nastavenie Riak KV

Riak CS (Cloud Storage) – ľahko použiteľný softvér na organizáciu ukladania objektov, ktorý beží na Riak KV. Riak (KV) je distribuovaná databáza kľúč-hodnota NoSQL. Riak CS je navrhnutý tak, aby poskytoval jednoduchosť, dostupnosť, distribúciu cloudového úložiska akéhokoľvek rozsahu a možno ho použiť na budovanie cloudových architektúr – verejných aj súkromných – alebo ako úložisko infraštruktúry pre vysoko zaťažené aplikácie a služby. Riak CS API je kompatibilné s Amazon S3 a podporuje možnosť prijímať správy o rôznych situáciách.

Cloudové úložisko Riak. Časť 1: Nastavenie Riak KV
Tento článok je voľným prekladom oficiálneho manuálu pre systém Riak CS verzie 2.1.1

V úložnom systéme Riak CS fungujú tri komponenty navzájom, čo znamená, že každý komponent musí byť nakonfigurovaný tak, aby spolupracoval s ostatnými komponentmi:

  • Riak (KV) – databázový systém, ktorý funguje ako koncový systém.
  • Riak CS - Vrstva cloudového úložiska nad Riak, ktorá poskytuje možnosti ukladania a API, ukladá súbory a metadáta v Riak a potom ich distribuuje koncovým používateľom.
  • Stĺpec - Spravuje dopyty zahŕňajúce globálne jedinečné entity, ako sú vedrá a používatelia v inštancii Riak. Napríklad vytváranie používateľov, vytváranie alebo odstraňovanie segmentov.

Okrem toho môžete tiež nakonfigurovať klienta S3 na použitie pri odosielaní správ so systémom Riak CS.

Mali by ste plánovať mať jeden uzol Riak pre každý uzol Riak CS vo vašom systéme. Uzly Riak a Riak CS možno spustiť na rôznych fyzických počítačoch, ale vo väčšine prípadov je vhodnejšie spustiť jeden uzol Riak a jeden uzol Riak CS na rovnakom fyzickom počítači. Za predpokladu, že jeden fyzický stroj má dostatok energie na uspokojenie potrieb uzlov Riak aj Riak CS, vo všeobecnosti uvidíte lepší výkon vďaka zníženej latencii siete.

Ak váš systém pozostáva z niekoľkých uzlov, konfigurácia je primárne o nastavení komunikácie medzi komponentmi. Ostatné nastavenia, napríklad kde sa budú ukladať protokolové súbory, majú predvolené hodnoty a je potrebné ich zmeniť len vtedy, ak chcete použiť neštandardné hodnoty.

Nastavenie komponentov systému. Nastavenie Riak KV pre CS

Keďže Riak CS je aplikácia postavená na Riak, je veľmi dôležité venovať pozornosť konfigurácii Riak pri spustení Riak CS. Tento dokument je konfiguračnou príručkou Riak a zároveň referenčným dokumentom popisujúcim dôležité konfiguračné parametre.

Pred nastavením sa uistite, že Riak KV a Riak CS sú nainštalované na každom uzle vo vašom klastri. Na druhej strane, Stanchion by mal byť inštalovaný iba na jednom uzle v celom klastri.

Cloudové úložisko Riak. Časť 1: Nastavenie Riak KV

Backendy pre Riak CS

Predvolený backend používaný Riakom je Bitcask, ale balík Riak CS obsahuje špeciálny backend, ktorý musí používať klaster Riak, ktorý je súčasťou systému Riak CS. Bežná verzia má štandardný Multi backend, ktorý sa dodáva s Riakom.

Rovnaké vedrá Riak používané v Riak CS používajú sekundárne indexy, ktoré teraz vyžadujú backend LevelDB. Ostatné časti systému Riak CS môžu ťažiť z použitia backendu Bticask. Použitie vzorového Multi backendu je zahrnuté v Riak CS, aby sa využili výhody oboch týchto backendov na dosiahnutie najlepšej kombinácie výkonu a funkčnosti. Nasledujúca časť popisuje, ako správne nakonfigurovať Riak na používanie tohto Multi-backendu.

Backend je to, čo Riak použije na uloženie údajov. Riak KV má vo svojom arzenáli niekoľko backendov: Bitcask, LevelDB, Memory a Multi.

Okrem toho systém výpočtu úložiska používa Riak MapReduse na agregáciu súborov do segmentov. To znamená, že musíte všetkým uzlom Riak povedať, kde majú hľadať pripravené súbory Riak CS pred výpočtovým ukladaním.

Na konfiguráciu uzla Riak ako súčasti systému Riak CS je potrebné zmeniť niekoľko ďalších parametrov, ako je napríklad adresa IP a adresa IP a port na odosielanie správ prostredníctvom vyrovnávacích pamätí protokolov. V prípade potreby je možné zmeniť ďalšie nastavenia. Nasledujúce časti popisujú, ako nakonfigurovať uzol Riak, aby fungoval ako súčasť systému Riak CS.

Nastavenie backendu Riak

Najprv sa upravia konfiguračné súbory riak.conf alebo advanced.config/app.config. Tieto súbory môžu byť umiestnené v adresároch /etc/riak alebo /opt/riak/etc. Riak štandardne používa backend Bitcask. Prvá vec, ktorú musíme urobiť, je zmeniť konfiguračný súbor odstránením nasledujúceho riadku:

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

Ďalej musíme preukázať potrebu modulov RiakCS pre Riak a inštruovať Riaka, aby používal nakonfigurovaný backend poskytujúci Riak CS. Na to musíme použiť súbor advanced.config alebo app.config a pridať nasledujúce 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 veľmi dôležité poznamenať, že mnohé z týchto hodnôt budú závisieť od variácií adresárov špecifických pre váš operačný systém, preto postupujte podľa pokynov. Napríklad voľba add_paths predpokladá, že Riak CS je nainštalovaný v /usr/lib/riak-cs, zatiaľ čo voľby data_root predpokladajú, že Riak je nainštalovaný v /var/lib. (Poznámka: V mojom prípade to boli add_paths - /usr/lib64/riak-cs/).

Táto konfigurácia predpokladá, že Riak CS je nainštalovaný na rovnakom počítači ako Riak. Ak nie, balík je potrebné skopírovať do samostatného hostiteľa.

Nastavenie tvorby súrodencov

Teraz musíme nastaviť parameter allow_mult na hodnotu true. Môžeme pridať riadok v konfiguračnom súbore riak.conf alebo sekciu riak_core v advanced.config alebo 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árať súrodencov, ktorí sú potrební na fungovanie Riak CS. Ak sa pripojíte k Riak CS pomocou klientskej knižnice, nebojte sa: nebudete musieť riešiť konflikty, pretože všetky operácie Riak CS sú prísne konzistentné, ako je definované.

Súrodenec je spôsob ukladania viacerých objektov do jedného kľúča, takže objekt má na rôznych uzloch rôzne hodnoty.

Poznámka: allow_mult
Každý uzol Riak, ktorý tiež podporuje Riak CS, bude mať allow_mult vždy nastavený na hodnotu true. Ak je hodnota nepravdivá, Riak CS resetuje spustenie.

Nastavenie názvu hostiteľa a adresy IP

Každý uzol Riak má názov, ktorý je možné špecifikovať vo voľbe názov uzla v riak.conf. Ak používate konfiguračný súbor app.config, musíte vytvoriť súbor s názvom vm.args v rovnakom adresári ako app.config a zadať názov hostiteľa pomocou príznaku -name. Názvy uzlov odporúčame zadať vo formáte @. Ak teda máte tri uzly spustené na jednom hostiteľovi 100.0.0.1, môžete ich zavolať [chránené e-mailom], [chránené e-mailom]A [chránené e-mailom] alebo môžete uviesť konkrétnejšie názvy, ako napr [chránené e-mailom], [chránené e-mailom] a tak ďalej. Príklad nižšie ukazuje zmenu názvu hostiteľa na [chránené e-mailom], ktorý pobeží na localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Pred spustením a pripojením ku klastra musíte pomenovať všetky uzly.

Test nastavenia

Teraz, keď boli dokončené všetky potrebné nastavenia uzla, môžeme skúsiť spustiť Riak:

SHELL

 riak start 

Poznámka Odpoveď v mojom prípade:

Cloudové úložisko Riak. Časť 1: Nastavenie Riak KV

Tu musíte chvíľu počkať. Potom môžete začať testovať bežiaci uzol.

SHELL

 riak ping

Ak je odpoveď pong, potom je spustený Riak; ak je odpoveďou Node nereaguje na ping, potom sa niečo pokazilo.

Poznámka Odpoveď v mojom prípade:

Cloudové úložisko Riak. Časť 1: Nastavenie Riak KV

Ak sa uzol nespustil správne, pozrite sa do protokolu erlang.log.1 v adresári /log uzla, ak sa dá identifikovať problém. Jednou z najčastejších chýb je invalid_storage_backend. Čo znamená, že cesta ku knižnici Riak CS v advanced.config alebo app.config je nesprávna (alebo Riak CS nie je nainštalovaný na serveri). Napriek tejto chybe sa uistite, že ste nezmenili z riak_cs_kv_multi_backend na riak_kv_multi_backend.

Konfigurácia Riaku na používanie vyrovnávacích pamätí protokolu

Nastavenia vyrovnávacej pamäte protokolu Riak sa nachádzajú v riak.conf alebo v sekcii riak_api v súboroch advanced.config alebo app.config, ktoré sa nachádzajú v adresári /etc/riak/. V predvolenom nastavení má hostiteľ IP adresu 127.0.0.1 a port 8087. Ak plánujete spustiť Riak a Riak CS v nelokálnom prostredí, budete ich musieť zmeniť. Nahraďte 127.0.0.1 IP adresou hostiteľa 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 parametra listener.protobuf.internal v súbore riak.conf (alebo hodnota parametra pb v súbore advanced.conf/app.config) sa musí zhodovať s hodnotami pre riak_host v súbore Riak CS riak-cs.config a ​​Stanchion stanchion.conf (alebo riak_host v pokročilých súboroch .config/app.config).

Poznámka k číslu portu
Iné číslo portu sa môže vyžadovať, ak je port v konflikte s portami používanými inou aplikáciou alebo ak používate nástroj na vyrovnávanie zaťaženia alebo proxy server.

Odporúča sa tiež, aby používatelia zabezpečili, že veľkosť Riak protobuf.backlog (alebo v súboroch advanced.config/app.config je to pb_backlog) je rovnaká alebo väčšia ako pool.request.size špecifikovaná pre Riak CS v riak-cs. config (alebo request_pool_size v súboroch advanced.config/app.conf).

Ak sa zmenila hodnota pool.request.size v Riak CS, potom musí byť v Riak aktualizovaná aj hodnota protobuf.backlog.

Ďalšie nastavenia Riak

Súbory riak.conf a advanced.config obsahujú ďalšie nastavenia, ktoré konfigurujú vytváranie protokolových súborov a kde sa ukladajú. Tieto nastavenia majú predvolené hodnoty a vo väčšine prípadov by mali fungovať. Pre viac informácií odporúčame prečítať si našu dokumentáciu o konfiguračných súboroch.

Nastavenie IP adresy pre Riaka

Pri nastavovaní IP adresy pre Riak si musíte byť istí, že uzly Riak majú jedinečnú IP adresu, či už pracujete len s jedným uzlom alebo pridávate do systému viac uzlov. IP adresa Riak je obsiahnutá v riak.conf alebo - ak používate súbor app.config - v konfiguračnom súbore vm.args, ktorý sa tam nachádza v adresári /etc/riak (alebo /opt/riak/etc/ na iných operačných systémoch).

Na začiatku riadok obsahujúci Riak IP adresu ukazuje na localhost v tomto umiestnení:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Nahraďte 127.0.0.1 vašou preferovanou IP adresou alebo názvom hostiteľa uzla Riak.

Nastavenia výkonu a šírky pásma

Z dôvodov výkonu dôrazne odporúčame pridať hodnoty do konfiguračných súborov Riak riak.conf alebo vm.args, ktoré sa nachádzajú v adresári /etc/riak/ alebo /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

Vypnutie JavaScript MapReduce

Odporúča sa nepoužívať starší JavaScript MapReduce so žiadnou verziou Riak CS. Z dôvodov výkonu by ste mali vypnúť virtuálny počítač vykonávajúci operácie JavaScript MapReduce nastavením v konfiguračnom súbore riak.conf alebo v sekcii riak_kv na advanced.conf alebo 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
]}

Ďalej musíme nakonfigurovať zostávajúce komponenty systému Riak CS.

Originál manuál.

Zdroj: hab.com

Pridať komentár