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.
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.
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:
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:
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.
Forrás: will.com