騰訊云全新云硬盤!百微秒時延、超百萬IOPS是如何煉成的?

來源: 云加社區(qū)
作者:云加社區(qū)
時間:2020-09-02
18008
隨著越來越多的用戶開始將關鍵業(yè)務遷移上云,部分關鍵業(yè)務的場景如大型SQL數(shù)據(jù)庫、NoSQL、視頻編解碼、推理訓練等業(yè)務對存儲提出了穩(wěn)定低時延、高性能的業(yè)務訴求,CBS的產品矩陣并不能很好地滿足這類場景。

引言

隨著越來越多的用戶開始將關鍵業(yè)務遷移上云,部分關鍵業(yè)務的場景如大型SQL數(shù)據(jù)庫、NoSQL、視頻編解碼、推理訓練等業(yè)務對存儲提出了穩(wěn)定低時延、高性能的業(yè)務訴求,CBS的產品矩陣并不能很好地滿足這類場景。

因此為了滿足IO密集場景對云硬盤的要求,在歷經過超半年的用戶線上業(yè)務壓力后,基于最新一代CBS 3.0存儲引擎的增強型SSD云硬盤和極速型SSD云硬盤終于正式上線和大家見面了。

下文將重點為大家介紹一下這次發(fā)布的最新產品系列和背后的黑科技。

一、全新一代SSD產品系列

經過長期的迭代打磨和VIP客戶線上業(yè)務超過半年的實際運營,CBS于8月正式全量推出了增強型SSD云硬盤,并開啟了極速型SSD云硬盤的內測:

1.增強型SSD云硬盤

增強型SSD云硬盤是騰訊云CBS基于最新一代存儲引擎CBS 3.0推出的高性能、低時延的新產品類型,縱向對比現(xiàn)有SSD云硬盤,時延指標有超過50%的優(yōu)化,IOPS性能提升92%。

640.webp.jpg

2.典型場景

·對數(shù)據(jù)可靠性要求高的時延敏感型業(yè)務(典型case:數(shù)據(jù)庫業(yè)務、docker集群在線日志等);

·常規(guī)SSD云硬盤無法滿足IOPS或吞吐需求、且對數(shù)據(jù)可靠性有要求的業(yè)務(典型case:clickhouse數(shù)據(jù)庫業(yè)務、直播業(yè)務等);

·IO密集型業(yè)務(大數(shù)據(jù)處理等)、計算密集型業(yè)務(視頻編解碼等)、在線無狀態(tài)業(yè)務(游戲業(yè)務邏輯等)等多種場景均適用。

3.極速型SSD云硬盤

極速型SSD云硬盤是CBS基于最新的網絡基礎設施和最新一代存儲引擎CBS 3.0推出的,進一步優(yōu)化的低時延、高性能旗艦款產品。與增強型SSD云硬盤顯著的不同點在于整個網絡協(xié)議棧由TCP切換為了RDMA,極大降低資源開銷的同時提供極低的訪問時延。

640.webp (1).jpg

二、百微秒時延和超百萬IOPS如何煉成

衡量塊存儲的性能主要有三個指標:IOPS(指單位時間能處理的IO個數(shù))、吞吐(指單位時間能處理的數(shù)據(jù)量)和時延(指單個IO處理完成的時間)。

在IO密集型的業(yè)務場景中,需要存儲提供足夠低的穩(wěn)定時延來達到用戶業(yè)務讀寫的快速返回,并能支撐高并發(fā)的IO處理,使得用戶業(yè)務能夠效率進行。

如何提高IO處理的效率?我們首先需要知道子機的數(shù)據(jù)是如何被讀寫的:

640.webp (2).jpg

如上圖所示,子機數(shù)據(jù)讀寫將會經過以下步驟:

首先數(shù)據(jù)會經過guest kernel的一系列IO協(xié)議棧,通過塊設備驅動將請求下發(fā)到vring中并由qemu取出。此時由于用戶空間沒有訪問硬件的權限,會觸發(fā)vm exit進入內核空間。

qemu將請求寫入到母機上對應的設備,數(shù)據(jù)將繼續(xù)經過母機內核的一系列IO協(xié)議棧發(fā)送給母機cbs組件。

cbs組件在收到數(shù)據(jù)后會進行解析,查到到對應的路由信息后將數(shù)據(jù)發(fā)送到CBS集群的對應位置上,寫三副本后返回成功。

返回請求繼續(xù)按照原路徑返回給qemu,產生中斷。子機觸發(fā)IO中斷并最終返回請求結果給子機中的應用程序。

可以看到,IO鏈路要經過很多模塊,并且頻繁發(fā)生vm exit上下文切換,鏈路過長導致性能瓶頸。

1.虛擬化層優(yōu)化

我們首先把目光投向了虛擬化這里的消耗。存在以下問題導致整體性能較差:

·每次IO請求都會引起vm exit,對子機性能影響較大;

·每次IO請求都會經過qemu,導致qemu壓力過大;

·每次IO請求都需要經過整個子機IO協(xié)議棧、Hypervisor IO協(xié)議棧和母機IO協(xié)議棧;

·用戶態(tài)內核態(tài)頻繁切換。

因此我們采用了spdk作為代替方案,將架構簡化成了如下圖所示:

640.webp (3).jpg

spdk會一直不停輪詢,如果有請求就會將請求取出,然后查找路由轉發(fā)到后端的CBS集群,請求執(zhí)行完畢后直接返回。這樣就縮短了IO路徑,避免了頻繁vm exit。并且,spdk vhost讀寫數(shù)據(jù)無需經過系統(tǒng)調用,降低了整個鏈路的消耗。

除了架構上的改造外,還進行了多方面的優(yōu)化:

·優(yōu)化接入層邏輯,實現(xiàn)了組件內的內存零拷貝,減輕對CPU的壓力;

·在組件架構上,實現(xiàn)了組件水平可擴展;

·在時延優(yōu)化方面,除了輪詢模式縮短io路徑帶來的時延優(yōu)化,在組件內,讓每個線程獨占資源池,減少線程間的鎖競爭,讓請求處理更快;

·在穩(wěn)定性方面,組件獨占資源,避免被其他組件的干擾。同時做了軟中斷隔離,防止網絡中斷對時延抖動的影響。

2.存儲集群優(yōu)化

軟硬件的不斷迭代發(fā)展使得存儲得以有更多發(fā)揮空間。RDMA技術支持在多個服務器進行通訊的時候,從一臺機器的內存直接訪問另一臺主機的內存,而無需CPU的參與,大大降低了CPU的開銷。并且可以繞過傳統(tǒng)TCP/IP技術在處理數(shù)據(jù)時需要經過操作系統(tǒng)、內核和其他軟件層的鏈路,降低了數(shù)據(jù)流的處理時延。

640.webp (4).jpg

RDMA技術具備以下優(yōu)勢:

·應用程序能夠直接執(zhí)行數(shù)據(jù)傳輸,被發(fā)送到遠端的緩沖區(qū),而不需要進入網絡協(xié)議;

·直接在用戶態(tài)執(zhí)行數(shù)據(jù)傳輸,無需走內核協(xié)議進行頻繁上下文切換,極大優(yōu)化了IO時延;

·直接訪問遠端內存而無需進程參與,大大提高了CPU性能。

經過RDMA適配改造后,進一步降低了整體鏈路的IO時延,提升了CBS的性能。

3.用戶態(tài)協(xié)議棧ZTCP架構升級

640.webp (5).jpg

同時,我們也在進行騰訊云自研用戶態(tài)TCP/IP協(xié)議棧ZTCP(Tencent zero-copy TCP/IP stack)的改造工作。

數(shù)據(jù)全部經由用戶態(tài)協(xié)議傳輸,無需內核參與?;趦却娣峙淦鱶buf改造協(xié)議棧和spdk,涉及到網絡發(fā)送和接收的數(shù)據(jù)都從zbuf上分配。

發(fā)送和接收時,zbuf的數(shù)據(jù)和網卡直接DMA,免除CPU開銷。除了零拷貝外,ztcp每個線程獨占資源池,線程之間沒有資源爭搶,所以無需加鎖,也有更好的可擴展性。

4.硬件加速

得益于自研硬件的不斷迭代更新,我們也將上面進行的軟件優(yōu)化遷移到了自研服務器硬件上,將軟件硬件一體化的紅利普惠給用戶,預計將很快和大家見面。

結語

經過優(yōu)化,CBS在極致性能、持續(xù)穩(wěn)定、高可用性等多方面都有了進一步提升,推出了增強型SSD云硬盤和極速型SSD云硬盤產品。單路IO時延優(yōu)化到了無限接近本地存儲的100+微秒級別,單卷的性能可達到110萬IOPS、4GB/s帶寬。

后續(xù)我們依舊會圍繞著穩(wěn)定高性能存儲建設產品能力,專注更多方面的提升優(yōu)化,迎接更艱巨的挑戰(zhàn)。

參考資料:

[1]產品詳情頁:

https://cloud.tencent.com/act/pro/HSSD_TSSD_newarrival_activity

立即登錄,閱讀全文
版權說明:
本文內容來自于云加社區(qū),本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家