亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Linux命令空間中共享RDMA設(shè)備的方法及系統(tǒng)與流程

文檔序號:40405653發(fā)布日期:2024-12-20 12:29閱讀:10來源:國知局
Linux命令空間中共享RDMA設(shè)備的方法及系統(tǒng)與流程

本發(fā)明屬于通信及計算機,具體涉及一種linux命令空間中共享rdma設(shè)備的方法及系統(tǒng)。


背景技術(shù):

1、遠程直接內(nèi)存訪問(remote?direct?memory?access,簡稱rdma)網(wǎng)絡(luò)以其極低的延遲、低cpu開銷和高帶寬的優(yōu)異特性,在近年來已經(jīng)成為數(shù)據(jù)中心網(wǎng)絡(luò)的主流。其種類包括了infiniband網(wǎng)絡(luò)和roce(以太網(wǎng)遠程直接內(nèi)存訪問)網(wǎng)絡(luò)。rdma支持數(shù)據(jù)直接從一臺計算機的內(nèi)存?zhèn)鬏數(shù)搅硪慌_計算機的內(nèi)存,無需雙方操作系統(tǒng)介入。

2、linux的命名空間(namespace)提供了一種內(nèi)核級別的隔離系統(tǒng)資源的方法,通過將系統(tǒng)的全局資源放在不同的namespace中,來實現(xiàn)資源隔離的目的。不同namespace中的程序,可以享有一份獨立的系統(tǒng)資源。目前l(fā)inux中提供了六類系統(tǒng)資源的隔離機制,分別是文件系統(tǒng)掛載點隔離、主機名和域名信息隔離、進程間通信隔離、進程id隔離、網(wǎng)絡(luò)資源隔離(以太網(wǎng))、用戶和用戶組id隔離。目前的linux系統(tǒng)中沒有對rdma設(shè)備隔離的原生實現(xiàn)。

3、infiniband驅(qū)動中實現(xiàn)了兩種在namespace中使用rdma模式,分別是共享模式(shared?mode)和獨占模式(exclusive?mode)。當(dāng)rdma子系統(tǒng)處于共享模式時,rdma設(shè)備在所有namespace中均可訪問;當(dāng)不需要多個網(wǎng)絡(luò)命名空間之間的rdma設(shè)備隔離時,可以使用共享模式。當(dāng)rdma子系統(tǒng)處于獨占模式時,rdma設(shè)備只能在一個namespace中訪問,在其他namespace中不可見。目前業(yè)界在容器場景中都在采用這兩種模式支持多個容器中使用rdma設(shè)備,但這兩種模式都存在一定問題。共享模式在一臺服務(wù)器只有一個rdma設(shè)備的情況下可以正常使用,但是在同時擁有多個rdma設(shè)備的服務(wù)器上,所有rdma設(shè)備在所有namespace中可見。在一些場景下(如多numa或多socket),容器用戶需要使用特定rdma設(shè)備以獲得最佳性能,就需要根據(jù)情況手動指定,否則就會默認使用第一個發(fā)現(xiàn)的設(shè)備,導(dǎo)致流量擁塞、使用不均衡,或使用了跨numa或socket的rdma設(shè)備,導(dǎo)致性能降低。獨占模式可以做到只將最優(yōu)的一塊rdma關(guān)聯(lián)到特定namespace給容器使用,其他rdma設(shè)備在該namespace中不可見。但是,關(guān)聯(lián)到特定namespace中的rdma設(shè)備在其他namespace中也變得不可見。rdma的設(shè)備數(shù)量有限,即使在開啟sr-iov(單根輸入輸出虛擬化)的情況下虛擬出多個vf(虛擬功能),也只能支持一臺服務(wù)器啟動有限數(shù)量的容器,降低了容器的部署密度,造成資源浪費。sr-iov的部分配置改動需要修改設(shè)備固件,需要對服務(wù)器設(shè)備進行重啟,所以,由于場景需求需要修改模式時,有可能需要對服務(wù)器進行重啟才能生效配置,操作流程復(fù)雜。


技術(shù)實現(xiàn)思路

1、本發(fā)明要解決的技術(shù)問題:針對現(xiàn)有技術(shù)的上述問題,提供一種linux命令空間中共享rdma設(shè)備的方法及系統(tǒng),解決了使用共享模式時無法指定只使用特定rdma設(shè)備的問題,同時解決獨占模式下支持的容器數(shù)量受限的問題。

2、為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:

3、一種linux命令空間中共享rdma設(shè)備的方法,包括下述步驟:為linux命令空間之間共享rdma設(shè)備的rdma模式在原有的共享模式、獨占模式的基礎(chǔ)上增加新的部分共享模式,并修改rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)使其支持一個rdma設(shè)備同時關(guān)聯(lián)到多個指定的linux命令空間,并修改rdma設(shè)備加入linux命令空間、退出linux命令空間的操作使其兼容共享模式、獨占模式以及新增的部分共享模式。

4、進一步的,所述修改rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)使其支持一個rdma設(shè)備同時關(guān)聯(lián)到多個linux命令空間是指修改rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)為列表,通過列表來列舉出rdma設(shè)備同時關(guān)聯(lián)到的指定的linux命令空間信息,從而使得使該rdma設(shè)備支持同時關(guān)聯(lián)到多個linux命令空間,以及各個linux命令空間只能夠根據(jù)所述列表來發(fā)現(xiàn)和使用列表所記錄的rdma設(shè)備。

5、進一步的,所述修改rdma設(shè)備加入linux命令空間、退出linux命令空間的操作使其兼容共享模式、獨占模式以及新增的部分共享模式后,rdma設(shè)備加入linux命令空間的操作包括:

6、s101,生成修改rdma設(shè)備的linux命令空間的網(wǎng)絡(luò)鏈接請求;

7、s102,向linux內(nèi)核驅(qū)動發(fā)送網(wǎng)絡(luò)鏈接請求;

8、s103,linux內(nèi)核驅(qū)動判斷當(dāng)前l(fā)inux命令空間之間共享rdma設(shè)備的rdma模式,若rdma模式為共享模式則返回錯誤代碼,結(jié)束并退出,若為獨占模式則跳轉(zhuǎn)步驟s104;若為部分共享模式則跳轉(zhuǎn)步驟s105;

9、s104,停止該rdma設(shè)備,修改該rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu),重命名該rdma設(shè)備的設(shè)備名稱,重新創(chuàng)建該rdma設(shè)備的屬性文件,從而使得該rdma設(shè)備進入獨享模式并自動退出原來加入的linux命令空間,結(jié)束并退出;

10、s105,修改該rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu),保持原有的linux命令空間不變,增加新的linux命令空間,結(jié)束并退出。

11、進一步的,步驟s101中生成的網(wǎng)絡(luò)鏈接請求包括網(wǎng)絡(luò)鏈接請求的設(shè)置命令cmd_set,網(wǎng)絡(luò)鏈接請求對應(yīng)的rdma設(shè)備的索引index以及出linux命令空間的文件描述符fd。

12、進一步的,所述修改rdma設(shè)備加入linux命令空間、退出linux命令空間的操作使其兼容共享模式、獨占模式以及新增的部分共享模式后,rdma設(shè)備退出linux命令空間的操作包括:

13、s201,生成將該rdma設(shè)備從一個linux命令空間中刪除的網(wǎng)絡(luò)鏈接請求;

14、s202,向linux內(nèi)核驅(qū)動發(fā)送網(wǎng)絡(luò)鏈接請求;

15、s203,linux內(nèi)核驅(qū)動判斷當(dāng)前l(fā)inux命令空間之間共享rdma設(shè)備的rdma模式,若為共享模式或者獨享模式則返回錯誤代碼,結(jié)束并退出,若為部分共享模式則跳轉(zhuǎn)步驟s204;

16、s204,判斷請求的linux命令空間是否存在于該rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)中,若不存在于該rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)中,則返回錯誤代碼,結(jié)束并退出,否則,將請求的linux命令空間從該rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)中刪除,結(jié)束并退出。

17、進一步的,步驟s201中生成的網(wǎng)絡(luò)鏈接請求包括網(wǎng)絡(luò)鏈接請求的刪除命令cmd_del,網(wǎng)絡(luò)鏈接請求對應(yīng)的rdma設(shè)備的索引index以及出linux命令空間的文件描述符fd。

18、進一步的,所述方法還包括:

19、s301,預(yù)先為各個linux命令空間分配并配置其對應(yīng)的rdma設(shè)備,并記錄在各個rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)的初始值中;

20、s302,在各個linux命令空間啟動后,根據(jù)各個rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)的內(nèi)容來實現(xiàn)對該linux命令空間可使用的rdma設(shè)備進行發(fā)現(xiàn)和使用,使得各個rdma設(shè)備僅被其linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)記錄的linux命令空間使用;

21、s303,在各個linux命令空間運行期間,若需要修改rdma設(shè)備加入linux命令空間或者退出linux命令空間的操作時,則執(zhí)行修改rdma設(shè)備加入linux命令空間或者退出linux命令空間的操作更新rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)并跳轉(zhuǎn)步驟s303。

22、本發(fā)明還提出一種linux命令空間中共享rdma設(shè)備的系統(tǒng),包括相互連接的微處理器和存儲器,所述微處理器被編程或配置以執(zhí)行所述linux命令空間中共享rdma設(shè)備的方法。

23、本發(fā)明還提出一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)中存儲有計算機程序/指令,該計算機程序/指令被編程或配置以通過處理器執(zhí)行所述linux命令空間中共享rdma設(shè)備的方法。

24、本發(fā)明還提出一種計算機程序產(chǎn)品,包括計算機程序/指令,該計算機程序/指令被編程或配置以通過處理器執(zhí)行所述linux命令空間中共享rdma設(shè)備的方法。

25、相比現(xiàn)有技術(shù),本發(fā)明的優(yōu)點在于:

26、本發(fā)明修改rdma設(shè)備的linux命令空間記錄數(shù)據(jù)結(jié)構(gòu)為列表,使其支持一個rdma設(shè)備同時關(guān)聯(lián)到多個指定的linux命令空間,對于一個linux命令空間,可以使用和這個linux命令空間關(guān)聯(lián)的所有的rdma設(shè)備,對于一個rdma設(shè)備,可以同時關(guān)聯(lián)到多個linux命令空間,解決原有共享模式無法指定只使用特定rdma設(shè)備的問題,同時解決獨占模式支持的容器數(shù)量受限的問題,此外,本發(fā)明還在原有的共享模式、獨占模式的基礎(chǔ)上增加新的部分共享模式,并修改rdma設(shè)備加入linux命令空間、退出linux命令空間的操作使其兼容共享模式、獨占模式以及新增的部分共享模式,無需在不同場景下對模式進行切換,解決更換模式可能需要重啟設(shè)備的問題。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1