引言
隨著越來越多的用戶開始將關鍵業(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%。
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,極大降低資源開銷的同時提供極低的訪問時延。
二、百微秒時延和超百萬IOPS如何煉成
衡量塊存儲的性能主要有三個指標:IOPS(指單位時間能處理的IO個數(shù))、吞吐(指單位時間能處理的數(shù)據(jù)量)和時延(指單個IO處理完成的時間)。
在IO密集型的業(yè)務場景中,需要存儲提供足夠低的穩(wěn)定時延來達到用戶業(yè)務讀寫的快速返回,并能支撐高并發(fā)的IO處理,使得用戶業(yè)務能夠效率進行。
如何提高IO處理的效率?我們首先需要知道子機的數(shù)據(jù)是如何被讀寫的:
如上圖所示,子機數(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作為代替方案,將架構簡化成了如下圖所示:
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ù)流的處理時延。
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架構升級
同時,我們也在進行騰訊云自研用戶態(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