通过corosync,pacemaker,nfs搭建高可用mariadb

本实验环境基于centos7.2

实验之前请先关闭防火墙和SELinux

1,先配置nfs

yum install nfs-utils

2,创建mariadb数据目录

mkdir /mydata/data/ -pv
id mysql || useradd -r -u 27 mysql
chown -R mysql:mysql /mydata/data/

3,配置nfs共享目录

vim /etc/expores

#内容如下
/mydata/data    192.168.153.0/24(rw,sync)

4,启动nfs共享

systemctl start rpcbind
systemctl start nfs

先挂载nfs测试一下是否可以启动

mount -t nfs 192.168.153.114:/mydata/data /var/lib/mysql/

5,配置集群

通过ansible来安装

ansible webs7 -m shell -a "yum install -y corosync pacemaker"

找到一台节点开始配置

vim corosync.conf
totem {
    version: 2
    crypto_cipher: aes256
    crypto_hash: sha1
    interface {
        ringnumber: 0
        bindnetaddr: 192.168.153.0
        mcastaddr: 239.255.41.1
        mcastport: 5405
        ttl: 1
    }
}
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
    }
}
quorum {
    provider: corosync_votequorum
}
nodelist {
           node {
               ring0_addr: 192.168.153.111
                nodeid:1
           }
           node {
               ring0_addr: 192.168.153.112
                nodeid:2
           }
           node {
               ring0_addr: 192.168.153.113
                nodeid:3
           }
}

生成corosync密钥:

corosync-keygen

配置好之后通过ansible复制到ansible主机

ansible 192.168.153.111 -m fetch -a "src=/etc/corosync/corosync.conf dest=/root/"
ansible 192.168.153.111 -m fetch -a "src=/etc/corosync/authkey dest=/root/"

通过ansible主机将该配置文件分发到其他节点上

cp /root/192.168.153.111/etc/corosync/corosync.conf /root/
cp /root/192.168.153.111/etc/corosync/authkey /root/
ansible webs7 -m copy -a "src=/root/authkey dest=/etc/corosync/"
ansible webs7 -m copy -a "src=/root/corosync.conf dest=/etc/corosync/"

通过ansible安装mariadb数据库服务程序

ansible webs7 -m shell -a "yum install -y mariadb-server"

通过ansible配置数据库参数

ansible webs7 -m shell -a -m shell -a "sed -i '/mysqld]/ainnodb_file_per_table=ON\nskip_name_resolve=ON' /etc/my.cnf"

通过ansible启动集群服务

ansible webs7 -m shell -a "systemctl start  corosync pacemaker"

在其中一个集群查看信息

corosync-cmapctl | grep member

通过ansible安装crmsh

ansible webs7 -m shell -a "yum install -y /share/crmsh/crmsh-2.1.4-1.1.x86_64.rpm"

通过ansible是mariadb  enbale

ansible webs7 -m shell -a "systemctl enable mariadb"

在其中一个服务器配置

先关闭

配置浮动ip

primitive mariadbip ocf:heartbeat:IPaddr params ip="192.168.153.100" cidr_netmask="24" nic="eno16777736" broadcast="192.168.153.255" iflabel="0"

配置nfs共享

primitive nfs ocf:heartbeat:Filesystem params device="192.168.153.114:/mydata/data" directory="/var/lib/mysql" fstype="nfs" op start timeout=60s op stop timeout=60s

配置mariadb

将这三个资源定义到一个组内

group mysqls mariadbip nfs mariadbs

配置监控monitor

monitor mariadbip 10s:5s
monitor nfs 10s:5s
monitor mariadbs 10s:5s

把服务所在节点的服务器关闭,服务转移到其他可用节点,然后开启刚才关闭的服务器,服务又转移了过来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值