MySQL Cluster 7.5 Kurulumu

MySQL Cluster 7.5 Kurulumu

Giriş

Veriler bir kurumun en önemli varlığıdır. Kurumsal uygulamaların hemen hemen hepsi kullanım senaryolarının bir adımında veri tabanına erişim ihtiyacı duyarlar. Bu nedenle kurumsal mimari şekillendirilirken, veri tabanlarının hem dar boğaz oluşturmayacak şekilde ölçeklenebilir olmasına hem de iş süreçlerini kesintiye uğratmayacak şekilde her zaman erişilebilir olmasına dikkat edilir. Genel olarak ölçeklenebilirlik ve her zaman erişilebilirlik için kümeleme çözümlerinden yararlanılır. Veri tabanlarının çoğunun birer kümeleme çözümü vardır. Ancak kümeleme yaklaşımları farklılık gösterebilir. Burada temelde iki farklı yaklaşım kullanılır: Kaynak Paylaşımsız(=Shared-Nothing) Yaklaşım ve Disk Paylaşımlı (=Shared Disk) Yaklaşım. Kaynak paylaşımsız yaklaşımda, kümeyi oluşturan düğümler, sıradan bilgisayarlar kullanılarak oluşturulur. Ortak paylaşılan bir disk alanına ya da özel bir donanıma ihtiyaç duyulmaz. Elbette düğümleri biri birine bağlayacak bir bilgisayar ağ yapısına ihtiyaç bulunur. Disk paylaşımlı yapıda ise SAN (=Storage Area Network) ya da NAS (Network-Attached Storage) gibi özel bir depolama çözümüne ihtiyaç duyulur. MySQL Cluster kaynak paylaşımsız yaklaşımı kullanırken, Oracle RAC ise disk paylaşımlı yaklaşımı kullanır. Yazmalarda kaynak paylaşımsız çözümdağıtık kilit (=Distributed Locking) mekanizmasını kullandığı için potansiyel olarak daha ölçeklenebilir bir çözüm sunabilir.Dağıtık kilit mekanizmasında, genel olarak iki evreli kilit (=2PLTwo-Phase Lock) mekanizması kullanılır. Benzer şekilde hareket (=transaction) yönetiminde ise iki evreli onay (=2PCTwo Phase Commit) hareket algoritması kullanılır. 2PCalgoritmasında, hareketi yönetecek bir koordinatöre (TCTransaction Coordinator) ihtiyaç vardır. TC, harekette yer alan düğümlere bir ön onay isteği gönderir. Eğer tüm düğümler olumlu cevap dönerse, TC tüm düğümlere asıl onayı gönderir. Eğer düğümlerden en az biri olumsuz cevap gönderirse, bu sefer TC düğümlere geri al (=Rollback) komutu gönderir. Genellikle kümeyi oluşturan düğümler TCrolünü üstlenirler. 

Her dağıtık sistemin ilgilenmesi gereken 3 problem vardır:

  • Tutarlılık: Kümedeki her düğüm aynı veriye sahip olmalıdır
  • Erişilebilirlik: Her istek için işlem başarılı olsun ya da olmasın bir cevap dönülmelidir
  • Dayanıklılık: Kümedeki düğümlerde ya da iletişimde oluşan hatalara karşı sistemin çalışmaya devam edebilme yeteneği

Bu üç özelliği her durumda sağlamak mümkün değildir. MySQL her türlü hataya karşı dayanıklı değildir. Eğer bilgisayar ağında bazı düğümler biri birleri ile iletişim kurabilirken, bazı düğümler biri birlerini görmüyorsa MySQL Clustertutarlılığı, dayanıklılığa tercih eder.

MySQL Cluster Mimarisi

MySQL Cluster kayıtları bellekte saklayan dağıtık bir ilişkisel veri tabanıdır. Bellekte saklanan veriler indekslenmiş sütunlar ve bunların indeksleri bellekte saklanır. Bu nedenle indekslenmiş alan üzerinden veriye erişim çok hızlıdır. Veriler birden fazla düğümde yedeklenir. Böylelikle kümedeki bir düğümün bozulması veri kaybına neden olmaz.

MySQL Cluster içinde üç tür düğüm bulunmaktadır:

  • Veri düğümü (=Data Node)

Verileri ve indekslerini bellekte saklamaktan ve erişiminden sorumludur.Veri düğümlerinden NoOfReplicas değişkeni kadarı bir araya gelip bir Düğüm Grubu oluştururlar. Aynı Düğüm Grubunda yer alan veri düğümler, biri diğeri üzerindeki kayıtları yedekli olarak saklar. Böylelikle, gruptaki veri düğümlerinden biri servis dışı kalırsa, küme kesintisiz çalışmaya devam eder. Tipik olarak NoOfReplicas değişkeninin değeri 2 olarak seçilir.

  • Yönetim Düğümü (=Management Node)

Kümelemenin yapılandırılmasından, düğümlerin uzaktan yönetilmesinden ve izlenmesinden sorumludur. Veri düğümleri açılış sırasında yönetim düğümü ile konuşurlar. Yapılandırma değişikliklerinde yönetim düğümü önemli bir rol oynar. Bu nedenle, her zaman erişilebilirlik için yönetim düğümü de en az iki adet olarak artıklık yaratacak şekilde tasarlanmalıdır.

  • API/SQL Düğümü (=API/SQL Node)

Kümeden hizmet almak isteyen istemciler, doğrudan veri düğümlerine erişebilecekleri gibi, API/SQL düğümlerine bağlanıp SQL cümlelerini çalıştırabilirler. Bu düğümler üzerinde NDB saklama motoru bulunduran, küme ile ilgili herhangi bir sorumlulukları bulunmayan, normal birer MySQL sunucusudurlar.

Bu yazıda, aşağıdaki çizgede gösterildiği şekilde, iki yönetim düğümlüdört veri düğümlü ve iki SQL düğümlü bir MySQL Cluster 7.5 kurulumu hem Windows hem de Centos/RHEL 7 işletim sistemi için anlatılacaktır.

Yazının tamamına bu bağlantıdan ulaşabilirsiniz.

Yorumları görmek veya yorum eklemek için oturum açın

Binnur KURT adlı yazarın diğer makaleleri