Bloğa geri dön

MongoDB Replikasyonu ve Otomatik Yük Devretme Nasıl Yapılandırılır

MongoDB Replikasyonu ve Otomatik Yük Devretme Nasıl Yapılandırılır

Bir replika seti, aralarında replikasyon ve otomatik yük devretme yapılandırılmış birden fazla düğümden oluşan bir veritabanı kümesi olarak tanımlanır. PRIMARY veritabanının doğru şekilde seçildiğinden emin olmak için, kümede tek sayıda üye bulunması önemlidir (buna Arbiter düğümü dahil veya hariç).

Seçilen veritabanı tüm ana görevlerden sorumludur. Gelen yazma işlemlerini işler ve bunların bilgilerini oplog'da saklar. Bu bilgilere SECONDARY replika üyeleri tarafından erişilebilir ve kendi veri kümelerine uygulamak üzere replike edilebilir. Sonuç olarak, kümedeki tüm sunucular aynı içeriği temsil edecek ve kullanılabilirliğini sağlayacaktır:

How to Configure MongoDB Replication and Automated Failover 1-Replica set- graphic

Şimdi, beklenmedik bir sorunun (donanım veya bağlantı hatası gibi) birincil veritabanının kesinti yaşamasına neden olduğu bir durumu düşünün. Böyle bir durumda sistem, herhangi bir manuel müdahaleye gerek kalmadan normal işleyişi geri yüklemek için otomatik olarak yeni bir seçim süreci başlatacaktır. Böyle bir sistemin faydası, replikasyonun, sunduğu artan kullanılabilirlik, yük devretme yedekliliği ve felaket kurtarma gibi en iyi özelliklerden, birden fazla veritabanını ayrı ayrı yönetme konusunda endişelenmenize gerek kalmadan yararlanabilmenizdir.

Benzer bir sistem kullanmak istiyorsanız, bu eğitim size CloudSigma PaaS ile bir MongoDB replika setini nasıl yapılandıracağınızı gösterecektir. Bu kılavuzda göreceğiniz gibi, çoğu yaygın uygulama için I/O işlemlerini gerçekleştirmek üzere iyi bir bilgi güvenliği marjı ve çıktı sağlamak için genellikle yeterli olan üç üye kullanacağız. Replikasyonun asıl yapılandırmasının yanı sıra, ortamı nasıl hazırlayacağımızı, DB düğümleri arasında kimlik doğrulamayı nasıl ayarlayacağımızı ve çalışmanızın başarılı olduğundan nasıl emin olacağımızı da öğreneceğiz.

Adım 1: Yeni Bir Ortam Oluşturun

Başlamak için, bir replika seti yapılandırmaya başlamak üzere en az 3 MongoDB düğümüne ihtiyacınız olacak. Bu yüzden devam edin ve aşağıdaki gibi bir yeni ortam oluşturun:

2-Create an Environment How to Configure MongoDB Replication and Automated Failover

Örneğimizde, 4.0.2 sürümündeki tüm MongoDB örneklerini aynı ortama tahsis ediyoruz. Gerekirse verilen alanda Ortam Adı bilgisini değiştirebilir ve kurulum işlemine devam edebilirsiniz.

Süreçteki bir sonraki adım, kimlik doğrulama anahtar dosyasını kullanarak bu düğümler arasındaki iletişimin güvenliğiyle ilgilenmek olacaktır.

Adım 2: Bir Kimlik Doğrulama Anahtar Dosyası Ekleyin

Kimlik doğrulama, herhangi bir replikasyonun kritik bir bileşenidir. Bir replika seti üyesine, yalnızca benzersiz bir kimlik doğrulama anahtar dosyasıyla kendisini doğru bir şekilde tanımladıktan sonra erişim izni veren bir güvenlik güvencesi sürecidir. Bu, verilerinizi istenmeyen izleyicilerden ve üçüncü taraflardan korur. Kendi kimlik doğrulama anahtar dosyanızı şu şekilde oluşturabilirsiniz:

  1. Veritabanı düğümlerinden biri için Web SSH seçeneğine tıklayın ve giriş yapın:

3- Web SSH How to Configure MongoDB Replication and Automated Failover

2. Ardından, kendi anahtar dosyanızı girebilir veya aşağıdaki komutu kullanarak openssl ile yeni bir tane oluşturabilirsiniz:

Bu komutta, 741 bayt cinsinden anahtar boyutunu temsil eder ve my.key anahtarın adıdır.

3. Yeni anahtar dosyasını tüm MongoDB örneklerinize dağıtma zamanı. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

  • Veritabanı düğümlerinden herhangi birinin yanındaki Dosya Yöneticisi'ni açmak için Config düğmesine tıklayın:

4-Click on the Config

  • Şu yoldaki yapılandırma sekmesinde my.key dosyasını bulun: /home/jelastic/my.key. Dosyayı açın ve içeriğini kopyalayın:

5- configuration tab How to Configure MongoDB Replication and Automated Failover

  • Şu yolun altında: /var/lib/jelastic/keys you will find the keys dizinini bulacaksınız. MongoDB örneklerinin birbirlerinin kimliklerini doğrulamak için kullanacağı bir Yeni Dosya oluşturun. Bizim durumumuzda, mongo-set.key:

6-keys directory

  • Önceden kopyalanan içeriği bu dosyaya yapıştırın ve tüm örnekler için Kaydet seçeneğine tıklayarak değişiklikleri uygulayın:

7-Paste the clipboard content

Bu işlemin sonucunda, mongo-set.key dosyası tüm MongoDB düğümlerimize dağıtılmış oldu.

Adım 3: MongoDB Replikasyonunu Yapılandırın

Örneklerin güvenliğini sağladığımıza göre, artık replika setini fiilen yapılandırmaya geçebiliriz. Başlayalım:

  1. MongoDB düğümlerinin yapılandırma sekmesine giderek ve mongo.conf dosyasını etc klasörü. Replikasyon bölümünü bulana kadar aşağı kaydırın. Yorum satırından çıkarın ve replika kümeniz için benzersiz bir ad içeren aşağıdaki dizeyi ekleyin. Örneğimiz için bunu şu şekilde adlandıracağız: db-replication:
      2. Ardından, keyFile adında yeni bir parametreyi security section bölümüne ekleyeceğiz. Bu, şu anda şu yolda bulunan anahtar dosyasının yolunu belirtmek için kullanılacaktır: /var/lib/jelastic/keys/mongo-set.key:

8-Add parameter keyFile

      3. Editör penceresindeki tüm örnekler için değişiklikleri Save etmek üzere uygun düğmeye tıklayın. 

      4. Şimdi yeni yapılandırma parametrelerini uygulamak için tüm veri tabanı Restart seçeneğiyle tüm nodes düğümlerinizi yeniden başlatmalısınız:

9-Restart your DB nodes How to Configure MongoDB Replication and Automated Failover

Unutmamanız gereken bir şey, replika kümesini yapılandırmayı tamamladığınızda ve tüm düğümleri veya PRIMARY düğümünü yeniden başlattığınızda, yeniden başlatma sırasında yeni PRIMARY veri tabanı seçim sürecinin başlayacağıdır.

     5. PRIMARY olarak kullanmak istediğiniz MongoDB sunucusunu seçin ve SSH protokolünü kullanarak buna erişin:

10-access the MongoDB server How to Configure MongoDB Replication and Automated Failover

Unutmayın: PRIMARY veri tabanı seçildikten sonra, diğer replika kümesi üyelerine doğrudan yazma işlemleri için artık erişilemeyecektir. Bu, tüm değişikliklerin ve yapılandırmaların yalnızca mevcut PRIMARY düğümünde gerçekleştirilebileceği ve uygulanabileceği anlamına gelir. Dolayısıyla, önceden priorities ayarlamadıysanız, uygulamanızdaki bağlantı dizesini yeni PRIMARY düğümüne göre değiştirmeniz gerekecektir.

     6. Ardından, ilgili kimlik bilgilerinizi kullanarak replike edilmiş veri tabanına erişin:

11-Access the database How to Configure MongoDB Replication and Automated Failover

Bu komutta:

  • {user} –e-postanıza gönderilecek olan yönetici kullanıcı adını ifade eder (varsayılan olarak genellikle admin'dir).
  • {password} –bu, ilgili kullanıcı adıyla birlikte e-postanıza gönderilen şifredir.
  • {DB_name}- bu replika kümesinde replike etmek istediğiniz veri tabanının adını temsil eder (örneğimizde varsayılan admin veri tabanını kullanıyoruz).

Yeni bir seçim yapılması durumunda, yeni bir PRIMARY veri tabanına giriş yapmak için aynı admin kullanıcısı kimlik bilgilerini kullanabilirsiniz.

     7. Bağlantı kurulduğuna göre, mevcut MongoDB düğümünün parametrelerini tanımlamak ve replika kümesini başlatmak için aşağıdaki satırları çalıştırmanız gerekecektir:

Yukarıdaki satırlarda, parantez içindeki değerleri kendi ilgili verilerinizle değiştireceksiniz:

  • {replica_set} – bu bölümün başında belirttiğiniz replike edilen veri tabanı grubunuzun adıdır. Bizim durumumuzda bu db-replication idi.
  • {current_db_ip} – seçtiğiniz veri tabanı konteynerinin IP adresini belirtir:

12-initiate your replica set How to Configure MongoDB Replication and Automated Failover

Bizim durumumuzda, çalıştırılan satırlar şunlardır:

13-config

14-rs.initiate()

        8. Ardından, kalan tüm veri tabanları için aşağıdaki komutu çalıştırın:

Burada, {db_ip} her bir veri tabanının IP adresini ifade eder:

15-rs.add(

       9. Tüm replikasyon üyelerini ekledikten sonra, tam işlevsel bir replika kümesi elde edeceksiniz. İşlemin sonunda her şeyin düzgün şekilde yapılandırıldığından emin olmanızı öneririz. Bunu yapmak için şu komutu çalıştırın: rs.status(). Bu, replika kümenizle ilgili tüm bilgileri aşağıdaki gibi gösterecektir:

16-execute the rs.status()

Adım 4: ReplicaSet Arbiter Kurulumu

Belirli durumlarda bir Arbiter düğümü kullanmanızı öneririz. Bir Arbiter düğümü nedir? Genellikle, replika kümesi tek sayıda düğüm içeriyorsa replikasyon daha güvenilirdir. Dolayısıyla, kümenizde şu anda çift sayıda düğüm varsa, kümedeki diğer üyelerden gelen sinyal (heartbeat) ve seçim isteklerine yanıt vererek çoğunluğu (quorum) korumak için bir Arbiter düğümü ekleyebilirsiniz. İşte Arbiter düğümleri hakkında bazı detaylar:

  • Arbiter herhangi bir veri depolamaz; sadece başka bir düğümün arızalanması durumunda seçimlerde oy kullanır.
  • Çok hafiftir ve çok fazla kaynak tüketmez.
  • Şifrelenmiş replikalar arasında kullanıcı kimlik bilgilerini paylaştı.
  • En yüksek kullanılabilirliği korumak için Arbiter'ı ayrı bir düğümde çalıştırmayı deneyin.

Replika setinize bir Arbiter düğümünü şu şekilde ekleyebilirsiniz:

  1. İlk olarak, yatay ölçeklendirme gerçekleştireceğiz ve kümeye fazladan bir düğüm ekleyeceğiz:

17-ReplicaSet Arbiter

18-Scale out database cluster

2. Düğüm eklendiğinde yeni bir anahtar dosyasına ihtiyacımız var. Şu dizine gidin: keys dizinine gidin ve bir anahtar dosyası oluşturun: mongo-set.key. Anahtar içeriğini önceden yapılandırılmış veritabanı düğümlerinden herhangi birinden kopyalayın ve daha önce yaptığımız gibi buraya yapıştırın.

3. Şu dosyaya gidin: mongod.conf yapılandırma dosyası. Replication bölümünün yorum satırını kaldırın ve şunu ekleyin: repISetName (bizim durumumuzda db-replication şeklindedir). Ayrıca, şu bölüme gidin: security bölümüne gidin ve şu parametreyi ekleyin: keyFile ( /var/lib/jelastic/keys/mongo-set.key bizim durumumuzda).

4. Son olarak, bu yeni yapılandırma parametrelerini uygulamak için yeni düğümü yeniden başlatın:

19- Restart newly

Bu noktada kümedeki tüm düğümleri yeniden başlatmanız GEREKMEDİĞİNİ unutmamak önemlidir. Yalnızca yeni eklenen Arbiter düğümünü yeniden başlatın. Tüm düğümlerin yeniden başlatılması, yeni bir PRIMARY seçimiyle sonuçlanacaktır (belirli bir veritabanı düğümünü PRIMARY olarak seçmek için öncelikler belirtmediğiniz sürece).

 5. Son olarak, Arbiter replika setine eklenebilir. Bunu yapmak için PRIMARY düğümünde aşağıdaki komutu çalıştırın:

Burada, {db_ip} yeni düğümün IP adresidir:

20-IP address of a newly added node

 6. Şimdi, yeni düğümün Arbiter olup olmadığını kontrol edebilirsiniz. Bunu, SSH kullanarak yeni düğüme giriş yaparak ve düğüm oluşturma sırasında e-postanıza gelen kimlik bilgileriyle MongoDB örneğine bağlanarak yapabilirsiniz:

21-connect MongoDB instance

Bu, kümeye yeni eklediğimiz düğümün şu replikanın Arbiter'ı olarak görev yaptığını gösterir: db-replication. Bu, her durumda bir çoğunluk (quorum) sağlanmasını garanti ederek replika setini daha güvenilir hale getirir.

Step 5: Test Database Cluster Availability

Ardından, MongoDB kümemizi uzaktan bağlanacak ve işlemler gerçekleştirecek şekilde kurabiliriz. Aşağıdaki örnekte, basit bir PHP uygulaması kullanarak bağlanacağız ve birkaç kontrol komutu yürüteceğiz.

Bu amaçla, Apache gibi bir uygulama sunucusuna ihtiyacınız olacaktır. Bizim yaptığımız gibi ortamınıza bir tane ekleyebilir veya ayrı bir ortamda yeni bir tane oluşturabilirsiniz.

  1. Şuna tıklayarak başlayın: Change Environment Topology ve sunucuyu ekleyin:

22-Press Change Environment Topology

23-Press Change Environment Topology button

    2. Configuration Manager sekmesini Apache sunucusu için şu butona tıklayarak açın: Config (aşağıda gösterildiği gibi):

3. Şu dizindeki index.php dosyasını bulun ve açın: /var/www/webroot/ROOT ve varsayılan içeriğin yerine aşağıdaki kodu yapıştırın:

Yukarıdaki koddaki aşağıdaki değerlerin ilgili verilerinizle değiştirilmesi gerekir:

  • {replica_set_name} – replika seti adınızı girin.
  • {db_username} – seçilen birincil veritabanının yönetici kullanıcısını ekleyin (varsayılan olarak admin'dir).
  • {db_password} – yönetici kullanıcısının şifresini girin.
  • {NodeID} – ilgili düğümün kimlik numarasını belirtin. Bunu şurada bulabilirsiniz: CloudSigma PaaS paneli.
  • {environment_domain} – ortam alan adını ekleyin. Bunu CloudSigma PaaS panelinde de bulabilirsiniz:

Replika setinizdeki her bir düğümün kimliğini uygun mongodbConnectionURI bölümünde belirttiğinizden emin olun.

İlgili değerleri girmek ve kodu çalıştırmak size buna benzer bir dizi dize gösterecektir:

Bu noktada dosyayı Kaydettiğinizden emin olun!

4. Apache'nin MongoDB sunucusuyla etkileşime girmesi için özel bir modül gerekir. Bu modülü configs içinde ekleyebilirsiniz. etc klasörüne gidin ve php.ini dosyasını açın. [mongodb] bölümünü bulun. Burada tek yapmanız gereken, bu uzantıyı etkinleştirmek için extension=mongodb.so satırının önündeki noktalı virgülü kaldırmaktır:

      5. Editör penceresinde Kaydet düğmesine tıklayarak yeni yapılandırmaları uygulayın. Her zaman olduğu gibi, değişiklikleri uygulamak için düğümleri yeniden başlatmamız gerekiyor. Bunun için Düğümleri Yeniden Başlat düğmesine tıklayın (bu düğme Uygulama Sunucusu seçeneğinin yanındadır):

    6. Şimdi Tarayıcıda Aç düğmesine tıklayarak test edin:

Bu simgeye tıklamak, replika seti üyeleriniz/düğümleriniz ve bunların erişilebilirliği hakkındaki tüm bilgileri şu şekilde gösterecek yeni bir tarayıcı sekmesi açacaktır:

Since we used the command ping komutunu kullandığımız için ( index.php dosyasının 6. satırı), ilk satır replika setinin kullanılabilirliğini kontrol etme sonucunu görüntüler:

Bu, replika setinin başarıyla test edildiği anlamına gelir. 

Sonuçlardaki bir sonraki blok, replika seti ana bilgisayarları hakkında ayrıntılı bilgi gösterir. Bu veriler, getServers işlevi sayesinde elde edilir ( index.php dosyasının 11. satırı). Benzer şekilde, bu replika setini oluşturma işlemi sırasında atanan bazı değerleri de kontrol edebilirsiniz:

  • host – belirli bir veritabanının IP adresi.
  • port – bu, mevcut replikasyon üyesinin portudur.
  • [“is_primary”] ve [“is_secondary”] – sunucu durumunu gösteren parametreler. Seçilen birincil MongoDB sunucusu için karşılık gelen değerler sırasıyla true, false ve diğer iki MongoDB sunucusu için – false, true şeklindedir.

Ek olarak, değişiklikleri izlemek için veritabanı düğümlerini istediğiniz zaman başlatabilir ve durdurabilirsiniz. Aynı şeyi yapmak için sayfayı da yenileyebilirsiniz. Bu, MongoDB kümenizin her zaman kullanılabilir, çalışır durumda ve yapılandırdığınız gibi olmasını sağlamanıza olanak tanır.

CloudSigma PaaS, kullanıcılarının yapılandırma ve arka uç tarafı hakkında çok fazla endişelenmeden replika setleri kullanmanın avantajlarından yararlanmalarını sağlar. Bu eğitim, sadece birkaç basit adımla kendi MongoDB kümenizi kurmanın ne kadar kolay olabileceğini göstermektedir. MongoDB, bunu Ubuntu için nasıl kuracağınız veya genel bulut sunucuları için nasıl kuracağınızın yanı sıra CloudSigma PaaS'ın sunduğu diğer gelişmiş özellikler hakkında daha fazla bilgi edinebilirsiniz. Ayrıca, PaaS'ı ücretsiz olarak denemeye ve panel ile pazar yeri ve sunduklarına aşina olmaya davet ediyoruz. 

PaaS'ı 7 gün boyunca Ücretsiz Deneyin

author

Preslav Dobrev

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.