一種磁盤節(jié)能的設(shè)置方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及磁盤陣列存儲節(jié)能領(lǐng)域,更具體地說,涉及一種磁盤節(jié)能的設(shè)置方法及裝置。
【背景技術(shù)】
[0002]隨著信息技術(shù)的飛速發(fā)展,數(shù)據(jù)存儲的需求也在快速增加。磁盤陣列在數(shù)據(jù)存儲方面有很高的性能和可靠性,但是磁盤陣列也帶來非常大的能耗。磁盤是陣列中最主要能耗之一,針對磁盤的節(jié)能對整個磁盤陣列節(jié)能意義重大。目前對于磁盤的節(jié)能,主要是在磁盤沒有讀寫請求時,將磁盤處于休眠狀態(tài)。當(dāng)有讀寫請求時,將磁盤喚醒。但實際應(yīng)用中,即使在業(yè)務(wù)壓力很小時,長時間無讀寫請求的場景也很少,磁盤也無法處于休眠狀態(tài),即便磁盤進入休眠狀態(tài)也會很快被喚醒,節(jié)能效果有限。
[0003]因此,如何增強磁盤的節(jié)能效果是現(xiàn)在需要解決的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種磁盤節(jié)能的設(shè)置方法及裝置,以增強磁盤的節(jié)能效果Ο
[0005]為實現(xiàn)上述目的,本發(fā)明實施例提供了如下技術(shù)方案:
[0006]一種磁盤節(jié)能的設(shè)置方法,包括:
[0007]分析每個冗余磁盤組中的每個磁盤在不同時間段的業(yè)務(wù)壓力值,并設(shè)定業(yè)務(wù)壓力值小于預(yù)設(shè)閾值的時間段為磁盤的空閑狀態(tài);
[0008]按照每個磁盤在空閑狀態(tài)的時間段,設(shè)定磁盤休眠時間表;
[0009]按照所述磁盤休眠時間表中的每個磁盤處于空閑狀態(tài)的時間段,控制相應(yīng)的磁盤進行休眠。
[0010]優(yōu)選的,還包括:
[0011]接收向第一冗余磁盤組寫入數(shù)據(jù)的寫指令;
[0012]判斷所述第一冗余磁盤組是否存在休眠的磁盤;若是,則將待寫入的數(shù)據(jù)保存至緩存區(qū)。
[0013]優(yōu)選的,所述將待寫入的數(shù)據(jù)保存至緩存區(qū)之前,還包括:
[0014]判斷所述待寫入的數(shù)據(jù)是否大于所述緩存區(qū)的水位閾值;若是,則喚醒在休眠中的緩存數(shù)據(jù)量最大的磁盤;若否,則繼續(xù)執(zhí)行所述將待寫入的數(shù)據(jù)保存至緩存區(qū)的步驟。
[0015]優(yōu)選的,還包括:
[0016]接收從第二冗余磁盤組讀取數(shù)據(jù)的讀指令;
[0017]判斷所述緩存區(qū)中是否存在待讀取的數(shù)據(jù);若是,則從所述緩存區(qū)中讀?。蝗舴?,則通過所述第二冗余磁盤組降級讀取。
[0018]優(yōu)選的,所述將待寫入的數(shù)據(jù)保存至緩存區(qū)之后,包括:
[0019]若所述第一冗余磁盤組處于非空閑狀態(tài)的時間段,則喚醒所述第一冗余磁盤組中休眠的磁盤,并將所述緩存區(qū)中的數(shù)據(jù)寫入所述第一冗余磁盤組。
[0020]一種磁盤節(jié)能的設(shè)置裝置,包括:
[0021]業(yè)務(wù)壓力統(tǒng)計模塊,用于分析每個冗余磁盤組中的每個磁盤在不同時間段的業(yè)務(wù)壓力值,并設(shè)定業(yè)務(wù)壓力值小于預(yù)設(shè)閾值的時間段為磁盤的空閑狀態(tài);按照每個磁盤在空閑狀態(tài)的時間段,設(shè)定磁盤休眠時間表;
[0022]磁盤休眠模塊,用于按照所述磁盤休眠時間表中的每個磁盤處于空閑狀態(tài)的時間段,控制相應(yīng)的磁盤進行休眠。
[0023]優(yōu)選的,還包括:
[0024]讀寫處理模塊,所述讀寫處理模塊包括:
[0025]第一接收單元,用于接收向第一冗余磁盤組寫入數(shù)據(jù)的寫指令;
[0026]第一判斷單元,用于判斷所述第一冗余磁盤組是否存在休眠的磁盤;若是,則觸發(fā)磁盤寫入單元;
[0027]所述磁盤寫入單元,用于將待寫入的數(shù)據(jù)保存至緩存區(qū)。
[0028]優(yōu)選的,所述讀寫處理模塊還包括:
[0029]第二判斷單元,用于判斷所述待寫入的數(shù)據(jù)是否大于所述緩存區(qū)的水位閾值;若是,則觸發(fā)磁盤喚醒模塊;若否,則觸發(fā)所述磁盤寫入單元將待寫入的數(shù)據(jù)保存至緩存區(qū);
[0030]所述磁盤喚醒模塊,用于喚醒在休眠中的緩存數(shù)據(jù)量最大的磁盤。
[0031]優(yōu)選的,所述讀寫處理模塊還包括:
[0032]第二接收單元,用于接收從第二冗余磁盤組讀取數(shù)據(jù)的讀指令;
[0033]第三判斷單元,用于判斷所述緩存區(qū)中是否存在待讀取的數(shù)據(jù);若是,則觸發(fā)第一磁盤讀取單元;若否,則觸發(fā)第二磁盤讀取單元;
[0034]所述第一磁盤讀取單元,用于從所述緩存區(qū)中讀取相應(yīng)的數(shù)據(jù);
[0035]所述第二磁盤讀取單元,用于通過所述第二冗余磁盤組降級讀取相應(yīng)的數(shù)據(jù)。
[0036]優(yōu)選的,所述磁盤喚醒模塊具體用于:
[0037]若所述第一冗余磁盤組處于非空閑狀態(tài)的時間段,則喚醒所述第一冗余磁盤組中休眠的磁盤,并將所述緩存區(qū)中的數(shù)據(jù)寫入所述第一冗余磁盤組。
[0038]通過以上方案可知,本發(fā)明實施例提供的一種磁盤節(jié)能的設(shè)置方法及裝置,包括:分析每個冗余磁盤組中的每個磁盤在不同時間段的業(yè)務(wù)壓力值,并設(shè)定業(yè)務(wù)壓力值小于預(yù)設(shè)閾值的時間段為磁盤的空閑狀態(tài);按照每個磁盤在空閑狀態(tài)的時間段,設(shè)定磁盤休眠時間表;按照所述磁盤休眠時間表中的每個磁盤處于空閑狀態(tài)的時間段,控制相應(yīng)的磁盤進行休眠,可見,本實施例提供的這種節(jié)能設(shè)置方式,能夠在業(yè)務(wù)壓力較小的時間段內(nèi),將磁盤陣列中的多個磁盤進行休眠,達到節(jié)能的效果。
【附圖說明】
[0039]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0040]圖1為本發(fā)明實施例公開的一種磁盤節(jié)能的設(shè)置方法流程示意圖;
[0041]圖2為本發(fā)明實施例公開的另一種磁盤節(jié)能的設(shè)置方法流程示意圖;
[0042]圖3為本發(fā)明實施例公開的另一種磁盤節(jié)能的設(shè)置方法流程示意圖;
[0043]圖4為本發(fā)明實施例公開的磁盤休眠狀態(tài)下的讀寫請求示意圖;
[0044]圖5為本發(fā)明實施例公開的一種磁盤節(jié)能的設(shè)置裝置結(jié)構(gòu)示意圖;
[0045]圖6為本發(fā)明實施例公開的另一種磁盤節(jié)能的設(shè)置裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0046]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0047]本發(fā)明實施例公開了一種磁盤節(jié)能的設(shè)置方法及裝置,以增強磁盤的節(jié)能效果。
[0048]參見圖1,本發(fā)明實施例提供的一種磁盤節(jié)能的設(shè)置方法,包括:
[0049]S101、分析每個冗余磁盤組中的每個磁盤在不同時間段的業(yè)務(wù)壓力值,并設(shè)定業(yè)務(wù)壓力值小于預(yù)設(shè)閾值的時間段為磁盤的空閑狀態(tài);
[0050]具體的,在磁盤陣列中經(jīng)常使用RAID技術(shù)實現(xiàn)冗余設(shè)計,因此在本實施例中結(jié)合RAID的冗余性對節(jié)能設(shè)置方法進行描述。但需要說明的是,本實施例并不僅限于使用RAID技術(shù)管理磁盤的冗余性的場景,其他冗余技術(shù)也可適用。
[0051]具體的,在本實施例中,分析每個冗余磁盤組中的每個磁盤在不同時間段的業(yè)務(wù)壓力值,是通過分析冗余磁盤組的10空閑時間段,即對發(fā)往每個冗余磁盤組的10進行計數(shù),統(tǒng)計出單位時間內(nèi),對于每個冗余磁盤組的10總數(shù),找出10總數(shù)小于設(shè)定閾值的時間段,以此作為磁盤可休眠的時間段,即單位時間內(nèi)10總數(shù)小于設(shè)定閾值的時間段為磁盤的空閑狀態(tài)。
[0052]S102、按照每個磁盤在空閑狀態(tài)的時間段,設(shè)定磁盤休眠時間表;
[0053]具體的,在本實施例中,對不同時間段的業(yè)務(wù)讀寫壓力情況進行統(tǒng)計分析,得出每個時間周期內(nèi)的業(yè)務(wù)壓力情況,因此,由于每個磁盤組的空閑時間段不同,可以根據(jù)此特性設(shè)定一個休眠時間表。
[0054]S103、按照所述磁盤休眠時間表中的每個磁盤處于空閑狀態(tài)的時間段,控制相應(yīng)的磁盤進行休眠。
[0055]具體的,在S102中已經(jīng)設(shè)定了一個休眠時間表,即在業(yè)務(wù)壓力低于設(shè)定閾值的時間周期內(nèi),認為當(dāng)前處于空閑狀態(tài),則可以按照這個時間,選出可以進行休眠磁盤,并在空閑狀態(tài)的時間段對磁盤進行磁盤休眠。
[0056]具體的,由于空閑狀態(tài)即為10空閑時間段,因此本實施例首先根據(jù)冗余磁盤級別和冗余磁盤組狀態(tài),找到存在冗余的冗余磁盤組,即RAID組。分析出該RAID組的空閑10時間段,即在此空閑時間段,該RAID組可進入休眠狀態(tài)。并且可以不斷的根據(jù)磁盤休眠時間表,將存在空閑狀態(tài)的RAID組中的磁盤進行休眠.
[0057]參見圖2,本發(fā)明實施例提供的另一種磁盤節(jié)能的設(shè)置方法,包括:
[0058]S201、分析每個冗余磁盤組中的每個磁盤在不同時間段的業(yè)務(wù)壓力值,并設(shè)定業(yè)務(wù)壓力值小于預(yù)設(shè)閾值的時間段為磁盤的空閑狀態(tài);
[0059]S202、按照每個磁盤在空閑狀態(tài)的時間段,設(shè)定磁盤休眠時間表;
[0060]S203、按照所述磁盤休眠時間表中的每個磁盤處于空閑狀態(tài)的時間段,控制相應(yīng)的磁盤進行休眠;
[0061]S204、接收向第一冗余磁盤組寫入數(shù)據(jù)的寫指令;
[0062]S205、判斷所述第一冗余磁盤組是否存在休眠的磁盤;若是,則將待寫入的數(shù)據(jù)保存至緩存區(qū)。
[0063]優(yōu)選的,所述將待寫入的數(shù)據(jù)保存至緩存區(qū)之前,還包括:
[0064]判斷所述待寫入的數(shù)據(jù)是否大于所述緩存區(qū)的水位閾值;若是,則喚醒在休眠中的緩存數(shù)據(jù)量最大的磁盤;若否,則繼續(xù)執(zhí)行所述將待寫入的數(shù)據(jù)保存至緩存區(qū)的步驟。
[0065]具體的,冗余磁盤組中存在休眠的磁盤時,當(dāng)接收到對這個磁盤的寫請求時,會首先判斷寫入的數(shù)據(jù)是否大于緩存區(qū)的水平閾值,當(dāng)大于時,則表示可能存在緩存空間不足的風(fēng)險,此時通知喚醒緩存數(shù)據(jù)量最大的磁盤,將數(shù)據(jù)寫入;當(dāng)寫入的數(shù)據(jù)是小于緩存區(qū)的水平閾值時,則將數(shù)據(jù)寫入緩存區(qū)。等到該冗余磁盤組喚醒后,將緩存區(qū)中的數(shù)