19 Mart 2014 Çarşamba

Mysql database cluster and Nginx web server high availability and scalability part1

Wordpress high availability and scalability
Yapıyı kabaca anlatmak gerekirse dışarıdan gelen bütün istekleri Load balancer(Haproxy) karşılayacak ve web sunuculardan (Nginx) alıcak, Nfs sunucusundan bir dizin export edeceğiz ve bunları web sunucuların “www” dizinine mount edeceğiz.
Özetle ,Trafik arttıkça ölçeklendirilebilen bir yapı.
Kullanılan işletim sistemi ve yazılımlar;
·         Debian 7.4 ,
·         Wordpress,
·         Haproxy- Loadbalancer,
·         Nginx-Webserver, php5
·         Nfs server,
·         Galera Cluster (Percona)-Mysql 5.6 Database Cluster.
Galera Cluster kurulumu;
Kurulan bu yapı toplam da 4 Vm üzerine kurulmuştur 1 controler diğer 3’ü node olarak.
Cluster ve Node yapısı;
2 core cpu,
1 gb ram,
30 gb disk alanı.
Scripti oluşturmak için ;
Gerekli alanları doldurduktan sonra Cluster controller’a ‘wget’ indirip.
* tar xvfz s9s-galera-percona-3.2.0.tar
* cd s9s-galera-3.2.0/mysql/scripts/install
* bash ./deploy.sh  2>&1  |tee cc.log

Kurulumu çok kolay sadece sizden nodeların root veya kullanıcı passwordlerini girmenizi istiyor ve kurulumu kendi gerçekleştirmiş oluyor.

Not:
3.2.0 sürümün de olan bir bug var,(nodelar da ki ayarları yaparken my.cnf dosyasından dolayı hata vermekte ) onun çözümü de şöyle;
s9s-galera-percona*/mysql/config/my.cnf
my.cnf dosyasını açın deployment scripttin de:
evs.consensus_timeout=X
değişkenini aşağıdaki gibi değiştirin
evs.install_timeout=X
Yukarıda ki değişikleri yaptıktan sonra;
cd s9s-galera-percona*/mysql/scripts/install/
./bootstrap.sh
./install-cmon.sh -s
cat .s9s/greetings
Sorun çözülmüş ve kurulum bitmiş oluyor .
Galera web arayüzüne erişmek için;

Arayüz üzerinden loadbalancerı da ekleyelim.
Ama öncesin de Haproxy’nin reposunu Cluster contorller makinasının ekleyelim yoksa repo da bulamayım kurulum tamamlanmaz.
#vi /etc/apt/source.list
deb http://mirror.vorboss.net/debian/ wheezy-backports main
deb-src http://mirror.vorboss.net/debian/ wheezy-backports main
#apt-get update
Add Loadbalancer’ı tıkladığınız da aşağıdaki  gibi bir arayüz ile karşılacaksınız.
Proxy yapmak istediğiniz Mysql serverlar ı seçiyoruz, Loadbalancerın kurulmasını istediğiniz makinanın ip adresini yazıyoruz ve ya Cluster controllera kurabilirsiniz.
Haproxy nin çalışmasını istediğiniz portu giriyorsunuz.
Ve install haproxy dedikten sonra sizin yerinize Galera controller kurulumu yapıyor.
Not: Mysql’in default portunu girmeyiniz .

Herhangi bir node’a bağlanıp wordpress için bir database oluşturalım .Diğer nodelar kısa bir süre sonra güncellenecektir ve bir yerde oluşturduğunuz veritabanına diğer 2 nodedan da erişebileceksiniz.
#mysql –u root –p
> CREATE DATABASE  wordpress;
> CREATE USER 'kullanici_adi'@'%' IDENTIFIED BY 'sifre';
> GRANT SELECT,INSERT,UPDATE,DELETE ON wordpress.* TO 'kullanici_adi'@'%';
> FLUSH PRIVILEGES;


Hiç yorum yok:

Yorum Gönder