本技術涉及計算設備,具體涉及一種存儲空間分配方法、fm管理單元及計算系統。
背景技術:
1、在傳統的計算架構中,節點通過總線連接存儲器,節點僅能夠使用本節點連接的存儲器提供的存儲空間,在節點需要更多存儲空間的場景下,該方案無法滿足節點對存儲空間的需求。
技術實現思路
1、本技術提供了一種存儲空間分配方法、fm管理單元及計算系統,實現將多個存儲設備提供的存儲空間以塊為單位循環分配給節點,從而提高性能。
2、第一方面,提供了一種存儲空間分配方法,方法應用于cxl存儲池的fm管理單元,fm管理單元用于分配cxl存儲池中的存儲空間,包括:接收來自節點的存儲空間分配請求,存儲空間分配請求包括初始配置容量,初始配置容量用于指示fm管理單元從cxl存儲池中為節點分配的存儲空間所對應的容量,cxl存儲池包括多個存儲設備;響應于存儲空間分配請求,基于配置容量確定配置塊數,配置塊數用于表征配置容量的大小,執行至少一輪分配塊的過程,直至已分配給節點的塊的數量大于或等于配置塊數,每一輪分配塊的過程包括將多個存儲設備提供的設定數量的塊依次分配給節點,塊為一個存儲設備的單位存儲空間。
3、在第一方面提供的方法中,由于按照第一節點存儲空間分配請求包括的初始配置容量確定配置塊數,執行至少一輪分配塊的過程,直至已分配給節點的塊的數量大于或等于配置塊數,有助于cxl存儲池提供的存儲空間被多個節點共享分配。此外,每個節點所需的存儲空間相對均衡地分布在cxl池化池的多個存儲通道上,使得多個節點能夠并發訪問存儲設備的存儲空間,有利于存儲空間帶寬的充分發揮。
4、此外,由于存儲空間分配時以塊為單位,每輪循環中每一次分配的存儲空間的容量固定(每次分配的存儲空間的容量為設定數量的塊的容量),從而降低fm存儲空間管理的復雜度,為將來的擴縮容管理等新特性開發提供方便。
5、在一些實施方式中,每一輪分配塊的過程包括:
6、基于循環分配鏈確定多個存儲設備的分配順序,按照分配順序依次從多個存儲設備分配設定數量的塊,循環分配鏈為指示分配順序的循環鏈表。
7、在一些實施方式中,按照分配順序依次從多個存儲設備分配設定數量的塊,包括:
8、當循環分配鏈的頭指針指向多個存儲設備中的第一存儲設備,從第一存儲設備中分配設定數量的塊給節點;將頭指針的位置更新為指向第二存儲設備,第二存儲設備為循環分配鏈中第一存儲設備的下一個存儲設備。
9、在一些實施方式中,方法還包括:
10、將第一存儲設備的剩余塊數量進行更新,更新后的剩余塊數量為第一存儲設備更新前的剩余塊數量與設定數量之差。
11、在一些實施方式中,每一輪分配塊的過程包括當確定多個存儲設備中第一存儲設備的當前剩余塊數量小于設定塊數量,將第一存儲設備的所有剩余塊分配給節點。
12、在一些實施方式中,方法還包括:
13、將第一存儲設備的剩余塊數量更新為零。
14、在一些實施方式中,每一輪分配塊的過程包括:
15、當確定多個存儲設備中第一存儲設備的剩余塊數量小于設定塊數量,在本輪分配塊時跳過第一存儲設備,使得第一存儲設備不參與本輪對節點的設定數量塊的存儲空間分配。
16、在一些實施方式中,方法還包括:
17、如果多個存儲設備的總剩余塊數小于配置塊數或者配置塊數小于或等于零,向節點發送配置錯誤消息,總剩余塊數是指多個存儲設備中每個存儲設備的剩余塊數之和。
18、在一些實施方式中,方法還包括:
19、基于配置塊數以及cxl存儲池中存儲設備的數量確定設定數量,設定數量為配置塊數與cxl存儲池中存儲設備的數量之間的比值。
20、第三方面,提供一種fm管理單元,fm管理單元用于分配cxl存儲池中的存儲空間,包括:
21、接收單元,用于接收來自節點的存儲空間分配請求,存儲空間分配請求包括初始配置容量,初始配置容量用于指示fm管理單元從cxl存儲池中為節點分配的存儲空間所對應的容量,cxl存儲池包括多個存儲設備;
22、確定單元,用于響應于存儲空間分配請求,基于配置容量確定配置塊數,配置塊數用于表征配置容量的大小,執行至少一輪分配塊的過程,直至已分配給節點的塊的數量大于或等于配置塊數,每一輪分配塊的過程包括將多個存儲設備提供的設定數量的塊依次分配給節點,塊為一個存儲設備的單位存儲空間。
23、在一些實施方式中,裝置還包括:
24、分配單元,用于在每一輪分配塊的過程中,基于循環分配鏈確定多個存儲設備的分配順序,按照分配順序依次從多個存儲設備分配設定數量的塊,循環分配鏈為指示分配順序的循環鏈表。
25、在一些實施方式中,分配單元,用于當循環分配鏈的頭指針指向多個存儲設備中的第一存儲設備,從第一存儲設備中分配設定數量的塊給節點;將頭指針的位置更新為指向第二存儲設備,第二存儲設備為循環分配鏈中第一存儲設備的下一個存儲設備。
26、在一些實施方式中,確定單元,還用于將第一存儲設備的剩余塊數量進行更新,更新后的剩余塊數量為第一存儲設備更新前的剩余塊數量與設定數量之差。
27、在一些實施方式中,分配單元,用于當確定多個存儲設備中第一存儲設備的當前剩余塊數量小于設定塊數量,將第一存儲設備的所有剩余塊分配給節點。
28、在一些實施方式中,確定單元,還用于將第一存儲設備的剩余塊數量更新為零。
29、在一些實施方式中,分配單元,用于當確定多個存儲設備中第一存儲設備的剩余塊數量小于設定塊數量,在本輪分配塊時跳過第一存儲設備,使得第一存儲設備不參與本輪對節點的設定數量塊的存儲空間分配。
30、在一些實施方式中,裝置還包括:發送單元,用于如果多個存儲設備的總剩余塊數小于配置塊數或者配置塊數小于或等于零,向節點發送配置錯誤消息,總剩余塊數是指多個存儲設備中每個存儲設備的剩余塊數之和。
31、在一些實施方式中,確定單元,還用于基于配置塊數以及cxl存儲池中存儲設備的數量確定設定數量,設定數量為配置塊數與cxl存儲池中存儲設備的數量之間的比值。
32、第四方面,提供一種fm管理單元,其特征在于,fm管理單元包括:處理器,處理器與存儲器耦合,存儲器中存儲有至少一條計算機程序指令,至少一條計算機程序指令由處理器加載并執行,以使fm管理單元如第一方面至第四方面的實施方式中的方法。
33、第五方面,提供了一種計算系統,計算系統包括:節點,fm管理單元以及cxl存儲池,cxl存儲池包括多個存儲設備,節點與fm管理單元連接,fm管理單元用于分配和管理cxl存儲池中的存儲空間;fm管理單元用于實現如第一方面或第一方面任一種可選方式所提供的方法。
34、第六方面,提供了一種計算機可讀存儲介質,該存儲介質中存儲有至少一條指令,該指令在計算機上運行時,使得計算機執行上述第一方面或第一方面任一種可選方式所提供的方法。
35、第七方面,提供了一種計算機程序產品,計算機程序產品包括一個或多個計算機程序指令,當計算機程序指令被計算機加載并運行時,使得計算機執行上述第一方面或第一方面任一種可選方式所提供的方法。
36、第八方面,提供了一種芯片,包括存儲器和處理器,存儲器用于存儲計算機指令,處理器用于從存儲器中調用并運行該計算機指令,以執行上述第一方面及其第一方面任意可能的實現方式中的方法。
37、本技術在上述各方面提供的實現方式的基礎上,還可以進行進一步組合以提供更多實現方式。