打造極致性能數據庫中間件丨LVS+Keepalive+華爲雲DDM之理論篇

背景說明html

華爲雲分佈式數據庫中間件(Distributed Database Middleware,簡稱DDM),專一於解決數據庫分佈式擴展問題,突破了傳統數據庫的容量和性能瓶頸,實現海量數據高併發訪問。linux

DDM使用華爲關係型數據庫(RDS)做爲存儲引擎,具有自動部署、分庫分表、彈性伸縮、高可用等全生命週期運維管控能力。數據庫

上邊幾句話是從華爲雲官網的幫助手冊摘錄出來的[1],簡單介紹了DDM服務。從我這個使用者的角度看來,DDM主要優勢有:高性能[2]、海量數據支持、數據平滑擴容和業務無感知的讀寫分離。這些特色正是公司當前須要的。改用DDM服務以後,各方面的性能都有很大的提高。可是,公司一部分代碼使用的是PHP語言,而PHP語言對長鏈接和客戶端負載均衡的支持不是很好[3]。爲了解決這個問題,打算是用LVS作一個負載均衡,經過LVS鏈接DDM服務。花了將近一週的時間將LVS相關背景瞭解清楚,並搭建成功,業務運行正常。這篇文章詳細介紹了搭建過程,而且對LVS+keepalive從我的理解的角度作了介紹,但願對同輩中人能略有幫助。後端

 

LVS+Keeplive理論知識安全

1、LVS理論基礎服務器

1.LVS是什麼併發

The Linux Virtual Server(LVS) is a highly scalable and highly available server built on a cluster of real servers, with the load balancer running on the Linux operating system. The architecture of the server cluster is fully transparent to end users, and the users interact as if it were a single high-performance virtual server. For more information, click here.負載均衡

LVS官網的介紹[4],我的理解,LVS提供一種從Linux內核態支持的高可用、高轉發效率的負載均衡。自己源碼是開源的GPL協議。值得一提的,LVS是是國人章文嵩發起的一個開源項目。運維

【問】LVS工做在TCP/IP的哪一層?分佈式

【答】LVS有多種工做模式,不能嚴格的說工做在哪一層。簡單說,LVS-NAT工做在IP層,LVS-DR工做在數據鏈路層,LVS-TUN工做在IP層。

【問】LVS能負載多少RealServer?

【答】不一樣的工做模式轉發性能不同,LVS-DR號稱能夠支持200+以上節點。

 

以下對LVS的幾種工做模式作個簡單的介紹,內容均來自「簡書」「醬油菠菜」的一篇文章:https://www.jianshu.com/p/8a61de3f8be9。目前是看到的最簡清晰的介紹了:

LVS的3種工做模式,各自有本身的適用場景,目前用的比較可能是LVS-DR模式,DR模式也是3中模式中性能最高的。

 

2.LVS-NAT

原理:

基於ip假裝MASQUERADES,原理是多目標DNAT。

因此請求和響應都經由Director調度器。

優勢:

●支持端口映射

●RS可使用任意操做系統

●節省公有IP地址。

RIP和DIP都應該使用同一網段私有地址,並且RS的網關要指向DIP。

使用nat另一個好處就是後端的主機相對比較安全。

缺點:

請求和響應報文都要通過Director轉發;極高負載時,Director可能成爲系統瓶頸。

就是效率低的意思。

 

3.LVS-TUN

原理:

基於隧道封裝技術。在IP報文的外面再包一層IP報文。

當Director接收到請求的時候,選舉出調度的RealServer

當接受到從Director而來的請求時,RealServer則會使用lo接口上的VIP直接響應CIP。

這樣CIP請求VIP的資源,收到的也是VIP響應。

優勢:

●RIP、VIP、DIP都應該使用公網地址,且RS網關不指向DIP;

●只接受進站請求,解決了LVS-NAT時的問題,減小負載。

●請求報文經由Director調度,可是響應報文不需經由Director。

缺點:

●不指向Director因此不支持端口映射。

●RS的OS必須支持隧道功能。

●隧道技術會額外花費性能,增大開銷。

 

3.LVS-DR

原理:

當Director接收到請求以後,經過調度方法選舉出RealServer。

講目標地址的MAC地址改成RealServer的MAC地址。

RealServer接受到轉發而來的請求,發現目標地址是VIP。RealServer配置在lo接口上。

處理請求以後則使用lo接口上的VIP響應CIP。

優勢:

●RIP可使用私有地址,也可使用公網地址。

●只要求DIP和RIP的地址在同一個網段內。

●請求報文經由Director調度,可是響應報文不經由Director。

●RS可使用大多數OS

缺點:

●不支持端口映射。

●不能跨局域網。

 

2、Keepalive簡介

Keepalive的官網介紹以下:

Keepalived is a routing software written in C. The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures. Loadbalancing framework relies on well-known and widely used Linux Virtual Server (IPVS) kernel module providing Layer4 loadbalancing. Keepalived implements a set of checkers to dynamically and adaptively maintain and manage loadbalanced server pool according their health. On the other hand high-availability is achieved by VRRP protocol. VRRP is a fundamental brick for router failover. In addition, Keepalived implements a set of hooks to the VRRP finite state machine providing low-level and high-speed protocol interactions. Keepalived frameworks can be used independently or all together to provide resilient infrastructures.

 

簡單歸納以下:

●Keepalive是C語言寫的

●Keepalive被普遍應用於和LVS一塊兒提供4層的負載均衡

● Keepalive能夠探測負載均衡節點的健康狀態,管理負載均衡節點

●經過VRRP協議提供高可靠

 

從上文的介紹能夠看出,使用LVS+Keepalive能夠搭建一個具有故障自動遷移的高可用負載均衡。本篇主要介紹了一些基礎理論知識,下一篇會詳細的說明怎麼樣一步步使用LVS+Keepalive+DDM搭建高性能的數據庫中間件,敬請期待。

 

參考文獻

[1].  華爲雲DDM官網幫助文檔:https://support.huaweicloud.com/productdesc-ddm/zh-cn_topic_0063320859.html

[2].  華爲雲DDM性能指標:https://support.huaweicloud.com/bestpractice-ddm/zh-cn_topic_0062151536.html

[3].  如何鏈接華爲雲DDM實例:https://support.huaweicloud.com/usermanual-ddm/zh-cn_topic_0055087669.html

[4].  LVS官網:http://www.linuxvirtualserver.org/

[5].  Linux服務器集羣系統(一):http://www.linuxvirtualserver.org/zh/lvs1.html

[6].  Keepalive官網:http://www.keepalived.org/

相關文章
相關標籤/搜索