Hello Hello大家好時間差不多我叫宋子豪在社區裡大家叫Guber我叫Bace of Spirits我叫光陽光陽在這邊我們兩個一起還有羽結一起寫了這個Docal Volume Accelerated它主要是解決了Mace of Spirits的一個問題其實我們兩個認識大概一年多前就認識了在一起工作了很長時間但是昨天是我們才第一次見面這個可能也就是開源社區都是這樣有一些在開源社區工作過的朋友可能也知道好多時候我們有好多的合作也有好多互相幫助的地方但是可能就從來沒有見過面所以說我們這次特別興奮能給再次要給大家介紹Mace of Spirits這個是External Accelerated它是我們兩個從比賽到implementation從頭到尾解決的羽結就是在一個project的reviewer首先就是從文章開始然後我們可以先看一下為什麼需要做這個項目我們做這個項目的主要的Motivation是什麼我們可以從Path跟Cattle的爭議開始因為最開始的時候我們有Path跟Cattle的討論主要原因是我們當時在做Cloud的時候對VM的討論就是我們到底把VM當作是一個Cattle然後我們有這個爭議的一個主要的原因是因為VM第一個是它的其中時間可能會比較長一些另外一個的話就是這個VM的時候我們需要對這個VM的網絡對它的存儲等等來來進行管理所以VM相對來說就是我們去創建的時候花費的時間 花費的經歷可能會比較多一些所以這就是為什麼有的人期望把這個VM當作是一個Path來處理所以把這個VM當作是一個好多人都可以建議把這個VM當作是一個Cattle那把它當作Cattle一個最主要的原因是因為通過Cloud的話可以很方便地對這個VM的生命中期來進行管理所以就是這個就是我們為什麼會有這種Path跟Cattle的爭議但是這個跟它那兒最開始的時候我們是把跟它那兒當作Cattle當它開頭的話一個最主要的原因是因為我們最開始的時候我們跟它那兒熟那些服務就是我們只需要去穿一些這個Tongue Cat然後通過它來幫我們去處理一些請求什麼的而且是沒有數據的所以這就是我們為什麼需要有這種爭議還有一個就是我們最開始的時候是把這個跟它當作Cattle來處理但是現在的話我們可以放到下面但是現在的話因為我們建立了有一種新的服務就是這種有狀態服務所以我們就可能需要考慮如果要是有狀態的話到底要想要去對它進行處理那所謂的有狀態的話主要是針對這種無狀態所謂的無狀態的話就是說我的這個服務在跑的時候我不用去關心我到底有沒有一些數據因為通常的話這種服務都是沒有狀態的它也不需要去存一些數據什麼的所以這個主要是一些無狀態服務所以我們可以看到上來的這個兔裡面它有這種NGXTongue Cat它其實都是沒有狀態的那現在隨著KentCattle發展就是我們現在的話需要對KentCattle的網絡銷售到存儲等等來進行管理所以這個就是我們為什麼就是做這個項目就是我們希望Messos能夠對這種有狀態的KentCattle來進行管理就是我們希望它能夠對一些存儲來進行管理能夠跟第三層的存儲去機場我們可以看到這個圖的話是我從Douhouse上去解這個屏然後從這個屏上我們可以看到現在它上面有好多這種Doucus的鏡像全部都是DB的我們可以看到裡面有Redis有LonggoDB有PulseGrass等等那這些所有的全部都是需要存一些數據然後需要存一些這種狀態的所以這就是我們為什麼需要需要讓Messos能夠跟第三層的存儲去機場然後來對一些數據變形實際化操作然後我們從這個圖上可以看到現在有好多這種Doucus的鏡像它的這個曝亮是非常大的然後可以看到像這種Redis、Messor等等它基本上都是一個Million所以我們可以看到好多的用戶都在期望能夠讓Messos去對這種有狀態的這種container來進行管理就是期望它能夠去對一些數據對一些狀態等等來進行管理所以這就是我們為什麼需要做這個效果那這個圖的話就是Messos就是Messos在1.0之前它是怎樣對這種存儲來進行管理的那在1.0之前的話我們主要是通過PresentVolume通過它來對Messos的這個狀態來進行管理的但是這個的話缺點就是它的這個存儲全部都是local那所謂的local的話就是當我們創建的所有的container它的這個container這個需要的存儲全部都是在同一台服務器上所以這個就是它現在碰到一些問題當然可以碰到下頁下頁的話主要就是我們使用本地存儲的話經常碰到一些問題那它主要有兩個問題第一個的話就是本地的話它可能可靠性不是太好一個最主要的原因就是因為我們表示如果要是在使用這個Cloud的時候如果要是我們想對一些container來進行遷移那我們對container去遷移的話一個最主要的原因就是如果要是我們發現某一些物理服務器的它的這個負載比較高的時候我們可能需要對一些container來去遷移還可以把這個系統的一些負載然後動作比較 balanced所以這個時候我們可能需要對一些container來進行遷移當我們再去遷移的時候我們可能就需要考慮了那我這個container去遷移完之後它最開始的那個存儲到底還能用那如果這個存儲要是在本地的話有可能這個container被遷移完之後它可能會遷移到另外一台的服務器上然後所以這個時候這個container它就不能再繼續被用了因為它的存儲也沒有了所以這是它的第一個問題那第二個問題的話就說如果要是這個hose如果掛了之後因為我們的所有的存儲都是本地的所以一旦hose掛了之後那麼你所有的存儲就都沒有了所以你所有的container就都不能再繼續用了所以這個是它的第一個問題那第二個的話就是因為它的這個存儲是本地的那本地的話它就有一個缺點就是它的這個存儲的量有限的就是我們不能無限的去擴展所以這樣的話就可能會導致如果要是我在一台服務器上起的container數量非常多的話就可能會導致有好多container同時去寫的話就可能會把本地的這個存儲給申報所以一旦這個本地的存儲被遷移完之後那麼我所有的所有的container然後在這一台服務器上如果要是它繼續寫數據的話可能就全部都被遷移了所以這個是本地分組的兩個缺點就是第一個它的可靠性標差第二個的話就是它沒有辦法去擴展所以就是我們的一個主要的目標的話就是我們希望能夠讓Massos能夠跟第三方的去集成因為現在的話我們的存儲非常多包括第三方的一些分布式的存儲還有一些這種原存組的呢所以我們期望Massos能夠去large這種第三方的一些分布式的存儲原存組的呢然後就可以不用去管就是我在這個存儲到底是不可靠的或者是它的容量是不是會有些問題那我們這些所有的都可以去利用第三方的一些分布式的存儲或者是利用一些第三方的這個原存組然後把我們的存儲去集成起來那這樣的話我們就可以保障這個container即使掛了之後我們也能保障這個container再重新被創建的時候它也可以很方便的就是跟它以前的存儲全部都關量起來然後把它以前的一些存儲去恢復回到我們通過這種第三方存儲然後來對container的狀態對它的存儲來進行那我們做這個項目一個主要的 challenge的話就是我們現在的存儲跟它是非常多的包括一些這種第三方的一些這種分布式的存儲還有一些這種原存組那像一些這種第三方的分布式存儲有不同的一些winner它可能有IBM有EMC的那對於這個原存組的話它可能會有EMC有Google的有微軟的那每一個用戶它還去使用這些存儲的時候它可能每一個用戶可能都有一些特定的一些需求什麼就是我們不能保證就是讓所有的用戶存儲用的平台都是一樣的所以我們必須要保證Messles的這個外部存儲的這個方案它能夠跟不同的廠商跟不同的這種winner跟不同的第三方的分布式存儲跟第三方的這個原存能過上好的去一會兒去工作這樣的話我們就可以保證用戶他一旦把它應用去牽一到Messles上完之後然後如果從Messles對他的這個存儲來去管的話他可以無縫的就是給他以前的這些存儲平台去一會兒去工作所以就是這個事我們看到一些除了一個廠商裡面它就有winner太多了然後在開始介紹我們的這個解決方案的時候然後我想分享在座的各位有多少對同學就是使用Messles請舉一下手然後那有多少位是就是在意就是說一個儲存的解決方案的然後有多少位是在使用DockerDockerDemo其實其實這個的話就是數據中心的解決方案它就是根據不同的行業根據不同的使用方式都會有不同的偏重譬如說在networking上的solution在storage上的solution然後呢包括在一些譬如說電信行業特別在意的就是stability然後呢還有大家都會care about thescalabilityand availability然後然後我們這個這個topics主要 focus在解決儲存儲存方案然後呢好像光樣剛才已經說了就是說Messles原來有了就是一個persistent volume然後呢它能就是給大家帶來的就是把一些stable需要stable service的application然後呢它們需要有任何的狀態包括configuration包括data任何的都可以persistent都可以hold上面然後因為就是在生產過程中好多是好多那個application它可以中途掛掉它可以因為好多的原因可能是因為自己developeddeveloped一些bug然後呢出現sample也可以順暢的訪問反進問題然後呢機器掛掉這些都經常發生然後在Messles上面它有一個特點就是說所有的application都是recover包括isolator就是說每一個isolator它都會有一個recover的一個機制在上面就是說當你的機器掛掉了當你重新啟動了你還能找回原來原有的狀態然後繼續去運行你的task所以說這事情Messles是特別特殊的一個地方然後呢也是就是在生產環境上就是Messles特別就是production的一個原因之一然後在我們尋求storage解決方案的時候我們意識到了好像光耀剛才說的就是說Local volume它有一些limitation然後呢包括那個availability的一些width上面然後包括那些storage size所以說我們再尋求一個外部儲存的一個解決方案然後這時候我們就先看到了就是Docker以有的一些feature就是好比說大家都知道用過Docker的朋友可能都知道就是說Docker run你可以一個dash v然後呢就把一些host volume然後呢給continue然後呢當你使用inspecified volume driver的時候你可以使用特定的一些volume driver然後呢把一些extrude volume給掛在進那個container裡面然後我們這裡我們的設計初衷就是說我們想要使用Docker volume的這個API然後讓Vasus可以跟一些外部的一些券進行通信進行掛在進行一些mount和unmount的操作然後原因是因為有好多的那些儲存供應商好比說那個AWSS3好比說EMC的Scale IO這些都是屬於儲存的供應商然後通過Docker volume API我們可以很快的實現這個跟各種不同storage供應商的一些通信然後呢把這些外部的券利用到Vasus的container裡面來然後熟悉Vasus的朋友可能知道就是說Vasus裡面有兩個containerizer然後Vasuscontainerizer是很早以前就有的就是Vasus很初期就有的就是說它support的是Vasuscontainer然後利用一些Linux的一些基礎的一些isolation的一些方式包括Netsdates包括C-groups然後呢建立自己獨有的那些isolated的環境然後呢所有都是屬於然後還有一個containerizer就是Dockercontainerizer然後這個是2014年開始support的然後通過Dockerdemon然後能來管理那個數據中心的container然後現在呢就是我們這外部儲存這兩個containerizer都是支持的就是如果是使用Dockercontainerizer它是一個通過Dockerdemon的一個跟外部券進行通信然後使用Messos的話它也是就是利用了這個Dockervolume的API然後跟外部券進行通信然後這是一個Driver-based model就是說我們如何使用這個我們如何使用這個Dockervolume driver我們就implement了這個Dockervolume isolator在Messos裡面然後這個isolator的話就是這個isolator就是專門Messos Continuizer Specific然後Dockervolume isolator它就是實際上它主要做的事情就是 focus that如何把一個外部的券給它mount到本地來然後如何去管理這個life cycle這個外部券的一個life cycle然後然後它再負責就是說當我有一個外部券它掛在到我本地的機器上之後我再把它提供給任何的一個continent它是屬於這個管理者的角色然後當然它還負責就是說去維護Post Mountable這些東西好像Post Mountable這些它有好多很重要的信息然後特別是不確定的就是說沒有任何一個開發者希望就是說Post Mountable然後有好多很就是不乾淨的信息在裡面然後它還負責就是說Queena那些已經完成的continent當continent完成了或者是continent挂掉的時候它能把這些就是外部券給清理乾淨然後如果它是中途挂掉了它在recover的時候在它下次啟動的時候它能找到這些已有的信息我們馬上把他們清理乾淨然後這個大概就是這個isolator的架構然後isolator就是它是一個可以成為一個各種module在mesos裡面然後我們的doctor volume isolated我們implement一個client就是說它一個doctor volume driver的client去跟各種各樣的doctor volume driver進行通信然後在實際的implementation的過程中我們使用到了就是dbdcli它是emc的一個項目然後它可以很方便的跟各種各樣的volume driver進行通信然後這裡好舉說可能比較熟悉doctor的我們可能清楚就是說比較大眾化多人用的driver就是broker然後emc有一個叫ret3的doctor volume driver然後ranger外面有ranger的booth可能熟悉Ranger的朋友熟悉就是說Ranger有一個convoy的doctor volume driver然後dbdcli的好處就是在於它能跟各種各樣的volume driver進行通信然後可以統一化它的一些操作譬如說你給一個volume name然後你再給一個你再給一個就是一些option譬如說iope second然後去規定就是說我這個volume driver我需要這樣一個volume然後然後我要把它從外部給它放進來然後我要對它進行那些限制都可以通過dbdcli進行通信進行信息的傳達實際上它內部的結構就是用一些unix socket去跟各種的volume driver進行溝通然後大家可以看到下面的話就是各種各樣的volume driver然後這個是我們設計的一個然後就是其實很就是很很方便特別容易使用然後在可能知道我們都用然後在裡面我們有container infocontainer info是用來specify一個container你想要它你想要container成為一個什麼樣的container譬如說然後呢你想要這個container在container裡面你可以specify好多別的內容首先一個就是網絡你想要它是一個怎樣的網絡或者是image你想要它使用一個什麼樣的image現在我們有然後呢你可以把它定義為一個darker image然後你也可以用一個exe image然後在不遠的將來幾個月之後如果有那些感興趣的公司想使用就是oci image我們也很快就會支持然後還有一個另外一個方就是to do but在containerinfo裡面就是volume你可以divide各種各樣你想要的volume然後我們這裡面就是增加了一個叫做darker volume type在你的volume source裡面然後就是如果想使用這個外部捐那很簡單就直接divide一個darker volume在container info裡面然後大家還可以看到有一個message叫darker volume它有兩個required view一個required view就是說你需要divide一個name這volume name你可以使用它的名字它用來就是跟蹤和管理這個external volume在message裡面的life cycle然後driver就是the optional view driver就是第一個它是可以看節目就是它就是用來specify各種各樣的driver比如說emc directory比如說這些parameter就是我剛才提到的比如說然後這是一個就是很簡單很易用的interface然後就是可以很快的嘗試但是在我們的demo裡面都會給大家延遲到對這邊的話就是一個例子就是我們怎麼specify一個external volume這個是一個walkthrough就是我們怎麼樣去從一個user facing the API然後呢到那個external volume真正的使用到我們的container裡面去我在這裡可以給大家很簡單快速的過一年就是當我們通過在bringwall裡面就是message它是message的架構就是說user會寫自己的bringworkbringwork它會把所有的advocation的信息在master裡面去the master和master會跟agent進行溝通然後呢把resources給分配到各個agent然後呢bringworks可以決定我需要幾個cpu我需要幾個ventory然後呢然後當它拿到足夠資源的時候它可以set the offer然後呢再把這個一個task一個task可以它送到master會把它再傳遞到一個特定的agent然後呢進行工作然後這時候當我們divide這個container然後呢它需要一個external volume的時候我們可以看到這sourcevolume source是double volume然後driverwe use the x-rayvolume as the volume driver然後我們還可以就是說這個volume我們會把它divide成一個myvolume這個name然後container path是一個一定要定義的地方就是說這container path它是一個掛載點在你的container裡面你想你想要你這volume在什麼地方然後如果這個這個directory是已經有一些文件的話它會被overwrite掉實際上實際上的掛載也是這樣子就是說當有什麼它都被overwrite掉然後bringworkslaunch a task就是bringworks它divide它要有一個task它要launch到agent裡面去然後它會把這些信息傳給agent然後agent的話就是agent的話就是跟containerizer通信就是mesoscontainerizer它是在agent裡面的它是agent的一個模塊然後就是double volume oscillator又是containerizer的一個模塊然後containerizer會告訴這個isolator就是說一個double volume叫my volume你可不可以幫我把它給mount到本地上來然後double volume oscillator就會通過dvd sell out把這個volume從外部外部券一個從外部的一個distributed file system給它掛在本地機器上然後我們的那個通過通過rex rate的那個volume driver然後我們的isolator又會把這個已經在個dk一刻拼錄定上可以找到的外部券再給它掛在container裡面去然後這時候它就會這個過程都是在container起來之前的一個preparation的一個過程去完成然後在我們container起了之後我們都能看到我們所要需要的信息現在的話現在的話就是我們這個external volume有一些現有的一些限制limitation然後首先一個就是說messos不負責去把這些一些第三方的一些支持給它安裝好因為我們希望messos是一個很輕量的一個external一個customizable的一個觸距中心的cernel然後所以說當用戶需要使用這個externaldokal volumebeacher的時候需要把dvdli現在安裝到每一台agent機器上這是個很簡單的過程實際上一個script就可以完成所有的大多數來自大公司的朋友相信都有很方便的工具去把它實現出來然後然後dokal volumelife cycle management就是這個是一個這個是一個也是一個limitation就是說就是實際上這個limitation是來自於dvdli就是說當你specified一個volumevolume nameI'll be so my volume然後當你沒有當它不存在的時候當你又要把它載進continent的時候這個volume它會被它會根據不同的volume driver它會被createdimpressively然後這個我覺得是我個人認為是一個很不好的機制就是說就是說當你specified一些不同的各種各樣不同的volume name的時候它都會被它不會告訴你我這個不存在我需要把它給你需要這樣你需要把這個dvdli給它創建一下而不是就是它會根據不同volume driver的一些inforced configuration譬如說rex plane它會可以一個by gigabyte的一個volumeimpressively給你然後譬如說convoyRenture的convoy它也會可以一個我印象中是2 gigabyte的一個volume然後impressively這樣子它帶來的負面作用就是說你無法很好的去管控你的那個volume的life cycle譬如說在使用上我們強烈建議就是說所有的用戶當你需要volume的時候你create這個volume利用這個不同的drivercreate這個volumeextricity所以你知道這個volume然後你會follow upthe life cycle of the volume然後帶來的好處就是說當你不需要這個volume的時候你知道它的存在你可以去清理它然後你不會有好多那些譬如說zombie volumestenningon your machineon yourdiscutified system然後它不會就是up by all your disk這些的你不會出現然後所以這個在external volume上面我們強烈建議就是要explicit去create your volume然後相對應的用戶 response就是user都會需要對就是volumeto print up負責所以這樣子好處就在於就是當你的volume有一些很重要的信息的時候它不會被無緣無故的刪掉你總是能找得到它除非你手動的刪掉這個volumecreate that volume這個是也是對一些用戶敏感信息的一些重要信息的一些保護吧然後然後還有一個第三個limitation就是我們兩個continuizer都支持docker volume但是我們強烈不建議就是同時使用同一個docker volume給兩個continuizer原因在於原因在於就是在mesus continuizer對於這些docker volume我們會reference counting就是說我們會check對於同一個volume在這個mesus continuizer裡面到底有多少個continuizer在同時使用它然後如果它沒有更多的continuizer在使用它的時候它會被create out掉它會被unbounce掉但問題就在於如果docker continuizer同時在使用它的時候mesus continuizer是沒有辦法沒有任何辦法知道的所以說它會出現一些問題就是說當你已經create out掉了但是docker continuizer還認為這個這個volume是accessible的雖然它會造成一些問題所以說不可以同時對於兩個continuizer的使用嗯然後說一點以後的一些工作吧可能這裡面寫的不多所以這裡面當初我們設計的時候的一個想法就是generate of dvdcli然後因為dvdcli畢竟是一個來自於emc的一個第三方的接的支持我們好多東西在那一種方面如果可以我們會希望有一些native的支持然後當時它需要一定的時間因為在liberace裡面我們有好多一些比較底層的unix topic上的通信上我們需要花時間去把它imprimage出來所以說這是一個未來的一個計畫然後當然我在這裡我也可以談一談就是說我們就是在做這個項目的時候發現了一些問題首先是就是說我們使用的是dvdcli我們當時使用其實主要目的也是在於有好多廠商他們會根據這個API去寫他們的driver這樣子就是有各種各樣的driver現有的driver然後呢可以馬上的被用上然後把各種各樣廠商的一些外部券給使用進來但是它這個這個boilin的APIdvdcli的API在設計上可能會有一些不完美的地方因為它現在來說目前還有四個不同的interface一個是mountamount然後呢get the list然後在他們announce這個API的時候get這個interface還不是特別的還沒有完全的定義出來所以說導致的結果就是在於好多廠商的mole driver是沒有使用到一些get這樣的API然後它直接導致的另外一個結果就是說大多數的這些廠商所寫的mole driver 裡面還沒有做reference counting然後所以所以大家也看到在我們的mesos裡面我們不得不做reference counting我們必須要跟蹤每一個boilin的使用情況這個其實它會帶來一些很不方便的事情就是說就是在boilin裡面以後可能會涉及到的就是說gavage collection一個比較複雜的問題我們應該如何去清理一些長期沒有使用的那些boilin然後這些其實ideally它都是應該是在boilin driver裡面進行實現的所以說可能在以後對於一些外部卷的支持我們可能會考慮就是好比說根據一些mesos的特性根據一些mesos用戶的使用方式然後去去發展一個自己的specification就好比說continued volume interface就相當於CNI一樣大家可能對網絡有了解的同時我們可能知道就是Corex它有自己的一個networking interfaceCNI然後它可以就是對於對於網絡網絡進行定義可以一個用戶需要的network interface然後相應的我們可能可以考慮就是說就是設計一些mesos可以特別能跟mesos嵌合在一起的一些interface好比說CBI或者是CSIcontinuous storage interface這些都是以後的一些倡想法然後也很有可能會實現的一些一些想法這個是external volume在merclaw的DCOS裡面的實現就是說自從我們有了這個peacher在mesos裡面之後merclaw也支持了這個external volume然後如果有一些在生產上使用merclaw的朋友可以可能會對這個也會使用這樣然後它是一個它就是它已經是DCOS的一部分就是說DCOS它已經幫到進了rex-rate這個volume driver就是說如果大家有哪些朋友是使用EMC的一些Storage solution的時候這個rex-rate裡面所以說想用的話可以起了DCOS之後可以很方便直接地使用但是在demo裡面我也會給大家介紹到這一個peacher然後嗯然後create volume譬如有merclaw app實際上就是說在merclaw裡面用過馬拉松的朋友可能知道就是你只要定義一個最少然後呢裡面都是configuration所以怎麼樣定義你的container怎麼樣定義你的volume然後然後呢就可以很快地去把一些必要的advocation給run起來然後呢它一定很快地scaled就是說你譬如說我 run一個譬如說我 run一個dreadless server然後呢它變很方便的就是我要scaleddreadless server到10到100然後我們需要1000個container它也可以在很快的時間給它把它scaled起來這個也見其證明了就是在scaledability上面是production ready的然後接下來應該就是一個demo這邊可能就是一些設備的原因沒有辦法就是進行leaf demo然後我們就錄了一個視頻昨天晚上然後可以就是給大家看一看在ecos上面如何使用這個external volume然後大家可以看到就是我先寫好了一些最少的configuration然後我把它粘貼了進去然後然後它是叫做mesus call點行粥點write就是我希望就是把一些很簡單的東西寫進一個mounted container裡面的一個external volume然後大家可以看到我把它粘貼了進去然後它叫做行粥點write然後呢它實際上就是寫了一個行粥到了volume這個demo.txt這個文件裡面然後然後這個volume的話它是一個external volume它specified在這裡就是大家可以看到它的這個container path是volume然後呢它是在mesus container裡面然後它使用的是dvd-cli實際上它這個它使用的是rexgrade它使用的是這個mc-rexgrade這個volume driver然後它的名字叫做行粥demo這是我給這個volume起的名字然後行粥demo就是這個我們會創建的一個external volume剛才是暫停了一下好像大家可以看到這也是一個馬拉松的一個base就是說在你define一個task的時候你可以去在這追上裡面你可以看到就是你頭大家在網上都能找到這個視頻就是說你要define你需要多少個CPU你要一個CPU然後你需要多少memory好這裡是128GB的memory然後你需要多少bisk它可以是5GB或者10GB然後大家可以看到這是我早些deploy的一些task然後現在第四個是我在這個demo裡面新建了一個寫入external volume的一個task然後它應該已經完成了然後在這個sandbox裡面我們可以看到我們這個task已經是開始了然後呢已經是fock了一個possess去進行執行這個task的一些操作然後現在然後已經它就寫入external volume這個Hello Hangzhou它已經完成所以說把它給停掉這個task然後我們會另起一個task去讀這個external volume在sandbox的一個特定路徑裡面去找我們是否有這個demo.task這個文件然後再去讀取這個文件然後它是叫做visus.comvisus.com Hangzhou.grid的一個task name然後同樣也是使用到馬拉松的一個追傷mode然後大家可以看到有點小然後它是mx.hangzhou.grid然後它實際上就是cat的一個file就是cat的一個volume.taskdemo.task的一個file然後去讀取這個文件裡面之前所寫的一些東西然後資源cpu memory也是跟之前是一樣的同樣也是使用rexrate作為volume driver然後rexrate這時候就會找到原先我們之前已經創建好的這個叫做Hangzhou Demo的這個Instant Volume然後我們再把它重新mount進另外一個新的container裡面對然後這時候這個container已經起來了然後但是我會就是進到這個container的sandbox裡面去看我是否cat到了這個volume的世界所以說大家可以看到hello Hangzhou就是我們先前寫下的很簡單的一個小demo但是它是一個很直接的external的一個應用所以說以後有譬如說在Cassandra或者是一些Cavca或者是一些其他一些database它在需要使用到一些儲存上的一些feature的時候當local persistent volume它它會接觸到它的remitation的時候doctoral volumeexternal volume它也是另外一個很好的解決方案所以說如果在儲存方面有一些特別大的需求的一些公司或者朋友需要用到的時候歡迎使用新的feature然後有什麼問題的話隨時可以聯繫到我和光鴨在Vasus的slapchannel上也行在mailinlist上也行然後通過郵件聯繫我們也可以然後我們平時都會活躍在slapchannel上面都可以方便地在communitiesslapchannel找到我們然後謝謝還有Q&A吧對吧大家有些什麼問題如果要用這個data volume的話需要就是其他問題嗎這個就是我剛才介紹到了這個就是說我們有兩個containerizer就是如果你是只是一個comment task或者是一個完全的Vasus container它是不會需要data volume的然後現在我們有unified containerizer然後所以說任何的data image或者是fc image或者是不遠的將來OCI image它可以run在Vasus containerizer上面然後完全互依賴於data volume就是說你可以根據用戶的選擇你不想要data volume完全totally support然後在data volume上它也是A support的數據券在節點上的牽引就是就是我重複一下這個問題就是說我們有不同的volume然後在一個又一個的機器上面好比說我有兩個agentagent A和agent B然後我想把agent A上面的一些就是volume牽引到另外一台機器上面agent B你贏的問題就是我如何進行牽引是嗎我從agent A然後我如果從agent A牽引到b以後它本身的這個volume是怎麼做的牽引就是原來的話如果你要進行數據這樣的這樣數據的牽引的話是需要手工來做的就是operator或者是user它需要migrate it manually然後但是data volume它就沒有這個問題因為它是儲存在一個districted by system當你需要的時候它會把你放在這個機器然後你用完了之後你可以把它按mount掉然後當你在有這個相類似的task需要讀這些數據的時候然後通過這個API你不用specify就是說任何一台機器它卻亂了task但是你用同一個volume它還是會非常快放在這個另外一台機器上去這個是實際上它就解決了一個low group system volume的一個limitation它的問題也是我們當初做這個相互的一個原因之一吧其實那個主要是主要是你用的是第三方存儲的話比如說你的一些數據的這種牽引如果是由第三方存儲來逛去做的同時第三方的那個存儲的話它會把你的數據去備份的它會比如說你讀很多的它會從一些用的不要被看出來換你備數據來解釋備份所以就牽引的話你用它的數據不需要簡單還有其他作為這個第三方存儲的供應商來說的話能夠做一些什麼事情比如說我們在主機端做一些插件之類的可以方面我們這個使用的第三方存儲這是個很好的問題就是第三方存儲供應商就是有各種各樣不同的一些就是操作系統包括一些數據中一些操作品牌他們都需要有儲存的解決方案然後儲存供應商都會很願意就是根據各種各樣不同儲存的解決方案去根據不同的API去比方不同的Driver然後呢從而對自己的那些儲存產品進行銷售然後您剛才提到的就是說不同的插件是在於就是給Vasus考慮說Vasus插件是您是指的是就是Isolator這一塊去進行這些外部存儲的一些支持是嗎對很好然後這個的話實際上很最簡單利息的一個方式就是Fibera的一個你們自己的模型它實際上就是相當於您所說的插件它一輩子它是可以有好多組件是可以模塊化的從Isolator的組件就是說我們有實在一個Isolator但是不同的公司它都會有自己不同的Isolator然後進行自己不同的Cosmization所以說如果是對於儲存對於container的儲尤其是container的儲存可以寫一個就是Isolator然後那Isolator它可以負責整個你們自己儲存方案的一個就是儲存方案儲存券的一個Live Cycle的過程就好比說從發現我如何發現這個儲存然後呢我如何定義這個儲存它可以通過一些Agent Track它也可以通過一個User Facing的API它也可以通過Bluepark裡面的一些Label去定義我想要這個儲存是從哪裡來我要這個儲存是如何找到這個儲存我怎麼樣定義它的Size然後我怎麼樣定義它的一些其他的一些特性好比說就是I over second這些東西然後可以通過一個Isolator去把它所有都解決起來然後在Isolator裡面然後你可以還同時去定義到這個你們所提供的外部儲存的一個如何把它們清理如何把它們就是在我的container掛掉之後我如何再找到同一個volume實際上它都能在一個Isolator實現然後可能有些不了解就是沒有這麼就是使用還沒有使用Visuals太頻繁的很多模塊上它都是好多組件上都是可以模塊化的它從那個Isolator到那個resource allocator就是說你想要怎麼樣去分配你的resource我們現在有一個default allocator那是任何的優勢都可以寫他們自己的customresource allocator然後在fature或者是hook這些都是可以模塊化用戶都可以寫自己的那些想要的customfature包括master detector這些都是可以模塊化所以說Visuals是一個特別輕量特別extendable的一個curnal然後它就有點像Linux kernel一樣Linux kernel它說overlay and best到Ui best它都是module就是說你想要就要然後你不想要你不使用它它不會影響到你的主要的項目它都是可以有好多的模塊可以加進來然後在我們Visuals的dumplantation上面它都會有關於這些i3的模塊化的一些信息然後就是如果你以後就是想在這方面就是開源一些自己的module然後大家可以使用我們可以進行更深入的溝通然後也可以歡迎去試練習我不光壓還有您好我想問一下你這種就是功能或者模塊的話它有設計到iO叫iO隔離我覺得就是不管做融洽做其他的就是那個djiOS的話那個磁環隔離性還是挺重要的就在一個分布室程處理裡面實際上這是很好的問題就是說以前在社區裡面也有人提到就是說dizio isolation然後現在來說就是說在Visuals裡面只有一個就是disk isolated它是實際上它就是一個dU isolated然後它是查看你吃攤的可用空間信息的然後讓我記得好像有一些公司他們有自己的Visuals isolation但是它可能還沒有開源但是我聽說已經有人寫了然後以後的話我覺得我們應該做這個沒所謂應該做這個然後如果您和您的公司感興趣的話就是想參與到這個dizio isolation的這個比賽上面來的時候我們可以一起討論然後也可以一起去設計以後就是這個 isolation在Visuals裡面它該如何的工作所以說這個也是一個開源社區的工作方式我想會有一個問題就是說目前你們這邊會有一些給有一些U-SERVY或者他們的一些最佳實踐就是讓我們更有情形的把這個特性的生存環境裡面卻就是一些用過最佳的時間就是用一些什麼場景會用到這裡面然後他們已經在生產上使用也是這樣的一些分享對其實這一次Visuals Town我們有就是多了好多機會跟國內各大公司進行接觸然後首先就是IBM就是跟Visuals別就是長期合作的關係然後在用戶可能在Visualsdocumentation裡面並不是特別多有香港關於國內的就是主要的一些experience來自於Apple或者Treater它在產生上的一些使用經驗包括To Sigma這些大公司的使用體驗然後這一次就是我們就是在國內發現有好多好多就是屬於國內大公司的古規級用戶吧就是譬如說2011年2012年就開始使用Visuals 伯伯大選然後用了好久好久然後但是他們的好多的一些就是經驗並沒有就是public上出來就是說所以可能就是之前我也找過在好多國內的一些社區網站上對於Visuals 伯伯大選的一些實踐這樣也不是特別多可能跟一些可能跟多少跟國內的一些文化有關係或者說大家可能有些公司會更專注於做自己的產品做自己的customization然後沒有去把自己一些可以開源的部分可以跟大家分享的部分給拔上來然後這回我們就是接觸到了譬如說當當和豆瓣他們都是屬於很老的沒所適用戶然後他們有自己的一些很好的BringWalk然後也有很好的Ice Leader然後他們都把它其實他們已經開源了在Github上都用然後聽說還有一千多個在算是很多的了在Github上面然後他們這些他們都正在籌備就是說寫他們自己的一些使用經驗實踐經驗包括在生產上的經驗都會有越來越多包括這次Visuals.com在第一次在國內舉行都會有越來越多的經驗大家可以在網上發現然後在Visuals的那個網站上面我們也有一個就是有一個專門的列表就是說有多少大公司的一些BringWalk它是開源的BringWalk可以跟大家分享然後大家可以使用到然後原來的話就只有2Sigma的一個CookBringWalk都現在越來越多我們也很快就會把當當的一些就是他們自己開源的一些開源BringWalk給加進那個列表裡面的然後你也可以就是一併關注然後就是就是以後也可以如果想加入當一些開源項目也可以加入進去對記住我更想知道其實關於這個就是可能我們Q我們因為我是希望了解就是這個的話就是您指的是Persistent Volume還是指的是就所有儲存的Stable Service還是單獨External Volume的就是用Messages就是外部儲存券據我所知因為我們這個必須是幾月份寫出來的五月份寫出來然後ECOS也是大概七月份才加進了這個必須的支援但是Varison已經在用了Varison已經在用了我們還有一些Limitation但是對於一個單人的當Moling的一些簡單的一些外部儲存的一些功能是可以保證的Varison已經在用了還有一點的話就是雖然這個Persistent剛做完但是因為我們是利用Docker本身那個Persistent就可以用它本身的那個DockerVarison主要就多了但是這個Varison主要它是從1.9的時候就有的Persistent所以這個的話其實那裡應該有好多人都在用包括我知道了像電信移動他們比如說用SO的曲目它這樣然後MCA他們現在在開放有新的新的項目然後那個項目他們把它Persistent去用然後那個項目就用Stoary他們其實使用的場景的話並不是就是他們有使用但是說並不是那種屬於就是說深度使用因為他聽了幾十個External Volume給他放進去他們現在還是就是就是一對一的關係就是一個Continue他們最多使用一個Rexray的話它般得有限制他們只使用3.30.3.3吧然後但是他們使用Rexray我覺得主要的一個原因應該是因為他們想使用那個他們自己的Scale IO他們想使用EMC的ScaleScale IO的那個儲存解決狀態然後同時Rexray它有個好處這個就在於它可以支持很多的它可以支持很多的那些儲存儲存供應商好比說那個好比說那個Adepress的SV它支持然後還有好幾個在它的Documentation裡面都支持算是一個支持的儲存供應商比較多的一個Volume Driver還有其他時間時間上大概可能也差不多了那感謝感謝各位就是能就是參加我們的這個External Volume這個小的一個demo然後就是祝各位接下來參會愉快謝謝