a级大胆欧美人体大胆666-男男gay啪啪网站18禁-激情内射日本一区二区三区-小妖精跪趴你好湿好紧好浪

新聞 動(dòng)態(tài) ·
News Center
關(guān)注我們 關(guān)注前沿

寶通推薦|SPDK+NVMe SSD對(duì)接Virtio支撐紅包場(chǎng)景性能

發(fā)表日期:2017-03-27        文章編輯:管理員         閱讀次數(shù):

編者注:本文介紹的高性能本地存儲(chǔ),應(yīng)該沒有針對(duì)可靠性方面的設(shè)計(jì),因?yàn)樵跀?shù)據(jù)庫層面有復(fù)制做為保護(hù)手段。

紅包是最近興起的全民參與的活動(dòng),2017年新春紅包在參與人數(shù)和業(yè)務(wù)峰值上都到達(dá)了歷史新高,其中紅包除夕開獎(jiǎng)峰值達(dá)到90W/s。在云棲社區(qū)2017紅包技術(shù)峰會(huì)上,阿里云系統(tǒng)和塊存儲(chǔ)負(fù)責(zé)人、資深專家馬濤從高性能本地存儲(chǔ)架構(gòu)設(shè)計(jì)、高性能本地存儲(chǔ)要點(diǎn)分享、高性能本地存儲(chǔ)性能數(shù)據(jù)等方面分享了阿里云在高性能本地存儲(chǔ)方面的實(shí)戰(zhàn)經(jīng)驗(yàn)。

以下內(nèi)容根據(jù)現(xiàn)場(chǎng)分享和幻燈片整理而成。

 

支付寶紅包的大致業(yè)務(wù)架構(gòu)包括單元化部署、統(tǒng)一接入、網(wǎng)關(guān)、DAO、數(shù)據(jù)庫以及在線/離線數(shù)據(jù)處理,整體流程很長。其中數(shù)據(jù)庫在整理的交易鏈路中起到承上啟下的作用。在紅包業(yè)務(wù)中,數(shù)據(jù)庫具有三大特點(diǎn):

(1)峰值壓力大。除夕夜開獎(jiǎng)峰值達(dá)到90W/s,但這僅僅是從業(yè)務(wù)層面考慮,由于業(yè)務(wù)對(duì)數(shù)據(jù)庫不僅僅是一次事務(wù)的壓力,所以開獎(jiǎng)峰值時(shí)數(shù)據(jù)庫面臨的壓力可達(dá)百萬之多。

(2)延遲要求苛刻。數(shù)據(jù)庫單位時(shí)間內(nèi)能承受的事務(wù)是有嚴(yán)格要求的,數(shù)據(jù)庫延遲降低后,會(huì)大幅降低對(duì)數(shù)據(jù)庫數(shù)目的需求,進(jìn)而降低所需物理機(jī)配置,對(duì)整體的業(yè)務(wù)壓力也會(huì)大幅度降低。

(3)自帶容災(zāi)。對(duì)于大型互聯(lián)網(wǎng)公司,他們的數(shù)據(jù)庫業(yè)務(wù)實(shí)際上是有非常完善的容災(zāi)機(jī)制,數(shù)據(jù)庫具備主從復(fù)制;業(yè)務(wù)層也會(huì)有本身的容災(zāi)機(jī)制。從存儲(chǔ)來看,上層的容災(zāi)業(yè)務(wù)做得很全面。

針對(duì)紅包業(yè)務(wù),數(shù)據(jù)庫的需求可以概括為兩點(diǎn):一是延遲要非常低,延遲要低于100us;二是IOPS一定要高,需要達(dá)到20W以上。

 

現(xiàn)有塊存儲(chǔ)產(chǎn)品

 

 

目前阿里提供了三種不同的塊存儲(chǔ)產(chǎn)品,分別是SSD云盤、高效云盤和普通云盤。三者詳細(xì)的對(duì)比如上圖所示,可以看到:三種塊存儲(chǔ)的產(chǎn)品都具有高可靠的優(yōu)點(diǎn),它們的數(shù)據(jù)可靠性都達(dá)到了99.9999999%;它們的缺點(diǎn)也非常明顯,IOPS和延遲不達(dá)標(biāo),IOPS最高的SSD云盤也只有20000,延遲最低的SSD云盤也有500us之久,距離20w IOPS和100us延遲的要求還存在很大的差距,這就需要設(shè)計(jì)一款新的存儲(chǔ)產(chǎn)品來滿足雙十一以及紅包業(yè)務(wù)的要求。

因此,高性能本地存儲(chǔ)應(yīng)運(yùn)而生。

 

高性能本地存儲(chǔ)

 

高性能本地存儲(chǔ)的設(shè)計(jì)目標(biāo)是為了滿足高性能數(shù)據(jù)庫的要求,設(shè)計(jì)要點(diǎn)一是超高的IOPS;另一點(diǎn)是超低延遲。

 

 

通用的云本地存儲(chǔ)常規(guī)架構(gòu)如上圖所示。以MySQL數(shù)據(jù)庫為例,它通過POSIX API與云主機(jī)內(nèi)核交互,云主機(jī)內(nèi)核包括一個(gè)標(biāo)準(zhǔn)文件系統(tǒng)和標(biāo)準(zhǔn)的塊設(shè)備接口;云主機(jī)內(nèi)核下面是云物理機(jī)內(nèi)核,它自上而下由標(biāo)準(zhǔn)文件系統(tǒng)、標(biāo)準(zhǔn)塊設(shè)備接口、硬件驅(qū)動(dòng)和硬件組成。當(dāng)數(shù)據(jù)庫發(fā)起IO訪問時(shí),要經(jīng)過7個(gè)模塊才能到達(dá)硬件;請(qǐng)求完成后,再經(jīng)過7個(gè)模塊才能返回給應(yīng)用層,路徑相當(dāng)之長。云主機(jī)內(nèi)核和云物理機(jī)內(nèi)核中都包括標(biāo)準(zhǔn)文件系統(tǒng)和塊設(shè)備層,也就是說同樣的模塊可能在云主機(jī)內(nèi)跑了一遍,還需要在云物理機(jī)上再運(yùn)行一遍,功能上重疊,實(shí)現(xiàn)方式上也基本類似;重疊的模塊導(dǎo)致請(qǐng)求訪問時(shí)的路徑很長,對(duì)于業(yè)務(wù)和數(shù)據(jù)庫性能造成的的直觀影響是延遲高、性能差。

因此,采用通用的云本地存儲(chǔ)常規(guī)架構(gòu)是無法解決紅包業(yè)務(wù)的需求,也不能設(shè)計(jì)出高性能的存儲(chǔ)產(chǎn)品。那該如何將云本地存儲(chǔ)的性能發(fā)揮到極致呢?我們的切入點(diǎn)是高性能存儲(chǔ)架構(gòu)。

 

 

上圖是高性能存儲(chǔ)架構(gòu),圖中左側(cè)是標(biāo)準(zhǔn)物理機(jī)情況下存儲(chǔ)性能達(dá)到極致的框架:它的層次比較少,數(shù)據(jù)庫經(jīng)過POSIX API直接就到標(biāo)準(zhǔn)文件系統(tǒng)、塊設(shè)備層、硬件驅(qū)動(dòng)、硬件,請(qǐng)求所經(jīng)過的模塊比上文提到的云本地存儲(chǔ)常規(guī)架構(gòu)少2-3個(gè),性能也相對(duì)有所提升。

那么如何在云主機(jī)的環(huán)境下搭建一個(gè)類似物理機(jī)的環(huán)境呢?首先云主機(jī)的必要模塊是必須保留的,應(yīng)該盡可能精簡(jiǎn)云物理機(jī)內(nèi)核中的模塊,進(jìn)而達(dá)到性能的最佳值。如上圖右側(cè)所示,首先必須保留云主機(jī)內(nèi)的標(biāo)準(zhǔn)文件系統(tǒng)和塊設(shè)備層,因?yàn)樗鼈兒蜆I(yè)務(wù)數(shù)據(jù)庫是息息相關(guān)的,標(biāo)準(zhǔn)文件系統(tǒng)提供了標(biāo)準(zhǔn)的Open、Creat、Write之類的接口,如果省去該模塊,業(yè)務(wù)是無法適配這種修改的。

對(duì)用戶而言,云物理機(jī)內(nèi)所有的修改都是透明的,因此在云物理機(jī)上只保留硬件驅(qū)動(dòng),從而達(dá)到最佳性能。

 

高性能本地存儲(chǔ)關(guān)鍵組件

 

 

在云主機(jī)內(nèi),標(biāo)準(zhǔn)文件系統(tǒng)是不能變化的,因?yàn)樗谴鎯?chǔ)與數(shù)據(jù)庫、業(yè)務(wù)交互的地方。因此,想要進(jìn)行性能優(yōu)化,只能考慮在塊設(shè)備層、硬件驅(qū)動(dòng)、硬件三個(gè)模塊入手加速本地存儲(chǔ)的性能。

經(jīng)過一系列的調(diào)研與研發(fā)測(cè)試,最終在塊設(shè)備層使用了標(biāo)準(zhǔn)virtio blk驅(qū)動(dòng);硬件驅(qū)動(dòng)使用了SPDK工具集;硬件使用了NVMe SSD。下面對(duì)這三個(gè)模塊進(jìn)行詳細(xì)的解讀與分析。

 

Virtio-blk

 

 

利用Virtio blk可以實(shí)現(xiàn)云主機(jī)和云物理機(jī)之間的高性能數(shù)據(jù)交互。Virtio提供了半虛擬化的接口,所謂半虛擬化就是在虛擬機(jī)和物理機(jī)之間通過某種方式(修改了虛擬機(jī)某些接口),從而使得虛擬機(jī)和物理機(jī)之間實(shí)現(xiàn)高速傳輸,性能比傳統(tǒng)的全虛擬化有所提高。

Virtio blk是標(biāo)準(zhǔn)塊設(shè)備接口,通過塊設(shè)備接口可以對(duì)塊設(shè)備進(jìn)行格式化、分區(qū)、創(chuàng)建文件系統(tǒng)等標(biāo)準(zhǔn)操作,對(duì)用戶完全透明,數(shù)據(jù)庫無需任何更改。Virtio blk另一個(gè)優(yōu)點(diǎn)是采用了Virtio協(xié)議,通過共享環(huán)交換數(shù)據(jù)。在上圖中,藍(lán)色部分是虛擬機(jī),紅色部分是物理機(jī)。虛擬機(jī)通過Virtio Front End將數(shù)據(jù)通過Virtio Ring傳遞到后端的Virtio Back End;Virtio Back End將這些數(shù)據(jù)處理后再回傳給Virtio Front End,完成了一次數(shù)據(jù)的交互。

 

SPDK

 

 

除了Virtio blk之外,SPDK是另一個(gè)重要的組件。SPDK全稱是Storage Performance Development Kit,它是一組用來編寫高性能、高擴(kuò)展性的用戶態(tài)存儲(chǔ)應(yīng)用的工具集。

相比于SPDK,DPDK可能更為人知,它主要是為了解決網(wǎng)絡(luò)方面的問題。SPDK在很多模塊上是與DPDK共用的,它的核心觀點(diǎn)是通過用戶態(tài)協(xié)議加無鎖設(shè)計(jì)加輪詢機(jī)制達(dá)到高性能:

(1)用戶態(tài)協(xié)議是指SPDK實(shí)現(xiàn)了用戶NVMe協(xié)議,讓用戶可以在旁路內(nèi)核的情況下去訪問設(shè)備;其缺點(diǎn)是不支持posix API、不支持標(biāo)準(zhǔn)的文件系統(tǒng),也沒有標(biāo)準(zhǔn)的設(shè)備支持,應(yīng)用性較差。

(2)無鎖設(shè)計(jì),對(duì)于高性能編程而言,無鎖設(shè)計(jì)都是核心的思想,此次不再展開。

(3)輪詢機(jī)制,SPDK提供了Polling Mode ,它摒棄了內(nèi)核中常用的中斷這類的機(jī)制,消除了中斷的影響,提高了整體性能。

 

NVMe SSD

 

 

NVMe SSD有兩個(gè)核心點(diǎn):首先SSD是PCI-E的SSD,本身的訪問速度是非常快的;采用NVMe之后,速度會(huì)更快,NVMe是用來代替SCSI的新協(xié)議,它具有高帶寬、低延遲的特點(diǎn),比SCSI協(xié)議更簡(jiǎn)單高效,提高了系統(tǒng)整體的性能。

 

數(shù)據(jù)鏈路

 

 

高性能本地云儲(chǔ)存的數(shù)據(jù)鏈路如上圖所示,在云主機(jī)中,核心數(shù)據(jù)庫、POSIX API和標(biāo)準(zhǔn)文件系統(tǒng)保持不變。云數(shù)據(jù)庫通過標(biāo)準(zhǔn)的POSIX API 訪問標(biāo)準(zhǔn)文件系統(tǒng);標(biāo)準(zhǔn)文件系統(tǒng)通過Virtio-Blk和SPDK用戶態(tài)驅(qū)動(dòng)直接交互,在SPDK用戶態(tài)驅(qū)動(dòng)中再與NVMe SSD交互,減少了數(shù)據(jù)鏈路的長度,同時(shí)提高了IO性能。

 

延遲分布

 

 

高性能本地云儲(chǔ)存搭建之后,我們使用了fio磁盤測(cè)試工具在CentOS7上對(duì)通用虛擬化架構(gòu)本地盤和阿里云高性能本地存儲(chǔ)的隨機(jī)IO平均延遲進(jìn)行了對(duì)比測(cè)試。測(cè)試時(shí)塊設(shè)備IO調(diào)度器均設(shè)置為noop,測(cè)試參數(shù)為--direct=1--bs=4k--iodepth=1--numjobs=1。

從上圖可以看出,在隨機(jī)讀兩方面,阿里云高IO本地盤延遲只有70us左右,而通用虛擬化架構(gòu)本地盤延遲在130us左右;隨機(jī)寫方面,阿里云高IO本地盤的延遲只有30us左右;通用虛擬化架構(gòu)本地盤延遲在60us左右。

 

數(shù)據(jù)庫性能對(duì)比

 

 

上圖是新舊數(shù)據(jù)庫Index-Update性能對(duì)比,可以看到:在舊數(shù)據(jù)庫實(shí)例的情況下,TPS只有14242.65、RT為8.21ms;新數(shù)據(jù)庫實(shí)例下,TPS可以達(dá)到26969.81、RT為1.7ms,整體性能大幅度提升。

 

釋放紅包技術(shù)福利,即將在公有云上線

 

通過延遲分布和數(shù)據(jù)庫性能的對(duì)比,可以看出高本地云存儲(chǔ)對(duì)性能提升起到了很大的作用,在紅包活動(dòng)中發(fā)揮了很大的作用。在完成雙十一及紅包活動(dòng)之后,阿里云希望將高性能本地云存儲(chǔ)技術(shù)推廣給其他用戶使用。因此,在今年2月底,高性能本地云存儲(chǔ)在公共云上線,它的技術(shù)架構(gòu)與支撐支付寶紅包的技術(shù)架構(gòu)相同:采用NVMe SSD+SPDK技術(shù),也是全球首家采用該技術(shù)的高性能本地盤。

 

 

本地盤2.0性能非常好,容量為3TB、IOPS為50萬、延遲為50us、帶寬為4GB。具體參數(shù)如下表所示:

 

 

可以看出,最優(yōu)產(chǎn)品讀寫IOPS單盤可達(dá)24000;讀帶寬達(dá)2GBps;寫帶寬為1.2GBps。

 

高IO本地存儲(chǔ)實(shí)例

 

 

有了本地盤作為基礎(chǔ),如果想要實(shí)現(xiàn)高性能本地存儲(chǔ)實(shí)例,還需要在計(jì)算性能、存儲(chǔ)IO性能、網(wǎng)絡(luò)性能上進(jìn)行相應(yīng)地提升:

(1)為了保證計(jì)算性能穩(wěn)定,采用了Intel Xeon E5-2682 v4(Broadwell)處理器,主頻為2.5GHz,DDR4內(nèi)存。

(2)為了保證存儲(chǔ)IO性能穩(wěn)定,采用了基于NVMe SSD和SPDK技術(shù),提供高達(dá)數(shù)十萬隨機(jī)IO讀寫能力的同時(shí),保持在us級(jí)別的時(shí)延水平。

(3)網(wǎng)絡(luò)性能方面,實(shí)例網(wǎng)絡(luò)性能與計(jì)算規(guī)格相對(duì)應(yīng)(實(shí)例計(jì)算規(guī)格越大則網(wǎng)絡(luò)性能越強(qiáng))。

綜上所述,將SPDK與NVMe SSD技術(shù)結(jié)合起來,能夠讓本地盤接近或類似物理機(jī)的性能,在雙十一以及新春紅包這類峰值壓力很大的場(chǎng)景下,性能依舊很好。

 

關(guān)于分享者:

 

馬濤,花名伯瑜,阿里云系統(tǒng)和塊存儲(chǔ)負(fù)責(zé)人、資深專家、國內(nèi)知名Linux內(nèi)核研發(fā)人員,10年以上操作系統(tǒng)以及存儲(chǔ)研發(fā)經(jīng)驗(yàn),在塊存儲(chǔ),文件系統(tǒng)等領(lǐng)域?yàn)長inux內(nèi)核主線做出了卓越的貢獻(xiàn),在Linux內(nèi)核主線有超過300個(gè)提交,同時(shí)對(duì)分布式文件系統(tǒng),分布式存儲(chǔ)等領(lǐng)域也有多年深入的研究。目前目前帶領(lǐng)團(tuán)隊(duì)負(fù)責(zé)阿里巴巴Linux內(nèi)核以及分布式塊存儲(chǔ)等相關(guān)的研發(fā)工作。

 

文章摘自云棲社區(qū)

 

歡迎聯(lián)系寶通集團(tuán)咨詢英特爾產(chǎn)品信息

寶通集團(tuán)聯(lián)系方式

咨詢熱線:400-830-0107

寶通官網(wǎng):m.bjshst.cn

客戶垂詢郵箱:Customer@ex-channel.com

客戶垂詢QQ:1305742380

地址:深圳市福田區(qū)深南大道1006號(hào)國際創(chuàng)新中心C座11樓

郵編:518026

電話:0755-82964380
郵件:Customer@ex-channel.com
地址:深圳市福田區(qū)深南大道1006號(hào)國際創(chuàng)新中心C座10樓

  • 官方微信

  • 官方微博
  • 服務(wù)熱線

    0755-83647532

    微信服務(wù)號(hào)

    [!--page.stats—]