A replikakészlet definíció szerint egy több csomópontból álló adatbázis-klaszter, amelyek között replikáció és automatikus feladatátvétel van konfigurálva. Annak érdekében, hogy a PRIMARY adatbázis kiválasztása megfelelően történjen, fontos, hogy a készletben páratlan számú tag legyen (beleértve vagy kizárva a Arbiter csomópontot).
A kiválasztott adatbázis felelős az összes főbb feladatért. Feldolgozza a bejövő írási műveleteket, és az információikat az oplogban tárolja. Ezekhez az információkhoz a SECONDARY replikatagok hozzáférhetnek és replikálhatják azokat, hogy alkalmazzák a saját adatkészleteikre. Ennek eredményeként a készletben lévő összes szerver ugyanazt a tartalmat fogja képviselni, és biztosítja annak elérhetőségét:

Most képzeljen el egy olyan helyzetet, amikor egy váratlan probléma (például hardver- vagy kapcsolat hiba) miatt az elsődleges adatbázis leáll. Ilyen esetben a rendszer automatikusan új választási folyamatot indít el a normál működés helyreállítása érdekében, kézi beavatkozás nélkül. Egy ilyen rendszer előnye, hogy a legjobbat kapja a replikációból, mint például a megnövekedett elérhetőség, a feladatátvételi redundancia és a katasztrófa utáni helyreállítás, anélkül, hogy aggódnia kellene több adatbázis külön-külön történő kezelése miatt.
Ha hasonló rendszert szeretne alkalmazni, ez az útmutató bemutatja, hogyan konfigurálhat egy MongoDB replikakészletet a CloudSigma PaaS segítségével. Amint azt ebben az útmutatóban látni fogja, három tagot fogunk használni, ami általában elegendő ahhoz, hogy megfelelő információbiztonságot és teljesítményt nyújtson az I/O műveletek kezeléséhez a legtöbb gyakori alkalmazás esetében. A replikáció tényleges konfigurálása mellett megtanuljuk a környezet előkészítését, a DB csomópontok közötti hitelesítés beállítását, valamint azt is, hogyan győződhet meg a munka sikerességéről.
1. lépés: Új környezet létrehozása
A kezdéshez legalább 3 MongoDB csomópontra lesz szüksége a replikakészlet konfigurálásának megkezdéséhez. Tehát hozzon létre egy új környezetet a következők szerint:

Példánkban az összes 4.0.2-es verziójú MongoDB példányt ugyanahhoz a környezethez rendeljük hozzá. Szükség esetén megváltoztathatja a Környezet nevét a megadott mezőben, majd folytathatja a telepítési folyamatot.
A folyamat következő lépése a csomópontok közötti kommunikáció biztonságának kezelése lesz a hitelesítési kulcsfájl segítségével.
2. lépés: Hitelesítési kulcsfájl hozzáadása
A hitelesítés minden replikáció kritikus összetevője. Ez egy biztonsági folyamat, amely csak akkor biztosít hozzáférést egy replikakészlet-tagnak, miután az helyesen azonosítja magát egy egyedi hitelesítési kulcsfájllal. Ez megvédi adatait a hívatlan látogatóktól és harmadik felektől. Így generálhatja saját hitelesítési kulcsfájlját:
- Kattintson a Web SSH lehetőségre az egyik adatbázis-csomópontnál, és jelentkezzen be:

2. Ezután megadhatja saját kulcsfájlját, vagy generálhat egy újat az openssl segítségével a következő paranccsal:
|
1 |
openssl rand -base64 741 > my.key |
Ebben a parancsban a 741 a kulcs méretét jelöli bájtokban, és my.key a kulcs neve.
3. Itt az ideje, hogy elossza az új kulcsfájlt az összes MongoDB példány között. Így teheti meg:
- Nyissa meg a Fájlkezelőt a Config gombra kattintva bármelyik adatbázis-csomópont mellett:

- Keresse meg a my.key fájlt a konfigurációs lapon a következő útvonalon: /home/jelastic/my.key fájlt. Nyissa meg, és másolja ki a fájl tartalmát:

- A következő útvonal alatt: /var/lib/jelastic/keys megtalálja a keys könyvtárat. Hozzon létre egy Új fájlt amelyet a MongoDB példányok egymás azonosságának hitelesítésére fognak használni. Esetünkben egy mongo-set.key:

- Illessze be a korábban másolt tartalmat ebbe a fájlba, és alkalmazza a változtatásokat a Save gombra kattintva az összes példány esetében:

E folyamat eredményeként a mongo-set.key fájl elosztásra került az összes MongoDB csomópontunk között.
3. lépés: A MongoDB replikáció konfigurálása
Most, hogy biztosítottuk a példányok biztonságát, rátérhetünk a replikakészlet tényleges konfigurálására. Kezdjük el:
- Kezdje azzal, hogy megnyitja a MongoDB csomópontok konfigurációs lapját, és megnyitja a mongo.conf fájlt az etc mappát. Görgessen le, amíg meg nem találja a replication szakaszt. Vegye ki a kommentből, és adja hozzá a következő karakterláncot a replikakészlet egyedi nevével. Példánkban a neve db-replication:
|
1 |
replSetName: db-replication |

3. Kattintson a megfelelő gombra a Mentéshez a változtatások minden példányra történő alkalmazásához a szerkesztőablakban.
4. Most újra kell indítania az összes adatbázis csomópontot az új konfigurációs paraméterek alkalmazásához:

Egy dolgot érdemes szem előtt tartani: miután befejezte a replikakészlet konfigurálását, és újraindítja az összes csomópontot vagy az ELSŐDLEGES csomópontot, az újraindítás során megkezdődik az új ELSŐDLEGES adatbázis választási folyamata.
5. Válassza ki azt a MongoDB szervert, amelyet ELSŐDLEGESKÉNT szeretne használni, és lépjen be rá SSH protokollon keresztül:

Ne feledje: miután az ELSŐDLEGES adatbázis kiválasztásra került, a többi replikakészlet-tag már nem lesz elérhető közvetlen írási műveletekre. Ez azt jelenti, hogy minden módosítás és konfiguráció csak a jelenlegi ELSŐDLEGES csomóponton hajtható végre és alkalmazható. Tehát hacsak nem állított be prioritásokat, meg kell változtatnia az alkalmazásában a kapcsolati karakterláncot az új ELSŐDLEGES csomópontra.
6. Ezután lépjen be a replikált adatbázisba a megfelelő hitelesítő adataival:
|
1 |
mongo -u {user} -p {password} {DB_name} |

Ebben a parancsban:
- {user} –az adminisztrátori felhasználónévre utal, amelyet e-mailben küldtünk el Önnek (ez általában alapértelmezés szerint admin).
- {password} –ez az e-mailben elküldött jelszó a megfelelő felhasználónévvel együtt.
- {DB_name}- annak az adatbázisnak a nevét jelöli, amelyet replikálni szeretne ebben a replikakészletben (példánkban az alapértelmezett admin-t használjuk).
Új választás esetén ugyanazokat az admin felhasználói hitelesítő adatokat használhatja az új ELSŐDLEGES adatbázisba való bejelentkezéshez.
7. Most, hogy a kapcsolat létrejött, a következő sorokat kell végrehajtania a jelenlegi MongoDB csomópont paramétereinek meghatározásához és a replikakészlet elindításához:
|
1 2 3 4 5 |
config = {_id : "{replica_set}", members : [{_id : 0, host:"{current_db_ip}:27017"},]} rs.initiate() |
A fenti sorokban a zárójelben lévő értékeket helyettesítse a saját megfelelő adataival:
- {replica_set} – ez a replikáló adatbázis-csoport neve, amelyet a szakasz elején megadott. A mi esetünkben ez a db-replication volt.
- {current_db_ip} – a kiválasztott adatbázis-konténer IP-címét jelöli:

A mi esetünkben a végrehajtott sorok a következők:
|
1 2 |
config = {_id : "db-replication", members : [{_id : 0, host:"10.100.2.182:27017"},]} |

|
1 |
rs.initiate() |

8. Ezután hajtsa végre a következő parancsot az összes többi adatbázisra:
|
1 |
rs.add("{db_ip}:27017") |
Itt a {db_ip} az egyes adatbázisok IP-címére utal:

9. Miután hozzáadta az összes replikációs tagot, egy teljesen működőképes replikakészletet kap. Javasoljuk, hogy a folyamat végén ellenőrizze, hogy minden megfelelően lett-e konfigurálva. Ehhez hajtsa végre a következő parancsot: rs.status(). Ez teljes körű információt nyújt a replikakészletéről, az alábbiak szerint:

4. lépés: A ReplicaSet Arbiter beállítása
Bizonyos esetekben javasoljuk egy Arbiter csomópont használatát. Mi az az Arbiter csomópont? Jellemzően a replikáció megbízhatóbb, ha a replikakészlet páratlan számú csomópontot tartalmaz. Tehát ha jelenleg páros számú csomópont van a készletében, hozzáadhat egy Arbiter csomópontot a kvórum fenntartásához, mivel az válaszol a készlet többi tagjától érkező heartbeat és választási kérésekre. Íme néhány részlet az Arbiter csomópontokról:
- Az Arbiter nem tárol adatokat; csak szavaz a választásokon, ha egy másik csomópont meghibásodott.
- Nagyon könnyű, és nem fogyaszt túl sok erőforrást.
- Felhasználói hitelesítő adatokat cserélt a titkosított replikák között.
- A legmagasabb rendelkezésre állás fenntartása érdekében próbálja meg az Arbitert egy külön csomóponton futtatni.
A következőképpen adhat hozzá egy Arbiter csomópontot a replikakészletéhez:
- Először elvégzünk némi horizontális skálázást, és hozzáadunk egy extra csomópontot a fürthöz:


2. A csomópont hozzáadásával egy új kulcsfájlra van szükségünk. Lépjen a keys könyvtárba, és hozzon létre egy kulcsfájlt mongo-set.key. Másolja ki a kulcs tartalmát a korábban konfigurált adatbázis-csomópontok bármelyikéből, és illessze be ide, ahogy korábban is tette.
3. Lépjen a mongod.conf konfigurációs fájlba. Vegye ki a megjegyzésből a replikációs részt, és adja hozzá a repISetName (ez db-replication a mi esetünkben). Emellett lépjen a security szakaszhoz, és adja hozzá a keyFile paramétert ( /var/lib/jelastic/keys/mongo-set.key a mi esetünkben).
4. Végül indítsa újra az új csomópontot az új konfigurációs paraméterek alkalmazásához:

Fontos megjegyezni, hogy ezen a ponton NEM kell újraindítania a fürt összes csomópontját. Csak az újonnan hozzáadott Arbiter csomópontot indítsa újra. Az összes csomópont újraindítása új PRIMARY választást eredményez (kivéve, ha megadott prioritásokat egy adott adatbázis-csomópont PRIMARY-ként való kiválasztásához).
5. Végül az Arbiter hozzáadható a replikakészlethez. Ehhez futtassa a következő parancsot a PRIMARY csomóponton:
|
1 |
rs.addArb("{db_ip}:27017") |
Itt a {db_ip} az új csomópont IP-címe:

6. Most ellenőrizheti, hogy az új csomópont valóban Arbiter lett-e. Ezt úgy teheti meg, hogy SSH-n keresztül bejelentkezik az új csomópontra, és csatlakozik a MongoDB példányhoz a csomópont létrehozásakor e-mailben kapott hitelesítő adatokkal:

Ez azt mutatja, hogy az újonnan hozzáadott csomópont a db-replication Arbiterjeként működik. Ez biztosítja a határozatképességet (kvórumot) minden helyzetben, megbízhatóbbá téve a replikakészletet.
Step 5: Test Database Cluster Availability
Ezután beállíthatjuk a MongoDB fürtünket a távoli csatlakozáshoz és műveletek végrehajtásához. A következő példában egy egyszerű PHP kisalkalmazás segítségével fogunk csatlakozni és végrehajtani néhány ellenőrző parancsot.
Ehhez egy alkalmazásszerverre lesz szüksége, mint például az Apache. Hozzáadhat egyet a környezetéhez, ahogy mi tettük, vagy létrehozhat egy újat egy külön környezetben.
- Kezdésként kattintson a Change Environment Topology lehetőségre, és adja hozzá a szervert:


2. Nyissa meg a Configuration Manager fület az Apache szerverhez a Config gombra kattintva, az alábbiak szerint:

3. Keresse meg és nyissa meg az index.php fájlt a /var/www/webroot/ROOT könyvtárban, és illessze be a következő kódot az alapértelmezett tartalom helyére:
|
1 |
<!--?php try{ $mongodbConnectionURI= "mongodb://{db_username}:{db_password}@node{NodeID}-{environment_domain}:27017, node{NodeID}-{environment_domain}:27017,node{NodeID}-{environment_domain}:27017,node{NodeID}-{environment_domain}:27017/?replicaSet={replica_set_name}&readPreference=primary"; $manager = new MongoDB\Driver\Manager($mongodbConnectionURI); $command = new MongoDB\Driver\Command(['ping' => 1]); $cursor = $manager->executeCommand('db', $command); $response = $cursor->toArray()[0]; var_dump($response); echo'<br><br>'; var_dump($manager->getServers()); } catch (Exception $e){ echo $e->getMessage(); } ?--> |
A fenti kódban szereplő alábbi értékeket ki kell cserélnie a megfelelő adataira:
- {replica_set_name} – adja meg a replikakészlet nevét.
- {db_username} – adja meg a kiválasztott elsődleges adatbázis adminisztrátor felhasználóját (alapértelmezés szerint ez az admin).
- {db_password} – adja meg az adminisztrátor felhasználó jelszavát.
- {NodeID} – adja meg a megfelelő csomópont azonosítószámát. Ezt megtalálja a CloudSigma PaaS vezérlőpulton.
- {environment_domain} – adja meg a környezeti domaint. Ezt szintén megtalálja a CloudSigma PaaS vezérlőpulton:

Győződjön meg arról, hogy a replikakészlet minden csomópontjának azonosítóját megadta a megfelelő mongodbConnectionURI szakaszban.
A megfelelő értékek megadása és a kód futtatása után az alábbihoz hasonló karakterláncokat fog látni:

Győződjön meg róla, hogy menti a fájlt ezen a ponton!
4. Ahhoz, hogy az Apache kommunikálni tudjon a MongoDB szerverrel, egy speciális modulra van szüksége. Ezt a modult a configs mappában adhatja hozzá. Lépjen az etc mappába, és nyissa meg a php.ini fájlt. Keresse meg a [mongodb] szakaszt. Itt mindössze annyit kell tennie, hogy eltávolítja a pontosvesszőt a extension=mongodb.so sor elől a kiterjesztés engedélyezéséhez:

5. Alkalmazza az új konfigurációkat a Mentés gombra kattintva a szerkesztőablakban. Mint mindig, most is újra kell indítanunk a csomópontokat a változtatások alkalmazásához. Kattintson a Restart Nodes gombra a Application Server mellett ehhez:

6. Most kattintson a Open in Browser gombra a teszteléshez:

Erre az ikonra kattintva egy új böngészőlap nyílik meg, amely a következőképpen mutatja be a replikakészlet tagjaival/csomópontjaival és azok elérhetőségével kapcsolatos összes információt:

Mivel a ping parancsot használtuk (az index.php 6. sora), az első sor a replikakészlet elérhetőségének ellenőrzési eredményét mutatja:
|
1 |
object(stdClass)#11 (3) { ["ok"]=> float(1) } |
Ez azt jelenti, hogy a replikakészlet tesztelése sikeres volt.
Az eredmények következő blokkja részletes információkat mutat a replikakészlet gazdagépeiről. Ezeket az adatokat a getServers függvénynek köszönhetően kapjuk meg (az index.php 11. sora). Hasonlóképpen ellenőrizhet néhány, a replikakészlet létrehozása során hozzárendelt értéket is:
- host – egy adott adatbázis IP-címe.
- port – ez az aktuális replikációs tag portja.
- [“is_primary”] és [“is_secondary”] – a szerver állapotát jelző paraméterek. A kiválasztott elsődleges MongoDB szerver megfelelő értékei true, false, a másik két MongoDB szerver esetében pedig – false, true.
Ezenkívül bármikor elindíthatja és leállíthatja az adatbázis-csomópontokat a változások nyomon követéséhez. Ugyanehhez frissítheti is az oldalt. Ez lehetővé teszi annak biztosítását, hogy a MongoDB klaszter mindig elérhető, aktív és a konfigurációnak megfelelően működjön.
A CloudSigma PaaS lehetővé teszi a felhasználók számára, hogy kihasználják a replikakészletek használatának előnyeit anélkül, hogy túl sokat kellene aggódniuk a konfiguráció és a háttérrendszer (back-end) miatt. Ez az útmutató bemutatja, milyen egyszerű lehet a saját MongoDB klaszter beállítása mindössze néhány egyszerű lépésben. További információkat tudhat meg a MongoDB, hogyan set it up for Ubuntu vagy public cloud servers, valamint arról, hogy milyen egyéb fejlett funkciókat kínál a CloudSigma PaaS. Arra is biztatjuk, hogy take a trial run a PaaS ingyenes verziójával, hogy megismerkedjen a dashboard és a marketplace és azok kínálatával.
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.