行業內接入網絡去堆疊已經逐步成爲主流方向,在大型互聯網公司也已經批量部署。但因爲京東集團不一樣的業務需求及歷史緣由,沒有條件徹底複製目前主流的ARP轉主機路由方式的去堆疊方案,這促使咱們設計一種儘量知足各種業務需求的方案。服務器
近幾年來雲市場迅速發展,愈來愈多的用戶把關鍵應用甚至所有應用部署到公有云上。雲服務商在產品收入快速增加同時,也深入體會到產品的高可用性對用戶發展和用戶留存的重要性。面向用戶的產品SLA的實現效果取決於其依賴的各個環節,而基礎網絡是全部產品須要依賴的一個重要環節,所以,提高網絡高可用SLA對總體提高產品總體SLA有着重要促進做用。今天咱們要談的異構去堆疊就是京東雲在提升網絡高可用SLA方面的新技術研究。用戶自有網絡其實也面臨一樣的問題,有提升網絡可靠性需求的用戶能夠考慮在自有網絡中使用相似方案。網絡
首先,讓咱們先來看一下爲了實現網絡高可用,當下的四種服務器鏈接主流方案:運維
由上圖能夠看出,雙網卡/交換機堆疊和雙網卡/去交換機堆疊提供了更好的高可用保證。測試
01 堆疊方案設計
優點代理
服務器雙網卡捆綁,無需特別改造blog
交換機控制面統一,支持服務器BGP路由方式接入進程
劣勢路由
多設備統一控制面,可靠性低部署
升級困難
橫向鏈接浪費端口
02 去堆疊方案
常見的去堆疊方案有如下兩種:
優點
交換機徹底獨立
支持異構
路由方式接入的服務器無需特別改造
劣勢
2層方式接入的服務器須要進行改造
服務器除網卡IP外需配置單獨業務IP
服務器多IP增長業務方運維複雜度
靜態路由方式不適合VM或Docker漂移
動態路由方式要求所有服務器運行路由協議
2.去堆疊方案-ARP轉主機路由方式
優點
交換機徹底獨立
服務器網卡捆綁方式不變,便於運維
服務器網卡捆綁方式不變,便於運維
劣勢
一組交換機要求同廠商,不支持異構
須要修改服務器Linux內核ARP處理部分
不支持服務器BGP路由方式接入
經過以上對比,能夠發現堆疊與去堆疊方式其實均可以實現網絡的高可用,但各有利弊。針對這樣的狀況,京東雲提出了一種理想的去堆疊方式,能夠知足下圖中的全部需求。
01 實現方法
交換機側
IP配置/24掩碼,兩臺交換機可配置相同IP或者不一樣IP;
啓用ARP代理及轉主機路由功能;
配置ARP超時時間爲5s以便在服務器不響應ARP時快速撤回主機路由。
服務器側
服務器雙網卡配置相同IP地址(掩碼/32);
採用onlink方式配置目的爲交換機IP的靜態路由指向對應網卡;
採用onlink方式配置缺省路由同時指向兩塊網卡;
須要運行Ifplugd進程監控物理鏈接,物理鏈接發生UP/DOWN時執行相應ARP Ping和路由修改操做。
02 冗餘測試
從上圖中的測試拓撲和結果中能夠看出,不管是軟件操做上的禁用仍是硬件拔出,在設定的收斂時間內,服務器的網絡一直保持高可用。
03 異構去堆疊方案小結
注意事項
綜上所述,異構去堆疊有助於實現苛刻的網絡SLA和極致的用戶體驗。京東雲在設計去堆疊方案時首先考慮了異構,一方面由於單一廠商對網絡高可用SLA仍是一個重要風險點,另外一方面異構方式能夠促進京東正在進行的自研交換機實現快速部署。衆所周知,自研交換機在各大互聯網公司都是重點項目,但軟件和硬件的穩定性一直是批量部署的重大障礙。而異構去堆疊利用自研和商用交換機1+1的方式能夠大大下降自研交換機穩定性的影響。