本發(fā)明涉及硬盤的數(shù)據(jù)存儲技術(shù)領(lǐng)域,特別涉及一種硬盤的喚醒方法及裝置。
背景技術(shù):
隨著電子技術(shù)的快速發(fā)展,電子設(shè)備應(yīng)用到了越來越多的場合。一般電子設(shè)備包括若干塊硬盤,通過該若干硬盤實現(xiàn)數(shù)據(jù)的存儲,在進行數(shù)據(jù)讀寫操作時,只有個別正在操作的硬盤處于工作狀態(tài),其他的硬盤則處于休眠狀態(tài)。當(dāng)前操作的硬盤被數(shù)據(jù)寫滿時,需要喚醒一塊處于休眠狀態(tài)的硬盤,從而繼續(xù)進行數(shù)據(jù)寫入。喚醒處于休眠狀態(tài)的硬盤需要一定的時間,而此時當(dāng)前操作的硬盤已經(jīng)被數(shù)據(jù)寫滿,如果處于休眠狀態(tài)的硬盤不能立即被喚醒,寫入的數(shù)據(jù)將會丟失。
針對上述問題,現(xiàn)有技術(shù)中提出了多個解決方案:
第一個方案:迫使硬盤不休眠。電子設(shè)備中的每個硬盤都不休眠,因此在數(shù)據(jù)寫滿時,不用喚醒硬盤,也不存在數(shù)據(jù)丟失的問題。但是,當(dāng)前不被操作的硬盤,即處于閑置狀態(tài)的硬盤不休眠將會引起額外的功耗,并且對硬盤本身的壽命也有很大的損耗。
第二個方案:在電子設(shè)備上增加內(nèi)存,在喚醒處于休眠狀態(tài)的硬盤時,如果當(dāng)前操作的硬盤已經(jīng)被寫滿,可以將數(shù)據(jù)緩存在內(nèi)存中。但是內(nèi)存的資源是有限的,當(dāng)內(nèi)存沒有足夠的空間用于數(shù)據(jù)緩存時,仍然會丟失數(shù)據(jù),而且內(nèi)存資源寶貴,占用內(nèi)存容易影響電子設(shè)備整體的運行。
第三個方案:使用提前喚醒機制,即在當(dāng)前操作的硬盤沒有被寫滿時,就喚醒一個處于休眠狀態(tài)的硬盤。但提前喚醒處于休眠狀態(tài)的硬盤的時機很難把握,為了保證在喚醒處于休眠狀態(tài)的硬盤的時間段內(nèi)數(shù)據(jù)不會丟失,一般在硬盤的剩余存儲區(qū)間足夠大時,即對處于休眠狀態(tài)的硬盤進行喚醒,并在喚醒后立即切換硬盤,將數(shù)據(jù)寫入下一塊硬盤,因此該方法將會造成硬盤資源的極大浪費。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例公開了一種硬盤的喚醒方法及裝置,用以解決現(xiàn)有硬盤喚醒方法導(dǎo)致的功耗大,影響硬盤壽命,影響電子設(shè)備整體的運行及硬盤資源浪費的問題。
為達到上述目的,本發(fā)明實施例公開了一種硬盤的喚醒方法,應(yīng)用于電子設(shè)備,該電子設(shè)備包括至少一個硬盤,該方法包括:
根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量;
判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量;
如果是,在休眠的硬盤中選擇一個喚醒。
進一步的,所述確定所述硬盤的第一安全區(qū)容量之前,所述方法包括:
根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第二設(shè)定時間長度的第二平均流量值,及所述第二設(shè)定時間長度,確定所述硬盤的第二安全區(qū)容量,其中所述第二設(shè)定時間長度大于所述第一設(shè)定時間長度;
判斷所述硬盤當(dāng)前的第二剩余容量是否小于第二安全區(qū)容量;
如果是,進行后續(xù)確定所述硬盤的第一安全區(qū)容量的步驟。
進一步地,所述確定所述硬盤的第一安全區(qū)容量之前,所述方法包括:
A、根據(jù)預(yù)先保存的至少兩個第三設(shè)定時間長度,確定所述至少兩個第三設(shè)定時間長度中的時間長度最長的目標(biāo)第三設(shè)定時間長度,其中所述至少兩個第三設(shè)定時間長度的時間長度不等,但都大于所述第一設(shè)定時間長度;
B、根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在所述目標(biāo)第三設(shè)定時間長度的第三平均流量值,及所述目標(biāo)第三設(shè)定時間長度,確定所述硬盤的第三安全區(qū)容量;
C、判斷所述硬盤當(dāng)前的第三剩余容量是否小于所述第三安全區(qū)容量;
D、如果是,在所述至少兩個第三設(shè)定時間長度中刪除所述目標(biāo)第三設(shè)定時間長度,判斷剩余的第三設(shè)定時間長度中是否存在較所述目標(biāo)第三設(shè)定時間長度的時間長度短的第四設(shè)定時間長度,如果是,將所述第四設(shè)定時間長度作為目標(biāo)第三設(shè)定時間長度,返回B,如果否,進行后續(xù)確定所述硬盤的第一安全區(qū)容量的步驟。
進一步地,所述確定所述硬盤的第一安全區(qū)容量包括:
將保存的硬盤喚醒時長與所述第一平均流量值的積確定為所述硬盤的第一安全區(qū)容量。
進一步地,所述確定所述硬盤的第一安全區(qū)容量包括:
計算保存的硬盤喚醒時長與設(shè)定的保險時長的和值;
將計算的所述和值與第一平均流量值的積確定為所述硬盤的第一安全區(qū)容量,其中所述保險時長大于1小于10。
進一步地,確定所述硬盤喚醒時長的過程包括:
當(dāng)接收到查詢請求時,喚醒每個硬盤,并記錄喚醒每個硬盤的時長,根據(jù)喚醒每個硬盤的時長,確定硬盤喚醒時長;或
當(dāng)檢測到硬盤插入事件時,喚醒每個硬盤,并記錄喚醒每個硬盤的時長,根據(jù)喚醒每個硬盤的時長,確定硬盤喚醒時長。
進一步地,所述確定所述硬盤的第一安全區(qū)容量之前,所述方法還包括:
當(dāng)檢測到開機操作時,獲取保存的安全區(qū)容量的固定值;
判斷所述硬盤當(dāng)前的剩余容量是否小于所述固定值,如果否,進行后續(xù)確定所述硬盤的第一安全區(qū)容量的步驟,如果是,在休眠的硬盤中選擇一個喚醒。
本發(fā)明實施例公開了一種硬盤的喚醒裝置,所述裝置包括:
第一確定模塊,用于根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量;
第一判斷模塊,用于判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量;
喚醒模塊,用于當(dāng)?shù)谝慌袛嗄K判斷結(jié)果為是時,在休眠的硬盤中選擇一個喚醒。
進一步地,所述裝置還包括:
第二確定模塊,用于根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第二設(shè)定時間長度的第二平均流量值,及所述第二設(shè)定時間長度,確定所述硬盤的第二安全區(qū)容量,其中所述第二設(shè)定時間長度大于所述第一設(shè)定時間長度;
第二判斷模塊,用于判斷所述硬盤當(dāng)前的第二剩余容量是否小于第二安全區(qū)容量,當(dāng)判斷結(jié)果為是時,觸發(fā)第一確定模塊。
進一步地,所述裝置還包括:
第三確定模塊,用于根據(jù)預(yù)先保存的至少兩個第三設(shè)定時間長度,確定所述至少兩個第三設(shè)定時間長度中的時間長度最長的目標(biāo)第三設(shè)定時間長度,其中所述至少兩個第三設(shè)定時間長度的時間長度不等,但都大于所述第一設(shè)定時間長度;
第四確定模塊,用于根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在所述目標(biāo)第三設(shè)定時間長度的第三平均流量值,及所述目標(biāo)第三設(shè)定時間長度,確定所述硬盤的第三安全區(qū)容量;
第三判斷模塊,用于判斷所述硬盤當(dāng)前的第三剩余容量是否小于所述第三安全區(qū)容量;當(dāng)判斷結(jié)果為是時,觸發(fā)第四判斷模塊
第四判斷模塊,用于在所述至少兩個第三設(shè)定時間長度中刪除所述目標(biāo)第三設(shè)定時間長度,判斷剩余的第三設(shè)定時間長度中是否存在較所述目標(biāo)第三設(shè)定時間長度的時間長度短的第四設(shè)定時間長度,當(dāng)判斷結(jié)果為是時,將所述第四設(shè)定時間長度作為目標(biāo)第三設(shè)定時間長度,觸發(fā)第三確定模塊,當(dāng)判斷結(jié)果為否時,觸發(fā)第一確定模塊。
進一步地,所述裝置還包括:
獲取模塊,用于當(dāng)檢測到開機操作時,獲取保存的安全區(qū)容量的固定值;
第五判斷模塊,用于判斷所述硬盤當(dāng)前的剩余容量是否小于所述固定值,如果否,進行后續(xù)統(tǒng)計當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值;當(dāng)判斷結(jié)果為否時,觸發(fā)所述第一確定模塊;
所述喚醒模塊,還用于當(dāng)?shù)谖迮袛嗄K判斷結(jié)果為是時,在休眠的硬盤中選擇一個喚醒。
本發(fā)明實施例提供了一種硬盤的喚醒方法及裝置,該方法包括:根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量;判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量;如果是,在休眠的硬盤中選擇一個喚醒。由于本發(fā)明實施例中根據(jù)設(shè)定時間長度內(nèi)統(tǒng)計的平均流量值確定安全區(qū)容量,當(dāng)前的剩余容量小于當(dāng)前的安全區(qū)容量時選擇一個硬盤喚醒,因此可以根據(jù)當(dāng)前的數(shù)據(jù)寫入情況,有效的預(yù)測安全區(qū)容量,從而可以準(zhǔn)確的把握硬盤喚醒的時機,提高了硬盤喚醒的精確性,合理利用了硬盤的資源,避免了寫入數(shù)據(jù)的丟失,并且有效的提高了硬盤的壽命,而且因為無需采用內(nèi)存,也不會影響電子設(shè)備整體的運行。
附圖說明
圖1為本發(fā)明實施例1提供的一種硬盤的喚醒過程示意圖;
圖2為本發(fā)明實施例1-3提供的一種硬盤的喚醒過程示意圖;
圖3為本發(fā)明實施例提供的一種硬盤的喚醒過程詳細過程示意圖;
圖4為本發(fā)明實施例提供的一種硬盤的喚醒裝置結(jié)構(gòu)示意圖。
具體實施方式
為了解決現(xiàn)有硬盤喚醒方法導(dǎo)致的功耗大,影響硬盤壽命,影響電子設(shè)備整體的運行及硬盤資源浪費的問題,本發(fā)明實施例提供了一種硬盤的喚醒方法及裝置。
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例1:
圖1為本發(fā)明實施例提供的一種硬盤的喚醒過程示意圖,應(yīng)用于電子設(shè)備,該過程包括以下步驟:
S101:根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量。
具體的,該電子設(shè)備創(chuàng)建一個線程,該線程用來做流量統(tǒng)計,線程每隔一定的時間輪詢一次,統(tǒng)計當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的流量值,并對該第一設(shè)定時間長度的第一平均流量值進行更新。其中,該第一設(shè)定時間長度根據(jù)實際需要可以設(shè)定為任意的時間長度,為了提高硬盤喚醒的準(zhǔn)確性,在本發(fā)明實施例中該第一設(shè)定時間長度可以為一個比較小的數(shù)值,例如可以是1s、2s等。該第一平均流量值在第一設(shè)定時間長度內(nèi)是隨著寫入硬盤的數(shù)據(jù)量的變化而變化的,當(dāng)?shù)谝辉O(shè)定時間長度為1秒時,該線程1s輪詢一次時,此時第一平均流量值是1秒時間長度內(nèi),該電子設(shè)備創(chuàng)建的線程統(tǒng)計出來的瞬時流量值。
具體的,在電子設(shè)備中保存有硬盤的喚醒時長,并且可以針對不同類型的硬盤保存不同的喚醒時長,一般為了簡便,一臺電子設(shè)備中的多個硬盤的類型相同。電子設(shè)備保存的該硬盤的喚醒時長,可以是用戶預(yù)先設(shè)置在其內(nèi)部的,也可以是該電子設(shè)備與其他電子設(shè)備之間進行信息交互,獲取的喚醒時長的平均值。該電子設(shè)備在統(tǒng)計了第一平均流量值之后,根據(jù)保存的硬盤喚醒時長及所述第一平均流量值,確定所述硬盤的第一安全區(qū)容量,其中,所述確定所述硬盤的第一安全區(qū)容量包括:將保存的硬盤喚醒時長與所述第一平均流量值的積確定為所述硬盤的第一安全區(qū)容量。
S102:判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量,如果是,則進行步驟S103,如果否,則進行步驟S101。
具體的,在確定硬盤當(dāng)前的所述第一安全區(qū)容量之后,獲取所述硬盤當(dāng)前的第一剩余容量,并判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量,如果否,則繼續(xù)統(tǒng)計當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值。
S103:在休眠的硬盤中選擇一個喚醒。
具體的,當(dāng)所述硬盤當(dāng)前的第一剩余容量小于所述第一安全區(qū)容量時,說明在一定的時間內(nèi)該硬盤將會被寫滿,為了避免數(shù)據(jù)丟失,該電子設(shè)備在休眠的硬盤中選擇一個喚醒,并且在休眠硬盤喚醒之后,切換到該被喚醒的硬盤。其中,該電子設(shè)備切換到該被喚醒的硬盤時,需要切換當(dāng)前硬盤路徑至該被喚醒的硬盤,并且將硬盤路徑切換的消息通知外部寫入裝置或者用戶。
由于本發(fā)明實施例中根據(jù)設(shè)定時間長度內(nèi)統(tǒng)計的平均流量值確定安全區(qū)容量,當(dāng)前的剩余容量小于當(dāng)前的安全區(qū)容量時選擇一個硬盤喚醒,因此可以根據(jù)當(dāng)前的數(shù)據(jù)寫入情況,有效的預(yù)測安全區(qū)容量,從而可以準(zhǔn)確的把握硬盤喚醒的時機,提高了硬盤喚醒的精確性,合理利用了硬盤的資源,避免了寫入數(shù)據(jù)的丟失,并且有效的提高了硬盤的壽命,而且因為無需采用內(nèi)存,也不會影響電子設(shè)備整體的運行。
實施例2:
該第一設(shè)定時間長度是一個較小的時間長度,例如可以為1s、2s等,而在確定第一安全區(qū)容量時,是根據(jù)保存的硬盤喚醒時長及所述第一平均流量值確定的,因此該第一安全區(qū)容量是一個較小的容量。而在向硬盤中寫入數(shù)據(jù)時,一般硬盤的存儲空間是比較大的,如果當(dāng)硬盤被喚醒即開始進行上述實施例的操作,雖然可以準(zhǔn)確的把握切換的時機,但是在一定程度上將會浪費較多的資源。
因此在本發(fā)明實施例中,為了減少資源浪費,在上述實施例的基礎(chǔ)上在本發(fā)明實施例中,所述確定所述硬盤的第一安全區(qū)容量之前,所述方法包括:
根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第二設(shè)定時間長度的第二平均流量值,及所述第二設(shè)定時間長度,確定所述硬盤的第二安全區(qū)容量,其中所述第二設(shè)定時間長度大于所述第一設(shè)定時間長度;
判斷所述硬盤當(dāng)前的第二剩余容量是否小于第二安全區(qū)容量;
如果是,進行后續(xù)確定所述硬盤的第一安全區(qū)容量的步驟。
電子設(shè)備利用創(chuàng)建的用來做流量統(tǒng)計的線程,在所述線程進行流量統(tǒng)計時,獲取當(dāng)前時刻的流量,對所述第二設(shè)定時間長度內(nèi)的第二平均流量值進行更新。
根據(jù)更新后的第二平均流量值及該第二設(shè)定時間長度,可以確定所述硬盤的第二安全區(qū)容量,當(dāng)所述硬盤當(dāng)前的第二剩余容量小于所述第二安全區(qū)容量時,才開始后續(xù)根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量的步驟。
該電子設(shè)備在確定硬盤當(dāng)前的所述第二安全區(qū)容量之后,獲取所述硬盤當(dāng)前的第二剩余容量,并判斷所述硬盤當(dāng)前的第二剩余容量是否小于所述第二安全區(qū)容量,如果否,則繼續(xù)更新第二設(shè)定時間長度內(nèi)的第二平均流量值,并確定相應(yīng)的第二安全區(qū)容量。
該第二設(shè)定時間長度大于第一設(shè)定時間長度,例如可以是30s、1分鐘等,第二安全區(qū)容量是根據(jù)所述第二平均流量值及所述第二設(shè)定時間長度確定的,因此該第二安全區(qū)容量大于第一安全區(qū)容量。在向硬盤中寫入數(shù)據(jù)時,一般硬盤的存儲空間是比較大的,首先判斷第二安全區(qū)容量與第二剩余容量之間的大小關(guān)系,當(dāng)?shù)诙S嗳萘啃∮诘诙踩珔^(qū)容量之后,再判斷第二安全區(qū)容量與第二剩余容量之間的大小關(guān)系,在一定程度上節(jié)省了一定的資源。
另外,第二設(shè)定時間長度大于第一設(shè)定時間長度,第二平均流量值可以看作是一般粒度的平均流量值,通過該第二平均流量值和第二設(shè)定時間長度確定的第二安全區(qū)容量是大于第一安全區(qū)容量的。安全區(qū)容量的大小是從大到小逐步確定的,只有小于第二安全區(qū)容量了,才確定第一安全區(qū)容量,并判斷是否進行喚醒操作。而通過該一般粒度的平均流量值可以有效的過濾流量的波動,因此通過該平均流量值,計算出的安全區(qū)容量也是相對來說比較準(zhǔn)確的。但是通過該一般粒度的平均流量值不能抵御流量突變引起的硬盤空間不夠的問題,只能在剩余容量還不算緊張時進行判斷。
隨著數(shù)據(jù)的寫入,硬盤剩余容量越來越小,這時在使用一般粒度的平均流量值確定的第二安全區(qū)容量就不合適,因為此時任何流量的波動都能回引起剩余容量被消耗殆盡,如果在此時不能及時喚醒下一個硬盤,將會導(dǎo)致數(shù)據(jù)丟失,因此在本發(fā)明實施例中當(dāng)剩余容量小于第二安全區(qū)容量時,確定第一安全區(qū)容量,該第一安全區(qū)容量是通過細粒度的平均流量值,或者說是瞬時流量計算出來的,因此其可以準(zhǔn)確的體現(xiàn)當(dāng)前的流量變化,使進行的是否喚醒硬盤的判斷操作更加準(zhǔn)確。
圖2為本發(fā)明實施例提供的一種硬盤的喚醒過程示意圖,該過程包括以下步驟:
S201:電子設(shè)備根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第二設(shè)定時間長度的第二平均流量值,及所述第二設(shè)定時間長度,確定所述硬盤的第二安全區(qū)容量,其中所述第二設(shè)定時間長度小于所述第三設(shè)定時間長度。
S202:電子設(shè)備判斷所述硬盤當(dāng)前的第二剩余容量是否小于第二安全區(qū)容量,如果是,則進行步驟S203,如果否,則進行步驟S201。
S203:電子設(shè)備根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量,其中第一設(shè)定時間長度小于第二設(shè)定時間長度。
S204:電子設(shè)備判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量,如果是,則進行步驟S205,如果否,則進行步驟S203。
S205:電子設(shè)備在休眠的硬盤中選擇一個喚醒。
在本發(fā)明實施例中為了進一步減少資源的浪費,在上述實施例的基礎(chǔ)上,在本發(fā)明實施例中,所述確定所述硬盤的第一安全區(qū)容量之前,所述方法包括:
A、根據(jù)預(yù)先保存的至少兩個第三設(shè)定時間長度,確定所述至少兩個第三設(shè)定時間長度中的時間長度最長的目標(biāo)第三設(shè)定時間長度,其中所述至少兩個第三設(shè)定時間長度的時間長度不等,但都大于所述第一設(shè)定時間長度;
B、根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在所述目標(biāo)第三設(shè)定時間長度的第三平均流量值,及所述目標(biāo)第三設(shè)定時間長度,確定所述硬盤的第三安全區(qū)容量;
C、判斷所述硬盤當(dāng)前的第三剩余容量是否小于所述第三安全區(qū)容量;
D、如果是,在所述至少兩個第三設(shè)定時間長度中刪除所述目標(biāo)第三設(shè)定時間長度,判斷剩余的第三設(shè)定時間長度中是否存在較所述目標(biāo)第三設(shè)定時間長度的時間長度短的第四設(shè)定時間長度,如果是,將所述第四設(shè)定時間長度作為目標(biāo)第三設(shè)定時間長度,返回B,如果否,進行后續(xù)確定所述硬盤的第一安全區(qū)容量的步驟。
在電子設(shè)備中預(yù)先保存有至少兩個第三設(shè)定時間長度,其中所述至少兩個第三設(shè)定時間的長度不等,且都大于所述第一設(shè)定時間,例如:第一設(shè)定時間為5秒,預(yù)先保存的兩個第三設(shè)定時間長度分別為3分鐘和1分鐘。
具體的,電子設(shè)備根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在所述目標(biāo)第三設(shè)定時間長度的第三平均流量值,及所述目標(biāo)第三設(shè)定時間長度,確定所述硬盤的第三安全區(qū)容量,判斷所述硬盤當(dāng)前的第三剩余容量是否小于所述第三安全區(qū)容量;如果是,則說明所述硬盤的剩余可用容量小于所述硬盤的第三安全區(qū)容量,在所述至少兩個第三設(shè)定時間長度中刪除所述目標(biāo)第三設(shè)定時間長度,判斷剩余的第三設(shè)定時間長度中是否存在較所述目標(biāo)第三設(shè)定時間長度的時間長度短的第四設(shè)定時間長度,如果是,將所述第四設(shè)定時間長度作為目標(biāo)第三設(shè)定時間長度,返回確定所述硬盤的第三安全區(qū)容量的步驟,如果否,進行后續(xù)確定所述硬盤的第一安全區(qū)容量的步驟。例如:電子設(shè)備中預(yù)先保存的兩個第三設(shè)定時間長度分別為3分鐘和1分鐘,確定時間長度最長的3分鐘為目標(biāo)第三設(shè)定時間長度,電子設(shè)備獲取當(dāng)前數(shù)據(jù)寫入的3分鐘的平均流量值為300M,將300M的磁盤容量確定為所述磁盤的第三安全區(qū)容量,并根據(jù)電子設(shè)備獲取當(dāng)前數(shù)據(jù)寫入的3分鐘的平均流量值對所述第三安全區(qū)容量進行更新,如果所述磁盤的剩余容量小于所述第三安全區(qū)容量,刪除所述3分鐘,剩余的第三設(shè)定時間長度中存在1分鐘小于3分鐘,將1分鐘作為目標(biāo)第三設(shè)定時間長度,電子設(shè)備獲取當(dāng)前數(shù)據(jù)寫入的1分鐘的平均流量值,并根據(jù)所述當(dāng)前數(shù)據(jù)寫入的1分鐘的平均流量值對所述第三安全區(qū)容量進行更新,如果所述磁盤的剩余容量小于所述第三安全區(qū)容量,刪除所述1分鐘,剩余的第三設(shè)定時間長度中不存在小于1分鐘的第三設(shè)定時間長度,進行后續(xù)確定所述硬盤的第一安全區(qū)容量的步驟。
實施例3:
在本發(fā)明上述實施例的基礎(chǔ)上,所述確定所述硬盤的第一安全區(qū)容量包括:
計算保存的硬盤喚醒時長與設(shè)定的保險時長的和值;
將計算的所述和值與第一平均流量值的積確定為所述硬盤的第一安全區(qū)容量,其中所述保險時長大于1小于10。
具體的,第一安全區(qū)容量=第一平均流量值*(喚醒時長+保險時長)該電子設(shè)備在統(tǒng)計了均流量值之后,需要根據(jù)保存的硬盤喚醒時長及所述第一平均流量值,確定所述硬盤的第一安全區(qū)容量,為了避免因為寫入當(dāng)前硬盤的流量值發(fā)生突變引起的數(shù)據(jù)丟失問題,該電子設(shè)備在確定所述硬盤的第一安全區(qū)容量時,首先設(shè)定一個保險時長,所述保險時長大于1小于10,利用所述保存的硬盤喚醒時長與設(shè)定的保險時長的和值與第一平均流量值的積確定為所述硬盤的第一安全區(qū)容量。
實施例4:
在電子設(shè)備中保存有喚醒時長,該喚醒時長可以是對電子設(shè)備中硬盤的喚醒進行測試獲取到的,具體的確定所述硬盤喚醒時間的過程包括:
當(dāng)接收到查詢請求時,喚醒每個硬盤,并記錄喚醒每個硬盤的時長,根據(jù)喚醒每個硬盤的時長,確定硬盤喚醒時長;或
當(dāng)檢測到硬盤插入事件時,喚醒每個硬盤,并記錄喚醒每個硬盤的時長,根據(jù)喚醒每個硬盤的時長,確定硬盤喚醒時長。
具體的,可以對電子設(shè)備中硬盤做硬盤插入測試,在硬盤插入后電子設(shè)備檢測到硬盤插入事件,根據(jù)該硬盤插入事件發(fā)生的時間及該硬盤被喚醒的時間,確定硬盤的喚醒時長。當(dāng)硬盤在休眠狀態(tài)時,電子設(shè)備接收到查詢請求時,電子設(shè)備將喚醒所有的硬盤,因此根據(jù)接收到查詢請求的時間,及硬盤被喚醒的時間,可以確定每個硬盤的喚醒時長。根據(jù)每個硬盤的喚醒時長,可以將其中的最大值或者平均值保存為硬盤喚醒時長。另外,在進行數(shù)據(jù)寫入時,當(dāng)硬盤的容量還剩一半時,可以采用插入硬盤測試的方式,再進行一次測試,獲取硬盤的喚醒時長。
實施例5:
在上述實施例的基礎(chǔ)上,當(dāng)剛開機時,可能還來不及做流量統(tǒng)計,為了避免此時因為硬盤數(shù)據(jù)寫滿,出現(xiàn)下一個硬盤喚醒不及時而導(dǎo)致的數(shù)據(jù)丟失的問題,在本發(fā)明實施例中,所述根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量之前,所述方法還包括:
當(dāng)檢測到開機操作時,獲取保存的安全區(qū)容量的固定值;
判斷所述硬盤當(dāng)前的剩余容量是否小于所述固定值,如果否,進行后續(xù)步驟,如果是,在休眠的硬盤中選擇一個喚醒。
具體的,為了避免寫入數(shù)據(jù)的丟失問題,硬盤中本身會保存有一個安全區(qū)容量的固定值,當(dāng)該電子設(shè)備檢測到開機操作時,獲取保存的安全區(qū)容量的固定值。其中,該硬盤可能在寫入數(shù)據(jù)之前,其當(dāng)前剩余容量就已經(jīng)小于所述固定值了,因此,該電子設(shè)備在判斷所述硬盤當(dāng)前的剩余容量小于所述固定值時,直接在休眠的硬盤中選擇一個喚醒,如果所述硬盤當(dāng)前的剩余容量大于所述固定值,則進行后續(xù)統(tǒng)計當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值。
具體的,當(dāng)檢測到開機操作時,獲取保存的安全區(qū)容量的固定值,如果所述硬盤當(dāng)前的剩余容量大于所述固定值,則需要根據(jù)設(shè)定時間長度依次判斷安全區(qū)容量,如果當(dāng)前數(shù)據(jù)寫入的硬盤的第一剩余容量小于所述第一安全區(qū)容量,在休眠的硬盤中選擇一個喚醒,例如:在第一設(shè)定時間長度之前還設(shè)定有兩個設(shè)定時間長度,分別為第二設(shè)定時間長度和第三設(shè)定時間長度,其中第一設(shè)定時間長度小于第二設(shè)定時間長度,第二設(shè)定時間長度小于第三設(shè)定時間長度。具體的硬盤喚醒過程如圖3所示,該過程包括以下步驟:
S301:電子設(shè)備檢測到開機操作時,獲取保存的安全區(qū)容量的固定值。
S302:電子設(shè)備判斷所述硬盤當(dāng)前的剩余容量是否小于所述固定值,如果否,則進行步驟S303,如果是,則進行步驟S309。
S303:電子設(shè)備根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第三設(shè)定時間長度的第三平均流量值及所述第三設(shè)定時間長度,確定所述硬盤的第三安全區(qū)容量。
S304:電子設(shè)備判斷所述硬盤當(dāng)前的第三剩余容量是否小于第三安全區(qū)容量,如果是,則進行步驟S305,如果否,則進行步驟S303。
S305:電子設(shè)備根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第二設(shè)定時間長度的第二平均流量值,及所述第二設(shè)定時間長度,確定所述硬盤的第二安全區(qū)容量,其中所述第二設(shè)定時間長度小于所述第三設(shè)定時間長度。
S306:電子設(shè)備判斷所述硬盤當(dāng)前的第二剩余容量是否小于第二安全區(qū)容量,如果是,則進行步驟S307,如果否,則進行步驟S305。
S307:電子設(shè)備根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量,其中第一設(shè)定時間長度小于第二設(shè)定時間長度。
S308:電子設(shè)備判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量,如果是,則進行步驟S309,如果否,則進行步驟S307。
S309:電子設(shè)備在休眠的硬盤中選擇一個喚醒。
圖4為本發(fā)明實施例提供的一種硬盤的喚醒裝置結(jié)構(gòu)示意圖,該裝置包括:
第一確定模塊401,用于根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量;
第一判斷模塊402,用于判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量;
喚醒模塊403,用于當(dāng)?shù)谝慌袛嗄K判斷結(jié)果為是時,在休眠的硬盤中選擇一個喚醒。
所述裝置還包括:
第二確定模塊404,用于根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第二設(shè)定時間長度的第二平均流量值,及所述第二設(shè)定時間長度,確定所述硬盤的第二安全區(qū)容量,其中所述第二設(shè)定時間長度大于所述第一設(shè)定時間長度;
第二判斷模塊405,用于判斷所述硬盤當(dāng)前的第二剩余容量是否小于第二安全區(qū)容量,當(dāng)判斷結(jié)果為是時,觸發(fā)第一確定模塊。
所述裝置還包括:
第三確定模塊406,用于根據(jù)預(yù)先保存的至少兩個第三設(shè)定時間長度,確定所述至少兩個第三設(shè)定時間長度中的時間長度最長的目標(biāo)第三設(shè)定時間長度,其中所述至少兩個第三設(shè)定時間長度的時間長度不等,但都大于所述第一設(shè)定時間長度;
第四確定模塊407,用于根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在所述目標(biāo)第三設(shè)定時間長度的第三平均流量值,及所述目標(biāo)第三設(shè)定時間長度,確定所述硬盤的第三安全區(qū)容量;
第三判斷模塊408,用于判斷所述硬盤當(dāng)前的第三剩余容量是否小于所述第三安全區(qū)容量;當(dāng)判斷結(jié)果為是時,觸發(fā)第四判斷模塊;
第四判斷模塊409,用于在所述至少兩個第三設(shè)定時間長度中刪除所述目標(biāo)第三設(shè)定時間長度,判斷剩余的第三設(shè)定時間長度中是否存在較所述目標(biāo)第三設(shè)定時間長度的時間長度短的第四設(shè)定時間長度,當(dāng)判斷結(jié)果為是時,將所述第四設(shè)定時間長度作為目標(biāo)第三設(shè)定時間長度,觸發(fā)第三確定模塊,當(dāng)判斷結(jié)果為否時,觸發(fā)第一確定模塊。
所述第一確定模塊401,具體用于將保存的硬盤喚醒時長與所述第一平均流量值的積確定為所述硬盤的第一安全區(qū)容量。
所述第一確定模塊401,具體用于確定所述保存的硬盤喚醒時長與設(shè)定的保險時長的和的值;將所述值與第一平均流量值的積確定為所述硬盤的第一安全區(qū)容量,其中所述保險時長大于1小于10。
所述第一確定模塊401,具體用于當(dāng)接收到查詢請求時,喚醒每個硬盤,并記錄喚醒每個硬盤的時長,根據(jù)喚醒每個硬盤的時長,確定硬盤喚醒時長;或,當(dāng)檢測到硬盤插入事件時,喚醒每個硬盤,并記錄喚醒每個硬盤的時長,根據(jù)喚醒每個硬盤的時長,確定硬盤喚醒時長。
所述裝置還包括:
獲取模塊410,用于當(dāng)檢測到開機操作時,獲取保存的安全區(qū)容量的固定值;
第五斷模塊411,用于判斷所述硬盤當(dāng)前的剩余容量是否小于所述固定值,如果否,進行后續(xù)統(tǒng)計當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值;當(dāng)判斷結(jié)果為否時,觸發(fā)所述第一確定模塊;
所述喚醒模塊403,還用于當(dāng)?shù)谖迮袛嗄K判斷結(jié)果為是時,在休眠的硬盤中選擇一個喚醒。
本發(fā)明實施例提供了一種硬盤的喚醒方法及裝置,用以解決現(xiàn)有硬盤喚醒方法導(dǎo)致的功耗大,影響硬盤壽命,影響電子設(shè)備整體的運行及硬盤資源浪費的問題,該方法包括:根據(jù)獲取的當(dāng)前數(shù)據(jù)寫入的硬盤在第一設(shè)定時間長度內(nèi)的第一平均流量值,及保存的硬盤喚醒時長,確定所述硬盤的第一安全區(qū)容量;判斷所述硬盤當(dāng)前的第一剩余容量是否小于所述第一安全區(qū)容量;如果是,在休眠的硬盤中選擇一個喚醒。由于本發(fā)明實施例中根據(jù)設(shè)定時間長度內(nèi)統(tǒng)計的平均流量值確定安全區(qū)容量,當(dāng)前的剩余容量小于當(dāng)前的安全區(qū)容量時選擇一個硬盤喚醒,因此可以根據(jù)當(dāng)前的數(shù)據(jù)寫入情況,有效的預(yù)測安全區(qū)容量,從而可以準(zhǔn)確的把握硬盤喚醒的時機,提高了硬盤喚醒的精確性,合理利用了硬盤的資源,避免了寫入數(shù)據(jù)的丟失,并且有效的提高了硬盤的壽命,而且因為無需采用內(nèi)存,也不會影響電子設(shè)備整體的運行。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。