lvs負載均衡是一種能夠在unix/linux平臺下實現負載均衡集群功能的虛擬服務器集群系統,主要是用來將一組服務器構成一個高性能的、高可用的虛擬服務器。
具體內容如下:
LVS是linux virtual server的簡寫linux虛擬服務器,是一個虛擬的服務器集群系統,可以在unix/linux平臺下實現負載均衡集群功能。該項目在1998年5月由章文嵩博士組織成立。LVS是一種集群(Cluster)技術,采用IP負載均衡技術和基于內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序。
LVS集群采用IP負載均衡技術和基于內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服 務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序。
LVS在設計時需要考慮系統的透明性、可伸縮性、高可用性和易管理性。一般來說,LVS集群采用三層結構,其體系結構如圖所示:
負載均衡的原理很簡單,就是當客戶端發起請求時,請求直接發給Director Server(調度器),這時會根據設定的調度算法,將請求按照算法的規定智能的分發到真正的后臺服務器。以達到將壓力均攤。但是我們知道,http的連接時無狀態的,假設這樣一個場景,我登錄某寶買東西,當我看上某款商品時,我將它加入購物車,但是我刷新了一下頁面,這時由于負載均衡的原因,調度器又選了新的一臺服務器為我提供服務,我剛才的購物車內容全都不見了,這樣就會有十分差的用戶體驗。所以就還需要一個存儲共享,這樣就保證了用戶請求的數據是一樣的。所以LVS負載均衡分為三層架構(也就是LVS負載均衡主要組成部分):
第一層:負載調度器(load balancer/ Director),它是整個集群的總代理,它在有兩個網卡,一個網卡面對訪問網站的客戶端,一個網卡面對整個集群的內部。負責將客戶端的請求發送到一組服務器上執行,而客戶也認為服務是來自這臺主的。舉個生動的例子,集群是個公司,負載調度器就是在外接攬生意,將接攬到的生意分發給后臺的真正干活的真正的主機們。當然需要將活按照一定的算法分發下去,讓大家都公平的干活。
第二層:服務器池(server pool/ Realserver),是一組真正執行客戶請求的服務器,可以當做WEB服務器。就是上面例子中的小員工。
第三層:共享存儲(shared storage),它為服務器池提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務。一個公司得有一個后臺賬目吧,這才能協調。不然客戶把錢付給了A,而換B接待客戶,因為沒有相同的賬目。B說客戶沒付錢,那這樣就不是客戶體驗度的問題了。