当前位置: 首页 > news >正文

corosync + pacemaker +mysql +nfs

一.配置高可用前提: 1.时间同步 2.uname -n和hostname一致

二.安装软件包

1.yum -y install corosync pacemaker

每个节点:修改配置文件
corosync的配置文件
totem {
version: 2


crypto_cipher: aes128
crypto_hash: sha1
secauth:on


interface {
            # Rings must be consecutively numbered, starting at 0.
	ringnumber: 0
	
	bindnetaddr: 192.168.117.0
	
	# bindnetaddr: 192.168.1.1
	
	mcastaddr: 239.255.1.1
	
	mcastport: 5405
	
	ttl: 1
}
复制代码

} nodelist { node { ring0_addr: 192.168.117.135 nodeid: 1 } node { ring0_addr: 192.168.117.136 nodeid: 2 } node { ring0_addr: 192.168.117.137 nodeid: 3 }

		}
复制代码

logging {

fileline: off

to_stderr: no

to_logfile: yes
logfile: /var/log/cluster/corosync.log

to_syslog: no

debug: off

timestamp: on
logger_subsys {
	subsys: QUORUM
	debug: off
}
复制代码

}

2.生成authkey corosync-authkey 把配置文件复制到其他节点上

三.配置一个独立的nfs服务器(192.168.117.130)

nfs端:

1.先建立/mydata/data (这个data目录要有,没有我就启动不起来 也有可能是其他问题 (提示报错pid文件打不开) 坑的一笔)(确保如果datedir指的目录是/mydata/data里面有响应的文件对应即可)
2.创建mysql用户和mysql组 (确保mysql用户和组可以在里面读写) 此处uid 和 gid 要和其他节点上的mysql用户的uid gid相同!建立/mydata/data文件
3.配置nfs配置文件 /etc/export

	/mydata 192.168.117.0/24(rw,no_root_squash)

4.输出出来 exportfs -rv
复制代码

主节点端:此处的mysql包是预编译好的包(如果用yun源安装mysql 在装这个包 有可能会发生什么错误 还是不怎么清楚 遇到的问题如pid文件无法连接)

1.创建好mysql用户和组,创建文件/mydata 挂载节点上的/mydata 到 nfs上的/mydata mount -t nfs 192.168.117.131:/mydata /mydata
2.下载mysql的包 如mariadb-5.5.32-linux-x86_64.tar.gz
3.解压软件包到指定目录 tar xf mariadb-5.5.32-linux-x86_64.tar.gz -C /usr/local
4.建立软连接 ln -sv mariadb-5.5.32-linux-x86_64.tar.gz mysql
5.cd mysql
6.scripts/mysql_install_db --datadir=/mydata/data --user=mysql 此处的mydata/data 已然是nfs共享存储了
7.cp supper-files/mysql.server /etc/rc.d/init.d/mysqld
8.cp supper-files/my.large.cnf /etc/my.cnf
	添加三个参数
	
	datadir=/mydata/data
	innodb_file_per_table=on
	skip_name_resolve=on

8.chkconfig --add mysqld(在centos6中要保证服务不可以开机自启动)
9.service mysqld start  开启mysql
10./usr/local/mysql/bin/mysql 进入mysql
11.grant all on *.* to 'root'@'192.168.117.%' identified by 'passwd'
12.flush privileges
13.此时在里面创建表格另一个节点上可以可以显示(但是如果在共享的基础上 node2开启mysqld node3上不能开启 只能开一个)
复制代码

其他节点端

1.创建好mysql用户和组,创建文件/mydata 挂载节点上的/mydata 到 nfs上的/mydata
2.下载mysql的包 如mariadb-5.5.32-linux-x86_64.tar.gz
3.解压软件包到指定目录 tar xf mariadb-5.5.32-linux-x86_64.tar.gz -C /usr/local
4.建立软连接 ln -sv mariadb-5.5.32-linux-x86_64.tar.gz mysql
5.cd mysql
6.复制主节点上的配置文件到其他节点上就行
7.cp supper-files/mysql.server /etc/rc.d/init.d/mysqld
8.chkconfig --add mysqld (在centos6中要保证服务不可以开机自启动)
复制代码

可以开始配置高可用了

1.启动corosync和pacemaker ansible mysqlnfs -m service -a 'name=corosync state=started' ansible mysqlnfs -m service -a 'name=pacemaker state=started'

2.crm配置 1.primitive websql lsb:mysqld 2.primitive webnfs Filesystem
params device="192.168.117.130:/mydata" directory="/mydata" fstype=nfs
op start timeout=20s interval=0
op stop timeout=20s interval=0
op monitor interval=30s timeout=20s 3.colocation webstore_sql inf: webnfs websql 4.order websql_after_webnfs Mandatory: webnfs websql

总结: 一 要保证ntp服务器要是独立的一台服务器(刚开始没有想到 思考:如果nfs server做在node1上 如果把node1 sandby了之后 服务就无法启动了吗? 此处的filesystem 决定的是挂载 不包含启动nfs服务 所以和这个无关) 二: 如何挂载mysql的datadir和nfs存储挂钩 在nfs server端建立挂载的目录 (确保如果datedir指的目录是/mydata/data里面有响应的文件对应即可) 如nfs上的/mydata mount -t nfs 192.168.117.131:/mydata /mydata 如果在node1上建/mydata没有/data子目录 但是要在nfs server端和弄得、端挂载时要有/mydata/data即可 保证mysql用户可以对文件系统进行读写 并且各个节点上的mysql用户 uid和gid相同 三: 服务启动的顺序很重要

相关文章:

  • Java+大数据开发——Hadoop集群环境搭建(二)
  • python 循环列表的同时做删除操作
  • Mysql中数据类型括号中的数字代表的含义
  • python 正则匹配字母数字中的任意数字,字母
  • 大保健就是做公益?马云的一招让这个特殊群体赞不绝口
  • 儿童做家务年龄对照表,80%的父母都后悔看晚了…
  • Windows Embedded Standard CTP发布!
  • 阿布扎比有一个“智慧港口”
  • 4000余台ElasticSearch服务器遭PoS恶意软件感染
  • Docker for Mac配置Sock5代理
  • Vue.js 上传文件(后台使用.net)
  • 微商新手如何选产品?史上最详细操作指南!
  • 深入理解javascript原型和闭包(4)——隐式原型
  • Android Studio 插件简单介绍
  • MySQL安装操作指引
  • Android开源项目规范总结
  • Angular数据绑定机制
  • docker-consul
  • ES10 特性的完整指南
  • ES6语法详解(一)
  • HTTP中的ETag在移动客户端的应用
  • java小心机(3)| 浅析finalize()
  • jQuery(一)
  • quasar-framework cnodejs社区
  • Redux 中间件分析
  • vue-cli3搭建项目
  • Wamp集成环境 添加PHP的新版本
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 创建一个Struts2项目maven 方式
  • 动态规划入门(以爬楼梯为例)
  • 分类模型——Logistics Regression
  • 关于List、List?、ListObject的区别
  • 规范化安全开发 KOA 手脚架
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 我建了一个叫Hello World的项目
  • 小而合理的前端理论:rscss和rsjs
  • 因为阿里,他们成了“杭漂”
  • No resource identifier found for attribute,RxJava之zip操作符
  • gunicorn工作原理
  • 交换综合实验一
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (arch)linux 转换文件编码格式
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • .Family_物联网
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .NET中的十进制浮点类型,徐汇区网站设计
  • @angular/cli项目构建--Dynamic.Form
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)