當(dāng)容器遇見存儲,焱融云完美締造容器神話
IT領(lǐng)域,變革的速度令人瞠舌??焖僭鲩L的數(shù)據(jù),云計算規(guī)模的處理正推動企業(yè)向著更高效、更可靠和可擴(kuò)展的方向前行。傳統(tǒng)的應(yīng)用架構(gòu)已日趨極限,所幸的是,最被看好的容器化技術(shù)正成為應(yīng)對上述難題的妙藥良方。
容器觸發(fā)***場景
現(xiàn)實工作中,企業(yè)云工程師經(jīng)常會遇到這樣的問題:程序在我這兒跑得好好的,怎么到你那里就不行了?系統(tǒng)好卡,是哪個進(jìn)程把CPU給吃光了?這套系統(tǒng)我已經(jīng)搭建好了,要不你再重新搭建一遍?每每出現(xiàn)這類問題,容器技術(shù)都成為解決它們的不二法寶。
雖然容器技術(shù)很早就已經(jīng)存在,例如lxc、jails。但自從2013年Docker的橫空出世,對容器的管理方式做了良好的封裝。尤其是鏡像概念及docker build工具的出現(xiàn),極大的促進(jìn)了容器技術(shù)的普及,同時也使得更多應(yīng)用場景成為可能。
眾所周知,很長一段時間,IaaS平臺主要基于虛擬機(jī)承載業(yè)務(wù)服務(wù)。但隨著業(yè)務(wù)復(fù)雜度的升高,每一個虛擬機(jī)都是一個完整的操作系統(tǒng),所以需要給其分配物理資源。而當(dāng)虛擬機(jī)數(shù)量增多時,操作系統(tǒng)本身消耗的資源勢必增多。此外,由于開發(fā)與運(yùn)維的環(huán),比較復(fù)雜。所以在部署上線應(yīng)用時,企業(yè)依舊需要花費(fèi)不少時間去處理環(huán)境不兼容的問題。因此虛擬機(jī)分發(fā)慢,資源耗用大,無法體現(xiàn)配置既代碼的弊端逐步體現(xiàn)出來。
恰巧,容器類似于集裝箱的設(shè)置有著鏡像小,啟動快,占用資源少的特點,解決了虛擬機(jī)的不足。它能夠更好的適用于無狀態(tài)的服務(wù),尤其是web服務(wù),DevOps, 微服務(wù)等場景。從Docker的角度來說,只要提供各種容器,它們相互之間配合,通過搭積木的方式就可以向上提供服務(wù)。
持久化存儲造就容器難題
而隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,從虛擬化到OpenStack,再到容器技術(shù),都走向了成熟的商業(yè)應(yīng)用。隨著Kubernetes的風(fēng)頭正勁,給容器和業(yè)務(wù)的管理帶來更多的便利性,企業(yè)用戶已經(jīng)開始逐步將原有運(yùn)行在虛擬機(jī)上的應(yīng)用遷移到容器上來。
對于企業(yè)級用戶來說,業(yè)務(wù)龐雜、高耦合低內(nèi)聚、平臺各異、語言各異等是共通的系統(tǒng)屬性。容器的出現(xiàn)讓企業(yè)真正可以聚焦在業(yè)務(wù)本身,而不受運(yùn)維開發(fā)的困擾。但是當(dāng)企業(yè)在將傳統(tǒng)應(yīng)用容器化的時候,也面臨一些挑戰(zhàn)。他們希望通過持久化存儲以保證高可靠、高可用和高性能。
但容器本身并不提供持久化存儲的解決方案。存儲在容器內(nèi)部的任何內(nèi)容,在容器被銷毀以后,數(shù)據(jù)將自動消失,例如網(wǎng)站頁面、配置文件、數(shù)據(jù)庫和大數(shù)據(jù)應(yīng)用等。因此在企業(yè)真正運(yùn)行環(huán)境中,如何實現(xiàn)容器持久化存儲一直是業(yè)界的熱點問題。
當(dāng)容器遇見存儲
為了確保持久化存儲的靈活性及可訪問性,遠(yuǎn)程網(wǎng)絡(luò)存儲是最理想的方案。這樣既可以利用不同的協(xié)議,如ISCSI、NFS等訪問,也可以支持不同介質(zhì)的存儲,如云存儲、SAN設(shè)備,從理論上打通了現(xiàn)有的存儲與容器的整合之路。
但現(xiàn)有的存儲方案真的能很好的應(yīng)對容器存儲場景嗎?答案是NO!就像虛擬化流行時發(fā)現(xiàn)存儲不能滿足需求一樣,今天容器用戶依然會發(fā)現(xiàn)傳統(tǒng)的存儲體系不能滿足容器場景下對存儲的需求。
在現(xiàn)有的容器管理平臺中,例如Kubernetes,已經(jīng)內(nèi)在支持了廣泛的存儲插件,典型的可分為兩部分。首先是文件存儲,例如 CephFS、GlusterFS、NFS等。CephFS, GlusterFS盡管有龐大的社區(qū)的支持,但成熟度上還需要進(jìn)一步驗證。同時在大型集群的環(huán)境下它們還無法達(dá)到企業(yè)級穩(wěn)定性、可靠性的要求,在高可靠、高性能場景也有著架構(gòu)上的不足。而NFS在性能上存在不足。其次是塊存儲,例如Ceph RBD、SAN存儲等。對于這類存儲,本身并不支持多讀寫的需求,而對復(fù)雜的容器業(yè)務(wù)系統(tǒng)又是強(qiáng)需求。
因此,我們發(fā)現(xiàn)容器應(yīng)用場景下的存儲有著自己獨(dú)特的需求,需要能夠?qū)θ萜骷墑e的存儲卷做細(xì)粒度的管理,例如Persistent Volume級別的Quota配置、QoS限速、ACL控制、快照等。而這就是Container-Native Storage(當(dāng)容器遇見存儲)的基本要求。
值得注意的是,從2018年Gartner技術(shù)趨勢圖中,我們發(fā)現(xiàn)專門針對容器應(yīng)用場景的持久化存儲Container-Native Storage正處于明顯上升趨勢。那么Container-Native Storage 與企業(yè)日常的存儲有什么差別呢?可以用四句話來詮釋,首先它專門為支持容器而設(shè)計;其次它能夠滿足應(yīng)用的擴(kuò)展以及性能需求;第三它與容器管理系統(tǒng)深度整合;***它支持大量系統(tǒng)的并行訪問。
此外,為了保證容器的可用性,容器調(diào)度平臺會在容器或者所在宿主機(jī)發(fā)生故障時,自動將容器轉(zhuǎn)移到其他節(jié)點。這意味著在容器遷移到其他節(jié)點之后,需要能夠無差別的訪問原有的存儲內(nèi)容,也就是存儲要做到與容器跟隨。
企業(yè)級容器存儲的五大特性
容器存儲既然是存儲,存儲的基本功能諸如可靠性、可用性等自不用說。隨著業(yè)務(wù)的發(fā)展,新的應(yīng)用形態(tài),如Cloud-Native、微服務(wù)等對容器存儲有了新的要求,主要體現(xiàn)在以下幾個方面。
***,標(biāo)準(zhǔn)的社區(qū)接口對接。容器存儲需要與容器管理平臺做深度整合,以Kubernetes為例。Kubernetes中內(nèi)置Flex Volume與CSI兩種支持外部存儲的插件化方案。對于存儲廠商來說,需要實現(xiàn)靜態(tài)與動態(tài)的存儲卷的生命周期管理。如今Kubernetes社區(qū)已經(jīng)增強(qiáng)了對持久化存儲的重視度,從定義標(biāo)準(zhǔn)的CSI存儲接口到持續(xù)增加容器對持久化存儲的標(biāo)準(zhǔn)調(diào)用API,可見容器存儲提供商需要持續(xù)跟進(jìn)社區(qū)計劃。
第二,豐富的讀寫模式支持。為了滿足業(yè)務(wù)的需求,容器存儲對于ReadWriteMany的支持也是一個必備的選項。
第三,數(shù)據(jù)跟隨。容器數(shù)據(jù)的跟隨意味著數(shù)據(jù)必須能夠快速的在全局可見。
第四,最小的擴(kuò)容、故障帶來的影響范圍。隨著機(jī)器規(guī)模的增加,磁盤,物理機(jī)等發(fā)生故障的幾率也大幅增加。對于任何一個節(jié)點都可能有數(shù)十上百個容器在訪問的存儲來說,如何做到在擴(kuò)容、故障的情況下,減小業(yè)務(wù)的影響時間及范圍就顯得更加重要。
第五,海量并行任務(wù)下優(yōu)異的讀寫性能。微服務(wù)、應(yīng)用容器化、集群內(nèi)容器的實例數(shù)量相比虛擬機(jī)場景會增加10倍以上。以前一個大型企業(yè)可能總共幾百個虛擬機(jī),容器化后會演變成上千個容器實例,這就要求在海量并行任務(wù)下存儲的性能能夠持續(xù)保障業(yè)務(wù)需求。
綜上所述,一個好的企業(yè)級容器存儲應(yīng)該是一個分布式存儲,具備良好彈性能力,通過分布式文件接口暴露給容器使用,與容器管理平臺融合并提供高可用數(shù)據(jù)卷功能,提供豐富的基于容器粒度的存儲功能,能夠讓容器感知也能夠感知容器變化,甚至于存儲整體容器化,同時針對擴(kuò)容以及故障的影響進(jìn)行優(yōu)化,做到最小甚至無影響。
焱融高性能超融合容器存儲***締造容器神話
縱觀目前業(yè)界發(fā)展,成熟的容器存儲方案還在探索的過程中。加之用戶的需求量巨大,所以越來越多的容器存儲產(chǎn)品在市場上涌現(xiàn)。
焱融云作為新一代超融合產(chǎn)品研發(fā)的倡導(dǎo)者,一直走在技術(shù)的前沿。他們認(rèn)為超融合從早期支持vmware esxi到xen、hyper-v,再到kvm,隨著容器應(yīng)用的快速普及,新一代的超融合產(chǎn)品將是支持容器化應(yīng)用場景的***實踐。
為了實現(xiàn)這個愿景,2017年焱融云針對容器技術(shù)趨勢預(yù)判,走訪容器客戶,在現(xiàn)有技術(shù)經(jīng)驗積累下提早技術(shù)布局,打造了焱融高性能超融合容器存儲,并最終在2018年6月推出國內(nèi)***家企業(yè)級Container-Native Storage產(chǎn)品,***支持容器存儲場景。而據(jù)記者了解,該產(chǎn)品具備以下七大優(yōu)勢。
首先,它具備高性能分布式文件接口,全分布式元數(shù)據(jù)集群;
其次,支持容器以及Namespace級別的Quota配置,QoS限速;
第三,它與容器平臺的深度整合。在KubernetesV1.10.5以下版本中,可使用 Flex Volume插件支持靜態(tài)與動態(tài)的卷創(chuàng)建。在KubernetesV1.10.5及以上版本,可以使用CSI plugin支持靜態(tài)與動態(tài)卷的創(chuàng)建;
第四,它支持RWO/ROX/RWX三種訪問方式,滿足各種應(yīng)用對存儲的使用要求,并且針對不同的訪問方式做深度優(yōu)化;
第五,它的高性能客戶端以及緩存層,提高數(shù)據(jù)訪問的效率與性能;
第六,它有效控制了故障以及擴(kuò)容的場景下對業(yè)務(wù)數(shù)據(jù)的影響,在大規(guī)模集群場景下相比其他方案對容器應(yīng)用影響時間、范圍最小;
第七,打造了優(yōu)異的高并發(fā)任務(wù)下的讀寫性能;
***,它支持融合、分離的多種部署方式。
此外,通過FIO的對比測試(本次僅對比了ceph塊存儲),在高并發(fā)模式(采用iodepth=64 + numjobs=32)下的測試結(jié)果如下:
革命,才剛剛開始
以虛擬機(jī)形式呈現(xiàn)的服務(wù)器虛擬化花費(fèi)了十年才替代掉企業(yè)數(shù)據(jù)中心中應(yīng)用程序?qū)S玫奈锢矸?wù)器?,F(xiàn)在,容器化應(yīng)用程序似乎將會在一兩年內(nèi)替換許多完整的虛擬機(jī)應(yīng)用。而在這其中,***挑戰(zhàn)在于我們能否為容器快速提供企業(yè)級持續(xù)性數(shù)據(jù)存儲。
不得不承認(rèn),當(dāng)下容器持久化存儲依然有待發(fā)展和成熟,焱融云正努力持續(xù)創(chuàng)新,為開發(fā)人員和管理員提供更加無縫的體驗,幫助他們在容器化環(huán)境中管理存儲,從而加速企業(yè)的容器和微服務(wù)的革命。
革命,才剛剛開始。