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.
- 3 centOS 7 server as Config, Shard, and Mongos/Query Router
1
2
3192.168.88.100 mongod1
192.168.88.101 mongod2
192.168.88.102 mongod3 - PORT
1
2
3
427017 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 | 192.168.88.100 mongod1 |
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 | cat <<'EOF' >> /etc/yum.repos.d/mongodb.repo |
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 | systemctl stop mongod |
copy mongod.conf
1 | cp /etc/mongod.conf /home/mongoconfig.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 | systemLog: |
Save dan exit.
open mongodb configuration ‘shard1.conf’.
1 | vim /home/shard1.conf |
Rubah penempatan DB. Kami menggunakan /mongodb/shard1/
.
1 | systemLog: |
Save dan exit.
buka mongodb configuration ‘shard2.conf’.
1 | vim /home/shard2.conf |
Rubah penempatan DB. Kami menggunakan /mongodb/shard2/
.
1 | systemLog: |
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 | systemLog: |
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 | mkdir -p /mongodb/mongoconfig/log |
Berikut, mulai service mongod dengan perintah berikut.
1 | mongod --config /home/mongoconfig.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 | ssh root@mongod1 |
Initiate nama replica set dengan semua anggota configsvr menggunakan query berikut.
1 | rs.initiate() |
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.
1 |
|
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 | rs.initiate() |
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 | mongo --port 27017 |
MongoDB sharded cluster di CentOS 7 sukses terinstal.