Kullanılan bileşenler:
- 3 adet Rpi (2 adet Rpi4 1 adet Rpi3)
- Rpi OS Lite
- Mariadb
- Galera
Amaç:
Bağımsız n+1 mariadb database’ine sahip veritabanlarının senkronizasyonunu sağlamak. Max sayı için 10’u geçmese iyi olur densede henüz test etme şansım olmadı, test edince güncel veriler ile performans ve farklı modlardaki çalışma mantığını ilerleyen zamanlarda ekleyeceğim inşallah.
Hostlar sırasıyla aşağıdaki ipleri static alsın:
192.168.1.202
192.168.1.203
192.168.1.204
201 (1. host) hostunda yapılacaklar:
cat /proc/cpuinfo | grep Serial
Serial : 100000000903a2f3
sudo pico /etc/hosts dosyasının içine:
192.168.1.202 100000000903a2f3
192.168.1.203 100000001aeafbd0
192.168.1.204 00000000ac70ad1e
sudo apt install mariadb-server
sudo mysql_secure_installation ile root şifresi belirlenir.
sudo apt install phpmyadmin web tarafında db kontrol arayüzü kurulur.
sudo apt install software-properties-common
sudo nano /etc/mysql/conf.d/galera.cnf dosyasının içine:
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name=”h4ck3r_cluster”
wsrep_cluster_address=”gcomm://192.168.1.202,192.168.1.203,192.168.1.204″
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address=”192.168.1.202″
wsrep_node_name=”100000000903a2f3″
202 (2. host) hostunda yapılacaklar:
cat /proc/cpuinfo | grep Serial
Serial : 100000001aeafbd0
sudo pico /etc/hosts dosyasının içine:
192.168.1.202 100000000903a2f3
192.168.1.203 100000001aeafbd0
192.168.1.204 00000000ac70ad1e
sudo apt install mariadb-server
sudo mysql_secure_installation ile root şifresi belirlenir.
sudo apt install phpmyadmin web tarafında db kontrol arayüzü kurulur.
sudo apt install software-properties-common
sudo nano /etc/mysql/conf.d/galera.cnf dosyasının içine:
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name=”h4ck3r_cluster”
wsrep_cluster_address=”gcomm://192.168.1.202,192.168.1.203,192.168.1.204″
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address=”192.168.1.203″
wsrep_node_name=”100000001aeafbd0“
203 (3. host) hostunda yapılacaklar:
cat /proc/cpuinfo | grep Serial
Serial : 00000000ac70ad1e
sudo pico /etc/hosts dosyasının içine:
192.168.1.202 100000000903a2f3
192.168.1.203 100000001aeafbd0
192.168.1.204 00000000ac70ad1e
sudo apt install mariadb-server
sudo mysql_secure_installation ile root şifresi belirlenir.
sudo apt install phpmyadmin web tarafında db kontrol arayüzü kurulur.
sudo apt install software-properties-common
sudo nano /etc/mysql/conf.d/galera.cnf dosyasının içine:
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name=”h4ck3r_cluster”
wsrep_cluster_address=”gcomm://192.168.1.202,192.168.1.203,192.168.1.204″
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address=”192.168.1.204″
wsrep_node_name=”00000000ac70ad1e“
Bu işlemle tamamlanınca 3 hosttada:
sudo systemctl stop mysql
sudo systemctl status mysql
ile mysql servislerinin stopped olması kontrol edilir.
İlk hostta:
sudo galera_new_cluster komutu ile galerayı aktif edeceğiz ve aşağıdaki komutla clusterdaki value değeri 1 olarak görülecek.
v2x@v2xcharge:~ $ mysql -u root -p -e “SHOW STATUS LIKE ‘wsrep_cluster_size'”
Enter password:
+——————–+——-+
| Variable_name | Value |
+——————–+——-+
| wsrep_cluster_size | 1 |
İkinci hostta:
sudo systemctl start mysql
mysql -u root -p -e “SHOW STATUS LIKE ‘wsrep_cluster_size'”
value değeri 2 olması gerek.
Üçüncü hostta:
sudo systemctl start mysql
mysql -u root -p -e “SHOW STATUS LIKE ‘wsrep_cluster_size'”
value değeri 3 olması gerek.
Sonrasında phpmyadmin üzerinden herhangi bir host üzerinden vt oluşturulup senkronizasyon durumu kontrol edilebilir.
Umarım bir faydamız dokunur 🙂