如圖,這里黑色Pages相對藍色的生命周期較長,如果不能根據(jù)生命周期對Block的數(shù)據(jù)進行組織,將會產(chǎn)生很多的Pages在空間垃圾回收時需要遷移(效果如圖上方所示)。假設(shè)能夠很好的組合這些Pages,使得在一個Block中的全部Pages生命周期變化最小化;當(dāng)進行空間垃圾回收時,就不需要再搬移這些Pages(效果如圖下方所示)。
這里,我們采用的基本方法是強化學(xué)習(xí)(Reinforcement Learning),通過學(xué)習(xí)I/O訪問模式,來判斷那些Pages應(yīng)該放在一個Block里面。如果,我們發(fā)現(xiàn)組合不好,使得Pages之間生命周期變化過大;那么,我們通過反饋機制給判別模型以懲罰,最終使每一個Block里面的Pages的生命周期盡可能一致。
下面是我們做的實驗結(jié)果,通過在30個左右的I/O Traces數(shù)據(jù)上的對比實驗,大家可以看到“寫放大”的減少是很可觀的;并且,整個方法是存儲系統(tǒng)自動完成的,無須工程師的人工干預(yù)。
目前,還有一項技術(shù)也在產(chǎn)品里面做實驗。我們注意到,監(jiān)督式學(xué)習(xí)(Supervised Learning)模型中循環(huán)神經(jīng)網(wǎng)絡(luò)可對數(shù)據(jù)序列有效預(yù)測,其在語音識別、語言處理等領(lǐng)域被廣泛運用。我們技術(shù)的基本原理就是——將其這個優(yōu)勢發(fā)揮在存儲領(lǐng)域,利用這個技術(shù)來學(xué)習(xí)I/O Trace的模式并預(yù)測。在一個循環(huán)神經(jīng)網(wǎng)絡(luò)基本的Cell里,這些Gates需要長時間地在I/O操作的同時進行學(xué)習(xí),產(chǎn)生下一階段I/O的預(yù)測結(jié)果;并通過反向傳播機制,對模型進行調(diào)整,以求更擬合實際I/O模式。
隨著學(xué)習(xí)時間的增加、模型的不斷訓(xùn)練,一個星期或者兩個星期就會看到效果,根據(jù)歷史來預(yù)測將來。預(yù)測問題一般需要定義一個滑動窗口,這個滑動窗口包括:一部分歷史的I/O,當(dāng)前的I/O,以及未來的I/O。我們的網(wǎng)絡(luò)有四層:Input Layer、Hidden Layer、LSTM Layer和Output Layer。最終模型大小只有264KB。
隨著學(xué)習(xí)時間的增加、模型的不斷訓(xùn)練,一個星期或者兩個星期就會看到實際與預(yù)測的I/O模式逐漸擬合。這個圖展示了系統(tǒng)運行時實時的比較情況,紅線代表了實際的I/O Trace,藍線則是預(yù)測的I/O Trace。大家注意到了,在通過滑動窗口選取不同時間段上,兩者的形狀和結(jié)果都非常接近;并且,基于FPGA的開發(fā)實驗中,資源占用也是可以接受的。
通過上面的介紹,大家看到了,通過機器學(xué)習(xí)與人工智能技術(shù)的運用,存儲系統(tǒng)得到了性能的提升與功能的增強。另外,我們已與東芝合作,采用基于XL-Flash進行SSD優(yōu)化與研究。DapuStor對存儲新技術(shù)的探索將在未來給大家?guī)砀嗟捏@喜,更多的機器學(xué)習(xí)技術(shù)在閃存固態(tài)盤領(lǐng)域的應(yīng)用與研究,將使新一代存儲智能化——使其具有更好的性能、更可靠的穩(wěn)定性、更久的壽命。