本公開總體涉及計算。具體地,本公開涉及用于改進的數(shù)據(jù)讀取和寫入過程以及存儲的系統(tǒng)和方法。
背景技術(shù):
1、各種類型的計算設(shè)備普遍地包括用于在存儲介質(zhì)中記錄(例如,存儲)信息(例如,數(shù)據(jù))的數(shù)據(jù)存儲設(shè)備。此外,大多數(shù)行業(yè)是數(shù)據(jù)驅(qū)動的,從而創(chuàng)建、存儲、提取、分析和呈現(xiàn)極大量的數(shù)據(jù)。至少由于這些原因,包括大型數(shù)據(jù)集的大量數(shù)據(jù)需要被讀取和寫入到數(shù)據(jù)存儲設(shè)備。隨著數(shù)據(jù)被存儲在專用云、公共云和混合云環(huán)境中,消費者在數(shù)據(jù)讀取/寫入操作中不斷地尋求更快的每秒輸入/輸出速率、更大的吞吐量、增加的持久性、冗余和其他有益的特性,以加速眾多不同的應(yīng)用。這些應(yīng)用可以包括人工智能、機器學(xué)習(xí)、低時延使用等其他應(yīng)用。此外,不僅為了更快的故障排除和平均修理時間(mean?time?to?repair,mttr),還為了隱私性、合規(guī)性和管理,對于使用存儲裝置的可觀察性要求已經(jīng)變得更加嚴格。
2、無論數(shù)據(jù)存儲設(shè)備是以下何種情況,上述要求都是適用的:用于附接到用于塊存儲的裸金屬(bm)存儲設(shè)備和/或虛擬機(vm)存儲設(shè)備、存儲區(qū)域網(wǎng)絡(luò)(san)、虛擬san(vsan)、用于網(wǎng)絡(luò)附接的存儲(nas)(例如,連接到向客戶端異構(gòu)組提供數(shù)據(jù)訪問的計算機網(wǎng)絡(luò)的文件級(與塊級存儲相對)計算機數(shù)據(jù)存儲服務(wù)器)、用于對象存儲(例如,一種將數(shù)據(jù)作為對象進行管理的計算機數(shù)據(jù)存儲器,該存儲器與其他存儲架構(gòu)是相對的,其他存儲架構(gòu)例如將數(shù)據(jù)作為文件層級結(jié)構(gòu)進行管理的文件系統(tǒng)以及將數(shù)據(jù)作為扇區(qū)和軌道內(nèi)的塊進行管理的塊存儲器)、或者對數(shù)據(jù)存儲設(shè)備的其他使用。其中,bm/vm存儲可能是最受歡迎的并且可以是本地連接的(例如,web服務(wù)(web?services,aws)實例存儲、云平臺(cloud?platform,gcp)本地)或網(wǎng)絡(luò)連接的(例如,aws彈性塊存儲(elastic?block?store,ebs)、gcp永久磁盤等)。
3、每秒輸入/輸出操作(iops)是一種數(shù)據(jù)存儲設(shè)備性能衡量指標(biāo),該指標(biāo)顯示存儲介質(zhì)每秒可以讀取和寫入命令的速度。此外,吞吐量是對數(shù)據(jù)存儲設(shè)備的數(shù)據(jù)傳輸速率的衡量指標(biāo)。iops、吞吐量和其他數(shù)據(jù)存儲性能衡量指標(biāo)的發(fā)展速度和程度不如例如網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)性能(例如,每秒分組數(shù)(pps)、吞吐量等)。例如,aws聯(lián)網(wǎng)性能(例如,在彈性計算云(ec2)中的aws聯(lián)網(wǎng)性能)可以獲得每秒100吉字節(jié)(gigabyte?per?second,gbps)的吞吐量。然而,帶有硬盤驅(qū)動器(hdd)的aws?ebs的吞吐量可能小于每秒500兆字節(jié)(mebibytes?persecond,mibps)(例如,兆字節(jié)即1024千字節(jié)(千字節(jié)即1024字節(jié))),并且?guī)в泄虘B(tài)驅(qū)動器(ssd)的aws?ebs的吞吐量可能小于每秒4吉比特(gibibytes?per?second,gibps),而iops小于256k,塊大小小于64太字節(jié)(tib)。此外,aws彈性文件系統(tǒng)(efs)具有小于gbps的吞吐量和小于500k的iops。無論是使用具有小型計算機系統(tǒng)接口(scsi)規(guī)范或非易失性快速存儲器(nvme)邏輯設(shè)備接口規(guī)范的本地固態(tài)硬盤,gcp與持久磁盤是類似的。在上面的示例中,需要注意的是,一個吉字節(jié)(gb)被定義為千兆字節(jié)(例如,1,000,000,000)字節(jié),而一個gib是1024兆字節(jié)(例如,1,073,741,824)字節(jié)。
4、存在許多限制數(shù)據(jù)存儲性能的障礙。這些障礙包括例如現(xiàn)有的數(shù)據(jù)存儲協(xié)議以及這些數(shù)據(jù)存儲協(xié)議如何阻礙更智能的存儲設(shè)備內(nèi)算法。這些障礙還可以包括使用極其復(fù)雜和定制的存儲聯(lián)網(wǎng)協(xié)議(例如,互聯(lián)網(wǎng)scsi(iscsi)),這些存儲聯(lián)網(wǎng)協(xié)議為數(shù)據(jù)存儲和相關(guān)處理提供日常用戶無法訪問的快速通道。
5、數(shù)據(jù)存儲范例可以涉及通過外圍組件互連快速(pcie)總線與處理設(shè)備(中央處理單元(cpu))的緩存進行向磁盤的數(shù)據(jù)塊(例如,4k數(shù)據(jù)塊)的寫入和讀出。聯(lián)網(wǎng)包括通過pcie總線從/向cpu的高速緩存接收和發(fā)送網(wǎng)絡(luò)接口控制器(nic)的數(shù)據(jù)包。相比之下,數(shù)據(jù)存儲是通過網(wǎng)絡(luò)來操作的,使用諸如iscsi之類的技術(shù)導(dǎo)致阻抗失配??傮w數(shù)據(jù)讀取/寫入處理通常由于使用memcpy命令而表現(xiàn)不佳。memcpy命令提供將存儲器的指定字節(jié)從源地址復(fù)制到目的地地址。然而,塊與控制協(xié)議數(shù)據(jù)單元(pdu)的交錯和解交錯,以及隨后對傳輸控制協(xié)議(tcp)的分段,都會引起兩個memcpy命令,從而對數(shù)據(jù)讀取性能產(chǎn)生重大影響。對于來自網(wǎng)絡(luò)的要被寫出到磁盤的傳入塊存在類似的問題。這涉及對tcp數(shù)據(jù)流進行去分段,并對數(shù)據(jù)塊的pdu進行去交錯。
6、上述示例中的存儲吞吐量由于普遍依賴于iscsi、遠程直接存儲器訪問(remotedirect?memory?access,rdma)協(xié)議、以及其他協(xié)議而極大地受到限制,而這些協(xié)議已將scsi協(xié)議發(fā)展為可在互聯(lián)網(wǎng)協(xié)議(ip)和以太網(wǎng)網(wǎng)絡(luò)上運行,并在存儲區(qū)域網(wǎng)絡(luò)(san)中映射scsi協(xié)議pdu。一些進步(例如互聯(lián)網(wǎng)工程任務(wù)組(internet?engineering?task?force,ietf)征求意見稿(request?for?comments,rfc)8154)已通過nas/網(wǎng)絡(luò)文件系統(tǒng)(nas/network?file?system,nfs)將scsi的使用擴展到訪問塊存儲。雖然nvme協(xié)議具有64k隊列和僅13條指令來引導(dǎo)數(shù)據(jù)移動,已成為scsi協(xié)議可行且實用的替代方案,并已在生產(chǎn)部署中使用,但大約十年來,結(jié)構(gòu)上的nvm快速(nvm?express?over?fabrics,nvme-of)并未成為iscsi的可行替代方案,因為對它的支持僅限于一組傳統(tǒng)的底層協(xié)議,例如rdma、融合以太網(wǎng)上的rdma(rdma?over?converged?ethernet,roce)和和光纖信道(fc)協(xié)議等。類似地,超定標(biāo)器(hyperscaler)受到用于遠程存儲的傳統(tǒng)技術(shù)的限制。
7、總之,當(dāng)前的數(shù)據(jù)存儲解決方案受到許多約束,例如復(fù)雜的協(xié)議,這使得當(dāng)前的數(shù)據(jù)存儲解決方案不適合滿足不斷發(fā)展的數(shù)據(jù)存儲性能要求。
技術(shù)實現(xiàn)思路
1、根據(jù)本公開的第一方面,提供了一種非暫態(tài)計算機可讀介質(zhì),存儲指令,指令在被執(zhí)行時使處理器執(zhí)行操作,操作包括:在處理設(shè)備處,將在網(wǎng)絡(luò)接口控制器(nic)設(shè)備處接收的第一消息的超文本傳輸協(xié)議版本3(http/3)報頭計算成非易失性存儲器快速(nvme)消息;將nvme消息傳輸?shù)脚c處理設(shè)備相關(guān)聯(lián)的設(shè)備;以及利用nvme消息,在nic和數(shù)據(jù)存儲設(shè)備之間直接傳輸數(shù)據(jù)。
2、根據(jù)本公開的第二方面,提供了一種用于管理數(shù)據(jù)存儲過程的方法,包括:在處理設(shè)備處,將在網(wǎng)絡(luò)接口控制器(nic)設(shè)備處接收的第一消息的超文本傳輸協(xié)議版本3(http/3)報頭計算成非易失性存儲器快速(nvme)消息;將nvme消息傳輸?shù)脚c處理設(shè)備相關(guān)聯(lián)的設(shè)備;以及利用nvme消息,在nic和數(shù)據(jù)存儲設(shè)備之間直接傳輸數(shù)據(jù)。
3、根據(jù)本公開的第三方面,提供了一種系統(tǒng),包括:處理器;以及非暫態(tài)計算機可讀介質(zhì),存儲指令,指令在由處理器執(zhí)行時使處理器執(zhí)行操作,操作包括:在處理器處,將在網(wǎng)絡(luò)接口控制器(nic)設(shè)備處接收的第一消息的超文本傳輸協(xié)議版本3(http/3)報頭計算成非易失性存儲器快速(nvme)消息;將nvme消息傳輸?shù)脚c處理器相關(guān)聯(lián)的設(shè)備;以及利用nvme消息,在nic和數(shù)據(jù)存儲設(shè)備之間直接傳輸數(shù)據(jù)。