GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat MongoDB Sharded Cluster na CentOS 7

Sharding je proces MongoDB pro ukládání datové sady na různých počítačích. Umožňuje vám provádět horizontální měřítko dat, rozdělovat data mezi nezávislé instance a může to být „sady replik“. Rozdělení datové sady na 'Sharding' používá shard klíč. Sdílení vám umožňuje přidávat další počítače na základě nárůstu dat ve vašem zásobníku.

Sharding a replikace

Pojďme to zjednodušit. Když máte sbírky hudby, „Sharding“ uloží a uloží vaše hudební sbírky do jiné složky. „Replikace“ na druhé straně pouze synchronizuje vaše hudební sbírky s jinými instancemi.

Tři komponenty Sharding

Úlomek - Používá se k ukládání všech dat a v produkčním prostředí je každý útržek sadami replik. Poskytuje vysokou dostupnost a konzistenci dat.

Konfigurační server - Používá se k ukládání metadat clusteru, obsahuje mapování sady dat clusteru a fragmentů. Tato data používá mongos/query server k doručování operací. V produkci se doporučuje používat více než 3 instance.

Mongos/směrovač dotazů - Toto jsou pouze mongo instance běžící jako aplikační rozhraní. Aplikace zadá požadavky na instance mongos a poté mongos doručí požadavky pomocí shard key do sad replik shards.

Předpoklady

  • Server 2 centOS 7 jako sady replik konfigurace
      • 10.0.15.31      configsvr1
      • 10.0.15.32      configsvr2
  • Server 4 CentOS 7 jako sady replik Shard
      • 10.0.15.21      shardsvr1
      • 10.0.15.22      shardsvr2
      • 10.0.15.23      shardsvr3
      • 10.0.15.24      shardsvr4
  • 1 server CentOS 7 jako mongos/Query Router
      • 10.0.15.11       mongos
  • Oprávnění uživatele root
  • Každý server je připojen k jinému serveru

Krok 1 – Deaktivace SELinux a konfigurace hostitelů

V tomto tutoriálu deaktivujeme SELinux. Změňte konfiguraci SELinuxu z „vynucování“ na „vypnuto“.

Připojte se ke všem uzlům přes OpenSSH.

ssh [e-mail chráněný]

Zakažte SELinux úpravou konfiguračního souboru.

vim /etc/sysconfig/selinux

Změňte hodnotu SELinux na 'disabled'.

SELINUX=zakázáno

Uložte a ukončete.

Dále upravte soubor hosts na každém serveru.

vim /etc/hosts

Vložte následující konfiguraci hostitelů:

10.0.15.31 configsvr1
10.0.15.32 configsvr2
10.0.15.11 mongos
10.0.15.21 shardsvr1
10.0.15.22 Shardsvr2
10.0.15.23 Shardsvr3
    10.0.15.24      shardsvr4

Uložte a ukončete.

Nyní restartujte všechny servery:

restartovat

Krok 2 – Instalace MongoDB na všechny instance

Pro všechny instance použijeme nejnovější MongoDB (MongoDB 3.4). Přidejte nové úložiště MongoDB provedením následujících příkazů:

cat <<'EOF'>> /etc/yum.repos.d/mongodb.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb .org/static/pgp/server-3.4.asc
EOF

Nyní nainstalujte mongodb 3.4 z úložiště mongodb pomocí příkazu yum níže.

sudo yum -y nainstalovat mongodb-org

Po instalaci mongodb použijte 'mongo nebo 'mongod ' následujícím způsobem zkontrolujte podrobnosti o verzi.

mongod --version

Krok 3 – Vytvoření sady replik konfiguračního serveru

V sekci předpoklady jsme již definovali konfigurační server se 2 počítači 'configsvr1' a 'configsvr2'. A v tomto kroku jej nakonfigurujeme jako sadu replik.

Pokud na serveru běží služba mongod, zastavte ji pomocí následujícího příkazu systemctl.

systemctl stop mongod

Upravte výchozí konfiguraci mongodb 'mongod.conf '.

vim /etc/mongod.conf

Změňte cestu úložiště DB na svůj vlastní adresář. Pro první server použijeme '/data/db1' a pro druhý konfigurační server adresář '/data/db2'.

úložiště:
  dbPath:/data/db1

Změňte hodnotu řádku 'bindIP' na vaši interní síťovou adresu. 'configsvr1' s IP adresou 10.0.15.31 a druhý server s 10.0.15.32.

bindIP:10.0.15.31

V části replikace nastavte název replikace.

replication:
  replSetName:"replconfig01"

A v části sharding definujte roli instancí. Tyto dvě instance použijeme jako 'configsvr'.

sharding:
  clusterRole:configsvr

Uložte a ukončete.

Dále musíme vytvořit nový adresář pro data MongoDB a poté změnit oprávnění k vlastnictví tohoto adresáře na uživatele 'mongod'.

mkdir -p /data/db1
chown -R mongod:mongod /data/db1

Dále spusťte službu mongod pomocí následujícího příkazu.

mongod --config /etc/mongod.conf

Můžete zkontrolovat, zda služba mongod běží na portu 27017 pomocí příkazu netstat.

netstat -plntu

Configsvr1 a Configsvr2 jsou připraveny pro sadu replik. Připojte se k serveru 'configsvr1' a získejte přístup k mongo shellu.

ssh [e-mail chráněný]
mongo --host configsvr1 --port 27017

Pomocí níže uvedeného dotazu spusťte název sady replik se všemi členy configsvr.

rs.initiate(
  {
    _id:"replconfig01",
    configsvr:true,
    členové:[
      { _id :0, hostitel :"configsvr1 :27017" },
      { _id :1, hostitel :"configsvr2:27017" }
    ]
  }
)

Pokud dostanete výsledek '{ "ok" :1 } ', to znamená, že configsvr je již nakonfigurován se sadou replik.

a budete moci vidět, který uzel je hlavní a který uzel je sekundární.

rs.isMaster()
rs.status()

Konfigurace Config Server Replica Set je hotová.

Krok 4 – Vytvoření sad replik střípků

V tomto kroku nakonfigurujeme 4 servery centos 7 jako server „Shard“ se 2 „sadami replik“.

  • 2 server – 'shardsvr1 a 'shardsvr2 s názvem sady replik:'shardreplica01 '
  • 2 server – 'shardsvr3 “ a „shardsvr4 s názvem sady replik:'shardreplica02 '

Připojte se ke každému serveru a zastavte službu mongod (pokud je služba spuštěna) a upravte konfigurační soubor MongoDB.

systemctl stop mongod
vim /etc/mongod.conf

Změňte výchozí úložiště na svůj konkrétní adresář.

úložiště:
  dbPath:/data/db1

V řádku 'bindIP' změňte hodnotu na vaši interní síťovou adresu.

bindIP:10.0.15.21

V sekci replikace můžete použít 'shardreplica01 “ pro první a druhý případ. A použijte 'shardreplica02 ' pro třetí a čtvrtý shard server.

replication:
  replSetName:"shardreplica01"

Dále definujte roli serveru. To vše použijeme jako instance shardsvr.

sharding:
  clusterRole:shardsvr

Uložte a ukončete.

Nyní vytvořte nový adresář pro data MongoDB.

mkdir -p /data/db1
chown -R mongod:mongod /data/db1

Spusťte službu mongod.

mongod --config /etc/mongod.conf

Zkontrolujte, zda MongoDB běží pomocí příkazu níže:

netstat -plntu

Uvidíte, že MongoDB běží na místní síťové adrese.

Dále vytvořte novou sadu replik pro tyto 2 instance fragmentů. Připojte se k 'shardsvr1' a získejte přístup k mongo shellu.

ssh [e-mail chráněný]
mongo --host shardsvr1 --port 27017

Spusťte sadu replik s názvem 'shardreplica01 “ a členy jsou „shardsvr1 a 'shardsvr2 '.

rs.initiate(
  {
    _id :"shardreplica01",
    členové:[
      { _id :0, hostitel :"shardsvr1:27017" },
      { _id :1, hostitel :"shardsvr2:27017" }
    ]
  }
)

Pokud nedojde k žádné chybě, zobrazí se výsledky uvedené níže.

Výsledky z shardsvr3 a shardsvr4 s názvem sady replik 'shardreplica02 '.

Opakujte tento krok na shardsvr3 a shardsvr4 servery s jiným názvem sady replik 'shardreplica02 '.

Nyní jsme vytvořili 2 sady replik jako fragment - 'shardreplica01 a 'shardreplica02 '.

Krok 5 – Konfigurace mongos/Query Router

'Query Router' nebo mongos jsou jen instance, na kterých běží 'mongos'. Mongo můžete spouštět s konfiguračním souborem nebo jej spouštět pouze pomocí příkazového řádku.

Přihlaste se k serveru mongos a zastavte službu MongoDB.

ssh [e-mail chráněný]  
systemctl stop mongod

Spusťte mongos pomocí příkazu níže.

mongos --configdb "replconfig01/configsvr1:27017,configsvr2:27017"

použijte volbu '--configdb' k definování konfiguračního serveru. Pokud používáte produkční verzi, použijte alespoň 3 konfigurační servery.

Výsledky uvidíte níže.

Úspěšně připojeno k configsvr1:27017
Úspěšně připojeno k configsvr2:27017

jsou spuštěny instance mongos.

Krok 6 – Přidání fragmentů do mongos/směrovače dotazů

Otevřete další shell z kroku 5, znovu se připojte k serveru mongos a otevřete mongo shell.

ssh [e-mail chráněný]
mongo --host mongos --port 27017

Přidejte server shard pomocí dotazu sh mongodb.

Pro 'shardreplica01 ' instance.

sh.addShard( "shardreplica01/shardsvr1:27017")
sh.addShard( "shardreplica01/shardsvr2:27017")

Pro 'shardreplica02 ' instance.

sh.addShard( "shardreplica02/shardsvr3:27017")
sh.addShard( "shardreplica02/shardsvr4:27017")

Ujistěte se, že nedošlo k chybě a zkontrolujte stav fragmentu.

sh.status()

Budete sdílet stav, jak je znázorněno na snímku obrazovky níže.

V našem zásobníku běží 2 sady replik střepů a 1 instance mongos.

Krok 7 – Testování

Nyní otestujeme server MongoDB povolením shardingu a poté přidáme dokumenty.

Přístup k mongo serveru mongo shell.

ssh [e-mail chráněný]
mongo --host mongos --port 27017

Povolit sdílení pro databázi

Vytvořte novou databázi a povolte sharding pro novou databázi.

použijte lemp
sh.enableSharding("lemp")
sh.status()

Nyní se podívejte na stav databáze – byla rozdělena do sady replik 'shardreplica01'.

Povolit sdílení pro sbírky

Dále přidejte do databáze nové kolekce s podporou shardingu. Přidáme novou kolekci pojmenovanou 'stack' s střepinou kolekce 'name' a poté uvidíme stav databáze a kolekcí.

sh.shardCollection("lemp.stack", {"name":1})
sh.status()

Byly přidány nové kolekce 'stack' se sbírkou střepů 'name'.

Přidejte dokumenty do „zásobníku“ sbírek.

Nyní vložte dokumenty do sbírek. Když přidáváme dokumenty do kolekce na sdíleném clusteru, musíme zahrnout 'shard key'.

Můžete použít příklad níže. Používáme shard key 'name ', jak jsme přidali při povolování shardingu pro sbírky.

db.stack.save({
    "name":"LEMP Stack",
    "apps":["Linux", "Nginx", "MySQL", "PHP"],
})

Dokumenty byly úspěšně přidány do sbírky, jak ukazuje následující snímek obrazovky.

Pokud chcete databázi otestovat, můžete se připojit k sadě replik 'shardreplica01 ' PRIMÁRNÍ server a otevřete mongo shell. Přihlašuji se na PRIMÁRNÍ server 'shardsvr2'.

ssh [e-mail chráněný]
mongo --host shardsvr2 --port 27017

Zkontrolujte databázi dostupnou v sadě replik.

zobrazit dbs
použít lemp
db.stack.find()

Uvidíte, že databáze, kolekce a dokumenty jsou dostupné v sadě replik.

Sharded cluster MongoDB na CentOS 7 úspěšně nainstalován a nasazen.


Cent OS
  1. Jak nainstalovat MongoDB na CentOS 8 / RHEL 8

  2. Jak nainstalovat MongoDB 4.2 / 4.0 na CentOS 6 / RHEL 6

  3. Jak nainstalovat MongoDB 4.4 / 4.2 na CentOS 7 / RHEL 7

  1. Jak nainstalovat MongoDB na CentOS 8

  2. Jak nainstalovat mongodb na RHEL 8 / CentOS 8

  3. Jak nainstalovat FlintCMS na CentOS 7

  1. Jak nainstalovat MongoDB na CentOS 7

  2. Jak nainstalovat R na CentOS 7

  3. Jak nainstalovat MongoDB na CentOS 8