一種優(yōu)化加速的磁盤監(jiān)控方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,尤其是設(shè)及一種優(yōu)化加速的磁盤監(jiān)控方法及系 統(tǒng)。
【背景技術(shù)】
[0002] 在一個(gè)存儲(chǔ)管理系統(tǒng)中,磁盤作為最基本的存儲(chǔ)介質(zhì),是保存數(shù)據(jù)的重要媒介,磁 盤的好壞對(duì)存儲(chǔ)系統(tǒng)的穩(wěn)定性有極大的影響,因此在一個(gè)存儲(chǔ)管理系統(tǒng)中,對(duì)磁盤的監(jiān)控 是非常重要的。
[0003] 通常情況下,在一個(gè)存儲(chǔ)系統(tǒng)中,磁盤管理模塊除了監(jiān)控磁盤本身的狀態(tài)信息W 夕h還會(huì)和其他模塊存在一定的交互關(guān)系,如存儲(chǔ)池相關(guān)模塊。將一塊或多塊磁盤創(chuàng)建成一 個(gè)存儲(chǔ)池,再把運(yùn)個(gè)存儲(chǔ)池作為數(shù)據(jù)存取的操作對(duì)象,而不對(duì)單塊磁盤本身進(jìn)行數(shù)據(jù)讀寫。 因此,我們?cè)趯?duì)磁盤進(jìn)行監(jiān)控管理時(shí),除了設(shè)及到磁盤本身的狀態(tài)是否有壞塊、是否有異常 告警信息之外,通常還會(huì)和其他模塊有一定的交互。
[0004] 除了磁盤本身的狀態(tài)信息之和交互模塊相關(guān)的信息之外,我們還非常關(guān)注磁盤在 物理設(shè)備上的位置信息,W便在出現(xiàn)問(wèn)題的時(shí)候能夠準(zhǔn)確快速的定位出相關(guān)的磁盤。然而 基于磁盤的可插拔性,磁盤的位置信息常常發(fā)生變化,如出現(xiàn)壞盤的情況下,我們會(huì)執(zhí)行換 盤操作,當(dāng)前磁盤會(huì)被移除,有新的磁盤會(huì)加入系統(tǒng)。又如當(dāng)目前的存儲(chǔ)容量無(wú)法滿足客戶 最新需求的情況下,我們會(huì)對(duì)存儲(chǔ)的硬件設(shè)備進(jìn)行擴(kuò)展,添加磁盤或者添加磁盤框(jbod)。 運(yùn)些操作都會(huì)對(duì)存儲(chǔ)系統(tǒng)的物理拓?fù)浣Y(jié)構(gòu)進(jìn)行變更,需要重新獲取磁盤的相關(guān)信息。
[0005] W往的實(shí)現(xiàn)方案是后端系統(tǒng)主動(dòng)監(jiān)控刷新磁盤的狀態(tài)信息,實(shí)時(shí)執(zhí)行掃描硬件、 查詢磁盤的狀態(tài)信息。此種實(shí)現(xiàn)方案無(wú)疑能夠?qū)崟r(shí)了解到存儲(chǔ)的拓?fù)浣Y(jié)構(gòu)和磁盤的狀態(tài)信 息的變化。但通過(guò)實(shí)際測(cè)試我們發(fā)現(xiàn),運(yùn)樣的實(shí)現(xiàn)方案數(shù)據(jù)更新較慢,命令執(zhí)行時(shí)間較長(zhǎng), 前端頁(yè)面刷新時(shí)延較大。
[0006] 另外一種優(yōu)化的實(shí)現(xiàn)方案是將獲取的數(shù)據(jù)存放到數(shù)據(jù)庫(kù)中,后端系統(tǒng)的查詢和前 端頁(yè)面的顯示分離,后端系統(tǒng)獨(dú)立刷新數(shù)據(jù)庫(kù)中的數(shù)據(jù),前端頁(yè)面則從數(shù)據(jù)庫(kù)中查詢信息 進(jìn)行顯示,此種實(shí)現(xiàn)方案有效的解決了數(shù)據(jù)刷新慢,頁(yè)面刷新時(shí)延較大的問(wèn)題,但由于每次 數(shù)據(jù)庫(kù)數(shù)據(jù)刷新需要執(zhí)行大量的系統(tǒng)命令,部分命令返回時(shí)間較長(zhǎng),時(shí)延較大造成了數(shù)據(jù) 刷新不及時(shí),外部操作造成的數(shù)據(jù)變化無(wú)法在第一時(shí)間顯示在前端頁(yè)面上。
[0007] 而上述兩種方案都存在的問(wèn)題是持續(xù)不斷的查詢磁盤信息,對(duì)磁盤有大量的IO操 作,會(huì)對(duì)業(yè)務(wù)數(shù)據(jù)的存取產(chǎn)生一定的干擾。此外,在出現(xiàn)磁盤損壞的情況下,部分命令執(zhí)行 超時(shí)還會(huì)對(duì)整個(gè)系統(tǒng)的運(yùn)行造成不利的影響。
【發(fā)明內(nèi)容】
[000引本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種優(yōu)化加速的磁 盤監(jiān)控方法及系統(tǒng),有效的解決磁盤數(shù)據(jù)刷新時(shí)長(zhǎng)較大,頁(yè)面顯示的數(shù)據(jù)與后端系統(tǒng)實(shí)際 數(shù)據(jù)不一致的問(wèn)題,同時(shí)減少查詢磁盤信息的IO操作,降低監(jiān)控信息的查詢對(duì)系統(tǒng)本身造 成的影響。
[0009] 本發(fā)明的目的可W通過(guò)W下技術(shù)方案來(lái)實(shí)現(xiàn):
[0010] -種優(yōu)化加速的磁盤監(jiān)控方法,包括W下步驟:
[0011] 1)獲取待查詢的磁盤相關(guān)信息的類型,判斷該類型的磁盤相關(guān)信息是否發(fā)生變 更,若是,則執(zhí)行步驟2),若否,則執(zhí)行步驟3);
[0012] 2)根據(jù)待查詢的磁盤相關(guān)信息的類型執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)更新操作,然后執(zhí)行步驟 3);
[0013] 3)查詢數(shù)據(jù)庫(kù)中的磁盤相關(guān)信息,獲得磁盤當(dāng)前狀態(tài)。
[0014] 所述磁盤相關(guān)信息分為實(shí)時(shí)查詢信息、交互模塊相關(guān)信息和硬件變更影響信息。
[0015] 所述實(shí)時(shí)查詢信息包括磁盤容量、磁盤生產(chǎn)商、磁盤產(chǎn)品編號(hào)、磁盤版本信息、磁 盤IO錯(cuò)誤、磁盤溫度和磁盤smad健康狀態(tài);
[0016] 所述交互模塊相關(guān)信息包括磁盤所屬存儲(chǔ)池和磁盤在存儲(chǔ)池中的狀態(tài);
[0017] 所述硬件變更影響信息包括磁盤所屬歸屬的磁盤框、磁盤框路徑、磁盤框編號(hào)和 磁盤槽位號(hào)。
[0018] 所述步驟1)中,判斷磁盤相關(guān)信息是否發(fā)生變更具體為:
[0019] 若待查詢的磁盤相關(guān)信息屬于實(shí)時(shí)查詢信息,則直接判定為發(fā)生變更;
[0020] 若待查詢的磁盤相關(guān)信息屬于交互模塊相關(guān)信息,則查詢?nèi)肿兞?,?dāng)全局變量 的值不等于默認(rèn)值時(shí)判定為發(fā)生變更;
[0021] 若待查詢的磁盤相關(guān)信息屬于硬件變更影響信息,則在有硬件變動(dòng)時(shí)判定為發(fā)生 變更。
[0022] 所述步驟2)中,根據(jù)待查詢的磁盤相關(guān)信息的類型執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)更新操作具 體為:
[0023] 若待查詢的磁盤相關(guān)信息屬于實(shí)時(shí)查詢信息,則通過(guò)實(shí)時(shí)執(zhí)行系統(tǒng)命令查詢實(shí)時(shí) 查詢信息,更新數(shù)據(jù)庫(kù);
[0024] 若待查詢的磁盤相關(guān)信息屬于交互模塊相關(guān)信息,則查詢實(shí)時(shí)查詢信息和交互模 塊相關(guān)信息,更新數(shù)據(jù)庫(kù);
[0025] 若待查詢的磁盤相關(guān)信息屬于硬件變更影響信息,則通過(guò)客戶端手動(dòng)觸發(fā)數(shù)據(jù)庫(kù) 的更新。
[0026] 所述步驟2)中,若待查詢的磁盤相關(guān)信息至少包括兩種類型時(shí),數(shù)據(jù)庫(kù)更新操作 的優(yōu)先級(jí)為:
[0027] 硬件變更影響信息〉交互模塊相關(guān)信息〉實(shí)時(shí)查詢信息。
[0028] 所述步驟2)中,若待查詢的磁盤相關(guān)信息屬于交互模塊相關(guān)信息,在更新數(shù)據(jù)庫(kù) 前,重新獲取全局變量,判斷當(dāng)前全局變量與上一次查詢的全局變量是否一致,若是,則更 新數(shù)據(jù)庫(kù),并重置全局變量,若否,則重新判斷磁盤相關(guān)信息是否發(fā)生變更。
[0029] 一種優(yōu)化加速的磁盤監(jiān)控系統(tǒng),包括磁盤管理模塊,所述磁盤管理模塊包括:
[0030] 查詢信息類型獲取單元,用于獲取待查詢的磁盤相關(guān)信息的類型;
[0031] 變更判定單元,用于判斷待查詢的磁盤相關(guān)信息是否發(fā)生變更;
[0032] 數(shù)據(jù)庫(kù)更新單元,用于根據(jù)待查詢的磁盤相關(guān)信息的類型執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)更新 操作;
[0033] 磁盤狀態(tài)獲取單元,用于根據(jù)數(shù)據(jù)庫(kù)中的磁盤相關(guān)信息,獲得磁盤當(dāng)前狀態(tài)。
[0034] 所述變更判定單元與交互模塊連接,根據(jù)全局變量獲取交互模塊的數(shù)據(jù)變化狀 態(tài)。
[0035] 與現(xiàn)有技術(shù)相比,本發(fā)明具有W下有益效果:
[0036] 1)本發(fā)明根據(jù)所獲取的信息是否有變更來(lái)決定是否需要重新查詢信息,并對(duì)磁盤 相關(guān)信息進(jìn)行分類,對(duì)不同類型的信息采用不同的數(shù)據(jù)更新方式,有效的解決磁盤數(shù)據(jù)刷 新時(shí)長(zhǎng)較大,頁(yè)面顯示的數(shù)據(jù)與后端系統(tǒng)實(shí)際數(shù)據(jù)不一致的問(wèn)題,同時(shí)減少查詢磁盤信息 的IO操作,降低監(jiān)控信息的查詢對(duì)系統(tǒng)本身造成的影響。
[0037] 2)在交互模塊的操作不影響磁盤管理相關(guān)信息的情況下,磁盤管理模塊能夠快速 刷新數(shù)據(jù)。
[0038] 3)交互模塊的操作對(duì)磁盤管理有影響時(shí),磁盤管理模塊刷新有一定的時(shí)延,但是 新獲取的數(shù)據(jù)可查看交互模塊的操作造成的數(shù)據(jù)變更。
[0039] 4)利用全局變量進(jìn)行磁盤管理模塊與交互模塊信息的傳遞時(shí),對(duì)前后查詢的全局 變量進(jìn)行比較,判斷查詢數(shù)據(jù)的期間是否有操作造成數(shù)據(jù)更新,是否還需要再次執(zhí)行系統(tǒng) 命令查詢最新的磁盤信息,提高了數(shù)據(jù)更新的可靠性。
[0040] 5)有硬件拓?fù)浣Y(jié)構(gòu)變化時(shí),磁盤管理模塊不會(huì)在第一時(shí)間進(jìn)行數(shù)據(jù)刷新,手動(dòng)刷 新操作有一定的時(shí)延,但是刷新完成后獲取的是當(dāng)前系統(tǒng)中最新的磁盤狀態(tài)信息。
【附圖說(shuō)明】
[0041 ]圖1為本發(fā)明的數(shù)據(jù)庫(kù)更新示意圖;
[0042] 圖2為本發(fā)明手動(dòng)刷新數(shù)據(jù)更新流程示意圖;
[0043] 圖3為本發(fā)明交互模塊相關(guān)信息的更新流程示意圖。
【具體實(shí)施方式】
[0044] 下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例W本發(fā)明技術(shù)方案 為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于 下述的實(shí)施例。
[0045] 本實(shí)施例提供一種優(yōu)化加速的磁盤監(jiān)控方法,由磁盤管理模塊實(shí)現(xiàn),將需要獲取 的所有磁盤相關(guān)的信息存放在數(shù)據(jù)庫(kù)中,根據(jù)所查詢的信息是否有變更來(lái)決定是否重新查 詢信息更新數(shù)據(jù)庫(kù)中的字段,進(jìn)而根據(jù)更新后的數(shù)據(jù)庫(kù)獲得磁盤狀態(tài)。該方法包括W下步 驟:1)獲取待查詢的磁盤相關(guān)信息的類型,判斷該類型的磁盤相關(guān)信息是否發(fā)生變更,若 是,則執(zhí)行步驟2),若否,則執(zhí)行步驟3) ;2)根據(jù)待查詢的磁盤相關(guān)信息的類型執(zhí)行相應(yīng)的 數(shù)據(jù)庫(kù)更新操作,如圖1所示,然后執(zhí)行步驟3) ;3)查詢數(shù)據(jù)庫(kù)中的磁盤相關(guān)信息,獲得磁盤 當(dāng)前狀態(tài)。
[0046] 一、磁盤管理需獲取的信息定義和存放
[0047] 磁盤管理需獲取的信息如表1所示,存放磁盤相關(guān)信息的數(shù)據(jù)庫(kù)字段與要獲取的 信息一致。
[004引 表1 [0049]
[0050