騰訊云超高性能 SSD 云盤如何練就業(yè)界頂級的 IOPS 性能?下面逐一對騰訊云超高性能云盤使用的核心技術進行揭秘。
1.使用 SPDK 充分發(fā)掘 NVMe SSD的性能
Linux下 IOPS 越高系統(tǒng)的開銷越大,在單機高密度盤場景下很難將所有NVMe SSD 盤的性能發(fā)揮出來。我們突破性地使用 SPDK 來讀寫 NVMe SSD,由于 NVMe 的驅動程序在用戶空間,因此不需要用中斷來通知 IO 完成,也就無需經過厚重的內核 IO 棧。相比于使用 Linux內核,SPDK 用戶空間 NVMe 驅動程序在極小化系統(tǒng)開銷的同時,可將 IO 延遲降低 10 倍,單核單盤的性能可達百萬 IOPS。
2.基于 25Gb 的 RDMA 的超高性能網絡框架
云盤的讀寫離不開網絡傳輸。使用 TCP socket 傳輸數據時,大部分的延遲都是由網絡協(xié)議棧帶來的,且網絡協(xié)議棧太復雜,難于優(yōu)化。相對于傳統(tǒng)的 TCP socket 數據傳輸,RDMA 技術可以將應用程序 Buffer 中的數據直接拷貝到網卡內存并發(fā)送到遠端,遠端把數據 DMA 到應用的緩存中,相當于在應用之間建立了更快速更直接的通道,如圖所示。通過上面的工作原理可以看到,使用 RDMA 做數據傳輸有以下幾個優(yōu)勢:
1) zero-copy:數據不需要在網絡協(xié)議棧的各個層之間來回拷貝,這縮短了數據流路徑。
2) kernel-bypass:應用直接操作設備接口,不再經過系統(tǒng)調用切換到內核態(tài),沒有內核切換開銷。
3) none-CPU:數據傳輸無須CPU參與,完全由網卡搞定,無需再做發(fā)包收包中斷處理,不耗費CPU資源。
騰訊云專門開發(fā)了針對 RDMA 的超高性能網絡框架,可以充分發(fā)揮 RDMA的傳輸優(yōu)勢。在 4K-16K小 IO 場景下,相對 TCP 網絡延遲下降 50%,同時有超過 5 倍的性能提升。25Gb 網絡讓云盤的理論讀寫帶寬達到 2.5GB/s以上,可以讓一臺云主機的多塊盤同時跑出極限性能。
3.基于 3D Xpoint 的 log 緩存
3D Xpoint 技術可謂是 NAND Flash 誕生以來存儲界的最大突破。相比DRAM,3D Xpoint 盤有非易失、低功耗、高密度的優(yōu)勢;相比 NAND,其速度更快,壽命更長。由于云盤存儲引擎采用類似 LSM 的模式,因此將高性能、長壽命的 3D Xpoint 盤作為一級 log ,內存用作一級 log 的索引緩存非常合適。既通過內存的高速度保證了訪問的性能,又通過 3D Xpoint 盤的非易失性保證了數據的安全。3D Xpoint 盤同時還用于存儲元數據,實現 metadisk機制,保證需實時存儲的小 IO 元數據及時落盤。
4.云盤系統(tǒng)架構
云盤接入層和存儲節(jié)點通過 RDMA 傳輸數據,騰訊云專門開發(fā)了針對RDMA 的超高性能網絡框架,滿足超高 IOPS 下的數據傳輸需求;Dispatch 模塊用來進行多副本的數據分發(fā)同步;3D Xpoint 盤和 NVMe SSD 盤分別負責日志元數據和用戶數據的存儲。整個系統(tǒng)從設計上盡量縮短 IO 的中間路徑,使用 RMDA 和 SPDK 將 IO 從耗時的網絡內核棧和 IO 內核棧中解放出來,消除 IO 路徑上的瓶頸點,將后端洶涌澎湃的 IO 能力送達云主機。
此次超高性能 SSD 云盤的推出標志了騰訊云積累多年的分布式存儲技術和順應時代新硬件的完美結合。騰訊云在存儲領域快速應用 RDMA、SPDK、3D Xpoint 等新技術,不斷突破性能上限。率先將最新技術領入到云計算行業(yè)中,普惠眾多游戲、電商、社交應用、直播等領域的客戶。