以下內容主要摘自zhangwensong博士的部落格介紹lvs之前,需要先說一下lvs的產生需求:
lvs網路服務的需求
針對lvs需求,我們給出了基於ip層和基於內容請求分發的負載平衡排程解決方法,並在linux核心中實現了這些方法,將一組伺服器構成乙個實現可伸縮的、高可用網路服務的伺服器集群,我們稱之為linux虛擬伺服器(linux virtual server)。
lvs集群採用ip負載均衡技術和基於內容請求分發技術。排程器具有很好的吞吐率,將請求均衡地轉移到不同的伺服器上執行,且排程器自動遮蔽掉伺服器的故障,從而將一組伺服器構成乙個高效能的、高可用的虛擬伺服器。
我們組用的主要是ip負載均衡技術,也就是所介紹的ipvs負載均衡
它是整個集群對外面的前端機,負責將客戶的請求傳送到一組伺服器上執行,而客戶認為服務是來自乙個ip位址上的。它可以是用ip負載均衡技術的負載排程器,也可以是基於內容請求分發的負載排程器,還可以是兩者的結合。
個人了解,主要使用的是基於ip負載均衡技術的負載排程器
排程器主要採用ip負載均衡技術
在ip負載均衡技術中,需要伺服器池擁有相同的內容提供相同的服務
排程器只根據負載情況從伺服器池中選出乙個伺服器,將該請求**到選出的伺服器,並記錄這個排程;當這個請求的其他報文到達,也會被**到前面選出的伺服器由於所有的操作都是在作業系統核心空間中將完成的,它的排程開銷很小,所以它具有很高的吞吐率。
個人測試:是一組真正執行客戶請求的伺服器。測試平台:aws公有雲、ec2
虛擬機器型別:c3.xlarge和c3.8xlarge
測試工具:nuttcp(開源)和組內程式,兩種測試(其實測試核心程式是我寫的。。。。)
測試結果:單lvs,c3.8xlarge可以達到65萬pkts每秒,流量大小為單向8gbps,丟包率低於十萬分之一(這個結果在在知乎搜一搜一大堆,效能資料都差不多)
測試結論:
具體結果是公司內部資料,不可洩露
;aws底層流量、路由能力非常強悍,很強悍,具體資料保密,反正完爆阿里雲
補充:仍有很大優化能力(個人建議要使用full-nat模式)
伺服器池的結點數目是可變的
當整個系統收到的負載超過目前所有結點的處理能力時,可以在伺服器池中增加伺服器來滿足不斷增長的請求負載
對大多數網路服務來說,結點與結點間不存在很強的相關性,所以整個系統的效能可以隨著伺服器池的結點數目增加而線性增長
第三條說得其實並不正確,因為還有其他很多的限制條件,實際上整個系統在實際應用中並不會線性增加;個人經驗是:擴充套件10~100倍之後就需要拆分業務、架構,否則會有瓶頸;
其他限制條件:譬如達到單個or單組ipvs上限(ipvs負載均衡器實際上肯定是需要多個,進行互相備份的,個人覺得應該是n+2模式這種備份;還需要keepalive對伺服器進行實時監控)
它為伺服器池提供乙個共享的儲存區,這樣很容易使得伺服器池擁有相同的內容,提供相同的服務。
後端儲存通常用容錯的分布式檔案系統,譬如分布式資料庫、memcache、redis
這個其實雲服務商基本都提供吧,反正雲幫你省了很多i層和p層的事,讓你更好的專注於服務和內容!
ipvs即現在所謂的p層,硬體或者虛擬化硬體、虛擬化虛擬機器、容器則是i層,伺服器池是s層,後端儲存有資料庫、分布式資料庫、memcache、redis等等,屬於p層---還是蠻符合現在硬體、資料、服務分離的思維的
集群負載均衡LVS
電子商務已經成為生活中不可缺少的一部分,給使用者帶來了方便和效率。隨著計算機硬體的 發展,單台計算機的效能和可靠性越來越高。網路的飛速發展給網路寬頻和伺服器帶來巨大的 挑戰,網路寬頻的增長速度遠遠高於記憶體訪問的速度的增長,急劇膨脹的使用者請求已經使單台 計算機難以達到使用者的需求。為了滿足急劇增長...
lvs 負載均衡集群
目錄lvs的基本操作 搭建lvs nat實踐 搭建lvs dr實踐 負載均衡集群 lb 負載均衡集群工作的層次劃分 高可用集群 ha 高效能集群 hp 排程演算法 lvs scheduler 名詞解釋 注 負載均衡器使用雙網絡卡,一塊使用外網ip的vip,一塊是與內部真實伺服器通訊的dip natd...
LVS搭建負載均衡集群服務
一,lvs簡介 lvs是linux virtual server的簡稱,也就是linux虛擬伺服器,是乙個由章文嵩博士發起的自由軟體專案,它的官方站點是www.linuxvirtualserver.org。現在lvs已經是 linux標準核心的一部分,在linux2.4核心以前,使用lvs時必須要重...