Hello everyone, I'm Xinyang, I'm the lead architect of OpenSDS Project.That's an open source project under Linus Foundation.Today I'm going to talk about CNCS Storage 6.大家好,我是楊欣,我是OpenSDS項目的首席架構師.OpenSDS是Linux基金會下的一個開源項目.今天我會介紹一下CNCF存儲興趣組的一些情況.我會用英文來講,歡迎大家隨後用中文交流.So here is the agenda for today.So I will be talking about what is a CNCF SIGand what is a CNCF Storage SIG,how it interacts with other groupsand what we have been working onand how to get involved.So first I want to mention that the CNCFworking group is transition into a SIGand the purpose for that transitionis that we want to scale contributionsof the technical and user communityso that we can help promote the CNCF missionwhich is to make cloud native computing ubiquitous.There are a lot of details of the CNCF SIGin that link over there.So the objectives of a CNCF SIGis to help promote a healthyand vibrant project ecosystem.Find out what are the gaps in the CNCF project portfolio.Maybe try to fill those gaps,educate and inform usersand also try to help project to become matureand also CNCF SIGwant to get community to be engagedso that there will be more people contributing to TOCand reduce project workload on the TOCand most importantly the SIGshould be vendor neutralSo SIGis responsible for project handlingthat include documentingwhat is available under the project landscapeperform health checksthe projects that are in the areaand trying to figure outare there any other projects that are not in CNCFbut maybe they are good candidatesand maybe try to attract them to joinand also every CNCF projectthat got accepted into CNCFwill be assigned to one SIG by the TOCand CNCF SIGalso help educate end usersby providing white papers, presentationsand so onand information needs to be research basedand also collect information from end usersfind out what they needwhat are the pain pointsand compare those informationinto some useful reportsand also get the communityengagedall the communication should be in public spaceso public meetingsand public mailing listthat's the way to communicate with the communityand the SIGshould act as the trustedexpert advisor to the TOCso review the projectand provide some feedback to TOChelp them make decisionsso what is the CNCF SIGCNCF SIG's mission is toenable widespread and successfulstorage of persistent statein cloud-native environmentso we need to provide valuable informationto TOC and usersand also we need to collaboratewith other related projectsand help the projectthat are already in the spaceto be successfultrying to find out if there are any gapsand try to fill those gapsin the CNCF landscapeso the storage SIGcovers storage systems and approachesused in cloud-native environmentstorage includes block storesfile systems, object storesdatabases and key value storesand we're trying tounderstand storage system attributesand look at all the different aspectsof storage systemand see how they affect those attributesso this is documentedin our CNCFstorage landscape white paperso the storage SIGhas the TOC liasonwho is Xiang LiAlex and Quindan are co-chairsZaad,Sugu and myselfare tech leadsso storage system is criticalbecause application needsto store state somewhereso making a storage solutionto be interoperablewith applications will helppromote portabilitythis is the CNCFcloud-native definitionbasicize the cloud-nativetechnologies help organizationsto run scalable applicationspublic,private and hybrid cloudand the CNCFwant to create an ecosystemof open-source vendor-neutralprojectsso that will helpachieve the goalof making cloud-nativecomputing ubiquitousthe goal of storagein CNCFis to enable a thrivingstorage ecosystemthat is vendor and platform-neutraloperable for applicationsso that will helpdrive the CNCFmissionso here are a list of projectsthat have presentedat the storageworking group or SIGcommunity meetingsand projects want todo those presentationsbecause they want tomake aware that sucha storage projectand some projectsthey want to donatethe project to CNCFso they want toget some feedbackI presented at the storage SIG firstbefore they presented tothe CNCF TOCso here are thelist of the storageprojects currently under CNCFRookis the storageoctrator for Kubernetesit was acceptedas a sandbox projectnow it's an incubation projectthat was actually the firststorage project accepted in CNCFminia is not really a standaloneproject in CNCFbut it's supported by Rookas an object storebackhandand with us supports horizonscaling of mySQLthat's accepted as an incubationprojectdistributed key value storeyou're all familiar with itbecause it's used by Kubernetesso that was acceptedas an incubation projectand TypeKVthat is a distributedtranssectional key value databaseit was acceptedas a sandbox projectrecently it just becamea incubation projectand also OpenEBSprovides containerizedblock storage for containersthat wasaccepted as a sandbox projectvery recentlyinterface with other groupssoCNCF36interact withKubernetes36, CSItheappssigKubernetesServiceKaloxig and CNCF SecuritySigso there could be morethat are listed hereKubernetesServiceSigit's focusing onKubernetes specificstorage abstractionsinterfaces and how to implement themand thefeatures owned byKubernetesServiceSiginclude persistent volumesvolume snapshots, CSF driversand so onso I think there are a lot of confusionson how is a CNCF36 different fromKubernetesSigso there are justworking with each otherthere are individuals workingin both groupsbut the CNCF36mainlythe main purpose is tohelp the TOCto scale review projectsin CNCF and so onso I just want to pause hereand see if there's any questions on the difference between KubernetesCNCF36shouldsigis it clearyesso what's the differencebetween the virtualizationstorage stackwith thekubernetes storage stackfrom the IOPASS point of viewso do you have a pictureto help usquickly understandI think there is a picture later onactually that showsthe data pass maybelook at thatlet me get you thereok thank yousoand thenwe are also interacting withCSICSI definesthe industry standard container storage interfaceso that storage vendorcan just develop one pluginand have itwork acrossa number of container orchestrationsystemsand alsowe interact withapp6CNCFapp6that's not fully formed yetbut once that's formedwill be collaborating with themand kubernetesapp6sothey have done some workhow kubernetesapps are usingstoragekubernetes serviceKaloxigthey enabledatabase servicesprovided by cloud providersto be availablein kubernetes environmentso and then alsowe work with CNCFsecretsigthey are focusing on cloud native securitysowe have been working onso we help TOC reviewnew or existing storage projectsin CNCFand wecreated a storage landscapewhite paperand we also created a storage surveyfor CNCF and usersso in thewhite paperwe focusing onthe definitions andterminologies of storage systemsso we look at the attributesof storage systemsand look at the different layersin the storage solutionand see how they are impactingthe attributes of a storage systemand alsolook at different data accessinterfacesand also the management interfacesof container orchestrationsystemsso these are the white paper authorsso inside a storage solutionwe will have different interfacesand have many different layersof functionalityand they all have different impacton storage system attributesincluding availabilityscalabilityperformance, consistency and durabilityso availabilityrefers to the abilityto have access todata aftersome failure conditionso whether thestorage systemprovidedredundancydata protectionwhether it can failoverthose all affectavailabilityand scalabilitycan be measured bydifferent criteriathat including whetherit can scale by the number ofclients, number of operationsnumber of componentsand the throughputperformance is measured by latencythroughput, number of operationsconsistencymeasureswhether you can accessto the correct data aftercommitand then whether there is a delaybetween the time you access dataand the time of the commitdetermineshow consistent it iswhether if there is no delaythen it's a strong consistencyit's called eventual consistencyand durabilitythat is affected bywhether the storage systemprovides data protection or redundancyso storage systemcan beit can be deployed as ahardware solution in a data centerbut that could limit itssupportabilityit can also be deployed as asoftware component on commodity hardwareandit can also be provided bypublic cloudprovidersthere are different storage layersoxstratorhost operating systemsapologydata protection servicesphysical layerso a hypervisorcan provide accessto resourcesso insteadof direct access it canprovide somemapping, some resource managementpullingbut that couldincrease theaccess overheadandsogyptopology soit can be centralizedor distributed orshotted or hyperconvergedso those all haveimpactthe attributes likeavailability, scalability, performanceand consistencyand a storage systemcould have some built-indata protection propertieswe may use technologies such asraid, erasure coding, replicasand that could also affectthe storage system's overallattributesand also there could beadditional data serviceson top of thefunctionalitieslike replications, snapshots and clonesthose could alsoimpact the availabilitydurability and performanceand storage also needs topersist the datasomewherephysical layerwith nonvolatileso that will alsoaffect the overall durabilityand performanceso there aredifferent data access interfacessoworkloads can consumestorage using differentdata access interfacesso here we categorize them intotwo volumesand apiandvolumes hererefer to blog file systems, job file systemsand those are supported bycontainer orchestration systemssuch as Kubernetessupport to twovolume modes, it's either a file systemordraw block modeand the file system mode actuallycan be backed by eitherfile system orblock storage underneathand the second categoryis calledrequired api but that includesobject stores, p-value storesand databasesso this table, this is based onsome generally accepted attributesand measurements forblock file system and object storeso usuallyblock storageis suited forthe use case where you requirehigh availability, low latency performanceand good throughputfor individual workloadsand it may not be goodif you want todo capacity scaling, you want to share datawith multiple workloads simultaneouslyandfile system is good forsharing data with multipleworkload simultaneouslyand then it maynot be good if you requirestrong file lockingand the object storeis good forhigh availability, it supportslarge capacitiesit's very durableyou can share data withmultiple workloads simultaneouslyit can also provideoptimized throughput forparalleled workloadsbut it could beslow in performanceand this isanother generally acceptedattributes andmeasurement tablethis is for local remote anddistributed storageso in termsof availabilityif it's a local, thenthat will be limitedby your local resourcesand remotethat could be limitedby the single pointer failureif it is a distributedthen you may be able to achievehigh availabilitybut of course you addedmore complexity to it as welland for scalabilityalsodifferences for localit's limited by yourlocal architectureand for remoteyou are limitedby yourmonolithic architectureif it's a distributedthen you can scaleeasilyand for consistencyso you canyou can achieve consistencywhether it's local, remoteand distributedyou can achieve consistencybut for distributed it's just harderbecause you need to implementit's rightdurabilityso thatalso for localit's also limited by your local resourcesandit's similar tothis other attributesbut if it's distributedthen you have additional systemadditional durabilityif one system fail you can usethis other systemand performanceso yeahsimilarly for the locallimited by local componentsand theremotethen you areit's going through the networkso it will beaffectedby the networkand if you scale itthen you would haveadditional performancebecause of thescalabilitybutif youfor distributed of course you alwayswould have this added complexityso this shows theoxistration and management interfaceso I mentioned earlier thatthethe workloadsconsume storage through adata access interfaceand then here in thein the middle we have thisdark green control plane interfacehere that refers to thestorage interface supported bycontain orchestration systemsso that includesCSI whichwe mentioned earlierand docker volume driver interfaceflex volumeand Kubernetes nativedark drive interfaceso now in Kuberneteswe are all moving towardsCSIthe storage system caninteract withcontain orchestration systemin two ways as joined hereit can supportthe control plane interfacedirectly or it cango through thisframework layerto communicatewe createdthe survey we send it to the end usersjust we have notgot the results back herebut I just want to show youthis is a sample of a questionthat we are askingso here we askask the end usersto rank the attributes of storagesystems based on how importantthey are when they make decisionson which storage systemto choose fromso we listed availabilityscalability performanceconsistency durability costeasy of useand they can also add anythingthat is not already listed heresohow to get involvedso we havethisCNCF storage sake community meetingit happenstwice a monthso you see the meeting link therewe arewelcome to join the meetingand we have anew repounder CNCFafter thesig is created there is this new reposo you can find additional information thereand there is a public mailing listyou can join the mailing listto get more informationso what we are going to do nextso we need to get some feedbackfrom end usersand also from the audience like youto see from this sakenextso we have this surveythere is a link thereI just showed you one pageso we need to get feedbackfrom end usersthen we will compile those resultsand we want todo some case studieshow storage is usedin the real worldand we want to write some papersto help end user understandthe different attributes of the storage systemsso we arethinking about looking at the performanceand availabilityredundancy aspect firsttrying to find some tools that can be usedby the end usersso that'sthat's it, that's all I haveany questionssomeone asked a question earlieris thatforgot whomaybe he leftany questionsyesyeah,可以像對於cloud private來說的話csi我們遇到一個問題是在cloud private上很多的存署都是block storage但是我們希望給continuer呈現的是一個facism interface所以csi現在的voluntary blockfacism它在因為cloud private一般會基於vm去做continuer大家都理解一下然後csi現在兩種模式的話都會把block的話直接就attach到後手上然後facism會慢得到後手後手上然後再有continuer runtime給pass到continuerpass到vm裏面去但這樣對於基於block的facism來說的話它會在後手上和guestguest上同時慢得兩次我們在csi以前提過一個e-show這個事情但是後來這個也沒有推下去了我想問一下csi方面對這個方面會有什麼改動嗎這個我好像沒有聽說過這個e-show當時是我們跟rehan一起寫下他們做一個virtuality好像沒有聽到過討論這個你有沒有什麼e-show你可以待會給我看一下我找一下e-show好的像這種可能我估計要推的話可能會要有很強的use case要說得很清楚這樣才有可能要不然可能就會比較困難所以看一下你那個是怎麼寫的yesyes我們這邊比較關注於鏡像的存儲因為我是螞蟻金服的因為我們這邊有大規模的鏡像在推的時候鏡像拉取會非常影響容器的擴縮容就破得的擴縮容但是在鏡像的時候除了預熱這種方式有沒有更好的最鏡像的存儲做一些優化的方案就是image是吧這方面還真的沒有我還沒有看見過有什麼方案一般就是你用的時候它會去把它當漏下來但是沒有什麼時候但是在大片的擴容的時候整個數據中心的流量全是在鏡像上你這是擴容的時候出現的還有較不調度的時候也會有因為你不可能所有的鏡像在這些整個破得生物周期第一步就拉鏡像其實拉鏡像的話其實是非常慢的我們可能對一些較不類的任務目標可能是在秒級或者是幾百毫秒級把這個破得給切起來鏡像其實也是一部分所以看看有沒有這種不需要拉鏡像的這種方案做一些存儲不需要去拉到本地但是你這個是所以你的這種鏡像你都是要先把它放到一個什麼放到一個PV裏面還是你是怎麼樣的用法因為就是你拉下來以後是在Local用的還是說你把它你要先把它存在一個President Water上看看社區有沒有這種對鏡像這塊可以加速到一個方案或者是想法或者是討論組做這個方面的事這個沒有就是你要是有什麼想法其實可以提出來可以提一個issue然後可以到CESI這個其實CESI是但是就是說你這個在Kubernetes也需要優化的只是說看看社區有沒有那你們要是那部已經有這種其實就說你可以那一部份要是開源的話這也是一個選擇你合不合適把那部份開源看能不能把它或者你要是有什麼想法你可以是有這種有些時候就是別人先他是在自己公司裏做了一個什麼東西然後他可以把這推到是有這種可能嗎因為我沒有聽說過這方面有什麼我沒有聽說有人做這個如果已經有的話當然你就可以直接用了但是沒有嘛那你們可以根據你們做的你也不一定是完全把他都推完但是你覺得什麼比較合適可以推你可以去提這個issue你覺得可以你好我之前做過一些我路Driver的一些開發然後就是因為我們之前用的主要是一些對大數據的一些應用然後他們又不喜歡用分布式存儲所以我們只能用local value用local value的話它的好處是那個性能可能好一點它的缺點可能就是因為我們在你要去對它創建一個磁盤然後要去格式化然後把它分配給給那個warp out的那這個裏面遇到一個非常大的問題就是它格式化的時間是非常慢的比如你創建一個好幾梯的盤然後這個時候一直creating不出來然後就會mount超時之類的過程然後就會非常痛苦這個反而就成了我們最後創建過程的瓶頸這個是第一個問題第二個問題就是在我們開發一些driver的過程中然後會有一些一些value的狀態是需要去需要去19化的可能正在gc或者正在deleting或者是重複創建之類的一些過程然後我們又不好把這些狀態保存在acd或者什麼pv或者annotation之類的地方因為它理論上從模型上來講它不屬於pv還是屬於一個driver的一個狀態但是我們沒有一個好的地方去存因為如果存在本地的話然後又會遇到一些一致性的問題所以我們只能臨時去搭一個file system去搭一個類似於一個數據庫去存這樣就會顯得非常的榮譽所以我想知道社區有沒有這兩個問題的解決方案謝謝第二個的話我是聽有別人也提過這樣的文件不只是這種文件類似的有些時候driver需要存一些東西但是因為如果沒有存的話你就得存它自己但是這個一直就說沒有一個好解決方案因為基本上現在都還是說讓driver自己來解決除非比如說你有這樣的use case然後其他人有這樣的use case就是很強的use case可以想一想怎麼樣用一個統一的方法去解決第一個問題是那個什麼隔世化那你有沒有用過那種network storage有沒有試過那種呢因為主要是一些大數據或者數據庫值的應用客戶不太接受他不太接受sef或者之類的這種分佈的存儲因為會影響他們的應用性能他們只接受local volume但是local volume當你一旦去做擴容或者擴展節點然後它的mount時間就會非常的久local volume很多人對這個有要求但是現在還有很多地方需要改進這個也還沒有聽說實際上有什麼比較好的解決方法所以你可以我就說你可以去都提一下比如說提的人多了也可能就會或者你要寫什麼比較好的建議可以怎麼樣去優化因為現在local volume現在有時間到了謝謝好的