天天看點

P4主席Changhoon Kim:要花費至少4年建立交換機?你可能需要參考P4的可程式設計性

由天地互連、下一代網際網路國家工程中心主辦的“2017全球sdnfv技術大會”

(2017.chinasdn.org)于 2017年8月2-3日,在北京國賓酒店火熱開幕。在3日上午的大會中,p4主席changhoon

kim以“p4:開創資料平面可程式設計時代”為題,發表了主題演講。

P4主席Changhoon Kim:要花費至少4年建立交換機?你可能需要參考P4的可程式設計性

 p4主席changhoon kim

 以下為現場演講實錄:

changhoon kim:大家早上好。今天我代表我們p4的組織跟大家做主題分享。我今天介紹的是,在網絡資料層面上,大家如何去管理、管控現有的網絡資料。

先提一下簡單的幾個要點:首先,要建構自己的網絡系統,大家有自己的交換機服務,我們還有自己的驅動器,在使用的層面也有不同的應用,不管是os還是其他的模式,還有交換機驅動層,可以把交換機和硬體連接配接起來。大家想想如果想采用非常重要的方式,比如2010年的時用的vslan虛拟化的模式,以及其他的協定,這樣的技術在網絡方面進行資料的管理,特别是對于資料互動的營運商來說是非常重要的,我們怎樣能夠達到這樣的效果和特征呢?首先我們需要花四年的時間,真的是四年,因為現在在驅動器方面改造是非常重要的,而且硬體本身需要不同處理包裹的方式、封包的方式,是以需要一些硬體的變動,确實花了四年的時間。而且非常有意思的是,它不是簡單的特征或者監控模式,它是非常中央的、最重要的商務模式,這花了四年改變。為什麼花了那麼久的時間?如果你是網絡使用者想把這個網絡特征定義出來,想從供貨商那兒購貨,會覺得有一些軟體功能的改變,說要把這個事情推到軟體的隊伍上,軟體的團隊又覺得需要幾周時間開發,然後又到了asic團隊,給我三年的時間去完成相應的構件。這就是要想做一些新的裝置、新的硬體的話需要花費的時間,整體的架構就需要三年、四年的時間,因為定義相應的硬體和軟體的都需要變更。而且為什麼需要一些新的特征,這些軟體沒辦法給你進行軟體更新,而且新的特征需要幾年才能開發出來。這個時候你已經找到了一些相應的方案,可能你已經找到一些新的架構了,可能也會出現新的問題,而且網絡也變得越來越複雜,有時候變得更加脆弱,最終當整個更新可行的話,四年完成了之後突然發現你又找到了新的問題,你發現你需要的解決方案不是你需要的,跟四年前的不一樣了。即便當時已經起作用了,你還需要進一步的革新和創新。這樣的話給你帶來的成本更大,而且需要另外兩年、三年的時間,再進一步的需變革。是以為什麼我覺得現在問題不斷的發生,因為網絡的體系今天發生的主要是整體向上的結構,現在有主要的就是軟體交換機作業系統跟驅動模式,然後大家看一下是不是從另外一個方式去看一下,不管在自己的公司還是在室内,必須有幾千、幾萬多個登記者進行資料的處理。一個公司可能就幾千個人,然後你必須要去sck用不同的方式進行資料互動和處理,在這個層面上是不是要找到另外一種解決方法,這是非常複雜的事情。怎麼樣去優化自己的系統呢?是以我們的目标就是改變這一狀況。

大家是否能夠去采用從上往下的一些架構?如果作為一個裝置擁有者,你的裝置怎麼去處理這些包裹?不僅僅是有人自然語言的方式,而且有機器語言的方式。比如p4語言自己去程式設計,這樣的話變成自己的交換機,使自己的程式設計方式去實作這些架構。是以現在的問題是為什麼所有的網絡不用從上到下的方式建呢,為什麼以前的網絡是從底往上的呢?因為傳統的架構,就是可程式設計的交換器大概有10-100,比已經固定的交換器慢了10倍,而且它們需要更多的電能,這個幾十年都是正确的。但是就最近發生的事情來說,這個理論已經不成立了。

我們現在已經找到了一些相應的證據:第一個證據,像tofino6.5tb/s是非常快速可程式設計的,它有一定的程式設計功能,而且它的解決方案是非常靈活的。這是一個非常好的例子。它完全可以程式設計的,而且耗電量也沒那麼大。在這個層面上tofino已經提出這樣一些架構,我們也看到它有不同的連接配接方式,确實是可以實作的。這個快速的簡單問題,為什麼以前沒有發生可程式設計的交換器,給你15-20分鐘都可以具體談一下這些技術細節,我就不談了,我想說的是整個行業已經嘗試了很多次,大概40年前的以後計算機一開始作為程式設計的對象,沒有人在硬體層面上寫自己的應用,沒有人寫cpu應用層面上,是以我們最早最早的電腦在cpu方面進行程式設計,然後現在主要是在應用端進行互動,然後通過圖像程式設計,在硬體方面也是這樣的,在gpu出現之後,它是最快的晶片,還有沒有人想到是否回到以前的程式設計方式,因為現在很少有人對圖像直接程式設計。看到這個信号處理,因為它們不用cpu,現在有不同的架構設計想要去采用這種晶片進行程式設計,然後關于網絡化的機器學習也有一種編譯模式。對于網絡方面,語言和編譯架構又是怎樣的?之前談到圖像處理和計算機程式設計架構的進化,在網絡方面是否能采用p4編譯器把程式變成相應的應有,來配置交換機,來實作成本和效益的更好的平衡呢?

另外,我覺得意味着它必須是基于互動式的可應用的層面上,我們稱之為p4.org,因為它完全是開源組織,而且得到的認證。大家知道p4觀點靈感主要來自于google、微軟或者是普林司頓和斯坦福大學,包括系統方面和應用目标,包括在不同的層面上,包括從資料層,或是按pg所有的服務方、解決方、提供方的次元來分。除此之外還有其他的解決方案的提供商,當然還有學術研究的人也是其中的一部分。

總結來說,p4的獨立性,它的架構,p4工程結合起來能夠互動最快的交換機服務,将會為我們帶來最好的表現。它的交換速度将是全世界最快的交換晶片。除此之外,我們為大家提供的抽象層是最容易進行操作跟具體程式設計的。在p4方面我們開始能夠做到在二十四小時之内來實作我們的程式設計,是以這就能夠讓我們的抽象層變得更加易操作。

下來讓我們講一下什麼是p4的可程式設計性,它是具體怎麼實用的呢?我想這是一個非常吸引人的技術,具體我們做的什麼呢?就是我想今天講四點:第一,降低了複雜性。比方說當大家想建立自己的一個交換機的時候,我們可以使用參考的p4語言,然後就可以使用現有的一些特征。大家可以看到在大螢幕上顯示,我不再具體細講,可以以此作為參考。比方說可能大概是有7千行的資料代碼來為大家作為參考來寫你自己的程式,但是這些其實并不是所有的都用,大家可以從中抽象出一些你所需要的,比方說大家可以建立自己資料中心。我們所需要的就是ipv4、ipv6等等相關的内容,而它們其實都可以把它去掉,我們把這個去掉之後我們就能夠以一種非常簡練的方式來使用你所需要的這些特征,這樣就極大的降低了複雜性。是以這就是定制化的一個優勢。比方我們想定制的話,我們最終可以使用,傳統來說我們就是使用3.2t的裝置,但是我們的p4大家如果來進行對比就能夠看到我們的簡練性是有多大。

第二個特點,能夠為大家帶來更好的使用體驗。同樣的,我們的獨享性的特征我們可以看到在30年以前協定的複雜性是很高的,而如今這些是可讀的。大家可以看到這是一個展示圖檔,這麼大量的晶片可以讀取,這些都可以用來進行客戶的定制化。我們目前實作的是什麼呢?這個是基于我們目前的消費者,我們的客戶的實際的用例,他們所需要的是希望有一些新的管道,新的方法來對于不同的包裹進行加标簽或者是進行特殊的處理等等。再一個,路由的方法。還有一個就是新的擁堵管控的方法,這些都是我們目前已經實作了的。再一個,處理包裹的新的方法。這樣我們就能夠使用不同的路徑來降低延遲性等等。除此之外,我們還有一些新的了不起的應用,比如我們的第四極負載平衡器,這樣的話就能夠確定我們把負載全方位地整合到我們的平衡器當中。我想這是一個非常了不起的技術。與之前的技術相比能夠建立出全新的内容,除此之外我們現在還有全世界最快的防火牆系統。

第三個,獨立性。也就是之前我們所使用的所謂的機器學習的技術,現在我們把這些編譯起來,最終我們就能夠建立api,這樣我們就能夠讓我們的交換機來實作更好的營運。比方說我們使用這樣的一種技術來確定我們的api的應用能夠實作全自動化的,它能夠自動的産生。這個可以在ip4的項目中進行使用。當我們進入下一代的晶片的時代之後,隻要大家使用的一樣的ip4的項目,根本不需要做出任何的改變。是以這是全新的獨立性,這就是為什麼google等公司也加入了這樣的項目當中。

最後,就是所謂的網絡的遙感偵測,就是自動測量系統。讓讓我來為大家講一下營運,看到我們網絡的運作過程,就可以回答有關于解決方案的四個問題。首先,任何的一個包裹,我們都需要找到它的路徑,它采用哪種路徑。比方說xyz等等。第二個問題,為什麼要選擇這樣的一個路徑?這個主要是取決于它的路徑,我確定我這個路徑是可遵循的。第三個問題,就是有關延遲性。花費了多長時間從源頭走到現在這個位置,有一些企業有延遲性的問題,比方說營運商,其實在一定程度上都可以通過這些方法解決。第四個問題,與第三個問題相關,如果說前三個交換機看上去好像沒有什麼問題,但是第四個交換機也許它的速度有了變化,我們就需要想為什麼到最後一個交換機時間變長了,速度降下來了,為了這個問題我們需要進一步詢問,其他的三個路徑在哪兒?那是因為其他的包裹可能導緻了我們現在的延遲性。是以這就是為展示了它的運動過程,不管是udp的流動還是别的都是如此。這樣都有可能會對我們的整體的效果産生消極的影響,比方說我們找到占據了絕大多數空間的包裹。這四個問題是非常核心的,如果大家有自己網絡的話我們很自然的就會想到這四個問題,如果目前自己有裝置的話我們很難去解答這些問題,因為它們的可程式設計性受到限制,但是現在有了p4我們不需要再有任何的猶豫,不需要再擔心說明的能量的預算等等。

是以最後我想為大家介紹的是int,這也是我們一個全新的發展。我們的網絡在傳遞這些包裹的時候,是能夠添加新的包裹進去的,比方說我們第一個添加了交換機的id,還有到達的時間,再一個就是排隊的延遲,以及相符的原則和營運方法,然後我們的包裹就夠最終經過這些家到達目的地,到達堆棧。是以可能最開始的時候這個包裹是低能量的,到最後我們就能夠把這些所謂的變化都取締,如果我們想要的話,然後進行終端的最後的分析。

下面我做一個簡單的展示,像我們有一個雲網絡,在中間我們有一個虛拟的交換機,然後下面我們有vm,再往上是實體層,這是我們的包裹的一個運作的軌迹,它經過了不同的部分,我們希望能夠盡可能的降低它的延遲性,我們知道它在實體層、其他的交換機、在vm的位置上可能會有延遲,是以我們需要對此進行一個細節的分析。現在我們就能夠做到這些了。我們現在已經進了兩個vm的環境,這樣的話我們能夠找到每個包裹具體延遲的資訊,大家可以看到在在圖表上有所展示它到達的ip,還有它的協定情況,我們能夠把時間細到毫秒,這樣我們就能夠把延遲的具體情況做一個詳細的分析,大家可以清晰地看到,絕大多數的延遲性都是在vm附近發生的,那是因為vm那裡有軟體的應用。包括其他的交換機等等,都在這些地方。如果大家再進一步看的話我們就能夠發現對于每一個包裹來說,我們都找出了這樣的一個延遲性的,毫秒甚至微秒來計的分析,是以所有的細節都能夠看到。這樣我們就能夠找到,是這個特定的流,是這個特定的位置增加的延遲性等等。是以這種分析是非常強大的。我想這能夠為大家帶來極大的便利性。這就是我今天的全部内容,謝謝大家。

原文釋出時間為: 2017年8月3日

本文作者:楊昀煦

本文來自雲栖社群合作夥伴至頂網,了解相關資訊可以關注至頂網。

繼續閱讀