馬哥教育網絡班21期+第1周課程練習

LVS簡介

LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個由章文嵩博士開發的一款自由軟件。利用LVS可以實現高可用的、可伸縮的Web、Mail、Cache等網絡服務,并在此基礎上開發支持龐大用戶數的高可用商務應用。

LVS集群的組成

基于LVS構建的服務器集群系統由3個部分組成:最前端的負載均衡層,中間的服務器池層,以及后端的數據存儲層。以下是LVS的架構框圖:
  • 負載均衡層:由一臺或多臺負載均衡調度器組成。而LVS的核心模板IPVS就在調度器上,調度器的主要作用類似于路由器,通過預先設定的ipvs規則,將用戶的請求分發到服務器池的Real Server上。

  • 服務器池層:由一組實際運行應用服務的機器組成,Real Server可以是Web服務器、FTP服務器、Mail服務器等中的一個或多個。

  • 數據存儲層:為所有的Real Server提供共享存儲空間和內容一致性的存儲區域。一般可以通過NFS網絡文件系統共享數據。

lvs_meitu_1.jpg

LVS集群實現原理

LVS的IP負載均衡技術是通過IPVS模塊實現的。IPVS是LVS的核心軟件,它的主要作用是:改變netfilter中INPUT鏈處理數據包的路徑,同時在Director Server上虛擬出一個IP地址,用戶必須通過這個虛擬IP去訪問服務器。訪問的請求首先通過此IP到達調度器,然后由調度器根據規則從服務器池中選擇一個Real Server響應用戶的請求。而此處Real Server如何返回數據給用戶就是LVS實現的重點,可以分為常用的3種方式:NAT、TUN和DR。下面進行詳細的介紹。
  • NAT:確切地來說是DNAT,通過請求的目標網絡地址轉換實現LVS。當用戶請求調度器時,調度器將請求報文的目標地址(VIP)改寫為根據調度算法挑選出的Real Server地址,同時也可以將報文的目標端口映射為Real Server的相應端口,最后將報文請求發送給選定的Real Server。Real Server在將數據返回給用戶時,需要再次經過調度器將報文的源IP和源端口改為VIP和相應端口,然后將數據發送給用戶,完成整個負載均衡調度過程。

    NAT.PNG

  • DR:即Director Routing,也就是用直接路由技術實現LVS。調度器收到請求報文后通過改寫請求報文中的源目MAC地址,將請求發送到Real Server,而Real Server將響應直接返回給用戶,不再經過調度器。那么在這一過程中有一個點需要重點把握,那就是Real Server和調度器都使用了VIP,如何能保證請求報文會先發給Real Server,那么核心思想是不要讓Real Server對廣播的ARP請求做出響應,最有效的方法是修改Real Server主機的內核參數。

    DR1.PNG

  • TUN:即通過IP隧道技術實現LVS。也就是當調度器收到請求報文時不會去修改請求報文的三層頭部,而是在原有的IP頭部外再封裝一個IP頭部,新的IP頭部的目標IP是根據調度算法挑選出來的Real Server的IP。

    TUN.PNG

LVS調度算法

前文一直在講調度器根據算法選定服務器池中的Real Server,那么到底如何選擇的,這里就淺析一下IPVS的調度算法,分為靜態和動態兩大類調度算法。

靜態調度算法:

①RR:輪詢(round robin):是一種1:1調度,實現將外部用戶的請求按順序1:1地分配到每一個Real Server上,不考慮Real Server的負載狀況。

②WRR:加權輪詢(weighted round robin):能者多勞的機制,根據Real Server的不同負載能力去調度訪問請求。通過預先在每臺Real Server上設定權重值來區別它們的處理能力。

③DH:目標地址散列(Destination Hash ):根據請求的目標IP地址,作為散列鍵(HashKey)從靜態分配的散列表找出對應的服務器,即將來自同一個IP的請求始終調度至同一個RS,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

④SH:源地址散列(Source Hash):源地址散列”調度算法根據請求的源IP地址,作為散列鍵(HashKey)從靜態分配的散列表找出對應的服務器,即將對同一個目標IP的請求始終調度至同一個RS,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空?

動態調度算法:

①LC:最少連接(Least Connections):動態地將用戶請求調度到當前活動連接數最少的Real Server上。

②WLC:加權最少連接(Weighted LC):對每個服務節點用相應的權值表示其處理能力。WLC在進行調度時盡可能使Real Server的活動連接數與權重成正比。

③SED:最短期望延遲(Shortest Expection Delay): 對WLC的改進,Overhead = (ACTIVE+1)*256/權重值,防止在最初始狀態時,調度器會將請求轉發給負載能力差的Real Server。

④NQ:最少隊列調度(Never Queue):對SED的改進,防止服務器資源的浪費,因為SED算法可能會導致權重過大的Real Server一直在處理請求,而權重小的一直空閑。

⑤LBLC:基于局部性的最少連接(Locality-Based LC):目前主要用于Cache集群系統?該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器。

⑥LBLCR:帶復制的基于局部性最少連接(LBLC with Replication):對LBLC的改進,防止調度器一直轉發請求給同一個緩存服務器,而使其他服務器處于空閑,而LBLCR實現的就是緩存服務器可向其他緩存服務器請求的功能,即復制他們的數據,這比從遠端數據庫請求數據高效很多,也使服務器資源充分利用。

原創文章,作者:Net21_charles,如若轉載,請注明出處:http://www.www58058.com/23872

(0)
Net21_charlesNet21_charles
上一篇 2016-07-12
下一篇 2016-07-12

相關推薦

  • Linux系統計劃任務

    在生活、生產環境中,我們可能遇到這樣的場景,想在某個時刻,或者固定某個時間周期的在Linux系統中執行某項任務,例如,定時關機,定期自動清理垃圾文件等,at,crontab等命令就是幫你實現這樣功能的。

    2018-05-06
  • Linux下各類顏色文件的意思

    Linux下各類顏色文件的意思   Linux系統對在終端下的各文件進行了顏色區分,了解各個顏色文件對應的意思對是學習Linux必須要掌握的。Linux文件顏色如下圖: 1、白色:表示普通文件(-) 2、藍色:表示目錄(d) 3、綠色:表示可執行文件(-) 4、紅色:表示壓縮文件(-) 5、淺藍色:鏈接文件(l) 6、黃色:表示設備文件(c) 7、…

    Linux干貨 2016-10-18
  • 文本處理工具-2

    1、 sed 是一種行/流編輯器,它一次處理一行內容;處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space ),接著用sed 命令處理緩沖區中該行內容,處理完成后,把緩沖區的該行內容送往屏幕,接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出,Sed 可以用來自動編輯一個或多個文件。 2…

    Linux干貨 2016-08-15
  • 網絡管理,程序管理

    lsmod |grep bond0 ifconfig bond0 down 關閉bonding服務 rmmod bonding  刪除 bonding 服務 lsmod |grep eth1000 查看  lsmod指令,會列出所有已載入系統的模塊 rmmod  刪除內核中的一模塊  查找網卡驅動e1000 rmmod…

    Linux干貨 2016-09-11
  • 文件查找作業

    1、查找/var目錄下屬主為root,且屬組為mail的所有文件 [root@wzc ~]# find /var/ -user root -a -group mail /var/spool/mail /var/spool/mail/root 2、查找/var目錄下不屬于root、…

    Linux干貨 2016-08-15
  • Linux之磁盤管理

    Linux之磁盤管理       linux系統中, 一切都是文件, 而這些文件都是存儲在磁盤中, 因此對于磁盤的管理是非常重要的, Linux磁盤管理的好壞, 直接關系到整個系統的性能問題, 本文主要介紹了磁盤結構, 分區類型, 管理分區, 管理文件系統, 掛載設備, 管理虛擬內存這幾大項的內容.    &…

    Linux干貨 2016-08-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-12 13:29

    寫的很好,排版也很棒,圖畫的也很棒,加油

欧美性久久久久