LVS的簡單應用

集羣的分類:
1.)LB  Load Balancing 負載均衡集羣
    常見例子:LVS和piranha
2.)HA High Availability 高可用集羣
    常見例子:heartbeat,keepalived和ultramokey
3.)HP High Performance 高性能集羣
    常見例子:bowerful和drbd  html

 

LVS的優勢:
1.)LVS具備更大的吞吐量
2.)LVS有冗餘設備和鏈路
3.)LVS有強大的擴展性和適應性算法

LVS的IP:
1.)VIP             虛擬IP,是一個公網IP ,外網用戶所見到的IP
2.)RIP             realserver的IP
3.)DTP            Director的IP
4.)CIP             Client computer的IP瀏覽器

LVS的三種類型:
第一種,LVS-NAT
  1.)real servers它們必須在同一個網段內
  2.)RIP一般是私有IP
  3.)Director將處理全部的會話、通訊(包括內網和外網交互的全部數據)
  4.)real servers必須指定網關爲DIP
  5.)Director可作端口重定向
  6.)對操做系統不做要求
  7.)Director極可能成爲瓶頸
第二種,LVS-DR
  1.)real servers必須和Director在同一個網段內
  2.)RIP能夠不是私有的
  3.)Director只處理進來的通訊
  4.)real servers不能以DIP爲網關
  5.)大多數操做系統支持此模式
  6.)當director壞掉時,realserver可做分佈式服務
第三種,LVS-TUN
  1.)Director和real servers能夠在不一樣的網段內
  2.)RIP不能是私有地址
  3.)Director不能作端口重定向
  4.)操做系統必須是雙方都支持隧道協議服務器

LVS的調度方法:
一.固定算法
   1.)Round-robin                  rr                  輪調
       新的鏈接請求被輪流分配至各RealServer;算法的優勢是其簡潔性,它無需記錄當前全部鏈接的狀態,因此它是一種無狀態調度 
   2.)Weighted Round-robin         wrr                 加權輪調
   3.)Destination hasing           dh                  目標地址散列調度
   4.)Source hasing                sh                    源地址散列調度
       在實際應用中,源地址散列調度和目標地址散列調度能夠結合使用在防火牆集羣中,它們能夠保證整個系統的惟一出入口
二.動態調度算法:跟蹤處於活動狀態和非活動狀態的連結;活動狀態連結處於TCP的ESTABLISHED狀態,非活動狀態連結是處於ESTABLISHED狀態;當非活動狀態連結超時時,則可引發鏈接斷開,但LVS保留狀態一段時間,保護了數據的完整應。
   1.)Least-connection             lc                   最少鏈接次數
      「當前鏈接數=256*活動鏈接數+非活動鏈接數」誰的當前鏈接數小就把下一次鏈接交給誰
   2.)Weighted Least-connection    wlc 
      「當前鏈接數=(256*活動鏈接數+非活動鏈接數)/權重」誰的當前鏈接數小就把下一次鏈接交給誰                
   3.)SED                          sed                  wlc的改進版,不加入非活動鏈接
      「當前鏈接數=活動鏈接數/權重」誰的當前鏈接數小就把下一次鏈接交給誰
   4.)NQ                           nq                   不排隊算法
   5.)LBLC                         lblc                 基於局部性的最少連接調度
      「動態的方式實現dh」
   6.)LSLCR                        lblcr                帶複製的基於局部性最少連接調度
      避免了某臺服務器過忙;若一臺服務器的工做量是另外一臺服務器的兩倍,則將不會使用lblc算法,而會把下一次鏈接交給工做量小的服務器網絡


三種重要的超時:
1.)空閒的TCP會話超時:處於TCP的ESTABLISHED狀態,不轉發數據包
2.)雙方正常斷開時的超時時間:使客戶端可以訪問幾分鐘以前訪問到的real server,應用於郵件系統、網購、論壇;默認超時時長爲30s
3.)UDP的超時時間:防止網絡抖動等問題引發客戶端訪問的real server發生改變負載均衡

LVS持續鏈接類型:
1.)PCC                      客戶端持久鏈接;一個客戶端的全部服務請求都鏈接同一個real server
2.)PPC                      服務端持久鏈接;客戶端訪問的同一個服務都被定義到同一個real server
3.)PNMPP                    數據包持久鏈接;根據防火牆標記進行持久鏈接
4.)FTP connections          關於FTP的持久鏈接
5.)Expired persistence      過時持久鏈接tcp


關於ipvsadm:
ipvsadm是運行於用戶空間、用來與ipvs交互的命令行工具,它的做用表如今:
一、定義在Director上進行dispatching的服務(service),以及哪此服務器(server)用來提供此服務;
二、爲每臺同時提供某一種服務的服務器定義其權重(即概據服務器性能肯定的其承擔負載的能力);
ipvsadm的命令:
ipvsadm
          -A           定義一個新服務      
          -C           清空虛擬服務表
          -D           刪除一個服務
          -R           從一個文件來恢復服務規則
          -E           修改一個服務          
          -L           查看ipvsadm的規則
          -S           保存ipvsadm的設置
          -Z           清空計數器
          -a           對服務添加一個realserver
          -e           修改一條服務的規則
          -t            tcp協議       VIP:port
          -u           udp協議       VIP:port
          -s            指定調度方法
          -d           刪掉一條規則鏈
          -f            防火牆標記
          -x            請求鏈接的上限
          -y            請求鏈接的下限分佈式


    
                                                 搭建一個LVS-NAT類型的LVS
在搭建LVS-NAT類型的LVS以前首先要準備4個虛擬機:Director、realserver一、realserver二、client。其中Director主機有兩塊網卡,其它主機只須要一塊網卡;Director的2個IP分別爲192.168.0.28和172.16.0.1,realserver1的IP分別爲172.16.0.2,realserver2的IP爲172.16.0.3,client的IP爲192.168.0.29
Director的配置:
1.)安裝ipvsadm
   yum install ipvsadm
2.)配置防火牆
   service iptables start
   iptables -F
   service iptables save
3.)配置ipvsadm
   ipvsadm -A -t 192.168.0.28:80 -s wlc
   ipvsadm -a -t 192.168.0.28:80 -r 172.16.0.2 -m -w 2
   ipvsadm -a -t 192.168.0.28:80 -r 172.16.0.3 -m -w 1
realserver1的配置:
1.)裝上httpd服務,啓動httpd服務
   yum install httpd
   echo "realserver1" > /var/www/html/index.html
   service httpd start
   chkconfig httpd on
2.)配置IP地址,別忘了配置網關爲172.16.0.1
realserver2的配置:
1.)裝上httpd服務,啓動httpd服務
   yum install httpd
   echo "realserver1" > /var/www/html/index.html
   service httpd start
   chkconfig httpd on
2.)配置IP地址,別忘了配置網關爲172.16.0.1
測試:
1.)使用client在瀏覽器上輸入"http://192.168.0.28",打開網頁不斷刷新網頁
2.)在Director主機上輸入命令`watch -n 1 "ipvsadm -L -n"`進行監控ide

 

                                           搭建一個LVS-DR類型的LVS
在搭建LVS-DR類型的LVS以前首先要準備4個虛擬機:Director、realserver一、realserver二、client。其中全部主機只須要一塊網卡;Director的IP爲192.168.0.27及VIP爲192.168.0.28,realserver1的IP分別爲192.168.0.1,realserver2的IP爲192.168.0.2,client的IP爲192.168.0.29
Director的配置:
1.)安裝ipvsadm
   yum install ipvsadm
2.)配置防火牆
   service iptables start
   iptables -F
   service iptables save
3.)設置eth0設備別名eth0:1的IP爲VIP
   ifconfig eth0:1 192.168.0.28 broadcast 192.168.0.28 netmask 255.255.255.255
   route add -host 192.168.0.28 dev eth0:1
4.)配置ipvsadm:
   ipvsadm -A -t 192.168.0.28:80 -s wrr
   ipvsadm -a -t 192.168.0.28:80 -r 192.168.0.1 -w 5 -g
   ipvsadm -a -t 192.168.0.28:80 -r 192.168.0.2 -w 50 -g工具

realserver1的配置:
1.)重啓lo迴環網卡
   ifdown lo
   ifup lo
2.)修改arp_ignore和arp_announce的限制級別
   echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
   echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
   echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
   echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
3.)在迴環網卡上建立別名爲VIP
   ifconfig lo:0 192.168.0.28 broadcast 192.168.0.28 netmask 255.255.255.255 up
   route add -host 192.168.0.28 dev lo:0

realserver2的配置:同realserver1的配置
測試:
1.)使用client在瀏覽器上輸入"http://192.168.0.28",打開網頁不斷刷新網頁 2.)在Director主機上輸入命令`watch -n 1 "ipvsadm -L -n"`進行監控

相關文章
相關標籤/搜索