本实验环境基于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
把服务所在节点的服务器关闭,服务转移到其他可用节点,然后开启刚才关闭的服务器,服务又转移了过来