mysql+keepalived必须要lvs吗_Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL復制能夠保證數據的冗余的同時可以做讀寫分離來分擔系統壓力,如果是主主復制還可以很好的避免主節點的單點故障。然而MySQL主主復制存在一些問題無法滿足我們的實際需要:未提供統一訪問入口來實現負載均衡,如果其中master宕掉的話需要手動切換到另外一個master,而不能自動進行切換。前面介紹了Mysql+Keepalived雙主熱備高可用方案記錄,那篇文檔里沒有使用到LVS(實現負載均衡),而下面要介紹的就是如何通過Keepalived+LVS方式來是實現MySQL的高可用性,利用LVS實現MySQL的讀寫負載均衡,Keepalived避免節點出現單點故障,同時解決以上問題。
Keepalived是一個基于VRRP(虛擬路由冗余協議)可用來實現服務高可用性的軟件方案,避免出現單點故障。Keepalived一般用來實現輕量級高可用性,且不需要共享存儲,一般用于兩個節點之間,常見有LVS+Keepalived、Nginx+Keepalived組合。
LVS(Linux Virtual Server)是一個高可用性虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。LVS主要用于多服務器的負載均衡,作用于網絡層。LVS構建的服務器集群系統中,前端的負載均衡層被稱為Director Server;后端提供服務的服務器組層被稱為Real Server。通過下圖可以大致了解LVS的基礎架構。
LVS有三種工作模式,分別是:
1)DR(Direct Routing 直接路由)模式。 DR可以支持相當多的Real Server,但需要保證Director Server(分發器)虛擬網卡與物理網卡在同一網段,并且后端Real Server的vip要建立在本地回環口lo設備上,這樣做是為了防止ip沖突;DR模式的好處是進站流量經過Director Server,出站流量不經過Director Server,減輕了Director Server的負載壓力。
2)NAT(Network Address Translation 網絡地址轉換)模式。NAT擴展性有限,無法支持更多的Real Server,因為所有的請求包和應答包都需要Director Server進行解析再生,這樣就很影響效率。
3)TUN(Tunneling IP隧道)模式。TUN模式能夠支持更多的Real Server,但需要所有服務器支持IP隧道協議;
LVS負載均衡有10中調度算法,分別是:rr(輪詢)、wrr(加權輪詢)、lc、wlc、lblc、lblcr、dh、sh、sed、nq
以下詳細記錄了Mysql在主主同步環境下,利用LVS實現Mysql的讀寫負責均衡以及使用Keepalived心跳測試避免節點出現單點故障,實現故障轉移的高可用。
1)高可用方案的環境準備
2)環境部署記錄如下
a)Mysql主主熱備環境部署
MySQL1 Real Server1和MySQL2 Real Server的主主熱備可以參考Mysql+Keepalived雙主熱備高可用操作記錄中對應部分。
b)Keepalived安裝
LVS_Master和LVS_Backup的keepalived安裝,也可以參考Mysql+Keepalived雙主熱備高可用操作記錄中對應部分。
c)LVS安裝
d)編寫LVS啟動腳本/etc/init.d/realserver
e)配置iptables防火墻
3)接著配置LVS+Keepalived配置
此時LVS+Keepalived+MySQL主主復制已經搭建完成。
4)最后進行測試驗證
總結幾點:
1)MySQL主主復制是集群的基礎,組成Server Array,其中每個節點作為Real Server。
2)LVS服務器提供了負載均衡的作用,將用戶請求分發到Real Server,一臺Real Server故障并不會影響整個集群的。
3)Keepalived搭建主備LVS服務器,避免了LVS服務器的單點故障,出現故障時可以自動切換到正常的節點。
4)VRRP虛擬IP地址和接口實際IP必須在同一個網段內,VRRP兩個實際接口不在同一網段,是不能形成主備關系的。因為:
總結
以上是生活随笔為你收集整理的mysql+keepalived必须要lvs吗_Mysql双主热备+LVS+Keepalived高可用操作记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 017——数组(十七) asort ks
- 下一篇: 开放医疗交通大数据技术 服务于公共便民领