傳統的大資料叢集往往採用本地中心化的計算和儲存叢集。比如在谷歌早期的【三駕馬車】中,使用 GFS 進行海量網頁資料儲存,用 BigTable 作為資料庫併為上層提供各種資料發現的能力,同時用 MapReduce 進行大規模資料處理。
但隨著網際網路業務的發展,本地中心化的架構開始受到以下兩個方面的挑戰:
-
資料增長越來越快,並且資料格式更加豐富多樣,非結構化資料越來越多。傳統的分散式儲存引擎難以大規模儲存和處理文字、音視訊等非結構化資料。
-
計算和儲存強耦合在本地應用上,缺少彈性。強耦合的模式增加了企業成本,因為需要為計算或者儲存的峰值需求準備資源。
在大約2015年之後,由於物件儲存具有極高的資料永續性,跨地域的容災以及低成本等優勢,AWS S3 等公有云物件儲存服務逐漸替代了 HDFS,成為越來越多企業的海量分散式儲存引擎。
儘管物件儲存可以提供低成本的海量分散式儲存,支援結構化、半結構化、非結構化資料的儲存,由於物件儲存和檔案系統在後設資料組織方式上的差異,導致原生的物件儲存在傳統檔案系統後設資料操作如 List 和 Rename 等操作上的效能差距較大。而在大資料場景下,整個MapReduce 過程中往往會產生大量的 List 和 Rename 操作,相比原生的 HDFS,在大資料分析效能會有明顯的效能損失。
為了滿足客戶基於物件儲存的大資料分析的效能要求,騰訊雲物件儲存基於雲 HDFS 的產品能力,推出了後設資料加速特性,賦予物件儲存以高效能的檔案系統能力。使用者只需要在建立儲存桶時開啟後設資料加速能力,即可使用檔案系統語義訪問物件儲存,將物件儲存的適用範圍擴寬到大資料、高效能運算、機器學習,AI等場景。
後設資料加速能力
物件儲存的檔案後設資料資訊(比如檔名,檔案的分塊資訊,檔案分塊所處的伺服器資訊等)儲存在索引庫表中。按照當前主流公有云物件儲存的設計,會按照字典序返回檔案索引資訊;加上索引資訊儲存在 SSD 盤上,拉取索引資訊的效能會受限於 SSD 盤單程式限制,因此每個儲存桶的 List QPS 很難達到較高的數值。而原生物件儲存中, Rename 操作實際上對應著一次檔案 Copy 操作和一次 Delete 操作,MapReduce 過程中會存在大量 Rename 操作的效能並不高。
針對這些問題,一個直觀的解決方案是將後設資料管理單獨剖離出來,為上層計算業務提供相容HDFS 檔案系統語義的訪問能力,這就是物件儲存的後設資料加速能力。
下圖展示了後設資料加速能力的一個簡要示意圖。區別於普通的物件儲存,啟用了後設資料加速能力後,後設資料相關的操作會路由到後設資料加速層進行處理。
有了後設資料加速能力的加持,就可以直接將物件儲存當做 HDFS 用,用檔案系統語義來訪問物件儲存服務。一方面,這一能力極大地提升了 List 等大資料檔案系統操作的效能;另一方面,也提供了 Rename、Truncate等典型的檔案系統操作指令,提供了大資料生態相容支援。
如何使用
您可以在控制檯上非常便捷地為儲存桶配置後設資料加速能力。如下圖所示,您可以在物件儲存建立儲存桶時開啟後設資料加速能力。
開啟後設資料加速能力後,可以通過控制檯、SDK 、 API 或者 COSN 工具等方式上傳檔案(PutObject)、建立資料夾(CreateObject)、重新命名檔案(RenameObject)、追加寫檔案(AppendObject)或者截斷檔案(TruncateObject)等操作。
效能表現
上文提到後設資料加速能力能夠極大提升檔案 List 和 Rename 等檔案系統操作的效能。這一章節我們詳細介紹具體的效能表現情況。
我們使用 GooseFS 建立兩個不同的名稱空間,分別對接開啟了後設資料加速能力和未開啟後設資料加速能力的儲存桶,分別 ls 和 ls -R 不同數量級的檔案。本次測試主要驗證後設資料操作效能,因此檔案大小統一設定為 0 B。每組測試會多次測試取均值,主要評估指標為總延遲均值。
詳細的測試資料如下:
後設資料數量 | 指令型別 | 開啟後設資料加速能力 | 未開啟後設資料加速能力 |
---|---|---|---|
5W | ls | 4.359s | 10.354s |
100W | ls | 7.065s | 21.376s |
50W | ls -R | 4.359s | 10.354s |
50W | ls -R | 7.065s | 21.376s |
可以看到,相比起普通的物件儲存服務,後設資料加速能力可以至少一倍的 List 請求效能。
而在 Rename 效能上,我們採用了同樣的方式,多次重新命名一個有 1000 個 100 KB 檔案的目錄, Rename 延遲測試資料如下:
測試次數 | 開啟後設資料加速能力 | 未開啟後設資料加速能力 |
---|---|---|
1 | 1.016s | 30.323s |
2 | 1.018s | 29.789s |
3 | 1.011s | 30.934s |
可以看到,相比起普通的物件儲存服務,後設資料加速能力可以數十倍地降低 Rename 請求延遲。
寫在最後
後設資料加速能力拓寬了物件儲存服務的使用場景,在底層採用了雲 HDFS 卓越的後設資料管理功能,支援使用者通過檔案系統語義訪問物件儲存服務,系統設計指標可以達到2.4Gb/s頻寬、10萬級 QPS 以及 ms 級延遲。儲存桶在開啟後設資料加速功能後,可以廣泛應用於大資料、高效能運算、機器學習、AI 等場景。
當前功能為公測能力,如需體驗請加入物件儲存服務群,聯絡我們開啟。