corosync/openais+pacemaker+nfs提供mariadb高可用

节点一, one, 172.16.249.122/16, 172.16.0.1, CentOS6.6, mariadb
节点二, two, 172.16.249.123/16, 172.16.0.1, CentOS6.6, mariadb
节点三, three, 172.16.249.124/16, 172.16.0.1, CentOS6.6, NFS
VIP: 172.16.249.121

节点一: one 172.16.249.122
setup #设定ip
hostname one.centos
sed -i s@HOSTNAME=.*@HOSTNAME=one.centos@g /etc/sysconfig/network
vim /etc/hosts
172.16.249.122    one.centos    one
172.16.249.123    two.centos    two
======
ssh-keygen -t rsa -P '' -f '/root/.ssh/id_rsa'
ssh-copy-id -i ./.ssh/id_rsa.pub root@two
ntpdate -u 202.112.10.60
date ; ssh two 'date'

节点二: two 172.16.249.123
setup #设定ip
hostname two.centos
sed -i s@HOSTNAME=.*@HOSTNAME=two.centos@g /etc/sysconfig/network
vim /etc/hosts
172.16.249.122    one.centos    one
172.16.249.123    two.centos    two
======
ssh-keygen -t rsa -P '' -f '/root/.ssh/id_rsa'
ssh-copy-id -i ./.ssh/id_rsa.pub root@one
ntpdate -u 202.112.10.60
date ; ssh one 'date'

节点三: three 172.16.249.124
cfdisk -Ps /dev/sda
cfdisk /dev/sda
创建两个大小为20G,类型为8e的分区,分区文件分别为/dev/sda3和/dev/sda4 (过程略)
partx -a /dev/sda  (执行两次)
pvcreate /dev/sda{3,4}
pvs
vgcreate myvg /dev/sda{3,4}
lvcreate -L 20G -n mydata myvg
mke2fs -j -L MYDATA /dev/myvg/mydata
blkid /dev/myvg/mydata

mkdir -pv /sharedata
vim /etc/fstab
追加如下内容
LABEL=MYDATA      /sharedata   ext3    defaults  0 0  
mount -a
mount
>/dev/mapper/myvg-mydata on /sharedata type ext3 (rw)
df -h /sharedata/
/dev/mapper/myvg-mydata  20G  173M   19G   1% /sharedata

useradd -r -u 150 mysql
chown -R mysql:mysql /sharedata/
vim /etc/exports
/sharedata  172.16.249.122(rw,no_root_squash) 172.16.249.123(rw,no_root_squash)
==============
service nfs start
chkconfig nfs on
showmount -e localhost
>Export list for localhost:
>/sharedata 172.16.249.122,172.16.249.123

节点一: one 172.16.249.122
useradd -r -u 150 mysql
mkdir -pv /data/mydata
mount -t nfs 172.16.249.124:/sharedata /data/mydata
ls /data/mydata/
>lost+found
df -h /data/mydata/
>Filesystem                    Size  Used Avail Use% Mounted on
>172.16.249.124:/sharedata    20G  172M   19G   1% /data/mydata
su - mysql
cd /data/mydata/    #确认mysql用户对改目录有读写权限
touch onefile   
rm onefile
exit

节点二: two 172.16.249.123
useradd -r -u 150 mysql
mkdir -pv /data/mydata
mount -t nfs 172.16.249.124:/sharedata /data/mydata
ls /data/mydata/
>lost+found
df -h /data/mydata/
>Filesystem                    Size  Used Avail Use% Mounted on
>172.16.249.124:/sharedata    20G  172M   19G   1% /data/mydata
su - mysql
cd /data/mydata/    #确认mysql用户对改目录有读写权限
touch twofile   
rm twofile
exit

节点一: one 172.16.249.122
安装mariadb
ls
>mariadb-5.5.43-binary-linux-x86_64.tar.gz
tar xf mariadb-5.5.43-binary-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mariadb-5.5.43-linux-x86_64 mysql
cd mysql
chown -R root:mysql .
scripts/mysql_install_db --datadir=/data/mydata/ --user=mysql
\cp support-files/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
thread_concurrency = 2    #修改
datadir = /data/mydata        #添加
=========
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin/:$PATH
===========
export PATH=/usr/local/mysql/bin/:$PATH
mysql        #连接数据库
show databases;
quit           #退出数据库
service mysqld stop
chkconfig mysqld off
chkconfig mysqld --list
umount /data/mydata/

节点二: two 172.16.249.123
安装mariadb
ls
>mariadb-5.5.43-binary-linux-x86_64.tar.gz
tar xf mariadb-5.5.43-binary-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mariadb-5.5.43-linux-x86_64 mysql
cd mysql
chown -R root:mysql .
\cp support-files/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
thread_concurrency = 2    #修改
datadir = /data/mydata        #添加
=========
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin/:$PATH
===========
export PATH=/usr/local/mysql/bin/:$PATH
mysql        #连接数据库
show databases;
quit           #退出数据库
service mysqld stop
chkconfig mysqld off
chkconfig mysqld --list    #确保开机不自启
umount /data/mydata/

节点一: one 172.16.249.122
准备yum源
wget -O /etc/yum.repos.d/epel6.repo http://mirrors.aliyun.com/repo/epel-6.repo
mount /dev/cdrom  /mnt/cdrom
cat /etc/yum.repos.d/c6cdrom.repo
[CentOS6.6]
name=dvd1
baseurl=file:///mnt/cdrom
gpgcheck=0
cost=1
===========
yum repolist
yum -y install corosync corosynclib  pacemaker pacemaker-cts pacemaker-libs cluster-glue cluster-glue-libs resource-agents libesmtp heartbeat heartbeat-libs

节点二: two 172.16.249.123
准备yum源
wget -O /etc/yum.repos.d/epel6.repo http://mirrors.aliyun.com/repo/epel-6.repo
mount /dev/cdrom  /mnt/cdrom
cat /etc/yum.repos.d/c6cdrom.repo
[CentOS6.6]
name=dvd1
baseurl=file:///mnt/cdrom
gpgcheck=0
cost=1
===========
yum repolist
yum -y install corosync corosynclib  pacemaker pacemaker-cts pacemaker-libs cluster-glue cluster-glue-libs resource-agents libesmtp heartbeat heartbeat-libs

节点一: one 172.16.249.122
cd /etc/corosync/
cp corosync.conf.example corosync.conf
vim corosync.conf
修改如下选项
secauth: on  
bindnetaddr: 172.16.249.121         #vip
mcastaddr: 226.100.7.1
to_syslog: no
添加如下内容:    这两段内容作用什么是?
service {
ver:  0
name: pacemaker
}
aisexec {
user:   root
group:  root
}
==============
corosync-keygen  
(如果卡住执行\cp /mnt/cdrom/Packages/c*.rpm /tmp/,磁盘读写可生成随机数)
mkdir -pv /var/log/cluster/
service corosync start
查看corosync引擎是否正常启动:
grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/cluster/corosync.log
查看初始化成员节点通知是否正常发出:
grep  TOTEM  /var/log/cluster/corosync.log
检查启动过程中是否有错误产生:
grep ERROR: /var/log/cluster/corosync.log | grep -v unpack_resources
查看pacemaker是否正常启动:
grep pcmk_startup /var/log/cluster/corosync.log

ssh two 'mkdir -pv /var/log/cluster/'
scp authkey corosync.conf two:/etc/corosync/
ssh two '/etc/rc.d/init.d/corosync start'

节点一: one 172.16.249.122
下载三个和相关crmsh的rpm包
python-pssh-2.3.1-4.2.x86_64
pssh-2.3.1-4.2.x86_64
crmsh-2.1-1.6.x86_64
cd
wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/crmsh-2.1-1.6.x86_64.rpm
wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/pssh-2.3.1-4.2.x86_64.rpm
wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/python-pssh-2.3.1-4.2.x86_64.rpm
yum -y install *.rpm
crm status
>Online: [ one.centos two.centos ]

scp *.rpm two
ssh two 'yum -y install *.rpm'

节点一: one 172.16.249.122
添加集群资源
禁用stonith:
# crm configure property stonith-enabled=false
修改忽略quorum不能满足的集群状态检查:
# crm configure property no-quorum-policy=ignore
为资源指定默认黏性值:
# crm configure rsc_defaults resource-stickiness=100

添加访问mariadb的ip资源
crm configure primitive vip ocf:heartbeat:IPaddr params ip=172.16.249.121
添加nfs文件系统资源
crm configure primitive mynfs ocf:heartbeat:Filesystem params device="172.16.249.124:/sharedata" directory="/data/mydata" fstype="nfs" op start timeout=60s op stop timeout=60s
查看定义的资源
crm configure show
crm status
>vip    (ocf::heartbeat:IPaddr):    Started one
>mynfs  (ocf::heartbeat:Filesystem):    Started two

ip addr show
>inet 172.16.249.122/16
>inet 172.16.249.121/16
ssh two 'ls /data/mydata/'

ssh two 'crm node standby'    #必须滴,让两个资源运行在one.centos上

crm status  
>Node two.centos: standby
>Online: [ one.centos ]
> vip    (ocf::heartbeat:IPaddr):    Started one.centos
> mynfs    (ocf::heartbeat:Filesystem):    Started one.centos

添加mysqld服务资源
crm configure primitive mysqld lsb:mysqld

vip、mynfs和mysqld资源的启动顺序为vip-->mynfs-->mysqld
定义排列约束
crm configure collocation mysqld_with_mynfs_vip inf: vip mynfs mysqld

定义顺序约束
crm configure order mysqld_after_mynfs_after_vip Mandatory: vip mynfs mysqld

crm configure show

查看集群信息库中定义的collocation和order约束
crm configure show xml
    //collocation约束配置信息//
     <rsc_colocation id="mysqld_with_mynfs_vip" score="INFINITY">
            <resource_set id="mysqld_with_mynfs_vip-0">
              <resource_ref id="vip"/>
              <resource_ref id="mynfs"/>
              <resource_ref id="mysqld"/>
    //order约束配置信息//
    <rsc_order id="mysqld_after_mynfs_after_vip" score="INFINITY">     #INFINITY=>Mandatory(强制的)
            <resource_set id="mysqld_after_mynfs_after_vip-0">
              <resource_ref id="vip"/>
              <resource_ref id="mynfs"/>
              <resource_ref id="mysqld"/>

crm status
>Online: [ one.centos two.centos ]

> vip    (ocf::heartbeat:IPaddr):    Started two.centos
> mynfs    (ocf::heartbeat:Filesystem):    Started two.centos
> mysqld    (lsb:mysqld):    Started two.centos
===================

ssh two 'crm node online'
crm status
>Online: [ one.centos two.centos ]
crm node standby
crm status
>Node one.centos: standby
>Online: [ two.centos ]
> vip    (ocf::heartbeat:IPaddr):    Started two.centos
> mynfs    (ocf::heartbeat:Filesystem):    Started two.centos
> mysqld    (lsb:mysqld):    Started two.centos
=================

节点二: two 172.16.249.123
mysql
mysql> show databases;
mysql> create database twodb;
mysql> quit;

ssh one 'crm node online'
crm status
>Online: [ one.centos two.centos ]
> vip    (ocf::heartbeat:IPaddr):    Started two.centos
> mynfs    (ocf::heartbeat:Filesystem):    Started two.centos
> mysqld    (lsb:mysqld):    Started two.centos
=============

crm node standby
>Node two.centos: standby
>Online: [ one.centos ]
> vip    (ocf::heartbeat:IPaddr):    Started one.centos
> mynfs    (ocf::heartbeat:Filesystem):    Started one.centos
> mysqld    (lsb:mysqld):    Started one.centos
===============

节点一: one 172.16.249.122
mysql
mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| #mysql50#lost+found |
| mysql               |
| performance_schema  |
| test                |
| twodb               |                 ---看到此数据库,说明高可用服务配置成功
+---------------------+
mysql> quit;

转载于:https://blog.51cto.com/changeflyhigh/1707492

corosync+pacemaker+nfs提供mysql高可用相关推荐

  1. corosync+pacemaker+drbd构建mysql高可用平台的简单案例

    写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正.如有不明白的地方,愿可一起探讨. 案例拓扑图 说明: ansible主机主要作用在于配置和安装两台corosync+pacemake ...

  2. nfs mysql_heatbeat-gui实现基于nfs的mysql高可用集群

    一.简述HA高可用集群 高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务.以实现减少业务中断时间,为用户提供更可靠,更高效的服务. ...

  3. mysql pacemaker_编译安装MySQL实现corosync+pacemaker+drbd+mysql高可用

    编译安装MySQL实现corosync+pacemaker+drbd+mysql高可用 实验拓扑图: 实验节点:节点一:IP:172.16.249.248    host:  node1.stu11. ...

  4. 通过Corosync实现Mysql高可用,以及LVS+ldirectord高可用并状态检测

    一.试验拓扑如下: 二.配置File Server 1.这里建立个LVM逻辑卷,为了方便以后扩展# pvcreate /dev/sda5 # vgcreate vg01 /dev/sda5 # lvc ...

  5. Keepalived实现mysql高可用

    文章目录 0.参考资料 1.实现mysql双主高可用 1.1.高可用方案选择 1.2.双主基础上实现高可用 1.2.1.安装 1.2.2.主从配置文件 2.原理介绍(整理自网络) 0.参考资料 官方地 ...

  6. mysql高可用方案MHA介绍

    mysql高可用方案MHA介绍 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA, ...

  7. 一文详解 MySQL 高可用之 DRBD | 原力计划

    作者 | wzy0623 责编 | 屠敏 出品 | CSDN 博客 大多数MySQL高可用解决方案都是基于MySQL自带的各种复制技术.本质上是将一个实例上的数据更新或事务,在其它实例上进行重放,从而 ...

  8. MySQL高可用之DRBD

    目录 一.DRBD简介 1. 工作原理 2. DRBD 支持的底层设备 3. DRBD资源 4. DRBD 配置工具 5. DRBD与RAID1区别 6. DRBD与共享存储 二.DRBD安装配置 1 ...

  9. 没有执行此操作所需的足够可用空间。_一文详解 MySQL 高可用之 DRBD | 原力计划...

    作者 | wzy0623责编 | 屠敏出品 | CSDN 博客大多数MySQL高可用解决方案都是基于MySQL自带的各种复制技术.本质上是将一个实例上的数据更新或事务,在其它实例上进行重放,从而完成数 ...

最新文章

  1. 很高兴加入51cto——交朋友
  2. Python 计算各类距离
  3. 在O(1)的时间内计算n个整数落在区间[a,b]的个数(预处理时间为O(n+k))
  4. JAVA入门级教学之(方法重写/方法重载)
  5. OkHttp协议介绍以及文件下载和上传+OkHttp协议封装+OkHttp拦截器____SpringBoot——集成Okhttp3
  6. 关于DButil的使用几点思考
  7. python模块 - 序列化模块pickle
  8. 自然辩证法 题目2
  9. go有没有php的array,实现类似php的array_column方法
  10. 国外在线Md5,md4,mysql,Sha1,NTLM破解网站
  11. 初学单片机,该如何选择单片机开发板?
  12. 淘宝+京东+拼多多+苏宁易购+聚划算百亿补贴,双11秒杀抢购助手脚本,分享源码
  13. 缺少vcruntime140d.dll的解决办法
  14. Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)
  15. 可以想猪一样懒惰却终究无法像猪一样心安理得
  16. 51单片机c语言编程的头文件,51单片机编程的头文件reg51.h详解
  17. 效用最大化问题中的三个函数——需求函数、间接效用函数、支出函数
  18. 如何用navicat导入数据?
  19. java对象转换为JSON日期格式转换处理
  20. python 电脑状态_Python实现简单状态框架的方法 -电脑资料

热门文章

  1. HTML地址栏传数据和json区别,前端利用formData格式进行数据上传,前端formData 传值 和 json传值的区别?...
  2. oracle的adr,oracle ADR
  3. c语言goto语句用法_C语言中的goto语句该不该使用?
  4. Python知识:生成声波并显示
  5. nginx php 配置 windows_Windows下配置Nginx使之支持PHP
  6. python with open as yaml_python怎么解析yaml文件?
  7. C/C++经典程序训练5---图形打印问题(SDUT1135)_JAVA
  8. 10.递归是神马?recursion
  9. 【Tools】CSDN中如何添加数学公式
  10. 学习鸟哥的Linux私房菜笔记(5)——目录