Install MongoDB Cluster

Cara Install MongoDB Sharded Cluster di CentOS 7

Sharding adalah proses MongoDB untuk mengirim data-set melalui mesin yang berbeda. Dan mengizinkan untuk melakukan horizontal scale dari data, partisi data melalui independent instances, dan dapat menjadi ‘Replica Sets’. Partisi Data-set di ‘Sharding’ menggunakan shard key. Sharding mengizinkan untuk menambah mesin lebih berdasarkan pertumbuhan data.


Sharding dan Replication

Secara sederhana. Ketika kamu punya koleksi musik, ‘Sharding’ akan menyimpan dan menjaga koleksi musikmu ke folder yang berbeda. ‘Replication,’ di sisi lain, hanya syncing koleksi musik kamu ke instances yang lain.


Tiga Sharding Komponen

Shard - Digunakan untuk menyimpan seluruh data, dan di linkungan production, masing-masing shard adalah replica sets. Menyediakan ketersediaan tinggi dan konsistensi data.

Config Server - Digunakan untuk menyimpan cluster metadata, berisi pemetaan dari cluster data set dan shards. Data ini digunakan oleh server mongos/query untuk mengirim operations. Disarankan untuk menggunakan lebih dari 3 instances in production.
Mongos/Query Router - Ini hanya mongo instances berjalan sebagai application interfaces. Aplikasi akan membuat requests ke mongos instances, dan kemudian mongos akan mengirim requests menggunakan shard key untuk memecah ke replica sets.

Prerequisites

  • 3 centOS 7 server as Config, Shard, and Mongos/Query Router
    1
    2
    3
    192.168.88.100      mongod1
    192.168.88.101 mongod2
    192.168.88.102 mongod3
  • PORT
    1
    2
    3
    4
    27017  mongos/Query
    27018 Config Replica Set
    27019 Shard1 Replica Set
    27020 Shard2 Replica Set
  • Root privileges
  • Each server connected to another server

Step 1 - Disable SELinux dan Configure Hosts
Untuk tutorial ini, kita akan disable SELinux. Ganti konfigurasi SELinux dari 'enforcing' ke 'disabled'.
Connect ke semua nodes melalui OpenSSH.

1
ssh root@SERVERIP

Disable SELinux dengan perintah sebagai berikut.

1
vim /etc/sysconfig/selinux

Ganti SELinux menjadi ‘disabled’.

1
SELINUX=disabled

Save dan exit.
Berikutnya, edit hosts file di masing-masing server.

1
vim /etc/hosts

ikuti konfigurasi hosts sebagai berikut:

1
2
3
192.168.88.100      mongod1
192.168.88.101 mongod2
192.168.88.102 mongod3

Save dan exit.
Sekarang restart semua server

Step 2 - Install MongoDB di semua Server

Kita akan menggunakan latest MongoDB (MongoDB 4.2) untuk semua instances. Tambah repositori baru MongoDB dengan perintah sebagai berikut:

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

Sekarang install mongodb 4.2 dari repositori mongodb menggunakan perintah yum seperti perintah dibawah.

1
sudo yum -y install mongodb-org

Setelah mongodb is terinstall, gunakan perintah ‘mongo’ atau ‘mongod’seperti berikut untuk melihat versi.

1
mongod --version

Install MongoDB di semua Instances
Step 3 - Create Config, Shard Server Replica Sets and Mongos/Query di setiap Server
Pada bagian syarat, kita telah menetapkan server config dengan 3 mesin dengan 'configsvr'. Dan di langkah ini, kita akan konfigurasikan ke replica set.
Jika ada service mongod yang jalan di server, stop dengan perintah systemctl sebagai berikut.

1
2
systemctl stop mongod
systemctl disable mongod

copy mongod.conf

1
2
3
4
cp /etc/mongod.conf /home/mongoconfig.conf
cp /etc/mongod.conf /home/shard1.conf
cp /etc/mongod.conf /home/shard2.conf
cp /etc/mongod.conf /home/mongos.conf

buka mongodb configuration ‘mongoconfig.conf’.

1
vim /home/mongoconfig.conf

Change DB storage path to your own directory. We will use ‘/mongodb/mongoconfig/‘.

1
2
3
4
5
6
7
8
9
10
11
12
13
systemLog:
destination: file
logAppend: true
path: /mongodb/mongoconfig/log/configsvr.log
storage:
dbPath: /mongodb/mongoconfig/data
net:
port: 27018
bindIP: 192.168.88.100,127.0.0.1
replication:
replSetName: "rs0"
sharding:
clusterRole: configsvr

Save dan exit.
open mongodb configuration ‘shard1.conf’.

1
vim /home/shard1.conf

Rubah penempatan DB. Kami menggunakan /mongodb/shard1/.

1
2
3
4
5
6
7
8
9
10
11
12
13
systemLog:
destination: file
logAppend: true
path: /mongodb/shard/log/shard1.log
storage:
dbPath: /mongodb/shard/shard1/data
net:
port: 27019
bindIP: 192.168.88.100,127.0.0.1
replication:
replSetName: "rs1"
sharding:
clusterRole: shardsvr

Save dan exit.

buka mongodb configuration ‘shard2.conf’.

1
vim /home/shard2.conf

Rubah penempatan DB. Kami menggunakan /mongodb/shard2/.

1
2
3
4
5
6
7
8
9
10
11
12
13
systemLog:
destination: file
logAppend: true
path: /mongodb/shard/log/shard2.log
storage:
dbPath: /mongodb/shard/shard2/data
net:
port: 27020
bindIP: 192.168.88.100,127.0.0.1
replication:
replSetName: "rs2"
sharding:
clusterRole: shardsvr

Save and exit.
Buka mongodb configuration ‘mongos.conf’.

1
vim /home/mongos.conf

Rubah penempatan log file. Nonaktifkan (beri tanda command) di storage dan replication

1
2
3
4
5
6
7
8
9
systemLog:
destination: file
logAppend: true
path: /mongodb/mongos/log/mongos.log
net:
port: 27017
bindIP: 192.168.88.100,127.0.0.1
sharding:
configDB: rs0/192.168.88.100:27018,192.168.88.101:27018,192.168.88.102:27018

Save and exit.

Create Folder
Berikut, kita harus membuat direktori baru untuk data MongoDB, dan kemudian ganti permisi kepemilikan dari direktori ke user ‘mongod’.

1
2
3
4
5
6
7
8
9
10
11
12
mkdir -p /mongodb/mongoconfig/log
mkdir -p /mongodb/mongoconfig/data
mkdir -p /mongodb/shard/log
mkdir -p /mongodb/shard/shard1/data
mkdir -p /mongodb/shard/shard2/data
mkdir -p /mongodb/mongos/log/mongos.log
chown -R mongod:mongod /mongodb/mongoconfig/log
chown -R mongod:mongod /mongodb/mongoconfig/data
chown -R mongod:mongod /mongodb/shard/log
chown -R mongod:mongod /mongodb/shard/shard1/data
chown -R mongod:mongod /mongodb/shard/shard2/data
chown -R mongod:mongod /mongodb/mongos/log/mongos.log

Berikut, mulai service mongod dengan perintah berikut.

1
2
3
4
mongod --config /home/mongoconfig.conf
mongod --config /home/shard1.conf
mongod --config /home/shard2.conf
mongos --config /home/mongos.conf

Anda bisa melihat service mongod sedang berjalan dengan perintah netstat.

1
netstat -plntu

Ulangi langkah ini di semua server

Step 4 - Initiate member on all mongod

Menambah Config Server in Replica Set

Configsvr siap untuk replica set. Connect ke server ‘mongod1’ dan akses ke mongo shell.

1
2
ssh root@mongod1
mongo --port 27018

Initiate nama replica set dengan semua anggota configsvr menggunakan query berikut.

1
2
3
rs.initiate()
rs.add("192.168.88.101:27018")
rs.add("192.168.88.102:27018")

Jika mendapatkan hasil’{ “ok” : 1 }’, itu berarti configsvr telah terkonfigurasi dengan replica set.
Initiate nama replica set dengan semua anggota configsvr
dan kamu akan dapat melihat yang mana node master dan yang mana node secondary.

1
rs.status()

Konfigurasi dari Server Config Replika set telah selesai.

konfigurasi dari Server Config Replica Set

Add Shard Server in Replica Set

Shard1 and Shard2 telah siap untuk replica set. Connect menuju server ‘mongod1’ dan akses ke mongo shell.

--port 27019```
1
2

Initiate nama replica set dengan semua anggota Shard1 menggunakan query berikut.

rs.initiate()
rs.add(“192.168.88.101:27019”)
rs.add(“192.168.88.102:27019”)
rs.status()
exit

1
```mongo --port 27020

Initiate nama replica set dengan semua anggota Shard2 menggunakan query berikut.

1
2
3
4
5
rs.initiate()
rs.add("192.168.88.101:27020")
rs.add("192.168.88.102:27020")
rs.status()
exit

Jika mendapatkan hasil’{ “ok” : 1 }’, itu berarti Shard telah terkonfigurasi dengan replica set.
Initiate nama replica set dengan semua anggota Shards dan kamu akan dapat melihat yang mana node master dan yang mana node secondary.

Konfigurasi dari server Config telah selesai.

Konfigurasi dari Server Shard Replica Set

Tambah Anggota Mongos

Konfigurasi mongos/Query Router

1
2
3
4
5
mongo --port 27017

sh.addShard( "rs1/192.168.88.100:27019,192.168.88.101:27019,192.168.88.102:27019")
sh.addShard( "rs1/192.168.88.100:27020,192.168.88.101:27020,192.168.88.102:27020")
sh.status()

MongoDB sharded cluster di CentOS 7 sukses terinstal.

reff
Howtoforge
MongoDB

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×