專利名稱:Numa體系結(jié)構(gòu)下面向容錯(cuò)的操作系統(tǒng)內(nèi)存管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)操作系統(tǒng)領(lǐng)域,具體涉及一種NUMA體系結(jié)構(gòu)下面向容錯(cuò)的操作系統(tǒng)內(nèi)存管理機(jī)制。
背景技術(shù):
應(yīng)用在金融、電信等關(guān)鍵領(lǐng)域的大型計(jì)算機(jī),通常在硬件和軟件都提供了強(qiáng)大的容錯(cuò)功能,以保證最高最強(qiáng)的系統(tǒng)可用性,從而能夠最大限度的持續(xù)提供關(guān)鍵可靠的服務(wù)。 軟件容錯(cuò)通常是由操作系統(tǒng)來(lái)保證,操作系統(tǒng)時(shí)刻關(guān)注系統(tǒng)軟硬件是否正常運(yùn)行,并在出現(xiàn)問(wèn)題或者潛在出現(xiàn)問(wèn)題的時(shí)候采取必要的措施以保證系統(tǒng)持續(xù)可用。熱插拔技術(shù)是操作系統(tǒng)容錯(cuò)功能中重要的一環(huán),它對(duì)提高整個(gè)系統(tǒng)的可靠性、可用性和可服務(wù)性都不可或缺。有熱插拔技術(shù)作為保障,系統(tǒng)管理員可以在不關(guān)機(jī)、不重啟、 不斷電的情況下更換設(shè)備,可以及時(shí)的排除、隔離和修復(fù)故障,大大提高系統(tǒng)的可用性。在現(xiàn)有技術(shù)中,NUMA體系結(jié)構(gòu)下,操作系統(tǒng)分配內(nèi)存時(shí),可以使用多種策略,其中最常用的是本地分配策略。這種策略使得CPU多數(shù)訪問(wèn)“距離”自己較近的內(nèi)存,減少訪存時(shí)間,提高系統(tǒng)效率。但是,本地分配策略也使得系統(tǒng)內(nèi)存散布在各個(gè)節(jié)點(diǎn),過(guò)于零散從而不利于管理。更進(jìn)一步的是,這種策略使得系統(tǒng)核心使用的內(nèi)存也散布在各個(gè)節(jié)點(diǎn),由于這部分內(nèi)存不能被遷移和熱移除,使得擁有這部分內(nèi)存的節(jié)點(diǎn)不能被熱移除,影響了整體系統(tǒng)的容錯(cuò)性能,不利于提高系統(tǒng)的高可用性?,F(xiàn)有的內(nèi)存熱插拔技術(shù),存在諸多限制,有平臺(tái)限制、內(nèi)存模式限制以及操作大小限制。例如操作大小只能是IG內(nèi)存為單位,這使得管理操作十分不便,實(shí)用性有限。
發(fā)明內(nèi)容
本發(fā)明的目的是關(guān)注NUMA體系結(jié)構(gòu)下的內(nèi)存管理機(jī)制,采用多個(gè)技術(shù)突破現(xiàn)有技術(shù)限制,實(shí)現(xiàn)整個(gè)NUMA節(jié)點(diǎn)上內(nèi)存的熱插拔。本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,基于操作系統(tǒng)內(nèi)存管理和支持操作系統(tǒng)的容錯(cuò)功能,提供可配置的內(nèi)存限定分配功能和可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能,其中可配置的內(nèi)存限定分配功能是在NUMA體系結(jié)構(gòu)下,整個(gè)NUMA節(jié)點(diǎn)中包含的內(nèi)存的熱移除和熱添加;可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能是可伸縮的內(nèi)存熱插拔,即內(nèi)存熱插拔處理的內(nèi)存大小最小為一頁(yè),最大為一個(gè)內(nèi)存區(qū)域中所有的內(nèi)存,內(nèi)存熱插拔分為熱移除和熱添加,內(nèi)存熱移除首先從操作系統(tǒng)層面熱移除待處理的內(nèi)存,再和系統(tǒng)固件、硬件配合,從硬件層面移除,從而使得內(nèi)存設(shè)備從系統(tǒng)中熱移除;熱添加首先從硬件層面熱添加內(nèi)存設(shè)備,再?gòu)牟僮飨到y(tǒng)層面開(kāi)始使用熱添加的內(nèi)存,管理步驟如下
1)操作系統(tǒng)啟動(dòng)前,配置為內(nèi)存限定分配功能啟用;
2)啟動(dòng)操作系統(tǒng),啟動(dòng)過(guò)程中的內(nèi)存分配受到內(nèi)存限定分配功能影響,將操作系統(tǒng)核心使用的內(nèi)存或會(huì)導(dǎo)致不能熱插拔的內(nèi)存分配在指定節(jié)點(diǎn)上完成,包括如節(jié)點(diǎn)0 ;
3)進(jìn)行內(nèi)存熱插拔操作,除節(jié)點(diǎn)0以外,其他節(jié)點(diǎn)的內(nèi)存均可以熱插拔;
4)內(nèi)存熱插拔最小單元為一個(gè)物理頁(yè),最大為一個(gè)節(jié)點(diǎn)內(nèi)所有的內(nèi)存;
5)熱移除和熱添加內(nèi)存均以起始物理地址和內(nèi)存大小為參數(shù),內(nèi)存熱移除首先從操作系統(tǒng)層面熱移除待處理的內(nèi)存,再和系統(tǒng)固件、硬件配合,從硬件層面移除,從而使得內(nèi)存設(shè)備從系統(tǒng)中熱移除;熱添加首先從硬件層面熱添加內(nèi)存設(shè)備,再?gòu)牟僮飨到y(tǒng)層面開(kāi)始使用熱添加的內(nèi)存;
6)在操作系統(tǒng)運(yùn)行時(shí)關(guān)閉內(nèi)存限定分配功能,此后的核心內(nèi)存分配便不會(huì)限制在節(jié)點(diǎn) 0完成??膳渲脙?nèi)存限定分配功能,針對(duì)操作系統(tǒng)的內(nèi)存分配策略,NUMA體系結(jié)構(gòu)下,將系統(tǒng)核心使用的內(nèi)存和會(huì)導(dǎo)致不能被熱移除的內(nèi)存分配到指定的同一個(gè)節(jié)點(diǎn)上,使得系統(tǒng)中其它節(jié)點(diǎn)的內(nèi)存中沒(méi)有不能被熱移除的內(nèi)存,從而使得系統(tǒng)中其它節(jié)點(diǎn)能夠被熱移除,以系統(tǒng)中只有一個(gè)節(jié)點(diǎn)不能被熱移除的代價(jià),保證了其它節(jié)點(diǎn)都能被熱移除以提高系統(tǒng)的可用性。
可配置的內(nèi)存限定分配功能,在操作系統(tǒng)啟動(dòng)和運(yùn)行時(shí)均可配置,在啟動(dòng)時(shí)的配置影響在操作系統(tǒng)啟動(dòng)過(guò)程中內(nèi)存的分配,運(yùn)行時(shí)的配置影響配置之后的內(nèi)存分配,要使得除了某一指定節(jié)點(diǎn),其它節(jié)點(diǎn)均能夠熱移除,需要在系統(tǒng)啟動(dòng)的時(shí)候配置。本發(fā)明的方法和現(xiàn)有技術(shù)相比,有益效果是NUMA體系結(jié)構(gòu)下面向容錯(cuò)的操作系統(tǒng)內(nèi)存管理機(jī)制,基于傳統(tǒng)操作系統(tǒng)內(nèi)存管理,重點(diǎn)支持操作系統(tǒng)的容錯(cuò)功能,提供了可配置的內(nèi)存限定分配功能,和可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能??膳渲脙?nèi)存限定分配功能,針對(duì)操作系統(tǒng)的內(nèi)存分配策略。NUMA體系結(jié)構(gòu)下,將系統(tǒng)核心使用的內(nèi)存和會(huì)導(dǎo)致不能被熱移除的內(nèi)存分配到指定的同一個(gè)節(jié)點(diǎn)上,使得系統(tǒng)中其它節(jié)點(diǎn)的內(nèi)存中沒(méi)有不能被熱移除的內(nèi)存,從而使得系統(tǒng)其它節(jié)點(diǎn)能夠被熱移除。如此,以系統(tǒng)中只有一個(gè)節(jié)點(diǎn)不能被熱移除的代價(jià),保證了其它節(jié)點(diǎn)都能被熱移除,大大提高系統(tǒng)的可用性。
圖1是操作系統(tǒng)內(nèi)存管理的系統(tǒng)架構(gòu)圖。
具體實(shí)施例方式參照說(shuō)明書附圖對(duì)本發(fā)明的方法作以下詳細(xì)地說(shuō)明。本發(fā)明的NUMA體系結(jié)構(gòu)下面向容錯(cuò)的操作系統(tǒng)內(nèi)存管理方法是基于傳統(tǒng)操作系統(tǒng)內(nèi)存管理,重點(diǎn)支持操作系統(tǒng)的容錯(cuò)功能,提供了可配置的內(nèi)存限定分配功能,和可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能。可配置內(nèi)存限定分配功能,針對(duì)操作系統(tǒng)的內(nèi)存分配策略。NUMA體系結(jié)構(gòu)下,將系統(tǒng)核心使用的內(nèi)存和會(huì)導(dǎo)致不能被熱移除的內(nèi)存分配到指定的同一個(gè)節(jié)點(diǎn)上,使得系統(tǒng)中其它節(jié)點(diǎn)的內(nèi)存中沒(méi)有不能被熱移除的內(nèi)存,從而使得系統(tǒng)其它節(jié)點(diǎn)能夠被熱移除。如此,以系統(tǒng)中只有一個(gè)節(jié)點(diǎn)不能被熱移除的代價(jià),保證了其它節(jié)點(diǎn)都能被熱移除,大大提高系統(tǒng)的可用性。
可配置的內(nèi)存限定分配功能,在操作系統(tǒng)啟動(dòng)和運(yùn)行時(shí)均可配置。在啟動(dòng)時(shí)的配置影響在操作系統(tǒng)啟動(dòng)過(guò)程中內(nèi)存的分配,運(yùn)行時(shí)的配置影響配置之后的內(nèi)存分配。要使得除了某一指定節(jié)點(diǎn),其它節(jié)點(diǎn)均能夠熱移除,需要在系統(tǒng)啟動(dòng)的時(shí)候配置。可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能,包含兩個(gè)具體功能一個(gè)是在NUMA體系結(jié)構(gòu)下,整個(gè)NUMA節(jié)點(diǎn)中包含的內(nèi)存的熱移除和熱添加;另一個(gè)是可伸縮的內(nèi)存熱插拔,即內(nèi)存熱插拔處理的內(nèi)存大小最小為一頁(yè),最大為一個(gè)內(nèi)存區(qū)域中所有的內(nèi)存。內(nèi)存熱插拔分為熱移除和熱添加,內(nèi)存熱移除首先從操作系統(tǒng)層面熱移除待處理的內(nèi)存,再和系統(tǒng)固件、 硬件配合,從硬件層面移除,從而使得內(nèi)存設(shè)備從系統(tǒng)中熱移除;熱添加首先從硬件層面熱添加內(nèi)存設(shè)備,再?gòu)牟僮飨到y(tǒng)層面開(kāi)始使用熱添加的內(nèi)存。
實(shí)施例操作步驟如下
1)操作系統(tǒng)啟動(dòng)前,配置為內(nèi)存限定分配功能啟用;
2)啟動(dòng)操作系統(tǒng),啟動(dòng)過(guò)程中的內(nèi)存分配受到內(nèi)存限定分配功能影響,將操作系統(tǒng)核心使用的內(nèi)存,即會(huì)導(dǎo)致不能熱插拔的內(nèi)存分配在指定節(jié)點(diǎn)(如節(jié)點(diǎn)0)上完成;
3)進(jìn)行內(nèi)存熱插拔操作,除節(jié)點(diǎn)0以外,其他節(jié)點(diǎn)的內(nèi)存均可以熱插拔;
4)內(nèi)存熱插拔最小單元為一個(gè)物理頁(yè),最大為一個(gè)節(jié)點(diǎn)內(nèi)所有的內(nèi)存;
5)熱移除和熱添加內(nèi)存均以起始物理地址和內(nèi)存大小為參數(shù),內(nèi)存熱移除首先從操作系統(tǒng)層面熱移除待處理的內(nèi)存,再和系統(tǒng)固件、硬件配合,從硬件層面移除,從而使得內(nèi)存設(shè)備從系統(tǒng)中熱移除;熱添加首先從硬件層面熱添加內(nèi)存設(shè)備,再?gòu)牟僮飨到y(tǒng)層面開(kāi)始使用熱添加的內(nèi)存。6)在操作系統(tǒng)運(yùn)行時(shí)關(guān)閉內(nèi)存限定分配功能,此后的核心內(nèi)存分配便不會(huì)限制在節(jié)點(diǎn)0完成。除說(shuō)明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1.NUMA體系結(jié)構(gòu)下面向容錯(cuò)的操作系統(tǒng)內(nèi)存管理方法,其特征在于,基于操作系統(tǒng)內(nèi)存管理和支持操作系統(tǒng)的容錯(cuò)功能,提供可配置的內(nèi)存限定分配功能和可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能,其中可配置的內(nèi)存限定分配功能是在NUMA體系結(jié)構(gòu)下,整個(gè)NUMA節(jié)點(diǎn)中包含的內(nèi)存的熱移除和熱添加;可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能是可伸縮的內(nèi)存熱插拔,即內(nèi)存熱插拔處理的內(nèi)存大小最小為一頁(yè),最大為一個(gè)內(nèi)存區(qū)域中所有的內(nèi)存,內(nèi)存熱插拔分為熱移除和熱添加,內(nèi)存熱移除首先從操作系統(tǒng)層面熱移除待處理的內(nèi)存,再和系統(tǒng)固件、硬件配合,從硬件層面移除,從而使得內(nèi)存設(shè)備從系統(tǒng)中熱移除;熱添加首先從硬件層面熱添加內(nèi)存設(shè)備,再?gòu)牟僮飨到y(tǒng)層面開(kāi)始使用熱添加的內(nèi)存,管理步驟如下1)操作系統(tǒng)啟動(dòng)前,配置為內(nèi)存限定分配功能啟用;2)啟動(dòng)操作系統(tǒng),啟動(dòng)過(guò)程中的內(nèi)存分配受到內(nèi)存限定分配功能影響,將操作系統(tǒng)核心使用的內(nèi)存或會(huì)導(dǎo)致不能熱插拔的內(nèi)存分配在指定節(jié)點(diǎn)上完成,包括如節(jié)點(diǎn)0 ;3)進(jìn)行內(nèi)存熱插拔操作,除節(jié)點(diǎn)0以外,其他節(jié)點(diǎn)的內(nèi)存均可以熱插拔;4)內(nèi)存熱插拔最小單元為一個(gè)物理頁(yè),最大為一個(gè)節(jié)點(diǎn)內(nèi)所有的內(nèi)存;5)熱移除和熱添加內(nèi)存均以起始物理地址和內(nèi)存大小為參數(shù),內(nèi)存熱移除首先從操作系統(tǒng)層面熱移除待處理的內(nèi)存,再和系統(tǒng)固件、硬件配合,從硬件層面移除,從而使得內(nèi)存設(shè)備從系統(tǒng)中熱移除;熱添加首先從硬件層面熱添加內(nèi)存設(shè)備,再?gòu)牟僮飨到y(tǒng)層面開(kāi)始使用熱添加的內(nèi)存;6)在操作系統(tǒng)運(yùn)行時(shí)關(guān)閉內(nèi)存限定分配功能,此后的核心內(nèi)存分配便不會(huì)限制在節(jié)點(diǎn) 0完成。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,可配置內(nèi)存限定分配功能,針對(duì)操作系統(tǒng)的內(nèi)存分配策略,NUMA體系結(jié)構(gòu)下,將系統(tǒng)核心使用的內(nèi)存和會(huì)導(dǎo)致不能被熱移除的內(nèi)存分配到指定的同一個(gè)節(jié)點(diǎn)上,使得系統(tǒng)中其它節(jié)點(diǎn)的內(nèi)存中沒(méi)有不能被熱移除的內(nèi)存, 從而使得系統(tǒng)中其它節(jié)點(diǎn)能夠被熱移除,以系統(tǒng)中只有一個(gè)節(jié)點(diǎn)不能被熱移除的代價(jià),保證了其它節(jié)點(diǎn)都能被熱移除以提高系統(tǒng)的可用性。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,可配置的內(nèi)存限定分配功能,在操作系統(tǒng)啟動(dòng)和運(yùn)行時(shí)均可配置,在啟動(dòng)時(shí)的配置影響在操作系統(tǒng)啟動(dòng)過(guò)程中內(nèi)存的分配,運(yùn)行時(shí)的配置影響配置之后的內(nèi)存分配,要使得除了某一指定節(jié)點(diǎn),其它節(jié)點(diǎn)均能夠熱移除,需要在系統(tǒng)啟動(dòng)的時(shí)候配置。
全文摘要
本發(fā)明提供一種NUMA體系結(jié)構(gòu)下面向容錯(cuò)的操作系統(tǒng)內(nèi)存管理方法是基于操作系統(tǒng)內(nèi)存管理和支持操作系統(tǒng)的容錯(cuò)功能,提供可配置的內(nèi)存限定分配功能和可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能,其中可配置的內(nèi)存限定分配功能是在NUMA體系結(jié)構(gòu)下,整個(gè)NUMA節(jié)點(diǎn)中包含的內(nèi)存的熱移除和熱添加;可伸縮的整節(jié)點(diǎn)內(nèi)存熱插拔功能是可伸縮的內(nèi)存熱插拔,即內(nèi)存熱插拔處理的內(nèi)存大小最小為一頁(yè),最大為一個(gè)內(nèi)存區(qū)域中所有的內(nèi)存,內(nèi)存熱插拔分為熱移除和熱添加,內(nèi)存熱移除首先從操作系統(tǒng)層面熱移除待處理的內(nèi)存,再和系統(tǒng)固件、硬件配合,從硬件層面移除,從而使得內(nèi)存設(shè)備從系統(tǒng)中熱移除;熱添加首先從硬件層面熱添加內(nèi)存設(shè)備,再?gòu)牟僮飨到y(tǒng)層面開(kāi)始使用熱添加的內(nèi)存。
文檔編號(hào)G06F11/00GK102323899SQ20111025979
公開(kāi)日2012年1月18日 申請(qǐng)日期2011年9月5日 優(yōu)先權(quán)日2011年9月5日
發(fā)明者吳楠, 周雄, 張東 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司