当前位置:Gxlcms > 数据库问题 > [ Openstack ] Openstack-Mitaka 高可用之 Mariadb-Galera集群部署

[ Openstack ] Openstack-Mitaka 高可用之 Mariadb-Galera集群部署

时间:2021-07-01 10:21:17 帮助过:14人阅读

install MariaDB-Galera-server MariaDB-client galera -y

安装完后的配置文件:

# ll /etc/my.cnf.d/
total 16
-rw-r--r-- 1 root root  295 Oct 27 08:23 client.cnf
-rw-r--r-- 1 root root  232 Oct 27 08:23 mysql-clients.cnf
-rw-r--r-- 1 root root 1007 Aug 16 18:24 server.cnf
-rw-r--r-- 1 root root  285 Aug 16 18:24 tokudb.cnf

启动数据库

# /etc/init.d/mysql start

加固数据库

# mysql_secure_installation

我这里密码是123456,不必一致

授权认证用户:

# mysql -p123456

添加集群认证用户:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO galera@% IDENTIFIED BY galera WITH GRANT OPTION;
MariaDB [(none)]> flush privileges;

停止所有节点mysql服务

# /etc/init.d/mysql stop

在 [mariadb] 模块中添加如下:

Controller1 :


[mariadb]
query_cache_size=0                                     # 关闭查询缓存
binlog_format=ROW                                      # binlog文件格式:行
default_storage_engine=innodb                             # Mariadb 存储引擎
innodb_autoinc_lock_mode=2                              #主键自增模式修改为交叉模式
wsrep_provider=/usr/lib64/galera/libgalera_smm.so              #galera 库文件
wsrep_cluster_address=gcomm://192.168.0.12,192.168.0.13        # galera集群url
wsrep_cluster_name=openstack                       # galera集群名称
wsrep_node_address=192.168.0.11                    # 该节点的地址
wsrep_node_name=controller1                      # 该节点的主机名
wsrep_sst_method=rsync                          # 拷贝模式
wsrep_sst_auth=galera:galera                      # galera集群认证用户:密码

 

 Controller2:

[mariadb]
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.0.11,192.168.0.13
wsrep_cluster_name=openstack
wsrep_node_address=192.168.0.12
wsrep_node_name=controller2
wsrep_sst_method=rsync
wsrep_sst_auth=galera:galera

 

Controller3:

[mariadb]
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.0.11,192.168.0.12
wsrep_cluster_name=openstack
wsrep_node_address=192.168.0.13
wsrep_node_name=controller3
wsrep_sst_method=rsync
wsrep_sst_auth=galera:galera

 

这里,启动第一个集群节点有点特殊:

Controller1:
/etc/init.d/mysql bootstrap

Controller2:
/etc/init.d/mysql start

Controller3:
/etc/init.d/mysql start

登录任意节点进行验证:

# mysql -p123456
MariaDB [(none)]> SHOW STATUS LIKE wsrep_cluster_size;

技术分享图片

MariaDB [(none)]> show global status like ws%;

注释:
wsrep_cluster_status为Primary,表示节点为主节点,正常读写。
wsrep_ready为ON,表示集群正常运行。
wsrep_cluster_size为3,表示集群有三个节点。

 

创建数据库进行测试:

 MariaDB [(none)]> create database abcd;

然后,登录其他节点数据库查看是否存在。

MariaDB [(none)]> show databases;

 技术分享图片

 

Mariadb-Galera集群搭建完毕。

 

在集群搭建完毕后在写其他的配置文件:

# vim server.cnf
[mariadb-10.0]
port            = 3306
bind_address    = 192.168.0.11
tmpdir          = /tmp
skip-external-locking
skip-name-resolve
max_connections=3600
innodb_flush_log_at_trx_commit=2
innodb_log_file_size=100m
innodb_log_files_in_group=5
thread_concurrency=24
innodb_thread_concurrency=24
innodb_commit_concurrency=24
character-set-server = utf8
collation-server = utf8_general_ci
event_scheduler = ON
max_allowed_packet = 20M

三个controller节点都需要监听各自的管理地址。

 

 注意:

当所有节点都宕机的情况下,再次启动节点,Mariadb-Galera集群会出现无法启动的现象
Mariadb-Galera集群启动是有顺序的,遵循一个原则:最后宕机的最先启动,因为集群认为这个节点的数据是最新的。

[ Openstack ] Openstack-Mitaka 高可用之 Mariadb-Galera集群部署

标签:负载   主键   thread   storage   技术   back   abc   认证用户   ide   

人气教程排行