DBAtlas · Veritabanı operasyon atlası

MongoDB sharded cluster kurulumu (config server + shard'lar + mongos)

MongoDBSeviye: İleriSüre: 2–3 saat

Veri ya da yazma yükü tek bir replica set'i aştığında kurulan sharded cluster: üç üyeli config server replica set, iki ya da üç shard replica set ve iki mongos router; keyfile ile iç doğrulama, yetkilendirme, sh.addShard, shard key seçimi, koleksiyonun shard'lanması, balancer ve dağılımın doğrulanması. Sonunda uygulamaların yalnız mongos'lara bağlandığı, yatay büyüyebilen bir cluster elde edilir. Veri tek sunucuya sığıyorsa replica set kurulumu daha basit ve yeterlidir.

Yapı: 3 config server + 2×3 shard üyesi + 2 mongos (en az 11 sunucu; test için daha küçük)

Başlamadan önce

  • Tüm sunucular aynı işletim sisteminde, güncel; saat NTP (chrony) ile senkron. Üyeler arasındaki saat farkı oturum ve oplog sorunlarına yol açar.
  • RAM ve CPU formdaki değerlerle aynı (WiredTiger cache bu değere göre hesaplanıyor). Swap tanımlı ama küçük.
  • Veri dizini (…) ayrı disk/LV üzerinde, XFS ile biçimlendirilmiş, noatime ile bağlı ve fstab'da kalıcı. WiredTiger ile ext4 performans sorunlarına yol açabilir.
  • Her sunucu adı tüm sunuculardan ve uygulama sunucularından çözülüyor (DNS ya da /etc/hosts). Replica set yapılandırmasında IP değil ad kullanılır.
  • Sunucular arasında …, …, … portları açık; uygulama ağı bu portlara erişebiliyor. Bu portlar başka bir servis tarafından kullanılmıyor.
  • Sunucular repo.mongodb.org ve pgp.mongodb.com adreslerine HTTPS ile çıkabiliyor ya da kurum içi mirror tanımlı.
  • İşletim sisteminin kendi mongodb sürümü ya da eski bir MongoDB kurulumu yok.
  • İlk sunucudan diğerlerine root (ya da sudo yetkili kullanıcı) ile scp yapılabiliyor (keyfile kopyalamak için). Yoksa dosyayı güvenli bir yolla elle taşıyın.
  • Root ya da sudo yetkisiyle oturum açtınız; bakım penceresi ve sunucu snapshot'ı (geri dönüş) planı hazır.
  • Shard key kararı uygulama ekibiyle birlikte verildi: en sık sorgulardaki filtre alanı, yüksek kardinalite, değerlerin dengeli dağılımı. Shard key sonradan reshardCollection ile değiştirilebilir ama maliyetlidir.

Rehberin aşamaları

  • İşletim sistemi hazırlığı (tüm sunucular) — Hostname: … · Hostname: … · Hostname: … · Hostname: … · Hostname: … · Sistem güncellemesi ve gerekli araçlar …
  • MongoDB yazılımının kurulumu — MongoDB … repo'sunu ekle · MongoDB … repo'sunu ekle · MongoDB sunucu yazılımını kur (config server ve shard'lar) · mongos ve mongosh'u kur (router'lar) · Veri dizinini hazırla · SELinux politikası, etiketler ve portlar …
  • Keyfile (cluster içi doğrulama) — Keyfile oluştur · Keyfile'ı tüm sunuculara kopyala · Keyfile izinleri
  • Config server replica set — mongod.conf (config server): … · mongod'u başlat · rs.initiate (config server)
  • Shard A (replica set shardA) — mongod.conf (shard A): … · mongod'u başlat · rs.initiate (shard A) · Shard-local yönetici kullanıcı (shard A)
  • Shard B (replica set shardB) — mongod.conf (shard B): … · mongod'u başlat · rs.initiate (shard B) · Shard-local yönetici kullanıcı (shard B)
  • Shard C (replica set shardC) — mongod.conf (shard C): … · mongod'u başlat · rs.initiate (shard C) · Shard-local yönetici kullanıcı (shard C)
  • mongos (router) — mongos.conf: … · mongos systemd servisi · mongos'u başlat · Cluster yöneticisini oluştur · Shard'ları ekle (sh.addShard) · Uygulama kullanıcısını oluştur
  • Shard key ve koleksiyonun shard'lanması — Shard key seçimi (karar adımı) · Koleksiyonu shard'la · Balancer durumu · Balancer zaman penceresi
  • Doğrulama — Cluster durumu · Dağılım testi · Config server replica set durumu · Uygulama bağlantı dizesi
  • Kurulum sonrası — Log rotasyonu · Yedekleme stratejisi · İzleme
Ortamına göre adım adım planı aç →