而在11月10日舉辦的UCan下午茶武漢站的活動中,四位分布式存儲的專家為冒雨到場的近百位開發(fā)者朋友奉上了一場分布式存儲的技術(shù)盛宴,為這個斜風(fēng)細(xì)雨、略顯涼意的深秋下午增添了些許知識的溫暖。
UCloud分布式文件系統(tǒng)架構(gòu)解析
UCloud文件存儲研發(fā)工程師鄧瑾首先為到場的觀眾帶來了UCloud分布式文件系統(tǒng)架構(gòu)的解析。鄧瑾首先簡單介紹了分布式文件系統(tǒng)的概念,他說,分布式文件系統(tǒng)是傳統(tǒng)文件系統(tǒng)的延伸,通過分布式技術(shù)手段和公有云規(guī)模效應(yīng)獲取傳統(tǒng)文件系統(tǒng)所沒有的存儲能力。分布式文件系統(tǒng)具有容量和性能線性提升、高可靠、高可用、低成本等特性。鄧瑾還介紹了幾種經(jīng)典的分布式文件系統(tǒng)——GFS/HDFS、TFS、WAS和WAFL/CephFS,以及對象存儲、KV存儲、文件存儲等幾種常見的存儲方式。
接著鄧瑾介紹了UFS的發(fā)展歷程,他表示,UFS是吸收了基于開源軟件Gluster FS的原型系統(tǒng)之后設(shè)計的一套完全自主研發(fā)、面向公有云業(yè)務(wù)設(shè)計,支持多類型主機、標(biāo)準(zhǔn)協(xié)議NFSv3/v4(SMB is coming)的高可用、高可靠的文件存儲服務(wù)。鄧瑾還簡單介紹了UFS 1.0的整體架構(gòu)、索引層、數(shù)據(jù)層以及UFS 1.0的局限。
然后,鄧瑾重點介紹了UFS2.0的Nebula架構(gòu),它采用了Append Only的底層存儲模型,并使用LSM-Tree技術(shù)支持隨機寫場景、具有超大文件支持、靈活的冗余機制以及低延遲和高性能。
分布式存儲中的數(shù)據(jù)分布算法
奧思數(shù)據(jù)創(chuàng)始人&CTO李明宇第二個登場,他詳細(xì)講解了分布式存儲中的數(shù)據(jù)分布算法。李明宇從一致性哈希算法及其在實際應(yīng)用中遇到的挑戰(zhàn)開始講起,他表示,一致性哈希算法具有不需要查表或通信過程即可定位數(shù)據(jù),計算復(fù)雜度不隨數(shù)據(jù)量增長而改變,效率高、均勻性好,并且增加/減少節(jié)點時數(shù)據(jù)遷移量小等優(yōu)點。但同時,一致性哈希算法在實際應(yīng)用中也有很大的缺陷,一是在企業(yè)級IT場景中存在多副本可靠存儲問題,成本較高,數(shù)據(jù)也不能丟,二是在存儲區(qū)塊鏈場景,它幾乎不可能獲取全局視圖,并且甚至幾乎沒有一刻是穩(wěn)定的。
李明宇接著介紹了典型“存儲區(qū)塊鏈”中的數(shù)據(jù)分布算法,他表示,存儲區(qū)塊鏈?zhǔn)欠植际酱鎯Γ≒2P存儲)+區(qū)塊鏈,并通過Token激勵,鼓勵大家貢獻存儲資源,參與構(gòu)建一個全世界范圍的分布式存儲系統(tǒng),其代表項目是Sia、Storj以及IPFS+filecoin,李明宇還簡單介紹了Chord和Kademlia算法。
李明宇最后談到了典型的企業(yè)級存儲的數(shù)據(jù)分布算法Dynamo、Ceph的CRUSH、Gluster的Elastic Hashing以及Swift的Ring。這些算法都有相似的特點,首先它們都是基于/借鑒一致性哈希,增加/減少節(jié)點時數(shù)據(jù)遷移量小。其次,引入對數(shù)據(jù)中心物理拓?fù)涞慕#–luster Map),數(shù)據(jù)多副本 / EC分片跨故障域 / 可用區(qū)分布。另外,這些算法還可以對節(jié)點劃分權(quán)重,數(shù)據(jù)分布和容量/性能匹配,輔助擴容。最后,它們還可以有多種存儲策略選擇。
云硬盤架構(gòu)升級和性能提升
第三位演講嘉賓是來自UCloud的塊存儲研發(fā)工程師葉恒,他主要針對如何對UCloud云硬盤UDisk進行架構(gòu)升級和性能提升進行了介紹。葉恒表示,之所以UCloud要對云硬盤架構(gòu)進行升級,目的主要是:
一、解決老架構(gòu)不能充分使用后端硬件能力的弊端。
二、支持SSD云盤,提供QoS保證,可以用滿后端NVMe物理盤的IOPS和帶寬性能,單個云盤可達2.4W IOPS。
三、充分降低熱點問題。
四、支持更大容量云盤(32T甚至更大)。
五、支持并發(fā)創(chuàng)建幾千塊云盤,支持并發(fā)掛載幾千塊云盤。
六、支持老架構(gòu)云盤在線向新架構(gòu)遷移,支持普通云盤在線遷移至SSD云盤。
而要實現(xiàn)這樣的目標(biāo),UDisk對以下幾個方面進行優(yōu)化:
首先,對IO路徑進行了優(yōu)化,通過去掉老架構(gòu)中的IO接入層Proxy,減少了一次IO轉(zhuǎn)發(fā),以及IO數(shù)據(jù)的拷貝。寫IO發(fā)給主副本,由主副本同步兩份到從副本,讀IO直用從主副本讀一份就可以, 可以看到讀IO相比老機構(gòu)減少了一層,讀IO的延時降低了0.2-1ms, 寫IO的尾部延時有效降低。
其次,對元數(shù)據(jù)進行了優(yōu)化,老架構(gòu)中是按索引的方式組織元數(shù)據(jù),分片大小為1G,新架構(gòu)中采用了一致性哈數(shù)計算路由,支持最小1M的分片,大大減小元數(shù)據(jù)管理服務(wù)的壓力。云硬盤創(chuàng)建時,只用通過在環(huán)上計算就可以得到所有分片的位置,判斷是否滿足容量的要求。云硬盤掛載時client只要獲取hash環(huán)的構(gòu)建參數(shù),就可在內(nèi)存中構(gòu)建相同的環(huán),通過直接計算轉(zhuǎn)發(fā)IO到后端集群。
第三, 在軟件設(shè)計上采用多線程的設(shè)計方式,由于NVMe SSD性能百倍于機械盤,傳統(tǒng)的單線設(shè)計無法充分發(fā)揮后端存儲介質(zhì)的性能。在Client端會為每個云盤分配一個線程轉(zhuǎn)發(fā)IO,在后端,使用多個線程讀寫一塊物理磁盤。
第四 ,防過載策略。普通云盤底層物理磁盤性能會是瓶頸,通過限制并發(fā)提交的隊列深度加以控制,而對于SSD云盤,后端是NVMe SSD,后端服務(wù)的CPU會是瓶頸,可能出現(xiàn)某個IO線程非常繁忙而其他線程比較空閑,通過將這個線程負(fù)責(zé)的部分云盤的連接切換到其他線程達到負(fù)載均衡的作用。具體實現(xiàn)通過周期性的采集底層物理磁盤的使用率和每個IO線程的CPU使用率發(fā)給監(jiān)控模塊,由其進行策略控制。
第五,在線遷移優(yōu)化方面,只需6步即可完成從普通云硬盤向SSD云盤的在線遷移。
葉恒還介紹了UCloud正在研發(fā)的新云硬盤架構(gòu),將追求更高性能、更低的時延(平均時延100us)以及更高的IOPS(單盤可突破百萬)。葉恒還透露,預(yù)計UCloud將在12月底推出公測版超高性能云盤。
基于CephFS的改進及優(yōu)化
深信服的存儲研發(fā)專家盧波最后一個登場,他和在座的觀眾一起討論了基于CephFS的改進和優(yōu)化。盧波首先介紹了Ceph,他表示,Ceph是一個分層的架構(gòu),底層是一個基于CRUSH(哈希)的分布式對象存儲——RADOS,上層提供對象存儲(RADOSGW)、塊存儲(RDB)和文件系統(tǒng)(CephFS)三種訪問方式。CephFS始于Sage Weil的博士論文研究,目標(biāo)是實現(xiàn)分布式的元數(shù)據(jù)管理以支持EB級別數(shù)據(jù)規(guī)模。
盧波還介紹了Cephfs的架構(gòu),并解釋了MDS的作用、MDS的并發(fā)控制以及元數(shù)據(jù)的持久化。盧波還談了Ceph系統(tǒng)的缺點以及各大廠商對Ceph系統(tǒng)的改造和優(yōu)化。盧波最后對Ceph的未來發(fā)展進行了展望,他認(rèn)為,多MDS將是Ceph未來的一個技術(shù)趨勢,必將得到更大的發(fā)展。
隨著盧波的演講結(jié)束,在場的近百名開發(fā)人員和存儲大咖們一起度過了一個充實的下午,伴隨著熱烈的掌聲和火熱的現(xiàn)場交流,武漢站的UCan下午茶活動圓滿落幕,而UCan下午茶今年最后一場年終大戲——UCan下午茶返場活動將會移師首都北京舉行,屆時將邀請UCan下午茶各站的優(yōu)秀講師齊聚京城,為我們奉上一場匯聚精華的饕餮技術(shù)盛宴,如此難得的機會,感興趣的朋友們可千萬不能錯過!