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

Riak CS (Cloud Storage) – könnyen használható szoftver az objektum tárolásának megszervezéséhez, amely a Riak KV fölött működik. A Riak (KV) egy elosztott NoSQL kulcs-érték (key-value) adatbázis. A Riak CS-t úgy tervezték, hogy biztosítsa a felhőalapú tárolás egyszerűségét, elérhetőségét és elosztott jellegét bármilyen méretben, és akár nyilvános, akár privát felhőarchitektúrák építésére, vagy mint infrastruktúrával kapcsolatos tárolót, magasan terhelt alkalmazásokhoz és szolgáltatásokhoz használható. A Riak CS API kompatibilis az Amazon S3-mal és támogatja a különböző helyzetekről való jelentéstétel lehetőségét.

Riak Cloud Storage. 1. rész. A Riak KV beállítása
Ez a cikk a Riak CS 2.1.1 verziójú hivatalos útmutatójának szabad fordítása.

A Riak CS tárolórendszerben három komponens együttműködik, ami megköveteli, hogy mindegyik komponenst konfiguráljuk a többi komponenssel való működéshez:

  • Riak (KV) – egy olyan adatbázis rendszer, amely végső rendszerként működik.
  • Riak CS — a Riak fölötti felhőalapú tároló réteg, amely tárolási és API lehetőségeket biztosít, fájlokat és metaadatokat tárol Riak-ban, majd azokat a végfelhasználóknak továbbítja.
  • Stanchion — kezeli a globálisan egyedi entitásokkal, például a Ryak példányaiban lévő tárolókkal és felhasználókkal kapcsolatos kérelmeket. Például felhasználók létrehozása, tárolók létrehozása vagy törlése.

Ezen kívül beállíthatja az S3 klienst is a Riak CS rendszerrel való üzenetváltáshoz.

Egy Riak csomópontot kell terveznie minden Riak CS csomóponthoz a rendszerében. A Riak és a Riak CS csomópontok különböző fizikai gépeken is futtathatók, de a legtöbb esetben előnyösebb, ha egy Riak és egy Riak CS csomópontot ugyanazon a fizikai gépen futtat. Feltételezve, hogy a fizikai gép elegendő teljesítménnyel rendelkezik, hogy kielégítse mindkét Riak és Riak CS csomópont igényeit, általában jobb teljesítményt tapasztalhat a hálózati késleltetések csökkentése miatt.

Ha rendszered több csomópontból áll, a konfiguráció elsődlegesen a komponensek közötti kommunikáció beállítását jelenti. Egyéb beállítások, mint például hogy hol tárolják a naplófájlokat, alapértelmezett értékekkel rendelkeznek, és csak akkor igényelnek változtatásokat, ha eltérő értékeket szeretnél használni.

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

Mivel a Riak CS egy Riak-ra épülő alkalmazás, nagyon fontos figyelni a Riak konfigurációjára, amikor a Riak CS elindul. Ez a dokumentum egyszerre szolgál a Riak konfigurálásának útmutatójául, valamint egy referenciaanyagként a fontos konfigurációs paraméterek leírásához.

A beállítás előtt győződj meg róla, hogy a Riak KV és a Riak CS telepítve van a klasztered minden csomópontján. A Stanchion-t ezzel szemben csak az egész klaszterben egy csomóponton kell telepíteni.

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

A Riak CS háttértárolói

Alapértelmezés szerint a Riak által használt háttértároló a Bitcask, de a Riak CS csomag egy speciális háttértárolót tartalmaz, amelyet a Riak klaszternek kell használnia, ami a Riak CS rendszer része. A szokásos verzióban van egy szabványos Multi háttértároló is, amely a Riak-szal érkezik.

Ugyanazok a Riak tárolók, amelyeket a Riak CS használ, másodlagos indexeket használnak, amelyek most LevelDB háttértárolót igényelnek. A Riak CS rendszer más részei profitálhatnak a Bitcask háttértároló használatából is. A minta Multi háttértároló használata a Riak CS-ben lehetővé teszi, hogy mindkét háttértároló előnyeit kihasználva optimális teljesítményt és funkcionalitást érjünk el. A következő részben azt ismertetjük, hogyan kell megfelelően beállítani a Riak-ot ennek a Multi háttértárolónak a használatához.

Háttértároló — ez az, amit a Riak használni fog az adatok tárolására. A Riak KV arzenáljában több háttértároló található: Bitcask, LevelDB, Memory és Multi.

Ezen kívül az adattárolási számítási rendszer a Riak MapReduce-t használja a fájlok tárolókká való összesítésére. Ez azt jelenti, hogy tájékoztatnod kell minden Riak csomópontot, hogy hol keresheti a Riak CS által előkészített fájlokat a tárolás számítása előtt.

Néhány más paramétert is módosítani kell a Riak csomópont konfigurálásához, mint a Riak CS rendszer része, mint például az IP-cím, valamint az IP-cím és a port a Protocol Buffers-en keresztüli kommunikációhoz. A többi beállítást igény szerint lehet módosítani. Az alábbi szakaszok leírják, hogyan lehet a Riak csomópontot beállítani a Riak CS rendszer részeként.

Riak háttérbeállítások konfigurálása

Először a riak.conf vagy advanced.config/app.config konfigurációs fájlokat kell szerkeszteni. Ezek a fájlok a /etc/riak vagy a /opt/riak/etc könyvtárakban találhatók. Alapértelmezés szerint a Riak a Bitcask háttérszerver használja. Az első dolog, amit tennünk kell, hogy módosítsuk a konfigurációs fájlt az alábbi sor törlésével:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

ADVANCED.CONFIG

{riak_kv,
 [ %% Töröld ezt a sort: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

APP.CONFIG

{riak_kv, 
  [ %% Töröld ezt a sort:
    {storage_backend, riak_kv_bitcask_backend},
]}

Ezt követően meg kell mutatnunk a RiakCS modulok szükségességét a Riakhoz, és meg kell adni a Riaknak, hogy az általunk konfigurált háttérszervert használja, amely biztosítja a Riak CS-t. Ehhez az advanced.config vagy app.config fájlt kell használnunk és a következő opciókat kell beírnunk:

ADVANCED.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% További konfigurációk
    {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"}
        ]}
    ]},
    %% További konfigurációk
]}

APP.CONFIG

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% További konfigurációk
    {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"}
        ]}
    ]},
    %% További konfigurációk
]}

Nagyon fontos megjegyezni, hogy ezen értékek többsége a rendszere specifikus könyvtárok változataitól függ, ezért a számítógépének megfelelően végezze el az utasításokat. Például az add_paths paraméter azt feltételezi, hogy a Riak CS a /usr/lib/riak-cs könyvtárban van telepítve, míg a data_root paraméterek azt feltételezik, hogy a Riak a /var/lib könyvtárban található. (Megjegyzés: Az én esetemben ez add_paths — /usr/lib64/riak-cs/ volt.)

Ez a konfiguráció azt feltételezi, hogy a Riak CS azonos gépen van telepítve, mint a Riak. Ha nem, akkor a csomag külön gépre szükséges átkonfigurálni.

A további szinkronizálás beállítása

Most be kell állítanunk az allow_mult paramétert true értékre. Ezt a riak.conf konfigurációs fájlban, vagy a riak_core szakaszban az advanced.config vagy app.config állományban adhatjuk hozzá.

RIAK.CONF

buckets.default.allow_mult = true

ADVANCED.CONFIG

{riak_core, [
    %% További konfigurációk
    {default_bucket_props, [{allow_mult, true}]},
    %% További konfigurációk
]}

APP.CONFIG

{riak_core, [
    %% További konfigurációk
    {default_bucket_props, [{allow_mult, true}]},
    %% További konfigurációk
]}

Ez lehetővé teszi a Riak számára, hogy szavazatokat hozzon létre, amelyek szükségesek a Riak CS működéséhez. Ha ügyfélkönyvtáron keresztül csatlakozik a Riak CS-hez, ne aggódjon: nem kell megoldania az ütközéseket, mivel minden Riak CS művelet szigorúan összehangolt a saját meghatározása szerint.

Szavazás — ez a módszer több objektum tárolására egy kulcsban, lehetővé téve, hogy az objektumnak különböző értékei legyenek különböző csomópontokon.

Megjegyzés: allow_mult
Bármely Riak csomópont, amely a Riak CS-t is támogatja, mindig true értékű lesz az allow_mult paraméter esetében. A Riak CS újraindítja az indítást, ha az érték false.

A csomópont neve és IP-címe beállítása

Minden Riak csomópontnak van egy neve, amelyet a riak.conf fájlban a nodename opcióban lehet megadni. Ha app.config fájlt használ, létre kell hoznia egy vm.args nevű fájlt ugyanabban a könyvtárban, ahol az app.config található, és meg kell adnia a csomópont nevét a -name kapcsolóval. Ajánljuk, hogy a csomópontok neveit @ formátumban adja meg. Tehát ha három futó csomópontja van ugyanazon a gazdagépen, mondjuk 100.0.0.1, akkor nevezheti őket riak1@100.0.0.1, riak2@100.0.0.1 és riak3@100.0.0.1, vagy adhatsz nekik specifikusabb neveket, mint test_cluster1@100.0.0.1, user_data3@100.0.0.1 és így tovább. Az alábbi példa bemutatja, hogy a csomópont nevét riak1@127.0.0.1 névre változtathatjuk, amely működni fog a helyi gazdagépen.

RIAK.CONF

 nodename = riak1@127.0.0.1 

VM.ARGS

 -name riak1@127.0.0.1

Minden csomópont nevét meg kell adnia az indítás és a klaszterbe való integrálás előtt.

Beállítási teszt

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

SHELL

 riak start 

Megjegyzés: Az én esetemben a válasz:

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

Itt egy kicsit várnia kell. Ezután már el lehet kezdeni a futó csomópont tesztje.

SHELL

 riak ping

Ha a válasz pong, akkor a Riak elindult: ha a válasz Node not responding to pings, akkor valami nem stimmel.

Megjegyzés: Az én esetemben a válasz:

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

Ha a csomópont hibásan indult, nézze meg az erlang.log.1 naplót a csomópont /log könyvtárában, ha a problémát azonosítani lehet. Az egyik leggyakoribb hiba az invalid_storage_backend. Ez azt jelzi, hogy a Riak CS könyvtárához vezető út az advanced.config-ban vagy az app.config-ban hibás (vagy a Riak CS nincs telepítve a szerveren). Ennek a hibának ellenére győződjön meg arról, hogy nem változtatta meg a riak_cs_kv_multi_backend-ről riak_kv_multi_backend-re.

A Riak beállítása a protokollok puffer használatára

A Riak protokollpuffer beállításai a riak.conf fájlban vagy a riak_api szakaszban találhatók az advanced.config vagy app.config fájlokban, amelyek az /etc/riak/ könyvtárban találhatók. Alapértelmezés szerint a host IP-címe 127.0.0.1 és a port 8087. Ezeket módosítania kell, ha a Riak-ot és a Riak CS-t nem helyi környezetben kívánja futtatni. Cserélje le a 127.0.0.1 IP-címet a Riak csomópont megfelelő IP-címére és a 8087 portot a megfelelőre.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

ADVANCED.CONF

{riak_api, [
    %% Egyéb beállítások
    {pb, ["10.0.2.10", 10001]},
    %% Egyéb beállítások
]}

APP.CONFIG

riak_api, [
    %% Egyéb beállítások
    {pb, ["10.0.2.10", 10001]},
    %% Egyéb beállítások
]}

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

Megjegyzés a portszámról
Más portszámra lehet szükség, ha a port ütközik egy másik alkalmazás által használt portokkal, vagy ha terheléselosztót vagy proxy-szervert használ.

Ajánlott, hogy a felhasználók győződjenek meg róla, hogy a Riak protobuf.backlog (vagy az advanced.config/app.config fájlokban a pb_backlog) mérete megegyezik vagy nagyobb, mint a pool.request.size, amely a Riak CS számára van megadva a riak-cs.config (vagy request_pool_size az advanced.config/app.conf fájlban).

Ha a pool.request.size értéke a Riak CS-ben módosult, akkor a protobuf.backlog értékét is frissíteni kell Riak-ban.

Egyéb Riak beállítások

A riak.conf és advanced.config fájlok más beállításokat is tartalmaznak, amelyek a naplófájlok létrehozását és tárolási útvonalát szabályozzák. Ezek a beállítások alapértelmezett értékekkel rendelkeznek és a legtöbb esetben működniük kell. További információkért javasoljuk, hogy olvassa el a konfigurációs fájlokkal kapcsolatos dokumentációnkat.

A Riak IP-címének beállítása

Beállításakor IP address a Riak számára meg kell győződnie arról, hogy a Riak csomópontok egyedi IP címmel rendelkeznek, akár egyetlen csomóponttal dolgozik, akár további csomópontokat ad hozzá a rendszerhez. A Riak IP-címe a riak.conf fájlban található vagy — ha az app.config fájlt használja — a vm.args konfigurációs fájlban, amely szintén az /etc/riak könyvtárban található (vagy más operációs rendszerekben az /opt/riak/etc/ könyvtárban).

Eredetileg, a Riak IP-címét tartalmazó sor a helyi hosztra mutat ezen a helyen.

RIAK.CONF

 nodename = riak@127.0.0.1

VM.ARGS

 -name riak@127.0.0.1

Cserélje le a 127.0.0.1 címet a kívánt IP-címre vagy a Riak csomópont nevére.

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

Teljesítménybeli okok miatt javasoljuk az értékek hozzáadását a Riak riak.conf vagy vm.args konfigurációs fájlokhoz, amelyek a /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

Nem ajánlott az elavult JavaScript MapReduce használata a Riak CS bármely verziójával. Teljesítménybeli okokból le kell tiltania a JavaScript MapReduce műveleteket végrehajtó virtuális gépet a riak.conf konfigurációs fájlban, vagy a riak_kv szekcióban az advanced.conf vagy app.config fájlban:

RIAK.CONF

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

ADVANCED.CONFIG

{riak_kv, [
    %% További konfigurációk
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% További konfigurációk
]}

APP.CONFIG

{riak_kv, [
    %% További konfigurációk
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% További konfigurációk
]}

Ezután be kell állítanunk a Riak CS rendszer további komponenseit.

A kézikönyv eredeti változata.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster