1. 程式人生 > >效能學習隨筆(1)--負載均衡之f5負載均衡

效能學習隨筆(1)--負載均衡之f5負載均衡

負載均衡設計涉及軟體負載和硬體負載,下文轉自CSDN中一篇文章涉及f5硬負載知識

----轉載:https://blog.csdn.net/tvk872/article/details/80634898

網路負載均衡(load balance),就是將負載(工作任務)進行平衡、分攤到多個操作單元上進行執行,例如web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。實際上就是,負載均衡會對外部展現一個虛擬的伺服器地址,當用戶試圖連線時,它會將連線通過雙向網路地址轉換(NAT)轉到最適合的真實伺服器上,以完成使用者的請求。本文對F5負載均衡的效能進行了全面的介紹,包括鏈路和冗餘,防火牆,伺服器,系統管理等方面的問題。

 

關於F5負載均衡你認識多少?_負載均衡_伺服器_網路管理_課課家
  配置F5交換機的問題在於,與平時所學的交換機、路由器思路完全不同,拿到裝置後,完全不知如何下手。
  網路拓撲圖如下:

配置F5交換機的問題在於,與平時所學的交換機、路由器思路完全不同,拿到裝置後,完全不知如何下手。網路拓撲圖如下:
  兩臺web伺服器對外提供服務,Ip地址為:192.168.192.10-20/24,外網地址192.168.27.100的80埠進行負載均衡的訪問。
  F5配置最簡單負載均衡,需要配置的引數有Node(節點)、Pool(資源池)、和Virtual Server(虛擬伺服器),它們的關係式,先配置Node,然後配置VS。Node是最基本的定義,如每個伺服器就是一個Node,負載均衡Pool是一組Node接收和處理流量的一組裝置,如web伺服器叢集。BIGIP系統將客戶機流量請求傳送到Pool成員中的任一伺服器上(Node),然後將Pool與BIGIP系統中的Virtual server相關聯,最後,BIGIP系統將進入Virtual Server中流量傳輸到Pool成員,Pool再傳達給Node。
  F5負載均衡功能1.多鏈路的負載均衡和冗餘
  與網際網路絡相關的關鍵業務都需要安排和配置多條ISP接入鏈路以保證網路服務的質量,消除單點故障,減少停機時間?多條ISP接入的方案並不是簡單的多條不同的廣域網路的路由問題,因為不同的ISP有不同自治域,所以必須考慮到兩種情況下如何實現多條鏈路的負載均衡:內部的應用系統和網路工作站在訪問網際網路絡的服務和網站時如何能夠在多條不同的鏈路中動態分配和負載均衡,這也被稱為OUTBOUND流量的負載均衡?網際網路絡的外部使用者如何在外部訪問內部的網站和應用系統時也能夠動態的在多條鏈路上平衡分配,並在一條鏈路中斷的時候能夠智慧地自動切換到另外一條鏈路到達伺服器和應用系統,這也被稱作為INBOUND流量的負載均衡?
  F5 的BIG-IP LC可以智慧的解決以上兩個問題:對於OUTBOUND流量,BIG-IP LC接收到流量以後,可以智慧的將OUTBOUND流量分配到不同的INTERNET介面,並做源地址的NAT,可以指定某一合法IP地址進行源地址的 NAT,也可以用BIG-IP LC的介面地址自動對映,保證資料包返回時能夠正確接收?對於INBOUND流量,BIG-IP LC分別繫結兩個ISP 服務商的公網地址,解析來自兩個ISP服務商的DNS解析請求?BIG-IP LC不僅可以根據伺服器的健康狀況和響應速度迴應LDNS相應的IP地址,還可以通過兩條鏈路分別與LDNS建立連線,根據RTT時間判斷鏈路的好壞,並且綜合以上兩個引數迴應LDNS相應的IP地址?
  F5負載均衡功能2.防火牆負載均衡
  考慮到絕大多數的防火牆只能達到線速的30%吞吐能力,故要使系統達到設計要求的線速處理能力,必須新增多臺防火牆,以滿足系統要求?然而,防火牆必須要求資料同進同出,否則連線將被拒絕?如何解決防火牆的負載均衡問題,是關係到整個系統的穩定性的關鍵問題?F5的防火牆負載均衡方案,能夠為使用者提供異構防火牆的負載均衡與故障自動排除能力?典型的提高防火牆處理能力的方法是採用“防火牆三明治"的方法,以實現透明裝置的持續性?這可滿足某些要求客戶為成功安全完成交易必須通過同一防火牆的應用程式的要求,也能夠維護原來的網路安全隔離的要求?
  F5負載均衡功能3.伺服器負載均衡
  對於所有的對外提供服務的伺服器,均可以在BIG-IP上配置Virtual Server實現負載均衡,同時BIG-IP可持續檢查伺服器的健康狀態,一旦發現故障伺服器,則將其從負載均衡組中摘除?BIG-IP利用虛擬IP地址(VIP由IP地址和TCP/UDP應用的埠組成,它是一個地址)來為使用者的一個或多個目標伺服器(稱為節點:目標伺服器的IP地址和TCP/UDP應用的埠組成,它可以是internet的私網地址)提供服務?因此,它能夠為大量的基於TCP/IP的網路應用提供伺服器負載均衡服務?根據服務型別不同分別定義伺服器群組,可以根據不同服務埠將流量導向到相應的伺服器?BIG-IP連續地對目標伺服器進行L4到L7合理性檢查,當用戶通過VIP請求目標伺服器服務時,BIG-IP根椐目標伺服器之間效能和網路健康情況,選擇效能最佳的伺服器響應使用者的請求?如果能夠充分利用所有的伺服器資源,將所有流量均衡的分配到各個伺服器,我們就可以有效地避免“不平衡"現象的發生?利用UIE+iRules可以將TCP/UDP資料包開啟,並

搜尋其中的特徵資料,之後根據搜尋到的特徵資料作相應的規則處理?因此可以根據使用者訪問內容的不同將流量導向到相應的伺服器,例如:根據使用者訪問請求的URL將流量導向到相應的伺服器?
  F5負載均衡功能4.系統高可用性
  系統高可用性主要可以從以下幾個方面考慮:
  4.1.裝置自身的高可用性:F5 BIG-IP專門優化的體系結構和卓越的處理能力保證99.999%的正常執行時間,在雙機冗餘模式下工作時可以實現毫秒級切換,保證系統穩定執行,另外還有冗餘電源模組可選?在採用雙機備份方式時,備機切換時間最快會在200ms之內進行切換?BIG-IP 產品是業界唯一的可以達到毫秒級切換的產品, 而且設計極為合理,所有會話通過Active 的BIG-IP 的同時,會把會話資訊通過同步資料線同步到Backup的BIG-IP,保證在Backup BIG-IP內也有所有的使用者訪問會話資訊;另外每臺裝置中的watchdog晶片通過心跳線監控對方裝置的電頻,當Active BIG-IP故障時,watchdog會首先發現,並通知Backup BIG-IP接管Shared IP,VIP等,完成切換過程,因為Backup BIG-IP中有事先同步好的會話資訊,所以可以保證訪問的暢通無阻?
  4.2.鏈路冗餘:BIG-IP可以檢測每條鏈路的執行狀態和可用性,做到鏈路和ISP故障的實時檢測?一旦出現故障,流量將被透明動態的引導至其它可用鏈路?通過監控和管理出入資料中心的雙向流量,內部和外部使用者均可保持網路的全時連線?
  4.3.伺服器冗餘,多臺伺服器同時提供服務,當某一臺伺服器故障不能提供服務時,使用者的訪問不會中斷?BIG-IP可以在OSI七層模型中的不同層面上對伺服器進行健康檢查,實時監測伺服器健康狀況,如果某臺伺服器出現故障,BIG-IP確定它無法提供服務後,就會將其在服務佇列中清除,保證使用者正常的訪問應用,確保迴應內容的正確性?
  F5負載均衡功能5.高度的安全性
  BIG-IP採用防火牆的設計原理,是預設拒絕裝置,它可以為任何站點增加額外的安全保護,防禦普通網路攻擊?可以通過支援命令列的SSH或支援瀏覽器管理的SSL方便?安全的進行遠端管理,提高裝置自身的安全性;能夠拆除空閒連線防止拒絕服務攻擊;能夠執行源路由跟蹤防止IP欺騙;拒絕沒有ACK緩衝確認的SYN防止SYN攻擊;拒絕teartop和land攻擊;保護自己和伺服器免受ICMP攻擊;不執行SMTP?FTP?TELNET或其它易受攻擊的後臺程式?
  BIG-IP的Dynamic Reaping特性可以高效刪除各類網路DoS攻擊中的空閒連線,這可以保護BIG-IP不會因流量過多而癱瘓?BIG-IP可以隨著攻擊量的增加而加快連線切斷速率,從而提供一種具有極強適應能力?能夠防禦最大攻擊量的解決方案?BIG-IP的Delay Binding技術可以為部署在BIG-IP後面的伺服器提供全面地SYN Flood保護?此時,BIG-IP裝置作為安全代理來有效保護整個網路?BIG-IP可以和其它安全裝置配合,構建動態安全防禦體系?BIG-IP可以根據使用者單位時間內的連線數生成控制訪問列表,將該列表載入到其它安全裝置上,有效控制攻擊流量?F5負載均衡功能6.SSL加速,在每臺BIG-IP上,都具有SSL硬體加速晶片,並且自帶100個TPS的License,使用者可以不通過單獨付費,就可以擁有100個TPS的SSL 加速功能,節約了使用者的投資?在將來系統擴充套件時,可以簡單的通過License升級的方式,獲得更高的SSL加速效能?
  F5負載均衡功能7.系統管理
  BIG-IP提供HTTPS?SSH?Telnet?SNMP等多種管理方式,使用者客戶端只需作業系統自帶的瀏覽器軟體即可,不需安裝其它軟體?可以通過支援命令列的SSH或支援瀏覽器管理的SSL方便?安全的進行遠端管理?直觀易用的Web圖形使用者介面大服務降低了多歸屬基礎設施的實施成本和日常維護費用?BIG-IP包含詳盡的實時報告和歷史紀錄報告,可供評測站點流量?相關ISP效能和預計頻寬計費週期?管理員可以通過全面地報告功能充分掌握頻寬資源的利用狀況?另外,通過F5 的i-Control 
開發
包,目前國內已有基於i-Control開發的網管軟體x-control, 可以定製針對系統服務特點的監控系統,比如服務的流量情況?各種服務連線數?訪問情況?節點的健康狀況等等,進行視覺化顯示?告警方式可以提供syslog?snmp trap?mail等方式?
  F5負載均衡功能8.其它
  記憶體擴充能力:F5 BIG-IP 1000以上裝置單機最大可擴充到2G記憶體,此時可支援400萬併發回話?升級能力:F5 所有裝置均可通過軟體方式升級,在服務有效期內,升級軟體包由F5公司提供?F5 NETWORKS已經發布其系統的最新版本BIG-IP V9.0,主要有以下特性:虛擬 IPV4 / IPV6 應用?加速Web應用高達3倍?減少66%甚至更多的基礎架構成本?確保高優先順序應用的效能?確保更高級別的可用性?大幅提高網路和應用安全性?強大的效能,簡單的管理方式?無以匹敵的自適應能力和延展能力和突破的效能表現力?其強大的HTTP壓縮功能可以將使用者下載時間縮短50%,節省80%的頻寬?IP地址過濾和頻寬控制:BIG-IP可以根據訪問控制列表對資料包進行過濾,並且針對某一關鍵應用進行頻寬控制,確保關鍵應用的穩定執行?配置管理及系統報告:F5 BIG-IP提供WEB 介面配置方式和命令列方式進行配置管理,並在其中提供了豐富的系統報告,更可通過i-Control自行開發複雜的配置及報告生成
  對我們管理系統應用環境來說,由於負載均衡器本身不需要對資料進行處理,效能瓶頸更多的是在於後臺伺服器,通常採用軟負載均衡器已非常夠用且其商業友好的軟體原始碼授權使得我們可以非常靈活的設計,無逢的和我們管理系統平臺相結合。
  Virtual Server重要引數
  F5的核心就是Virtual Server。
  1、VS Type
  在配置VS時,VS的Type有Performance L4、Standard VS、Forwarding IP 和 Fast Http。一般企業中常見的是前三種,考慮到儘量減少F5負載均衡引入對應用系統的影響,在可能的情況下,建議優先選用Performance L4型別的Virtual Server。在一些必須使用Standard的情況下,必然需要在F5裝置上啟用7層功能,包括Cookie會話保持、Session ID會話保持、Header會話保持、基於交易的長連線拆分等應用場景。另外,在應用系統需要使用F5實現Syn攻擊防護時,可以採用 Standard Virtual Server。在明確後臺應用基於HTTP協議時,建議在Standard的基礎上關聯BIGIP內建的標準HTTP Profile。對於非HTTP協議的應用,需要在VS上關聯的其他Profile或者iRules根據實際的業務需求進行確定。

在明確後臺應用基於HTTP協議時,建議在Standard的基礎上關聯BIGIP內建的標準HTTP Profile。對於非HTTP協議的應用,需要在VS上關聯的其他Profile或者iRules根據實際的業務需求進行確定。
  下面對每個VS的型別進行深入的說明:
  第一種: Performance L4 模式(4層資料的轉發)
  Performance L4模式如圖2所示,其中TMM只是負責客戶端連線的分配和轉發,不改變TCP連線中的任何引數,即客戶端連線與伺服器攔截是1:1的關係。一般企業中常是這種模式,因為轉發速率快。但在一些7層資料包的情況下,如HTTP,建議使用Standard VS模式。
  第二種 Standard VS模式
  在這種模式下,客戶端與伺服器端的TCP連線完全獨立,同時F5預設情況下以客戶端源IP和後臺建立連線,在開啟SNAT的情況下用SNAT地址和後臺建立連線。Standard VS的埠永遠對外開放,無論後臺是否有伺服器在工作。也就是說,如果VS開放的埠是80,在Node A和Node B都down的情況下,虛IP的80埠還是可以telnet通的,只不過網頁訪問不了了。
  第三種: Forwarding IP
  一般用於內外網連線,沒有Pool Member,轉發完全取決於本地路由。預設情況下,F5沒有路由功能,需要建立一個全0的VS去開啟F5的路由功能,其中,如果想控制只有內網可以訪問外網,而外網不能訪問內網,可以通過調整“VLAN and Tunnel Traffic”引數來實現。
  2. VS Profile
  VS Profile 是依賴於VS的存在,是對於VS的流量進行格式化處理。如果VS上配置了TCP Profile,那麼對於UDP的連線,F5是不會接受的。
  tcp引數中Idel Timeout值(多長時間連線裡面沒有資料流量時就刪除連線表)必須要與伺服器相配合,否則會出現錯誤。如果F5上此值為150s,而IIs伺服器為300s,就會產生大量錯誤。
  3、 VS裡面的Address Translation 和 Port Translation ,預設情況下都是 enabled。
  Address Translation的含義是如果外面訪問的主機和VS IP不一樣,就需要開啟此引數,比如VS IP地址是192.168.27.100,真實機器為192.168.27.10,那麼需要開啟Address Translation,而企業應用中,這引數一般是開啟的,除非特殊的上面介紹的Fowarding IP模式不需要開啟。
  Port Translation 引數的意思是VS地址是192.168.27.100的8080埠對應真實地址的80埠,那麼需要開啟Port Translation
  4、SNAT Pool ???
  內網需要訪問公網進行NAT轉換。當配置SNAT AutoMap的時候,表示請求從哪個VLAN發出去,則SNAT的源地址為VLAN上的SelfIp,比如外網使用者(192.168.27.1)訪問內網伺服器(192.168.192.10),在開啟SNAT AutoMap的情況下,訪問的源IP將轉變為F5的內網SelfIP(192.168.192.2)去訪問。當一個vlan上有多個SelfIP存在的時候,SNAT的源地址是在多個SelfIP之間輪詢。
  5、會話保持
  在大多數電子商務的應用系統或者需要進行使用者身份認證的線上系統中,一個客戶與伺服器經常經過多次的互動過程才能完成一筆交易或者是一個請求的完成。由於這幾次互動過程是密切相關的,伺服器在進行這些互動過程的某一個互動步驟時,往往需要了解上一次互動過程的處理結果,伺服器進行下一步操作時需要,就要求所有這些相關的互動過程都由一臺伺服器完成,而不能被負載均衡器分散到不同的伺服器上。
  經驗總結:
  1、拿到F5首先就是要啟用,通過嚮導可以很簡單的進行啟用,但是記住一定要能上網,最好在上架前完成啟用工作。
  2、開啟瀏覽器使用https://192.168.1.245 裝置管理ip可以登入到F5裝置。預設使用者名稱和密碼均為admin。
  3、建立相應的VLAN,並將介面加入相應的VLAN,Network -> VLANS 。
  Name : 設定這個VLAN的名字;
  Tag: 保留為空;
  Interface:定義Avalilable 中顯示的埠有選擇性的劃分到這個vlan中,指定埠後,單擊<< 選人 Untagged 欄即可。
  點選 Finished 完成。
  4、在劃分完VLAN後,即可對每個VLAN進行IP地址的定義,方法如下:點選左側導航條中的 Networks -> Self IPS
  5、配置路由,點選左側導航條中的 Networks -> Routes .
  Type :定義配置的是預設閘道器還是靜態路由。
  Destination: 定義目標網段。
  Netmask : 定義目標網段的掩碼;
  Resource : 定義閘道器地址。
  點選 Finished 完成。
  6、Pool 配置:點選左側導航條中的Local Traffic -> Virtual Servers -> Pools;
  Name 定義建立的Pool的名字。
  Health Monitors 定義該Pool使用的健康檢查機制,此處為TCP。
  Load Balacing Method定義該Pool使用哪種負載均衡演算法 --我們選用 observed-member(觀察法)。
  New Members 定義該pool下真實的伺服器的IP和Port。
  點選 Finished 完成。
  7、Virtual Server 配置,Local Traffic -> Virtual Servers,這裡面的引數可以參見之前介紹的進行填寫,並將管理相應的Pool。並配置相應的F5輪詢方式,常用的是輪詢(RoundRobin)。
  8、配置Monitor 的作用是檢查伺服器的健康狀態,然後關聯的相應的Pool,Local Traffic -> Monitors。
  9、配置Redundant,這在前面已介紹。