在中国,将 “pacemaker中的galera Cluster(第1部分)” 转述为本地语言的一个选项为:使用pacemaker管理galera集群(第1部分)

由于Pacemaker也有galera的资源代理,所以我会进行尝试。
首先,先确认只有galera的集群是否正常,然后再尝试在Pacemaker下启动。

环境

在KVM上有三个节点:CentOS 7.2和Ubuntu 14.04作为客户机。

    • ct72-1 : 192.168.10.10 (Master1)

 

    • ct72-2 : 192.168.10.20 (Master2)

 

    • ct72-3 : 192.168.10.30 (Master3)

 

    • MariDB : 10.1 は以下によってリポジトリインストールしました。

https://downloads.mariadb.org/mariadb/repositories/#mirror=yamagata-university&distro=CentOS&distro_release=centos7-amd64–centos7&version=10.1

pacemaker-90b675e2ff9db3e9ba5dd8e4e09ddc25de4acd23
crmsh-2.1.5
resource-agents-3.9.7
corosync-2.3.5

在进行Galera安装后,Galera的自动启动已被启用。
在测试集群确认完成后,由于Galera在Pacemaker下的启动和停止,因此应在每个节点上禁用自动启动。

[root@ct72-xx ~]# systemctl disable mariadb.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/mariadb.service.
Removed symlink /etc/systemd/system/mysql.service.
Removed symlink /etc/systemd/system/mysqld.service.

[root@ct72-xx ~]# systemctl disable mysql

由于对galera不太了解,我参考了各种网络信息来设置配置文件,如下所示。

[mysqld]
bind-address=0.0.0.0

#
# * Galera-related settings
#
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
#wsrep_cluster_address=
binlog_format=row
wsrep_cluster_address='gcomm://'
wsrep_cluster_name='DBCLUSTER'
wsrep_node_name='ct72-01'
wsrep_node_address = 192.168.10.10

[mysqld]
bind-address=0.0.0.0

#
# * Galera-related settings
#
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
#wsrep_cluster_address=
binlog_format=row
wsrep_cluster_address='gcomm://192.168.10.10'
wsrep_cluster_name='DBCLUSTER'
wsrep_node_name='ct72-02'
wsrep_node_address = 192.168.10.20

[mysqld]
bind-address=0.0.0.0

#
# * Galera-related settings
#
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
#wsrep_cluster_address=
binlog_format=row
wsrep_cluster_address='gcomm://192.168.10.10'
wsrep_cluster_name='DBCLUSTER'
wsrep_node_name='ct72-03'
wsrep_node_address = 192.168.10.30

启动测试集群

首先,只使用galera启动集群。

    Master、Slaveの順で起動
[root@ct72-01 ~]# service mysql start --wsrep-new-cluster
[root@ct72-02 ~]# service mysql start
[root@ct72-03 ~]# service mysql start
    起動の確認
[root@ct72-01 ~]# mysql -u root -e "show status like 'wsrep_local_index';"
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| wsrep_local_index | 1     |
+-------------------+-------+
[root@ct72-02 ~]# mysql -u root -e "show status like 'wsrep_local_index';"
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| wsrep_local_index | 1     |
+-------------------+-------+
[root@ct72-03 ~]# mysql -u root -e "show status like 'wsrep_local_index';"
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| wsrep_local_index | 1     |
+-------------------+-------+

测试集群的确认

    Masterノードでdb/Table/dataの作成
[root@ct72-01 ~]# mysql -u root
MariaDB [(none)]> create database testdb3;
MariaDB [(none)]> use testdb3;
Database changed
MariaDB [testdb3]> create table tb2 ( name text, phone text, addr text );
Query OK, 0 rows affected (0.40 sec)
MariaDB [testdb3]> insert into tb2 ( name, phone, addr ) values ( 'yoshida', '012-345-6789', 'Tokyo/Japan' );
Query OK, 1 row affected (0.09 sec)

MariaDB [testdb3]> select * from tb2;
+---------+--------------+-------------+
| name    | phone        | addr        |
+---------+--------------+-------------+
| yoshida | 012-345-6789 | Tokyo/Japan |
+---------+--------------+-------------+
1 row in set (0.00 sec)
    Slaveノード1で同期の確認
[root@ct72-02 ~]# mysql -u root
MariaDB [(none)]> use testdb3;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [testdb3]> select * from tb2;
+---------+--------------+-------------+
| name    | phone        | addr        |
+---------+--------------+-------------+
| yoshida | 012-345-6789 | Tokyo/Japan |
+---------+--------------+-------------+
1 row in set (0.00 sec)
    Slaveノード2で同期の確認
[root@ct72-03 ~]# mysql -u root
MariaDB [(none)]> use testdb3;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [testdb3]> select * from tb2;
+---------+--------------+-------------+
| name    | phone        | addr        |
+---------+--------------+-------------+
| yoshida | 012-345-6789 | Tokyo/Japan |
+---------+--------------+-------------+
1 row in set (0.00 sec)

停止测试集群。

在所有节点上执行”service mysql stop”命令。

一个选项是:Pacemaker 中的集群。

准备CLI文件

首先,先确认的Galera配置文件将保持原样。
我们先简单地准备一个只包含Galera集群的CLI文件。
我已经按照Galera资源代理内的pcs描述示例配置为三个主节点结构。
(由于目前Galera存在各种限制,所以不能直接在三个主节点的配置下正常运行,详情请参见https://mariadb.com/kb/en/mariadb/mariadb-galera-cluster-known-limitations/)

primitive db galera \
        params enable_creation=true wsrep_cluster_address="gcomm://ct72-01,ct72-02,ct72-03" \
        op start interval=0s timeout=120 \
        op stop interval=0s timeout=120 \
        op monitor interval=20 timeout=30 \
        op monitor interval=10 role=Master timeout=30 \
        op monitor interval=30 role=Slave timeout=30 \
        op promote interval=0s timeout=300 \
        op demote interval=0s timeout=120
ms db-master db \
        meta master-max=3
property cib-bootstrap-options: \
        startup-fencing=false \
        stonith-enabled=false

起动Pacemaker

使用systemctl命令在所有3个节点上启动Pacemaker。

将CLI文件导入

在起搏器启动稳定之后,我们将使用crm shell执行先前的CLI文件。

[root@ct72-01 ~]# crm configure load update CLIファイル

确认启动

有些机器的性能可能导致启动需要一些时间,但是等待一段时间后,所有节点都会成功启动为主节点。

[root@ct72-01 ~]# crm_mon -1 -Af
Stack: corosync
Current DC: ct72-01 (version 1.1.14-90b675e) - partition with quorum
Last updated: Mon Apr 18 19:03:47 2016      
Last change: Mon Apr 18 18:55:44 2016 by root via cibadmin on ct72-01

3 nodes and 3 resources configured

Online: [ ct72-01 ct72-02 ct72-03 ]

 Master/Slave Set: db-master [db]
     Masters: [ ct72-01 ct72-02 ct72-03 ]

Node Attributes:
* Node ct72-01:
    + master-db                         : 100       
* Node ct72-02:
    + master-db                         : 100       
* Node ct72-03:
    + master-db                         : 100       

Migration Summary:
* Node ct72-01:
* Node ct72-03:
* Node ct72-02:

暂时先确认启动成功了,接下来我们将只在三个节点中的一个节点启动VIP资源,并进行相应的处理接受改变。

以上所述。

bannerAds