隨著閃存技術(shù)的快速發(fā)展,固態(tài)盤(pán)的存儲(chǔ)容量和性能均有顯著提升,尤其是其高達(dá)200TB的容量和15GB/s的帶寬的,以及百萬(wàn)級(jí)的吞吐量的固態(tài)盤(pán)的出現(xiàn),這些特性使得單個(gè)固態(tài)盤(pán)能夠支持多個(gè)租戶共享使用。
吳非教授強(qiáng)調(diào)了固態(tài)盤(pán)虛擬化技術(shù)在支持多租戶共享方面的作用。
她提到,PCIe單根虛擬化技術(shù)和NVMe命名空間等接口技術(shù)的發(fā)展,極大地推動(dòng)了多租戶共享固態(tài)盤(pán)的應(yīng)用。這些技術(shù)使得一個(gè)固態(tài)盤(pán)可以虛擬化為多個(gè)存儲(chǔ)設(shè)備,供不同的租戶使用,每個(gè)租戶都有獨(dú)立的I/O請(qǐng)求隊(duì)列和邏輯地址空間,從而有效地管理數(shù)據(jù)存儲(chǔ)和訪問(wèn)。
在多租戶共享固態(tài)盤(pán)的背景下,吳非教授指出,存儲(chǔ)系統(tǒng)面臨著三大主要挑戰(zhàn):性能干擾、性能不公平和性能損失。
性能干擾問(wèn)題主要源于多租戶共用同一閃存晶圓的I/O總線,造成數(shù)據(jù)傳輸?shù)脑L問(wèn)沖突,以及固態(tài)盤(pán)調(diào)度策略導(dǎo)致的調(diào)度干擾;性能不公平問(wèn)題主要體現(xiàn)在帶寬和吞吐量的分配上,不同租戶間存在明顯的性能差異;而性能損失則源于共享多租戶的資源配置不佳,以及隔離條件下給部分租戶預(yù)留的專屬資源閑置無(wú)法被其他租戶利用。
例如,面向性能公平的研究如右表所示,包括IO請(qǐng)求公平調(diào)度和空間資源公平分配兩類策略。
左圖則展示了IO請(qǐng)求調(diào)度策略的演進(jìn),從最初面向磁盤(pán)的一般性方法,逐漸演化成閃存感知的適配性方法,最后發(fā)展為可以減輕主機(jī)端軟件棧開(kāi)銷的硬件卸載方案。
面向性能公平的服務(wù)質(zhì)量保障技術(shù)主要表現(xiàn)為I/O公平調(diào)度器的設(shè)計(jì),基于調(diào)度思想的不同可劃分為預(yù)算分配和隊(duì)列仲裁兩類模型,預(yù)算分配模型通過(guò)周期性為每個(gè)租戶分配預(yù)算,各租戶在周期內(nèi)按預(yù)算進(jìn)行請(qǐng)求調(diào)度,通過(guò)限制每周期內(nèi)各租戶的最大性能,可以有效保障周期內(nèi)的性能公平,然而租戶當(dāng)前周期內(nèi)由于請(qǐng)求不足造成的預(yù)算浪費(fèi)無(wú)法被繼承到后續(xù)周期中,因此長(zhǎng)期而言,可能存在性能不公平問(wèn)題。
而隊(duì)列仲裁模型則考慮了各租戶的歷史性能,通過(guò)調(diào)整請(qǐng)求調(diào)度順序,優(yōu)先調(diào)度性能“滯后”的租戶的I/O請(qǐng)求,保障每時(shí)刻的調(diào)度都是趨近于最公平的選擇。
這些I/O請(qǐng)求調(diào)度策略最初都基于磁盤(pán)存儲(chǔ),隨著閃存固態(tài)盤(pán)的不斷普及應(yīng)用,這些方法開(kāi)始結(jié)合閃存特性,例如固態(tài)盤(pán)內(nèi)的高并發(fā)性能、閃存讀寫(xiě)速度差異等,逐漸發(fā)展為適用于閃存固態(tài)盤(pán)的I/O調(diào)度器。
隨著多處理器、多隊(duì)列固態(tài)盤(pán)等技術(shù)的發(fā)展,固態(tài)盤(pán)帶寬不斷提升,系統(tǒng)的性能瓶頸逐漸從傳統(tǒng)的存儲(chǔ)I/O瓶頸轉(zhuǎn)移為主機(jī)端CPU瓶頸,因此越來(lái)越多的工作開(kāi)始研究將主機(jī)端的I/O調(diào)度器卸載到設(shè)備內(nèi)實(shí)現(xiàn),以此減少主機(jī)端I/O棧軟件開(kāi)銷,進(jìn)一步釋放主機(jī)端有限的CPU資源,從而提升系統(tǒng)性能。
此外,也由于只有在固態(tài)盤(pán)內(nèi)才能感知到著更豐富的語(yǔ)義來(lái)做出更明智的調(diào)度選擇,例如盤(pán)內(nèi)GC對(duì)調(diào)度的影響,因此I/O調(diào)度器的硬件卸載也逐漸成了新的發(fā)展趨勢(shì)。
基于空間資源分配粒度,面向性能隔離的研究劃分為兩類分配策略,即硬隔離分配和軟隔離分配兩類。
硬隔離分配指的以channel或者die為最小分配粒度,由于每個(gè)閃存并行單元由單個(gè)租戶所獨(dú)占,因此其性能隔離性強(qiáng),但由于現(xiàn)在一個(gè)閃存die即可達(dá)數(shù)十GB大小,因此在分配不合理時(shí)難以實(shí)現(xiàn)動(dòng)態(tài)分配調(diào)整,表現(xiàn)為數(shù)據(jù)遷移開(kāi)銷大,此外,硬隔離分配還存在與現(xiàn)有閃存die級(jí)別RAID技術(shù)不兼容,大粒度磨損均衡開(kāi)銷大等問(wèn)題。
軟隔離分配則指plane或者block級(jí)的最小分配粒度,通過(guò)將不同租戶的數(shù)據(jù)存儲(chǔ)在不同的閃存塊中,避免了一個(gè)租戶的GC造成其他租戶數(shù)據(jù)的遷移,解決了GC干擾問(wèn)題,同時(shí)由于分配粒度較小,因此動(dòng)態(tài)調(diào)整分配的開(kāi)銷小,可以支持靈活的空間資源分配策略,但由于依舊存在多個(gè)租戶共享使用同一個(gè)固態(tài)盤(pán)并行單元的爭(zhēng)用問(wèn)題,因此軟隔離技術(shù)還需要與IO隔離技術(shù)相配合才能完整實(shí)現(xiàn)性能隔離目標(biāo)。
總結(jié)而言,面向性能隔離的研究如右表所示,包含空間硬隔離、空間軟隔離和IO隔離方案。
通過(guò)左圖實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),空間硬隔離方案隔離效果最強(qiáng);空間軟隔離方案和IO隔離方案隔離性弱,分別只實(shí)現(xiàn)了GC隔離和調(diào)度隔離;但二者的協(xié)同設(shè)計(jì)可以實(shí)現(xiàn)強(qiáng)隔離效果。
在面向性能隔離的服務(wù)質(zhì)量保證技術(shù)方面,現(xiàn)有研究主要從保障空間隔離和保障I/O隔離兩個(gè)方面進(jìn)行研究。
空間隔離指將不同租戶的數(shù)據(jù)寫(xiě)入不同閃存單元中,基于隔離的粒度,可劃分為硬隔離和軟隔離兩類。
由于閃存晶圓是固態(tài)盤(pán)最小并行單元,閃存晶圓及以上粒度的硬隔離方案完全避免了多租戶間的閃存爭(zhēng)用問(wèn)題,因此實(shí)現(xiàn)了強(qiáng)隔離性(包括IO隔離和GC隔離)。
而分組級(jí)和閃存塊級(jí)粒度的軟隔離方案則僅保障不同租戶數(shù)據(jù)不會(huì)寫(xiě)入同一閃存擦除單元中,因此避免了GC干擾,但隔離性弱于硬隔離方案。
IO隔離則是將IO調(diào)度資源隔離分配給各租戶,避免IO資源爭(zhēng)用。
通過(guò)實(shí)驗(yàn),我們發(fā)現(xiàn)圖(c)和圖(e)僅實(shí)現(xiàn)空間軟隔離或者IO隔離均無(wú)法實(shí)現(xiàn)多租戶間的性能隔離,且性能較差,但圖(b)結(jié)合二者的協(xié)同方案則可以實(shí)現(xiàn)相當(dāng)于圖(a)硬隔離的強(qiáng)隔離性及性能。
從左圖中可以發(fā)現(xiàn),傳統(tǒng)空間資源靜態(tài)分區(qū)分配方案只能實(shí)現(xiàn)局部最優(yōu)的性能,而空間資源共享競(jìng)爭(zhēng)使用方案只能保障次優(yōu)的性能。
因此,當(dāng)前面向性能優(yōu)化的技術(shù)提出了基于機(jī)器學(xué)習(xí)、啟發(fā)式算法等的分配模型,實(shí)現(xiàn)了負(fù)載自適應(yīng)地動(dòng)態(tài)調(diào)整資源分配,最大化空間資源利用率,提升了固態(tài)盤(pán)整體性能,然而現(xiàn)有方案均以硬隔離分配為基礎(chǔ)實(shí)現(xiàn)的動(dòng)態(tài)分配,前文已經(jīng)提到,硬隔離分配下動(dòng)態(tài)調(diào)整開(kāi)銷較大,因此我們提出了新的一項(xiàng)基于軟隔離分配的空間資源動(dòng)態(tài)調(diào)整模型,以實(shí)現(xiàn)低開(kāi)銷、靈活的、負(fù)載自適應(yīng)的空間資源動(dòng)態(tài)分配策略,提高固態(tài)盤(pán)整體性能。
在固態(tài)盤(pán)中,存在一部分用戶不可見(jiàn)的物理空間,稱之為預(yù)留空間OPS,而上面提到的重刪技術(shù)節(jié)省出大量空間資源,其本質(zhì)和預(yù)留空間一樣,都可以提高GC效率,降低寫(xiě)入放大,提升固態(tài)盤(pán)性能。
在多租戶環(huán)境下,如何分配有限的空間資源(尤其是OPS資源),對(duì)固態(tài)盤(pán)性能有很大影響;
然而,傳統(tǒng)分配方案,無(wú)論是靜態(tài)分配的分區(qū)方案,還是自由競(jìng)爭(zhēng)的共享方案,均無(wú)法最大化空間資源利用率。
Aggregate entropy代表數(shù)據(jù)熵,在使用數(shù)據(jù)縮減技術(shù)(重刪、壓縮)時(shí),固態(tài)盤(pán)呈現(xiàn)不同的數(shù)據(jù)熵值,熵值越低代表數(shù)據(jù)縮減比例越高。
當(dāng)數(shù)據(jù)熵較低時(shí),數(shù)據(jù)縮減技術(shù)減少了閃存空間的消耗,由于上層應(yīng)用不知道這種減少,因此這些減少的空間會(huì)被SSD自動(dòng)當(dāng)作額外的OPS,因此SSD本身配置的OPS大?。M坐標(biāo))對(duì)寫(xiě)放大(縱坐標(biāo))影響較?。ɡ缱髨D中綠線Low(0%)。
而典型SSD中是沒(méi)有使用數(shù)據(jù)縮減技術(shù)的,即左圖中紅線Typical SSDs(100%),數(shù)據(jù)熵值高,沒(méi)有因?yàn)閿?shù)據(jù)縮減技術(shù)而隱性配置了額外的OPS,因此SSD本身配置的OPS大小(橫坐標(biāo))對(duì)寫(xiě)放大(縱坐標(biāo))影響大,當(dāng)SSD配置的OPS較小時(shí),GC開(kāi)銷大,存在明顯的寫(xiě)入放大問(wèn)題。
此處右圖表現(xiàn)出OPS對(duì)讀性能有影響,主要是因?yàn)镚C遷移有效數(shù)據(jù)頁(yè)會(huì)阻塞用戶的讀請(qǐng)求響應(yīng),而更高的OPS配置可以降低GC開(kāi)銷,進(jìn)而減少對(duì)用戶讀請(qǐng)求的阻塞,提高用戶讀性能。
圖中展示了傳統(tǒng)分區(qū)方案性能隨分區(qū)配置變化的關(guān)系曲線。我們可以發(fā)現(xiàn),性能表現(xiàn)最佳的分區(qū)配置是動(dòng)態(tài)變化的,例如三組實(shí)驗(yàn)中兩共享租戶間的最佳分區(qū)配置比分別為2:8、4:6和9:1,也因此難以事先確定最佳配置來(lái)及時(shí)人工調(diào)整分區(qū)配置。
而不恰當(dāng)?shù)姆謪^(qū)配置又將導(dǎo)致糟糕的性能,例如藍(lán)色實(shí)驗(yàn)顯示,最差性能與最佳性能之間存在21%的性能差距。因此,傳統(tǒng)分區(qū)方案并不能適應(yīng)負(fù)載的動(dòng)態(tài)變化性。
由于傳統(tǒng)分區(qū)和共享兩種方案均不能最大化空間資源利用率,本研究提出了WA-OPShare這個(gè)新的分配策略,其可以負(fù)載自適應(yīng)的動(dòng)態(tài)調(diào)整多租戶間的空間資源分配,最終實(shí)現(xiàn)比傳統(tǒng)方案更高的系統(tǒng)性能。
其主要包含兩項(xiàng)設(shè)計(jì)方案,一個(gè)基于懶惰超級(jí)塊合并的空間資源回收方案,用以回收已分配的低效空間;另一個(gè)是基于負(fù)載特征感知的空間資源分配方案,用于動(dòng)態(tài)調(diào)整資源分配。
基于此發(fā)現(xiàn),我們提出了一項(xiàng)負(fù)載自適應(yīng)地動(dòng)態(tài)調(diào)整OPS資源地分配方案,其包含兩個(gè)策略:
首先是OPS的回收策略,我們基于閃存頁(yè)無(wú)效時(shí)間,建立閃存超級(jí)塊空間利用率模型,即,一個(gè)閃存超級(jí)塊內(nèi)無(wú)效頁(yè)越多,且無(wú)效頁(yè)存在的累計(jì)時(shí)間越長(zhǎng),該閃存超級(jí)塊利用率越低,我們定期擦除回收利用率最低的閃存超級(jí)塊,以避免空間浪費(fèi)。
在回收的同時(shí),我們通過(guò)將回收回的空閑空間返還給租戶使用,以此模擬增加OPS資源的狀態(tài),并計(jì)算這些OPS資源給租戶帶來(lái)的性能收益。
基于上述計(jì)算出的收益值,我們的OPS動(dòng)態(tài)分配策略將回收回的空閑OPS資源分配給性能收益最大的租戶,以此實(shí)現(xiàn)OPS資源分配的動(dòng)態(tài)調(diào)整并最大化資源利用率,提升固態(tài)存儲(chǔ)系統(tǒng)性能。
本研究提出了一個(gè)超級(jí)塊空間利用率模型,一方面和傳統(tǒng)貪心策略一樣,考慮盡可能小的遷移開(kāi)銷,另一方面,也綜合考慮了每個(gè)閃存頁(yè)對(duì)空間利用率的貢獻(xiàn)程度。
例如,我們將一個(gè)閃存頁(yè)被置無(wú)效和被擦除期間視為其ZombieTime,圖中白色區(qū)域的面積就是一個(gè)超級(jí)塊內(nèi)所有數(shù)據(jù)頁(yè)的ZombieTime之和,即代表了這個(gè)超級(jí)塊內(nèi)無(wú)效空間累計(jì)被浪費(fèi)了多久,因此與空間利用率成反比。
通過(guò)定期回收空間利用率最低的超級(jí)塊,釋放出其浪費(fèi)的無(wú)效空間,該方案可有效提升固態(tài)盤(pán)空間利用率及性能。
回收的空間資源交由OPS分配器進(jìn)行再分配,分配原則為哪個(gè)租戶獲得這些空間后的收益最大,就分配給哪個(gè)租戶,本方案將這個(gè)收益定義為增加單位OPS資源能帶來(lái)的帶寬提升,稱之為邊緣收益MG,如公式所示,OPS資源通過(guò)影響寫(xiě)放大,進(jìn)而影響著租戶的邊緣收益值。
本方案在測(cè)量窗口和再分配窗口間交替運(yùn)行,測(cè)量窗口用于測(cè)量每個(gè)租戶的邊緣收益值,再分配窗口期間將回收的空間資源重新分配給邊緣收益值最大的租戶,最終實(shí)現(xiàn)負(fù)載自適應(yīng)的空間資源動(dòng)態(tài)調(diào)整,提升系統(tǒng)性能。
本方案在SSD仿真平臺(tái)SSDSim上進(jìn)行了測(cè)試,實(shí)驗(yàn)包括2~8個(gè)并發(fā)運(yùn)行的負(fù)載,對(duì)比了本方案WA-OPShare與傳統(tǒng)分區(qū)及共享方案的性能,固態(tài)盤(pán)配置了25%的OP空間,實(shí)驗(yàn)負(fù)載包括如表所示的4個(gè)真實(shí)負(fù)載及順序讀寫(xiě)等另外4個(gè)合成負(fù)載。
與傳統(tǒng)的分區(qū)和共享方案相比,本方案分別最高實(shí)現(xiàn)了40.3%和31.2%的帶寬提升,即使是與通過(guò)廣泛實(shí)驗(yàn)分析得到的最佳分區(qū)配置下的性能相比,本方案也實(shí)現(xiàn)了6.9%的帶寬提升。
相比于分區(qū)方案性能嚴(yán)重依賴于分區(qū)配置的好壞,本方案可自適應(yīng)動(dòng)態(tài)調(diào)整OPS分配,無(wú)論何種初始分配狀況,其均能實(shí)現(xiàn)比傳統(tǒng)方案更好的性能。
特別的,如左下圖所示,本方案在提升寫(xiě)密集型租戶性能的同時(shí)未造成讀密集型租戶的性能損失。
我們的測(cè)試結(jié)果表明,與傳統(tǒng)分區(qū)方案相比實(shí)現(xiàn)了7%~40%的帶寬提升和10%~37%的寫(xiě)放大降低,不同于分區(qū)方案性能依賴于人工分區(qū)配置,我們的方案具備負(fù)載自適應(yīng)性,無(wú)論初始分配如何,總能自動(dòng)調(diào)整到最佳分配狀態(tài);
同時(shí),與傳統(tǒng)共享方案相比實(shí)現(xiàn)了約31%的帶寬提升和17.5%的寫(xiě)放大降低;
由于OPS資源影響寫(xiě)性能而非讀性能,因此我們的方案可以通過(guò)將讀密集型租戶的OPS資源動(dòng)態(tài)分配給寫(xiě)密集型租戶,在顯著提升寫(xiě)密集型租戶性能的同時(shí),不犧牲讀密集型租戶的性能。
我們每150分組變更一次運(yùn)行負(fù)載,以展示W(wǎng)A-OPShare的負(fù)載自適應(yīng)性,圖的上下半部分分別展示的固態(tài)盤(pán)的總帶寬,及WA-OPShare方案下各租戶間的OP空間分配情況。
我們可以發(fā)現(xiàn)WA-OPShare可以負(fù)載自適應(yīng)的動(dòng)態(tài)調(diào)整OP空間分配,并最終在4個(gè)階段中分別實(shí)現(xiàn)了11%、14%、7%和25%的帶寬提升。
總結(jié)而言,OPS資源的分配對(duì)多租戶固態(tài)盤(pán)性能至關(guān)重要,傳統(tǒng)分區(qū)方案和共享方案均無(wú)法最大化空間資源利用率,而本研究提出的方案可以負(fù)載自適應(yīng)的動(dòng)態(tài)調(diào)整OPS資源分配,進(jìn)而提升固態(tài)盤(pán)性能。
當(dāng)前面向性能公平、性能隔離和性能優(yōu)化三類目標(biāo)的服務(wù)質(zhì)量保障技術(shù)研究,較好地解決了多租戶固態(tài)盤(pán)發(fā)展面臨的性能不公平、性能干擾和性能損失三大問(wèn)題;
然而,現(xiàn)有工作也存在著資源分配模型單一、硬隔離策略不兼容RAID技術(shù)等問(wèn)題,并隨著固態(tài)盤(pán)技術(shù)的發(fā)展,出現(xiàn)了新的稀缺資源,因此如何針對(duì)這些問(wèn)題提出更好的解決方案,以及如何解決新背景下的新問(wèn)題,仍然有待進(jìn)一步研究。
一方面,現(xiàn)有工作沒(méi)有綜合考慮固態(tài)盤(pán)時(shí)間和空間2個(gè)維度上的資源分配,即如何建立時(shí)間資源和空間資源分配的統(tǒng)一模型,結(jié)合服務(wù)質(zhì)量要求和I/O 負(fù)載特征,為多個(gè)租戶分別選擇最佳的時(shí)間和空間資源分配,從而在保證服務(wù)質(zhì)量的基礎(chǔ)上最大化資源利用效率和總體性能. 例如,在保證性能公平的基礎(chǔ)上,為以讀請(qǐng)求為主的租戶分配更多I/O 時(shí)間預(yù)算,為包含大量隨機(jī)寫(xiě)請(qǐng)求的租戶分配更多空間資源(以降低垃圾回收開(kāi)銷)。
另一方面,現(xiàn)有的以總體性能優(yōu)化為目標(biāo)的閃存空間動(dòng)態(tài)分配方案都是基于硬隔離策略,存在空間分配粒度和重分配性能開(kāi)銷過(guò)大、單個(gè)租戶并行帶寬受限、不兼容固態(tài)盤(pán)內(nèi)RAID 保護(hù)技術(shù)等問(wèn)題。如何基于軟隔離策略在多租戶之間實(shí)現(xiàn)細(xì)粒度和低開(kāi)銷的動(dòng)態(tài)空間分配,以最大化存儲(chǔ)空間利用效率和總體性能,有待進(jìn)一步研究。
此外,固態(tài)盤(pán)需要為每個(gè)租戶打開(kāi)至少一個(gè)獨(dú)立的閃存塊進(jìn)行數(shù)據(jù)寫(xiě)入,以保證性能隔離,而且為租戶分配更多開(kāi)放閃存塊能夠有效提高冷熱數(shù)據(jù)分離和垃圾回收的效率。
然而,出于可靠性因素,固態(tài)盤(pán)支持同時(shí)打開(kāi)的閃存塊最大數(shù)量受限. 開(kāi)放的閃存塊成為了一種稀缺資源,對(duì)固態(tài)盤(pán)能夠支持的最大租戶數(shù)量以及租戶性能都具有關(guān)鍵影響。如何優(yōu)化固態(tài)盤(pán)可靠性機(jī)制以提供更多的開(kāi)放閃存塊資源,以及如何在多租戶之間分配開(kāi)放閃存塊資源以保證公平性和提高總體性能,都將成為重要挑戰(zhàn)。