两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于CMDB的自助資源分配調(diào)度的方法與流程

文檔序號(hào):11778320閱讀:487來(lái)源:國(guó)知局
基于CMDB的自助資源分配調(diào)度的方法與流程

本發(fā)明涉及it管理技術(shù)領(lǐng)域,具體涉及一種基于cmdb的自助資源分配調(diào)度的方法。



背景技術(shù):

隨著目前諸多大型企業(yè)越來(lái)越重視互聯(lián)網(wǎng)技術(shù),所建立的數(shù)據(jù)中心也不單單在某個(gè)城市,可能在多個(gè)城市、甚至多個(gè)國(guó)家擁有多個(gè)分布式數(shù)據(jù)中心;而每個(gè)數(shù)據(jù)中心可能還包括數(shù)以萬(wàn)計(jì)的物理資源和虛擬資源(泛指虛擬機(jī),指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)),尤其是每臺(tái)物理服務(wù)器都承載大量重要的虛擬機(jī)等應(yīng)用。針對(duì)這種日趨復(fù)雜的情況,需要通過(guò)cmdb系統(tǒng)針對(duì)“閑置資源”和“業(yè)務(wù)應(yīng)用”進(jìn)行分配及關(guān)聯(lián)。

cmdb(configurationmanagementdatabase,配置管理數(shù)據(jù)庫(kù))通過(guò)識(shí)別、控制、維護(hù),檢查企業(yè)的it資源,從而高效控制與管理不斷變化的it基礎(chǔ)架構(gòu)與it服務(wù),并為其它流程,例如事故管理、問(wèn)題管理、變更管理、發(fā)布管理等流程提供準(zhǔn)確的配置信息。

作為it管理的核心,近年來(lái)cmdb逐漸成為系統(tǒng)管理項(xiàng)目實(shí)施的熱點(diǎn)。cmdb系統(tǒng)中至少包含這幾種關(guān)鍵的功能:整合、調(diào)和、同步、映射和可視化,其中“同步”是指確保cmdb中的信息能夠反映聯(lián)合數(shù)據(jù)源的更新情況,在聯(lián)合數(shù)據(jù)源更新頻率的基礎(chǔ)上確定cmdb更新日程,按照經(jīng)過(guò)批準(zhǔn)的變更來(lái)更新cmdb,找出未被批準(zhǔn)的變更。這當(dāng)中有一個(gè)重要的特性“資源”,資源在這里多指ip資源,也可以是存儲(chǔ)資源、網(wǎng)絡(luò)資源、機(jī)房資源等等,而資源必須要和應(yīng)用關(guān)聯(lián)起來(lái),那么這當(dāng)中就會(huì)涉及到“資源分配申請(qǐng)”的功能模塊。

在運(yùn)用cmdb系統(tǒng)進(jìn)行資源分配時(shí),通常為了節(jié)省成本及資源,會(huì)在每臺(tái)物理機(jī)(即宿主機(jī),虛擬機(jī)的物理基礎(chǔ),虛擬機(jī)存在于宿主機(jī)中,與宿主機(jī)共享使用硬件。宿主機(jī)的運(yùn)行是虛擬機(jī)運(yùn)行的前提與基礎(chǔ)。)中承載多個(gè)虛擬機(jī),每個(gè)虛擬機(jī)可以看作獨(dú)立的服務(wù)器進(jìn)行使用,然而為了避免發(fā)生單點(diǎn)故障(這里的“單點(diǎn)”是指通過(guò)cmdb系統(tǒng)在進(jìn)行自動(dòng)申請(qǐng)資源時(shí),所申請(qǐng)的某個(gè)或多個(gè)虛擬機(jī)服務(wù)器資源,正巧都落在同一個(gè)宿主機(jī)中,容易發(fā)生單點(diǎn)故障),會(huì)在多個(gè)宿主機(jī)及其包含的虛擬機(jī)中組建成龐大的計(jì)算機(jī)集群一來(lái)加強(qiáng)計(jì)算能力,二來(lái)可以防止單點(diǎn)故障發(fā)生,然后通過(guò)cmdb系統(tǒng)的資源申請(qǐng)功能來(lái)讓企業(yè)開(kāi)發(fā)人員自助根據(jù)不同的業(yè)務(wù)應(yīng)用來(lái)申請(qǐng)資源數(shù)量。

cmdb系統(tǒng)的資源分配功能,通常都是以網(wǎng)頁(yè)并且以b/s結(jié)構(gòu)的方式表現(xiàn),使用人員通過(guò)瀏覽器所呈現(xiàn)的頁(yè)面進(jìn)行自助申請(qǐng)操作,結(jié)合以上描述,目前主要有以下實(shí)施方式:

現(xiàn)有技術(shù)方案一:

如圖1所示,包括以下步驟:

步驟a1,為每個(gè)業(yè)務(wù)應(yīng)用開(kāi)發(fā)創(chuàng)建一個(gè)cmdb系統(tǒng),然后將事先已經(jīng)預(yù)定好的應(yīng)用和所涉及到的所有服務(wù)器(集群)資源信息都收集并導(dǎo)入進(jìn)各個(gè)cmdb系統(tǒng)的數(shù)據(jù)庫(kù)中,確保每個(gè)應(yīng)用下的cmdb系統(tǒng)中資源信息互相隔離。

服務(wù)器集群是將很多服務(wù)器集中起來(lái)一起進(jìn)行同一種服務(wù),在客戶端看來(lái)就像是只有一個(gè)服務(wù)器。集群可以利用多個(gè)計(jì)算機(jī)進(jìn)行并行計(jì)算從而獲得很高的計(jì)算速度,也可以用多個(gè)計(jì)算機(jī)做備份。

步驟a2,開(kāi)發(fā)人員通過(guò)對(duì)應(yīng)的業(yè)務(wù)應(yīng)用中的cmdb系統(tǒng),進(jìn)入資源申請(qǐng)的頁(yè)面,然后填寫(xiě)包括“應(yīng)用名”、“資源申請(qǐng)數(shù)量”、“責(zé)任人”等信息自助提交申請(qǐng)操作。

步驟a3,后端服務(wù)器接收到前端發(fā)來(lái)的提交申請(qǐng)的數(shù)據(jù),會(huì)在數(shù)據(jù)庫(kù)中表的′status′和′host_ip′字段來(lái)組合查詢?cè)摌I(yè)務(wù)應(yīng)用是否有可用閑置資源,若有,即會(huì)變更和記錄相應(yīng)的數(shù)據(jù)信息并把結(jié)果返回給前端頁(yè)面;若沒(méi)有,則會(huì)向前端頁(yè)面拋出錯(cuò)誤。圖2是各個(gè)數(shù)據(jù)庫(kù)關(guān)于資源表的相關(guān)e-r圖(entityrelationshipdiagram,實(shí)體-聯(lián)系圖),經(jīng)圖里顯示′host_ip′唯一性約束字段可說(shuō)明其服務(wù)器資源僅有宿主機(jī)(即物理機(jī))。

步驟a4,開(kāi)發(fā)人員或系統(tǒng)管理員可以看到提交申請(qǐng)結(jié)果和相關(guān)日志。

現(xiàn)有技術(shù)方案二:

如圖3所示,現(xiàn)有技術(shù)方案二不同于現(xiàn)有技術(shù)方案一為每個(gè)應(yīng)用都開(kāi)發(fā)一套獨(dú)立的cmdb系統(tǒng),現(xiàn)有技術(shù)方案二主要通過(guò)一個(gè)cmdb系統(tǒng)對(duì)多個(gè)業(yè)務(wù)應(yīng)用進(jìn)行統(tǒng)一資源申請(qǐng),而數(shù)據(jù)庫(kù)存儲(chǔ)的是所有業(yè)務(wù)應(yīng)用所涉及到的所有服務(wù)器(集群)資源信息,通過(guò)圖4的e-r圖可知,如字段′host_ip′和唯一性約束字段′private_ip′,代表可能有多條數(shù)據(jù)擁有相同′host_ip′和不同的′private_ip′,說(shuō)明技術(shù)方案二所申請(qǐng)的資源不僅包括宿主機(jī)(即物理機(jī)),并且部分宿主機(jī)中還包括大量虛擬機(jī)。接下來(lái)的步驟基本和技術(shù)方案一所提到的步驟a1、a2、a3一樣,開(kāi)發(fā)人員通過(guò)申請(qǐng)自助頁(yè)面填入相關(guān)信息后,系統(tǒng)后臺(tái)向數(shù)據(jù)庫(kù)表的′status′和′host_ip′字段來(lái)組合查詢可用資源,并進(jìn)行相應(yīng)的變更和返回結(jié)果。

綜上所述,現(xiàn)有技術(shù)方案一主要通過(guò)為每個(gè)應(yīng)用都開(kāi)發(fā)一套獨(dú)立的cmdb系統(tǒng),并單獨(dú)存儲(chǔ)該應(yīng)用所對(duì)應(yīng)的資源信息,且這些資源都只是物理服務(wù)器,沒(méi)有虛擬機(jī),因此該方案主要從不同應(yīng)用之間的數(shù)據(jù)隔離來(lái)確保資源申請(qǐng)的準(zhǔn)確性,但由于當(dāng)前企業(yè)互聯(lián)網(wǎng)業(yè)務(wù)大量普及,僅僅通過(guò)一臺(tái)物理服務(wù)器運(yùn)行一個(gè)應(yīng)用既浪費(fèi)服務(wù)器性能,又耗費(fèi)巨大,已不符合現(xiàn)代企業(yè)互聯(lián)網(wǎng)建設(shè)的初衷;再者,日后若在物理機(jī)中引入虛擬機(jī)技術(shù),該方案將無(wú)法滿足需求,另外,隨著企業(yè)的發(fā)展越來(lái)越大,而業(yè)務(wù)應(yīng)用也會(huì)越來(lái)越多,而cmdb系統(tǒng)也會(huì)變的更復(fù)雜龐大,若為每個(gè)應(yīng)用都單獨(dú)開(kāi)發(fā)一套cmdb系統(tǒng)和數(shù)據(jù)庫(kù)顯然大大增加了人力維護(hù)的成本,因此該資源申請(qǐng)方案的使用場(chǎng)景非常有限,只適合于擁有服務(wù)器資源極少的企業(yè)選用。

現(xiàn)有技術(shù)方案二相當(dāng)于針對(duì)現(xiàn)有技術(shù)方案一的改進(jìn),通過(guò)開(kāi)發(fā)創(chuàng)建一個(gè)cmdb系統(tǒng)來(lái)統(tǒng)一對(duì)各個(gè)業(yè)務(wù)應(yīng)用進(jìn)行資源申請(qǐng),而所有的資源服務(wù)器信息都會(huì)在一個(gè)數(shù)據(jù)庫(kù)中進(jìn)行查詢相關(guān)可用資源信息,并為使用人員在申請(qǐng)多臺(tái)資源時(shí)隨機(jī)分配資源數(shù)量,盡管這一技術(shù)方案大大彌補(bǔ)了技術(shù)方案一所涉及的問(wèn)題,但由于現(xiàn)在諸多企業(yè)的服務(wù)器資源以虛擬機(jī)的形式安放在多臺(tái)物理機(jī)中,這樣就會(huì)帶來(lái)另一種問(wèn)題,如果開(kāi)發(fā)人員在申請(qǐng)2臺(tái)及2臺(tái)以上的服務(wù)器資源時(shí),后臺(tái)無(wú)論是通過(guò)數(shù)據(jù)庫(kù)表中的字段′status′和′private_ip′還是字段′status′和′host_ip′進(jìn)行組合查詢并隨機(jī)分配資源時(shí),都會(huì)面臨分配的資源都落在同一臺(tái)宿主機(jī)中,而且閑置資源的范圍越小,被分配到同一臺(tái)宿主機(jī)的概率就越大,如圖5所示;盡管所有的服務(wù)器資源(物理機(jī)和虛擬機(jī))都已集群化來(lái)增強(qiáng)性能及其可靠性,但某個(gè)應(yīng)用的服務(wù)器資源都分配在同一個(gè)物理機(jī)中,集群技術(shù)不僅無(wú)效,也會(huì)存在單點(diǎn)故障;而且即使隨機(jī)分配發(fā)生該概率問(wèn)題比較小的話,那么也很有可能出現(xiàn)如圖6,當(dāng)某一應(yīng)用的訪問(wèn)量突然增大時(shí),由于各個(gè)被分配的宿主機(jī)中的虛擬資源不均衡,會(huì)導(dǎo)致某臺(tái)宿主機(jī)的負(fù)載極高,而另一些宿主機(jī)負(fù)載極低,大大浪費(fèi)了服務(wù)器資源,并且隨著申請(qǐng)的資源越多,風(fēng)險(xiǎn)就會(huì)越大,由此,一旦發(fā)生這種情況,勢(shì)必需要管理人員或開(kāi)發(fā)人員人為干預(yù)和修改,極為不便。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明通過(guò)一些算法及技術(shù)手段來(lái)增強(qiáng)隨機(jī)分配資源的可靠性,來(lái)避免申請(qǐng)多臺(tái)資源時(shí)所遇到的單點(diǎn)問(wèn)題,從而解決了現(xiàn)有技術(shù)方案存在的技術(shù)問(wèn)題。

本發(fā)明采用的技術(shù)方案是:

一種基于cmdb的自助資源分配調(diào)度的方法,其特征在于,步驟如下:

步驟s1,收集服務(wù)器資源信息并存入cmdb數(shù)據(jù)庫(kù)資源表中;

步驟s2,用戶在cmdb系統(tǒng)中填寫(xiě)申請(qǐng)資源信息并提交;

步驟s3,客戶端接收到用戶填寫(xiě)的申請(qǐng)資源信息后,向cmdb系統(tǒng)的服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器端接收到申請(qǐng)資源信息后,構(gòu)建一個(gè)雙向隊(duì)列,并同時(shí)把用戶的申請(qǐng)資源信息放入雙向隊(duì)列中;

步驟s4,從cmdb數(shù)據(jù)庫(kù)資源表中獲取所有服務(wù)器資源信息,并生成動(dòng)態(tài)資源池;

步驟s5,計(jì)算分配調(diào)度申請(qǐng)資源信息;

步驟s6,進(jìn)行申請(qǐng)資源信息驗(yàn)證并實(shí)時(shí)輸出。

進(jìn)一步地,所述服務(wù)器資源信息包括物理機(jī)和虛擬機(jī)。

進(jìn)一步地,所述步驟s4具體包括以下步驟:

通過(guò)cmdb數(shù)據(jù)庫(kù)資源表中的字段把閑置待用的所有服務(wù)器資源信息抽取出來(lái),得到一個(gè)僅包括id和物理機(jī)ip的無(wú)序數(shù)據(jù)集,所述id是cmdb數(shù)據(jù)庫(kù)中用作主鍵的唯一標(biāo)識(shí)。

進(jìn)一步地,對(duì)閑置待用的服務(wù)器資源信息進(jìn)行按順序分配,包括以下步驟:

將無(wú)序數(shù)據(jù)集ip轉(zhuǎn)換成十進(jìn)制,即為節(jié)點(diǎn);

在內(nèi)存中創(chuàng)建一個(gè)帶有索引的動(dòng)態(tài)數(shù)組表;

將無(wú)序數(shù)據(jù)集里每個(gè)服務(wù)器資源信息構(gòu)建成線性表;

在動(dòng)態(tài)數(shù)組表中通過(guò)指針來(lái)引用每個(gè)無(wú)序數(shù)據(jù)集的線性表形成一種關(guān)聯(lián)。

進(jìn)一步地,通過(guò)鍵來(lái)構(gòu)建一個(gè)基于圖的有序鍵值對(duì)鄰接表,所述鍵為動(dòng)態(tài)數(shù)據(jù)表中的節(jié)點(diǎn)。

進(jìn)一步地,所述圖g=(v,e),其中v為頂點(diǎn),e為圖中各個(gè)頂點(diǎn)的邊;

v={節(jié)點(diǎn)1,節(jié)點(diǎn)2,節(jié)點(diǎn)……節(jié)點(diǎn)n},n為節(jié)點(diǎn)數(shù)量;

把經(jīng)過(guò)排序并去重的節(jié)點(diǎn)作為所有頂點(diǎn)的集合,并作為鄰接表的鍵;設(shè)n為每個(gè)節(jié)點(diǎn)的重復(fù)元素的個(gè)數(shù),設(shè):

e={(節(jié)點(diǎn)1n1,),(節(jié)點(diǎn)2n2,),(節(jié)點(diǎn)3n3,)……節(jié)點(diǎn)nnn}。

進(jìn)一步地,把每個(gè)頂點(diǎn)作為鍵,把每個(gè)節(jié)點(diǎn)重復(fù)元素作為邊,并壓入一個(gè)棧;每個(gè)頂點(diǎn)對(duì)應(yīng)棧元素個(gè)數(shù),作為每個(gè)頂點(diǎn)的邊長(zhǎng)。

進(jìn)一步地,構(gòu)建一組動(dòng)態(tài)資源池,包括以下步驟:

窮舉每個(gè)頂點(diǎn)的同時(shí),獲取所述頂點(diǎn)的邊,每一次的遍歷頂點(diǎn)的同時(shí),依次把各個(gè)頂點(diǎn)所對(duì)應(yīng)的棧彈出棧頂元素,并通過(guò)內(nèi)存地址作為節(jié)點(diǎn)引入進(jìn)一個(gè)空的單向鏈表中,所述單向鏈表為動(dòng)態(tài)資源池。

進(jìn)一步地,所述步驟s5具體包括以下步驟:

用戶申請(qǐng)的資源數(shù)量作為索引范圍進(jìn)行分片訪問(wèn)動(dòng)態(tài)資源池,取出相應(yīng)的結(jié)果作為申請(qǐng)資源信息。

進(jìn)一步地,所述步驟s6中通過(guò)一個(gè)驗(yàn)證器來(lái)驗(yàn)證動(dòng)態(tài)資源池中所獲取的結(jié)果中所有的節(jié)點(diǎn)元素是否全都重復(fù),若是,標(biāo)記錯(cuò)誤結(jié)果;若否,則向cmdb數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)變更,并實(shí)時(shí)將結(jié)果輸出給瀏覽器。

本發(fā)明有益效果如下:

1、通過(guò)cmdb系統(tǒng)進(jìn)行資源分配后無(wú)需再次人為的干預(yù)。

2、解決了分配給業(yè)務(wù)應(yīng)用的資源存在的單點(diǎn)隱患。

3、申請(qǐng)后的資源均勻分布在各個(gè)物理節(jié)點(diǎn)中,而不至于當(dāng)該應(yīng)用達(dá)到高峰訪問(wèn)量時(shí)出現(xiàn)性能瓶頸。

附圖說(shuō)明

圖1是現(xiàn)有技術(shù)方案一原理圖。

圖2是現(xiàn)有技術(shù)方案一資源表e-r圖。

圖3是現(xiàn)有技術(shù)方案二原理圖。

圖4是現(xiàn)有技術(shù)方案二資源表e-r圖。

圖5是現(xiàn)有技術(shù)方案二資源分配調(diào)度實(shí)施方式一效果圖。

圖6是現(xiàn)有技術(shù)方案二資源分配調(diào)度實(shí)施方式二效果圖。

圖7是本發(fā)明資源分配調(diào)度效果圖。

圖8是本發(fā)明自主資源分配調(diào)度原理圖。

圖9是本發(fā)明雙向隊(duì)列構(gòu)建示意圖。

圖10是本發(fā)明數(shù)據(jù)庫(kù)資源表的數(shù)據(jù)結(jié)構(gòu)圖。

圖11是通過(guò)索引訪問(wèn)元素成員信息示意圖。

圖12是鄰接圖。

圖13是動(dòng)態(tài)資源池示意圖。

圖14是資源驗(yàn)證與實(shí)時(shí)輸出示意圖。

具體實(shí)施方式

本發(fā)明的目的在于為開(kāi)發(fā)人員在使用cmdb系統(tǒng)進(jìn)行應(yīng)用資源申請(qǐng)后,來(lái)避免某一應(yīng)用下的服務(wù)器會(huì)面臨的單點(diǎn)故障隱患,并可均勻分布在各個(gè)物理節(jié)點(diǎn)中,提高高可用性,從而降低事后人為干預(yù)的問(wèn)題。下文中,結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步闡述。

圖7是本發(fā)明最終效果圖,通過(guò)一些算法及技術(shù)手段來(lái)增強(qiáng)隨機(jī)分配資源的可靠性。

圖8是本發(fā)明基于cmdb的自助資源分配調(diào)度方法流程圖,包括以下步驟:

步驟s1,把所有的服務(wù)器資源信息(包括物理機(jī)和虛擬機(jī))收集并存入cmdb數(shù)據(jù)庫(kù)的資源表中。

步驟s2,用戶在cmdb系統(tǒng)中的“自助申請(qǐng)資源”頁(yè)面里,填寫(xiě)相應(yīng)的申請(qǐng)資源信息,如“應(yīng)用名”、“資源申請(qǐng)數(shù)量”、“責(zé)任人”等信息,并點(diǎn)擊“提交申請(qǐng)”按鈕。

步驟s3,客戶端接收到用戶填寫(xiě)的申請(qǐng)資源信息后,向cmdb系統(tǒng)的服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器端接收到數(shù)據(jù)后,此時(shí)會(huì)事先構(gòu)建一個(gè)雙向隊(duì)列,并同時(shí)把每個(gè)申請(qǐng)人的申請(qǐng)資源信息放入雙向隊(duì)列里,并準(zhǔn)備在雙向隊(duì)列中進(jìn)行cmdb數(shù)據(jù)庫(kù)變更讀寫(xiě)操作,從而解決競(jìng)爭(zhēng)問(wèn)題,如圖9所示。

步驟s4,從cmdb數(shù)據(jù)庫(kù)中獲取所有服務(wù)器資源信息,并生成動(dòng)態(tài)資源池,具體步驟如下:

圖10為cmdb數(shù)據(jù)庫(kù)資源表的數(shù)據(jù)結(jié)構(gòu)以及當(dāng)中涉及的假設(shè)數(shù)據(jù),其中字段“status”代表“待用”和“在用”的資源狀態(tài)、以及當(dāng)字段“host_ip”有值代表“物理機(jī)”、當(dāng)字段“host_ip”和“private_ip”都有值代表“虛擬機(jī)”、若多個(gè)虛擬機(jī)信息中擁有相同值的字段“host_ip”代表是這些虛擬機(jī)都隸屬于同一臺(tái)物理機(jī)中。如下表1所示。

表1本發(fā)明cmdb數(shù)據(jù)庫(kù)資源表

為了把“待用資源”均勻的分布在各個(gè)物理機(jī)中,以及盡可能的方便資源管理、服務(wù)器資源信息能夠被順序分配。因此首先通過(guò)cmdb數(shù)據(jù)庫(kù)資源表中的字段“status”、“private_ip”和“host_ip”把閑置待用的所有服務(wù)器資源信息抽取出來(lái),得到一個(gè)僅包含“id”(這里的id是指cmdb數(shù)據(jù)庫(kù)中用作主鍵的唯一標(biāo)識(shí)id)和“host_ip”(既物理機(jī)ip)的無(wú)序數(shù)據(jù)集,假設(shè)如下所示:

“(4,’10.1.1.1’),(3,’10.1.1.3’),(1,’10.1.1.1’),(2,‘10.1.1.2’)......”

之所以出現(xiàn)重復(fù)的物理機(jī)ip,是由于存在多個(gè)虛擬機(jī)都在同一個(gè)物理機(jī)中。為了先滿足閑置資源能被順序的分配,先需要把無(wú)序數(shù)據(jù)集的ip轉(zhuǎn)換成十進(jìn)制有利于排序做準(zhǔn)備,在此為了方便描述,記為“節(jié)點(diǎn)”,然后在內(nèi)存中創(chuàng)建一個(gè)帶有索引的動(dòng)態(tài)數(shù)組(特指在聲明時(shí)沒(méi)有確定數(shù)組大小的數(shù)組。使用動(dòng)態(tài)數(shù)組的優(yōu)點(diǎn)是可以根據(jù)用戶需要,有效利用存儲(chǔ)空間)表,再把無(wú)序數(shù)據(jù)集里每個(gè)服務(wù)器資源信息都構(gòu)建成線性表(一種具有線性結(jié)構(gòu)特點(diǎn)的計(jì)算機(jī)中常用數(shù)據(jù)結(jié)構(gòu),它是一個(gè)含有n≥0個(gè)節(jié)點(diǎn)的有限序列),接著在動(dòng)態(tài)數(shù)組表中通過(guò)指針來(lái)引用每個(gè)無(wú)序數(shù)據(jù)集的線性表形成一種關(guān)聯(lián),這樣就可以通過(guò)索引來(lái)方便訪問(wèn)每個(gè)元素的成員信息,如圖11所示。

之后,通過(guò)動(dòng)態(tài)數(shù)組中的節(jié)點(diǎn)(即十進(jìn)制數(shù))作為“鍵”來(lái)構(gòu)建一個(gè)基于圖(圖是一種抽象的數(shù)學(xué)結(jié)構(gòu),研究抽象對(duì)象之間的一類二元關(guān)系及其拓?fù)湫再|(zhì)。數(shù)學(xué)領(lǐng)域里有一個(gè)稱為“圖論”的研究分支,專門研究這種拓?fù)浣Y(jié)構(gòu)。它也看作計(jì)算機(jī)中一種復(fù)雜的數(shù)據(jù)結(jié)構(gòu))的有序鍵值對(duì)鄰接表,由于節(jié)點(diǎn)可能存在重復(fù)值,而“鍵”本身是不可重復(fù)的,那么處理該問(wèn)題的機(jī)制如下:

令圖g=(v,e),其中v為頂點(diǎn),e為圖中各個(gè)頂點(diǎn)的邊,設(shè):

v={節(jié)點(diǎn)1,節(jié)點(diǎn)2,節(jié)點(diǎn)3……節(jié)點(diǎn)n},n為節(jié)點(diǎn)數(shù)量,

把經(jīng)過(guò)排序并去重的節(jié)點(diǎn)作為所有頂點(diǎn)的集合,并作為鄰接表的鍵;設(shè)n為每個(gè)節(jié)點(diǎn)的重復(fù)元素的個(gè)數(shù),設(shè):

e={(節(jié)點(diǎn)1n1,),(節(jié)點(diǎn)2n2,),(節(jié)點(diǎn)3n3,)……節(jié)點(diǎn)nnn}

通過(guò)觀察,由于圖g中各個(gè)頂點(diǎn)都沒(méi)有路徑相連,每個(gè)頂點(diǎn)的邊都各自獨(dú)立,于是就形成了一種“非連通圖”,圖12為表示所述非連通圖的有序鍵值對(duì)鄰接表。

把每個(gè)頂點(diǎn)v作為“鍵”,而把各個(gè)節(jié)點(diǎn)重復(fù)元素作為邊為e,并壓入一個(gè)棧;每個(gè)頂點(diǎn)對(duì)應(yīng)的堆棧元素個(gè)數(shù),作為每個(gè)頂點(diǎn)的邊長(zhǎng),即:

top-bottom+1,其中bottom≥1,如果棧當(dāng)中top=bottom=0,說(shuō)明棧是空的。

接著需要在此基礎(chǔ)之上構(gòu)建一組動(dòng)態(tài)資源池,首先每個(gè)頂點(diǎn)的邊都是由一個(gè)棧所構(gòu)成,那么在窮舉每個(gè)頂點(diǎn)的同時(shí),獲取所述頂點(diǎn)的邊,每一次的遍歷頂點(diǎn)的同時(shí),依次把各個(gè)頂點(diǎn)所對(duì)應(yīng)的棧彈出其棧頂元素,并通過(guò)內(nèi)存地址作為節(jié)點(diǎn)引入進(jìn)一個(gè)空的單向鏈表中,而所述單向鏈表即作為動(dòng)態(tài)資源池,如圖13所示。

單向鏈表(單鏈表)是鏈表的一種,其特點(diǎn)是鏈表的鏈接方向是單向的,對(duì)鏈表的訪問(wèn)要通過(guò)順序讀取從頭部開(kāi)始;鏈表是使用指針進(jìn)行構(gòu)造的列表;又稱為節(jié)點(diǎn)列表,因?yàn)殒湵硎怯梢粋€(gè)個(gè)節(jié)點(diǎn)組裝起來(lái)的。

步驟s5,計(jì)算分配調(diào)度申請(qǐng)資源信息,具體步驟如下:

由于在步驟s2時(shí),系統(tǒng)已經(jīng)從用戶的輸入中獲取到需要申請(qǐng)的資源數(shù)量,而所述資源數(shù)量假設(shè)為x臺(tái),把x臺(tái)作為索引范圍進(jìn)行分片訪問(wèn)單項(xiàng)鏈表(動(dòng)態(tài)資源池),取出相應(yīng)的結(jié)果作為待申請(qǐng)的資源信息。

步驟s6,進(jìn)行申請(qǐng)資源信息驗(yàn)證并實(shí)時(shí)輸出。

盡管通過(guò)步驟s5已經(jīng)得到了結(jié)果,但還需考慮一種情況,假設(shè)最終的動(dòng)態(tài)資源池中所獲取的結(jié)果里待用節(jié)點(diǎn)元素都為重復(fù),那么說(shuō)明動(dòng)態(tài)資源池中的待用節(jié)點(diǎn)都在僅一臺(tái)物理機(jī)中,由于會(huì)存在單點(diǎn)隱患,因此還需要一個(gè)驗(yàn)證器來(lái)驗(yàn)證其結(jié)果中所有的節(jié)點(diǎn)元素是否全都重復(fù),若是,標(biāo)記錯(cuò)誤結(jié)果;若否,則向cmdb數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)變更,由步驟s3可知,整個(gè)cmdb數(shù)據(jù)庫(kù)資源分配的過(guò)程都在雙向隊(duì)列中進(jìn)行,因此,在這里離開(kāi)雙向隊(duì)列后,并實(shí)時(shí)把結(jié)果傳給瀏覽器。圖14為步驟s6的完整示例流程。

本發(fā)明雖然已以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出可能的變動(dòng)和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
防城港市| 扶风县| 平安县| 上杭县| 隆安县| 河池市| 通山县| 综艺| 平安县| 娄底市| 金湖县| 措美县| 体育| 石台县| 收藏| 峨边| 泰来县| 湖北省| 翁牛特旗| 华安县| 石首市| 福建省| 台东市| 诏安县| 临湘市| 伊金霍洛旗| 亳州市| 石门县| 甘谷县| 西丰县| 陇川县| 荣成市| 永清县| 麻江县| 靖远县| 山阳县| 资溪县| 女性| 庄浪县| 渝北区| 丰镇市|