吳文波
(閩南科技學院 福建 泉州 362000)
服務器磁盤是一種安裝在服務器當中,以磁性盤片作為數據載體的存儲器,這種存儲器結構具有非易失性特點,因此能夠確保服務器運行中具備更有力的數據支撐。與服務器當中的中央處理器、內存等結構相比,磁盤的機械結構更加復雜,并且更加脆弱,在高速運轉中極易受到磨損[1]。在大數據環(huán)境當中,多臺服務器被放置在同一個機架結構當中,若其中一塊磁盤出現(xiàn)故障問題,則會對整個服務器構成機架的運行造成嚴重影響,同時在眾多服務器磁盤當中找出故障的磁盤難度也較大。盡管服務器中每一塊磁盤配置備用數據塊用于替換壞的數據塊,但當備用數據塊被用完后,若磁盤仍然持續(xù)受到磨損,則會造成數據丟失問題產生,進而影響到服務器的正常運行,并且對于用戶而言會造成無法逆轉的不利影響[2]。服務器磁盤在使用的前期階段(1 年)中,磁盤的故障發(fā)生概率會呈現(xiàn)出先增加后降低的趨勢?;谏鲜龇掌鞔疟P的故障特征以及故障發(fā)生概率,為提高服務器磁盤及整體運行可靠性,本文將引入大數據技術,開展對服務器磁盤故障診斷方法的設計研究。
為實現(xiàn)對服務器磁盤的故障診斷,本文采用服務器磁盤故障自診和系統(tǒng)級診斷相結合的方式,實現(xiàn)對故障問題的綜合診斷。為確保服務器磁盤的故障自診和系統(tǒng)級診斷具備更可靠診斷依據,在對其進行詳細設計前,首先利用大數據技術對服務器運行過程中的負載數據進行采集。
考慮到服務器架構中包含眾多磁盤,為確保獲取所有具有高利用價值的負載數據,引入大數據技術[3],只針對磁盤運行中產生的磁盤利用率數據、磁盤讀取速度數據、磁盤寫入速度數據等進行采集,將負載數據的采集時間設定為每間隔5 min 完成1 次[4]。根據服務器磁盤的利用率數據,可實現(xiàn)對磁盤工作時間與磁盤通電時間比值的描述,通過5 min/次的數據采集,可以實現(xiàn)對5 min 時間內磁盤工作時間占比信息的獲取[5]。若服務器磁盤的利用率越高,則說明磁盤的空閑時間越少,將這一數據作為磁盤負載的時間特征數據。通過服務器磁盤讀取速度數據和寫入數據,能夠實現(xiàn)對從內存到磁盤當中數據傳輸的速度,每間隔5 min 完成1 次采集,能夠實現(xiàn)對磁盤運行5 min 內平均傳輸速度的描述,同樣將這一數據作為磁盤負載的空間特征數據。在獲取到上述負載數據后,為實現(xiàn)對服務器磁盤運行的準確描述,可從時間角度,對服務器磁盤負載強度進行計算,其公式為:
上述公式中,D表示為服務器磁盤的負載強度;di表示為每間隔5 min 采集到的磁盤利用率數據;n表示為數據采集次數。通過上述公式計算得出,服務器磁盤的平均利用率越低,則說明磁盤負載強度越??;反之服務器磁盤的平均利用率越高,則說明磁盤負載強度越大[6]。再針對服務器磁盤在高利用率狀態(tài)下的時間占比,實現(xiàn)對磁盤這一狀態(tài)出現(xiàn)頻率的計算,其公式為:
上述公式中,D' 表示為磁盤在高利用率狀態(tài)當中的時間占比;ld表示為知識函數,若其邏輯表達式成立,則輸出的數值為1;反之,若邏輯表達式不成立,則輸出的數值為0。結合上述公式(2),對服務器磁盤利用率閾值進行設定,若計算得出的結果超出閾值范圍,則此時指示函數的輸出值為1,同時意味著服務器磁盤出現(xiàn)了一次高利用率情況;反之,若計算得出的結果未超過閾值范圍或與閾值數值相同,則此時指示函數的輸出值為0,同時意味著服務器磁盤的利用率在正常范圍內。根據上述內容,實現(xiàn)對服務器磁盤高利用率情況出現(xiàn)次數的計量[7]。通常情況下,服務器磁盤的平均利用率若超過50%,則其故障發(fā)生概率會呈現(xiàn)出爆發(fā)式的上升趨勢。因此,結合上述得出的計量結果,也能夠為后續(xù)對磁盤是否出現(xiàn)故障問題的判斷提供依據。
在利用大數據技術完成對服務器磁盤運行中負載數據的采集后,采用劃分等級的方式,完成對磁盤的故障診斷,等級分別為服務器磁盤自診和系統(tǒng)級診斷。
在進行自診前需要對服務器磁盤在運行中,對資源的使用情況以及節(jié)點在物理層面上的狀態(tài)信息進行獲取,其每個狀態(tài)下的表征數據均為數值類型數據,可通過基于/proc 文件以及命令行采集相結合的方式獲取。在采集過程中,在/proc 文件當中讀取服務器磁盤故障自診的相關文件,若文件存在并順利打開,則對該文件進行解析,并得到所需的表征值數據信息。若文件無法打開或為空,則需要調用相關的命令并將得到的結果重定向為文件再重復上述操作獲得表征數值。在實際執(zhí)行上述操作時,由于服務器磁盤個體之間存在差異,且服務器的操作系統(tǒng)版本更新問題可能會對/proc 文件結構造成影響。因此,針對這一問題,引入基于命令行的采集方式,實現(xiàn)對上述操作的輔助,從而確保得到的表征數值更具可靠性。
在完成上述操作后,針對服務器磁盤故障自診進行設計,服務器磁盤不同的故障類型,采用不同的監(jiān)控方式,監(jiān)控到的信息類型不一致,但均采用大數據技術周期性地獲得相關狀態(tài)表增值的方式,實現(xiàn)對數據的分類和對服務器磁盤的故障診斷,并最終得出服務器磁盤是否為故障。針對上述采集到的負載數據信息,針對不同數據類型,采用不同的監(jiān)控方式[8]。例如,針對使用率、流量、輸入輸出性能等負載相關數據,采用基于proc 文件和基于命令行相結合的方式進行監(jiān)控;針對核心服務進程、關鍵服務進程等負載相關數據,采用內核監(jiān)控方法。前者在監(jiān)控過程中,通過ps 命令、top 命令和who 命令,實現(xiàn)對監(jiān)控信息的獲取,并根據信息內容實現(xiàn)故障檢測。在檢測過程中,還需要對與服務器磁盤相連接的電源、風扇等結構的工作狀態(tài)進行實時監(jiān)控,并采取門限檢測的方法,診斷服務器磁盤是否出現(xiàn)故障問題。服務器磁盤自診流程圖見圖1。
上述服務器磁盤故障自診過程中,可基于深度學習算法,構建磁盤故障診斷的模型,其表達式為:
上述公式中,S(t+△t)表示為故障診斷結果;S表示為服務器磁盤的狀態(tài)當量;g(I(t),S(t))表示為通過上述操作獲取到的磁盤運行負載數據。為提高服務器磁盤自診的精度,在完成對診斷模型的構建后,將其應用到監(jiān)督學習網絡結構當中,并進行迭代訓練。在完成訓練后,將輸出的結果作為最終服務器磁盤的自診結果[9]。同時,為了區(qū)別服務器磁盤的自診和系統(tǒng)級診斷,在實際應用中,對上述建立的故障診斷模型進行閾值設定,當采集到的負載數據沒有達到自診閾值范圍時,則不會觸發(fā)上述模型的運行,自診模塊不會啟動。
針對服務器磁盤系統(tǒng)級故障診斷進行設計,需要完成對服務器中各個節(jié)點的配置,并構成一個完整的集群。每個節(jié)點都需要保存在同一個集群配置文件當中。在進行系統(tǒng)級故障診斷的過程中,階段讀取配置文件得到集群中各個節(jié)點狀態(tài)[10]。在服務器磁盤處于健康狀態(tài)中運行時,每一個節(jié)點的心跳模塊都會生成一些狀態(tài)線程,若集群中包含n 個節(jié)點,則每個節(jié)點的心跳模塊都會生成n-1 個狀態(tài)線程,利用獲取到的集群節(jié)點狀態(tài)實現(xiàn)對服務器磁盤運行狀態(tài)的判斷。假設某一節(jié)點a 與另一個節(jié)點b 之間的狀態(tài)線程為ab,則每隔一定時間后,節(jié)點a 都會向節(jié)點b發(fā)送一個故障檢測結果。時間間隔按照上述負載數據采集的時間間隔進行設置,即5 min。通過對節(jié)點a 到節(jié)點b發(fā)送結果可實現(xiàn)對服務器磁盤故障的診斷,其表達式為:
上述公式中,T表示為節(jié)點a 到節(jié)點b 發(fā)送時間;cT表示為當前時間節(jié)點;tT表示為超時時間節(jié)點。上述公式中,上半部分為超時情況下的檢測結果;下半部分為正常情況下的檢測結果。
在進行對服務器磁盤系統(tǒng)級診斷時,同樣為了區(qū)分自診和系統(tǒng)級診斷,以上述相同方式為系統(tǒng)級診斷的閾值進行設置,當數據沒有達到系統(tǒng)級診斷的閾值范圍時,則不會觸發(fā)上述模塊的運行,系統(tǒng)級診斷模塊不會啟動。如若數據不在自診閾值范圍同時也不在系統(tǒng)級診斷閾值范圍,則自動認為服務器磁盤未發(fā)生故障問題,處于健康運行狀態(tài),以此實現(xiàn)對服務器磁盤故障的診斷。
在上文論述基礎上,引入大數據技術提出了一種針對服務器磁盤的故障診斷方法,為了進一步驗證這一方法的應用優(yōu)勢,選擇將基于無線傳感網絡的診斷方法作為對照組,將這一診斷方法的應用條件作為對照條件,本文基于大數據技術的診斷方法作為實驗組,并按照上述論述該方法應用需要作為實驗條件。利用兩種方法對相同的服務器磁盤研究對象進行故障診斷。選擇ST16000NM00 型號服務器磁盤作為實驗研究對象,將該型號所有磁盤的歷史運行信息匯總,并構成完成的數據集,將這一數據集作為實驗數據集,其基本信息見表1。
表1 ST16000NM00 型號服務器磁盤實驗數據集
將上述實驗數據集用Python 編程語言進行編碼,并對數據集中相關信息進行預處理、排序訓練等。將處理后的實驗數據集作為測試集,分別利用兩種方法對測試集進行故障診斷。已知服務器磁盤在出現(xiàn)故障問題時,服務器通常會表現(xiàn)出3 種狀態(tài),分別為:服務暫停、進程異常和服務停止。利用兩種方法對磁盤是否故障進行判斷,并給出具體故障診斷類型,分別從故障判斷結果和診斷故障類別結果兩方面,對兩種方法的診斷性能進行分析。將兩種方法的故障判斷結果記錄,并繪制成表2。
表2 實驗組與對照組故障判斷結果記錄表 單位:例
從表2 中記錄的實驗數據可以看出,兩種故障診斷方法在對相同服務器磁盤故障進行診斷時,實驗組磁盤故障和健康判斷結果與實際情況完全相同,而對照組判斷結果與實際相差較大。因此,從這一實驗結果能夠初步證明,本文提出的故障診斷方法在對服務器磁盤的故障和健康狀態(tài)判斷時,可實現(xiàn)99%的診斷精度。再針對兩種診斷方法對服務器磁盤故障類型診斷的精度進行對比,結合上述3種服務器磁盤故障類型,將類型診斷結果記錄,并繪制表3。
表3 實驗組與對照組服務器磁盤故障類型診斷結果 單位:個
由表3 可知,實驗組正確判斷3 種故障類型的個數均高于對照組,因此,通過這一實驗結果能夠進一步證明,本文提出的基于大數據技術的診斷方法不僅能夠實現(xiàn)對服務器磁盤故障狀態(tài)與健康狀態(tài)的準確判斷,同時還能夠實現(xiàn)對磁盤故障具體類型的診斷,得出的診斷結果對于服務器的運行和維護策略提出具有更高利用價值。
服務器磁盤的故障原因可分為內部因素和外部因素兩種,其中外部因素主要是受到外界物理破壞,而內部因素包括磁盤的接口等內部組件的運行質量,兩方面因素的存在決定著磁盤的使用質量和維護質量。在明確服務器磁盤故障原因基礎上,本文提出一種全新的故障診斷方法,并通過實驗實現(xiàn)了對該診斷方法的應用優(yōu)勢驗證,將該方法應用于實際可以促進服務器磁盤運行穩(wěn)定性的進一步提升。