本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種設(shè)備遷移的方法及資源管理中心。
背景技術(shù):
隨著計算機技術(shù)的發(fā)展,多核CPU(Central Processing Unit,中央處理器)、并行計算以及分布式系統(tǒng)等新型技術(shù)逐漸應(yīng)用于計算機,產(chǎn)生了一系列的新架構(gòu)計算機,如眾核計算機,眾核計算機內(nèi)CPU的core數(shù)超過16個,甚至超過1000個。眾核解耦架構(gòu)是指將計算機中的硬件分離,形成多個管理獨立的硬件模塊,各個硬件模塊之間通過高速互聯(lián)網(wǎng)絡(luò)連接,并由高速互聯(lián)網(wǎng)絡(luò)中的云控制芯片控制,這些硬件模塊只負責(zé)執(zhí)行各自的工作,優(yōu)點在于提高了計算機的工作并行性和數(shù)據(jù)吞吐量。
其中,眾核解耦架構(gòu)計算機的硬件可以分為計算資源池、內(nèi)存池、IO設(shè)備池、資源管理中心以及連接網(wǎng)絡(luò)。計算機資源池是由多個多核CPU組成的CPU板,其總核數(shù)可達上千個,多個核可以組合運行在一個操作系統(tǒng)(OS,Operating System)上;內(nèi)存池是由多個內(nèi)存條組成的內(nèi)存板,其存儲總?cè)萘靠蛇_T、P量級,內(nèi)存可以分配給多個操作系統(tǒng)使用;IO設(shè)備池是由多個IO設(shè)備組成的設(shè)備板,IO設(shè)備包括磁盤、網(wǎng)卡、顯卡等,可通過操作系統(tǒng)控制;資源管理中心,用于通過云控制芯片對計算機資源池、內(nèi)存池和IO設(shè)備池進行調(diào)度和分配,以形成至少一個硬件模塊,例如:將2個指定的核、1G的內(nèi)存和1個指定的網(wǎng)卡組成一個運行操作系統(tǒng)OS1的硬件模塊。
眾核解耦架構(gòu)計算機可以同時運行多個操作系統(tǒng),由于不同的操作系統(tǒng)之間存在邏輯上的隔離,故操作系統(tǒng)不能訪問未分配的其它IO設(shè)備。進一步地,如果新的操作系統(tǒng)想要訪問原有的操作系統(tǒng)下的IO設(shè)備,則需要在資源管理中心的調(diào)度下,將該IO設(shè)備從原有的操作系統(tǒng)上移除,再添加到新的操作系統(tǒng)上。例如,假設(shè)計算機同時運行OS1和OS2兩個操作系統(tǒng),IO設(shè)備A被分配在OS1下,OS2想要使用IO設(shè)備A,此時設(shè)備遷移過程如下:(1)OS2向資源管理中 心提出請求,要求將網(wǎng)卡A分配給OS2使用;(2)資源管理中心根據(jù)預(yù)設(shè)的遷移決策機制判斷是否可以遷移設(shè)備;(3)若可以,資源管理中心向OS1提出網(wǎng)卡A移除請求,以從運行OS1的CPU上熱拔出網(wǎng)卡A;(4)資源管理中心更新網(wǎng)卡A的使用狀態(tài),將網(wǎng)卡A放入IO設(shè)備資源池的空閑池;(5)資源管理中心將網(wǎng)卡A從空閑池中取出,分配給OS2,更新網(wǎng)卡A的使用狀態(tài);(6)資源管理中心向OS2發(fā)出通道建立請求,以將網(wǎng)卡A熱插入運行OS2的CPU;(7)OS2使用網(wǎng)卡A。可見,現(xiàn)有的設(shè)備遷移過程需要資源管理中心提出多次請求,步驟繁多,尤其是遷移的IO設(shè)備有多個時,需要重復(fù)多次,導(dǎo)致復(fù)雜度高和效率低。并且遷移的IO設(shè)備有多個時,現(xiàn)有的遷移過程沒有保持原有的連接結(jié)構(gòu),必須重新連接,造成了不必要的開銷。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種設(shè)備遷移的方法及資源管理中心,可以實現(xiàn)在眾核解耦架構(gòu)計算機下,當(dāng)兩個操作系統(tǒng)之間有多個設(shè)備需要遷移時,保持這多個設(shè)備的連接結(jié)構(gòu),以設(shè)備組的形式進行遷移,從而降低復(fù)雜度、提高效率以及減小開銷。
本發(fā)明實施例第一方面提供了一種設(shè)備遷移的方法,所述方法應(yīng)用于眾核解耦架構(gòu)計算機,所述眾核解耦架構(gòu)計算機包括多個多核中央處理器CPU、多個內(nèi)存條、多個IO設(shè)備以及資源管理中心,所述方法包括:
資源管理中心獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求,所述第一操作系統(tǒng)運行在第一CPU組,所述第一CPU組包括至少一個所述多核CPU,所述目標(biāo)設(shè)備組由至少一個所述內(nèi)存條和/或至少一個所述IO設(shè)備組成,所述目標(biāo)設(shè)備組被第二操作系統(tǒng)使用,所述第二操作系統(tǒng)運行在第二CPU組,所述第二CPU組包括至少一個所述多核CPU;
資源管理中心保持所述目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組;
資源管理中心將所述目標(biāo)設(shè)備組熱插入所述第一CPU組的通道接口,以使所述第一操作系統(tǒng)使用所述目標(biāo)設(shè)備組。
在第一方面的第一種可能實現(xiàn)方式中,所述資源管理中心保持所述目標(biāo)設(shè) 備組的內(nèi)部連接結(jié)構(gòu),從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組之前,還包括:
資源管理中心根據(jù)預(yù)設(shè)的遷移決策機制,確定當(dāng)前可從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組。
結(jié)合第一方面的可能實現(xiàn)方式,在第二種可能實現(xiàn)方式中,所述資源管理中心保持所述目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組,包括:
資源管理中心向所述第二操作系統(tǒng)發(fā)送移除所述目標(biāo)設(shè)備組的指示消息,以使所述第二操作系統(tǒng)根據(jù)所述指示消息觸發(fā)所述目標(biāo)設(shè)備組從所述第二CPU的通道接口上熱拔出。
結(jié)合第一方面的可能實現(xiàn)方式,在第三種可能實現(xiàn)方式中,所述資源管理中心將所述目標(biāo)設(shè)備組熱插入所述第二CPU組的通道接口,包括:
資源管理中心獲取所述第二操作系統(tǒng)的設(shè)備樹文件DTS,所述DTS用于描述CPU、內(nèi)存條和IO設(shè)備的連接;
資源管理中心獲取所述第二操作系統(tǒng)的DTS中描述所述目標(biāo)設(shè)備組的內(nèi)部連接的文本;
資源管理中心將所述文本增添到所述第一操作系統(tǒng)的DTS中,增添后的第一操作系統(tǒng)的DTS描述有所述第一CPU組與所述目標(biāo)設(shè)備組的連接;
資源管理中心將所述增添后的第一操作系統(tǒng)的DTS發(fā)送到云控制芯片,以使所述云控制芯片根據(jù)所述增添后的第二操作系統(tǒng)的DTS,將所述目標(biāo)設(shè)備組熱插入所述第二CPU組的通道接口。
結(jié)合第一方面以及第一方面的第三種可能實現(xiàn)方式,在第四種可能實現(xiàn)方式中,所述資源管理中心獲取所述第二操作系統(tǒng)的DTS中描述所述目標(biāo)設(shè)備組的內(nèi)部連接的文本之后,還包括:
資源管理中心從所述第二操作系統(tǒng)的DTS中移除描述所述目標(biāo)設(shè)備組的文本。
本發(fā)明實施例第二方面提供了一種資源管理中心,所述資源管理中心應(yīng)用于眾核解耦架構(gòu)計算機,包括:
請求獲取模塊,用于獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求,所 述第一操作系統(tǒng)運行在第一CPU組,所述第一CPU組包括至少一個多核CPU,所述目標(biāo)設(shè)備組由至少一個內(nèi)存條和/或至少一個IO設(shè)備組成,所述目標(biāo)設(shè)備組被第二操作系統(tǒng)使用,所述第二操作系統(tǒng)運行在第二CPU組,所述第二CPU組包括至少一個多核CPU;
熱拔出模塊,用于保持所述目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組;
熱插入模塊,用于將所述目標(biāo)設(shè)備組熱插入所述第一CPU組的通道接口,以使所述第一操作系統(tǒng)使用所述目標(biāo)設(shè)備組。
在第一方面的第一種可能實現(xiàn)方式中,所述資源管理中心還包括:
遷移確定模塊,用于根據(jù)預(yù)設(shè)的遷移決策機制,確定當(dāng)前可從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組。
結(jié)合第一方面的可能實現(xiàn)方式,在第二種可能實現(xiàn)方式中,所述熱拔出模塊,具體用于向所述第二操作系統(tǒng)發(fā)送移除所述目標(biāo)設(shè)備組的指示消息,以使所述第二操作系統(tǒng)根據(jù)所述指示消息觸發(fā)所述目標(biāo)設(shè)備組從所述第二CPU的通道接口上熱拔出。
結(jié)合第一方面的可能實現(xiàn)方式,在第三種可能實現(xiàn)方式中,所述熱插入模塊包括:
DTS獲取單元,用于獲取所述第二操作系統(tǒng)的設(shè)備樹文件DTS,所述DTS用于描述CPU、內(nèi)存條和IO設(shè)備的連接;
文本獲取單元,用于獲取所述第二操作系統(tǒng)的DTS中描述所述目標(biāo)設(shè)備組的內(nèi)部連接的文本;
文本增添單元,用于將所述文本增添到所述第一操作系統(tǒng)的DTS中,增添后的第一操作系統(tǒng)的DTS描述有所述第一CPU組與所述目標(biāo)設(shè)備組的連接;
DTS發(fā)送單元,用于將所述增添后的第一操作系統(tǒng)的DTS發(fā)送到云控制芯片,以使所述云控制芯片根據(jù)所述增添后的第二操作系統(tǒng)的DTS,將所述目標(biāo)設(shè)備組熱插入所述第二CPU組的通道接口。
結(jié)合第一方面以及第一方面的第三種可能實現(xiàn)方式,在第四種可能實現(xiàn)方式中,所述熱插入模塊還包括:
文本移除單元,用于從所述第二操作系統(tǒng)的DTS中移除描述所述目標(biāo)設(shè)備組的文本。
由上可見,本發(fā)明實施例中的資源管理中心,在獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求后,保持目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從第二CPU組的通道接口上熱拔出目標(biāo)設(shè)備組,再將目標(biāo)設(shè)備組熱插入第一CPU組的通道接口,以使第一操作系統(tǒng)可以使用目標(biāo)設(shè)備組,實現(xiàn)在兩個操作系統(tǒng)之間的設(shè)備遷移,由于本發(fā)明實施例是以組的形式進行遷移,不會改變目標(biāo)設(shè)備組原有的內(nèi)部連接,從而避免依次遷移目標(biāo)設(shè)備組內(nèi)的各個設(shè)備,降低了復(fù)雜度、提高了效率以及減小了開銷,并且使用的熱插拔技術(shù)不會影響其它設(shè)備的正常使用。
附圖說明
為了更清楚地說明本發(fā)明實施例,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種設(shè)備遷移的方法的流程示意圖;
圖2是本發(fā)明實施例提供的另一種設(shè)備遷移的方法的流程示意圖;
圖3是本發(fā)明實施例提供的一種資源管理中心的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施例提供的一種熱插入模塊的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實施例提供的一種眾核解耦架構(gòu)計算機的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實施例提供的一種設(shè)備遷移應(yīng)用場景的示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為了便于理解,本發(fā)明實施例先簡單介紹下以下幾點:
一、眾核解耦架構(gòu)計算機。眾核解耦架構(gòu)是指將計算機中的硬件分離,形成多個管理獨立的硬件模塊,各個硬件模塊之間通過高速互聯(lián)網(wǎng)絡(luò)連接,并由高速互聯(lián)網(wǎng)絡(luò)中的云控制芯片控制,這些硬件模塊只負責(zé)執(zhí)行各自的工作,優(yōu) 點在于提高了計算機的工作并行性和數(shù)據(jù)吞吐量。請參閱圖5,如圖所示的眾核解耦架構(gòu)計算機的硬件可以分為計算資源池、內(nèi)存池、IO設(shè)備池、資源管理中心以及連接網(wǎng)絡(luò)。其中:
●計算資源池:CPU板上接入多個多核CPU,其總核數(shù)可達上千個,這些CPU資源由資源管理中心調(diào)度分配。多個核可以組合運行在某個操作系統(tǒng)(OS,Operating System)上。
●內(nèi)存池:內(nèi)存板上插入多個內(nèi)存條,形成一段巨大容量(T、P量級)的內(nèi)存空間,內(nèi)存可以按地址分給上層的操作系統(tǒng)使用。
●IO設(shè)備池:設(shè)備板上接入多個IO設(shè)備,IO設(shè)備包括磁盤、網(wǎng)卡、顯卡等。待資源管理中心將某個IO設(shè)備分配給具體的操作系統(tǒng)后,該操作系統(tǒng)便可以使用該IO設(shè)備。
●資源管理中心:可以通過云控制芯片對計算機資源池、內(nèi)存池和IO設(shè)備池進行調(diào)度和分配,以形成至少一個硬件模塊,例如:將2個指定的核、1G的內(nèi)存和1個指定的網(wǎng)卡組成一個運行操作系統(tǒng)OS1的硬件模塊。
多核解耦架構(gòu)計算機上運行的操作系統(tǒng)不同于傳統(tǒng)單機上的操作系統(tǒng),而是類似于分布式管理系統(tǒng)。即將多核解耦架構(gòu)計算機上的各個池中選取合適的組件,組合成一個可以運行操作系統(tǒng)的硬件環(huán)境,并且相互間實行邏輯上的隔離,這樣就可以運行具有多個操作系統(tǒng)的分布式集群系統(tǒng)。需要指出的是,在已經(jīng)運行的操作系統(tǒng)上添加和刪除設(shè)備板上的設(shè)備時,會使用熱插拔的技術(shù)。另外,現(xiàn)有操作系統(tǒng)已兼容熱插拔技術(shù),故可以不用修改現(xiàn)有的操作系統(tǒng)代碼。
二、設(shè)備樹文件DTS。設(shè)備樹(Device Tree)是一種描述硬件的數(shù)據(jù)結(jié)構(gòu),由一系列被命名的結(jié)點(node)和節(jié)點對應(yīng)的屬性(property)組成,而結(jié)點本身可包含子結(jié)點。所述屬性包括成對出現(xiàn)的名(name)和值(value)。設(shè)備樹中可描述的信息包括:CPU的數(shù)量和類別、內(nèi)存的基地址和大小、總線和橋、外設(shè)連接、中斷控制器和中斷使用情況、GPIO控制器和GPIO使用情況、Clock控制器和Clock使用情況等??偟膩碚f,設(shè)備樹描述了一個由CPU、內(nèi)存條、IO設(shè)備、連接線構(gòu)成的樹型結(jié)構(gòu),以及該樹形結(jié)構(gòu)上各個節(jié)點的設(shè)備信息。進一步地,設(shè)備樹的文本表現(xiàn)形式為設(shè)備樹文件DTS。
三、本發(fā)明實施例的應(yīng)用場景。請參閱圖6,如圖所示的應(yīng)用場景下,存在兩個操作系統(tǒng)OS1和OS2,OS1運行于由CPU5和CPU6構(gòu)成的第一CPU組, OS2運行于由CPU1、CPU2、CPU3和CPU4構(gòu)成的第二CPU組。OS1想要使用OS2下的網(wǎng)卡1、內(nèi)存1和顯卡1,本發(fā)明實施例將這三個設(shè)備歸為一組,定義為目標(biāo)設(shè)備組。需要指出的是,通過現(xiàn)有的遷移過程,只能依次遷移網(wǎng)卡1、內(nèi)存1和顯卡1,不能保持它們整體的連接結(jié)構(gòu),導(dǎo)致復(fù)雜度高和效率低,并造成了不必要的開銷。
圖1是本發(fā)明實施例中一種設(shè)備遷移的方法的流程示意圖,該方法應(yīng)用于眾核解耦架構(gòu)計算機,眾核解耦架構(gòu)計算機包括多個多核中央處理器CPU、多個內(nèi)存條、多個IO設(shè)備以及資源管理中心。如圖所示本實施例中的設(shè)備遷移的方法的流程可以包括:
S101,資源管理中心獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求。
其中,第一操作系統(tǒng)(以下簡稱為“OS1”)運行在第一CPU組,第一CPU組包括至少一個多核CPU,目標(biāo)設(shè)備組被第二操作系統(tǒng)(以下簡稱為“OS2”)使用,第二操作系統(tǒng)運行在第二CPU組,第二CPU組包括至少一個多核CPU。進一步地,目標(biāo)設(shè)備組被OS2使用是指,目標(biāo)設(shè)備有且僅與運行OS2的第二CPU組的通道接口連接,故運行OS1的第一CPU組不能與目標(biāo)設(shè)備交互,OS1不能使用目標(biāo)設(shè)備組。
本發(fā)明實施例中,目標(biāo)設(shè)備組由至少一個內(nèi)存條和/或至少一個IO設(shè)備組成,這些設(shè)備具備一定的連接結(jié)構(gòu)。例如,請參閱圖6,如圖所示的目標(biāo)設(shè)備組包括網(wǎng)卡1、內(nèi)存1和顯卡1,其中網(wǎng)卡1、內(nèi)存1和顯卡1之間具備樹形的連接結(jié)構(gòu)。
具體地,當(dāng)OS1需要使用目標(biāo)設(shè)備組時,OS1會向資源管理中心發(fā)出使用目標(biāo)設(shè)備組的請求,資源管理中心獲取該請求。
S102,資源管理中心保持所述目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組。
其中,所述熱拔出是指允許不關(guān)閉操作系統(tǒng)、不斷電的情況下拔出設(shè)備,因而不會影響其它設(shè)備的正常使用。
可選地,資源管理中心根據(jù)預(yù)設(shè)的遷移決策機制,先確定當(dāng)前可從第二CPU組的通道接口上熱拔出目標(biāo)設(shè)備組。所述遷移決策機制可以根據(jù)設(shè)備狀態(tài)、操作系統(tǒng)狀態(tài)或優(yōu)先級狀態(tài)等因素預(yù)先設(shè)定,這里不作限定,例如:若當(dāng)前目標(biāo) 設(shè)備組處于空閑狀態(tài),或OS2當(dāng)前未使用目標(biāo)設(shè)備組,或OS1當(dāng)前所執(zhí)行任務(wù)的優(yōu)先級高于OS2,則資源管理中心確定當(dāng)前可以熱拔出目標(biāo)設(shè)備組。
又可選地,資源管理中心“保持目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從第二CPU組的通道接口上熱拔出目標(biāo)設(shè)備組”的具體操作為:向OS2發(fā)送移除目標(biāo)設(shè)備組的指示消息,以使OS2根據(jù)指示消息觸發(fā)目標(biāo)設(shè)備組從第二CPU的通道接口上熱拔出,拔出的目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu)不發(fā)生變化。
S103,資源管理中心將所述目標(biāo)設(shè)備組熱插入所述第一CPU組的通道接口,以使所述第一操作系統(tǒng)使用所述目標(biāo)設(shè)備組。
可選地,資源管理中心“保持目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從第二CPU組的通道接口上熱拔出目標(biāo)設(shè)備組”的具體操作為:
步驟1,資源管理中心獲取第二操作系統(tǒng)的設(shè)備樹文件DTS,所述DTS用于描述CPU、內(nèi)存條和IO設(shè)備的連接。
上文已經(jīng)介紹過什么是DTS,這里不再贅述。其中,OS2的DTS通過文本描述了OS2下CPU、內(nèi)存條和IO設(shè)備的連接結(jié)構(gòu)。例如:如圖6所示,OS2的DTS描述了左側(cè)大圓圈內(nèi)的所有樹形連接,以及樹形結(jié)構(gòu)與第一CPU組的連接。
步驟2,資源管理中心獲取第二操作系統(tǒng)的DTS中描述目標(biāo)設(shè)備組的內(nèi)部連接的文本。
例如:如圖6所示,目標(biāo)設(shè)備組的內(nèi)部連接如左側(cè)小圓圈內(nèi)的樹形連接所示,資源管理資源獲取描述該樹形連接的文本。
可選地,資源管理中心獲取OS2的DTS中描述目標(biāo)設(shè)備組的內(nèi)部連接的文本之后,從OS2的DTS中移除描述目標(biāo)設(shè)備組的文本,從而實現(xiàn)更新OS2的DTS,并對其保存。
步驟3、資源管理中心將文本增添到第一操作系統(tǒng)的DTS中,增添后的第一操作系統(tǒng)的DTS描述有第一CPU組與目標(biāo)設(shè)備組的連接。
具體地,資源管理資源在OS1的DTS中找到可以接入的節(jié)點,將上述獲取的文本的斷點接入該節(jié)點,即增添后的OS1的DTS描述有第一CPU組與目標(biāo)設(shè)備組的連接。
進一步地,資源管理中心將增添后的OS1的DTS更新為當(dāng)前OS1的DTS,并對其保存。
步驟4、資源管理中心將增添后的第一操作系統(tǒng)的DTS發(fā)送到云控制芯片,以使云控制芯片根據(jù)增添后的第二操作系統(tǒng)的DTS,將目標(biāo)設(shè)備組熱插入第二CPU組的通道接口。
同理,所述熱插入是指允許不關(guān)閉操作系統(tǒng)、不斷電的情況下插入設(shè)備,因而也不會影響其它設(shè)備的正常使用。
最后,資源管理中心獲取云控制模塊返回的目標(biāo)設(shè)備組遷移成功信息,此時OS2可以使用目標(biāo)設(shè)備組。
由上可見,本發(fā)明實施例中的資源管理中心,在獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求后,保持目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從第二CPU組的通道接口上熱拔出目標(biāo)設(shè)備組,再將目標(biāo)設(shè)備組熱插入第一CPU組的通道接口,以使第一操作系統(tǒng)可以使用目標(biāo)設(shè)備組,實現(xiàn)在兩個操作系統(tǒng)之間的設(shè)備遷移,由于本發(fā)明實施例是以組的形式進行遷移,不會改變目標(biāo)設(shè)備組原有的內(nèi)部連接,從而避免依次遷移目標(biāo)設(shè)備組內(nèi)的各個設(shè)備,降低了復(fù)雜度、提高了效率以及減小了開銷,并且使用的熱插拔技術(shù)不會影響其它設(shè)備的正常使用。
圖2是本發(fā)明實施例中另一種設(shè)備遷移的方法的流程示意圖,該方法應(yīng)用于眾核解耦架構(gòu)計算機,眾核解耦架構(gòu)計算機包括多個多核中央處理器CPU、多個內(nèi)存條、多個IO設(shè)備以及資源管理中心。如圖所示本實施例中的設(shè)備遷移的方法的流程可以包括:
S201,資源管理中心獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求。
其中,第一操作系統(tǒng)(以下簡稱為“OS1”)運行在第一CPU組,第一CPU組包括至少一個多核CPU,目標(biāo)設(shè)備組被第二操作系統(tǒng)(以下簡稱為“OS2”)使用,第二操作系統(tǒng)運行在第二CPU組,第二CPU組包括至少一個多核CPU。進一步地,目標(biāo)設(shè)備組被OS2使用是指,目標(biāo)設(shè)備有且僅與運行OS2的第二CPU組的通道接口連接,故運行OS1的第一CPU組不能與目標(biāo)設(shè)備交互,OS1不能使用目標(biāo)設(shè)備組。
本發(fā)明實施例中,目標(biāo)設(shè)備組由至少一個內(nèi)存條和/或至少一個IO設(shè)備組成,這些設(shè)備具備一定的連接結(jié)構(gòu)。例如,請參閱圖6,如圖所示的目標(biāo)設(shè)備組包括網(wǎng)卡1、內(nèi)存1和顯卡1,其中網(wǎng)卡1、內(nèi)存1和顯卡1之間具備樹形的連接結(jié)構(gòu)。
具體地,當(dāng)OS1需要使用目標(biāo)設(shè)備組時,OS1會向資源管理中心發(fā)出使用目標(biāo)設(shè)備組的請求,資源管理中心獲取該請求。
S202,資源管理中心根據(jù)預(yù)設(shè)的遷移決策機制,判斷當(dāng)前是否可從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組。
其中,所述遷移決策機制可以根據(jù)設(shè)備狀態(tài)、操作系統(tǒng)狀態(tài)或優(yōu)先級狀態(tài)等因素預(yù)先設(shè)定,這里不作限定,例如:若當(dāng)前目標(biāo)設(shè)備組處于空閑狀態(tài),或OS2當(dāng)前未使用目標(biāo)設(shè)備組,或OS1當(dāng)前所執(zhí)行任務(wù)的優(yōu)先級高于OS2,則資源管理中心確定當(dāng)前可以熱拔出目標(biāo)設(shè)備組。
具體地,資源管理中心若判斷當(dāng)前可從第二CPU組的通道接口上熱拔出目標(biāo)設(shè)備組,則執(zhí)行步驟S203,否則結(jié)束。
S203,資源管理中心向所述第二操作系統(tǒng)發(fā)送移除所述目標(biāo)設(shè)備組的指示消息,以使所述第二操作系統(tǒng)根據(jù)所述指示消息觸發(fā)所述目標(biāo)設(shè)備組從所述第二CPU的通道接口上熱拔出。
其中,所述熱拔出是指允許不關(guān)閉操作系統(tǒng)、不斷電的情況下拔出設(shè)備,因而不會影響其它設(shè)備的正常使用。
S204,資源管理中心獲取所述第二操作系統(tǒng)的設(shè)備樹文件DTS,所述DTS用于描述CPU、內(nèi)存條和IO設(shè)備的連接。
上文已經(jīng)介紹過什么是DTS,這里不再贅述。其中,OS2的DTS通過文本描述了OS2下CPU、內(nèi)存條和IO設(shè)備的連接結(jié)構(gòu)。例如:如圖6所示,OS2的DTS描述了左側(cè)大圓圈內(nèi)的所有樹形連接,以及樹形結(jié)構(gòu)與第一CPU組的連接。
S205,資源管理中心獲取所述第二操作系統(tǒng)的DTS中描述所述目標(biāo)設(shè)備組的內(nèi)部連接的文本。
例如:如圖6所示,目標(biāo)設(shè)備組的內(nèi)部連接如左側(cè)小圓圈內(nèi)的樹形連接所示,資源管理資源獲取描述該樹形連接的文本。
可選地,資源管理中心獲取OS2的DTS中描述目標(biāo)設(shè)備組的內(nèi)部連接的文本之后,從OS2的DTS中移除描述目標(biāo)設(shè)備組的文本,從而實現(xiàn)更新OS2的DTS,并對其保存。
S206,資源管理中心將所述文本增添到所述第一操作系統(tǒng)的DTS中,增添后的第一操作系統(tǒng)的DTS描述有所述第一CPU組與所述目標(biāo)設(shè)備組的連接。
具體地,資源管理資源在OS1的DTS中找到可以接入的節(jié)點,將上述獲取的文本的斷點接入該節(jié)點,即增添后的OS1的DTS描述有第一CPU組與目標(biāo)設(shè)備組的連接。
進一步地,資源管理中心將增添后的OS1的DTS更新為當(dāng)前OS1的DTS,并對其保存。
S207,資源管理中心將所述增添后的第一操作系統(tǒng)的DTS發(fā)送到云控制芯片,以使所述云控制芯片根據(jù)所述增添后的第二操作系統(tǒng)的DTS,將所述目標(biāo)設(shè)備組熱插入所述第二CPU組的通道接口。
同理,所述熱插入是指允許不關(guān)閉操作系統(tǒng)、不斷電的情況下插入設(shè)備,因而也不會影響其它設(shè)備的正常使用。
最后,資源管理中心獲取云控制模塊返回的目標(biāo)設(shè)備組遷移成功信息,此時OS2可以使用目標(biāo)設(shè)備組。
由上可見,本發(fā)明實施例中的資源管理中心,在獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求后,保持目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從第二CPU組的通道接口上熱拔出目標(biāo)設(shè)備組,再將目標(biāo)設(shè)備組熱插入第一CPU組的通道接口,以使第一操作系統(tǒng)可以使用目標(biāo)設(shè)備組,實現(xiàn)在兩個操作系統(tǒng)之間的設(shè)備遷移,由于本發(fā)明實施例是以組的形式進行遷移,不會改變目標(biāo)設(shè)備組原有的內(nèi)部連接,從而避免依次遷移目標(biāo)設(shè)備組內(nèi)的各個設(shè)備,降低了復(fù)雜度、提高了效率以及減小了開銷,并且使用的熱插拔技術(shù)不會影響其它設(shè)備的正常使用。
圖3是本發(fā)明實施例中一種資源管理中心的結(jié)構(gòu)示意圖,所述資源管理中心應(yīng)用于眾核解耦架構(gòu)計算機。如圖所示本發(fā)明實施例中的資源管理中心至少可以包括請求獲取模塊310、熱拔出模塊320以及熱插入模塊330,其中:
請求獲取模塊310,用于獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求。
其中,第一操作系統(tǒng)(以下簡稱為“OS1”)運行在第一CPU組,第一CPU組包括至少一個多核CPU,目標(biāo)設(shè)備組被第二操作系統(tǒng)(以下簡稱為“OS2”)使用,第二操作系統(tǒng)運行在第二CPU組,第二CPU組包括至少一個多核CPU。進一步地,目標(biāo)設(shè)備組被OS2使用是指,目標(biāo)設(shè)備有且僅與運行OS2的第二CPU組的通道接口連接,故運行OS1的第一CPU組不能與目標(biāo)設(shè)備交互,OS1不能使用目標(biāo)設(shè)備組。
本發(fā)明實施例中,目標(biāo)設(shè)備組由至少一個內(nèi)存條和/或至少一個IO設(shè)備組成,這些設(shè)備具備一定的連接結(jié)構(gòu)。例如,請參閱圖6,如圖所示的目標(biāo)設(shè)備組包括網(wǎng)卡1、內(nèi)存1和顯卡1,其中網(wǎng)卡1、內(nèi)存1和顯卡1之間具備樹形的連接結(jié)構(gòu)。
具體地,當(dāng)OS1需要使用目標(biāo)設(shè)備組時,OS1會向資源管理中心發(fā)出使用目標(biāo)設(shè)備組的請求,請求獲取模塊310獲取該請求。
熱拔出模塊320,用于保持所述目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組。
其中,所述熱拔出是指允許不關(guān)閉操作系統(tǒng)、不斷電的情況下拔出設(shè)備,因而不會影響其它設(shè)備的正常使用。
可選地,熱拔出模塊320具體用于向OS2發(fā)送移除目標(biāo)設(shè)備組的指示消息,以使OS2根據(jù)指示消息觸發(fā)目標(biāo)設(shè)備組從第二CPU的通道接口上熱拔出,拔出的目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu)不發(fā)生變化。
熱插入模塊330,用于將所述目標(biāo)設(shè)備組熱插入所述第一CPU組的通道接口,以使所述第一操作系統(tǒng)使用所述目標(biāo)設(shè)備組。具體實現(xiàn)中,熱插入模塊330可以如圖4所示進一步包括DTS獲取單元331、文本獲取單元332、文本增添單元333以及DTS發(fā)送單元334,其中:
DTS獲取單元331,用于獲取所述第二操作系統(tǒng)的設(shè)備樹文件DTS,所述DTS用于描述CPU、內(nèi)存條和IO設(shè)備的連接。
上文已經(jīng)介紹過什么是DTS,這里不再贅述。其中,OS2的DTS通過文本描述了OS2下CPU、內(nèi)存條和IO設(shè)備的連接結(jié)構(gòu)。例如:如圖6所示,OS2的DTS描述了左側(cè)大圓圈內(nèi)的所有樹形連接,以及樹形結(jié)構(gòu)與第一CPU組的連接。
文本獲取單元332,用于獲取所述第二操作系統(tǒng)的DTS中描述所述目標(biāo)設(shè)備組的內(nèi)部連接的文本。
例如:如圖6所示,目標(biāo)設(shè)備組的內(nèi)部連接如左側(cè)小圓圈內(nèi)的樹形連接所示,資源管理資源獲取描述該樹形連接的文本。
文本增添單元333,用于將所述文本增添到所述第一操作系統(tǒng)的DTS中,增添后的第一操作系統(tǒng)的DTS描述有所述第一CPU組與所述目標(biāo)設(shè)備組的連接。
具體地,文本增添單元333在OS1的DTS中找到可以接入的節(jié)點,將上述獲取的文本的斷點接入該節(jié)點,即增添后的OS1的DTS描述有第一CPU組與目標(biāo)設(shè)備組的連接。
進一步地,文本增添單元333將增添后的OS1的DTS更新為當(dāng)前OS1的DTS,并對其保存。
DTS發(fā)送單元334,用于將所述增添后的第一操作系統(tǒng)的DTS發(fā)送到云控制芯片,以使所述云控制芯片根據(jù)所述增添后的第二操作系統(tǒng)的DTS,將所述目標(biāo)設(shè)備組熱插入所述第二CPU組的通道接口。
同理,所述熱插入是指允許不關(guān)閉操作系統(tǒng)、不斷電的情況下插入設(shè)備,因而也不會影響其它設(shè)備的正常使用。
可選地,如圖4所示本發(fā)明實施例中的熱插入模塊330還可以包括文本移除單元335,用于從所述第二操作系統(tǒng)的DTS中移除描述所述目標(biāo)設(shè)備組的文本。
具體地,文本移除單元335獲取OS2的DTS中描述目標(biāo)設(shè)備組的內(nèi)部連接的文本之后,從OS2的DTS中移除描述目標(biāo)設(shè)備組的文本,從而實現(xiàn)更新OS2的DTS,并對其保存。
進一步可選地,如圖3所示本發(fā)明實施例中的資源管理中心還可以包括遷移確定模塊340,用于根據(jù)預(yù)設(shè)的遷移決策機制,確定當(dāng)前可從所述第二CPU組的通道接口上熱拔出所述目標(biāo)設(shè)備組。
所述遷移決策機制可以根據(jù)設(shè)備狀態(tài)、操作系統(tǒng)狀態(tài)或優(yōu)先級狀態(tài)等因素預(yù)先設(shè)定,這里不作限定,例如:若當(dāng)前目標(biāo)設(shè)備組處于空閑狀態(tài),或OS2當(dāng)前未使用目標(biāo)設(shè)備組,或OS1當(dāng)前所執(zhí)行任務(wù)的優(yōu)先級高于OS2,則遷移確定模塊340確定當(dāng)前可以熱拔出目標(biāo)設(shè)備組。
本發(fā)明實施例還提出了一種計算機存儲介質(zhì),所述計算機存儲介質(zhì)存儲有程序,所述程序包括若干指令用以執(zhí)行本發(fā)明實施例圖1-圖2所描述的一種設(shè)備遷移的方法中的部分或全部的步驟。
由上可見,本發(fā)明實施例中的資源管理中心,在獲取第一操作系統(tǒng)提出的使用目標(biāo)設(shè)備組的請求后,保持目標(biāo)設(shè)備組的內(nèi)部連接結(jié)構(gòu),從第二CPU組的 通道接口上熱拔出目標(biāo)設(shè)備組,再將目標(biāo)設(shè)備組熱插入第一CPU組的通道接口,以使第一操作系統(tǒng)可以使用目標(biāo)設(shè)備組,實現(xiàn)在兩個操作系統(tǒng)之間的設(shè)備遷移,由于本發(fā)明實施例是以組的形式進行遷移,不會改變目標(biāo)設(shè)備組原有的內(nèi)部連接,從而避免依次遷移目標(biāo)設(shè)備組內(nèi)的各個設(shè)備,降低了復(fù)雜度、提高了效率以及減小了開銷,并且使用的熱插拔技術(shù)不會影響其它設(shè)備的正常使用。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。