隨著數(shù)據(jù)中心架構(gòu)的發(fā)展和Vxlan、RDMA等新技術(shù)的應(yīng)用,傳統(tǒng)的SNMP等運(yùn)維手段已經(jīng)無(wú)法滿足當(dāng)前IDC運(yùn)維需求。更大規(guī)模、更復(fù)雜的云數(shù)據(jù)中心和高性能計(jì)算集群都對(duì)運(yùn)維提出了更高的要求,如何找到更加精細(xì)化、智能化的運(yùn)維手段,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)更高效、及時(shí)地監(jiān)控和運(yùn)維,成為數(shù)據(jù)中心網(wǎng)絡(luò)運(yùn)維面臨的一大挑戰(zhàn)。
在前幾期的《技術(shù)盛宴》欄目中,我們介紹了基于交換機(jī)硬件芯片的INT(In-band Network Telemetry,帶內(nèi)網(wǎng)絡(luò)遙測(cè)技術(shù))技術(shù)實(shí)現(xiàn)運(yùn)維可視化的方案(點(diǎn)擊查看文章),本文將在前文基礎(chǔ)上詳細(xì)介紹INT技術(shù)具體如何實(shí)現(xiàn)運(yùn)維可視化。
INT技術(shù)背景及可視化方案
Telemetry是一項(xiàng)遠(yuǎn)程的從物理設(shè)備或虛擬設(shè)備上高速采集數(shù)據(jù)的技術(shù)。設(shè)備通過(guò)推模式(Push Mode)主動(dòng)向采集器推送設(shè)備數(shù)據(jù)信息,提供更實(shí)時(shí)更高效的數(shù)據(jù)采集能力。
▲ Telemetry模型
Telemetry技術(shù)采取推送方式,由設(shè)備主動(dòng)向后臺(tái)監(jiān)控服務(wù)器推送自身信息,從而避免了查詢模式下查詢請(qǐng)求造成的在網(wǎng)絡(luò)中的額外延時(shí),以及大量查詢請(qǐng)求給網(wǎng)絡(luò)和設(shè)備帶來(lái)的壓力。與傳統(tǒng)的SNMP、CLI、SYSLOG等方式相比,Telemetry可以實(shí)現(xiàn)亞秒級(jí)監(jiān)控精度。理論上,通過(guò)Telemetry技術(shù)可以獲取設(shè)備所有信息。
INT技術(shù)是由Barefoot、Arista、Dell、Intel和VMware在Telemetry的基礎(chǔ)上共同提出的一種新的Telemetry模型。INT技術(shù)是通過(guò)在數(shù)據(jù)層面收集和報(bào)告網(wǎng)絡(luò)的狀態(tài)來(lái)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)狀態(tài)的監(jiān)控,這個(gè)過(guò)程不需要控制層面的參與。
INT架構(gòu)模型中的術(shù)語(yǔ):
●INT header:任何包含INT信息的packet header;
●INT Source:在報(bào)文中嵌入INT header的設(shè)備;
●INT Instruction:收集數(shù)據(jù)信息的定義;
●INT Metadata:監(jiān)控對(duì)象信息,即在每臺(tái)設(shè)備上收集的數(shù)據(jù)信息;
●INT Transit Hop:加入本設(shè)備節(jié)點(diǎn)INT Metadata信息的設(shè)備;
●INT Sink:拆除INT header報(bào)文頭,并收集上送INT Metadata信息的設(shè)備。
基于INT實(shí)現(xiàn)運(yùn)維可視化的具體流程:
1、業(yè)務(wù)報(bào)文進(jìn)入第一臺(tái)交換機(jī)(INT Source),通過(guò)交換機(jī)上設(shè)置的采樣方式采樣并鏡像出該業(yè)務(wù)流報(bào)文,INT Source在報(bào)文中封裝一個(gè)INT header,同時(shí)定義INT Instruction,并在INT header后添加INT Metadata,將需要收集的交換機(jī)信息填入INT Metadata 中。
2、報(bào)文轉(zhuǎn)發(fā)至下一臺(tái)路徑上的交換機(jī)(INT Transit Hop),INT Transit Hop根據(jù)上一臺(tái)設(shè)備的INT Metadata內(nèi)容繼續(xù)添加本機(jī)的INT Metadata 信息。
3、經(jīng)過(guò)所有INT Transit Hop,報(bào)文轉(zhuǎn)發(fā)至最后一臺(tái)交換機(jī)(INT Sink),INT Sink將INT Header拆除,并將其中的路徑信息通過(guò)gRPC報(bào)文發(fā)送給后端的監(jiān)控服務(wù)器進(jìn)行解析和呈現(xiàn)。
▲ 可視化網(wǎng)絡(luò)
通過(guò)上圖我們可以清楚地了解到INT的具體流程,簡(jiǎn)單地說(shuō)INT就是在報(bào)文轉(zhuǎn)發(fā)路徑上的每臺(tái)設(shè)備上收集Metadata數(shù)據(jù),通過(guò)對(duì)Metadata數(shù)據(jù)的分析來(lái)準(zhǔn)確監(jiān)控網(wǎng)絡(luò)狀態(tài)。那么Metadata中有哪些數(shù)據(jù)可以提供給我們來(lái)監(jiān)控網(wǎng)絡(luò)呢?
INT Metadata報(bào)文信息詳解
INT Metadata報(bào)文格式:
從上圖中可以看到INT Metadata報(bào)文包含8個(gè)字節(jié)的報(bào)文頭和多個(gè)Metadata數(shù)據(jù),每個(gè)Metadata數(shù)據(jù),即每一跳設(shè)備收集的數(shù)據(jù)信息。
INT Metadata報(bào)文頭中包含幾個(gè)關(guān)鍵的字段:
●Ver(2bit):版本號(hào);
●Flags(9bit):包括復(fù)制允許、超過(guò)最大跳數(shù)置位等以及5bit的Reserved預(yù)留;
●Instruction Count(5bit):Metadata中收集數(shù)據(jù)項(xiàng)的數(shù)量;
●Max Hop Count(8bit):最大跳數(shù),即報(bào)文中可封裝的Metadata數(shù)據(jù)的最大數(shù)量;
●Total Hop Count(8bit):當(dāng)前總跳數(shù),即當(dāng)前報(bào)文中封裝的Metadata數(shù)據(jù)的數(shù)量;
●Instruction Bitmap(8bit):Metadata數(shù)據(jù)的具體內(nèi)容。
Instruction Bitmap 字段8個(gè)bit分別對(duì)應(yīng)8個(gè)數(shù)據(jù)選項(xiàng),每個(gè)bit的置位代表該項(xiàng)數(shù)據(jù)需要收集到Metadata中。
●bit0:交換機(jī)ID
●bit1:入端口號(hào)
●bit2:轉(zhuǎn)發(fā)時(shí)間
●bit3:隊(duì)列占用
●bit4:入時(shí)間戳
●bit5:出端口號(hào)
●bit6:隊(duì)列擁塞狀態(tài)
●bit7:出端口鏈路利用率
舉個(gè)例子,上圖是一個(gè)INT Metadata報(bào)文頭,我們看下其中的具體信息:
●Instruction Count字段數(shù)值為2,表示Metadata中共收集兩項(xiàng)數(shù)據(jù);
●Max Hop Count字段數(shù)值為16,表示最大支持16跳,可封裝16個(gè)Metadata數(shù)據(jù);
●Total Hop Count字段數(shù)值為3,表示當(dāng)前為第3跳,報(bào)文已封裝了3個(gè)Metadata數(shù)據(jù);
●Instruction Bitmap字段,2個(gè)bit置位,表示Metadata數(shù)據(jù)中包含兩個(gè)數(shù)據(jù)項(xiàng),交換機(jī)ID(bit0)和隊(duì)列占用(bit3);
●Metadata數(shù)據(jù)部分即為每一跳交換機(jī)封裝的交換機(jī)ID以及隊(duì)列占用信息。
總結(jié)一下,INT技術(shù)可以基于交換機(jī)芯片提供的可視化能力,通過(guò)收集分析數(shù)據(jù)報(bào)文在交換機(jī)網(wǎng)絡(luò)中轉(zhuǎn)發(fā)的詳細(xì)信息,實(shí)現(xiàn)流量轉(zhuǎn)發(fā)的路徑可視化和延時(shí)可視化,為實(shí)現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)運(yùn)維可視化提供了新的解決方案。銳捷網(wǎng)絡(luò)新一代25G/100G數(shù)據(jù)中心網(wǎng)絡(luò)解決方案已全面支持INT功能,歡迎留言交流。
感謝您關(guān)注銳捷網(wǎng)絡(luò)《技術(shù)盛宴》專欄!現(xiàn)誠(chéng)邀您參與有獎(jiǎng)?wù){(diào)研,您寶貴的意見(jiàn)和建議將幫助我們?cè)诩夹g(shù)探索與分享上持續(xù)精進(jìn)。