Riak Cloud Storage. 1. rész: A Riak KV beállítása

Riak CS (felhőalapú tárolás) – könnyen használható szoftver az objektumtárolás megszervezéséhez, a Riak KV-n fut. A Riak (KV) egy elosztott NoSQL kulcsérték adatbázis. A Riak CS-t úgy tervezték, hogy bármilyen léptékű felhőalapú tárolás egyszerűségét, elérhetőségét és elosztását biztosítsa, és felhasználható felhőarchitektúrák – nyilvános és magán – építésére, vagy infrastruktúra-tárolóként nagy terhelésű alkalmazások és szolgáltatások számára. A Riak CS API kompatibilis az Amazon S3-mal, és támogatja a különféle helyzetekről szóló jelentések fogadását.

Riak Cloud Storage. 1. rész: A Riak KV beállítása
Ez a cikk a Riak CS rendszer 2.1.1-es verziójának hivatalos kézikönyvének ingyenes fordítása

A Riak CS tárolórendszerben három összetevő működik együtt, ami azt jelenti, hogy minden összetevőt úgy kell konfigurálni, hogy a többi komponenssel együtt működjenek:

  • Riak (KV) – végrendszerként működő adatbázis-rendszer.
  • Riak CS - Felhőalapú tárolási réteg a Riak tetején, amely tárolási és API-képességeket biztosít, fájlokat és metaadatokat tárol a Riakban, majd elosztja azokat a végfelhasználóknak.
  • Oszlop - Kezeli a globálisan egyedi entitásokat, például a Riak-példányban lévő csoportokat és felhasználókat érintő lekérdezéseket. Például felhasználók létrehozása, csoportok létrehozása vagy törlése.

Ezenkívül az S3 klienst beállíthatja a Riak CS rendszerrel történő üzenetküldéshez.

A rendszer minden Riak CS csomópontjához egy Riak csomópontot kell terveznie. A Riak és Riak CS csomópontok különböző fizikai gépeken futtathatók, de a legtöbb esetben előnyösebb egy Riak és egy Riak CS csomópont futtatása ugyanazon a fizikai gépen. Feltételezve, hogy egy fizikai gép elegendő energiával rendelkezik a Riak és Riak CS csomópontok igényeinek kielégítésére, általában jobb teljesítményt fog látni a csökkentett hálózati késleltetés miatt.

Ha a rendszer több csomópontból áll, a konfiguráció elsősorban az összetevők közötti kommunikáció beállításáról szól. A többi beállításnak, például a naplófájlok tárolási helyének alapértelmezett értékei vannak, és csak akkor kell módosítani, ha nem szabványos értékeket kíván használni.

Rendszerelemek beállítása. A Riak KV beállítása CS-hez

Mivel a Riak CS a Riak tetejére épülő alkalmazás, nagyon fontos, hogy a Riak CS futtatásakor figyeljen a Riak konfigurációjára. Ez a dokumentum egyben Riak konfigurációs útmutató és egy referenciadokumentum, amely leírja a fontos konfigurációs paramétereket.

A telepítés előtt győződjön meg arról, hogy a Riak KV és a Riak CS telepítve van a fürt minden csomópontjára. A Stanchiont viszont csak egy csomópontra szabad telepíteni a teljes fürtben.

Riak Cloud Storage. 1. rész: A Riak KV beállítása

A Riak CS hátterei

A Riak által használt alapértelmezett háttérrendszer a Bitcask, de a Riak CS csomag tartalmaz egy speciális hátteret, amelyet a Riak CS rendszer részét képező Riak-fürtnek kell használnia. A normál verzió rendelkezik a Riak szabványos Multi hátterével.

A Riak CS-ben használt Riak gyűjtők másodlagos indexeket használnak, amelyekhez most LevelDB háttérrendszerre van szükség. A Riak CS rendszer más részei is profitálhatnak a Bticask háttérprogramból. A Riak CS tartalmazza a minta Multi backend használatát, hogy mindkét háttérrendszer előnyeit kihasználhassa a teljesítmény és a funkcionalitás legjobb kombinációja érdekében. A következő szakasz leírja, hogyan kell megfelelően beállítani a Riak-ot a több háttérrendszer használatához.

Háttérrendszer ezt fogja használni Riak az adatok mentésére. A Riak KV arzenáljában számos háttérprogram található: Bitcask, LevelDB, Memory és Multi.

Ezenkívül a tárhelyszámítási rendszer a Riak MapReduse-t használja a fájlok gyűjtődobozokba történő összesítésére. Ez azt jelenti, hogy a tárhely számítása előtt meg kell adnia az összes Riak csomópontnak, hogy hol keresse az előkészített Riak CS fájlokat.

Számos egyéb paramétert meg kell változtatni a Riak csomópontnak a Riak CS rendszer részeként történő konfigurálásához, például az IP-címet és az IP-címet és a portot a protokollpuffereken keresztüli üzenetküldéshez. A többi beállítás szükség esetén módosítható. A következő szakaszok leírják, hogyan kell egy Riak csomópontot úgy konfigurálni, hogy a Riak CS rendszer részeként működjön.

A Riak háttérrendszer beállítása

Először a riak.conf vagy az advanced.config/app.config konfigurációs fájlokat kell szerkeszteni. Ezek a fájlok az /etc/riak vagy /opt/riak/etc könyvtárban találhatók. Alapértelmezés szerint a Riak a Bitcask háttérprogramot használja. Az első dolog, amit tennünk kell, a konfigurációs fájl módosítása a következő sor eltávolításával:

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

Ezután be kell mutatnunk a RiakCS modulok szükségességét a Riak számára, és utasítanunk kell a Riakot a Riak CS-t biztosító konfigurált háttérprogram használatára. Ehhez az advanced.config vagy app.config fájlt kell használnunk, és a következő beállításokat kell hozzáadnunk:

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

Nagyon fontos megjegyezni, hogy ezen értékek közül sok az operációs rendszerre jellemző könyvtárváltozatoktól függ, ezért ennek megfelelően kövesse az utasításokat. Például az add_paths beállítás feltételezi, hogy a Riak CS a /usr/lib/riak-cs mappába van telepítve, míg a data_root paraméterek azt feltételezik, hogy a Riak a /var/lib könyvtárba van telepítve. (Megjegyzés: az én esetemben add_paths - /usr/lib64/riak-cs/).

Ez a konfiguráció feltételezi, hogy a Riak CS ugyanarra a gépre van telepítve, mint a Riak. Ha nem, akkor a csomagot külön gazdagépre kell másolni.

Testvérlétrehozás beállítása

Most az allow_mult paramétert igazra kell állítanunk. Hozzáadhatunk egy sort a riak.conf konfigurációs fájlhoz, vagy egy riak_core részt az advanced.config vagy app.config fájlhoz.

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

Ez lehetővé teszi a Riak számára, hogy olyan testvéreket hozzon létre, amelyek szükségesek a Riak CS működéséhez. Ha az ügyfélkönyvtár használatával csatlakozik a Riak CS-hez, ne aggódjon: nem kell feloldania az ütközéseket, mivel a Riak CS összes művelete szigorúan konzisztens a meghatározottak szerint.

Testvér egy módja annak, hogy több objektumot tároljunk egy kulcsban, így az objektum különböző csomópontokon különböző értékekkel rendelkezik.

Megjegyzés: allow_mult
A Riak CS-t is támogató Riak csomópontokon az allow_mult értéke mindig igaz. A Riak CS visszaállítja az indítást, ha az érték hamis.

A gazdagépnév és az IP-cím beállítása

Minden Riak csomópontnak van neve, amelyet a riak.conf csomópontnév opciójában adhatunk meg. Ha az app.config konfigurációs fájlt használja, létre kell hoznia egy vm.args nevű fájlt ugyanabban a könyvtárban, mint az app.config, és meg kell adnia a gazdagép nevét a -name kapcsolóval. Javasoljuk, hogy a csomópontneveket @ formátumban adja meg. Tehát ha három csomópont fut egy 100.0.0.1-es gazdagépen, akkor hívhatja őket [e-mail védett], [e-mail védett]És [e-mail védett] vagy adhatsz konkrétabb neveket is, mint pl [e-mail védett], [e-mail védett] stb. Az alábbi példa a gazdagép nevének megváltoztatását mutatja be [e-mail védett], amely localhost-on fog futni.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Az összes csomópontot el kell neveznie, mielőtt elindítaná őket és csatlakozna a fürthöz.

Beállítási teszt

Most, hogy az összes szükséges csomópont-beállítás elkészült, megpróbálhatjuk elindítani a Riak-ot:

SHELL

 riak start 

jegyzet A válasz az én esetemben:

Riak Cloud Storage. 1. rész: A Riak KV beállítása

Itt várnod kell egy kicsit. Ezután megkezdheti a futó csomópont tesztelését.

SHELL

 riak ping

Ha a válasz pong, akkor a Riak fut; ha a válasz az, hogy a csomópont nem válaszol a pingekre, akkor valami hiba történt.

jegyzet A válasz az én esetemben:

Riak Cloud Storage. 1. rész: A Riak KV beállítása

Ha a csomópont nem indult el megfelelően, nézze meg az erlang.log.1 naplót a csomópont /log könyvtárában, ha a probléma azonosítható. Az egyik leggyakoribb hiba az invalid_storage_backend. Ez azt jelzi, hogy a Riak CS könyvtár elérési útja az advanced.config vagy az app.config fájlban helytelen (vagy a Riak CS nincs telepítve a szerveren). A hiba ellenére győződjön meg arról, hogy nem váltott-e riak_cs_kv_multi_backendről riak_kv_multi_backendre.

A Riak beállítása protokollpufferek használatára

A Riak protokoll puffer beállításai a riak.conf fájlban vagy az advanced.config vagy app.config fájlok riak_api szakaszában találhatók, amelyek az /etc/riak/ könyvtárban találhatók. Alapértelmezés szerint a gazdagép IP-címe 127.0.0.1 és 8087-es portja. Ezeket meg kell változtatnia, ha a Riak és Riak CS-t nem helyi környezetben kívánja futtatni. Cserélje ki a 127.0.0.1-et a Riak gazdagép IP-címére, a 8087-es portot pedig egy megfelelőre.

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

Megjegyzés:A listener.protobuf.internal paraméter értékének a riak.conf fájlban (vagy a pb paraméter értékének az advanced.conf/app.config fájlban) meg kell egyeznie a Riak CS riak_host értékével riak-cs.config és Stanchion stanchion.conf (vagy riak_host a haladó .config/app.config) fájlokban.

Megjegyzés a portszámról
Eltérő portszámra lehet szükség, ha a port ütközik egy másik alkalmazás által használt porttal, vagy ha terheléselosztót vagy proxykiszolgálót használ.

Azt is javasoljuk, hogy a felhasználók gondoskodjanak arról, hogy a Riak protobuf.backlog mérete (vagy az advanced.config/app.config fájlokban ez a pb_backlog) legyen egyenlő vagy nagyobb, mint a Riak CS-hez a riak-cs-ben megadott pool.request.size. config (vagy request_pool_size az advanced.config/app.conf fájlokban).

Ha a pool.request.size értéke megváltozott a Riak CS-ben, akkor a protobuf.backlog értékét is frissíteni kell a Riakban.

Egyéb Riak beállítások

A riak.conf és advanced.config fájlok egyéb beállításokat is tartalmaznak, amelyek konfigurálják a naplófájlok létrehozását és azok mentési helyét. Ezeknek a beállításoknak alapértelmezett értékei vannak, és a legtöbb esetben működniük kell. További információért javasoljuk, hogy olvassa el a konfigurációs fájlokról szóló dokumentációnkat.

IP-cím beállítása Riak számára

Amikor IP-címet állít be a Riak számára, meg kell bizonyosodnia arról, hogy a Riak csomópontok egyedi IP-címmel rendelkeznek, akár csak egy csomóponttal dolgozik, akár több csomópontot ad hozzá a rendszerhez. A Riak IP-címe a riak.conf fájlban vagy - ha az app.config fájlt használja - a vm.args konfigurációs fájlban található, amely ott található az /etc/riak könyvtárban (vagy /opt/riak/etc/ más operációs rendszereken).

Kezdetben a Riak IP-címet tartalmazó sor a localhostra mutat ezen a helyen:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Cserélje ki a 127.0.0.1-et a Riak csomópont preferált IP-címére vagy gazdagépnevére.

Teljesítmény és sávszélesség beállítások

A teljesítmény érdekében erősen javasoljuk, hogy adjon hozzá értékeket a riak.conf vagy vm.args konfigurációs fájlokhoz, amelyek az /etc/riak/ vagy /opt/riak/etc könyvtárban találhatók.

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 letiltása

Javasoljuk, hogy ne használja az örökölt JavaScript MapReduce-t a Riak CS egyetlen verziójával sem. Teljesítmény okokból tiltsa le a JavaScript MapReduce műveleteket végrehajtó virtuális gépet a riak.conf konfigurációs fájlban vagy az advanced.conf vagy app.config riak_kv szakaszában:

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

Ezután konfigurálnunk kell a Riak CS rendszer többi összetevőjét.

Eredeti kézikönyv.

Forrás: will.com

Hozzászólás