共計 3134 個字符,預計需要花費 8 分鐘才能閱讀完成。
LVS 概念及使用方法是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
LVS 簡介及使用
一.LVS 是什么?
LVS 的英文全稱是 Linux Virtual Server,即 Linux 虛擬服務器。它是我們國家的章文嵩博士的一個開源項目。在 linux 內存 2.6 中,它已經成為內核的一部分,在此之前的內核版本則需要重新編譯內核。
視頻詳解
二.LVS 能干什么?
LVS 主要用于多服務器的負載均衡。它工作在網絡層,可以實現高性能,高可用的服務器集群技術。它廉價,可把許多低性能的服務器組合在一起形成一個超級服務器。它易用,配置非常簡單,且有多種負載均衡的方法。它穩定可靠,即使在集群的服務器中某臺服務器無法正常工作,也不影響整體效果。另外可擴展性也非常好。
三. 工作原理
如上圖,LVS 可分為三部分:
1.Load Balancer:
這是 LVS 的核心部分,它好比我們網站 MVC 模型的 Controller。它負責將客戶的請求按照一定的算法分發到下一層不同的服務器進行處理,自己本身不做具體業務的處理。另外該層還可用監控下一層的狀態,如果下一層的某臺服務器不能正常工作了,它會自動把其剔除,恢復后又可用加上。該層由一臺或者幾臺 Director Server 組成。
2.Server Array:
該層負責具體業務。可有 WEB Server、mail Server、FTP Server、DNS Server 等組成。注意,其實上層的 Director Server 也可以當 Real server 用的。
3.Shared Storage:
主要是提高上一層數據和為上一層保持數據一致。
4. 視頻詳解
四. 負載均衡機制
前面我們說了 LVS 是工作在網絡層。相對于其它負載均衡的解決辦法,比如 DNS 域名輪流解析、應用層負載的調度、客戶端的調度等,它的效率是非常高的。LVS 的通過控制 IP 來實現負載均衡。IPVS 是其具體的實現模塊。IPVS 的主要作用:安裝在 Director Server 上面,在 Director Server 虛擬一個對外訪問的 IP(VIP)。用戶訪問 VIP,到達 Director Server,Director Server 根據一定的規則選擇一個 Real Server,處理完成后然后返回給客戶端數據。這些步驟產生了一些具體的問題,比如如何選擇具體的 Real Server,Real Server 如果返回給客戶端數據等等。IPVS 為此有三種機制:
1.VS/NAT(Virtual Server via Network Address Translation)
即網絡地址翻轉技術實現虛擬服務器。當請求來到時,Diretor server 上處理的程序將數據報文中的目標地址(即虛擬 IP 地址)改成具體的某臺 Real Server, 端口也改成 Real Server 的端口,然后把報文發給 Real Server。Real Server 處理完數據后,需要返回給 Diretor Server,然后 Diretor server 將數據包中的源地址和源端口改成 VIP 的地址和端口,最后把數據發送出去。由此可以看出,用戶的請求和返回都要經過 Diretor Server,如果數據過多,Diretor Server 肯定會不堪重負。
2.VS/TUN(Virtual Server via IP Tunneling)
即 IP 隧道技術實現虛擬服務器。它跟 VS/NAT 基本一樣,但是 Real server 是直接返回數據給客戶端,不需要經過 Diretor server, 這大大降低了 Diretor server 的壓力。
3.VS/DR(Virtual Server via Direct Routing)
即用直接路由技術實現虛擬服務器。跟前面兩種方式,它的報文轉發方法有所不同,VS/DR 通過改寫請求報文的 MAC 地址,將請求發送到 Real Server,而 Real Server 將響應直接返回給客戶,免去了 VS/TUN 中的 IP 隧道開銷。這種方式是三種負載調度機制中性能最高最好的,但是必須要求 Director Server 與 Real Server 都有一塊網卡連在同一物理網段上。
五. 負載調度算法
前面我們都知道 Director Server 要選擇不同的 Real server,那么它具體的如果選擇 Real Server 以達到負載均衡的呢,IPVS 實現了八種調度方法, 具體算法可以查看官網或者百度,這里就不一一列出了。官網:www.linuxvirtualserver.org。
六、具體配置操作
首先我們這里有三臺機子,IP 分別是 192.168.132.30(Diretor server),192.168.132.64(Real server 1),192.168.132.68(real server 2)。在 real server 1 和 2 上面,已經配置好了 web 服務,并且我們假設還有一個對外訪問的虛擬 IP 是 192.168.132.254(VIP)。另外在 Diretor server 上面已經安裝好了 ipvsadm。
下面我們 VS/DR 介紹詳細的配置過程。
Diretor server 上面的配置:
// 首先在 Director Server 上綁定一個虛擬 IP(也叫 VIP),此 IP 用于對外提供服務:
Ifconfig eth0:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up
// 給設備 eth0:0 指定一條路由
route add -host 192.168.132.254 dev eth0:0
// 啟用系統的包轉發功能
echo 1 /proc/sys/net/ipv4/ip_forward
// 清楚 ipvsadm 以前的設置
ipvsadm -C
// 添加一個新的虛擬 IP 記錄 192.168.132.254,其持續服務之間是 120 秒
ipvsadm -A -t 192.168.132.254:80 -s rr -p 120
// 在新增的虛擬 IP 記錄中新增兩天 real server 記錄,- g 即為使用 VS/DR 模式
ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.64:80 -g
ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.68:80 -g
// 啟用 LVS 服務 ipvsadm
兩臺 real server 上的配置:
/ 在回環設備上綁定了一個虛擬 IP 地址,并設定其子網掩碼為 255.255.255.255,與 Director Server 上的虛擬 IP 保持互通 /
ifconfig lo:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up
route add -host 192.168.132.254 dev lo:0
// 禁用本機的 ARP 請求 echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 /proc/sys/net/ipv4/conf/all/arp_announce
之后在其他客戶端機子上面,訪問 http://192.168.132.254/,則可以看到結果了。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。