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