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.

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.

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 = bitcaskADVANCED.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 = trueADVANCED.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.1Minden 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:

Itt egy kicsit várnia kell. Ezután már el lehet kezdeni a futó csomópont tesztje.
SHELL
riak pingHa 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:

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:10001ADVANCED.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.1VM.ARGS
-name riak@127.0.0.1Cseré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 = 65536VM.ARGS
## This setting should already be present for recent Riak installs.
-env ERL_MAX_PORTS 65536JavaScript 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.
Forrás: habr.com
