Riakin pilvitallennus. Osa 1: Riak KV:n käyttöönotto

Riak CS (pilvitallennus) – Riak KV:n päällä toimiva helppokäyttöinen ohjelmisto objektien tallennuksen järjestämiseen. Riak (KV) on hajautettu NoSQL-avainarvotietokanta. Riak CS on suunniteltu tarjoamaan yksinkertaisuutta, käytettävyyttä ja pilvitallennusta kaiken mittakaavassa, ja sitä voidaan käyttää pilviarkkitehtuurien rakentamiseen - sekä julkisiin että yksityisiin - tai infrastruktuurin tallennustilana erittäin kuormitetuille sovelluksille ja palveluille. Riak CS API on yhteensopiva Amazon S3:n kanssa ja tukee kykyä vastaanottaa raportteja erilaisista tilanteista.

Riakin pilvitallennus. Osa 1: Riak KV:n käyttöönotto
Tämä artikkeli on ilmainen käännös Riak CS -järjestelmän version 2.1.1 virallisesta käsikirjasta

Riak CS -tallennusjärjestelmässä kolme komponenttia toimii yhdessä, mikä tarkoittaa, että jokainen komponentti on konfiguroitava toimimaan muiden komponenttien kanssa:

  • Riak (KV) – tietokantajärjestelmä, joka toimii loppujärjestelmänä.
  • Riak CS - Riakin päällä oleva pilvitallennuskerros, joka tarjoaa tallennus- ja API-ominaisuudet, tallentaa tiedostot ja metatiedot Riakissa ja jakaa ne sitten loppukäyttäjille.
  • tukipylväs - Hallitsee kyselyitä, jotka koskevat maailmanlaajuisesti ainutlaatuisia kokonaisuuksia, kuten ryhmiä ja käyttäjiä Riak-instanssissa. Esimerkiksi käyttäjien luominen, ryhmien luominen tai poistaminen.

Lisäksi voit myös määrittää S3-asiakkaan käytettäväksi Riak CS -järjestelmän viestinnässä.

Sinun tulisi suunnitella, että sinulla on yksi Riak-solmu jokaista järjestelmän Riak CS -solmua kohden. Riak- ja Riak CS -solmuja voidaan ajaa eri fyysisillä koneilla, mutta useimmissa tapauksissa on parempi ajaa yksi Riak-solmu ja yksi Riak CS -solmu samassa fyysisessä koneessa. Olettaen, että yhdellä fyysisellä koneella on tarpeeksi tehoa tyydyttääkseen sekä Riak- että Riak CS -solmujen tarpeet, näet yleensä paremman suorituskyvyn verkkoviiveen pienenemisen vuoksi.

Jos järjestelmäsi koostuu useista solmuista, määrityksessä on ensisijaisesti kyse komponenttien välisen viestinnän määrittämisestä. Muilla asetuksilla, kuten lokitiedostojen tallennuspaikalla, on oletusarvot, ja niitä on muutettava vain, jos haluat käyttää epästandardeja arvoja.

Järjestelmäkomponenttien asettaminen. Riak KV:n asettaminen CS:lle

Koska Riak CS on Riakin päälle rakennettu sovellus, on erittäin tärkeää kiinnittää huomiota Riak-kokoonpanoosi, kun käytät Riak CS:ää. Tämä asiakirja on sekä Riak-määritysopas että viiteasiakirja, joka kuvaa tärkeitä konfigurointiparametreja.

Varmista ennen asennusta, että Riak KV ja Riak CS on asennettu jokaiseen klusterin solmuun. Stanchion sitä vastoin tulisi asentaa vain yhteen solmuun koko klusterissa.

Riakin pilvitallennus. Osa 1: Riak KV:n käyttöönotto

Taustaohjelmat Riak CS:lle

Riakin käyttämä oletustausta on Bitcask, mutta Riak CS -paketti sisältää erityisen taustajärjestelmän, jota Riak CS -järjestelmään kuuluvan Riak-klusterin on käytettävä. Tavallisessa versiossa on standardi Multi-taustaohjelma, joka tulee Riakin mukana.

Riak CS:n sisällä käytetyt samat Riak-säihöt käyttävät toissijaisia ​​indeksejä, jotka vaativat nyt LevelDB-taustajärjestelmän. Muut Riak CS -järjestelmän osat voivat hyötyä Bticask-taustajärjestelmän käytöstä. Riak CS:ään sisältyy Multi-backend-mallin käyttö molempien taustaohjelmien hyödyntämiseksi parhaan suorituskyvyn ja toiminnallisuuden yhdistelmän saavuttamiseksi. Seuraavassa osassa kuvataan, kuinka Riak määritetään oikein käyttämään tätä Multi-backendiä.

Backend Sitä Riak käyttää tietojen tallentamiseen. Riak KV:n arsenaalissa on useita taustaohjelmia: Bitcask, LevelDB, Memory ja Multi.

Lisäksi tallennuslaskentajärjestelmä käyttää Riak MapRedusea tiedostojen yhdistämiseen ämpeiksi. Tämä tarkoittaa, että sinun on kerrottava kaikille Riak-solmuille, mistä etsiä valmisteltuja Riak CS -tiedostoja ennen tallennustilan laskemista.

Useita muita parametreja on muutettava Riak-solmun määrittämiseksi osaksi Riak CS -järjestelmää, kuten IP-osoite ja IP-osoite sekä portti viestintää varten protokollapuskurien kautta. Muita asetuksia voidaan muuttaa tarvittaessa. Seuraavissa osissa kuvataan, kuinka Riak-solmu määritetään toimimaan osana Riak CS -järjestelmää.

Riak-taustajärjestelmän määrittäminen

Ensin muokataan riak.conf- tai advanced.config/app.config-määritystiedostoja. Nämä tiedostot voivat sijaita hakemistoissa /etc/riak tai /opt/riak/etc. Oletusarvoisesti Riak käyttää Bitcask-taustaohjelmaa. Ensimmäinen asia, joka meidän on tehtävä, on muuttaa asetustiedostoa poistamalla seuraava rivi:

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

Seuraavaksi meidän on osoitettava RiakCS-moduulien tarve Riakille ja ohjeistettava Riakia käyttämään määritettyä taustajärjestelmää, joka tarjoaa Riak CS:n. Tätä varten meidän on käytettävä advanced.config- tai app.config-tiedostoa ja lisättävä seuraavat vaihtoehdot:

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

On erittäin tärkeää huomata, että monet näistä arvoista riippuvat käyttöjärjestelmäsi hakemistomuunnelmista, joten noudata ohjeita vastaavasti. Esimerkiksi vaihtoehto add_paths olettaa, että Riak CS on asennettu hakemistoon /usr/lib/riak-cs, kun taas data_root-asetukset olettavat, että Riak on asennettu kansioon /var/lib. (Huomaa: Minun tapauksessani se oli add_paths - /usr/lib64/riak-cs/).

Tämä kokoonpano olettaa, että Riak CS on asennettu samaan koneeseen kuin Riak. Jos ei, paketti on kopioitava erilliseen isäntään.

Sisarusten luomisen määrittäminen

Nyt meidän on asetettava allow_mult-parametrin arvoksi tosi. Voimme lisätä rivin riak.conf-määritystiedostoon tai riak_core-osion advanced.config- tai app.config-tiedostoon.

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

Tämä antaa Riakille mahdollisuuden luoda sisaruksia, jotka ovat välttämättömiä Riak CS:n toiminnalle. Jos muodostat yhteyden Riak CS:ään asiakaskirjaston avulla, älä huoli: sinun ei tarvitse ratkaista ristiriitoja, koska kaikki Riak CS:n toiminnot ovat tiukasti määritellyt.

Sisarus on tapa tallentaa useita objekteja yhteen avaimeen niin, että objektilla on eri arvot eri solmuissa.

Huomautus: allow_mult
Jokaisen Riak-solmun, joka tukee myös Riak CS:ää, allow_mult-arvo on aina tosi. Riak CS nollaa käynnistyksen, jos arvo on väärä.

Isäntänimen ja IP-osoitteen asettaminen

Jokaisella Riak-solmulla on nimi, joka voidaan määrittää riak.conf-tiedoston solmunimi-asetuksessa. Jos käytät app.config-määritystiedostoa, sinun on luotava vm.args-niminen tiedosto samaan hakemistoon kuin app.config ja määritettävä isäntänimi -name-lipulla. Suosittelemme määrittämään solmujen nimet @-muodossa. Joten jos sinulla on kolme solmua käynnissä yhdessä isäntäversiossa 100.0.0.1, voit kutsua niitä [sähköposti suojattu], [sähköposti suojattu]Ja [sähköposti suojattu] tai voit antaa tarkempia nimiä, esim [sähköposti suojattu], [sähköposti suojattu] ja niin edelleen. Alla oleva esimerkki osoittaa isäntänimen muuttamisen muotoon [sähköposti suojattu], joka toimii localhostissa.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Sinun on nimettävä kaikki solmut ennen niiden käynnistämistä ja klusteriin liittymistä.

Asennustesti

Nyt kun kaikki tarvittavat solmuasetukset on tehty, voimme yrittää käynnistää Riakin:

SHELL

 riak start 

Huomautus Vastaus minun tapauksessani:

Riakin pilvitallennus. Osa 1: Riak KV:n käyttöönotto

Tässä sinun on odotettava vähän. Sitten voit aloittaa käynnissä olevan solmun testaamisen.

SHELL

 riak ping

Jos vastaus on pong, Riak on käynnissä; jos vastaus on, että solmu ei vastaa pingiin, jokin meni pieleen.

Huomautus Vastaus minun tapauksessani:

Riakin pilvitallennus. Osa 1: Riak KV:n käyttöönotto

Jos solmu ei käynnistynyt oikein, katso erlang.log.1-loki solmun /log-hakemistosta, jos ongelma voidaan tunnistaa. Yksi yleisimmistä virheistä on invalid_storage_backend. Mikä osoittaa, että Advanced.config- tai app.config-tiedoston Riak CS -kirjaston polku on virheellinen (tai Riak CS:ää ei ole asennettu palvelimelle). Tästä virheestä huolimatta varmista, että et ole vaihtanut riak_cs_kv_multi_backendistä riak_kv_multi_backendiksi.

Riakin määrittäminen käyttämään protokollapuskureita

Riak-protokollapuskurin asetukset sijaitsevat riak.conf-tiedostossa tai advanced.config- tai app.config-tiedostojen riak_api-osiossa, jotka sijaitsevat /etc/riak/-hakemistossa. Isäntäkoneen IP-osoite on oletusarvoisesti 127.0.0.1 ja portti 8087. Sinun on muutettava nämä, jos aiot käyttää Riakia ja Riak CS:ää ei-paikallisessa ympäristössä. Korvaa 127.0.0.1 Riak-isännän IP-osoitteella ja portti 8087 sopivalla.

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

Huom:Parametrin listener.protobuf.internal arvon riak.conf-tiedostossa (tai pb-parametrin arvon advanced.conf/app.config) on ​​vastattava Riak CS:n riak-cs.config-parametrin riak_host arvoja ja Stanchion stanchion.conf (tai riak_host edistyneissä .config/app.config) -tiedostoissa.

Huomautus portin numerosta
Eri porttinumero saatetaan vaatia, jos portti on ristiriidassa toisen sovelluksen käyttämien porttien kanssa tai jos käytät kuormituksen tasapainotinta tai välityspalvelinta.

On myös suositeltavaa, että käyttäjät varmistavat, että Riak protobuf.backlog -koko (tai advanced.config/app.config-tiedostoissa tämä on pb_backlog) on ​​yhtä suuri tai suurempi kuin riak-cs:ssä Riak CS:lle määritetty pool.request.size. config (tai request_pool_size advanced.config/app.conf-tiedostoissa).

Jos Riak CS:n pool.request.size-arvoa on muutettu, myös protobuf.backlog-arvo on päivitettävä Riakissa.

Muut Riak-asetukset

Riak.conf- ja advanced.config-tiedostot sisältävät muita asetuksia, jotka määrittävät lokitiedostojen luomisen ja tallennuspaikan. Näillä asetuksilla on oletusarvot, ja niiden pitäisi toimia useimmissa tapauksissa. Jos haluat lisätietoja, suosittelemme lukemaan määritystiedostoja käsittelevän dokumentaation.

IP-osoitteen määrittäminen Riakille

Kun määrität IP-osoitetta Riakille, sinun on varmistettava, että Riak-solmuilla on yksilöllinen IP-osoite, olipa kyseessä vain yksi solmu tai lisäämässä järjestelmään useampia solmuja. Riakin IP-osoite sisältyy riak.conf-tiedostoon tai - jos käytät app.config-tiedostoa - vm.args-määritystiedostoon, joka sijaitsee siellä /etc/riak-hakemistossa (tai /opt/riak/etc/ muissa käyttöjärjestelmissä ).

Aluksi Riakin IP-osoitteen sisältävä rivi osoittaa paikalliseen isäntään tässä paikassa:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Korvaa 127.0.0.1 haluamallasi Riak-solmun IP-osoitteella tai isäntänimellä.

Suorituskyky- ja kaistanleveysasetukset

Suorituskykysyistä suosittelemme arvojen lisäämistä Riak-määritystiedostoihin riak.conf tai vm.args, jotka sijaitsevat hakemistossa /etc/riak/ tai /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

JavaScript MapReducen poistaminen käytöstä

On suositeltavaa olla käyttämättä vanhaa JavaScript MapReducea minkään Riak CS -version kanssa. Suorituskykysyistä sinun tulee poistaa JavaScript MapReduce -toimintoja suorittava virtuaalikone käytöstä asettamalla riak.conf-määritystiedostossa tai advanced.conf- tai app.config-tiedoston riak_kv-osiossa:

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

Seuraavaksi meidän on määritettävä muut Riak CS -järjestelmän komponentit.

Alkuperäinen manuaali.

Lähde: will.com

Lisää kommentti