day01 LVS

LVS

一、集羣

  • 一組相互獨立的,通過高速網絡互聯的計算機構成的一個組,並以單一系統的模式加以管理
  • 將很多服務器集中起來一起進行同一種服務,在C端看來就像是隻有一個服務器
  • 可以在較低成本的情況下獲得在性能、可靠、靈活性方面相對較高的收益
  • 任務調度則是集羣系統中的核心技術
    二、集羣分類
  • 高性能計算集羣(HPC)
  • 高可用集羣(HA)
  • 負載均衡集羣(LB)
    三、LVS集羣組成
  • 前端:負載均衡層
    -- 由一臺或多臺負載均衡調度器構成
  • 中端:服務器羣組層
    --由一組實際運行應用服務的服務器組成
  • 後端:數據共享存儲層
    -- 提供共享存儲空間的存儲區域
    day01 LVS
    四、LVS術語
  • Director Server:調度器,將負載分發到Real Server 的服務器
  • Real Server:真實服務器,真正提供應用服務的服務器
  • VIP:虛擬IP地址,公佈給Client訪問的IP地址
  • RIP:真實IP地址,集羣節點使用的IP地址
  • DIP:Director連接到Real Server 的IP地址
    五、LVS負載均衡方式
  • VS/NAT:通過網絡地址轉換實現的虛擬服務器
    --Director 將用戶請求報文的目的地址改變成選的的Real Server地址後,將請求轉發給Real Server
    --大併發訪問時,調度器性能成爲瓶頸
  • VS/DR:直接使用路由技術實現虛擬服務器
    --通過改寫請求報文的的MAC地址,將請求發至Real Server,Real Server直接響應給客戶端
  • VS/TUN:通過隧道方式實現虛擬服務器
    --Director採用隧道技術將請求發至Real Server後,Real Server 直接響應客戶端
    day01 LVS
    六:負載均衡調度算法
  • Director Server根據各臺服務器的負載情況,通過高度算法動態選擇一臺Real Server
  • LVS目前實現了10種調度算法
  • 常用調度算法有4種
    --輪詢(Round Robin)
    --加權輪詢(Weighted Round Robin)
    --最少連接(Least Connections)
    --加權最少連接(Weighted Least Connections)
  • 輪詢(rr)
    --將用戶的請求平均的分配到Real Server
  • 加權輪詢(wrr)
    --根據真實服務器的性能設置權重,再進行輪詢調度
  • 最少連接(lc)
    --動態的將請求分發到已建立的連接數最少的服務器上
  • 加權最少連接(wlc)
    --根據真實服務器的性能設置權重,再將網絡請求調度到以建立連接的最少服務器上
  • 基於局部性的最少連接(lblc)
    --根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處於一半的工作負載,則用“最少鏈接” 的原則選出一個可用的服務器,將請求發送到該服務器
  • 帶複製的基於局部性最少鏈接(Locality-Based Least Connections with Replication)
    --維護從一個目標IP地址到一臺服務器的映射根據請求的目標IP地址找出該目標IP地址對應的服務器組,按“最小連接”原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器;若服務器超載,則按“最小連接”原則從這個集羣中選出一臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器
    當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低複製的程度。
  • 目標地址散列(Source Hashing)
    --根據請求的源IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空
  • 目標地址散列(Destination Hashing)
    --根據請求的目標IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空
  • 最短的期望的延遲(Shortest Expected Delay Scheduling SED)
    --基於WLC算法,A、B、C三臺機器分別權重1、2、3 ,連接數也分別是1、2、3如果使用WLC算法的話一個新請求進入時它可能會分給ABC中的任意一個,使用sed算法後會進行這樣一個運算:A(1+1)/1,B(1+2)/2,C(1+3)/3,根據運算結果,把連接交給C
  • 最少隊列調度(Never Queue Scheduling NQ)
    如果有臺Real Server的連接數爲0就直接分配過去,無需SED運算
    七:LVS-NAT實現方式

    1. 拓撲
      day01 LVS
    2. 配置 DIP 和RIP在一個網段 真實服務器網關指向DIP
      ipvsadm
      -A 添加虛擬服務器
      -t 設置集羣地址
      -s 指定調度算法
      ipvsadm -A -t 192.168.4.100:80 -s rr
      -a 添加真實服務器
      -d 刪出真實服務器
      -r 指定真實服務器地址
      -m 使用NAT 模式 -g DR模式 -i TUN模式
      -w 爲節點服務器設置權重,默認1
      ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.1:80 -m
      ipvsadm -d -r 192.168.4.1:80 -t 192.168.4.100:80
      ipvsadm -Ln 查看lvs信息
      ipvsadm -C 清空所有規則
      環境4臺主機 1client 1director 2real server
      客戶端ip 201.1.1.200
      VIP 201.1.1.100
      DIP 192.168.4.100
      RIP 192.168.4.11/12
      (1)director 開啓路由轉發 echo "net.ipv4.ip_forward = 1" >> /etcsysctl.conf sysctl -p 文件生效 查看 /proc/sys/net/ipv4/ip_forward 文件內容爲1
      yum -y install ipvsadm<br/>ipvsadm -A -t 192.168.4.100:80 -s rr<br/>ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.11:80 -m <br/>ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.12:80 -m
      (2)真實服務器
      配置ip,httpd 編寫測試頁面
      保存配置:ipvsadm-save -n >>/etc/sysconfig/ipvsadm #重定向到配置文件 或 sevice ipvsadm save
      (3)客戶端訪問201.1.1.100 就可以訪問到real server
      (4) 修改算法
      ipvsadm -E -t 192.168.4.100:80 -s wrr
      八、LVS-DR DIP 必須設置在虛擬接口上
      拓撲
      day01 LVS

      real配置
      vim /etc/sysctl.conf<br/>net.ipv4.conf.all.arp_announce = 2<br/>net.ipv4.conf.lo.arp_announce = 2<br/>net.ipv4.conf.all.arp_ignore = 1<br/>net.ipv4.conf.lo.arp_ignore = 1
      cd /etc/sysconfig/network-scripts/
      vim ifcfg-lo:0
      DEVICE=lo:0
      IPADDR=202.1.1.200
      NETMASK=255.255.255.255
      BROADCAST=202.1.1.200
      ONBOOT=yes

內核參數說明
•arp_announce
–0 (默認):在任意網絡接口上的任何本地地址
–1:儘量避免不在該網絡接口子網段的本地地址做出arp迴應。當發起ARP請求的源IP地址是被設置應該經由路由達到此網絡接口的時候很有用。此時會檢查來訪IP是否爲所有接口上的子網段內ip之一。如果改來訪IP不屬於各個網絡接口上的子網段內,那麼將採用級別2的方式來進行處理
–2:對查詢目標使用最適當的本地地址。在此模式下將忽略這個IP數據包的源地址並嘗試選擇與能與該地址通信的本地地址。首要是選擇所有的網絡接口的子網中外出訪問子網中包含該目標IP地址的本地地址。如果沒有合適的地址被發現,將選擇當前的發送網絡接口或其他的有可能接受到該ARP迴應的網絡接口來進行發送
•arp_ignore
–0(默認值):迴應任何網絡接口上對任何本地IP地址的arp查詢請求
–1:只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求
–2:只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,且來訪IP必須在該網絡接口的子網段內
–3:不迴應該網絡接口的arp請求,而只對設置的唯一和連接地址做出迴應
–4-7:保留未使用
–8:不迴應所有(本地地址)的arp查詢
director 配置
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0:0
DEVICE=eth0:0
HWADDR=00:0C:29:B6:5E:A4
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=202.1.1.200
PREFIX=24
ipvsadm -A -t 202.1.1.200:80 -s wlc<br/>ipvsadm -a -t 202.1.1.200:80 -r 202.1.1.10 -g -w 1<br/>ipvsadm -a -t 202.1.1.200:80 -r 202.1.1.20 -g -w 2<br/>
客戶端訪問
九、編寫腳本,監控real server是否出現故障,如果出現故障將其移除,如果故障恢復,再將它加入到LVS中
day01 LVS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章