Bloğa geri dön

Kamu bulutunda Ubuntu'da MongoDB nasıl kurulur & optimize edilir

Kamu bulutunda Ubuntu'da MongoDB nasıl kurulur & optimize edilir

İşletmeler çok miktarda veri anlamına gelir ve bu da verilerin işlenmesi ve yönetilmesi sorununu zorlaştırır. Geleneksel olarak sektör onlarca yıldır RDBMS sistemlerini kullanıyor, ancak 21. yüzyılda Big Data'nın ortaya çıkmasıyla birlikte, büyük ölçekli yapılandırılmamış ve yarı yapılandırılmış veriler için NoSQL (Not only SQL) veritabanları devreye girdi.

Bu yazıda bir MongoDB kümesi kuracağım.

MongoDB sağladığı yüksek düzeyde ölçeklenebilirlik ve esneklik nedeniyle yaygın olarak kullanılan, ücretsiz ve açık kaynaklı bir NoSQL belge veritabanıdır.

MongoDB'yi canlı ortamda devreye almak için Replica Set'lerin kullanılması önerilir. Replica set'ler, MongoDB'nin ilişkisel dünyadaki Master/Slave kurulumunun karşılığıdır, ancak buna karşın, her şey yerleşik olduğu için kurulumları son derece zahmetsizdir. Replica Set'ler hakkında daha fazla bilgi için şuraya göz atın: TutorialsPoint’in replikasyon süreci hakkındaki tanımı.

MongoDB Bulut Sunucu Kümenizi Planlama

3 düğümlü bir küme oluşturacağım. Bunlara eşit kaynaklar vermek önemlidir çünkü herhangi biri birincil (yani master) sunucu haline gelebilir. Bu düğümler veya makineler herhangi bir işletim sisteminde çalışabilir, ancak bu eğitimde Ubuntu 18.04 LTS kullanacağım. CloudSigma’ın kütüphanesindeki önceden yüklenmiş imajın nasıl bağlanacağı ve kurulacağı konusunda şuraya başvurabilirsiniz: bu eğitim.

Bir Replica Set kullanmanın tüm amacı, kümenin tek bir düğümün devre dışı kalmasından sağ çıkabilmesi olduğundan, tüm sunucularınızın aynı fiziksel ana bilgisayarda bulunması oldukça anlamsız olurdu. Neyse ki CloudSigma, şu adla anılan bir özellik sunuyor: kullanılabilirlik grupları. Bunun anlamı, sisteme her üç sunucunuzu da farklı gruplara ayırması talimatını verebilmenizdir. Böylece hiçbir zaman aynı fiziksel ana bilgisayarda bulunmazlar. Bu ve diğer güvenlik ile iş sürekliliği özellikleri hakkında daha fazla bilgiye şuradan ulaşabilirsiniz: buradan.

Linux'un 64-bit sürümünü kullanmak da önemlidir. Bunun nedeni basitçe MongoDB'nin 32-bit sistemlerde iyi çalışmamasıdır (bu konuda daha fazla bilgi için: buraya).

Bulutta MongoDB Kurulumu

Bu bölüm oldukça basittir. Önceden yapılandırılmış olanlardan birini kullanın: Ubuntu 18.04 imajlarını kullanın veya kendiniz kurun.

CPU, RAM ve disk yapılandırması tamamen kişiseldir ve yükünüze bağlıdır. Küçük bir kurulum için 4 GHz CPU, 4 GB RAM ve 10 GB disk (sistem için) yeterli olacaktır. Sürücülerinizi bağlarken, VirtIO kullandığınızdan emin olun. IDE kullanırsanız performans önemli ölçüde düşecektir. Ayrıca, bir Replica Set oluşturduğunuz için tüm düğümlerin (ve uygulama sunucularının) aynı VLAN üzerinde olması gerekir.

Diğer birçok bulut sağlayıcısının aksine, performansı artırmak için depolama alanınızı RAID10 veya benzeri bir şekilde yapılandırmanıza gerek yoktur. Birçok müşterimizin bildirdiği gibi, CloudSigma'da hem SSD hem de manyetik diskler kullanarak kutudan çıktığı haliyle harika bir performans elde edeceksiniz.

Yine de MongoDB verilerini ayrı bir sürücüde tutmanızı öneririm. Bunun nedeni basitçe, bir noktada tüm dosya sisteminize uygulamak istemeyeceğiniz bazı dosya sistemi optimizasyonları yapmak zorunda kalabilmenizdir.

Bunu akılda tutarak, bu sürücüyü sunucuların kurulumundan sonra eklemek en kolayıdır. Şimdilik sadece sistem kurulumuna odaklanalım. Kendiniz kurulum yapıyorsanız (önceden yapılandırılmış sistemleri kullanmak yerine), önyükleme menüsünde F4 tuşuna basmanızı ve şunu seçmenizi öneririm: ‘Minimal bir sanal makine kur’.

Her biri aşağıdaki özelliklere sahip 3 makine oluşturuyorum:

  • CPU: 4 GHz
  • RAM: 4 GB
  • SSD: 10 GB (Ubuntu 18.04 LTS), 20 GB (ekstra sürücü)

SSD bölümünde belirtildiği gibi, üzerinde Ubuntu 18.04 LTS kurulu olan 10 GB boyutunda bir sürücü bağlıyorum.

Ayrıca, MongoDB verilerini depolamak için bununla birlikte 20 GB boyutunda başka bir boş sürücü daha bağlıyorum. Bunun boyutu büyük ölçüde kullanımınıza bağlıdır, ancak küçük bir sistem için 20 GB muhtemelen yeterli olacaktır. Ancak, ne kadar veri depolayacağınızı tahmin etmek bazen zor olduğundan, şunu kullanacağız: LVM. Bu, daha sonra kolayca başka bir sürücü eklemenize ve baştan başlamak zorunda kalmadan birimi genişletmenize olanak tanır. Alternatif olarak, tek bir sürücü kullanabilir ve daha sonra bunu şununla ölçeklendirebilirsiniz:resize2fs.

To add the disk, just go to the ‘Drives’ Section, click on ‘Create a new drive’ icon on the top, give the new disk a name and size it to 20 GB. Once it’s saved, go to the individual machine to which you want to attach it and under drives section of that machine’s details, I can click on ‘Attach a drive’ and select the disk.

Artık üç makineniz olduğuna göre, MongoDB veri depolamanız için eklediğiniz ekstra diski her makineye bağlamaya (mount) geçebilirsiniz. Bu diski bir bölüm (partition) olarak eklemenizi öneririm. Bölümleme kullanmak, işletim sisteminin her bölgedeki bilgileri ayrı ayrı yönetmesini sağlar. Diski bir bölüm olarak eklemek için öncelikle makinemize bağlı tüm diskleri kontrol edeceğim. Bunun için aşağıdaki komutu çalıştıracağım:

Komutu çalıştırdığımda, makinemdeki diskleri ve aygıtları belirten çıktıyı alıyorum.

MongoDB

Görselde, işletim sistemimizin kurulu olduğu disk olarak 10 GB'lık bir diski işaretledim. Ardından, şu anda eklenmiş olan 20 GB'lık başka bir disk var. Disk konumu: /dev/vdb. Aşağıdaki komutları kullanarak bu disk üzerinde bir bölüm oluşturabilirsiniz:

Bu komut, diskimizde bölümler oluşturabileceğiniz, disk bölümleme işlevleri sağlayan bir komut satırı aracı olan fdisk aracını açacaktır. Gireceğiniz yerde “Command (m for help):” şeklinde bir istem verecektir: n yeni bir bölüm oluşturmak için, ardından varsayılan değerleri kabul etmek için enter tuşuna basmaya devam edin. Bölüm oluşturulduktan sonra, değişiklikleri yazmak için w girin. Şöyle görünecektir:

‘Linux’ tipinde ve 20 GiB boyutunda yeni bir bölüm 1 oluşturuldu. Bölüm oluşturulduğuna göre, şimdi bir LVM havuzu oluşturalım:

Bölüm boyutumuz 20g olduğu için ‘19.5g’ değerini girdim. Ardından, diskin adını öğrenmek için aşağıdaki komutu çalıştırın:

Ondan sonra, aşağıdaki komutla ext4 yöntemini kullanarak diski biçimlendirin:

Ardından, diski bağlamak için bir konum ve MongoDB verilerinizi saklamak için bir klasör oluşturalım.

Yeni diskinizin bağlanmasıyla ilgili fstab dosyasına bir girdi eklemek için doğrudan aşağıdaki komutu kullanabilirsiniz:

Komutta, blkid her diskin UUID – Evrensel Benzersiz Tanımlayıcısını verir. Burada MongoDB diski için olanı grep ile ayıklıyorum ve bu UUID'yi sırasıyla bağlama klasörünün konumu, dosya sistemi türü ve disk için diğer seçeneklerle birleştiriyorum. Bu satırı /etc/fstab dosyasına ekliyorum. Bunu yapmazsanız, diski bağlarken bir hata alırsınız. Girdi şu şekilde görünür:

UUID=”695a62e6-021d-4fc0-945c-cc51a92d86da” /mongodb ext4 auto,noexec,rw,sync,nouser 0 0

Şimdi, diski /mongodb konumuna bağlayabilirsiniz:

MongoDB Kurulumu

Sistem hazır olduğuna göre, MongoDB kurulumuna geçelim. Ubuntu kendi deposunda MongoDB'nin bir sürümünü sunsa da, bunun yerine resmi MongoDB sürümünü kullanmanızı öneririm. Bunun nedeni, Ubuntu deposunun sürümlerde oldukça geride kalmasıdır, bu nedenle MongoDB'den en iyi şekilde yararlanmak istiyorsanız resmi sürümlere yönelmeniz gerekecektir.

MongoDB kendi deposunu sunduğundan, bunu sisteminize kolayca ekleyebilir ve ardından MongoDB'yi normal şekilde kurabilirsiniz. İzlenecek adımlar şunlardır:

İlk olarak, paket yönetim sistemi tarafından kullanılan genel anahtarı içe aktarın:

Ardından, bir liste dosyası oluşturuyorum. Bu dosya MongoDB'nin bulunduğu depoyu içerecektir, böylece sisteminiz dosyayı oradan indirebilir:

Şimdi, değişiklikleri hesaba katabilmek için yerel paket veritabanımı güncelliyorum.

Şimdi, aşağıdaki komutu kullanarak paketi kurabilirim:

Her bir makineye MongoDB kurulumunu gerçekleştirdim.

Şimdi MongoDB, oluşturulan sürücüdeki verilerle birlikte çalışır durumdadır. Ağır yük ve/veya çok sayıda bağlantı bekleniyorsa, ulimit değerlerini yükseltmeniz gerekebilir.

Verileriniz hakkında daha fazla bilgi edinmek istiyorsanız, MongoDB'nin MMS hizmetine de kaydolmak isteyebilirsiniz; bu, MongoDB için ücretsiz, bulut tabanlı bir izleme servisidir.

MongoDB Bulutunuz için Replica Set Oluşturma

Şimdi bir replica set oluşturalım. Bundan önce, makinelerin her birinin birbiriyle iletişim kurabildiğinden emin olmanız gerekir. Bu amaçla, /etc/hosts dosyasına şu girdileri ekleyeceğiz:

Doğrulama için, ana bilgisayar adını kullanarak makinelere ping atmayı deneyebilirsiniz. Yani makine 1’imin IP'si IP-1 ise, diyelim ki 213.189.123.12, yazmak yerine

şunu yazacağım,

Güvenlik duvarını etkinleştirdiyseniz (ki bunu kesinlikle yapmalısınız), düğümlerin dahili arayüzde 28017 ve 27017 numaralı bağlantı noktalarından TCP trafiği gönderip alabildiğinden emin olun.

Şimdi, her bir makinede aşağıdaki komutları kullanarak mongod hizmetini başlatın.

m1 makinesinde,

Ardından, m2 makinesinde,

m3 makinesinde,

Burada,

mongod hizmetin adıdır

dbpath veritabanı dizinimizin konumudur

replSet replikasyon kümemizin adıdır. Aynı replika kümesindeki makinelerin her biri için aynı olmalıdır

bind_ip onu çalıştırdığınız makinenin ana bilgisayar adıdır.

mongod hizmetini başlattıktan sonra, birincil sunucuya gidin (benim durumumda m1'i seçtim) ve mongo'yu çalıştırın.

MongoDB terminalini başlatacaktır. Terminalde, aşağıdaki komutu kullanarak replicaSet'i başlatın. Varsayılan yapılandırmalarla replicaSet'i oluşturacaktır:

Şimdi, aşağıdaki komutları kullanarak diğer iki makineyi replika olarak ekleyelim:

Durumu şu komutu kullanarak izleyebilirsiniz:

İşte bu kadar. Artık CloudSigma’nın son derece hızlı bulutunda MongoDB kümenizle çalışmaya hazır olmalısınız.

author

Akshay Nagpal

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.