ScaleFlux CSD 2000 在攜程的應用實踐

攜程DBA發表於2022-02-16

一、業界背景與現狀

近些年來,有三件事實在業界同時發生:
    1.  業務的發展朝著“生產”和“使用”海量增長資料的方向演進。
    2.  摩爾定律 的失效。
    3.  快速增長的儲存和網路頻寬需求同時束縛著傳統資料中心基礎設施。

  這三件事實的影響下,大大限制了為應用程式擴充套件能力、資料儲存和分析擴充套件容量以及以系統降本增效的能力。這也導致以計算為中心的架構逐漸轉變為了以資料為中心的架構,同時對資料庫管理員、IT 基礎設施管理者甚至採購團隊提出了新的挑戰。
  隨著摩爾定律的失效,計算裝置慢慢向著不同的專有領域發展,在算力晶片方面,逐步衍生出了FPGA/GPU/TPU/DPU等專有算力晶片;在網際網路絡方面,也衍生出了具有高吞吐低延遲的智慧網路卡等;而在算力和網際網路絡方面的瓶頸得到緩解之後,儲存方面的瓶頸便開始浮現,因此,在儲存方面,CSD也隨之應運而生(即計算儲存驅動器,英文全稱 Computational Storage Drives , 通常我們也將其稱之為” 計算型固態盤”)。

二、什麼是CSD

  簡單來講,CSD 其實就是在普通 NVMe SSD 的基礎上,在碟片內部整合一個或多個計算儲存引擎的新型 NVMe SSD。與普通 NVMe SSD 相比,CSD 在控制器內整合了計算儲存引擎(CSD盤內物理結構如下圖所示),因此能夠直接在盤內對資料進行相關計算(例如:資料透明壓縮/解壓、原子寫、計算下推等)。

  ScaleFlux 目前的主流產品 CSD 2000就是這樣一款新型 NVMe SSD 。其主打的計算特性為透明壓縮/解壓,那麼,CSD 2000能夠為應用帶來怎樣的價值呢?下面我們以普通NVMe SSD為對照,對CSD 2000 的應用價值進行簡單介紹。

1.  CSD 2000能夠大幅提升應用的效能

  在資料有壓縮需求的場景中,相比採用普通 NVMe SSD的方案(如下圖左側所示),壓縮/解壓引擎是定義在SSD盤外(主機端或者加速卡),這種方案中壓縮對應用不透明,且資料的壓縮與解壓需要佔用大量主機匯流排頻寬在CPU或加速卡與SSD之間來回拷貝資料,這會嚴重影響整體效能,而如果採用CSD 2000(如下圖右側所示),壓縮/解壓引擎是定義在盤內部的,資料的壓縮與解壓完全是在盤內進行,資料是完全零拷貝的,不需要佔用主機匯流排資源,從而達到提升效能的目的。

  在資料無壓縮需求的場景中,採用普通NVMe SSD方案,應用寫入的資料量與SSD NAND中的空間佔用大小相等。而採用CSD方案,CSD 2000內建的透明壓縮/解壓引擎,對資料的壓縮與解壓完全是在盤內進行,對應用完全透明(就好像資料從未壓縮過一樣),且能夠在大幅降低物理空間佔用的同時(如下圖所示,假設資料的壓縮率為2:1,則使用CSD 2000時實際寫入NAND介質中的資料可減少一半),顯著提升應用的效能(通常,當SSD NAND介質容量使用率超過60%以上時,SSD盤內的GC會逐漸增多,這會對SSD的效能造成嚴重影響。而採用CSD 2000方案,實際寫入NAND介質的資料量會顯著減少,這相當於增加了盤內的OP空間,而OP空間一旦增多便能夠顯著降低GC,進而能夠顯著提升效能)。

2.  CSD 2000能夠大幅降低儲存TCO

  CSD 2000支援LBA(邏輯塊地址,它的大小代表OS層面的可用空間大小)到PBA(物理塊地址,它的大小代表NAND介質的可用空間大小)之間的變長對映,使得CSD 2000內建透明壓縮/解壓得以對應用完全透明,在大幅降低SSD物理空間使用率的情況下,還能夠大幅提升應用效能。
  也正是由於CSD 2000內建了透明壓縮/解壓引擎,使得應用資料實際寫入到NAND介質中的資料量可能很少(資料壓縮率越高,寫入NAND介質中的資料量就越少),因而使得SSD物理空間的使用率較低,為了使得SSD的物理空間使用率最大化, CSD 2000支援將LBA進行放大(以資料的實際壓縮率作為依據),這樣一來,與普通NVMe SSD相比,在同等物理容量的前提下,CSD 2000能夠提供給應用更大的可用空間,資料的壓縮率越高,CSD 2000能夠提供給應用的可用空間越大,從而顯著降低儲存TCO(總體擁有成本)。如下圖所示,左側代表普通NVMe SSD,由於無內建壓縮/解壓引擎,無論資料壓縮率如何都無法降低儲存TCO;右側代表CSD 2000,這裡假設資料壓縮率為2:1,根據資料的實際壓縮率2:1,CSD 2000支援將應用可用空間從3.2TB放大2倍為6.4TB,從而實現了將TCO成本降低50%的目的。

三、CSD 在攜程的應用實踐

  一直以來,ScaleFlux積極探索在資料庫應用領域中可落地的應用場景,在資料庫應用領域斬獲了良好的應用成果。例如:在MySQL資料庫中,在CSD 2000 NVMe SSD產品的"透明壓縮"與"原子寫"特性加持下,其在資料可壓性高、訪問併發高、資料量大的應用場景中,與普通NVMe SSD相比,普遍能夠節省60%以上儲存空間的同時還能夠為讀寫效能帶來80%以上的提升。
  從2021年3月份開始,ScaleFlux便與攜程展開了一系列的技術交流和測試驗證工作,測試結果表明:

  • CSD 2000在攜程不同業務型別的生產資料樣本中測量到的整盤資料壓縮率分別在2.29~2.56之間,這意味著CSD 2000能夠幫助攜程能夠節省56%~61%的儲存空間。
  • 在FIO基準測試中,CSD 2000的順序讀、順序寫、隨機讀效能與普通NVMe SSD效能相當,是2 x SATA SSD RAID0的3倍以上 ;CSD 2000的隨機寫效能是普通NVMe SSD的3倍以上,是2 x SATA SSD RAID0的6倍以上 ;CSD 2000的隨機讀寫混合效能是普通NVMe SSD的2倍以上,是2 x SATA SSD RAID0的6倍以上。這意味著能夠幫助攜程大幅緩解業務持續增長、業務請求暴增等場景下磁碟的負載壓力。

  目前,CSD 2000已在攜程數百臺MySQL生產伺服器中上線,涉及的業務系統包括:風控,機票,酒店等。在使用者使用體驗上也非常滿意,例如:

  • 在某業務庫中,未使用CSD 2000之前,檔案系統空間使用率頻繁觸達90%+告警閾值,使用了CSD 2000之後,在不需要額外業務擴充架構的支援下,能夠做到儘可能不影響生產業務的前提下,線上一鍵擴容500GB+檔案系統可用空間,使得空間告警壓力瞬間釋放。如下圖所示

  • 在某業務庫中,未使用CSD 2000之前,磁碟IO負載頻繁觸達告警閾值,使用了CSD 2000之後,磁碟IO負載壓力瞬間釋放。如下圖所示

四、CSD的應用前景展望

  ScaleFlux作為一家可計算型儲存廠商,堅信可計算型儲存是順應未來技術發展潮流、是緩解未來資料量爆炸式增長壓力的絕佳解決方案之一,在攜程良好的實踐成果也是對ScaleFlux產品能力的強力應證。在未來,ScaleFlux將會在更多應用領域中積極探索,在不久的將來,相信可計算型儲存將會在越來越多的應用場景中落地生根。
  當今時代,我們正處在一個前所未有的數字化轉型的程式中,各種新興技術的產生和使用都會面臨著一個共同的問題,那就是資料產生和使用呈爆發性增長,這會給底層的計算和儲存的技術帶來巨大的挑戰。
  在過去的幾十年中,儲存的技術從卡帶、到磁碟、到固態硬碟,從容量和效能上都得到了巨大的提升,但其提升的速度遠遠趕不上資料增長的需求,如果我們把2020年全球儲存的產能加起來,大約20ZB(相當於20億張10TB的硬碟),這已經是比較驚人的產量,但到了2025年,資料的增長大約會達到125ZB,與此同時,儲存的產能只能達到22ZB,可想而知這將是儲存面臨的一個巨大挑戰。
  Intel的創始人提出的摩爾定律在過去的70年代到00年代長期神奇般的有效,CPU的效能每隔18個月翻一倍、價格下降一半。但是在過去的10多年裡,由於CPU的效能提升逐漸接近物理極限,摩爾定律已經逐漸失效,CPU的效能每隔18個月的提升已經不足2倍,與此同時資料的增長量卻呈爆發式增長,這種情況下算力也將面臨一個巨大的挑戰。
  當傳統的計算與儲存的方式難以滿足資料增長需求的時候,就必須通過創新來解決計算和儲存的效率,要提升計算和儲存的效率,最有效的解決方案就是將計算與儲存分離,可以將不同的計算型別細分到不同的更加高效的計算引擎裡。可計算型儲存由此應運而生,將近儲存的資料相關的計算(例如:資料的壓縮與解壓、資料的過濾、資料的加密與解密等)整合到儲存裝置內部,不需要額外的裝置,這就意味著不需要主機CPU參與,不需要在系統匯流排中來回拷貝資料,不需要額外佔用PCIe插槽與額外的供電,同時算力能夠隨著儲存的擴容而線性擴充套件,甚至能夠做到平行計算等等。
  我們完全有理由相信,可計算性儲存一定能夠很好地為未來5G時代的萬物互聯、AI、區塊鏈、自動駕駛等新興技術保駕護航!

相關文章