PBData核心原力:初探爆炸式增長(zhǎng)、指數(shù)級(jí)上升的卓越性能之NVMe
從最早的HDD機(jī)械硬盤(pán)到SSD固態(tài)硬盤(pán),是一個(gè)物理科學(xué)上的更迭。隨后,SSD硬盤(pán)普遍出現(xiàn)在人們的視野里,常用來(lái)打游戲,做運(yùn)算以及需要快速存儲(chǔ)大量數(shù)據(jù)的場(chǎng)景。嚴(yán)格來(lái)講,NVMe是一個(gè)接口規(guī)范,而SSD是物理科學(xué)產(chǎn)物。SSD支持包含NVMe、PCI-E等多種接口協(xié)議,以滿足不同用途目的。
存儲(chǔ)是現(xiàn)代企業(yè)IT硬件的核心基礎(chǔ)之一。存儲(chǔ)系統(tǒng)所采用的數(shù)據(jù)存儲(chǔ)方式大致可分為DAS,NAS和SAN這幾種。 隨著基于NAND Flash的SSD的發(fā)展,傳統(tǒng)的SCSI協(xié)議已經(jīng)制約了SSD在高并發(fā)和低延時(shí)上的繼續(xù)發(fā)展。
為了應(yīng)對(duì)這種軟件協(xié)議上的制約,NVMe應(yīng)運(yùn)而生,其硬件上直接使用PCIe總線代替專(zhuān)用存儲(chǔ)總線,軟件協(xié)議上設(shè)計(jì)了高達(dá)65535個(gè)I/O隊(duì)列,每個(gè)隊(duì)列上65536個(gè)并發(fā)命令,極大的提升了存儲(chǔ)協(xié)議性能上限。
NVMe傳輸模型所示,每個(gè)NVMe host上都會(huì)有N個(gè)NVMe core,其中一個(gè)為管理相關(guān)的core,其余為I/O core,為了性能考慮,一般I/O core數(shù)量和當(dāng)前系統(tǒng)中CPU數(shù)量相同。
每個(gè)Core上都配置有發(fā)送隊(duì)列和完成隊(duì)列,其用于給controller發(fā)送消息和接收controller消息。根據(jù)系統(tǒng)資源配置和應(yīng)用負(fù)載要求,可以配置多個(gè)發(fā)送和接收隊(duì)列,每個(gè)core上支持配置成發(fā)送、接收隊(duì)列配對(duì)的方式,也支持多個(gè)發(fā)送隊(duì)列共享一個(gè)接收隊(duì)列的方式。管理隊(duì)列僅支持發(fā)送和接收配對(duì)的方式。
應(yīng)用了NVMe協(xié)議后,單個(gè)SSD可以達(dá)到十幾萬(wàn),甚至幾十萬(wàn)的隨機(jī)讀寫(xiě)IOPS,這在SCSI時(shí)代簡(jiǎn)直是不可思議的事情。然而,幸福的煩惱又產(chǎn)生了,單機(jī)軟件基本上不能消耗完這些性能,如何讓這些高性能的NVMe SSD在多個(gè)服務(wù)器之間共享成為了核心問(wèn)題?
傳統(tǒng)的SAN存儲(chǔ)網(wǎng)絡(luò),大部分都是基于SCSI協(xié)議發(fā)展而來(lái),無(wú)論基于TCP的iSCSI,還是基于RDMA技術(shù)的iSER, SRP,都無(wú)法滿足當(dāng)前NVMe SSD的性能要求,那么為什么不把如此高性能的NVMe協(xié)議應(yīng)用于存儲(chǔ)網(wǎng)絡(luò)呢?
答案當(dāng)然是肯定的,NVMe協(xié)議1.3中就規(guī)定了NVMe over Fabric相關(guān)協(xié)議內(nèi)容。
什么是NVMe over Fabric
NVM Express over Fabric定義了一個(gè)基于NVMe塊存儲(chǔ)的通用軟件架構(gòu),其可以支持各種存儲(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)。簡(jiǎn)單來(lái)講,NVMe over Fabric定義了一組協(xié)議,可以支持Fibre Channel, Inifiband, RoCE, iWARP這些存儲(chǔ)網(wǎng)絡(luò):
當(dāng)前NVMe over fabric支持的網(wǎng)絡(luò)結(jié)構(gòu),從軟件的實(shí)現(xiàn)上可以分為以下幾類(lèi):
- RDMA(包括Infiniband, RoCE, iWARP)
- Fibre Channel
- PCIe
盡管軟件上多種實(shí)現(xiàn)方式,NVME在抽象層定義了統(tǒng)一的數(shù)據(jù)消息格式,當(dāng)給NVMe設(shè)備發(fā)送消息的時(shí)候,各種瑣碎的消息都被封裝在capsule里面統(tǒng)一發(fā)送,這樣可以提高傳輸效率和降低消息的平均延時(shí)。
NVMe的實(shí)際效用
而采用了該技術(shù)的PBData一體機(jī),不僅僅具備常規(guī)意義上的SSD高速,更具有數(shù)據(jù)傳輸意義上的高速。
為什么這么講,因?yàn)槌R?guī)的SSD復(fù)制操作消耗CPU和內(nèi)存,而企業(yè)級(jí)的數(shù)據(jù)中心,在新一代的技術(shù)下,是顛覆傳統(tǒng),極少占用資源,直接傳入存儲(chǔ)空間。
PBData數(shù)據(jù)庫(kù)一體機(jī)的基本配置
該設(shè)備是某航空采購(gòu)的天璣眾多產(chǎn)品的其中一臺(tái)基本型,具備眾多超凡的基本能力:
用于高性能計(jì)算、熱插拔閃存、Infiniband網(wǎng)絡(luò)、RDMA 遠(yuǎn)程直接存取數(shù)據(jù)的數(shù)據(jù)庫(kù)解決方案,提供高可用、易擴(kuò)展、高性能的數(shù)據(jù)庫(kù)服務(wù),適用于 OLAP、 OLTP 以及混合負(fù)載等各種應(yīng)用場(chǎng)景下的極限性能需求,支持 Oracle 等各種主流數(shù)據(jù)庫(kù)。
該航空公司采購(gòu)的數(shù)十臺(tái)不同機(jī)型存儲(chǔ)矩陣,控制數(shù)千人在線延遲60ms內(nèi),其中TPM、TPS等提升性能3-4倍左右,高達(dá)傳統(tǒng)機(jī)型20多倍的IOPS將吞吐量連升3級(jí),不僅滿足了現(xiàn)階段的業(yè)務(wù)需求,還極大的擴(kuò)展了面向未來(lái)業(yè)務(wù)的處理能力