效能超過LVS幾倍的開源負載均衡器DPVS
DPVS架構圖
介紹
DPVS是基於DPDK的高效能第4層負載均衡器。基於阿里巴巴/ LVS修改而來,出於藍而勝於藍。
DPDK全稱為 “DPDK-LVS”.
為了達到高效能,使用了多種不同技術
- 核心旁路(使用者空間實現)
- 無CPU,無金鑰資料(無鎖)
- RX轉向和CPU繫結(避免上下文切換)
- 批處理TX / RX
- Zero複製(避免資料包複製和系統呼叫)。
- 輪詢替換中斷。
- 高效能ICP的無鎖資訊。
- 其他技術由DPDK加強
DPVS的主要特點包括:
L4負載均衡器,包括FNAT,DR模式等
不同的排程演算法,如RR、WLC、WRR等
使用者空間Lite IP堆疊(IPv4,路由,ARP,ICMP …)。
SNAT模式,用於從內部網路訪問Internet。
支援KNI,VLAN,不同IDC環境的繫結。
安全方面,支援TCP syn-proxy,Conn-Limit,黑名單。
QoS:流量控制(持續)
DPVS功能模組如下圖所示:
快速開始
測試環境
可以快速啟動用下面的環境進行測試。
Linux發行版:CentOS 7.2
核心:3.10.0-327.el7.x86_64
CPU:Intel(R)Xeon(R)CPU E5-2650 v3 @ 2.30GHz
NIC:Intel X540
記憶體:64G和NUMA系統。
GCC:gcc版本4.8.5 20150623(紅帽4.8.5-4)
如果DPDK可以正常工作,其他環境也可以,請檢視dpdk.org瞭解更多資訊。
安裝過程略,可以到官網檢視詳情。
測試 Full-NAT 負載均衡
測試拓撲圖如下所示:
在DPVS上設定VIP和本地IP(完全NAT模式所需的LIP)。 我們把命令放到setup.sh中。 你可以通過./ipvsadm -ln,./dpip addr show來檢查一下。
從客戶端訪問VIP,看起來正常!
效能測試
License
請檢視License檔案,https://github.com/iqiyi/dpvs/blob/master/LICENSE.md
聯絡我們
DPVS由iQiYi QLB團隊自2016年四月開發,現在是開源的。 它已經在iQiYi IDC中廣泛應用於L4負載平衡器和SNAT叢集,我們計劃用DPVS替換所有的LVS叢集。 我們很高興有更多的人可以參與這個專案。 歡迎嘗試,報告問題並提交請求請通過Github或電子郵件