本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種硬盤功耗、硬盤功耗控制方法及裝置。
背景技術(shù):
在冷數(shù)據(jù)存儲(chǔ)應(yīng)用場(chǎng)景下,硬盤存儲(chǔ)設(shè)備的訪問(wèn)模式主要是寫,可能或者再也不會(huì)去讀,硬盤被寫滿之后,如果保持長(zhǎng)時(shí)間的空轉(zhuǎn),會(huì)耗費(fèi)相當(dāng)可觀的電能。
現(xiàn)有技術(shù)的硬盤功耗控制方法,一般通過(guò)在磁盤間進(jìn)行讀寫請(qǐng)求的調(diào)度,將節(jié)點(diǎn)硬盤組中的部分硬盤轉(zhuǎn)換為低能耗狀態(tài),但是,無(wú)法將硬盤在高功耗狀態(tài)與低功耗狀態(tài)之間直接進(jìn)行轉(zhuǎn)換,因此,現(xiàn)有技術(shù)中的硬盤功耗控制方法存在功耗狀態(tài)轉(zhuǎn)換耗時(shí)較長(zhǎng),且浪費(fèi)資源的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例解決的是如何將硬盤在高功耗狀態(tài)和低功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,以節(jié)省時(shí)間和能耗。
為解決上述問(wèn)題,本申請(qǐng)實(shí)施例提供了一種硬盤功耗控制方法,所述方法包括:
檢測(cè)節(jié)點(diǎn)硬盤組中的硬盤是否出現(xiàn)故障;
當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換。
可選地,所述預(yù)設(shè)的功耗狀態(tài)包括高功耗狀態(tài)和低功耗狀態(tài)。
可選地,所述硬盤功耗管理服務(wù)安裝于操作系統(tǒng)中。
可選地,所述當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,包括:
當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將所述節(jié)點(diǎn)硬盤中的硬盤從低功耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式;
當(dāng)將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式時(shí),同時(shí)將所述節(jié)點(diǎn)硬盤組中的硬盤由高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)。
可選地,所述當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,還包括:
每隔預(yù)設(shè)時(shí)間檢測(cè)所述節(jié)點(diǎn)硬盤中的硬盤是否均處于低能耗狀態(tài);
當(dāng)所述節(jié)點(diǎn)硬盤中的硬盤未處于低能耗狀態(tài)時(shí),將所述硬盤轉(zhuǎn)換為低能耗狀態(tài)。
可選地,在同時(shí)將所述節(jié)點(diǎn)硬盤組中的硬盤由高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)之前,所述當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,還包括:將所述操作系統(tǒng)緩存中的數(shù)據(jù)同步至所述節(jié)點(diǎn)硬盤組中的硬盤中。
可選地,所述當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,包括:當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將節(jié)點(diǎn)硬盤組中的硬盤從低功耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為讀寫模式。
可選地,所述當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,還包括:通過(guò)訪問(wèn)所述節(jié)點(diǎn)硬盤組中的硬盤,喚醒所述節(jié)點(diǎn)硬盤組中的硬盤。
本申請(qǐng)實(shí)施例還提供了一種硬盤功耗管理服務(wù)的控制方法,所述方法包括:
檢測(cè)所述硬盤功耗管理服務(wù)運(yùn)行的環(huán)境;
當(dāng)確定所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境滿足預(yù)設(shè)的條件時(shí),根據(jù)操作系統(tǒng)發(fā)送的參數(shù),控制所述硬盤功耗管理服務(wù)的開(kāi)啟或者關(guān)閉。
可選地,所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境滿足預(yù)設(shè)的條件包括:所述硬盤功耗管理服務(wù)的日志文件、節(jié)點(diǎn)硬盤組中的硬盤的配置文件和判斷服務(wù)判別與模式預(yù)處理文件均存在,且所述節(jié)點(diǎn)硬盤組中的硬盤的配置文件非空,所述判斷服務(wù)判別與模式預(yù)處理文件具有執(zhí)行權(quán)限。
可選地,所述根據(jù)操作系統(tǒng)所發(fā)送的參數(shù),控制所述硬盤功耗管理服務(wù)的開(kāi)啟或者關(guān)閉,包括:
當(dāng)接收到所述操作系統(tǒng)發(fā)送的第一參數(shù)時(shí),啟動(dòng)所述硬盤功耗管理服務(wù);
當(dāng)接收到所述操作系統(tǒng)發(fā)送的第二參數(shù)時(shí),關(guān)閉所述硬盤功耗管理服務(wù)。
本申請(qǐng)實(shí)施例還提供了一種硬盤功耗控制裝置,所述裝置包括:
硬盤檢測(cè)單元,適于檢測(cè)節(jié)點(diǎn)硬盤組中的硬盤是否出現(xiàn)故障;
功耗控制單元,適于當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換。
可選地,所述預(yù)設(shè)的功耗狀態(tài)包括高功耗狀態(tài)和低功耗狀態(tài)。
可選地,所述硬盤功耗管理服務(wù)安裝于操作系統(tǒng)中。
可選地,所述功耗控制單元包括:
掛載子單元,適于當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將所述節(jié)點(diǎn)硬盤中的硬盤從低功耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式;
轉(zhuǎn)換子單元,適于當(dāng)將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式時(shí),同時(shí)將所述節(jié)點(diǎn)硬盤組中的硬盤由高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)。
可選地,所述功耗控制單元還包括:
功耗檢測(cè)子單元,適于每隔預(yù)設(shè)時(shí)間檢測(cè)所述節(jié)點(diǎn)硬盤中的硬盤是否均處于低能耗狀態(tài);
功耗轉(zhuǎn)換子單元,適于當(dāng)所述節(jié)點(diǎn)硬盤中的硬盤未處于低能耗狀態(tài)時(shí),將所述硬盤轉(zhuǎn)換為低能耗狀態(tài)。
可選地,所述功耗控制單元還包括:同步子單元,適于在同時(shí)將所述節(jié)點(diǎn)硬盤組中的硬盤由高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)之前,將所述操作系統(tǒng)緩存中的數(shù)據(jù)同步至所述節(jié)點(diǎn)硬盤組中的硬盤中。
可選地,所述功耗控制單元包括:掛載子單元,適于當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將節(jié)點(diǎn)硬盤組中的硬盤從低功耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為讀寫模式。
可選地,所述功耗控制單元還包括:?jiǎn)拘炎訂卧m于通過(guò)訪問(wèn)所述節(jié)點(diǎn)硬盤組中的硬盤,喚醒所述節(jié)點(diǎn)硬盤組中的硬盤。
本申請(qǐng)實(shí)施例還提供一種硬盤功耗管理服務(wù)的控制裝置,所述裝置包括:
環(huán)境檢測(cè)單元,適于檢測(cè)所述硬盤功耗管理服務(wù)運(yùn)行的環(huán)境;
服務(wù)控制單元,適于當(dāng)確定所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境滿足預(yù)設(shè)的條件時(shí),根據(jù)操作系統(tǒng)發(fā)送的參數(shù),控制所述硬盤功耗管理服務(wù)的開(kāi)啟或者關(guān)閉。
可選地,所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境滿足預(yù)設(shè)的條件包括:所述硬盤功耗管理服務(wù)的日志文件、節(jié)點(diǎn)硬盤組中的硬盤的配置文件和判斷服務(wù)判別與模式預(yù)處理文件均存在,且所述節(jié)點(diǎn)硬盤組中的硬盤的配置文件非空,所述判斷服務(wù)判別與模式預(yù)處理文件具有執(zhí)行權(quán)限。
可選地,所述服務(wù)控制單元包括:
啟動(dòng)子單元,適于當(dāng)接收到所述操作系統(tǒng)發(fā)送的第一參數(shù)時(shí),啟動(dòng)所述硬盤功耗管理服務(wù);
關(guān)閉子單元,適于當(dāng)接收到所述操作系統(tǒng)發(fā)送的第二參數(shù)時(shí),關(guān)閉所述硬盤功耗管理服務(wù)。
與現(xiàn)有技術(shù)相比,本申請(qǐng)的技術(shù)方案具有以下的優(yōu)點(diǎn):
通過(guò)在檢測(cè)到節(jié)點(diǎn)硬盤組中的硬盤未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制節(jié)點(diǎn)硬盤組中的硬盤在高功耗狀態(tài)和低功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,可 靠地進(jìn)行硬盤功耗管理,并可以有效節(jié)省時(shí)間和能耗。
進(jìn)一步地,由于將硬盤由高能耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)時(shí),首先將所述節(jié)點(diǎn)硬盤組中的硬盤同步轉(zhuǎn)換為低能耗狀態(tài),并每隔預(yù)設(shè)時(shí)間對(duì)于所述節(jié)點(diǎn)硬盤組中的硬盤的功耗狀態(tài)進(jìn)行檢測(cè),當(dāng)檢測(cè)到所述硬盤未處于低功耗狀態(tài)時(shí),通過(guò)將所述硬盤轉(zhuǎn)換為低能耗狀態(tài),可以在冷數(shù)據(jù)存儲(chǔ)硬盤寫滿時(shí),將所述節(jié)點(diǎn)硬盤組中的硬盤一直維持在低功耗狀態(tài),可以提高硬盤功耗控制的可靠性。
進(jìn)一步地,由于在將硬盤由低能耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)之前,首先將所述節(jié)點(diǎn)硬盤組中的硬盤重新掛載為讀寫狀態(tài),并通過(guò)對(duì)于所述節(jié)點(diǎn)硬盤組中硬盤的訪問(wèn),可以將所述節(jié)點(diǎn)硬盤組中的硬盤快速地轉(zhuǎn)換為高能耗狀態(tài),降低硬盤讀寫的等待時(shí)間,并可以有效節(jié)省功耗。
附圖說(shuō)明
圖1是本申請(qǐng)實(shí)施例中的一種硬盤功耗控制方法的流程圖;
圖2是本申請(qǐng)實(shí)施例中的一種硬盤功耗控制方法的流程圖;
圖3是本申請(qǐng)實(shí)施例中的一種硬盤功耗管理服務(wù)的控制方法的流程圖;
圖4是本申請(qǐng)實(shí)施例中的一種硬盤功耗控制裝置的結(jié)構(gòu)示意圖;
圖5是本申請(qǐng)實(shí)施例中的一種功耗控制單元結(jié)構(gòu)示意圖;
圖6是本申請(qǐng)實(shí)施例中的一種硬盤功耗管理服務(wù)的控制裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
在本申請(qǐng)一個(gè)典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由 任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的子單元或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁硬盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
現(xiàn)有技術(shù)中的硬盤一般具有如下四種工作模式:
活躍模式(Active):硬盤處于全速工作狀態(tài),盤片在高速運(yùn)轉(zhuǎn),能夠在最短時(shí)間內(nèi)響應(yīng)用戶的請(qǐng)求;
空閑模式(Idle):盤片保持旋轉(zhuǎn)狀態(tài),磁頭臂停止運(yùn)轉(zhuǎn),其它多數(shù)電子元器件處于關(guān)閉狀態(tài),能耗與活躍模式相比稍低;
就緒模式(Standby):硬盤停止運(yùn)轉(zhuǎn),處于低能耗狀態(tài);
休眠模式(Sleep):硬盤處于關(guān)閉狀態(tài),此時(shí)能耗達(dá)到最小值。
現(xiàn)有技術(shù)中的硬盤,在從能耗越低的模式轉(zhuǎn)換為能耗較高的模式活躍模式時(shí)會(huì)產(chǎn)生的延時(shí)和能耗損失越大。而且,現(xiàn)有技術(shù)中的硬盤功耗控制方法無(wú)法直接將硬盤在低功耗模式和高功耗模式之間直接進(jìn)行轉(zhuǎn)換,例如,硬盤從休眠模式轉(zhuǎn)換到活躍模式過(guò)程中,要先經(jīng)過(guò)就緒模式,因此,現(xiàn)有技術(shù)中的硬盤在進(jìn)行模式轉(zhuǎn)換時(shí),耗時(shí)較長(zhǎng),且能耗較大。
為解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,本申請(qǐng)實(shí)施例采用的技術(shù)方案通過(guò)在檢測(cè)到節(jié)點(diǎn)硬盤組中的硬盤未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),直接控制節(jié)點(diǎn)硬盤組中的硬盤在高功耗狀態(tài)和低功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,可以快速地實(shí)現(xiàn)冷數(shù)據(jù)存儲(chǔ)硬盤功耗狀態(tài)的轉(zhuǎn)換,并可以有效節(jié)省時(shí)間和能耗。
為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本申請(qǐng)的具體實(shí)施例做詳細(xì)的說(shuō)明。
圖1示出了本申請(qǐng)實(shí)施例中的一種硬盤功耗控制方法的流程圖。如圖1所示的硬盤功耗控制方法,可以包括:
步驟S101:檢測(cè)節(jié)點(diǎn)硬盤組中的硬盤是否出現(xiàn)故障。
在具體實(shí)施中,所述節(jié)點(diǎn)硬盤組中包括兩個(gè)以上的硬盤。
步驟S102:當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換。
在具體實(shí)施中,所述預(yù)設(shè)的功耗狀態(tài)可以包括高功耗狀態(tài)和低功耗狀態(tài),其中,所述高功耗狀態(tài)可以為硬盤處于活躍模式時(shí)的功耗狀態(tài),所述低功耗狀態(tài)可以為硬盤處于就緒模式時(shí)的功耗狀態(tài)。
圖2示出了本申請(qǐng)實(shí)施例中的另一種硬盤功耗控制方法的流程圖。如圖2所示的硬盤功耗控制方法,可以包括:
步驟S201:檢測(cè)節(jié)點(diǎn)硬盤組中的硬盤是否出現(xiàn)故障。
在具體實(shí)施中,當(dāng)所述節(jié)點(diǎn)硬盤組中的硬盤出現(xiàn)故障或者未掛載時(shí),則無(wú)法通過(guò)操作系統(tǒng)提供的硬盤功耗管理服務(wù),控制節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,因此,為了確保所述硬盤功耗管理服務(wù)可靠的運(yùn)行,首先可以檢測(cè)節(jié)點(diǎn)硬盤組中的硬盤是否出現(xiàn)故障。
在具體實(shí)施中,方確定節(jié)點(diǎn)硬盤組中的硬盤未出現(xiàn)故障時(shí),可以執(zhí)行步驟S202;當(dāng)確定節(jié)點(diǎn)硬盤組中的硬盤出現(xiàn)故障或者未掛載時(shí),可以發(fā)布錯(cuò)誤告警信息,以提示相關(guān)人員采取相應(yīng)的措施。
步驟S202:接收安裝于操作系統(tǒng)中的硬盤功耗管理服務(wù)發(fā)送的功耗狀態(tài)轉(zhuǎn)換的指令。
在具體實(shí)施中,所述硬盤功耗管理服務(wù)可以通過(guò)硬盤驅(qū)動(dòng)程序接口控制節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的高功耗狀態(tài)和低功耗狀態(tài)之間轉(zhuǎn)換,以避免直接通過(guò)輸入/輸出(I/O)端口向硬盤發(fā)送指令與硬盤驅(qū)動(dòng)程序的操作相沖突。
在本申請(qǐng)一實(shí)施例中,所述高功耗狀態(tài)為節(jié)點(diǎn)硬盤組中的硬盤工作在活躍模式時(shí)所述處于的功耗狀態(tài),所述低功耗狀態(tài)為節(jié)點(diǎn)硬盤組中的硬盤工作 在就緒模式時(shí)的功耗狀態(tài)。
在具體實(shí)施中,當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將所述節(jié)點(diǎn)硬盤中的硬盤從低功耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),可以執(zhí)行步驟S203~S207。反之,當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將所述節(jié)點(diǎn)硬盤中的硬盤從高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)的指令時(shí),可以執(zhí)行步驟S208~S209。
步驟S203:將所述操作系統(tǒng)緩存中的數(shù)據(jù)同步至所述節(jié)點(diǎn)硬盤組中的硬盤中。
在本申請(qǐng)一實(shí)施例中,當(dāng)接收到到所述硬盤功耗管理服務(wù)發(fā)送的將節(jié)點(diǎn)硬盤組中的硬盤由低能耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),為了避免數(shù)據(jù)丟失,首先將系統(tǒng)緩存中的數(shù)據(jù)同步至所述節(jié)點(diǎn)硬盤組中的硬盤中,并休眠一段時(shí)間,例如,10s,以等待數(shù)據(jù)同步操作的完成。
步驟S204:將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式。
在具體實(shí)施中,為了避免對(duì)于節(jié)點(diǎn)硬盤組中的硬盤的讀寫操作,可以首先將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式。
步驟S205:當(dāng)將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式時(shí),同時(shí)將所述節(jié)點(diǎn)硬盤組中的硬盤由高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)。
在本申請(qǐng)一實(shí)施例中,所述硬盤功耗管理服務(wù)可以并行地向所述節(jié)點(diǎn)硬盤組中的硬盤發(fā)送從高功耗狀態(tài)轉(zhuǎn)換為低功耗狀態(tài)的指令,從而可以節(jié)省將節(jié)點(diǎn)硬盤組中的硬盤轉(zhuǎn)換為低功耗狀態(tài)的時(shí)間。
在本申請(qǐng)一實(shí)施例中,當(dāng)將節(jié)點(diǎn)硬盤組中的硬盤由高能耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)失敗時(shí),休眠2s,并重新嘗試將所述硬盤轉(zhuǎn)換為低能耗狀態(tài)。當(dāng)重試失敗時(shí),可以發(fā)布硬盤能耗狀態(tài)轉(zhuǎn)換失敗的提示信息。
在具體實(shí)施中,為了確保將節(jié)點(diǎn)硬盤組中的硬盤從高能耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài),本申請(qǐng)實(shí)施例中的硬盤功耗控制方法,還可以包括:
步驟S206:每隔預(yù)設(shè)時(shí)間檢測(cè)所述節(jié)點(diǎn)硬盤中的硬盤是否均處于低能耗狀態(tài)。
在具體實(shí)施中,通過(guò)每隔預(yù)設(shè)時(shí)間遍歷節(jié)點(diǎn)硬盤組中的硬盤,可以確定 硬盤是否處于低能耗狀態(tài)。其中,所述預(yù)設(shè)的時(shí)間的長(zhǎng)度可以根據(jù)實(shí)際的需要進(jìn)行設(shè)置,例如,可以為10s、50s、2h等。
步驟S207:當(dāng)所述節(jié)點(diǎn)硬盤中的硬盤未處于低能耗狀態(tài)時(shí),將所述硬盤轉(zhuǎn)換為低能耗狀態(tài)。
在本申請(qǐng)一實(shí)施例中,當(dāng)檢測(cè)到所述節(jié)點(diǎn)硬盤中的硬盤未處于低能耗狀態(tài)時(shí),為了可以將節(jié)點(diǎn)硬盤組中的硬盤維持在低能耗狀態(tài),所述硬盤管理服務(wù)可以通過(guò)硬盤驅(qū)動(dòng)程序接口將未處于低能耗狀態(tài)的硬盤再次轉(zhuǎn)換為低能耗狀態(tài)。
在具體實(shí)施中,當(dāng)將硬盤轉(zhuǎn)換為低能耗狀態(tài)失敗時(shí),可以發(fā)布狀態(tài)轉(zhuǎn)換失敗的提示信息。
步驟S208:將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為讀寫模式。
在具體實(shí)施中,可以將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為讀寫模式,,以并行地控制所述節(jié)點(diǎn)硬盤組中的硬盤由低能耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài),嘗試將硬盤從低能耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài),以節(jié)省硬盤喚醒所需的時(shí)間。
在具體實(shí)施中,當(dāng)節(jié)點(diǎn)硬盤中的硬盤由低能耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)失敗時(shí),可以返回相應(yīng)的錯(cuò)誤提示信息。
在具體實(shí)施中,本申請(qǐng)實(shí)施例中的硬盤功耗控制方法還可以包括:
步驟S209:通過(guò)訪問(wèn)所述節(jié)點(diǎn)硬盤組中的硬盤,喚醒所述節(jié)點(diǎn)硬盤組中的硬盤。
在具體實(shí)施中,為了確保節(jié)點(diǎn)硬盤組中的硬盤由低能耗狀態(tài)轉(zhuǎn)換為高能耗轉(zhuǎn)換,可以通過(guò)對(duì)節(jié)點(diǎn)硬盤組中的硬盤的訪問(wèn)操作來(lái)完成。例如,在所述節(jié)點(diǎn)硬盤組中的硬盤的掛載目錄下創(chuàng)建一空的隱藏文件,并在所述隱藏文件創(chuàng)建成功時(shí),將所述隱藏文件從所述掛載目錄下刪除。
圖3示出了本申請(qǐng)實(shí)施例中的一種硬盤功耗管理服務(wù)的控制方法的流程圖。如圖3所示的硬盤功耗管理服務(wù)的控制方法,可以包括:
步驟S301:檢測(cè)所述硬盤功耗管理服務(wù)運(yùn)行的環(huán)境。
在具體實(shí)施中,可以通過(guò)檢測(cè)所述硬盤功耗管理服務(wù)運(yùn)行的環(huán)境,以確 保所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境是否滿足預(yù)設(shè)的條件。
在本申請(qǐng)一實(shí)施例中,所述檢測(cè)所述硬盤功耗管理服務(wù)運(yùn)行的環(huán)境是否滿足預(yù)設(shè)的條件,包括:所述硬盤功耗管理服務(wù)的日志文件、節(jié)點(diǎn)硬盤組中的硬盤的配置文件和判斷服務(wù)判別與模式預(yù)處理文件均存在,且所述節(jié)點(diǎn)硬盤組中的硬盤的配置文件非空,所述判斷服務(wù)判別與模式預(yù)處理文件具有執(zhí)行權(quán)限。其中:
首先,檢查是否存在硬盤功耗管理服務(wù)的日志文件,如果沒(méi)有,則在創(chuàng)建空的日志文件。
然后,檢查硬盤配置文件是否存在,如果不存在,則可以返回硬盤配置文件不存在的提示信息。否則,判斷節(jié)點(diǎn)硬盤組中的硬盤的配置文件是否為空,如果為空,返回硬盤配置文件為空的錯(cuò)誤提示信息。
接著,判斷服務(wù)判別與模式預(yù)處理文件是否存在,如果不存在,則返回服務(wù)判別與模式預(yù)處理文件不存在的提示信息。否則,則繼續(xù)判斷所述服務(wù)判別與模式預(yù)處理文件是否具有可執(zhí)行權(quán)限,如果該文件不具有可執(zhí)行權(quán)限,則可以返回服務(wù)判別與預(yù)處理文件不可執(zhí)行的錯(cuò)誤提示信息。
最后,判斷能否在當(dāng)前系統(tǒng)環(huán)境下執(zhí)行awk和hdparm命令,如果不能執(zhí)行awk和hdparm命令,,則返回命令不存在的錯(cuò)誤提示信息。其中,awk命令用于文本處理,解析其它命令的輸出,hdparm命令用于查詢和設(shè)置磁盤的硬件參數(shù)。
步驟S302:當(dāng)確定所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境滿足預(yù)設(shè)的條件時(shí),根據(jù)操作系統(tǒng)發(fā)送的參數(shù),控制所述硬盤功耗管理服務(wù)的開(kāi)啟或者關(guān)閉。
在具體實(shí)施中,當(dāng)確定所述硬盤功耗管理服務(wù)運(yùn)行的環(huán)境滿足預(yù)設(shè)的條件時(shí),可以根據(jù)操作系統(tǒng)所發(fā)送的指令,分別執(zhí)行開(kāi)啟或者關(guān)閉所述硬盤功耗管理服務(wù)的操作。
在本申請(qǐng)一實(shí)施例中,當(dāng)接收到所述操作系統(tǒng)發(fā)送的第一參數(shù)時(shí),如start參數(shù),啟動(dòng)所述硬盤功耗管理服務(wù);當(dāng)接收到所述操作系統(tǒng)發(fā)送的第二參數(shù)時(shí),如stop參數(shù),首先判斷所述操作系統(tǒng)中的硬盤功耗管理服務(wù)是否處于運(yùn)行的狀態(tài),若有,則關(guān)閉所述硬盤功耗管理服務(wù)。
在具體實(shí)施中,當(dāng)終止所述硬盤功耗管理服務(wù)失敗時(shí),可以發(fā)布關(guān)閉所述硬盤功耗管理服務(wù)失敗的提示信息。
這里需要指出的是,上述的實(shí)施例通過(guò)安裝于操作系統(tǒng)中的硬盤功耗管理服務(wù)控制用戶冷數(shù)據(jù)存儲(chǔ)的硬盤在高功耗狀態(tài)和低功耗狀態(tài)之間進(jìn)行裝換。當(dāng)然也可以通過(guò)其他的方式,例如可以通過(guò)利用設(shè)備驅(qū)動(dòng)程序中對(duì)設(shè)備的I/O通道進(jìn)行管理的函數(shù)IOCTL直接給磁盤發(fā)送指令,控制硬盤在預(yù)設(shè)的高功耗狀態(tài)和低功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換,在此不再贅述。
圖4示出了本申請(qǐng)實(shí)施例中的一種硬盤功耗控制裝置的結(jié)構(gòu)示意圖。如圖4所示的硬盤功耗控制裝置,可以包括:
硬盤檢測(cè)單元401,適于檢測(cè)節(jié)點(diǎn)硬盤組中的硬盤是否出現(xiàn)故障。在具體實(shí)施中,所述預(yù)設(shè)的功耗狀態(tài)包括高功耗狀態(tài)和低功耗狀態(tài)。
功耗控制單元402,適于當(dāng)確定所述節(jié)點(diǎn)硬盤組中的硬盤均未出現(xiàn)故障時(shí),通過(guò)硬盤功耗管理服務(wù),控制所述節(jié)點(diǎn)硬盤組中的硬盤在預(yù)設(shè)的功耗狀態(tài)之間進(jìn)行轉(zhuǎn)換。
圖5示出了本申請(qǐng)實(shí)施例中的一種功耗控制單元結(jié)構(gòu)示意圖。如圖5所示的硬盤功耗控制裝置500,可以包括掛載子單元501和轉(zhuǎn)換子單元502,其中:
掛載子單元501,適于當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將所述節(jié)點(diǎn)硬盤中的硬盤從低功耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為只讀模式。
轉(zhuǎn)換子單元502,適于同時(shí)將所述節(jié)點(diǎn)硬盤組中的硬盤由高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)。
在具體實(shí)施中,所述功耗控制單元500還可以包括功耗檢測(cè)子單元503和功耗轉(zhuǎn)換子單元504,其中:
功耗檢測(cè)子單元503,適于每隔預(yù)設(shè)時(shí)間檢測(cè)所述節(jié)點(diǎn)硬盤中的硬盤是否均處于低能耗狀態(tài)。
功耗轉(zhuǎn)換子單元504,適于當(dāng)所述節(jié)點(diǎn)硬盤中的硬盤未處于低能耗狀態(tài) 時(shí),將所述硬盤轉(zhuǎn)換為低能耗狀態(tài)。
在具體實(shí)施中,所述功耗控制單元500還可以包括同步子單元505,其中:
同步子單元505,適于在同時(shí)將所述節(jié)點(diǎn)硬盤組中的硬盤由高功耗狀態(tài)轉(zhuǎn)換為低能耗狀態(tài)之前,將所述操作系統(tǒng)緩存中的數(shù)據(jù)同步至所述節(jié)點(diǎn)硬盤組中的硬盤中。
在具體實(shí)施中,所述功耗控制單元500還可以包括掛載子單元506,其中:
掛載子單元506,適于當(dāng)接收到所述硬盤管理服務(wù)發(fā)送的將節(jié)點(diǎn)硬盤組中的硬盤從低功耗狀態(tài)轉(zhuǎn)換為高能耗狀態(tài)的指令時(shí),將所述節(jié)點(diǎn)硬盤組中的硬盤掛載為讀寫模式。
在具體實(shí)施中,所述功耗控制單元500還可以包括:?jiǎn)拘炎訂卧?07,適于通過(guò)訪問(wèn)所述節(jié)點(diǎn)硬盤組中的硬盤,喚醒所述節(jié)點(diǎn)硬盤組中的硬盤。
在具體實(shí)施中,所述喚醒子單元適于在所述節(jié)點(diǎn)硬盤組中的硬盤的掛載目錄下創(chuàng)建一空的隱藏文件;當(dāng)所述隱藏文件創(chuàng)建成功時(shí),將所述隱藏文件從所述掛載目錄下刪除。
圖6示出了本申請(qǐng)實(shí)施例中的一種硬盤功耗管理服務(wù)的控制裝置的結(jié)構(gòu)示意圖。如圖7所示的硬盤功耗管理服務(wù)的控制裝置600,可以包括環(huán)境檢測(cè)單元601和服務(wù)控制單元602,其中:
環(huán)境檢測(cè)單元601,適于檢測(cè)所述硬盤功耗管理服務(wù)運(yùn)行的環(huán)境。
服務(wù)控制單元602,適于當(dāng)確定所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境滿足預(yù)設(shè)的條件時(shí),根據(jù)操作系統(tǒng)發(fā)送的參數(shù),控制所述硬盤功耗管理服務(wù)的開(kāi)啟或者關(guān)閉。
在具體實(shí)施中,所述硬盤功耗管理服務(wù)的運(yùn)行環(huán)境滿足預(yù)設(shè)的條件包括:所述硬盤功耗管理服務(wù)的日志文件、節(jié)點(diǎn)硬盤組中的硬盤的配置文件和判斷服務(wù)判別與模式預(yù)處理文件均存在,且所述節(jié)點(diǎn)硬盤組中的硬盤的配置文件非空,所述判斷服務(wù)判別與模式預(yù)處理文件具有執(zhí)行權(quán)限。
在具體實(shí)施中,所述服務(wù)控制單元602,可以包括啟動(dòng)子單元6021和關(guān)閉子單元6022,其中:
啟動(dòng)子單元6021,適于當(dāng)接收到所述操作系統(tǒng)發(fā)送的第一參數(shù)時(shí),啟動(dòng)所述硬盤功耗管理服務(wù)。
關(guān)閉子單元6022,適于當(dāng)接收到所述操作系統(tǒng)發(fā)送的第二參數(shù)時(shí),關(guān)閉所述硬盤功耗管理服務(wù)。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:ROM、RAM、硬盤或光盤等。
以上對(duì)本申請(qǐng)實(shí)施例的方法及系統(tǒng)做了詳細(xì)的介紹,本申請(qǐng)并不限于此。任何本領(lǐng)域技術(shù)人員,在不脫離本申請(qǐng)的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本申請(qǐng)的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。