您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)DRBD和Corosync如何實現(xiàn)高可用MySQL,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
(1)節(jié)點之間需要傳遞事務(wù)信息,節(jié)點之間識別節(jié)點是通過節(jié)點名稱實現(xiàn),所以需要DNS解析,將相應(yīng)IP對應(yīng)節(jié)點名稱,但是如果依賴DNS服務(wù)器時,高可用集群服務(wù)又增大了風(fēng)險,為了避免DNS服務(wù)器存在的隱患,配置解析時直接使用本地/etc/hosts配置文件定義
(2)節(jié)點名稱必須要與‘uname–n’命令顯示的名稱一致
(3)高可用集群節(jié)點的管理,比如停止某一節(jié)點時,是不能在自身這個節(jié)點停止其服務(wù),需要在一個運行正常的節(jié)點上停止其他節(jié)點;所以,提供ssh互信通信(配置每個節(jié)點基于密鑰的方式與節(jié)點進行通信)
(4)時間需要同步
節(jié)點之間網(wǎng)絡(luò)通信配置
test1節(jié)點 IP配置
test2節(jié)點 IP配置
配置完成重啟網(wǎng)絡(luò)服務(wù)
各節(jié)點節(jié)點名稱配置
test1節(jié)點名稱配置
# vim /etc/sysconfig/network
# hostname test1.magedu.com
test2 節(jié)點名稱配置
# vim /etc/sysconfig/network
# hostname test2.magedu.com
配置完成重新登錄一下終端
主機名解析配置
RS1 主機名解析配置
# vim /etc/hosts
RS2 主機名解析配置
# vim /etc/hosts
節(jié)點之間的ssh互信功能配置
節(jié)點 test1(簡稱)配置
# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
# ssh-copy-id -i .ssh/id_rsa.pub root@test2.magedu.com
測試一下
節(jié)點 test2配置
# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
# ssh-copy-id -i .ssh/id_rsa.pub root@test1.magedu.com
測試
時間同步
配置一臺主機為時間服務(wù)器,進行時間同步,這里直接使用的是實驗提供的時間服務(wù)器,沒有做其他配置
節(jié)點test1與test2同時同步
# ntpdate 172.16.0.1
計劃任務(wù)制定
定義一條計劃任務(wù),時刻同步著時間
# crontab –e
*/5 * * * * ntpdate 172.16.0.1 >/dev/null
本次實驗中在節(jié)點test1與test2需要安裝的rpm包列表
cluster-glue-1.0.6-1.6.el5.i386.rpm
cluster-glue-libs-1.0.6-1.6.el5.i386.rpm
corosync-1.4.5-1.1.i386.rpm
corosynclib-1.4.5-1.1.i386.rpm
heartbeat-3.0.3-2.3.el5.i386.rpm
heartbeat-libs-3.0.3-2.3.el5.i386.rpm
libesmtp-1.0.4-5.el5.i386.rpm
openais-1.1.3-1.6.el5.i386.rpm
openaislib-1.1.3-1.6.el5.i386.rpm
pacemaker-1.1.5-1.1.el5.i386.rpm
pacemaker-cts-1.1.5-1.1.el5.i386.rpm
pacemaker-libs-1.1.5-1.1.el5.i386.rpm
resource-agents-1.0.4-1.1.el5.i386.rpm
在節(jié)點test1上的操作配置
準(zhǔn)備配置文件
# cd /etc/corosync/
# cp corosync.conf.example corosync.conf
# vim corosync.conf
修改內(nèi)容如下
totem {
secauth:on
interface{
bindnetaddr:172.16.0.0
mcastaddr:239.151.51.51
添加的內(nèi)容
service {
ver: 0
name: pacemaker
}
aisexec {
user: root
group: root
}
創(chuàng)建日志文件目錄
# mkdir /var/log/cluster
# ssh test2 'mkdir /var/log/cluster'
生成一對密鑰
# corosync-keygen
復(fù)制密鑰文件與配置文件到test2節(jié)點
# scp -p authkey corosync.conf test2:/etc/corosync/
啟動corosync
查看節(jié)點狀態(tài)信息
開始crm配置
說明:因為沒有stonith設(shè)備并且只有兩個節(jié)點所以需要禁用stonith功能,并更改節(jié)點默認屬性
crm(live)configure#property stonith-enabled=false
crm(live)configure#verify
crm(live)configure#property no-quorum-policy=ignore
crm(live)configure#verify
crm(live)configure#commit
定義資源粘性,配置在當(dāng)前節(jié)點test1粘性
crm(live)configure#rsc_defaults resource-stickiness=100
crm(live)configure#verify
crm(live)configure#commit
全局資源配置信息查看
資源配置
(1)將drbd配置為基本資源
(2)將drbd配置為克隆類資源
資源代理查看
crm(live)# ra
crm(live)ra#providers drbd
查看元數(shù)據(jù)信息
crm(live)ra# metaocf:heartbeat:drbd
定義一個主資源與一個主從類資源
crm(live)#configure
crm(live)configure#primitive mydrbdservice ocf:heartbeat:drbd params drbd_resource=mydrbd op starttimeout=240 op stop timeout=100 op monitor role=Master interval=20 timeout=30op monitor role=Slave interval=30 timeout=30
crm(live)configure#ms ms_mydrbd mydrbdservice meta master-max=1 master-node-max=1 clone-max=2clone-node-max=1 notify=true
crm(live)configure#verify
crm(live)configure#commit
狀態(tài)信息查看
主從轉(zhuǎn)換驗證
crm(live)# node
crm(live)node#standby
crm(live)node#online test1.magedu.com
配置資源,通過NFS使其能夠?qū)崿F(xiàn)自動掛載
Filesystem資源添加
crm(live)configure#primitive mystore ocf:heartbeat:Filesystem params device=/dev/drbd0directory=/mydata fstype=ext3 op start timeout=60 op stop timeout=60
定義排列colocation使Filesystem必須跟主節(jié)點在一起
crm(live)configure#colocation mystore_with_ms_mydrbd inf: mystore ms_mydrbd:Master
定義排列order約束
crm(live)configure#order mystore_after_ms_mydrbd mandatory: ms_mydrbd:promote mystore:start
節(jié)點狀態(tài)信息查看
在節(jié)點test2上查看是否成功掛載
主備節(jié)點切換驗證
crm(live)# node
crm(live)node#standby test2.magedu.com
狀態(tài)信息查看
查看test1節(jié)點上Filesystem是否成功掛載
準(zhǔn)備mysql服務(wù)
現(xiàn)在的主節(jié)點是test1,首先在節(jié)點1上配置mysql服務(wù)
創(chuàng)建mysql用戶與mysql組
# groupadd -g3306 mysql
# useradd -g 3306-u 3306 -M mysql
準(zhǔn)備mysql
# tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/
# ln -sv mysql-5.5.28-linux2.6-i686mysql
準(zhǔn)備數(shù)據(jù)目錄
# cd /mydata
# mkdir data
# chownmysql.mysql data -R
更改mysql文件屬主屬組
# cd/usr/local/mysql
# chown root.mysql/usr/local/mysql/* -R
準(zhǔn)備配置文件與服務(wù)腳本
# cd/usr/local/mysql
# cpsupport-files/my-large.cnf /etc/my.cnf
# cpsupport-files/mysql.server /etc/init.d/
修改配置文件
# vim /etc/my.cnf
添加以下內(nèi)容(線程數(shù)與datadir目錄位置)
thread_concurrency= 2
datadir=/mydata/data
設(shè)置mysql服務(wù)不能開機啟動
# chkconfig --addmysqld
# chkconfigmysqld off
初始化mysql
# cd/usr/local/mysql
#scripts/mysql_install_db --user=mysql --datadir=/mydata/data
啟動mysql
test2節(jié)點mysql服務(wù)配置與test1節(jié)點相同,說明流程如下
1 關(guān)閉節(jié)點test1的 mysql服務(wù)
2 把節(jié)點test2 轉(zhuǎn)換成Master
crm(live)# node
crm(live)node#standby test1.magedu.com
crm(live)node#online test1.magedu.com
3 開始配置test2的mysql服務(wù)流程與test1相同(不執(zhí)行初始化操作)
配置mysql服務(wù)為高可用服務(wù)
添加mysql為集群資源
crm(live)configure#primitive mysqld lsb:mysqld
crm(live)configure#verify
crm(live)configure#
定義colocation約束(mysql與mystore在一起;即與主節(jié)點在一起)
crm(live)configure#colocation mysql_with_mystore inf: mysqld mystore
crm(live)configure#verify
定義order約束(最后啟動mysql服務(wù))
crm(live)configure#order mysqld_after_mystore mandatory: mystore mysqld
crm(live)configure#verify
crm(live)configure#commit
節(jié)點狀態(tài)信息查看
test2上mysql服務(wù)啟動狀態(tài)查看
主從節(jié)點切換測試
crm(live)# node
crm(live)node#standby test2.magedu.com
crm(live)node#online test2.magedu.com
查看狀態(tài)信息
查看test1節(jié)點是否成功運行mysql服務(wù)
到這里一個基于drbd與corosync實現(xiàn)的高可用mysql就完成了,希望能為大家提供一些幫助
關(guān)于“DRBD和Corosync如何實現(xiàn)高可用MySQL”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。