服務熱線

0571-81389308
網站導航
站内公告:
新聞資(zī)訊
當前位置:首頁 > 新聞資(zī)訊>

互聯網技術詳解 | 數據中(zhōng)心網絡HASH技術演進

時間:2020/12/1

從國貿CBD,到“宇宙中(zhōng)心”五道口是絕大(dà)多數北(běi)京人都走過的路線,也是北(běi)京日常最堵的線路之一(yī)。同樣的事情還發生(shēng)再上海的中(zhōng)環路、深圳的深南(nán)大(dà)道等等一(yī)線城市交通之中(zhōng)。爲了解決城市熱點地區之間的交通問題,每個城市都會在熱點地區之間修建多條線路,以保證高峰期的交通不至于癱瘓。

其實,數據中(zhōng)心也面臨着相同的情況。尤其在北(běi)向流量彙集的網絡出口側,網絡擁堵也時常發生(shēng)。同樣的,爲解決這一(yī)問題,數據中(zhōng)心設計者們也會構建很多與北(běi)向出口相連的其他路徑。在專業中(zhōng),這種方式叫等價多路徑。

交通系統當中(zhōng),每個司機都會根據自己自身對道路狀況的預判或者導航軟件來選擇從A到B的不同路徑,并由此實現不同道路對車(chē)流的共同分(fēn)擔;但在數據中(zhōng)心當中(zhōng),數據封包或者數據流上并沒有一(yī)個會思考的“司機”,所以,如何在等價多路徑當中(zhōng)實現不同路徑的負載均衡就成了一(yī)個必須解決的問題。

而Hash——哈希散列正是爲了解決這一(yī)問題而生(shēng)。

Hash基本原理

爲了提升業務彈性擴容能力和可靠性,數據中(zhōng)心通常會采用CLOS架構的網絡結構。這種結構當中(zhōng)存在二層LACP等價路徑、三層ECMP等價路徑。

而Hash一(yī)般稱爲哈希散列,是通過交換機或路由器的芯片内置算法将一(yī)段任意的輸入(通常是一(yī)個非常大(dà)的集合)轉化成一(yī)個固定長度輸出(通常是一(yī)個小(xiǎo)的集合)。在網絡架構中(zhōng),這種方法可以用來解決多個等價路徑上的負載均衡問題,并由此提升數據中(zhōng)心内的資(zī)源利用率。

某款ASIC芯片的Hash流程簡示:

ASIC提取報文字段值以及轉發端口等信息,由Hash多項式計算出Hash值,再映射到等價路徑下(xià)一(yī)跳。

雖然總體(tǐ)原理相同,但不同的廠商(shāng)的不同設備均有着不同的Hash實現方法。下(xià)面我(wǒ)們就結合Hash的發展階段,以新華三交換機操作系統爲例,來爲大(dà)家逐一(yī)介紹Hash的五種實現方法,以及更高級的智能Hash。

Hash的進化與五種實現方法

Hash一(yī)直随着網絡應用的發展而進化,因此,Hash也在不同的階段出現了五種不同的實現方法。那麽下(xià)面就讓我(wǒ)們來逐一(yī)解析。

01、逐包 Hash與逐流Hash?

逐包Hash轉發,不考慮同一(yī)特征的流量轉發路徑的一(yī)緻性,把所有報文都逐個Hash、轉發,這樣能夠做到更均勻的負載分(fēn)擔。但是,在上下(xià)遊網絡組網結構不均衡、時延不均衡的環境中(zhōng),逐包Hash的數據包會經過不同路徑到達目的地,不同路徑的時延抖動差異較大(dà),會造成接收方的報文到達亂序,從而影響通信的效率。

而逐流Hash會把同一(yī)條流特征的流量(例如五元組:源IP地址、源端口、目的IP地址、目的端口、傳輸層協議類型),分(fēn)發到固定一(yī)條路徑,避免了亂序問題;如果設備Hash轉發的N條流的帶寬占比沒有失衡,則逐流Hash總體(tǐ)是平均的負載分(fēn)擔;但是在大(dà)象流和老鼠流的場景,大(dà)象流具有少量的流數量卻占用大(dà)量的帶寬,Hash不均衡。

02、内層Hash

對于GRE、VxLAN等封裝報文的Hash,封裝的外(wài)層字段的信息是固定的,例如SIP/DIP就是隧道的起始設備/終結設備的Loopback IP,不變化,不利于Hash;所以需要設備具有刺探到内層字段(封裝之前的原始報文)的能力,通過内層字段進行Hash,保證Hash的均衡性。

03、Hash極化

多組流量經過兩次或兩次以上的Hash,會出現後續轉發設備Hash極化、流量隻走一(yī)半鏈路的極化現象,這種現象往往出現在第一(yī)次Hash和第二次Hash的設備極爲類似(例如同一(yī)芯片型号、同樣的Hash算法)的情況下(xià)。

如下(xià)圖,第一(yī)次Hash時,A設備通過Hash值得mod 2動作把流量分(fēn)成了兩類:Hash值分(fēn)爲爲奇數、偶數。到了第二次Hash時,B設備處理的流量的Hash值全部都爲奇數,所以全部流量都走左側鏈路,留下(xià)右側鏈路空置。同樣,C設備也出現極化,把所有流量都Hash到了右側鏈路,留下(xià)左側鏈路空置。

對于Hash極化現象,通常的處理辦法是調整Algorithm算法ash因子,隻需微調便可避免第一(yī)次和第二次的Hash結果雷同。

在新華三交換機操作系統當中(zhōng),我(wǒ)們可以通過如下(xià)語句來顯示可用的Hash算法選項:

[H3C]ip load-sharing mode per-flow algorithm ?

INTEGER<0-13> Specify the algorithm type ID

新華三常用的Hash算法調整:

3: 16 bit crc16 using bisync polynomial

4: upper 8-bits of crc16 and 8-bit xor1

5: upper 8-bits of crc16 and 8-bit xor2

6: upper 8-bits of crc16 and 8-bit xor4

7: upper 8-bits of crc16 and 8-bit xor8

8: 16 bit XOR

9: 16 bit crc16 using ccitt polynomial

10: 16 LSB's of computed CRC32

11: 16 msb's of computed CRC32

04、對稱Hash

對于網絡設備,對稱Hash指的是:對于同一(yī)個業務的來回雙向流量,予以分(fēn)配同宿同源的轉發端口。

在某些場景下(xià),例如交換機旁挂兩台FW對流量進行安全防護,交換機根據五元組Hash分(fēn)發流量給兩台FW,在兩台FW各自爲自己負責的流量(占總流量的一(yī)半)建立了session;而返程流量到達交換機時将被再次Hash分(fēn)發,如若返程Hash分(fēn)發與去(qù)程Hash分(fēn)發不一(yī)緻(不對稱),則FW上會重複建立session,不僅浪費(fèi)了FW的資(zī)源,而且對流量的安全防護做得不夠準确。所以在該場景下(xià),需要啓用“對稱Hash”以保證雙向流量走相同的鏈路。

新華三對稱ash設置:

[H3C]ip load-sharing symmetric

05、Hash的彈性自适應能力

在某些場景例如LVS集群場景,可能存在128台服務器與交換機建立等價路由(通過OSPF/BGP協議),業務流量從交換機分(fēn)發到128台服務器,各台服務器維護了各自流量的session信息,需要穩定的Hash,避免Hash路徑頻(pín)繁變更導緻session頻(pín)繁切換服務器。

采用普通Hash算法時,當等價路徑的其中(zhōng)一(yī)條或者多條路徑失效時,會對所有流量進行重新Hash計算、流量分(fēn)發,會導緻LVS集群業務session全部重建,業務受影響極大(dà),效果見下(xià)圖。

采用彈性自适應Hash算法時,當等價路徑的其中(zhōng)一(yī)條或者多條路徑失效時,隻将失效路徑上的業務流量将被重新Hash分(fēn)發給剩餘可用路徑,而可用路徑上轉發的業務流量不做變更,以保持業務的連續性。

[H3C]ecmp mode enhanced

H3C等價路由增強模式:Enhanced模式下(xià),每個等價組具有128個下(xià)一(yī)跳,用實際的下(xià)一(yī)跳輪流填寫這128個寄存器字段,某個下(xià)一(yī)跳失效後,它的位置被其他下(xià)一(yī)跳輪流替代;效果見下(xià)圖,鏈路1失效後,它的位置由鏈路2/3/4輪流填補上。

面向未來的智能Hash

智能Hash實現的關鍵在于DLB(Dynamic load balance,動态負載均衡)。DLB突破傳統靜态Hash機理的限制,通過引入時間戳、實時負載度量(端口帶寬負載、隊列大(dà)小(xiǎo))因子,在時間、帶寬空間兩個維度優化了負載均衡效果,提供了動态、智能的Hash機制。

傳統靜态Hash的效果缺陷

靜态時間:靜态Hash分(fēn)配結果固定、終身不變,特定流走特定路徑,根據報文特征計算出Hash Value來決定轉發路徑成員(yuán)端口,後續不再動态變化,無論該特征的流量是否中(zhōng)斷、鏈路負載是否已經不均衡。

靜态帶寬空間:靜态Hash不關心轉發路徑的負載輕重程度,主要考慮“流量特征與轉發路徑”,當各個微觀流量帶寬差異較大(dà)、動态變化時,宏觀上則會體(tǐ)現出各轉發鏈路的負載輕重差異較大(dà)、負載不均衡狀況。典型的例子爲,在給大(dà)象流與老鼠流分(fēn)配Hash路徑時,同等對待,未度量巨大(dà)的帶寬差異,造成鏈路負載不均衡。

在應用流量類型繁多與動态變化的移動互聯網時代,動态智能Hash及時出現,彌補了這些缺陷。

H3C的動态智能Hash介紹

[H3C]ecmp mode eligible

具有一(yī)定特征的流量第一(yī)次進入設備轉發,則被認爲是新的流,設備爲之創建Flowset;同時爲之設置flowset-inactive-time老化計時器,取值範圍爲16~32000us。

設備在flowset-inactive-time周期内,計算出當前等價路由組中(zhōng)負載較輕的路徑,轉發該流量,在該周期内,具有相同特征的流量會使用相同的轉發路徑,并實時刷新flowset-inactive-time老化計時器,維持本Flowset爲有效狀态(會話(huà)保持)。

超過flowset-inactive-time老化時間周期,如若未有流量維持該Flowset有效,則該Flowset記錄被老化,即使後續再有該Flowset相同特征的流量到來,設備認爲是一(yī)個新的流,創建新的Flowset,重新到負載較輕的路徑。

負載均衡,一(yī)個講不完的故事

身處任何一(yī)個城市,交通都是一(yī)個任何數據中(zhōng)心或基礎設施的管理當中(zhōng),負載均衡都是一(yī)個必須解決的關鍵問題。而伴随數據中(zhōng)心負載類型的多樣化,負載均衡的難度和實現方式也會進入全新溫度。所以,隻要數據中(zhōng)心的算力和應用在變化,負載均衡的實現也會跟着演變。而在這個持續進化的領域當中(zhōng),Hash的實現同樣沒有終點。

作爲數據中(zhōng)心網絡産品技術領域的領航者,新華三在不斷的部署實踐當中(zhōng)始終關心應用的演變,更重視應用變遷背後所誕生(shēng)的網絡需求變化。

雖然本期Hash與負載均衡故事即将告一(yī)段落,但面對永無止境的網絡應用,本欄目還将繼續以最硬核的方式爲您解讀網絡,窺見未來。

Copyright © 2024杭州梵優網絡科技有限公司 版權所有  

地址:浙江省杭州市西湖區黃姑山路29号1116室 電(diàn)話(huà):0571-81389308 郵箱:zhangpanlong@fanyousc.com

服務熱線

0571-81389308

掃一(yī)掃,關注我(wǒ)們