2017年6月19-20日在北京舉行的 LinuxCon 會議有哪些看點?

LinuxCon 今年首次在中國舉辦,Linus Torvalds 本人也第一次來到中國,此次會議在會前宣傳就做足了氣勢,當天的現場也是相當熱鬧。但並不是每個人都能有機會到現場去看,所以還請各位去過的朋友前來分享一下你認為這次會議都有哪些吸引人的看點~


LC3 recap

LC3 是一個非常大的會議,連 linus 本人也來了,趁著記憶還熱乎把所聽所看記錄下來,因為比較關注網路相關的內容,所以聽的演講大部分是關於網路的。

第一個會議因為對 GPU 虛擬化比較好奇,於是去了 Intel GPU 容器相關的虛擬化的一個演講主要講了 GPU crgroup 和 namespace 的一些內容,Intel 貌似有硬體支持一個 GPU 分 8 個 vGPU,然後通過設置 shares 和 priority 來進行調度,好像也用到了 VFIO,從 GPU 直接映射到用戶態的內存空間等等。所以給我的感覺 GPU 只是一個比較特殊的硬體,跟網卡的虛擬化也有點像。

之後去了中國移動關於 ONAP 的介紹,演講者英語一聽就知道特別特別好,但是是用中文講的,總體上介紹了 ONAP 的開源歷程,ONAP 是一個開放網路自動化平台,並且是一個中國主導的一個項目。演講者給了一個總覽圖,看起來像是一個管理,部署和運維的平台,因為主要講的是和開源的關係以及各種合作,加上之前不知道 ONAP,所以大概只是知道了有這麼一會兒事。

下午去聽了 The Open vSwitch and OVN Projects,簡單介紹了一下 OvS,然後主要說了一下 OVN 的一些內容,三十分鐘主要是介紹,也算是了解很多東西。

首先簡單介紹了一下 OvS,然後重點介紹了一下 OVN 部分。OVN 是 OVS 的控制平面,它給 OVS 增加了對虛擬網路的原生支持,大大提高了 OVS 在實際應用環境中的性能和規模。比如特性 BPF 數據路徑和 P4 DSL 用於以前改什麼都要 C 來寫的窘境。

下面這個幻燈片定義了一下 OVN,OVN 的架構也是一個類似於「南北橋」的架構,分 Overlay 和 Underlay 兩部分,我沒拍下來那張架構圖,應該和 OpenStack 裡面的 Neutron 類似的地位,但是更加獨立,更加完善。

中間去了一下組委會組織的一個和大佬會面的機會,見到了 ted 和 GH,都是名字有縮寫的大佬,希望自己有一天也能成為在網上可以用縮寫名字的男人。印象比較深的一個問題是問 ted 的,有人問 ext4 對 RAID 的支持不好(好像是因為 journal 的原因不支持,忘記當時的措辭了,等我查一下),ted 是這麼回答的,如果需要支持單機的冗餘和高可用,需要嘗試 zfs 和 xfs 這樣的文件系統,很多人問他下一代文件系統是什麼,其實根本沒有答案,應該選擇合適你的場景的文件系統,而 ext4 本身不這樣做的原因是,ext4 大部分是應用在大規模的分散式系統中,這些分散式存儲本身就考慮了冗餘和容災的問題,比如當初的 GFS 論文,現在已經進化成了某個東西(沒記住具體名字,等我查到了再補上),所以沒必要為此引入多餘的性能損失。除此之外也提到了文件系統測試的問題,主要依靠 xfs test suit (聽上去是這個),所有發給他的 patch 都會先要求把測試跑過。很多人問他為什麼沒有這個功能,沒有那個功能,那是因為你還沒有給他發 patch,社區是很鼓勵大家發 patch,即使你的思路不對,也會讓別人知道你正在上面工作,並且引導你走向正確的道路。GH 回答的問題不太記得了,主要是如何參與社區的問題,並且明確說了參與和使用開源對於公司的好處,不僅僅是工程師個人的炫耀,對於公司來說也能省一大筆錢,國內很多公司自己搞了個發行版並且越改越遠,他舉了 Google 作例子,剛開始的時候 Google 也是自己有個版本,然後自己改,Google 重新把自己的版本跟上主線也花了很多時間,但是有作用的。我個人也覺得,Google 這個公司開源的產品,以及參與開源,幫助他佔據了很大的話語權和市場份額。

這個小會之後聽了阿里的 Challenge and Practice of SDN in large Scale Data Center。首先給了一個示意圖,一個 Overlay 和 Underlay 的分層設計,下層主要是原始的硬體設備,上層是虛擬設備,這個感覺跟 OVN 的架構有點類似,不過大家差不多都是這麼設計的。

這裡主要面臨的問題是規模非常大的問題,這也是這個演講的一個主題,每個 VPC (虛擬私有自由子網)可以包含很多的虛擬機,這個規模很大,一個 VPC 有 10W 個虛擬機感覺有點誇張,不知道真實數字是多少。

後面給了一張架構圖,具體用於解決問題的各個模塊,那個 Message 感覺應該是消息隊列,我忘記了,具體每個子模塊的內容我實在太困睡著了,沒記住說啥,只記得醒來以後有人問如何在系統中應用 cache,回答大概是根據具體的需求,確定什麼東西是可以容忍丟失的,什麼東西不容忍丟失的,找到性能的關鍵瓶頸等。

主會場的內容沒啥好說的,說的東西都比較大,印象比較深的是,陸教授一個白髮蒼蒼的老人在上面講話,覺得作為年輕一代的程序員,任重道遠。

第二天去了 RancherLabs 的一個爐邊會議,主要是聊了聊容器網路的問題。兩個人在之後的演講裡面也出現了,我都有去聽。主持人是 RancherLabs 的 CEO,一看就感覺很厲害,英語也說得很好。幾個問題都是介紹級別的問題,關於網路的,包括 network namespace,以及容器本身具有快速銷毀的特性,IP 分配非常頻繁,DHCP 根本用不了,等等一些容器網路的問題,同時也說了一些對於容器網路的一些展望,比如 IPv6 之類的。

之後去了中間那個人的演講,因為時間原因講得很快,但是講了很多,算是對容器網路的整體結構和面臨的問題有了一個了解。

選幾個點說一下吧。

首先是工作原理,首先 underlay 用到的技術有 ipvlan,macvlan,sriov 等,這個主要是將網路功能直接和硬體對接,這歌應該算優化吧。然後是宿主機上的交換機設備,比如使用 OvS。然後是 Gateway 用於連接到公網的網關服務,這個在後面的一個演講裡面(也就是爐邊會議左邊那個人)做了演示。

然後是過濾器功能,包括原本內核協議棧就有的 netfilter,還有 OvS 自帶的,以及 eBPF(比 iptables 更快),貌似就是上面那個 OVN 裡面提到的 BPF datapath 中的一個功能。然後容器網路本身會有一些與虛擬機相比更特別的問題,因為容器本身的規模比虛擬機大很多倍,一個 SRIOV 能夠分配的數量可能夠虛擬機用的,但是對容器來說又很少。而且 IP 本身分配的更加頻繁,等等問題。

下午,就一直呆在一個地方,去聽了一場 dpdk 加密的演講,演講者提到了 dpdk 在用戶態在數據轉發上架上加密的話性能會嗖嗖地降下來。

純轉發的話,能比 100G 還要多很多,但是加上加密只有幾十K,非常差。

紅色框框包起來的就是作者實現的部分。用了 VPP 來做,但是我不太了解這個東西

實現的一個簡圖。

聽到這裡其實真的很感興趣的,但是我又睡著了,等我自己再看看再來補充把。結束了聽了一下別人圍過去問了啥,大部分是 SRIOV 的問題,這個東西挺火的,應用很廣了。

然後是爐邊會議的另一個人過來了,講的東西更具體了 Pratical CNI。首先容器點對點的網路連接靠的是 vEth 設備,這個設備在宿主機上會有一個鏡像,他們表示同一個設別,然後要在宿主機上作多到多的網路連接就需要網橋,具體的比如 OvS 作軟體層面的交換機。

他演示的很好,而且作了很多展示和畫圖,並且現場操作了一把,我妹完整記錄下來,但是道理講得很清楚,對於我這種不太了解的人是很合適的。

最後聽的是一個 Intel 同學講的容器網路的一個優化主題的演講,主題忘記了,大概內容是一些容器網路方面的優化。

最極端的就是直接用 SRIOV,把容器直接丟給硬體,但是問題是,容器在宿主機上數量很多,SRIOV 不夠用,而且對可編程來說並不理想化。所以用了 Virtio_user 這種架構,對接 OvS。

綠色的幾個點是優化的地方。然後 Virtio_user 的作者介紹了一下具體的內容,看得出來很緊張了。

介紹了一下半虛擬化 virtio 的使用,以及對應到容器裡面,virtio_user 是如何做的。最後是總結,Intel 提供了 CNI 的插件,來服務這些功能。

主會場的會議沒有怎麼聽,反正遠遠地看到了 linus 本人一本滿足,作為一個真正的飯只會遠遠地看著自己的愛豆,不去打擾他(其實就是慫)~


之前本來不想回答這個問題的,因為這種會議上的收穫各人各有不同,不能現場去的,也很難憑著幾張圖片收穫什麼,倒是看看已經釋出的一些 PDF 演講稿或許有所收穫: LinuxCon 2017(北京) Linus 專訪視頻及部分演講稿釋出 。

不過,我看到了前面 @高策 提及了對 Linus Torvalds 的印象,我覺得倒是可以說說我的感受。

說實話,之前確實受到一些片面的傳聞影響,對 Linus Torvalds 有一種率性、粗魯、耿直的看法。但是這次 LC3 有機會稍微近距離接觸 Linus Torvalds 之後,卻有了完全不同的感受。

作為本次 LC3 的合作推廣媒體之一,我們 Linux 中國對 LC3 做了不遺餘力的宣傳,也因此得到了參加 Linus Torvalds 本人出席的 19 日下午的閉門新聞發布會的機會。之前就被告誡,Linus Torvalds 不喜歡和人合影,切勿作此舉動,但是可以給他照相。因此,老王我早早就抵達了發布會現場,搶佔了最好的前排座位。耐心等待了一段時間之後,Linux 基金會的 Jim 進來了,我知道快開始了——突然,毫無預料的,我旁邊走過去一個肚腩有點大,穿著灰色 T 恤、牛仔褲的中年大叔!一下我就認出了這是 Linus Torvalds。他和 Jim 等人打了個招呼,就和一同進來的 VMWare 的 Dirk 坐在了我的前一排,正在我的右前方。

從表情上看,他面對人時笑容滿面,感覺特別溫和的一個人;有時候不面對人時,卻是一副冷靜的樣子,像是在思考。

由於之前的對 Linus Torvalds 的片面印象,老王沒敢上前去正面拍照,就悄悄舉起手機,在側後方拍了幾張側影:

從後面看,對比前幾年的 Linus Torvalds 的照片,頭髮有些白了

等待開始之前,他還掏出手機來瞅瞅:

之後,上台和 Jim 等人回答大家的提問:

新聞發布會結束之後,大家紛紛擠上去前,想和 Linus Torvalds 合影,我身邊的木美女憑藉地利,第一個衝到他身邊,率先拿下了 Linus Torvalds 的簽名,並用流利的英語和 Linus Torvalds 進行了親切的交談。下面是 Linus 交談時的照片,嗯,這後面是一個蹭鏡頭的,無視即可 :-D

之後,陸首群老爺子進來了,上來就和 Linus 來個熊抱!然後秩序就有點亂了,場面氣氛熱烈。這是 Linus Torvalds 為陸老爺子的書題詞:

眼看大家情緒這麼高漲,Linus Torvalds 宣布,最後會和大家來一個集體合影,才算是安撫下來。當然,這期間也有不少人紛紛舉著自己的相機,強行把 Linus 收入自己的鏡頭,Linus Torvalds 也並沒有表現出不悅。

受此鼓舞,我和 LinusStory 社區的聞其詳也最後拉著 Linus Torvalds 拍了一個合影:

右一真是好大的膽子,手都搭到了 Linus Torvalds 的肩膀上了!有人說為啥老王不笑——老王那是緊張啊!

由於當時已經拖堂佔用了下一場會議的時間,Linus Torvalds 才終於得以從眾人的包圍中脫身而去——就這樣,還被在門外攔住了,某勇敢的美女得到了本場除陸老爺子之外的唯一單獨合影(蹭合影的不算 :-D )。

整個期間,Linus Torvalds 都表現的很溫和、有禮,讓人心生好感

次日一早是 Linus Torvalds 和 Dirk 的對話。在大會開始前,早有準備的我,帶著 Linus Torvalds 的那本自傳《Just for fun》的中文版,隨時準備發現 Linus Torvalds 的出現。很快,他就和 VMWare 的 Dirk 出現在了講台一側的工作人員席位附近。

老王馬上拿出這本書去找 Linus Torvalds 去簽字,然而,我居然沒帶筆!!!!

好吧,趕快回去找小夥伴去拿筆——再次跑回去之後,Dirk 攔著我,不讓我打擾 Linus Torvalds!然而,我看 Linus Torvalds 並無表現出不悅的神色,可能已經習慣了粉絲們的熱情,還是接過去了老王遞上去的書。顯然,他認出了這本扉頁有他的照片的書了,翻開第一頁,流暢地簽上了 「LT」,並問旁邊的人,今天幾號了,又簽上了日期。啊哈,心愿達成,在謝過了 Linus Torvalds 之後(激動的我,居然說的是用中文的「謝謝」,不知道他聽懂了么),看也不看 Dirk 一眼就走了。

經過這兩天的會議,近距離接觸了 Linus Torvalds 之後,可以說,我對 Linus Torvalds 之前一點點腹誹完全沒有了。我喜歡這個領袖!

對了,這次 Linus Torvalds 的對話,我們有諸多小夥伴都有錄像(官方也有,但是尚未見到放出),這裡送上由我們的小夥伴 d0u9 所錄製的視頻,大家可以看看: LinuxCon 2017(北京) Linus 專訪視頻及部分演講稿釋出 。

(照片攝於 LC3 大會,如有侵權,請告知。)


甘道夫


商業氣息太濃,乾貨比較少,Ted和Coly的分享都不錯,最大的收穫就是見到了Ted,比較遺憾沒有搞到和Linus的合照,第二天沒去。


這次 LinuxCon 我覺得最大的看點是 Linus /w 終於見到了史詩級別的人物,之前一直被各種報道豎立了刻板印象,以為 Linus 是一個懟天懟地懟空氣的存在,但其實並不是這樣的,人設很偏慈祥長者。在他講完後會場的很多人追著他跑。。

會議日程在 LinuxCon ContainerCon CloudOpen China Schedule 可以看到,我個人比較關注的是 Kubernetes, Container 和 Unikernel 這些,偶爾也聽了一些關於 GPU in Container 的分享,就談談這方面有關的內容。

Kubernetes 是一個會議上比較大的熱點,每場跟它有關的都會有比較多的聽眾。其中我最關注的是 Scheduling and Resource Management in Kubernetes 。這場是 Kubernetes Scheduler 的核心貢獻者來講的,相信很多人都是非常期待的,但是這一場講的內容都是對於 feature 的介紹,其中包括 pod affinity, pod anti-affinity, taint 等等的功能性介紹。竊以為這些內容從 Kubernetes 的文檔里就可以找到,拿來講一遍實在是照本宣科,沒有幫助。Rancher 也是之前很神往的公司,他們的分享介紹了一個在 Swarm, Kubernetes 之上的抽象層,使得用戶可以從 UI 選擇建立一個 Kubernetes 集群還是其他編排引擎的集群,偏廣告,而且不是很了解有什麼介紹的價值。可能是我沒聽完就走了吧 /w

Container 部分,大多著眼於安全或者是網路或者是存儲。其中有一些分享(Enhancing Linux Security with TPM 2.0 和 Secure Containers With EPT Isolation)是我比較感興趣的,但沒有去聽,因為都與 Kubernetes 的分享衝突了,但我覺得這也是一大看點,是目前業界對於容器最關注的三個方面。

在 Unikernel 部分,有一個 Docker 公司的工程師來分享了為什麼在 IoT 場景下適合使用 Unikenel(Breaking the Curse of Legacy: How Unikernel)。但是感覺講了等於沒講,他更多的是在介紹 Unikernel 是什麼,以及以 MirageOS 為基礎做了一個 demo。對於為什麼 IoT 場景要使用 Unikernel ,沒有太詳細的說明,而是只強調了 Unikernel 的小。而且在實踐中要怎麼做也沒有涉及,整體而言更像是一個導論課。

在 GPU 方面,有不少關於 GPU 虛擬化和容器化的分享,主要的需求一般都是來自煉丹/深度煉丹。我主要聽了兩場,一場是阿里雲的分享,是講他們如何在自家容器集群上來加入 GPU 支持的,因為我本身對這方面沒有任何了解,所以聽了感覺很有幫助。他們一直在強調的是設備的映射問題,就是如何把物理機的 GPU0, GPU1 ... 能夠沒有差錯地映射到容器中,並且維護映射關係。另外一場是 IBM 加拿大的分享,不過是國人來做的。他們分享了在 HPC 領域用 Kubernetes 來實現對 GPU 的使用與隔離的,這個比較有借鑒意義但是講的不清楚,又或者是我沒接觸過這個領域,隱隱約約聽到了對 MPI job 的支持等等,是一個很有趣的方向,但是感覺講的不好。

除此之外,還聽了一個 Intel 北京的分享,關於如何在小規模機器上模擬 1000 個節點的工作(Get a Taste of 1K+ Nodes by a Handful of servers),這個是因為主講是同學的女朋友,要幫忙去拍照,自己其實並不是特別感興趣。好像是用虛擬機和容器做了類似 nested virtualization 的實現,希望能夠有理解的前輩釋疑。因為這應該是很實用的工作,基本上在 Evaluation 的時候都會遇到可用的機器少導致做不下去的問題,尤其是在學校里。這個分享有點後悔沒仔細聽 =。=

整體來看,我覺得 LinuxCon 還可以,但是期望也不要太高,有一些分享廣告味道重一些,其他一些比較前衛的話題,可能是為了顧及到所有人,講的不是很深入,沒有看到能夠讓人眼前一亮的東西。不過會場上從 CNCF 那裡拿到了好多貼紙,也算不虛此行。

在 Schedule 的分享主題的分布上可以看出,Kubernetes, Container 這些基於容器的虛擬化解決方案越來越受到認可,而且有越來越多的公司正在探索用容器集群解決 HPC,ML/DL 等等非容器擅長的場景。這是我認為的最大的熱點。當然這只是從我的角度來看的,僅做參考。

貼一張寵物照 /w


最後一天下午 keynote 環節一個谷歌負責 Kubernetes 的speaker講話的時候,突然有感而發:Kubernetes 最終應該會因為名字起得太差而失敗......

雖然說我不算是 Kubernetes 的使用者,但是也算是使用過 Kubernetes(感謝微軟在第一天晚上提供了一個night camp培訓),總體上來說 Kubernetes 這個東西除了配置和使用複雜了一點點之外(可能是我在 Azure 上用 Kubernetes 的姿勢不對?)基本上還是符合人類的使用習慣的,但是,我突然一想,好像還真沒有什麼名字這麼丑的產品/公司會取得成功......一個軟體/產品如果要取得成功有兩個必要條件: 1. 東西做得好 2. marketing做得好.而名字丑的基本上marketing那一塊就沒戲了.縱觀市面上有頭有臉的產品/公司(這裡只討論IT相關),我們可以發現一個好的名字基本上只有兩種:1. 直接由六七個字元組成簡短的名字,比如 docker, Linux;2.由短的詞語組成的,比如Facebook和Microsoft.像 Kubernetes 這種足足10個字元又沒什麼含義而且也不是什麼組合詞的詞,從這些方面看上去什麼優點都不具備,遲早會因為名字太難記而被世界人民遺棄 :)

後來第二天晚上參加 Beijing Linux User Group 的一個party的時候和一位來自捷克RedHat的開發者閑聊起這個,還說這以後在這個主題上做點survey然後發篇論文(哈哈哈哈哈).他跟我說 kubernetes 是一個希臘詞語,意思大概是 governer 或者 helmsman之類的.對此只能微微一笑,又是希臘,動不動就用個希臘詞,你們學拉丁文的真有意思 :) 可是為什麼不弄個 Zeus 這種高端大氣上檔次而且又好記的呢?:)

當然這些都是個人瞎扯hhhh本人對此不承擔任何責任hhhh

下面說點和會議相關的.聽說這次是LC3第一次在中國辦.總體上來說還是可圈可點的,先放幾張圖(下面多張圖片來自LF中國官微,因為我的手機攝像頭太渣了)

來自菊花廠的keynote

現場

Linus Torvalds 的talk

採訪

Greg KH的talk

來自微軟的夜校...

一些贊助商的showcase

(吃的圖我就不放了)

總的來說還是很多乾貨的.雖然說那麼多talk其實我完整聽懂的只有兩三個,但是我覺得最重要的並不是能夠聽懂所有的talk,而是和其他開發者的交流和自己的思考(當然能聽懂最好,但是其實在我看來很多talk因為時間關係和語言關係質量都不怎麼樣).在聽很多talk的時候其實我是一臉蒙蔽的,但是在會後就可以和一邊喝咖啡一邊和演講者聊另外的話題了,這比在email裡面交流的效率高多了.比如說一個RedHat的kernel開發者談Linux裡面的timekeeping的時候我是完全聽不懂的(很嚴重的口音,應該是義大利人),但是後來就跟他聊開了之後他就跟我說了很多如何在開發的時候用kdump其他一些工具開發/測試kernel(好像你們kernel developer都不用debugger的?).一位來自加州SUSE Lab的萌小伙一邊說"Oh I need some alcohol..."一邊跟我說kernel裡面的locking,還答應幫我review以前寫的一些東西.還有Greg K.H.的talk,其實我一直以來都覺得Linux Kernel的開發方式是值得學習一下的,所以在聽完他的talk後就抓著他問了大概十幾二十個問題相關的問題;跟他一接觸才發現其實他也是那種geek...好玩.來自谷歌的ext4維護者Teonardo Te"s 也是那種類型,每次跟他聊他都是樂呵呵的,超級可愛 :)

當然不止技術問題的交流.我記得在第一天的時候和Debian的project leader Chris Lamb還有Open Chain的manager Shane Coughlan一起吃午飯,Chris跟我講了一些Debian project的事還有他的一些工作,Shane Coughlan跟我講了很多版權的事,還講了喬布斯和Larry Ellison之間一些奇聞逸事哈哈哈哈.我也跟他們講了自己這兩天的一些觀察和思考,他們也給了很多反饋.人都很nice.然後chris lamb今天還給我寄了一個包裹,裡面是一些debian的sticker和各種小紀念品...


有很多中國人演講,這是很大的變化!


我C! 我竟然沒有去,握草!


推薦閱讀:

linux為什麼需要內核棧,系統調用時直接使用用戶棧不行嗎?
裝載著操作系統的磁碟是默認裝到內存0x8000位置,那ORG 0x7c00又是在做一個什麼事情呢?
linux內核啟動關於先有雞再有蛋的問題?
請問如何從下載的linux內核文件繼續編寫操作系統?
能敘述下面向對象思想在Linux內核編程中的應用嗎?

TAG:Linux | 開源 | 虛擬化 | Linux內核 | 林納斯·托瓦茲LinusTorvalds |