概述
這是關于php進階到架構之MySQL進階學習的系列課程:mysql+keepalive高可用方案操盤實戰
學習目標:
- 掌握mysql主從復制中的雙主模式以及環境搭建
- 掌握keeplived的工作原理
- Mysql+Keepalived雙主熱備的高可用環境實戰搭建
雙主熱備
雙機熱備是指兩臺機器都在運行,但并不是兩臺機器都同時在提供服務。當提供服務的一臺出現故障的時候,另外一臺會馬上自動接管并且提供服務,而且切換的時間非常短。mysql實現雙主熱備是通過主從復制的雙主模式。
MySQL雙主復制,即互為Master-Slave(只有一個Master提供寫操作),可以實現數據庫服務器的熱備,但是一個Master宕機后不能實現動態切換。需要人工控制,那么如何實現動態自動切換呢?
使用Keepalived,可以通過虛擬IP,實現雙主對外的統一接口以及自動檢查、失敗切換機制,從而實現MySQL數據庫的高可用方案。
虛擬IP:邏輯上是虛擬的,實際是可以提供客戶端訪問的,類似Nginx負載均衡調度器。
keeplive工作流程
通過VIP實現Mysql雙主對外連接的統一接口。即客戶端通過Vip連接數據庫;當其中一臺宕機后,VIP會漂移到另一臺上,這個過程對于客戶端的數據連接來說幾乎無感覺,從而實現高可用。
keeplive實現原理
Keepalived,保持存活,在網絡里面就是保持在線了,也就是所謂的高可用或熱備,用來防止單點故障(單點故障是指一旦某一點出現故障就會導`整個系統架構的不可用)的發生。
那說到keepalived不得不說的一個協議VRRP協議,可以說這個協議就是keepalived實現的基礎。`
1)Keepalived的工作原理:
VRRP(Virtual Router Redundancy Protocol)虛擬路由冗余協議。
在VRRP中有兩組重要的概念:VRRP路由器和虛擬路由器,主控路由器和備份路由器。
2)VRRP路由器是指運行VRRP的路由器,是物理實體,虛擬路由器是指VRRP協議創建的,是邏輯概念。一組VRRP路由器協同工作,共同構成一臺虛擬路由器。
3)Vrrp中存在著一種選舉機制,用以選出提供服務的路由即主控路由,其他的則成了備份路由。當主控路由失效后,備份路由中會重新選舉出一個主控路由,來繼續工作,來保障不間斷服務
Mysql+Keepalived雙主熱備的高可用架構圖
mysql主主模式環境搭建
環境描述
Master1:182.148.15.238 #安裝mysql和keepalived
Master2: 182.148.15.237 #安裝mysql和keepalived
VIP:182.148.15.236