Vissza a bloghoz

Hogyan állítsuk be és optimalizáljuk a MongoDB-t Ubuntun a nyilvános felhőben

Hogyan állítsuk be és optimalizáljuk a MongoDB-t Ubuntun a nyilvános felhőben

A vállalkozások rengeteg adatot jelentenek, és ez megnehezíti a kezelésüket és menedzselésüket. Hagyományosan az iparág már évtizedek óta RDBMS rendszereket használ, de a Big Data 21. századi megjelenésével a NoSQL (Not only SQL) adatbázisok is képbe kerültek a nagyméretű strukturálatlan és félig strukturált adatok kezelésére.

Ebben a bejegyzésben egy MongoDB fürtöt fogok beállítani.

MongoDB egy ingyenes és nyílt forráskódú NoSQL dokumentum-adatbázis, amelyet széles körben használnak az általa biztosított magas szintű skálázhatóság és rugalmasság miatt.

A MongoDB éles környezetben történő bevezetéséhez javasolt a Replica Set-ek használata. A Replica Set-ek a MongoDB megfelelői a relációs világ Master/Slave felépítésének, de ezzel ellentétben a beállításuk rendkívül egyszerű, mivel minden be van építve. A Replica Set-ekről bővebben lásd a TutorialsPoint’s replikációs folyamatról szóló definícióját.

A MongoDB felhőszerver-fürt tervezése

Egy 3 csomópontos fürtöt fogok létrehozni. Fontos, hogy egyenlő erőforrásokat biztosítsunk nekik, mert bármelyikük elsődleges (azaz master) szerverré válhat. Ezek a csomópontok vagy gépek bármilyen operációs rendszeren futhatnak, de ebben az útmutatóban az Ubuntu 18.04 LTS-t fogom használni. A CloudSigma’s könyvtárából származó, előre telepített lemezkép csatolásáról és beállításáról részleteket talál ebben az útmutatóban.

Mivel a Replica Set lényege éppen az, hogy a fürt túlélje egyetlen csomópont leállását, meglehetősen értelmetlen lenne, ha az összes szerver ugyanazon a fizikai gazdagépen helyezkedne el. Szerencsére a CloudSigma kínál egy úgynevezett rendelkezésre állási csoportok funkciót. Ez azt jelenti, hogy utasíthatja a rendszert, hogy mindhárom szerverét különböző csoportokba sorolja. Így soha nem fognak ugyanazon a fizikai gazdagépen elhelyezkedni. Erről, valamint az egyéb biztonsági és üzletmenet-folytonossági funkciókról további információkat talál itt.

Szintén fontos a Linux 64 bites verziójának használata. Ennek oka egyszerűen az, hogy a MongoDB nem fut jól 32 bites rendszereken (erről bővebben itt).

A MongoDB telepítése a felhőben

Ez a rész meglehetősen egyszerű. Használja az előre konfigurált Ubuntu 18.04 lemezképek egyikét, vagy telepítse saját maga.

A CPU-, RAM- és lemezkonfiguráció valóban egyéni, és a terheléstől függ. Egy kisebb telepítéshez elegendőnek kell lennie egy 4 GHz-es CPU-nak, 4 GB RAM-nak és 10 GB-os lemeznek (a rendszer számára). A meghajtók csatlakoztatásakor győződjön meg arról, hogy VirtIO-t használ. Ha IDE-t használ, a teljesítmény jelentősen visszaesik. Emellett, mivel Replica Set-et hoz létre, az összes csomópontnak (és alkalmazásszervernek) ugyanazon a VLAN-on kell lennie.

Sok más felhőszolgáltatóval ellentétben itt nincs szükség a tárhely RAID10 vagy hasonló konfigurálására a teljesítmény javítása érdekében. Ahogy arról számos ügyfelünk beszámol, lenyűgöző teljesítményt fog kapni alapértelmezetten az SSD és a mágneses lemezek együttes használatával a CloudSigma-nál.

Ennek ellenére javaslom, hogy a MongoDB adatokat egy külön meghajtón tárolja. Ennek oka egyszerűen az, hogy egy bizonyos ponton olyan fájlrendszer-optimalizálásokat kellhet végrehajtania, amelyeket nem szeretne a teljes fájlrendszerén elvégezni.

Ezt szem előtt tartva a legegyszerűbb, ha ezt a meghajtót csak a szerverek beállítása után adja hozzá. Egyelőre fókuszáljunk csak a rendszer telepítésére. Ha saját maga telepíti (ahelyett, hogy az előre konfigurált rendszereket használná), javaslom, hogy nyomja meg az F4 billentyűt a rendszerindító menüben, és válassza a ‘Install a minimal virtual machine’ lehetőséget.

3 gépet hozok létre, mindegyiket az alábbi specifikációkkal:

  • CPU: 4 GHz
  • RAM: 4 GB
  • SSD: 10 GB (Ubuntu 18.04 LTS), 20 GB (extra meghajtó)

Ahogy az az SSD résznél szerepel, egy 10 GB méretű meghajtót csatlakoztatok, amelyre az Ubuntu 18.04 LTS van telepítve.

Ezenkívül egy másik, 20 GB méretű üres meghajtót is csatlakoztatok hozzá a MongoDB adatok tárolására. Ennek mérete nagyban függ a használattól, de egy kis rendszerhez valószínűleg elegendőnek kell lennie 20 GB-nak. Mivel azonban néha nehéz megjósolni, hogy mennyi adatot fog tárolni, az LVM-et fogjuk használni. Ez lehetővé teszi, hogy később egyszerűen hozzáadjon egy másik meghajtót, és bővítse a kötetet anélkül, hogy elölről kellene kezdenie. Alternatív megoldásként használhat egyetlen meghajtót is, és később felskálázhatja aresize2fs.

A lemez hozzáadásához egyszerűen lépjen a ‘Drives’ szakaszba, kattintson a felül található ‘Create a new drive’ ikonra, adjon nevet az új lemeznek, és állítsa a méretét 20 GB-ra. Miután elmentette, lépjen arra a gépre, amelyhez csatlakoztatni szeretné, és a gép részleteinek meghajtók szakaszában kattintson az ‘Attach a drive’ lehetőségre, majd válassza ki a lemezt.

Most, hogy már három gépe van, továbbléphet a MongoDB adattároláshoz hozzáadott extra lemez csatolására mindegyik gépen. Javaslom, hogy ezt a lemezt partícióként adja hozzá. A particionálás lehetővé teszi az operációs rendszer számára, hogy az egyes régiókban lévő információkat külön kezelje. A lemez partícióként való hozzáadásához először ellenőrizni fogom a gépünkhöz csatlakoztatott összes lemezt. Ehhez a következő parancsot fogom végrehajtani:

A parancs végrehajtásakor megkapom a gépemen lévő lemezeket és eszközöket felsoroló kimenetet.

MongoDB

A képen egy 10 GB-os lemezt jelöltem meg, mint amelyre az operációs rendszerünk telepítve van. Ezután van egy másik, 20 GB-os lemez, amely most lett csatlakoztatva. A lemez helye: /dev/vdb. Ezen a lemezen a következő parancsokkal hozhat létre partíciót:

Ez megnyitja az fdisk segédprogramot, egy parancssori eszközt, amely lemezparticionálási funkciókat biztosít, és amelyben partíciókat hozhat létre a lemezünkön. Megjelenik egy “Command (m for help):” felszólítás, ahol be kell írnia a következőt: n egy új partíció létrehozásához, majd nyomja meg folyamatosan az Entert az alapértelmezett értékek elfogadásához. Miután pedig létrehozta a partíciót, írja be a következőt: w a változtatások mentéséhez. Ez így fog kinézni:

Létrehozott egy új, 1-es számú, ‘Linux’ típusú és 20 GiB méretű partíciót. Most, hogy a partíció létrejött, hozzunk létre egy LVM poolt:

A ‘19.5g’ értéket adtam meg, mivel a partícióm mérete 20g. Ezután hajtsa végre a következő parancsot a lemez nevének kiderítéséhez:

Ezt követően formázza a lemezt az ext4 módszerrel a következő paranccsal:

Ezután hozzunk létre egy helyet a lemez csatolásához, valamint egy mappát, amelyben a MongoDB adatokat tároljuk.

Ahhoz, hogy bejegyzést adjon az fstab-hoz a csatolandó új lemezről, közvetlenül használhatja az alábbi parancsot:

A parancsban a blkid megadja az egyes lemezek UUID-ját – univerzálisan egyedi azonosítóját. Itt kigyűjtöm (grep) a MongoDB lemezhez tartozót, és ezt az UUID-t kombinálom a csatolási mappa helyével, a fájlrendszer típusával és a lemez egyéb beállításaival. Ezt a sort hozzáadom az /etc/fstab fájlhoz. Ha ezt nem teszi meg, hibaüzenetet kap a lemez csatolásakor. A bejegyzés így néz ki:

UUID=”695a62e6-021d-4fc0-945c-cc51a92d86da” /mongodb ext4 auto,noexec,rw,sync,nouser 0 0

Most már csatolhatja a lemezt a /mongodb helyre:

Installing MongoDB

A rendszer előkészítése után térjünk át a MongoDB telepítésére. Bár az Ubuntu kínál egy MongoDB verziót a saját tárolójában, javaslom, hogy inkább a hivatalos MongoDB verziót használja. Ennek az az oka, hogy az Ubuntu tárolója meglehetősen le van maradva a kiadások terén, így ha a legtöbbet szeretné kihozni a MongoDB-ből, a hivatalos kiadásokhoz kell fordulnia.

Mivel a MongoDB saját tárolót kínál, ezt egyszerűen hozzáadhatja a rendszeréhez, majd a szokásos módon telepítheti a MongoDB-t. A követendő lépések a következők:

Először importálja a csomagkezelő rendszer által használt nyilvános kulcsot:

Ezután létrehozok egy listafájlt. Ez tartalmazza majd azt a tárolót, ahol a MongoDB található, így a rendszere onnan tudja letölteni:

Most frissítem a helyi csomagadatbázisomat, hogy figyelembe vegyem a változásokat.

Most már telepíthetem a csomagot a következő paranccsal:

Telepítettem a MongoDB-t mindegyik gépre.

Most már a MongoDB fut, és az adatok a létrehozott meghajtón vannak. Ha nagy terhelés és/vagy sok kapcsolat várható, szükség lehet a ulimit értékek növelésére.

Ha szeretne mélyebb betekintést nyerni az adataiba, érdemes regisztrálnia a MongoDB MMS szolgáltatására is, amely egy ingyenes, felhőalapú megfigyelő szolgáltatás a MongoDB-hez.

A replikakészlet (Replica Set) létrehozása a MongoDB felhőhöz

Most hozzunk létre egy replikakészletet. Ezt megelőzően biztosítania kell, hogy a gépek kommunikálni tudjanak egymással. Ebből a célból adja hozzá ezeket a bejegyzéseket az /etc/hosts fájlhoz

A hitelesítéshez megpróbálhatja pingelni a gépeket a gépnév használatával. Tehát ha az 1-es gépem IP-címe az IP-1, mondjuk 213.189.123.12, akkor ahelyett, hogy ezt írná:

ezt fogom írni:

Ha aktiválta a tűzfalat (amit valóban meg kellene tennie), győződjön meg arról, hogy a csomópontok képesek TCP-forgalmat küldeni és fogadni a belső interfész 28017-es és 27017-es portján.

Most mindegyik gépen indítsa el a mongod szolgáltatást a következő parancsokkal.

Az m1 gépen:

Ezután az m2 gépen:

Az m3 gépen:

Itt,

mongod a szolgáltatás neve

dbpath az adatbázis-könyvtárunk helye

replSet a replikációs készletünk neve. Ennek meg kell egyeznie az ugyanabban a replikakészletben lévő összes gép esetében

bind_ip azon gép gépneve, amelyen futtatja.

Miután elindította a mongod szolgáltatást, lépjen az elsődleges szerverre (az én esetemben az m1-et választottam), és futtassa a mongo parancsot.

Ez elindítja a MongoDB terminált. A terminálon indítsa el a replicaSet-et az alábbi paranccsal. Ez létrehozza a replicaSet-et az alapértelmezett konfigurációkkal:

Most pedig adjuk hozzá a másik két gépet replikaként a következő parancsokkal:

A státuszt a következő paranccsal kísérheti figyelemmel:

Ez minden. Most már működnie kell a MongoDB klaszterének a CloudSigma rendkívül gyors felhőjében.

author

Akshay Nagpal

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ő.