Openstack的HA解决方案【mysql集群配置】
使用mysql的galera做多主集群配置,galera的集群优势网络上面有对比,这里不在叙述。
1. 新建3台虚拟机(centos6.5)
node1:172.17.44.163
node2:172.17.44.164
node3:172.17.44.165
他们没有主从关系,所有配置都应该一样。
2. 建立软件源
我们有一个内部的软件yum 源,至于怎么建立源服务器,可参考网络上的介绍,我们的源文件的nailgun.repo
[nailgun]
name=Nailgun
baseurl=http://172.17.44.2:8080/centos/fuelweb/x86_64/
gpgcheck=0
将这个文件放在/etc/yum.repo.d/目录下
3. 搜索和mysql galera有关的软件安装包 执行结果:
[root@ha1 yum.repos.d]# yum search wsrep
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* epel: mirrors.ustc.edu.cn
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
===================================================================================== N/S Matched: wsrep ======================================================================================
MySQL-client-wsrep.x86_64 : MySQL - Client
MySQL-server-wsrep.x86_64 : MySQL: a very fast and reliable SQL database server
MySQL-shared-wsrep.x86_64 : MySQL - Shared libraries
galera.x86_64 : Galera: a synchronous multi-master wsrep provider (replication engine) Name and summary matches only, use "search all" for everything.
[root@ha1 yum.repos.d]#
主要就是安装这4个包。
4.安装后基本配置: 安装后正常应该会有/etc/my.cnf文件。但是不够,因为my.cnf文件是普通版本的mysql配置,而galera的mysql需要更多配置。
a.增加目录
<pre>
mkdir -p /etc/mysql/conf.d
</pre>
b.在/etc/mysql/conf.d/添加文件wsrep.cnf
内容是:
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=172.17.44.163
port=3307
max_connections=2048
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_provider_options="pc.ignore_sb = no;ist.recv_addr=172.17.44.163;gmcast.listen_addr=tcp://172.17.44.163:4567;gcache.size=1G"
wsrep_cluster_name="openstack"
wsrep_cluster_address="gcomm://172.17.44.164:4567,172.17.44.164:4567,172.17.44.165:4567?pc.wait_prim=no"
wsrep_node_address=172.17.44.163
wsrep_slave_threads=4
wsrep_certify_nonPK=1
wsrep_max_ws_rows=131072
wsrep_max_ws_rows=131072
wsrep_max_ws_size=1073741824
wsrep_debug=0
wsrep_convert_LOCK_to_trx=0
wsrep_retry_autocommit=1
wsrep_auto_increment_control=1
wsrep_drupal_282555_workaround=0
wsrep_causal_reads=0
wsrep_notify_cmd=
wsrep_sst_method=mysqldump
wsrep_sst_receive_address=172.17.44.163:3307
wsrep_sst_auth=wsrep_sst:password
skip-name-resolve
innodb_buffer_pool_size=563M
innodb_thread_concurrency=0
innodb_write_io_threads=8
innodb_read_io_threads=8
innodb_io_capacity=500
table_cache=10000
innodb_file_per_table=1
innodb_file_format=Barracuda
3台机器都应该有上面的配置。需要对IP进行部分修改,上面配置的IP是44.163机器的,如果是164,需要将bind-address,wsrep_sst_receive_address做出修改。
c.修改my.cnf文件
[mysqld_safe]
syslog
!includedir /etc/mysql/conf.d/
其他都注释.
5.启动集群。
第一次启动是有问题的。因为我们还没有设置我们的集群底层用户,sst_auth,主要在配置文件wsrep_sst_auth选项。我们需要给每一台主机都设置上这么一个用户才可以。
我们需要先将wsrep_cluster_address="gcomm://172.17.44.164:4567,172.17.44.164:4567,172.17.44.165:4567?pc.wait_prim=no"注释(所有机器),改为
wsrep_cluster_address="gcomm://",即当前机器是一个单一的mysql galera
然后创建用户:
grant all on *.* to wsrep_sst@"%" identified by "password";
grant all on *.* to wsrep_sst@"localhost" identified by "password";
创建后测试该用户是否可用。注意我们的端口使用的是3307.
然后将配置wsrep_cluster_address改到所有用户,重新启动mysql galera.然后进入mysql,查看其状态:
mysql> show status like "wsrep_%";
+----------------------------+----------------------------------------------------------+
| Variable_name | Value |
+----------------------------+----------------------------------------------------------+
| wsrep_local_state_uuid | f0e10cb3-249a-11e4-0800-2666f281655b |
| wsrep_protocol_version | 4 |
| wsrep_last_committed | 4 |
| wsrep_replicated | 0 |
| wsrep_replicated_bytes | 0 |
| wsrep_received | 23 |
| wsrep_received_bytes | 2118 |
| wsrep_local_commits | 0 |
| wsrep_local_cert_failures | 0 |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_replays | 0 |
| wsrep_local_send_queue | 0 |
| wsrep_local_send_queue_avg | 0.000000 |
| wsrep_local_recv_queue | 0 |
| wsrep_local_recv_queue_avg | 0.000000 |
| wsrep_flow_control_paused | 0.000000 |
| wsrep_flow_control_sent | 0 |
| wsrep_flow_control_recv | 0 |
| wsrep_cert_deps_distance | 1.000000 |
| wsrep_apply_oooe | 0.000000 |
| wsrep_apply_oool | 0.000000 |
| wsrep_apply_window | 0.000000 |
| wsrep_commit_oooe | 0.000000 |
| wsrep_commit_oool | 0.000000 |
| wsrep_commit_window | 0.000000 |
| wsrep_local_state | 4 |
| wsrep_local_state_comment | Synced |
| wsrep_cert_index_size | 2 |
| wsrep_causal_reads | 0 |
| wsrep_incoming_addresses | 172.17.44.163:3307,172.17.44.164:3307,172.17.44.165:3307 |
| wsrep_cluster_conf_id | 13 |
| wsrep_cluster_size | 3 |
| wsrep_cluster_state_uuid | f0e10cb3-249a-11e4-0800-2666f281655b |
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
| wsrep_local_index | 0 |
| wsrep_provider_name | Galera |
| wsrep_provider_vendor | Codership Oy <info@codership.com> |
| wsrep_provider_version | 23.2.2(r137) |
| wsrep_ready | ON |
+----------------------------+----------------------------------------------------------+
40 rows in set (0.00 sec)
这里的incoming_addresses地址是3个,wsrep_ready 为ON就表示正常了。
不正常原因。 1. 网络防火墙。 2. 用户权限。 3. 其他。
我们来看一下我们的成果。 基本测试就是一台机器上创建一个数据库,要再其他机器上也能看到。 163的:
| wsrep_provider_version | 23.2.2(r137) |
| wsrep_ready | ON |
+----------------------------+----------------------------------------------------------+
40 rows in set (0.00 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| aa |
| mysql |
| performance_schema |
| tangcl |
| test |
+--------------------+
6 rows in set (0.00 sec) mysql>
164的:
mysql> show databses;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databses' at line 1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| aa |
| mysql |
| performance_schema |
| tangcl |
| test |
+--------------------+
6 rows in set (0.00 sec)
165的:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| aa |
| mysql |
| performance_schema |
| tangcl |
| test |
+--------------------+
6 rows in set (0.00 sec)
Openstack的HA解决方案【mysql集群配置】的更多相关文章
- Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群
大纲一.前言二.环境准备三.Corosync 安装与配置四.Pacemaker 安装与配置五.DRBD 安装与配置六.MySQL 安装与配置七.crmsh 资源管理 推荐阅读: Linux 高可用(H ...
- Linux环境MySQL集群配置
一.介绍 ======== 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽 然这是基于2台服务器的MySQL ...
- Hadoop HA on Yarn——集群配置
集群搭建 因为服务器数量有限,这里服务器开启的进程有点多: 机器名 安装软件 运行进程 hadoop001 Hadoop,Zookeeper NameNode, DFSZKFailoverContro ...
- MySql 集群配置
MYSQL CLUSTER方案介绍 本文的大致框架来自罗志威.黄川的报告, 在它的基础上进行简化和修改一些bug并且添加了主从复制的章节,最后做出该文档 MySQL Cluster 是MySQL适合于 ...
- mysql集群实例
原文地址:http://www.it165.net/database/html/201403/5678.html http://www.cnblogs.com/seesea125/archive/20 ...
- 项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点 ...
- MySQL集群搭建方案(PXC)
服务器快过期了,清一点库存,把运维这块的知识复习下 为什么要搭MySQL集群 技术层面上,传统的单节点数据库,万一宕机了,就凉凉了.容灾性能差.抗并发能力有限,数据量大的时候查询有瓶颈.学习层面上,作 ...
- 【MySQL集群】——Java程序连接MySQL集群
上篇简介了怎样在Windows环境下建立配置MySQL集群,这里用一个实现注冊功能的小Demo通过jdbc的方式连接到MySQL集群中. 外部程序想要远程连接到mysql集群,还须要做的一个操作就是设 ...
- Hadoop入门学习笔记-第三天(Yarn高可用集群配置及计算案例)
什么是mapreduce 首先让我们来重温一下 hadoop 的四大组件:HDFS:分布式存储系统MapReduce:分布式计算系统YARN: hadoop 的资源调度系统Common: 以上三大组件 ...
随机推荐
- qq临时会话代码修改
使用:http://wpa.qq.com/msgrd?V=1&Uin=965745468&Site=www.***.com&Menu=yes提示 抱歉,无法发起临时会话,您可以 ...
- zendstudio
如何查看大纲类 1.浏览 ->大纲 2.窗口->显示视图->大纲 在php中 右键 ->源代码->格式,方便我们整理代码
- JavaScript实现在textbox输入时自动去数据库匹配并找出类似值列出,选择后记得将值填入本textbox及下一个textbox
1. <script src='<%= Application["rootURL"] %>JS/jquery-1.4.1.min.js' type="t ...
- 网络应用发布到linux上的web服务器上页面上显示麻将牌式字符的问题
什么是麻将牌式字符,就是中文显示为一个竖立长方形框框里面有四个数字或字母,请看下图中中文,日文和韩文的显示就知道了: 为什么会遇到这个问题? 系统不支持中文,日文和韩文字体. 如何解决: 安装中文字体 ...
- Ioc-Autofac实现自动的注入
在开发过程中,最郁闷的莫过于当你新增一个Service时,你需要对该Service进行注册,有的是使用代码注入,有的是XML配置注入,不管是哪种类型的注入,经常会出现开发人员忘记注入的情况. 于是我试 ...
- CLM
https://github.com/TadasBaltrusaitis/CLM-framework
- PHP回调函数的几种用法
PHP回调函数的实现方法 目录 前言 全局函数的回调 类静态函数的回调 对象的方法的回调 PHP事件模型(观察者模式)的实现思路 前言 最近在开发一个PH ...
- 教你安装CentOS 6.5如何选择安装包
近来发现越来越多的运维小伙伴们都有最小化安装CentOS 6.5系统的洁癖,因此,找老男孩来咨询,这个“洁癖”好习惯啊,必须支持,,因此发布本文和大家分享下. (1)系统安装类型选择及自定义额外包组 ...
- Java IO读取文件之二
package com.lf.iopreoject; import java.io.BufferedReader; import java.io.File; import java.io.FileIn ...
- EBS R12.2快速安装前没有配置Global Inventory报错
EBS R12.2快速安装前没有配置Global Inventory,导致验证时"file systems"这一项没有通过,被标记了"X": (本图其它两个验证 ...