Vissza a bloghoz

Hogyan konfiguráljuk a MongoDB replikációt és az automatikus feladatátvételt

Hogyan konfiguráljuk a MongoDB replikációt és az automatikus feladatátvételt

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:

How to Configure MongoDB Replication and Automated Failover 1-Replica set- graphic

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:

2-Create an Environment How to Configure MongoDB Replication and Automated Failover

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:

  1. Kattintson a Web SSH lehetőségre az egyik adatbázis-csomópontnál, és jelentkezzen be:

3- Web SSH How to Configure MongoDB Replication and Automated Failover

    2. Ezután megadhatja saját kulcsfájlját, vagy generálhat egy újat az openssl segítségével a következő paranccsal:

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:

4-Click on the Config

  • 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:

5- configuration tab How to Configure MongoDB Replication and Automated Failover

  • 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:

6-keys directory

  • 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:

7-Paste the clipboard content

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:

  1. 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:
      2. Ezután hozzáadunk egy új paramétert, melynek neve keyFile a security szakaszban. Ez arra szolgál, hogy megadja a kulcsfájl elérési útját, amely jelenleg a következő útvonalon található: /var/lib/jelastic/keys/mongo-set.key:

8-Add parameter keyFile

      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:

9-Restart your DB nodes How to Configure MongoDB Replication and Automated Failover

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:

10-access the MongoDB server How to Configure MongoDB Replication and Automated Failover

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:

11-Access the database How to Configure MongoDB Replication and Automated Failover

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:

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:

12-initiate your replica set How to Configure MongoDB Replication and Automated Failover

A mi esetünkben a végrehajtott sorok a következők:

13-config

14-rs.initiate()

        8. Ezután hajtsa végre a következő parancsot az összes többi adatbázisra:

Itt a {db_ip} az egyes adatbázisok IP-címére utal:

15-rs.add(

       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:

16-execute the rs.status()

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:

  1. 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:

17-ReplicaSet Arbiter

18-Scale out database cluster

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:

19- Restart newly

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:

Itt a {db_ip} az új csomópont IP-címe:

20-IP address of a newly added node

 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:

21-connect MongoDB instance

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.

  1. Kezdésként kattintson a Change Environment Topology lehetőségre, és adja hozzá a szervert:

22-Press Change Environment Topology

23-Press Change Environment Topology button

    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:

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:

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. 

Próbálja ki a PaaS-t ingyen 7 napig

author

Preslav Dobrev

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.