自30年前發(fā)布以來,POSIX一直是基于Unix的系統(tǒng)(包括Linux)的標(biāo)準(zhǔn)文件系統(tǒng)接口。它在處理用戶地址空間或內(nèi)存中的數(shù)據(jù)方面的有用性已賦予POSIX兼容文件系統(tǒng)并在需要大量數(shù)據(jù)處理的應(yīng)用(如深度學(xué)習(xí))中存儲了命令。例如,與POSIX兼容的Luster文件系統(tǒng)為大多數(shù)超級計(jì)算機(jī)提供了動力,而POSIX的主導(dǎo)地位也繼續(xù)在市場中下滑。
盡管POSIX有其局限性,但隨著I / O請求數(shù)量的增加和數(shù)據(jù)規(guī)模的擴(kuò)大,狀態(tài)性,規(guī)定性元數(shù)據(jù)和強(qiáng)一致性等功能成為性能瓶頸,從而限制了POSIX兼容系統(tǒng)的可伸縮性。如今,這在深度學(xué)習(xí),人工智能和其他數(shù)據(jù)密集型用途中通常是一個問題,但是隨著數(shù)據(jù)和對其進(jìn)行指數(shù)分析的需求呈指數(shù)增長,隨著時間的流逝,該問題逐漸向市場轉(zhuǎn)移。
輸入對象存儲。與文件系統(tǒng)不同,對象存儲不需要分層數(shù)據(jù)結(jié)構(gòu)。它是一個統(tǒng)一的數(shù)據(jù)池,每個數(shù)據(jù)都由其元數(shù)據(jù)定義。它沒有可伸縮性限制,非常適合高端存儲和應(yīng)用程序,但是它具有POSIX沒有的一個性能限制:數(shù)據(jù)請求必須通過POSIX文件系統(tǒng)堆棧。POSIX通過mmap()函數(shù)解決了這個問題,該函數(shù)使用戶空間成為操作系統(tǒng)和存儲之間的中介。
最近,包括長期企業(yè)存儲論壇貢獻(xiàn)者亨利·紐曼(Henry Newman)在內(nèi)的一些工程師通過創(chuàng)建mmap_obj()來利用POSIX的這一優(yōu)勢,該函數(shù)使對象存儲系統(tǒng)能夠處理內(nèi)存中的數(shù)據(jù)。有了對象存儲的可伸縮性(和較低的成本),這一突破可能意味著POSIX在計(jì)算密集型環(huán)境中的主導(dǎo)地位將終結(jié)。
POSIX,滿足對象存儲
盡管POSIX是在不同操作系統(tǒng)之間傳輸應(yīng)用程序的有用方法,但是它沒有可擴(kuò)展性來滿足最苛刻的應(yīng)用程序,并且其速度隨著需求的增加而下降。
然后,訪問文件系統(tǒng)存儲中的數(shù)據(jù)成為一個挑戰(zhàn),特別是對于具有大量數(shù)據(jù)和性能需求的組織。對象存儲是一種較新的數(shù)據(jù)存儲形式,可以保存任何形狀的數(shù)據(jù)(稱為對象)。希捷于1999年開始開發(fā),部分是基于RAID發(fā)明者Garth Gibson等人的先前工作。
對象存儲是三種存儲方式(文件和塊的存儲方式)中最具擴(kuò)展性的,因?yàn)樗试S以任何形式存儲和訪問大量數(shù)據(jù)。數(shù)據(jù)存儲在統(tǒng)一池中,并且可以通過每個數(shù)據(jù)對象的元數(shù)據(jù)進(jìn)行管理。但是請求存儲的對象數(shù)據(jù)需要額外的處理時間,因?yàn)檎埱蟊仨毻ㄟ^內(nèi)核或操作系統(tǒng)。
對象存儲是非常大的數(shù)據(jù)存儲的理想選擇,并且已廣泛用于云計(jì)算中,但是到目前為止,POSIX具有一個優(yōu)點(diǎn):mmap()協(xié)議允許在用戶地址空間中處理數(shù)據(jù),而無需通過內(nèi)核,這仍然是一個瓶頸,多年來性能幾乎沒有改善。
使用mmap_obj()不再具有優(yōu)勢,現(xiàn)在對象存儲也可以處理用戶空間中的數(shù)據(jù)。這對于NVMeOF框架尤其重要-擁有可以無限擴(kuò)展的平面存儲池,并且具有處理高性能內(nèi)存中數(shù)據(jù)的能力,對象存儲現(xiàn)在有可能使POSIX文件系統(tǒng)過時。
隨著存儲系統(tǒng)中的文件超過數(shù)十億個,POSIX可伸縮性和性能限制可能意味著對象存儲成為首選,因?yàn)樗哂刑幚碛脩艨臻g中數(shù)據(jù)的能力。在那個級別上,POSIX的I / O和可伸縮性限制將成為瓶頸。
NVMeOF和mmap改變了游戲
盡管中介程序(例如S3文件系統(tǒng)接口)很有用,但它們?nèi)孕枰诖娣旁趯ο蟠鎯ο到y(tǒng)中之前或之后由POSIX應(yīng)用程序處理數(shù)據(jù)。
但是,如果有一種更快,更可擴(kuò)展的方法來訪問對象存儲中的數(shù)據(jù)呢?
面料上的非易失性內(nèi)存Express(NVMeOF)是一種相對較新的技術(shù),其中面料術(shù)語“網(wǎng)絡(luò)結(jié)構(gòu)”是指網(wǎng)絡(luò)結(jié)構(gòu),連接到計(jì)算機(jī)網(wǎng)絡(luò)的設(shè)備允許將數(shù)據(jù)傳輸?shù)皆撛O(shè)備中,例如SSD。使用內(nèi)存映射將對象數(shù)據(jù)復(fù)制到設(shè)備中意味著所有數(shù)據(jù)都在設(shè)備上而不是在POSIX中臨時存儲和處理。SSD或其他外部設(shè)備具有更多可用的計(jì)算空間。外部設(shè)備(該計(jì)算機(jī)的輔助存儲的一種形式)直接連接到計(jì)算機(jī)系統(tǒng),并且CPU擁有一條通往設(shè)備中數(shù)據(jù)的路徑:連接后幾乎可用作主存儲器。內(nèi)存在計(jì)算過程中停留在SSD中,主動訪問數(shù)據(jù)(尤其是元數(shù)據(jù))的速度變得更快。在對象存儲和數(shù)據(jù)處理方面一直尋求低延遲。借助NVMeOF,它將變得隨時可用。
NVMe(原始版本)使用閃存連接(例如驅(qū)動器)使數(shù)據(jù)可用于SSD。但是NVMeOF使該數(shù)據(jù)可用于整個網(wǎng)絡(luò)。NVMeOF不僅可以處理連接到計(jì)算機(jī)的設(shè)備中的數(shù)據(jù),還可以使用戶通過網(wǎng)絡(luò)訪問內(nèi)存。數(shù)據(jù)中心和數(shù)據(jù)湖中的對象存儲和NVMeOF意味著比以前已知的更高的計(jì)算能力。數(shù)據(jù)湖是原始的,非結(jié)構(gòu)化數(shù)據(jù)的存儲庫。將對象存儲(而不是文件存儲)用于數(shù)據(jù)湖將使數(shù)據(jù)分析師更輕松地管理和分析數(shù)據(jù)。使用內(nèi)存映射和NVMeOF快速訪問它可以提供更高水平的高性能計(jì)算。
NVMeOF還可以為數(shù)據(jù)中心提供更高的計(jì)算能力。Google,IBM和Amazon Web Services已經(jīng)在使用基于云的對象存儲。當(dāng)前,訪問數(shù)據(jù)中心中的對象存儲的數(shù)據(jù)需要應(yīng)用程序接口(API)以及輸入和輸出命令。通過將NVMeOF與內(nèi)存映射一起使用,數(shù)據(jù)中心可以繞過使用服務(wù)器的操作系統(tǒng)(通過內(nèi)核)來處理數(shù)據(jù)。也不需要中間接口。數(shù)據(jù)中心可以將對象存儲的數(shù)據(jù)直接帶入內(nèi)存進(jìn)行處理。
通過為應(yīng)用程序使用REST接口,可以與對象存儲一起完全忽略對POSIX接口的需要。
NVMeOF和內(nèi)存映射技術(shù)與對象存儲配合使用,將改變數(shù)據(jù)中心,數(shù)據(jù)湖和個人處理數(shù)據(jù)的方式。網(wǎng)絡(luò)計(jì)算能力和速度將飛速增長。盡管這可能有其局限性(例如將文件和塊存儲中的數(shù)據(jù)傳輸?shù)綄ο蟠鎯χ校@將意味著數(shù)據(jù)密集型計(jì)算的新發(fā)展。在數(shù)據(jù)中心和云基礎(chǔ)架構(gòu)必須快速擴(kuò)展以滿足數(shù)據(jù)存儲和處理需求的時代,通過內(nèi)存映射訪問對象存儲可能是加速數(shù)據(jù)中心性能的無與倫比的方式。
mmap_obj()開發(fā)人員注意到,仍需要完成一項(xiàng)工作:類似于POSIX函數(shù),需要有一個munmap_obj()函數(shù)從用戶空間釋放數(shù)據(jù)。
本文翻譯自:enterprisestorage