如圖,這里黑色Pages相對(duì)藍(lán)色的生命周期較長,如果不能根據(jù)生命周期對(duì)Block的數(shù)據(jù)進(jìn)行組織,將會(huì)產(chǎn)生很多的Pages在空間垃圾回收時(shí)需要遷移(效果如圖上方所示)。假設(shè)能夠很好的組合這些Pages,使得在一個(gè)Block中的全部Pages生命周期變化最小化;當(dāng)進(jìn)行空間垃圾回收時(shí),就不需要再搬移這些Pages(效果如圖下方所示)。

這里,我們采用的基本方法是強(qiáng)化學(xué)習(xí)(Reinforcement Learning),通過學(xué)習(xí)I/O訪問模式,來判斷那些Pages應(yīng)該放在一個(gè)Block里面。如果,我們發(fā)現(xiàn)組合不好,使得Pages之間生命周期變化過大;那么,我們通過反饋機(jī)制給判別模型以懲罰,最終使每一個(gè)Block里面的Pages的生命周期盡可能一致。

下面是我們做的實(shí)驗(yàn)結(jié)果,通過在30個(gè)左右的I/O Traces數(shù)據(jù)上的對(duì)比實(shí)驗(yàn),大家可以看到“寫放大”的減少是很可觀的;并且,整個(gè)方法是存儲(chǔ)系統(tǒng)自動(dòng)完成的,無須工程師的人工干預(yù)。

目前,還有一項(xiàng)技術(shù)也在產(chǎn)品里面做實(shí)驗(yàn)。我們注意到,監(jiān)督式學(xué)習(xí)(Supervised Learning)模型中循環(huán)神經(jīng)網(wǎng)絡(luò)可對(duì)數(shù)據(jù)序列有效預(yù)測,其在語音識(shí)別、語言處理等領(lǐng)域被廣泛運(yùn)用。我們技術(shù)的基本原理就是——將其這個(gè)優(yōu)勢發(fā)揮在存儲(chǔ)領(lǐng)域,利用這個(gè)技術(shù)來學(xué)習(xí)I/O Trace的模式并預(yù)測。在一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)基本的Cell里,這些Gates需要長時(shí)間地在I/O操作的同時(shí)進(jìn)行學(xué)習(xí),產(chǎn)生下一階段I/O的預(yù)測結(jié)果;并通過反向傳播機(jī)制,對(duì)模型進(jìn)行調(diào)整,以求更擬合實(shí)際I/O模式。

隨著學(xué)習(xí)時(shí)間的增加、模型的不斷訓(xùn)練,一個(gè)星期或者兩個(gè)星期就會(huì)看到效果,根據(jù)歷史來預(yù)測將來。預(yù)測問題一般需要定義一個(gè)滑動(dòng)窗口,這個(gè)滑動(dòng)窗口包括:一部分歷史的I/O,當(dāng)前的I/O,以及未來的I/O。我們的網(wǎng)絡(luò)有四層:Input Layer、Hidden Layer、LSTM Layer和Output Layer。最終模型大小只有264KB。

隨著學(xué)習(xí)時(shí)間的增加、模型的不斷訓(xùn)練,一個(gè)星期或者兩個(gè)星期就會(huì)看到實(shí)際與預(yù)測的I/O模式逐漸擬合。這個(gè)圖展示了系統(tǒng)運(yùn)行時(shí)實(shí)時(shí)的比較情況,紅線代表了實(shí)際的I/O Trace,藍(lán)線則是預(yù)測的I/O Trace。大家注意到了,在通過滑動(dòng)窗口選取不同時(shí)間段上,兩者的形狀和結(jié)果都非常接近;并且,基于FPGA的開發(fā)實(shí)驗(yàn)中,資源占用也是可以接受的。

通過上面的介紹,大家看到了,通過機(jī)器學(xué)習(xí)與人工智能技術(shù)的運(yùn)用,存儲(chǔ)系統(tǒng)得到了性能的提升與功能的增強(qiáng)。另外,我們已與東芝合作,采用基于XL-Flash進(jìn)行SSD優(yōu)化與研究。DapuStor對(duì)存儲(chǔ)新技術(shù)的探索將在未來給大家?guī)砀嗟捏@喜,更多的機(jī)器學(xué)習(xí)技術(shù)在閃存固態(tài)盤領(lǐng)域的應(yīng)用與研究,將使新一代存儲(chǔ)智能化——使其具有更好的性能、更可靠的穩(wěn)定性、更久的壽命。

分享到

zhangnn

相關(guān)推薦