Ubuntu için MongoDb Cluster Kurulumu (4 Sunuculu)


MongoDb, document-based bir NoSql veritabanıdır. Eğer büyük bir datanız var ve relation ve transaction işlemleri ağırlıklı değil ise MongoDb sizin için gerekli olan Db'dir. Hızlı, yüksek scalability (server kapasitesi arttırma olayları) ve kolay kullanımı ile öne çıkmakta.

Cluster Dağılımı 

  • 1 Master Sunucu
  • 2 Shard Sunucu
  • 1 Config Sunucu
İlk adım olarak şu bağlantıdaki adımları izleyerek 4 sunucu içinde mongodb binary ve kütüphanelerini kuruyoruz. Klasik Ubuntu paket kurulumları. Hızlıca verilen komutları kendi sisteminiz için çalıştırıp kurulumu tamamlayın.
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Master, config ve shard sunucular için aşağıdaki yapılandırmaları yapıp sunucularımızı başlatıyoruz.

Master Server

Mongos, router gibi çalışarak gelen isteklerin nereye yönlendirileceğini belirleyen ve client’lara veri dönmeden önce farklı shardlardan aldığı verileri merge eden bir process’dir. Mongos herhangi bir data tutmadığı için persist state’ı bulunmamakta, bu yüzden config server’a ihtiyaç duymaktadır. Paketleri kurduktan sonra mongo komutu ile mogno shell'e ulaşabiliyor olmanız gerekli. Config ve Shard'ları kurduktan sonra mongo servisini başlatacağız. Bu arada mongo kurulumdan sonra otomatik başlar o yüzden mongo servisini kill etmeniz gerekecek. Config ip vererek (aşağıda) sonradan manuel başlatmamız gerekecek.

Config Server 

Config server'lar tüm cluster'ın metadatasını tutan sunucudur. Aşağıdaki adımlarla metadata'nın tutulacağı dizinleri oluşturup, haklarını veriyoruz. Ve daha sonra master sunucusunda config server'ın adresini verip master sunucumuzda MongoDb'yi başlatıyoruz.
  1. sudo mkdir -p /data/configdb
  2. sudo chown username/data/configdb
  3. Config server başlatma mongod --configsvr
  4. Master'da
    1. mongos --configdb configIp:port, config2Ip:port,...

Shard Server

Shard sunucular datayı tutan paylaşımı yapan asıl sunuculardır. Master tarafından yönetilirler. Aşağıdaki adımlarla datanın tutulacağı dizinleri oluşturup gerekli hakları verip master sunucumuza bildiriyoruz.
  1. sudo mkdir -p /data/db
  2. sudo chown username /data/configdb
  3. Config server başlatma mongod --shardsvr
  4. Master Sunucu Üzerinde
    1. mongo
    2. Shard sunucu cluster'a dahil etme: sh.addShard("192.168.0.231:27018")
    3. Görüntüleme: sh.status()
    4. Yeni bir db yaratma ve cluster'da paylaştırmak için
      1. show dbs 
      2. use dbName
      3. db.dbName.save({testKey:"testValue"})
      4. show dbs
      5. use admin
      6. db.runCommand({enablesharding: "dbName"})
      7. sh.shardCollection("dbName.collectionName", {"name":1})

Sonuç olarak master sunucumuzda sh.status() komutu ile aşağıdaki çıktıyı görüyorsak mongoDb kullanıma hazır demektir. Komut satırından kullanım zorluğu çekenler için Robomongo (DesktopTabanlı) veya MongoManagementStudio (WebTabanlı) yazılımlarını öneririm.


    

No comments:

Post a Comment