專訪UCloud彭晶鑫: UCloud高性能存儲背后的技術解析
原創(chuàng)【51CTO.com原創(chuàng)稿件】隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,智能終端、可穿戴設備、智能家居正在快速普及,數(shù)據(jù)吞吐量呈現(xiàn)出指數(shù)級的增長趨勢。大數(shù)據(jù)爆發(fā)的時代下,各行各業(yè)的互聯(lián)網(wǎng)化與現(xiàn)實世界數(shù)據(jù)化的趨勢,使市場對企業(yè)級云存儲的需求更加迫切。
云存儲,可以理解為云計算環(huán)境下的存儲服務,將云計算數(shù)據(jù)中心的各種存儲資源虛擬化,抽象化、池化,以存儲服務的形式提供給應用。用戶可以按自己的需求(容量,性能,時間)等使用云存儲資源。一些可以通過用戶購買的計算節(jié)點去使用,例如塊存儲,分布式文件存儲,還有些可以通過網(wǎng)絡訪問標準的接口存取去使用,例如對象存儲。
UCloud作為國內(nèi)領先的云計算服務平臺,在云存儲方面有著比較豐富的產(chǎn)品線。UCloud塊存儲研發(fā)副總監(jiān)彭晶鑫近日接受了51CTO記者的采訪,對云存儲產(chǎn)品及技術進行了解析。
UCloud豐富的存儲產(chǎn)品線
彭晶鑫目前擔任UCloud塊存儲研發(fā)副總監(jiān),主要從事分布式云盤,塊設備數(shù)據(jù)保護產(chǎn)品,分布式文件存儲的研發(fā)。彭晶鑫在采訪中對UCloud已有的存儲產(chǎn)品進行了以下總結。
1. 提供塊設備存儲能力的云硬盤UDisk,包括SATA的普通云盤和SSD云盤,云盤能為云主機提供高速、高可靠的塊存儲能力;
2. 提供分布式文件系統(tǒng)能力的文件存儲UFS,UFS提供了高可靠、無限擴展的文件存儲服務,目前是容量型,后續(xù)還將推出性能型;
3. 對象存儲UFile提供了海量、高可靠、低成本的非結構化文件存儲服務,可以讓用戶在任何互聯(lián)網(wǎng)可達的位置利用API去訪問和存儲;
4. 提供持續(xù)數(shù)據(jù)保護CDP系統(tǒng)的數(shù)據(jù)方舟UDataArk,它是公有云中第一家支持塊設備回滾至任一秒,并能有效防止用戶由于誤操作、黑客攻擊等帶來的數(shù)據(jù)誤刪除或者丟失。
當然除了這四種存儲產(chǎn)品以外,UCloud還有適用于海量數(shù)據(jù)的長期歸檔、備份的數(shù)據(jù)歸檔存儲UArchive,提供數(shù)據(jù)庫服務的RDS以及分布式關系數(shù)據(jù)庫等。”
這些存儲產(chǎn)品例如云硬盤和軟件定義存儲有什么關系
總的來說軟件定義存儲(SDS)就是將數(shù)據(jù)中心的各種存儲資源抽象化、池化,以服務的形式提供給應用,滿足應用按需自動化的使用存儲。云硬盤其實就是SDS的一種,它將存儲資源池子化,提供應用層需要的邏輯塊設備存儲能力,并讓計算和存儲在物理上分離。
UCloud在存儲產(chǎn)品研發(fā)之路上遇到了哪些問題并如何解決的?
在存儲產(chǎn)品的研發(fā)之路上,UCloud確實也遇到過一些問題,在這里就列舉三個點:
1. 數(shù)據(jù)可靠性
為了更早發(fā)現(xiàn)數(shù)據(jù)損壞,有些時候,用戶IO的讀寫并沒有散落到磁盤的任何位置上,磁盤的壞道壞塊等也不能及時發(fā)現(xiàn)。甚至可能三個副本中有兩個副本所在的磁盤都有損壞確沒有被及時發(fā)現(xiàn)。這樣就給數(shù)據(jù)的可靠性帶來了較大的挑戰(zhàn)。后續(xù)我們加入了磁盤不同偏移的讀寫探測以及定期讀數(shù)據(jù)和校驗碼的比對,從而更好地保障了數(shù)據(jù)的可靠性。
2. 數(shù)據(jù)分片
數(shù)據(jù)分片和元數(shù)據(jù)的關系是分片小元數(shù)據(jù)就多,分片大卻不能均勻的打散并發(fā)揮分布式集群的能力,因此分片要適當?shù)男?。那么問題又來了,當用戶申請一塊磁盤時,需要將很多元數(shù)據(jù)分配好進行持久化,這對于大容量磁盤的申請體驗就很差,速度慢。如果不是申請時分配,那么就是寫時分配,這對于用戶第一次IO時的體驗也會很差,性能有影響。后來經(jīng)過綜合考慮,我們選取了通過計算去獲取路由的方式,避免了中心存儲元數(shù)據(jù)帶來的麻煩。
3. 連續(xù)數(shù)據(jù)保護
第一代CDP系統(tǒng)數(shù)據(jù)方舟1.0可以很好的支持塊設備回滾到過去任一秒。但是對于大盤或者IO比較兇的磁盤來說,回滾速度會很慢,甚至需要幾個小時。用戶使用時都希望能快速回滾。后來我們就設計了數(shù)據(jù)方舟2.0,從用戶角度出發(fā),回滾時選擇回滾至一個全新的磁盤,不去破壞原有的磁盤數(shù)據(jù)。并通過流式計算、分層混合存儲設計、分布式存儲技術順利地將回滾速度提升了8倍,1TB大容量盤也可以在30分鐘內(nèi)完成回滾。
近年來塊存儲在底層硬件方面有哪些發(fā)展
總的來說,就是底層硬件越來越強。主要提現(xiàn)在兩個方面:一是磁盤速度越來越快,另一個就是網(wǎng)絡接口也有了快速的發(fā)展。SSD這類固態(tài)硬盤的發(fā)展,目前主要以NAND為主,單盤可以提供幾十萬甚至百萬的IOPS,高達幾個GB的讀寫帶寬,這是機械盤時代無法想象的。與此同時,固態(tài)硬盤的容量已普遍可以做到4TB到 6TB,也充分解決了存儲對于容量的需求。除了NAND以外,還有3D Xpoint的發(fā)展,相對于NAND,3D Xpoint例如Intel的 optane, 延遲上有了10倍左右的提升,并且更耐用。
另外,網(wǎng)卡也經(jīng)歷了從千兆、萬兆、25G卡到 50G卡的高速發(fā)展。此外,還有網(wǎng)卡對RDMA特性的支持,可以讓網(wǎng)絡收發(fā)零拷貝,無需操作系統(tǒng)/協(xié)議棧等的介入,就可以實現(xiàn)機器間的超低延遲、超高吞吐。
隨著底層硬件的發(fā)展,塊存儲該如何突破軟件技術層的瓶頸?
1. 隨著底層硬件的發(fā)展,例如NVME/PCIE SSD相對于SATA SSD的跨越式發(fā)展,網(wǎng)落接口的處理能力也從10G到25G再到100G。與此同時,CPU的主頻確幾乎沒有大的發(fā)展,主流的平均在2-3GHZ以下。另外,按照傳統(tǒng)模式SSD的IO、網(wǎng)卡的收發(fā)包經(jīng)過用戶態(tài)內(nèi)核態(tài)的多層拷貝,都還需要靠kernel的中斷來喚醒。以前,這些外設的能力遠低于CPU,所以沒有任何瓶頸。而現(xiàn)在外設硬件的跨越式發(fā)展,中斷模來喚醒系統(tǒng)處理也開始受到了技術挑戰(zhàn)。
云計算環(huán)境下的分布式塊存儲從軟件棧上可以分為兩層:一個是宿主機集群,一個是后端集群,兩者之間通過網(wǎng)絡互聯(lián)。塊存儲要突破的技術也主要在整個軟件棧上的IO路徑、整個IO路徑的性能及可靠性。宿主機側,為了實現(xiàn)數(shù)據(jù)交互的高性能,數(shù)據(jù)面需要從qemu卸載到宿主機上,從而有了用戶態(tài)VHOST方案。例如SPDK VHOST技術,不僅將數(shù)據(jù)面從qemu卸載到用戶態(tài),而且可以通過pmd模式加速性能。
2. 第二個就是宿主機到后端集群的路徑。傳統(tǒng)的TCP/IP協(xié)議棧+網(wǎng)絡服務框架epoll模式很難做到超高性能的要求。而RDMA技術,通信不需要經(jīng)過復雜的TCP協(xié)議棧,通過旁路和零拷貝極大的提供低延遲的特性。同時不需要兩端的CPU參與。所以RDMA技術,不管是ROCE還是IB,都可以在網(wǎng)絡通信上極大的提高性能。
3. 第三個在后端側,RDMA的應用可以極大的提高網(wǎng)絡通信的性能,減少CPU的負載。另外,還需要關注磁盤IO的性能。發(fā)揮NVME的高IOPS,同時降低IO的延遲,就成為了最關鍵的方面。利用SPDK 通過NVME驅(qū)動訪問磁盤,縮短IO棧以及PMD模式,可以極大的降低IO延遲。
UCloud在存儲技術上是如何做到更好地服務于用戶的?
為了給用戶提供更好的存儲服務,還是需要從用戶的需求去看待。
1. 用戶追求高性能低延遲,例如剛才說的塊存儲,就可以從IO路徑上整體兼顧,不斷追求更低的時延和更高的IOPS??傊褪亲龅絀O路徑上的極致;
2. 用戶追求大容量,那么怎么設計出可以讓用戶無限擴容的系統(tǒng)就是關鍵;
3. 用戶追求低價格,那么降低TCO,不損失數(shù)據(jù)可靠性的基礎上降低冗余度,提高磁盤利用率就是關鍵;
4. 用戶追求回檔的速度和粒度上,那就需要在持續(xù)數(shù)據(jù)保護上追求RTO和RPO。
在這方面,UCloud一直秉承“用戶需求就是下一個產(chǎn)品”的理念。
在塊存儲方面,UCloud后續(xù)會做什么樣優(yōu)化和新產(chǎn)品等?
UCloud確實在緊跟存儲行業(yè)的發(fā)展不斷推出或者優(yōu)化存儲產(chǎn)品,比如5月發(fā)布的高性能塊存儲新品 SSD 云硬盤,軟件架構設計更簡潔。另外,為了滿足客戶對高性能的需求,后端存儲也全部使用了NVME SSD,并提供了QOS保證。接下來UCloud也會推出基于NVME SSD的分布式文件存儲,提供更高性能的文件存儲需求。
同時,UCloud會引入RDMA SPDK等數(shù)據(jù)面的kernel bypass技術,充分優(yōu)化IO棧,并壓榨硬件性能,打造高性能低延遲的存儲引擎,服務于各種對高性能有需求的存儲服務。后續(xù)也會采用混合存儲技術,例如optane和nvme磁盤的混合存儲,提供更低的寫延遲,讓客戶獲得更好的體驗。
嘉賓介紹
彭晶鑫,UCloud塊存儲研發(fā)副總監(jiān),上海交通大學研究生畢業(yè),2011加入百度,2011年-2014年負責移動云應用服務后端多項研發(fā)工作。目前就職于UCloud,任塊存儲研發(fā)部副總監(jiān),負責塊存儲研發(fā)部,文件存儲研發(fā)部的研發(fā)以及運營工作,主要包括云硬盤,數(shù)據(jù)方舟,分布式文件系統(tǒng)。對服務后端技術,存儲技術,工程實踐有相當豐富的研發(fā)經(jīng)驗。
【51CTO原創(chuàng)稿件,合作站點轉載請注明原文作者和出處為51CTO.com】