corosync,pacemaker,nfs高可用mariadb;

本实验环境基于centos7.2

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

blob.png

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/

blob.png

3,配置nfs共享目录

vim /etc/expores
/mydata/data    192.168.153.0/24(rw,sync)

4,启动nfs共享

systemctl start rpcbind
systemctl start nfs

blob.png

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

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

blob.png

5,配置集群

我是通过ansible来安装的

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

找到一台节点开始配置

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

blob.png

配置好之后通过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

blob.png

通过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"

在其中一个服务器配置

先关闭

blob.png

配置浮动ip

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

blob.png

配置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

blob.png

配置mariadb

blob.png

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

group mysqls mariadbip nfs mariadbs

blob.png

配置监控monitor

monitor mariadbip 10s:5s

monitor nfs 10s:5s

monitor mariadbs 10s:5s

blob.png

blob.png

blob.png

blob.png

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

blob.png

blob.png

类似文章