ScaleFlux CSD 2000 在攜程的應用實踐


一、業界背景與現狀

近些年來,有三件事實在業界同時發生:
    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、區塊鏈、自動駕駛等新興技術保駕護航!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM