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

x86服務器動態(tài)硬分區(qū)方法、裝置、存儲介質(zhì)和計算機設備與流程

文檔序號:11199070閱讀:470來源:國知局
x86服務器動態(tài)硬分區(qū)方法、裝置、存儲介質(zhì)和計算機設備與流程
本發(fā)明涉及信息
技術領域
,特別是涉及一種x86服務器動態(tài)硬分區(qū)方法、裝置、存儲介質(zhì)和計算機設備。
背景技術
:隨著x86服務器技術的逐步成熟,基于x86芯片技術的不斷進步以及服務器的配置越來越高,x86服務器的總體處理能力已經(jīng)接近甚至超過了低端unix服務器?,F(xiàn)代數(shù)據(jù)庫系統(tǒng),例如oracle數(shù)據(jù)庫提供了非常精細化的資源管理功能,可以提供對io、并行計算資源、內(nèi)存以及cpu的細粒度管理,但是這種資源管理技術建立在共享底層操作系統(tǒng)所管理的全局資源之上,資源容易動態(tài)擴充但是收縮速度較慢。而x86服務器并未提供如ibmunix服務器的邏輯分區(qū)(lpar),或者hpeunix服務器的分區(qū)(npar)功能,用以將高配置的unix服務器分割成高度物理隔離且運行單獨操作系統(tǒng)的“服務器”。基于當前的x86服務器硬件功能無法提供有效的物理隔離能力,以保障oracle數(shù)據(jù)庫服務質(zhì)量。技術實現(xiàn)要素:基于此,有必要針對上述問題,提供一種可有效保障oracle數(shù)據(jù)庫服務質(zhì)量的x86服務器動態(tài)硬分區(qū)方法、裝置、存儲介質(zhì)和計算機設備。一種x86服務器動態(tài)硬分區(qū)方法,包括以下步驟:通過控制族群中部署在x86服務器的oracle數(shù)據(jù)庫各節(jié)點的核心引擎,對對應節(jié)點進行分區(qū)初始化處理;通過所述核心引擎對對應節(jié)點初始化處理后的分區(qū)進行負載監(jiān)控得到監(jiān)控數(shù)據(jù);通過所述核心引擎根據(jù)所述監(jiān)控數(shù)據(jù)和存儲的管理策略對對應分區(qū)的狀態(tài)進行評估得到評估結果;通過所述核心引擎根據(jù)所述評估結果對對應分區(qū)進行調(diào)整。一種x86服務器動態(tài)硬分區(qū)裝置,包括:分區(qū)初始化模塊,用于通過控制族群中部署在x86服務器的oracle數(shù)據(jù)庫各節(jié)點的核心引擎,對對應節(jié)點進行分區(qū)初始化處理;數(shù)據(jù)監(jiān)控模塊,用于通過所述核心引擎對對應節(jié)點初始化處理后的分區(qū)進行負載監(jiān)控得到監(jiān)控數(shù)據(jù);狀態(tài)評估模塊,用于通過所述核心引擎根據(jù)所述監(jiān)控數(shù)據(jù)和存儲的管理策略對對應分區(qū)的狀態(tài)進行評估得到評估結果;分區(qū)調(diào)整模塊,用于通過所述核心引擎根據(jù)所述評估結果對對應分區(qū)進行調(diào)整。一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)上述方法的步驟。一種計算機設備,包括存儲器、x86服務器以及存儲在存儲器上并可在x86服務器上運行的計算機程序,所述x86服務器執(zhí)行所述程序時實現(xiàn)上述方法的步驟。上述x86服務器動態(tài)硬分區(qū)方法、裝置、存儲介質(zhì)和計算機設備,通過控制族群中部署在x86服務器的oracle數(shù)據(jù)庫各節(jié)點的核心引擎,對對應節(jié)點進行分區(qū)初始化處理。通過核心引擎對對應節(jié)點初始化處理后的分區(qū)進行負載監(jiān)控得到監(jiān)控數(shù)據(jù);通過核心引擎根據(jù)監(jiān)控數(shù)據(jù)和存儲的管理策略對對應分區(qū)的狀態(tài)進行評估得到評估結果;通過核心引擎根據(jù)評估結果對對應分區(qū)進行調(diào)整。將控制族群與oracle數(shù)據(jù)庫相結合,利用部署在oracle數(shù)據(jù)庫各節(jié)點的核心引擎對各分區(qū)進行數(shù)據(jù)監(jiān)控和評估,根據(jù)評估結果對分區(qū)進行動態(tài)調(diào)整,實現(xiàn)x86服務器的動態(tài)硬分區(qū)功能,提供有效的物理隔離能力,可有效保障oracle數(shù)據(jù)庫服務質(zhì)量。附圖說明圖1為一實施例中x86服務器動態(tài)硬分區(qū)方法的流程圖;圖2為另一實施例中x86服務器動態(tài)硬分區(qū)方法的流程圖;圖3為一實施例中動態(tài)硬分區(qū)技術實現(xiàn)架構圖;圖4為一實施例中核心引擎的架構圖;圖5為一實施例中核心引擎中狀態(tài)機狀態(tài)評估示意圖;圖6為一實施例中分區(qū)狀態(tài)擴展遷移示意圖;圖7為一實施例中低負載分區(qū)示意圖;圖8為一實施例中中度負載波動分區(qū)示意圖;圖9為一實施例中分區(qū)狀態(tài)收縮遷移示意圖;圖10為一實施例中分區(qū)以高負載狀態(tài)運行的示意圖;圖11為一實施例中分區(qū)以低負載狀態(tài)運行的示意圖;圖12為一實施例中執(zhí)行器指令流程示意圖;圖13為一實施例中分區(qū)負載測試示意圖;圖14為一實施例中x86服務器動態(tài)硬分區(qū)裝置的結構圖;圖15為另一實施例中x86服務器動態(tài)硬分區(qū)裝置的結構圖。具體實施方式在一個實施例中,一種x86服務器動態(tài)硬分區(qū)方法,適用于配置了多顆多核心intelxeon處理器并且配置了較多內(nèi)存的x86服務器。具體可以以x86作為硬件平臺,采用linux操作系統(tǒng)和oracledatabase12c數(shù)據(jù)庫,實現(xiàn)x86服務器動態(tài)硬分區(qū)技術。如圖1所示,該方法包括以下步驟:步驟s110:通過控制族群中部署在x86服務器的oracle數(shù)據(jù)庫各節(jié)點的核心引擎,對對應節(jié)點進行分區(qū)初始化處理??刂谱迦?controlgroups,cgroup)是linux內(nèi)核提供的一種可以限制、記錄、隔離進程組(processgroups)所使用的物力資源(如cpumemoryi/o等)的機制。具體地,cgroup是將任意進程進行分組化管理的linux內(nèi)核功能,其本身是提供將進程進行分組化管理的功能和接口的基礎結構,i/o或內(nèi)存的分配控制等具體的資源管理功能是通過這個功能來實現(xiàn)的。這些具體的資源管理功能稱為cgroup子系統(tǒng)或控制器。cgroup子系統(tǒng)有控制內(nèi)存的memory控制器、控制進程調(diào)度的cpu控制器等。運行中的內(nèi)核可以使用的cgroup子系統(tǒng)由/proc/cgroup來確認。cgroup提供了一個cgroup虛擬文件系統(tǒng)作為進行分組管理和各子系統(tǒng)設置的用戶接口。要使用cgroup必須掛載cgroup文件系統(tǒng),這時通過掛載選項指定使用哪個子系統(tǒng)。cgroup支持的文件種類如表1所示。表1在cgroup中,任務就是系統(tǒng)的一個進程。控制族群就是一組按照某種標準劃分的進程。cgroup中的資源控制都是以控制族群為單位實現(xiàn)。一個進程可以加入到某個控制族群,也從一個進程組遷移到另一個控制族群。一個進程組的進程可以使用cgroup以控制族群為單位分配的資源,同時受到cgroup以控制族群為單位設定的限制??刂谱迦嚎梢越M織成層級(hierarchy)的形式,即一棵控制族群樹??刂谱迦簶渖系淖庸?jié)點控制族群是父節(jié)點控制族群的孩子,繼承父控制族群的特定的屬性。一個子系統(tǒng)就是一個資源控制器,比如cpu子系統(tǒng)就是控制cpu時間分配的一個控制器。子系統(tǒng)必須附加到一個層級上才能起作用,一個子系統(tǒng)附加到某個層級以后,這個層級上的所有控制族群都受到這個子系統(tǒng)的控制。每次在系統(tǒng)中創(chuàng)建新層級時,該系統(tǒng)中的所有任務都是那個層級的默認cgroup(可稱之為rootcgroup,此cgroup在創(chuàng)建層級時自動創(chuàng)建,后面在該層級中創(chuàng)建的cgroup都是此cgroup的后代)的初始成員。一個子系統(tǒng)最多只能附加到一個層級,一個層級可以附加多個子系統(tǒng)。一個任務可以是多個cgroup的成員,但是這些cgroup必須在不同的層級。系統(tǒng)中的進程(任務)創(chuàng)建子進程(任務)時,該子任務自動成為其父進程所在cgroup的成員。然后可根據(jù)需要將該子任務移動到不同的cgroup中,但開始時它總是繼承其父任務的cgroup。本實施例中,oracle數(shù)據(jù)庫采用oracle數(shù)據(jù)庫12c,引入了processor_group(oracle,oracledatabase12crelease1(12.1.0.1)newfeatures,2016)特性,利用這一特性,oracle數(shù)據(jù)庫12c可以與linux或者solaris緊密結合,從而利用操作系統(tǒng)的處理器集合及其相關的資源,實現(xiàn)將數(shù)據(jù)庫實例進程及內(nèi)存綁定到操作系統(tǒng)層面特定的處理器及其內(nèi)存資源上,而這一特性主要受限于當前x86服務器設計所采用的numa(non-uniformmemoryaccess,非統(tǒng)一內(nèi)存訪問架構)架構。numa是一種為多處理器的電腦設計的內(nèi)存,內(nèi)存訪問時間取決于內(nèi)存相對于處理器的位置。在numa下,處理器訪問它自己的本地內(nèi)存的速度比非本地內(nèi)存(內(nèi)存位于另一個處理器,或者是處理器之間共享的內(nèi)存)快一些。numa的特點是:被共享的內(nèi)存物理上是分布式的,所有這些內(nèi)存的集合就是全局地址空間。所以處理器訪問這些內(nèi)存的時間是不一樣的,顯然訪問本地內(nèi)存的速度要比訪問全局共享內(nèi)存或遠程訪問外地內(nèi)存要快些。另外,numa中內(nèi)存可能是分層的:本地內(nèi)存,群內(nèi)共享內(nèi)存,全局共享內(nèi)存?;诋斍暗膇ntelxeon處理器技術,目前的4路服務器可能配置了64核心,128線程;如果是兩路服務器可能配置了32核心,64線程。對于很多中小型企業(yè),如果在這樣的平臺上運行單獨的數(shù)據(jù)庫,通常會利用率不足,進行業(yè)務的整合就勢在必然。目前的8路服務器的核心數(shù)可能為192核,384線程。綜合常見的4路,8路服務器配置來看,目前的硬件處理能力與很多unix服務器在性能上持平,甚至超越了unix服務器。但是性能上的超越不能為企業(yè)帶來穩(wěn)定的運行環(huán)境,而傳統(tǒng)unix服務器上使用廣泛的分區(qū)技術具備很強的實用性,因為這一技術可以在充分利用硬件資源的基礎上,為企業(yè)應用提供必要的隔離性,從而保證企業(yè)應用的穩(wěn)定性。通過在x86服務器上運行l(wèi)inux操作系統(tǒng)及oracle數(shù)據(jù)庫12c進行業(yè)務整合時,實現(xiàn)數(shù)據(jù)庫實例的動態(tài)硬分區(qū)以保證數(shù)據(jù)庫服務質(zhì)量。動態(tài)硬分區(qū)指部署在同一臺x86pc服務器上的數(shù)據(jù)庫實例獨占一個數(shù)據(jù)cpu,或者一顆cpu內(nèi)的一個或者數(shù)個計算核心,當消耗盡其獨占的計算資源時,該數(shù)據(jù)庫實例不會占用其他數(shù)據(jù)庫實例所分配的計算資源,從而保證該x86服務器上的數(shù)據(jù)庫服務質(zhì)量。具體地,將控制族群中的核心引擎布置在oracle數(shù)據(jù)庫的各個節(jié)點,核心引擎的數(shù)量與節(jié)點數(shù)量對應。核心引擎屬于微內(nèi)核產(chǎn)品,即所有的組件均內(nèi)建在核心引擎內(nèi),組件之間緊耦合,最終確保本核心引擎的穩(wěn)定、可靠。核心引擎負責本服務器計算機資源控制器的初始化,確保各計算資源在運行期間的可用性。步驟s130:通過核心引擎對對應節(jié)點初始化處理后的分區(qū)進行負載監(jiān)控得到監(jiān)控數(shù)據(jù)。利用核心引擎對當前節(jié)點內(nèi)的所有分區(qū)的負載進行監(jiān)控,獲取的監(jiān)控數(shù)據(jù)用作后續(xù)進行分區(qū)調(diào)整的依據(jù)。步驟s140:通過核心引擎根據(jù)監(jiān)控數(shù)據(jù)和存儲的管理策略對對應分區(qū)的狀態(tài)進行評估得到評估結果。具體可預先接收管理策略進行保存,還可以實時接收新的管理策略對已存儲的策略進行更新。管理策略的種類并不唯一,從適用范圍來分,管理策略可包括統(tǒng)一策略和單獨策略。其中,統(tǒng)一策略指該策略在集群內(nèi)的所有節(jié)點都通用,策略的每次變更,必須復制至整個集群,確保每個分區(qū)(或者數(shù)據(jù)庫實例)具備一致的計算資源。單獨策略指該策略僅在某個單獨的服務器上有效,該策略無須復制至整個集群。從用途來分,管理策略可包括擴展策略和收縮策略。其中,擴展策略指在當前分區(qū)的計算資源如果達到預設的上限門限值時,通常為了業(yè)務的穩(wěn)定運行通常需要對當前分區(qū)的計算資源進行擴展,計算資源的擴展通常會根據(jù)上限門限值進行遷移。收縮策略指在當前分區(qū)的計算資源如果處于閑置狀態(tài),通常為了當前節(jié)點的其他分區(qū)儲備計算資源時需要對當前分區(qū)的計算資源進行收縮,計算資源的收縮通常會根據(jù)下限門限值進行收縮。收縮策略不是擴展策略的簡單逆向操作,收縮策略需要通過停止數(shù)據(jù)庫實例進行資源的釋放,然后才能釋放資源。擴展或者收縮由核心引擎結合監(jiān)控數(shù)據(jù)進行確定得到評估結果,然后根據(jù)評估結果進行最終的擴展或者收縮。在一個實施例中,管理策略包括分區(qū)狀態(tài)與門限值的對應關系,步驟s140包括步驟142和步驟144。步驟142:根據(jù)監(jiān)控數(shù)據(jù)和分區(qū)狀態(tài)與門限值的對應關系,得到對應分區(qū)的目標狀態(tài)。分區(qū)計算資源的擴展收縮依賴于策略管理器制定的門限值,門限值的設定通常依賴于當前節(jié)點的硬件配置以及運維監(jiān)控規(guī)范。目標狀態(tài)即指分區(qū)需要遷移的狀態(tài)。舉例說明,分區(qū)狀態(tài)包括a、b和c三種,對應的門限值分別為a、b和c。若獲取的監(jiān)控數(shù)據(jù)與門限值c匹配,則該分區(qū)的目標狀態(tài)為c。步驟144:分別根據(jù)各分區(qū)的當前狀態(tài)和目標狀態(tài)得到對應分區(qū)的評估結果。同樣以分區(qū)的目標狀態(tài)為c為例,若分區(qū)的當前狀態(tài)為a,則得到的評估結果為a->c,需要將該分區(qū)從a狀態(tài)遷移至c狀態(tài)。步驟s150:通過核心引擎根據(jù)評估結果對對應分區(qū)進行動態(tài)調(diào)整。在得到各分區(qū)的評估結果之后,核心引擎根據(jù)評估結果直接對對應分區(qū)進行動態(tài)調(diào)整。具體地,與管理策略可包括擴展策略和收縮策略對應,步驟s150包括:根據(jù)評估結果對對應分區(qū)的計算資源進行擴展或收縮調(diào)整。在一個實施例中,如圖2所示,步驟s110之后,步驟s130之前,該方法還包括步驟s120。步驟s120:通過核心引擎對初始化處理后的分區(qū)進行隔離性測試。分區(qū)在配置完畢后,通常需要進行各個分區(qū)的隔離性測試,可以在每個分區(qū)內(nèi)單獨運行以下腳本,以驗證分區(qū)的高度隔離性,提高了x86服務器動態(tài)硬分區(qū)可靠性。利用核心引擎對初始化處理后的分區(qū)進行隔離性測試,并在隔離性測試通過后進行的步驟s130。在一個實施例中,步驟s140之后,還包括通過控制族群中的消息總線進行各核心引擎之間的消息傳輸?shù)牟襟E??刂谱迦哼€包括連接各核心引擎的消息總線,消息總線負責各個節(jié)點間的消息傳遞,消息傳遞具體可包括對統(tǒng)一策略的傳遞,確保策略在集群內(nèi)的一致性。消息傳遞還可包括對分區(qū)遷移指令的傳遞,確保集群內(nèi)的其他節(jié)點的分區(qū)狀態(tài)的一致性??梢岳斫?,如果系統(tǒng)僅有一個節(jié)點,配置單獨的核心引擎即可,不需要部署消息總線;僅在部署集群環(huán)境時才需要部署消息總線進行核心引擎之間的消息傳遞。為了便于更好地理解上述x86服務器動態(tài)硬分區(qū)方法,下面結合具體的實施例進行詳細的解釋說明。動態(tài)硬分區(qū)的實現(xiàn)依賴于linux操作系統(tǒng)的cgroup和oracle數(shù)據(jù)庫12c的一個重要特性processor_group_name,當把二者結合起來即可在x86服務器上實現(xiàn)類似unix服務器上才具備的動態(tài)硬分區(qū)功能,動態(tài)硬分區(qū)技術實現(xiàn)架構圖如3所示。在每個節(jié)點上部署動態(tài)硬分區(qū)的核心引擎,核心引擎之間通過節(jié)點外部的消息總線進行消息的傳遞。x86服務器動態(tài)硬分區(qū)由核心引擎驅(qū)動和管理,其架構圖如圖4所示。核心引擎包括監(jiān)視器、狀態(tài)機、策略管理器和執(zhí)行器。監(jiān)視器負責當前節(jié)點內(nèi)的所有分區(qū)的負載監(jiān)控,狀態(tài)機結合配置的策略進行每個分區(qū)狀態(tài)的評估,并最終由執(zhí)行器負責執(zhí)行狀態(tài)機對每個分區(qū)容量最終的評估結果;策略管理器負責策略的配置以及策略在整個集群內(nèi)的復制,確保策略在集群內(nèi)的一致性。每個節(jié)點的核心引擎都處于平等的地位,每個引擎發(fā)起的操作都可以廣播或者復制到其他節(jié)點的引擎。cgroup在使用前需要依賴cpuset子系統(tǒng)正常運行,核心引擎負責該子系統(tǒng)的初始化,具體腳本如下:#mkdir/etc/cpuset#touch/etc/cpuset.conf#mkdir/dev/cpuset#mount–tcpusetcpuset/dev/cpuset#load_partition#servicecgconfigstart#servicecgredstart其中l(wèi)oad_partition負責從/etc/cpuset.conf內(nèi)讀取分區(qū)的正確配置,并將其進行合適的初始化,否則后續(xù)的數(shù)據(jù)庫實例無法獨占cpu資源。核心引擎負責計算資源集合內(nèi)的內(nèi)存處于獨占狀態(tài),并且保證內(nèi)存處于不可遷移狀態(tài),已確保數(shù)據(jù)庫實例運行狀態(tài)的穩(wěn)定性和排他性,具體腳本如下:#echo1>/dev/cpuset/partition/mem_exclusive#echo1>/dev/cpuset/partition/memory_migrate當分區(qū)初始化完畢后,數(shù)據(jù)庫實例即可以一種獨占狀態(tài)獨占計算資源(cpu和內(nèi)存),即使該實例消耗盡該分區(qū)內(nèi)的資源它也無法申請其他分區(qū)的資源,具體腳本如下:sql>altersystemsetprocessor_group_name=oraclescope=spfile;sql>shutdownimmediatesql>startup核心引擎未引入其它第三方商業(yè)軟件,因此不增加額外的投資成本。監(jiān)視器負責對每個分區(qū)的負載進行監(jiān)控并進行存儲。負載監(jiān)控采用系統(tǒng)默認自帶的的系統(tǒng)監(jiān)控工具sar;同一個節(jié)點上通常會存在多個分區(qū),監(jiān)控負載時首先獲得監(jiān)控分區(qū)的cpuset值,然后進行監(jiān)控,最后將采集負載數(shù)據(jù)存儲到本地的工作負載庫內(nèi)。如果系統(tǒng)未配置系統(tǒng)活動監(jiān)視采集器,則需要自定義監(jiān)視采集器。監(jiān)視器進行監(jiān)控是第一步需要獲取系統(tǒng)內(nèi)定義的分區(qū)信息,可通過以下腳本進行獲得:#!/bin/bashcd/cgroup/cpusetfind./-typed|egrep-o"[[:alnum:]]"*然后獲取分區(qū)內(nèi)的cpu信息:#!/bin/bashcgget-gcpuset:$1|grepcpuset.cpus|cut-d':'–f2#注意獲取的結果是一個cpucore的起始值,需要進一步處理根據(jù)獲取的cpuset信息進行進一步的監(jiān)控。例如如下列命令所示:#sar–p0,15如果系統(tǒng)配置系統(tǒng)活動監(jiān)視采集器,監(jiān)視器可以從sar的監(jiān)控結果中定期的進行分析獲取相關的結果亦可。策略管理器負責監(jiān)控策略的管理,以及分區(qū)計算機資源的擴展收縮策略的管理及復制,鑒于在一個集群內(nèi)可能存在不同的業(yè)務數(shù)據(jù)庫的整合,即同一集群內(nèi)各個節(jié)點的負載可能并不一致,因此策略管理器要對不同的策略進行區(qū)別對待。分區(qū)計算資源的擴展收縮依賴于策略管理器制定的門限值,門限值的設定通常依賴于當前節(jié)點的硬件配置以及運維監(jiān)控規(guī)范。如表2所示,該樣例設定的分區(qū)狀態(tài)遷移和通常的運維監(jiān)控指標關系表,門限值按照25%的幅度進行遞增或者遞減。達到預設的門限值后,通常需要按照一定的數(shù)量對計算核心進行擴展或者收縮。狀態(tài)門限值1門限值2門限值3s1≤25%s2≤50%s3≤75%表2如表3所示,該樣例設定的分區(qū)擴展按照基線累進策略進行擴展,主要是考慮到分區(qū)進行跨越式遷移時要滿足業(yè)務負載的實際需要。狀態(tài)擴展1擴展2擴展3s1+2s2+4s3+6表3如表4所示為一樣例設定的分區(qū)收縮關系表。狀態(tài)收縮1收縮2收縮3s1-2s2-4s3-6表4分區(qū)收縮是一個復雜的過程,由于計算資源獨占,不能通過簡單的降低計算資源數(shù)量而讓分區(qū)進行動態(tài)的穩(wěn)步收縮,穩(wěn)定可靠的方法是通過關閉分區(qū)(數(shù)據(jù)庫實例)釋放資源,然后收縮分區(qū)計算資源,然后重新啟動該分區(qū)。這也是目前虛擬化容器計算資源收縮主要的收縮方式。通過有限狀態(tài)機有效穩(wěn)定控制分區(qū)的計算資源擴展或者收縮,確保分區(qū)運行穩(wěn)定可控。狀態(tài)機負責根據(jù)策略管理器制定的策略以及監(jiān)控數(shù)據(jù)對分區(qū)進行調(diào)整,具體的調(diào)整指令由執(zhí)行器負責執(zhí)行,并傳遞到整個集群內(nèi)的每個節(jié)點上。圖5所示為狀態(tài)機狀態(tài)評估示意圖。下面分別對分區(qū)狀態(tài)擴展遷移和分區(qū)狀態(tài)收縮遷移進行解釋說明。圖6為分區(qū)狀態(tài)擴展遷移示意圖。圖7所示為一低負載分區(qū)的監(jiān)測數(shù)據(jù),該分區(qū)一直運行平穩(wěn),基于策略管理器設定的分區(qū)擴展門限值,該分區(qū)無須進行計算資源的擴展。該分區(qū)的狀態(tài)遷移路徑為:s1->s1。圖8所示為一中度負載波動分區(qū)的監(jiān)測數(shù)據(jù),該分區(qū)負載波動較為明顯,基于策略管理器設定的分區(qū)擴展門限值,應該為該分區(qū)進行計算資源的擴展,增加2個核心的計算資源。該分區(qū)的遷移狀態(tài)路勁為:s1->s2。狀態(tài)機會根據(jù)策略管理器制定的策略,評估當前分區(qū)是否有可用的資源進行擴展,如果有可用的資源進行擴展,則狀態(tài)機會向執(zhí)行器生成計算資源擴展的具體指令:echomin-current+2>/dev/cpuset/partition/cpus如果無可用的資源進行擴展,則狀態(tài)機會向執(zhí)行器發(fā)出告警信息。當前分區(qū)計算資源的擴展可以快速完成,分區(qū)擴展指令也可以以極快的速度傳遞到整個集群并且快速對各個分區(qū)進行計算資源的擴展。圖9為分區(qū)狀態(tài)收縮遷移示意圖。如果分區(qū)的資源使用率不足,發(fā)生較大的變化,通常需要進行分區(qū)資源的回收。如圖10所示為一分區(qū)以高負載狀態(tài)運行的監(jiān)測數(shù)據(jù)圖,該分區(qū)以較高的負載運行,若負載下降到一直如下圖11所示,則該分區(qū)需要進行分區(qū)資源的收縮。資源收縮時一個耗時復雜的過程,沒辦法直接將資源從分區(qū)內(nèi)回收,通常需要將數(shù)據(jù)庫實例停機,然后回收資源;然后再在其他節(jié)點執(zhí)行類似操作。$srvctlstopinstance–dborcl–instanceorcl1#echomin-current-6>/dev/cpuset/partition/cpus執(zhí)行器是核心引擎內(nèi)最終的指令執(zhí)行體,它負責執(zhí)行監(jiān)視器下發(fā)的監(jiān)控指令,執(zhí)行策略管理器下發(fā)的策略變更同步指令,執(zhí)行狀態(tài)機下發(fā)的分區(qū)遷移指令,執(zhí)行其他執(zhí)行器投遞到消息總線的指令,還負責執(zhí)行器也負載將統(tǒng)一指令投遞到消息總線,確保集群內(nèi)的其他節(jié)點的分區(qū)狀態(tài)的一致性。如圖12所示為執(zhí)行器指令流程圖。消息總線負載將各個節(jié)點的消息傳遞。分區(qū)在配置完畢后,通常需要進行各個分區(qū)的隔離性測試,可以在每個分區(qū)內(nèi)單獨運行以下腳本,以驗證分區(qū)的高度隔離性。具體腳本如下:在運行該腳本時要確保其他分區(qū)處零負載運行狀態(tài)。如果在滿足條件的情況下測試,其他分區(qū)有較高負載運行狀態(tài),則說明cgroup或者cpuset等低層資源配置存在錯誤。正常情況下,分區(qū)負載圖如圖13所示。上述x86服務器動態(tài)硬分區(qū)方法,將控制族群與oracle數(shù)據(jù)庫相結合,利用部署在oracle數(shù)據(jù)庫各節(jié)點的核心引擎對各分區(qū)進行數(shù)據(jù)監(jiān)控和評估,根據(jù)評估結果對分區(qū)進行動態(tài)調(diào)整,實現(xiàn)x86服務器的動態(tài)硬分區(qū)功能,提供有效的物理隔離能力,可有效保障oracle數(shù)據(jù)庫服務質(zhì)量。在一個實施例中,一種x86服務器動態(tài)硬分區(qū)裝置,適用于配置了多顆多核心intelxeon處理器并且配置了較多內(nèi)存的x86服務器。如圖14所示,該裝置包括分區(qū)初始化模塊110、數(shù)據(jù)監(jiān)控模塊130、狀態(tài)評估模塊140和分區(qū)調(diào)整模塊150。分區(qū)初始化模塊110用于通過控制族群中部署在x86服務器的oracle數(shù)據(jù)庫各節(jié)點的核心引擎,對對應節(jié)點進行分區(qū)初始化處理。具體地,將控制族群中的核心引擎布置在oracle數(shù)據(jù)庫的各個節(jié)點,核心引擎的數(shù)量與節(jié)點數(shù)量對應。核心引擎屬于微內(nèi)核產(chǎn)品,即所有的組件均內(nèi)建在核心引擎內(nèi),組件之間緊耦合,最終確保本核心引擎的穩(wěn)定、可靠。核心引擎負責本服務器計算機資源控制器的初始化,確保各計算資源在運行期間的可用性。數(shù)據(jù)監(jiān)控模塊130用于通過核心引擎對對應節(jié)點初始化處理后的分區(qū)進行負載監(jiān)控得到監(jiān)控數(shù)據(jù)。利用核心引擎對當前節(jié)點內(nèi)的所有分區(qū)的負載進行監(jiān)控,獲取的監(jiān)控數(shù)據(jù)用作后續(xù)進行分區(qū)調(diào)整的依據(jù)。狀態(tài)評估模塊140用于通過核心引擎根據(jù)監(jiān)控數(shù)據(jù)和存儲的管理策略對對應分區(qū)的狀態(tài)進行評估得到評估結果。具體可預先接收管理策略進行保存,還可以實時接收新的管理策略對已存儲的策略進行更新。在一個實施例中,管理策略包括分區(qū)狀態(tài)與門限值的對應關系,狀態(tài)評估模塊140包括目標狀態(tài)獲取單元和評估結果獲取單元。目標狀態(tài)獲取單元用于根據(jù)監(jiān)控數(shù)據(jù)和分區(qū)狀態(tài)與門限值的對應關系,得到對應分區(qū)的目標狀態(tài)。分區(qū)計算資源的擴展收縮依賴于策略管理器制定的門限值,門限值的設定通常依賴于當前節(jié)點的硬件配置以及運維監(jiān)控規(guī)范。目標狀態(tài)即指分區(qū)需要遷移的狀態(tài)。舉例說明,分區(qū)狀態(tài)包括a、b和c三種,對應的門限值分別為a、b和c。若獲取的監(jiān)控數(shù)據(jù)與門限值c匹配,則該分區(qū)的目標狀態(tài)為c。評估結果獲取單元用于分別根據(jù)各分區(qū)的當前狀態(tài)和目標狀態(tài)得到對應分區(qū)的評估結果。同樣以分區(qū)的目標狀態(tài)為c為例,若分區(qū)的當前狀態(tài)為a,則得到的評估結果為a->c,需要將該分區(qū)從a狀態(tài)遷移至c狀態(tài)。分區(qū)調(diào)整模塊150用于通過核心引擎根據(jù)評估結果對對應分區(qū)進行動態(tài)調(diào)整。在得到各分區(qū)的評估結果之后,核心引擎根據(jù)評估結果直接對對應分區(qū)進行動態(tài)調(diào)整。具體地,與管理策略可包括擴展策略和收縮策略對應,分區(qū)調(diào)整模塊150具體根據(jù)評估結果對對應分區(qū)的計算資源進行擴展或收縮調(diào)整。在一個實施例中,如圖15所示,x86服務器動態(tài)硬分區(qū)裝置還包括隔離性測試模塊120。隔離性測試模塊120用于在分區(qū)初始化模塊110對對應節(jié)點進行分區(qū)初始化處理之后,數(shù)據(jù)監(jiān)控模塊130通過核心引擎對對應節(jié)點初始化處理后的分區(qū)進行負載監(jiān)控得到監(jiān)控數(shù)據(jù)之前,通過核心引擎對初始化處理后的分區(qū)進行隔離性測試,并在隔離性測試通過后控制數(shù)據(jù)監(jiān)控模塊130通過核心引擎對對應節(jié)點初始化處理后的分區(qū)進行負載監(jiān)控得到監(jiān)控數(shù)據(jù)。在一個實施例中,x86服務器動態(tài)硬分區(qū)裝置還包括消息傳輸模塊。消息傳輸模塊用于在狀態(tài)評估模塊140通過核心引擎根據(jù)監(jiān)控數(shù)據(jù)和存儲的管理策略對對應分區(qū)的狀態(tài)進行評估得到評估結果之后,通過控制族群中的消息總線進行各核心引擎之間的消息傳輸??刂谱迦哼€包括連接各核心引擎的消息總線,消息總線負責各個節(jié)點間的消息傳遞,消息傳遞具體可包括對統(tǒng)一策略的傳遞,確保策略在集群內(nèi)的一致性。消息傳遞還可包括對分區(qū)遷移指令的傳遞,確保集群內(nèi)的其他節(jié)點的分區(qū)狀態(tài)的一致性。可以理解,如果系統(tǒng)僅有一個節(jié)點,配置單獨的核心引擎即可,不需要部署消息總線;僅在部署集群環(huán)境時才需要部署消息總線進行核心引擎之間的消息傳遞。上述x86服務器動態(tài)硬分區(qū)裝置,將控制族群與oracle數(shù)據(jù)庫相結合,利用部署在oracle數(shù)據(jù)庫各節(jié)點的核心引擎對各分區(qū)進行數(shù)據(jù)監(jiān)控和評估,根據(jù)評估結果對分區(qū)進行動態(tài)調(diào)整,實現(xiàn)x86服務器的動態(tài)硬分區(qū)功能,提供有效的物理隔離能力,可有效保障oracle數(shù)據(jù)庫服務質(zhì)量。在一個實施例中,一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)上述方法的步驟。存儲介質(zhì)具體可以是軟盤、光盤、dvd、硬盤、閃存、u盤等,具體類型并不唯一。上述計算機可讀存儲介質(zhì),將控制族群與oracle數(shù)據(jù)庫相結合,利用部署在oracle數(shù)據(jù)庫各節(jié)點的核心引擎對各分區(qū)進行數(shù)據(jù)監(jiān)控和評估,根據(jù)評估結果對分區(qū)進行動態(tài)調(diào)整,實現(xiàn)x86服務器的動態(tài)硬分區(qū)功能,提供有效的物理隔離能力,可有效保障oracle數(shù)據(jù)庫服務質(zhì)量。在一個實施例中,一種計算機設備,包括存儲器、x86服務器以及存儲在存儲器上并可在x86服務器上運行的計算機程序,x86服務器執(zhí)行程序時實現(xiàn)上述方法的步驟。上述計算機設備,將控制族群與oracle數(shù)據(jù)庫相結合,利用部署在oracle數(shù)據(jù)庫各節(jié)點的核心引擎對各分區(qū)進行數(shù)據(jù)監(jiān)控和評估,根據(jù)評估結果對分區(qū)進行動態(tài)調(diào)整,實現(xiàn)x86服務器的動態(tài)硬分區(qū)功能,提供有效的物理隔離能力,可有效保障oracle數(shù)據(jù)庫服務質(zhì)量。以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
论坛| 宿松县| 峨边| 双鸭山市| 双柏县| 南漳县| 土默特右旗| 浦县| 昭觉县| 凤庆县| 合山市| 杭锦后旗| 梅州市| 亳州市| 眉山市| 凤山市| 渝中区| 乌审旗| 高雄市| 沁阳市| 阿巴嘎旗| 青神县| 恩平市| 湘乡市| 永丰县| 磐安县| 定日县| 桃园县| 萨迦县| 福鼎市| 留坝县| 都江堰市| 乌鲁木齐县| 焦作市| 麟游县| 永胜县| 通化县| 曲周县| 渑池县| 内乡县| 大渡口区|