本發(fā)明屬于磁盤保護(hù)技術(shù)領(lǐng)域,具體涉及一種基于異常檢測的磁盤防震保護(hù)方法及裝置。
背景技術(shù):
磁盤屬于精密存儲設(shè)備,磁盤內(nèi)部磁頭距離盤片表面的距離大約只有幾微米。一旦遇到較大的震動,就容易造成磁頭與盤面的碰撞,尤其是在磁盤進(jìn)行讀寫工作時,常常會導(dǎo)致盤片數(shù)據(jù)存儲區(qū)被劃傷而損壞,使磁盤內(nèi)所存儲的重要數(shù)據(jù)丟失。
隨著大數(shù)據(jù)時代的到來,大型存儲設(shè)備(如磁盤陣列)被廣泛使用在各個領(lǐng)域,車載、艦載、機(jī)載等類型存儲陣列日益增多。由于此類設(shè)備常常要隨機(jī)移動,并具有小型存儲設(shè)備所不具有的盤多、類型雜等特點,因此,設(shè)計一種結(jié)合存儲陣列特點來防止磁盤因震動而損壞的方法已成為存儲設(shè)備廠商的當(dāng)務(wù)之急。
當(dāng)前現(xiàn)有的磁盤防震方法和設(shè)備多種多樣,既有通過傳統(tǒng)的液油、橡膠、彈簧等機(jī)械裝置進(jìn)行減震的方法,又有通過加速度傳感器來檢測車輛震動幅度并操縱磁頭機(jī)械臂來避震的方法。但這些方法存在以下問題:
1、傳統(tǒng)機(jī)械方式的減震方法粗糙簡單,缺乏自適應(yīng)和智能性,很難定制減震策略,僅可作為輔助手段。
2、現(xiàn)有基于加速度的方法一般針對小型的存儲設(shè)備,沒有結(jié)合大型存儲陣列的特點進(jìn)行抗震方法的設(shè)計。
3、現(xiàn)有基于加速度的方法檢測到震動就停止數(shù)據(jù)讀寫,在震動是常態(tài)的場景下,一方面大大影響了I/O性能,另一方面很可能錯失重要數(shù)據(jù)。
4、現(xiàn)有基于加速度的方法的三軸加速度的閾值是人為設(shè)定的,沒有參考存儲設(shè)備過往的加速度值分布趨勢,并且只能孤立地考慮各個軸的加速度值,無法綜合考慮三軸之間的相關(guān)性、相互作用關(guān)系等,設(shè)計粗糙,不夠合理。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種基于異常檢測的磁盤防震保護(hù)方法及裝置,克服現(xiàn)有機(jī)械方式減震方法缺乏自適應(yīng)和智能性的問題,并避免現(xiàn)有基于加速度的方法所存在的人為指定閾值,檢測到震動就停止數(shù)據(jù)讀寫所造成的影響讀寫性能、錯失重要數(shù)據(jù)的問題。
為了實現(xiàn)上述目的,本發(fā)明技術(shù)方案如下:
一種基于異常檢測的磁盤防震保護(hù)方法,應(yīng)用于存儲設(shè)備,所述基于異常檢測的磁盤防震保護(hù)方法,包括:
步驟S1、通過安裝在存儲設(shè)備上的加速度傳感器,采集三軸加速度值,與加速度閾值進(jìn)行比較,當(dāng)采集的三軸加速度值大于加速度閾值時,進(jìn)入下一步,否則將震動狀態(tài)寄存器復(fù)位為a,更新震動狀態(tài)判斷高斯模型參數(shù);
步驟S2、根據(jù)采集的三軸加速度值與震動狀態(tài)判斷高斯模型計算高斯概率并與預(yù)設(shè)的震動閾值進(jìn)行比較,當(dāng)計算得到的高斯概率小于預(yù)設(shè)的震動閾值時,判斷震動狀態(tài)異常,將震動狀態(tài)寄存器置為b,更新震動狀態(tài)判斷高斯模型參數(shù),否則將震動狀態(tài)寄存器復(fù)位為a,然后更新震動狀態(tài)判斷高斯模型參數(shù);
步驟S3、當(dāng)有數(shù)據(jù)讀寫到來時,讀取震動狀態(tài)寄存器的值,在震動狀態(tài)寄存器的值為a時,正常執(zhí)行數(shù)據(jù)讀寫,在震動狀態(tài)寄存器的值為b時,通過緩存來執(zhí)行數(shù)據(jù)讀寫。
進(jìn)一步地,所述步驟2中,當(dāng)計算得到的高斯概率不小于預(yù)設(shè)的震動閾值時,還包括步驟:
根據(jù)采集的三軸加速度值更新加速度閾值。從而可以實時更新加速度閾值,提高初步判斷的準(zhǔn)確性。
進(jìn)一步地,所述通過緩存來執(zhí)行數(shù)據(jù)讀寫,包括:
進(jìn)一步判斷所述數(shù)據(jù)讀寫是讀還是寫;
當(dāng)所述數(shù)據(jù)讀寫是讀時,查詢請求的數(shù)據(jù)是否在緩存中,如果命中緩存,則完成讀的操作,并返回獲取的數(shù)據(jù),否則阻塞讀的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,與磁盤間進(jìn)行讀的操作;
當(dāng)所述數(shù)據(jù)讀寫是寫時,則嘗試將數(shù)據(jù)直接寫入緩存,如果成功提交,則直接返回,完成整個寫的操作,如果緩存已滿,則阻塞寫的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,將數(shù)據(jù)寫入磁盤。
進(jìn)一步地,所述緩存包括至少兩塊固態(tài)硬盤,分別作為讀的緩存盤和寫的緩存盤。
本發(fā)明還提出了一種基于異常檢測的磁盤防震保護(hù)裝置,應(yīng)用于存儲設(shè)備,所述基于異常檢測的磁盤防震保護(hù)裝置包括初步判斷模塊、異常判斷模塊和數(shù)據(jù)處理模塊,其中:
所述初步判斷模塊,用于通過安裝在存儲設(shè)備上的加速度傳感器,采集三軸加速度值,與加速度閾值進(jìn)行比較,當(dāng)采集的三軸加速度值大于加速度閾值時,進(jìn)入到異常判斷模塊進(jìn)行下一步判斷,否則將震動狀態(tài)寄存器復(fù)位為a,更新震動狀態(tài)判斷高斯模型參數(shù);
所述異常判斷模塊,用于根據(jù)采集的三軸加速度值與震動狀態(tài)判斷高斯模型計算高斯概率并與預(yù)設(shè)的震動閾值進(jìn)行比較,當(dāng)計算得到的高斯概率小于預(yù)設(shè)的震動閾值時,判斷震動狀態(tài)異常,將震動狀態(tài)寄存器置為b,更新震動狀態(tài)判斷高斯模型參數(shù),否則將震動狀態(tài)寄存器復(fù)位為a,然后更新震動狀態(tài)判斷高斯模型參數(shù);
所述數(shù)據(jù)處理模塊,用于當(dāng)有數(shù)據(jù)讀寫到來時,讀取震動狀態(tài)寄存器的值,在震動狀態(tài)寄存器的值為a時,正常執(zhí)行數(shù)據(jù)讀寫,在震動狀態(tài)寄存器的值為b時,通過緩存來執(zhí)行數(shù)據(jù)讀寫。
進(jìn)一步地,所述異常判斷模塊,還用于當(dāng)計算得到的高斯概率不小于預(yù)設(shè)的震動閾值時,根據(jù)采集的三軸加速度值更新加速度閾值。
進(jìn)一步地,所述數(shù)據(jù)處理模塊在通過緩存來執(zhí)行數(shù)據(jù)讀寫時,執(zhí)行如下操作:
進(jìn)一步判斷所述數(shù)據(jù)讀寫是讀還是寫;
當(dāng)所述數(shù)據(jù)讀寫是讀時,查詢請求的數(shù)據(jù)是否在緩存中,如果命中緩存,則完成讀的操作,并返回獲取的數(shù)據(jù),否則阻塞讀的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,與磁盤間進(jìn)行讀的操作;
當(dāng)所述數(shù)據(jù)讀寫是寫時,則嘗試將數(shù)據(jù)直接寫入緩存,如果成功提交,則直接返回,完成整個寫的操作,如果緩存已滿,則阻塞寫的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,將數(shù)據(jù)寫入磁盤。
進(jìn)一步地,所述緩存包括至少兩塊固態(tài)硬盤,分別作為讀的緩存盤和寫的緩存盤。
本發(fā)明提出的一種基于異常檢測的磁盤防震保護(hù)方法及裝置,在異常檢測的基礎(chǔ)上利用SSD固態(tài)硬盤來作二級緩存以進(jìn)行磁盤保護(hù),該方法觀測三軸加速度傳感器的當(dāng)前數(shù)值,用基于高斯模型的異常檢測機(jī)制來判斷存儲陣列當(dāng)前的環(huán)境震動狀態(tài),維護(hù)震動狀態(tài)寄存器的值,并在有數(shù)據(jù)讀寫到來時,讀取震動狀態(tài)寄存器的值,根據(jù)該值通過緩存來執(zhí)行數(shù)據(jù)讀寫。當(dāng)出現(xiàn)異常時,利用讀寫SSD來緩存讀寫I/O數(shù)據(jù),操縱硬盤磁頭擺臂停泊在非數(shù)據(jù)區(qū),從而達(dá)到保護(hù)硬盤的目的,提高了讀寫性能。
附圖說明
圖1為本發(fā)明一種基于異常檢測的磁盤防震保護(hù)方法的流程圖;
圖2為本發(fā)明進(jìn)行震動狀態(tài)異常判斷的流程圖;
圖3為本發(fā)明一種基于異常檢測的磁盤防震保護(hù)裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明技術(shù)方案做進(jìn)一步詳細(xì)說明,以下實施例不構(gòu)成對本發(fā)明的限定。
本實施例在存儲陣列(以下稱為存儲設(shè)備)中采用混合存儲架構(gòu),在此架構(gòu)中磁盤池由少量SSD固態(tài)硬盤和多數(shù)HDD磁盤組成,在實現(xiàn)閃存的高性能的同時能夠享受磁盤的低成本優(yōu)勢,具有大容量,低成本,高性能的特點。使用其中的SSD固態(tài)硬盤來作為數(shù)據(jù)讀寫(I/O)的緩存,采用HDD磁盤來作為RAID后備池。SSD具有速度快、抗震性好(相比于機(jī)械硬盤)的特點,又具有容量大、價格低(相比于內(nèi)存)的優(yōu)勢。
如圖1所示,本技術(shù)方案一種基于異常檢測的磁盤防震保護(hù)方法,包括:
步驟S1、通過安裝在存儲設(shè)備上的加速度傳感器,采集三軸加速度值,與加速度閾值進(jìn)行比較,當(dāng)采集的三軸加速度值大于加速度閾值時,進(jìn)入下一步,否則將震動狀態(tài)寄存器復(fù)位為a,更新震動狀態(tài)判斷高斯模型參數(shù)。
步驟S2、根據(jù)采集的三軸加速度值與震動狀態(tài)判斷高斯模型計算高斯概率并與預(yù)設(shè)的震動閾值進(jìn)行比較,當(dāng)計算得到的高斯概率小于預(yù)設(shè)的震動閾值時,判斷震動狀態(tài)異常,將震動狀態(tài)寄存器置為b,更新震動狀態(tài)判斷高斯模型參數(shù),否則更新加速度閾值,并將震動狀態(tài)寄存器復(fù)位為a,然后更新震動狀態(tài)判斷高斯模型參數(shù)。
本實施例存儲設(shè)備主板上安裝加速度傳感器,也可以安裝在存儲設(shè)備的其他部件上,如外殼上。其內(nèi)部固件上的程序讀取傳感器信號獲取當(dāng)前設(shè)備的加速度值,并收集得到三軸加速度值A(chǔ)rr={(Xt,Yt,Zt)|t∈(0,+∞)},求取震動狀態(tài)判斷模型參數(shù)均值m和方差△2,得到一個用于異常檢測的三維高斯概率模型。
如圖2所示,在初始時先啟發(fā)式地預(yù)設(shè)一個較低的加速度閾值arr(如取靜止場景下的多次測試的平均值,或根據(jù)經(jīng)驗設(shè)定)(F201),獲取當(dāng)前三軸加速度值(F202),判斷當(dāng)前值是否大于閾值(F203),當(dāng)獲取的各軸的加速度值低于預(yù)設(shè)的加速度閾值arr時,則判斷當(dāng)前處于非震動狀態(tài)。當(dāng)處于非震動狀態(tài)時,查詢對應(yīng)的震動狀態(tài)寄存器,若震動狀態(tài)寄存器的值為1,則將其復(fù)位為0,反之,不作處理(F204),然后更新震動狀態(tài)判斷高斯模型參數(shù)(F208)。
當(dāng)獲取的加速度值高于預(yù)設(shè)的加速度閾值時,進(jìn)一步檢測震動狀態(tài)是否異常。將采集的三軸加速度值投入異常檢測算法進(jìn)行檢測,本實施例異常檢測算法是根據(jù)采集的三軸加速度值與震動狀態(tài)判斷高斯模型計算高斯概率并與預(yù)設(shè)的震動閾值進(jìn)行比較(F205),假設(shè)震動狀態(tài)判斷高斯模型用公式P(xt,yt,zt;m,Δ2)表示,預(yù)設(shè)的震動閾值為ε,則當(dāng)滿足如下公式:
P(xt,yt,zt;m,Δ2)<ε
即根據(jù)震動狀態(tài)判斷高斯模型計算得到的高斯概率小于預(yù)設(shè)的震動閾值ε時,判斷為震動狀態(tài)異常,需要進(jìn)一步來采取保護(hù)策略。當(dāng)計算得到的高斯概率大于等于預(yù)設(shè)的震動閾值ε時,判斷為是正常的震動狀態(tài)(F206),在正常的震動狀態(tài)下,不會影響數(shù)據(jù)的讀寫,因此不需要采取保護(hù)策略。
當(dāng)計算得到的高斯概率小于預(yù)設(shè)的震動閾值時,判斷震動狀態(tài)異常,將震動狀態(tài)寄存器置為1(F207),更新震動狀態(tài)判斷高斯模型參數(shù)(F208)。
容易理解的是,本實施例震動狀態(tài)判斷高斯模型P(xt,yt,zt;m,Δ2)通過歷史數(shù)據(jù)訓(xùn)練得到,并且采用每次采集的三軸加速度值及判斷結(jié)果對該模型的參數(shù)進(jìn)行更新,使得該模型能夠?qū)W習(xí)到更多的數(shù)據(jù),模型更加準(zhǔn)確。
在步驟F208之后,重新再讀取加速度傳感器的數(shù)據(jù),繼續(xù)進(jìn)行震動檢測。
本實施例對于加速度閾值,還通過迭代求取均值的方法來更新加速度閾值以適應(yīng)新的加速度策略(F209)。當(dāng)計算得到的高斯概率大于或等于預(yù)設(shè)的震動閾值時,判斷震動狀態(tài)處于正常范圍內(nèi),不影響讀寫操作。此時當(dāng)前加速度值大于加速度閾值,將當(dāng)前加速度值放入求取加速度閾值的隊列中,對該隊列中的加速度值求取均值,來作為下一次判斷的加速度閾值(F209)。通過更新加速度閾值,可以過濾掉一些不影響讀寫的震動,從而更加準(zhǔn)確地判斷出震動狀態(tài)異常的情況。本實施例通過迭代求取均值的方法來更新加速度閾值,還可以通過其他迭代算法來更新加速度閾值,例如將前一個加速度閾值與當(dāng)前的加速度值通過加權(quán)來計算出一個新的加速度閾值,本發(fā)明不限于采用何種方法來更新加速度閾值。
需要說明的是,本實施例中震動狀態(tài)寄存器可以置為a或b,例如a為0,b為1,也可以反過來,用來表示當(dāng)前存儲設(shè)備的震動狀態(tài)。
本實施例在判斷當(dāng)前存儲設(shè)備屬于震動狀態(tài)異常時,則可以進(jìn)一步采用保護(hù)策略,因此本實施例一種基于異常檢測的磁盤防震保護(hù)方法,還包括如下步驟:
步驟S3、當(dāng)有數(shù)據(jù)讀寫到來時,讀取震動狀態(tài)寄存器的值,在震動狀態(tài)寄存器的值為a時,正常執(zhí)行數(shù)據(jù)讀寫,在震動狀態(tài)寄存器的值為b時,通過緩存來執(zhí)行數(shù)據(jù)讀寫。
即當(dāng)有數(shù)據(jù)讀寫到來時,讀取震動狀態(tài)寄存器的值,在震動狀態(tài)寄存器的值為0時,表示當(dāng)前存儲設(shè)備處在正常狀態(tài),可以正常執(zhí)行數(shù)據(jù)讀寫,并將緩存盤中的寫I/O數(shù)據(jù)及時提交磁盤;在震動狀態(tài)寄存器的值為1時,表示當(dāng)前存儲設(shè)備震動狀態(tài)異常,需要通過緩存來讀寫數(shù)據(jù)。
本實施例通過緩存來執(zhí)行數(shù)據(jù)讀寫,包括:
進(jìn)一步判斷所述數(shù)據(jù)讀寫是讀還是寫;
當(dāng)所述數(shù)據(jù)讀寫是讀時,查詢請求的數(shù)據(jù)是否在緩存中,如果命中緩存,則完成讀的操作,并返回獲取的數(shù)據(jù),否則阻塞讀的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,與磁盤間進(jìn)行讀的操作;
當(dāng)所述數(shù)據(jù)讀寫是寫時,則嘗試將數(shù)據(jù)直接寫入緩存,如果成功提交,則直接返回,完成整個寫的操作,如果緩存已滿,則阻塞寫的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,將數(shù)據(jù)寫入磁盤。
具體地,如果存儲設(shè)備處于異常震動狀態(tài),則將對應(yīng)的震動狀態(tài)寄存器的值置為1,需要通過緩存處理數(shù)據(jù)讀寫(I/O)。本實施例存儲設(shè)備的緩存使用兩塊(及以上)SSD固態(tài)硬盤,一塊作為L2arc讀I/O的緩存盤,一塊作為寫I/O日志盤。本實施例采用HDD磁盤來作RAID后備池,簡稱為磁盤。
當(dāng)有數(shù)據(jù)I/O到來時,先獲取震動狀態(tài)寄存器的值,若當(dāng)前存儲設(shè)備處于正常震動狀態(tài),也即對應(yīng)寄存器的值為0,則正常執(zhí)行I/O流程,并將寫I/O數(shù)據(jù)及時提交磁盤,以空出寫I/O緩存。
若當(dāng)前存儲設(shè)備處于異常震動狀態(tài),也即對應(yīng)寄存器的值為1,則進(jìn)一步判斷其為讀I/O還是寫I/O。
如果是讀I/O,則通過L2arc算法來查詢請求數(shù)據(jù)是否在緩存中,如果命中緩存,則完成L2arc流程,并返回獲取的數(shù)據(jù);反之,則阻塞讀I/O進(jìn)程,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為0后,即存儲設(shè)備震動狀態(tài)恢復(fù)正常后,與磁盤間進(jìn)行讀I/O緩存頁面的置換,從磁盤讀取數(shù)據(jù)。
如果是寫I/O,則嘗試將I/O直接寫入日志盤,如果成功提交,則直接返回,完成整個I/O流程。如果日志盤SSD已滿,則阻塞寫I/O進(jìn)程,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為0后,即存儲設(shè)備震動狀態(tài)恢復(fù)正常后,將寫I/O緩存數(shù)據(jù)大量刷入磁盤,以期在正常震動狀態(tài)下將寫I/O緩存及時提交到磁盤,以空出緩存SSD盤備用。
需要說明的是,上述通過緩存來執(zhí)行數(shù)據(jù)讀寫為本發(fā)明優(yōu)選的數(shù)據(jù)讀寫方法。在一般情況下,還可以在讀的時候,直接阻塞讀的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,與磁盤間進(jìn)行讀的操作;而在寫的時候,則嘗試將數(shù)據(jù)直接寫入緩存,如果成功提交,則直接返回,完成整個寫的操作,如果緩存已滿,則阻塞寫的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,將數(shù)據(jù)寫入磁盤。
本實施例采用先簡單判定后異常檢測的方法來檢測當(dāng)前環(huán)境的震動狀態(tài),分階段、遞進(jìn)的進(jìn)行異常狀態(tài)的檢測。在系統(tǒng)初始化階段,訓(xùn)練數(shù)據(jù)量不足的情況下,先用啟發(fā)式的方法制定一個各軸加速度的閾值arr,然后等數(shù)據(jù)積累到一定程度,訓(xùn)練一個加速度三軸值的多維高斯模型,當(dāng)數(shù)據(jù)超過加速度閾值時,就用高斯異常檢測模型進(jìn)行檢測。如此,一來可以避免過多地誤判當(dāng)前值為異常震動狀態(tài),以影響系統(tǒng)整體性能;二來,僅在數(shù)據(jù)超過加速度閾值時進(jìn)行高斯異常判定,減少了高斯判定的計算次數(shù),提高了性能。此外,高斯模型簡潔緊湊、準(zhǔn)確度高,只需要計算期望和方差兩個參數(shù),對計算資源的占用少,有效地解決了上述問題4。
此外,在讀數(shù)據(jù)時在SSD上采用L2arc算法來緩存讀取的I/O,L2arc類似于CPU的二級緩存,融合最近最少使用策略(LRU)和最近最不常用策略(LFU)設(shè)計了緩存頁面置換算法,并將替換掉的緩存頁面放入后備列表,大大提高了命中率;在寫數(shù)據(jù)時,在SSD上采用基于日志的緩存寫I/O方法,將數(shù)據(jù)以日志的形式寫在SSD中并直接返回,完成整個I/O流程。當(dāng)存儲設(shè)備處于正常狀態(tài)時,讀寫流程如常進(jìn)行,并且將寫I/O及時下磁盤;當(dāng)存儲設(shè)備處于震動狀態(tài)時,讀寫流程只在內(nèi)存和緩存中進(jìn)行,讀I/O不進(jìn)行與磁盤間的頁面置換,寫I/O不將數(shù)據(jù)寫入磁盤。
與上述方法對應(yīng)地,如圖3所示,本實施例還提出了一種基于異常檢測的磁盤防震保護(hù)裝置,應(yīng)用于存儲設(shè)備,例如集成在存儲設(shè)備之中,或是與存儲設(shè)備相連的單獨的設(shè)備。該基于異常檢測的磁盤防震保護(hù)裝置包括初步判斷模塊、異常判斷模塊和數(shù)據(jù)處理模塊,其中:
所述初步判斷模塊,用于通過安裝在存儲設(shè)備上的加速度傳感器,采集三軸加速度值,與加速度閾值進(jìn)行比較,當(dāng)采集的三軸加速度值大于加速度閾值時,進(jìn)入到異常判斷模塊進(jìn)行下一步判斷,否則將震動狀態(tài)寄存器復(fù)位為a,更新震動狀態(tài)判斷高斯模型參數(shù);
所述異常判斷模塊,用于根據(jù)采集的三軸加速度值與震動狀態(tài)判斷高斯模型計算高斯概率并與預(yù)設(shè)的震動閾值進(jìn)行比較,當(dāng)計算得到的高斯概率小于預(yù)設(shè)的震動閾值時,判斷震動狀態(tài)異常,將震動狀態(tài)寄存器置為b,更新震動狀態(tài)判斷高斯模型參數(shù),否則將震動狀態(tài)寄存器復(fù)位為a,然后更新震動狀態(tài)判斷高斯模型參數(shù);
所述數(shù)據(jù)處理模塊,用于當(dāng)有數(shù)據(jù)讀寫到來時,讀取震動狀態(tài)寄存器的值,在震動狀態(tài)寄存器的值為a時,正常執(zhí)行數(shù)據(jù)讀寫,在震動狀態(tài)寄存器的值為b時,通過緩存來執(zhí)行數(shù)據(jù)讀寫。
與上述方法對應(yīng)地,本實施例異常判斷模塊,還用于當(dāng)計算得到的高斯概率不小于預(yù)設(shè)的震動閾值時,根據(jù)采集的三軸加速度值更新加速度閾值。
同樣,本實施例數(shù)據(jù)處理模塊在通過緩存來執(zhí)行數(shù)據(jù)讀寫時,執(zhí)行如下操作:
進(jìn)一步判斷所述數(shù)據(jù)讀寫是讀還是寫;
當(dāng)所述數(shù)據(jù)讀寫是讀時,查詢請求的數(shù)據(jù)是否在緩存中,如果命中緩存,則完成讀的操作,并返回獲取的數(shù)據(jù),否則阻塞讀的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,與磁盤間進(jìn)行讀的操作;
當(dāng)所述數(shù)據(jù)讀寫是寫時,則嘗試將數(shù)據(jù)直接寫入緩存,如果成功提交,則直接返回,完成整個寫數(shù)據(jù),如果緩存已滿,則阻塞寫的操作,并實時查詢震動狀態(tài)寄存器的值,等震動狀態(tài)寄存器的值復(fù)位為a后,將數(shù)據(jù)寫入磁盤。
本實施例存儲設(shè)備中的緩存包括至少兩塊固態(tài)硬盤,分別作為讀的緩存盤和寫的緩存盤。
以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。