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

一種云計(jì)算主機(jī)節(jié)點(diǎn)間物理內(nèi)存共享方法和系統(tǒng)的制作方法_2

文檔序號(hào):9375385閱讀:來源:國(guó)知局
,客戶主機(jī)監(jiān)控進(jìn)程通過客戶主機(jī)內(nèi)核模塊提供的接口周期性查詢當(dāng)前遠(yuǎn)端內(nèi) 存映射到本地的狀況;服務(wù)主機(jī)實(shí)現(xiàn)本地內(nèi)存的借出、回收服務(wù),服務(wù)主機(jī)內(nèi)核模塊用于響 應(yīng)、驗(yàn)證客戶主機(jī)的內(nèi)存借用申請(qǐng)、分配本地內(nèi)存映射到客戶主機(jī)虛擬內(nèi)存對(duì)象、客戶主機(jī) 歸還內(nèi)存后將內(nèi)存歸還給內(nèi)存池,同時(shí)向上提供用戶的信息查詢、配置修改的接口,服務(wù)主 機(jī)監(jiān)控進(jìn)程通過服務(wù)主機(jī)內(nèi)核模塊提供的接口周期性查詢本地內(nèi)存映射到遠(yuǎn)端的狀況,通 過監(jiān)控進(jìn)程設(shè)置相應(yīng)運(yùn)行參數(shù);客戶主機(jī)和服務(wù)主機(jī)通過網(wǎng)絡(luò)實(shí)現(xiàn)通信連接。
[0014] 本發(fā)明模塊實(shí)現(xiàn)了內(nèi)存的單向借用,在此基礎(chǔ)上,通過節(jié)點(diǎn)主機(jī)角色的轉(zhuǎn)換,實(shí)現(xiàn) 物理內(nèi)存在不同節(jié)點(diǎn)主機(jī)之間相互借調(diào),達(dá)到節(jié)點(diǎn)主機(jī)間物理內(nèi)存共享的目的。除客戶主 機(jī)主動(dòng)申請(qǐng)外,也可以在云集群中設(shè)置管理主機(jī),通過管理主機(jī),對(duì)所有的物理節(jié)點(diǎn)的物理 內(nèi)存進(jìn)行統(tǒng)一分配和調(diào)度管理。
[0015] 本發(fā)明設(shè)置集群環(huán)境中的主機(jī)為客戶主機(jī)或服務(wù)主機(jī)兩種角色之一,當(dāng)客戶主機(jī) 空閑內(nèi)存比例低于某一值時(shí),自發(fā)向服務(wù)主機(jī)申請(qǐng)遠(yuǎn)端內(nèi)存借用并完成遠(yuǎn)端內(nèi)存到本地虛 擬內(nèi)存對(duì)象的映射,調(diào)整內(nèi)存總量和可用內(nèi)存量。當(dāng)客戶主機(jī)空閑內(nèi)存比例高于某一值,且 虛擬內(nèi)存對(duì)象空閑內(nèi)存比例高于某一值時(shí),客戶主機(jī)歸還一部分借用的遠(yuǎn)端內(nèi)存。這樣可 以將某些主機(jī)閑置的內(nèi)存資源借給其他主機(jī)使用,提高了內(nèi)存的利用率;且在不改變單臺(tái) 主機(jī)物理內(nèi)存大小的情況下根據(jù)需求動(dòng)態(tài)調(diào)整可用內(nèi)存容量,提升了主機(jī)性能。
【附圖說明】
[0016] 圖1為服務(wù)主機(jī)內(nèi)存池結(jié)構(gòu)圖;
[0017] 圖2為本發(fā)明中內(nèi)存借用的主要流程示意圖;
[0018] 圖3為客戶主機(jī)虛擬內(nèi)存對(duì)象結(jié)構(gòu);
[0019] 圖4為本發(fā)明內(nèi)存歸還的主要流程示意圖;
[0020] 圖5為本發(fā)明的裝置結(jié)構(gòu)示意圖;
[0021] 圖6為本發(fā)明方法中通信報(bào)文格式。
【具體實(shí)施方式】
[0022] 本發(fā)明實(shí)施例提供了一種主機(jī)間物理內(nèi)存共用的裝置,包括以下三部分:客戶主 機(jī),客戶主機(jī)透明實(shí)現(xiàn)向服務(wù)主機(jī)借入、歸還內(nèi)存,包含客戶主機(jī)內(nèi)核模塊和客戶主機(jī)監(jiān)控 進(jìn)程。所述客戶主機(jī)內(nèi)核模塊用于客戶主機(jī)操作系統(tǒng)在本地內(nèi)存不足時(shí)自發(fā)向服務(wù)主機(jī)申 請(qǐng)內(nèi)存借用、建立網(wǎng)絡(luò)通信連接、維護(hù)遠(yuǎn)端內(nèi)存在本地虛擬內(nèi)存對(duì)象上的映射、內(nèi)存歸還給 服務(wù)主機(jī),向用戶層面提供信息查詢、配置修改的接口。所述客戶主機(jī)監(jiān)控進(jìn)程通過內(nèi)核模 塊提供的接口周期性查詢當(dāng)前遠(yuǎn)端內(nèi)存映射到本地的狀況,用戶可以通過監(jiān)控進(jìn)程設(shè)置相 應(yīng)的運(yùn)行參數(shù)。
[0023] 服務(wù)主機(jī),服務(wù)主機(jī)實(shí)現(xiàn)本地內(nèi)存的借出、回收服務(wù);包含服務(wù)主機(jī)內(nèi)核模塊和服 務(wù)主機(jī)監(jiān)控進(jìn)程。服務(wù)主機(jī)內(nèi)核模塊用于響應(yīng)客戶主機(jī)的內(nèi)存借用申請(qǐng)、驗(yàn)證申請(qǐng)是否通 過、分配本地內(nèi)存映射到客戶主機(jī)虛擬內(nèi)存對(duì)象、客戶主機(jī)使用完畢歸還內(nèi)存后將內(nèi)存歸 還給內(nèi)存池,同時(shí)向上提供用戶層面的信息查詢、配置修改的接口。服務(wù)主機(jī)監(jiān)控進(jìn)程通過 內(nèi)核模塊提供的接口周期性查詢本地內(nèi)存映射到遠(yuǎn)端的狀況,用戶可以通過監(jiān)控進(jìn)程設(shè)置 相應(yīng)的運(yùn)行參數(shù)。
[0024] 客戶主機(jī)和服務(wù)主機(jī)通信通過網(wǎng)絡(luò)實(shí)現(xiàn)物理和邏輯鏈路連接。
[0025] 虛擬內(nèi)存對(duì)象擴(kuò)展了客戶主機(jī)可用內(nèi)存的容量。早期的CPU與操作系統(tǒng)的尋址寬 度為32位,即允許管理的最大的物理內(nèi)存容量為232Byte = 4GByte,這樣的內(nèi)存容量?jī)H僅 可以滿足普通PC的配置要求,而已經(jīng)無法滿足云集群節(jié)點(diǎn)計(jì)算機(jī)的配置要求。隨著技術(shù) 發(fā)展,CPU與操作系統(tǒng)的尋址寬帶可達(dá)到64位,理論上允許管理的最大的物理內(nèi)存容量為 2 64Byte ;但考慮計(jì)算機(jī)硬件技術(shù)的發(fā)展情況,實(shí)際上目前單臺(tái)主機(jī)最大只能支持ITByte物 理內(nèi)存,同時(shí)考慮成本問題,多數(shù)主機(jī)物理內(nèi)存遠(yuǎn)低于1TByte。因此,虛擬內(nèi)存對(duì)象完全可 以在不影響原有物理內(nèi)存的情況下添加到操作系統(tǒng)系統(tǒng)當(dāng)中,并由操作系統(tǒng)進(jìn)行管理。
[0026] 圖1為服務(wù)主機(jī)內(nèi)存池結(jié)構(gòu)圖。
[0027] 服務(wù)主機(jī)內(nèi)存池呈線性結(jié)構(gòu),內(nèi)存池的大小SMemPool的初始值由SPMF決定,根據(jù) 公式:SMemPooI = I (SPMFX SPer) - MemBIklxMemBIk,其中,SPer 表示內(nèi)存池比例,(如初 始值設(shè)為〇. 5,即內(nèi)存池容量為當(dāng)前服務(wù)主機(jī)空閑內(nèi)存的50%。MemBlk為需要對(duì)齊到內(nèi)存 的分配粒度。內(nèi)存池按照MemBlk的大小劃分為多個(gè)內(nèi)存塊,內(nèi)存塊呈線性排列。內(nèi)存塊為 內(nèi)存借用的最小單位,一個(gè)內(nèi)存塊或者全部借給某一臺(tái)客戶主機(jī),或者全部為空閑狀態(tài)。
[0028] 在服務(wù)主機(jī)中的服務(wù)主機(jī)內(nèi)存池表MemPoolTable記錄了內(nèi)存池中內(nèi)存塊信息, 該表每一項(xiàng)代表內(nèi)存池中一塊內(nèi)存塊。根據(jù)上面的描述,可知MemPoolTable表中所含項(xiàng) 數(shù)為SMemPool/MemBlk。MemPoolTable所含字段包括內(nèi)存塊在內(nèi)存池中的編號(hào)SMBIndex、 當(dāng)前狀態(tài)SMBState、該內(nèi)存塊映射到的客戶主機(jī)的編號(hào)CliNum和網(wǎng)絡(luò)地址CliAddr。內(nèi) 存塊編號(hào)既是內(nèi)存塊在MemPoolTable的索引,也是內(nèi)存塊在內(nèi)存池中的順序位置。當(dāng)前狀 態(tài)指明該內(nèi)存塊的使用情況:當(dāng)前狀態(tài)為空閑,則表明該塊內(nèi)存塊沒有被借出,CliNum和 CliAddr值為空;當(dāng)前狀態(tài)為借用,則表明該內(nèi)存塊已經(jīng)被借出,CliNum和CliAddr記錄借 用者信息。
[0029] 圖中所示的內(nèi)存塊的狀態(tài)記錄在MemPoolTable中的結(jié)果如表1所示:
[0030] 表1 :服務(wù)主機(jī)內(nèi)存池表MemPoolTable格式。
[0031]
[0032] 圖2為本發(fā)明方法中內(nèi),存借用的主要流程示k圖,其步驟主要包括:
[0033] 步驟201 :客戶主機(jī)內(nèi)核模塊檢測(cè)系統(tǒng)當(dāng)前內(nèi)存使用情況;
[0034] 內(nèi)核模塊在系統(tǒng)啟動(dòng)后,每隔T時(shí)間檢測(cè)系統(tǒng)當(dāng)前內(nèi)存使用情況。T默認(rèn)值為 120s,即可每?jī)煞昼姍z測(cè)一次。該值可通過客戶主機(jī)用戶空間管理程序進(jìn)行修改,根據(jù)客戶 主機(jī)運(yùn)行情況、內(nèi)存使用增長(zhǎng)率修改為相應(yīng)值。每次檢測(cè)的結(jié)果記錄在系統(tǒng)日志當(dāng)中。
[0035] 步驟202 :當(dāng)客戶主機(jī)空閑內(nèi)存比例小于下限值PL,即滿足
[0036]
[0037] 時(shí),則認(rèn)為可用內(nèi)存量不足,需要從服務(wù)主機(jī)借用內(nèi)存資源。
[0038] 步驟203 :啟用內(nèi)存擴(kuò)展機(jī)制,確定需要借用的內(nèi)存量;內(nèi)存擴(kuò)展機(jī)制是本機(jī)可用 內(nèi)存不足時(shí),由客戶主機(jī)內(nèi)核模塊自行發(fā)起的系統(tǒng)功能調(diào)用。該過程不需要主機(jī)用戶或用 戶層面的程序進(jìn)行干預(yù),完全由內(nèi)核模塊發(fā)起操作,并處理過程中產(chǎn)生的錯(cuò)誤。根據(jù)公式:
計(jì)算客戶主機(jī)需要借用的內(nèi)存量 BorMem。其中,CPer表示分配比例,初始值可為0. 2,即本次需要借用的內(nèi)存量BorMem為現(xiàn) 有內(nèi)存比例的20%。BorMem值需要向上對(duì)齊到內(nèi)存分配粒度MemBlk。
[0039] 步驟204 :判斷客戶主機(jī)的ServerList是否為空。客戶主機(jī)保存一個(gè)服務(wù)主機(jī)列 表ServerList,列表內(nèi)容為所在集群中所有服務(wù)主機(jī)的信息,包括每臺(tái)服務(wù)主機(jī)的網(wǎng)絡(luò)地 址ServAddr、主機(jī)編號(hào)ServNo、允許借用的最大內(nèi)存容量MaxMem、已向其借用的內(nèi)存容量 CurMem等信息。該列表可通過客戶主機(jī)管理程序添加、刪除或修改條目。ServAddr、ServNo 用于服務(wù)主機(jī)的識(shí)別,MaxMem、CurMem用于判斷是否可以向該服務(wù)主機(jī)借用內(nèi)存。如果客 戶主機(jī)當(dāng)中服務(wù)主機(jī)列表為空,則表明無內(nèi)存可借用,內(nèi)存借用過程失敗,跳轉(zhuǎn)至步驟210 ; 不為空跳轉(zhuǎn)至步驟205。步驟205:從ServerList選擇一項(xiàng)符合要求的服務(wù)主機(jī)。客戶主 機(jī)內(nèi)核模塊遍歷ServerList列表,選擇其中一臺(tái)服務(wù)主機(jī),查看該服務(wù)主機(jī)當(dāng)前狀態(tài),判 斷是否還可以向該服務(wù)主機(jī)借用內(nèi)存,即是否滿足:BorMem < (MaxMem - CurMem),如果滿 足則選定該主機(jī),轉(zhuǎn)至步驟206,不滿足則從ServerList中選擇下一臺(tái)主機(jī)判斷其是否滿 足條件。
[0040] 步驟206 :向服務(wù)主機(jī)發(fā)送內(nèi)存借用申請(qǐng)??蛻糁鳈C(jī)按照一定的格式構(gòu)造內(nèi)存借 用請(qǐng)求包,包含本機(jī)編號(hào),步驟205選定的服務(wù)主機(jī)的編號(hào),服務(wù)主機(jī)網(wǎng)絡(luò)地址,請(qǐng)求借用 的內(nèi)存的大小,內(nèi)存分配粒度等信息,向該服務(wù)主機(jī)發(fā)送內(nèi)存借用請(qǐng)求。
[0041] 步驟207 :服務(wù)主機(jī)判斷是否滿足借用條件。服務(wù)主機(jī)收到借用申請(qǐng),判斷請(qǐng)求信 息中服務(wù)主機(jī)編號(hào)、網(wǎng)絡(luò)地址信息是否與本機(jī)信息相同,判斷客戶主機(jī)的體系結(jié)構(gòu)是否與 本機(jī)相同。并判斷當(dāng)前本地內(nèi)存池可借用物理內(nèi)存剩余量是否滿足客戶主機(jī)申請(qǐng)借用的申 請(qǐng)量。若滿足借用條件,則轉(zhuǎn)至步驟210 ;不滿足借用條件則轉(zhuǎn)至步驟208。
[0042] 步驟208 :通知客戶主機(jī)不滿足借用條件。服務(wù)主機(jī)無法滿足客戶主機(jī)的申請(qǐng)時(shí), 向客戶主機(jī)發(fā)送通知,告知客戶主機(jī)該服務(wù)主機(jī)不滿足借用條件,并返回具體的原因。
[0043] 步驟209 :客戶主機(jī)的ServerList仍然有可選項(xiàng)。客戶主機(jī)向ServerList中某 臺(tái)服務(wù)主機(jī)發(fā)送內(nèi)存借用申請(qǐng)但被拒絕后,需判斷ServerList中是否還有其他服務(wù)主機(jī) 可選。可選的含義是該服務(wù)主機(jī)在本次遠(yuǎn)程內(nèi)存分配過程中還沒有向其發(fā)送過借用申請(qǐng)。 如果沒有服務(wù)主機(jī)可選,即客戶主機(jī)向ServerList中所有對(duì)象都發(fā)送過借用申請(qǐng),但仍然 沒有借用到遠(yuǎn)程內(nèi)存,則表明內(nèi)存分配失??;如果有服務(wù)主機(jī)可選,則跳轉(zhuǎn)至步驟205,進(jìn) 行新的內(nèi)存借用申請(qǐng)過程。
[0044] 步驟210 :服務(wù)主機(jī)申請(qǐng)內(nèi)存池內(nèi)存成功??蛻糁鳈C(jī)申請(qǐng)內(nèi)存的大小BorMem是對(duì) 齊到MemBlk的,服務(wù)主機(jī)內(nèi)存塊也是以MemBlk為單位劃分的,則服務(wù)主機(jī)需要將BorMem/ MemBlk個(gè)內(nèi)存塊借給該客戶主機(jī)。
[0045] 服務(wù)主機(jī)遍歷MemPoolTable查詢內(nèi)存池中內(nèi)存塊的信息。如果檢測(cè)到內(nèi)存 池當(dāng)中空閑內(nèi)存塊數(shù)量彡BorMem/MemB I k,則從中選出BorMem/MemB I k個(gè)內(nèi)存塊作為借 出給該客戶主機(jī)的內(nèi)存,申請(qǐng)內(nèi)存池內(nèi)存成功;如果檢測(cè)到內(nèi)存池當(dāng)中空閑內(nèi)存塊數(shù)量 < BorMem/MemBlk,則申請(qǐng)內(nèi)存池內(nèi)存失敗。
[0046] 申請(qǐng)成功則跳轉(zhuǎn)至步驟211,申請(qǐng)失敗則跳轉(zhuǎn)至步
當(dāng)前第2頁(yè)1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1