corosync+pacemaker+nfs提供mysql高可用
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高可用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IIS 之 失败请求跟踪规则
- 下一篇: C# IL DASM 使用