溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

發(fā)布時(shí)間:2020-06-01 11:42:28 來(lái)源:網(wǎng)絡(luò) 閱讀:1343 作者:長(zhǎng)跑者1號(hào) 欄目:MySQL數(shù)據(jù)庫(kù)

一 環(huán)境準(zhǔn)備

1 環(huán)境

主機(jī)名 網(wǎng)卡 磁盤
master eth0 橋接模式 eth0(192.168.1.10) 自定義模式(VMnet2)(192.168.2.10)VIP 192.168.1.200/210 系統(tǒng)盤+20G外接磁盤
slave eth0 橋接模式(192.168.1.20) eth2 自定義模式(VMnet2)(192.168.2.20)VIP 192.168.1.200/210 系統(tǒng)盤+20G外接磁盤
server3 eth0 橋接模式 (192.168.1.30) 系統(tǒng)盤

master
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
slave
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
server3
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

2 域名DNS

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

3 時(shí)間同步

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

4 網(wǎng)卡配置

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

5 磁盤情況

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

6 軟件包位置

鏈接:https://pan.baidu.com/s/1W2-jeaK_tc-abvSZzmRaiw
提取碼:4evz

二 軟件安裝

1 drbd 簡(jiǎn)介

1 drbd 原理

drbd 是工作在文件系統(tǒng)之下,是基于塊的遷移
drbd的遷移
文件系統(tǒng)------buffer-cache--------網(wǎng)卡傳遞到另一端------裸設(shè)備-----drbd寫入磁盤
drbd 數(shù)據(jù)分為兩部分,數(shù)據(jù)存儲(chǔ)部分和元數(shù)據(jù)部分。

2 drbd 復(fù)制模式

協(xié)議A:本地寫成功后就返回給客戶端。
協(xié)議B:半同步的協(xié)議,本地寫成功,發(fā)送到對(duì)端后立即返回,
協(xié)議C:發(fā)送到對(duì)端,并成功寫入并進(jìn)行緩存。

3 DRBD 的應(yīng)用模式

1 單主模式,及主備模式,為典型的高可用性幾圈方案
2 復(fù)主模式,需要采用共享cluster文件系統(tǒng),如GFS和OCFS2

4 缺點(diǎn)

當(dāng)一端在運(yùn)行時(shí)另一端是不可見的

2 drbd 安裝

兩端配置基本相同

1 磁盤分區(qū)

/dev/sdb1 為數(shù)據(jù)區(qū)域
/dev/sdb2 為元數(shù)據(jù)區(qū)域
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

2 格式化

元數(shù)據(jù)區(qū)域不能格式化
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

3 下載并解壓安裝drbd

A 解決依賴
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

yum -y install gcc kernel-devel kernel-headers flex

B 編譯并安裝
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

./configure --prefix=/usr/local/drbd.8.4.4 --with-km --with-heartbeat --sysconfdir=/etc/

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

make KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64/
此處必須是自己uname -r 得到的內(nèi)核,不一定是上面的內(nèi)核

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

make install

檢驗(yàn)
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

4 加載模塊到內(nèi)核

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
slave 端加載
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

5 配置

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
slave 端相同
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
相關(guān)解釋

global {
usage-count no;

}

common{
syncer {
rate 100M; #同步占用的帶寬
verify-alg crc32c; # 驗(yàn)證使用的算法

        }
  }

#Primary for drbd1

resource data{
protocol C; # drbd使用的協(xié)議
disk {
on-io-error detach; #出現(xiàn)IO錯(cuò)誤的處理方式
}
on master {
device /dev/drbd0; #drbd的設(shè)備
disk /dev/sdb1; #對(duì)應(yīng)的數(shù)據(jù)分區(qū)
address 192.168.1.10:7788; #地址是監(jiān)聽自己心跳的IP地址
meta-disk /dev/sdb2[0]; #元數(shù)據(jù)位置
}
on slave {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.20:7788;
meta-disk /dev/sdb2[0];
}

}

6 初始化數(shù)據(jù)

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
其中data是上述資源的名稱。

7 創(chuàng)建文件夾

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

8 啟動(dòng)服務(wù)

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

查看啟動(dòng)參數(shù)
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

相關(guān)參數(shù)解釋:
注意:只有主備兩邊的DRBD都啟動(dòng)起來(lái)才會(huì)生效
cs:鏈接狀態(tài)
ro:角色信息,此時(shí)的狀態(tài)為Secondary/Secondary,表示兩臺(tái)主機(jī)的狀態(tài)都是備機(jī)狀態(tài)
ds:磁盤狀態(tài),Inconsistent/Inconsistent顯示的狀態(tài)內(nèi)容“不一致”,這是因?yàn)镈RBD無(wú)法判斷哪一方為主機(jī),應(yīng)以哪一方的磁盤數(shù)據(jù)作為標(biāo)準(zhǔn)
dw:磁盤寫操作
dr: 磁盤讀操作
ns: 網(wǎng)絡(luò)發(fā)送
nr: 網(wǎng)絡(luò)接受
如果主動(dòng)端的NS和slave端的NR相同表示發(fā)送與接受同步 。

9 主動(dòng)端宣告自己是primary

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

查看同步情況
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

10 創(chuàng)建掛載文件并測(cè)試

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
掛載同步測(cè)試
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
從端測(cè)試
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
恢復(fù)
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

3 heartbeat 簡(jiǎn)介

1 作用

通過(guò)heartbeat 可以進(jìn)行故障轉(zhuǎn)移并提供相關(guān)的服務(wù)
在故障轉(zhuǎn)移期間也需要切換時(shí)間,常見的時(shí)間是5-20秒左右。但是能夠確保業(yè)務(wù)一致性
heartbeat的高可用是服務(wù)器級(jí)別的,不是服務(wù)級(jí)別的。,服務(wù)的down機(jī)不會(huì)導(dǎo)致服務(wù)的切換。

2 Heartbeat 切換的常見條件

1 服務(wù)器down機(jī)
2 heartbeat 服務(wù)本身down機(jī)
3 心跳鏈接線down機(jī)

3 Heartbeat 消息類型

Heartbeat 高可用軟件在工作過(guò)程中,一般來(lái)說(shuō),有三種消息類型,具體為:
1 心跳消息
越150字節(jié),可能為單播,廣播或組播,控制心跳頻率及出現(xiàn)故障要等待多久進(jìn)行故障轉(zhuǎn)換

2 集群轉(zhuǎn)換消息
Ip-request 和 ip-request-resp
當(dāng)主服務(wù)器恢復(fù)在線狀態(tài)后,通過(guò)ip-request消息請(qǐng)求備機(jī)釋放主服務(wù)器失敗時(shí)被服務(wù)器取得的資源,然后備份服務(wù)器關(guān)閉釋放主服務(wù)器失敗時(shí)取得的資源及服務(wù)。

被服務(wù)器釋放主服務(wù)器失敗時(shí)取得的資源服務(wù)后,就會(huì)通過(guò)ip-request-resp消息通知主服務(wù)器他不再擁有該服務(wù)器的資源及服務(wù),主服務(wù)器收到來(lái)自被節(jié)點(diǎn)的ip-request-resp消息通知后,啟動(dòng)失敗時(shí)釋放的資源及服務(wù),并開始提供正常的訪問服務(wù)。
3 重傳請(qǐng)求
rexmit-request 控制重傳心跳請(qǐng)求。
以上心跳控制消息都使用功能的是UDP協(xié)議發(fā)送到/etc/ha.d/ha.cf 文件制定的任意接口,或指定的多播地址。

4 Ip地址接管和故障轉(zhuǎn)移

Heartbeat 是通過(guò)IP地址接管和ARP廣播進(jìn)行故障轉(zhuǎn)移
ARP 廣播在主服務(wù)器故障時(shí),備用節(jié)點(diǎn)接管資后,會(huì)立即強(qiáng)制更新所有客戶端本地的ARP(及清除客戶端本地緩存的失敗服務(wù)器的VIP和MAC地址的解析記錄),確??蛻舳撕托碌闹鞣?wù)器之間的對(duì)話

4 heartbeat 安裝

1 安裝heartbeat

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

2 復(fù)制配置文件

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

3 配置

配置密鑰并配置其權(quán)限為600,必須為600
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

配置文件解析
Debugfile 調(diào)試日志存放位置

Logfile 日志存放位置

Logfacility local 在syslog 服務(wù)中配置通過(guò)locally 設(shè)備接受日志

Keepalive2 指定心跳間隔時(shí)間為2秒

Deadtime 30 指定若備用節(jié)點(diǎn)在30秒內(nèi)沒有接受達(dá)到主節(jié)點(diǎn)的心跳信號(hào),則立即接管主節(jié)點(diǎn)的服務(wù)資源

Warntime 10 指定心跳延遲為10秒。當(dāng)10秒內(nèi)備份節(jié)點(diǎn)不能接受到主節(jié)點(diǎn)的心跳信號(hào)時(shí),會(huì)向日志中寫入一個(gè)警告日志,但此時(shí)不會(huì)切換服務(wù)

Initdead 120 指定在heartbeat 首次運(yùn)行后,需要等待120秒才啟動(dòng)主服務(wù)器的資源,該選項(xiàng)用于解決這種情況產(chǎn)生的時(shí)間間隔,取值至少為deadtime的兩倍,單機(jī)啟動(dòng)時(shí)會(huì)遇到VIP綁定很慢,為正?,F(xiàn)象

Bcast eth2 指明心跳使用以太網(wǎng)廣播方式在eth2接口上進(jìn)行廣播,如使用兩個(gè)實(shí)際網(wǎng)絡(luò)來(lái)傳遞心跳則 bcast eth0 eth2

Mcast eht2 225.0.0.1 694 1 0 設(shè)置廣播通信使用的端口,694為默認(rèn)使用的端口,一個(gè)是 TTL

Auto_failback on 用來(lái)定義當(dāng)主節(jié)點(diǎn)恢復(fù)后,是否將服務(wù)自動(dòng)切回

Node master 主節(jié)點(diǎn)主機(jī)名,

Node slave 備用節(jié)點(diǎn)主機(jī)名

Crm no 是否開啟cluster resource manager (集群資源管理器)

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
復(fù)制到被動(dòng)端
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

4 啟動(dòng)并查看

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

5 結(jié)合DRBD

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

5 mysql安裝

1 配置yum源

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

2 安裝mysql

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

3 配置/data 權(quán)限

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

4 配置mysql配置文件

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

5 啟動(dòng)mysql

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

6 刪除slave端mysql

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

7 配置切換

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

三 配置mysql熱備和從庫(kù)

1 配置mysql熱備

1 復(fù)制相關(guān)配置

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

2 關(guān)閉mysql并重啟服務(wù)heartbeat

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

3 關(guān)閉mater

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

4 恢復(fù)

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

2 配置主從同步

1 配置server-id和二進(jìn)制日志開啟

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
重啟服務(wù)器
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

2 配置數(shù)據(jù)庫(kù)的導(dǎo)出和導(dǎo)入,保證同步之間的主從相同

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

3 配置主從同步

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

grant replication slave on . to admin@'%' identified by 'root123';

redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

change master to master_host='192.168.1.200',master_user='root',master_password='root123',master_log_file='mysql-bin.000001',master_log_pos=319;
此 192.168.1.200為heartbeat 的VIP,專用于數(shù)據(jù)鏈接

測(cè)試
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備
redhat6.5 heartheartbeat+drbd+mysql主庫(kù)熱備

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI