行業內接入網絡去堆疊已經逐步成爲主流方向,在大型互聯網公司也已經批量部署。但由於京東集團不同的業務需求及歷史原因,沒有條件完全複製目前主流的ARP轉主機路由方式的去堆疊方案,這促使我們設計一種儘可能滿足各類業務需求的方案。
近幾年來雲市場迅速發展,越來越多的用戶把關鍵應用甚至全部應用部署到公有云上。雲服務商在產品收入快速增長同時,也深刻體會到產品的高可用性對用戶發展和用戶留存的重要性。面向用戶的產品SLA的實現效果取決於其依賴的各個環節,而基礎網絡是所有產品需要依賴的一個重要環節,因此,提升網絡高可用SLA對整體提升產品整體SLA有着重要促進作用。今天我們要談的異構去堆疊就是京東雲在提高網絡高可用SLA方面的新技術研究。用戶自有網絡其實也面臨同樣的問題,有提高網絡可靠性需求的用戶可以考慮在自有網絡中使用類似方案。
網絡高可用通用解決方案
首先,讓我們先來看一下爲了實現網絡高可用,當下的四種服務器連接主流方案:
由上圖可以看出,雙網卡/交換機堆疊和雙網卡/去交換機堆疊提供了更好的高可用保證。
通用堆疊方式 V.S 通用去堆疊方式
01 堆疊方案
優勢
- 服務器雙網卡捆綁,無需特別改造
- 交換機控制面統一,支持服務器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 異構去堆疊方案小結
- 異構去堆疊方案優勢
- 交換機完全獨立
- 異構避免單一廠商風險
- 異構推動自研交換機快速上線
- 服務器側支持2層方式或BGP路由方式
- 不修改Linux內核
注意事項
- 需要內核版本支持L4 HASH方式ECMP(Centos 7.4以上)
- 需要運行Ifplugd進程監控物理連接
總結
綜上所述,異構去堆疊有助於實現苛刻的網絡SLA和極致的用戶體驗。京東雲在設計去堆疊方案時首先考慮了異構,一方面因爲單一廠商對網絡高可用SLA還是一個重要風險點,另一方面異構方式可以促進京東正在進行的自研交換機實現快速部署。衆所周知,自研交換機在各大互聯網公司都是重點項目,但軟件和硬件的穩定性一直是批量部署的重大障礙。而異構去堆疊利用自研和商用交換機1+1的方式可以大大降低自研交換機穩定性的影響。
·END·