專利名稱:一種sas鏈路狀態(tài)變化抑制方法和監(jiān)控實體的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其涉及一種SAS (串行附接SCSI (小型計算 機系統(tǒng)接口 ), Serial Attached SCSI)鏈路狀態(tài)變化抑制方法和用于實現(xiàn)SAS 鏈路狀態(tài)變化抑制的監(jiān)控實體。
背景技術(shù):
在通信技術(shù)中,SAS域系統(tǒng)通常包括擴展器設(shè)備(Expander Device )、 SAS發(fā)起端(SAS initiator )和SAS設(shè)備(SAS Device,也稱SAS終端)。 Expander設(shè)備是一種交換設(shè)備,用于在SAS設(shè)備之間或SAS設(shè)備與SAS initiator之間進行數(shù)據(jù)通信。
實際應用中,不同的SAS域所包含的各個設(shè)備的數(shù)量可能不同,相應 地就可能具有不同的拓樸結(jié)構(gòu)。此外,同一個SAS域在鏈路狀態(tài)發(fā)生變化 時,也會改變原有拓樸結(jié)構(gòu),因此SAS initiator需要時常獲取SAS域的拓樸 信息。在目前的SAS協(xié)議中,SAS initiator獲取SAS域拓樸信息的過程是通 過發(fā)現(xiàn)(Discovery)過程來完成的。現(xiàn)有技術(shù)中,監(jiān)控SAS鏈路狀態(tài)變化 并發(fā)起Discovery過程的實體包括SAS initiator和Expander設(shè)備。其中,SAS initiator在發(fā)現(xiàn)自身的SAS鏈路狀態(tài)變化時,會通過發(fā)送SMP DISCOVER 請求來發(fā)起Discovery過程;Expander設(shè)備監(jiān)控到自身SAS鏈路狀態(tài)變化時,
圖1示出了 SAS協(xié)議中Expander設(shè)備發(fā)起Discovery過程的流程示意 圖。如圖l所示,該流程包括如下步驟
步驟101, Expander設(shè)備監(jiān)控到自身SAS鏈路狀態(tài)變化時,向SAS initiator上才艮Broadcast(Change)。
7其中,在熱插拔SAS設(shè)備,或SAS鏈路的同步信號發(fā)生變化等情況時, 都會導致SAS的鏈路狀態(tài)變化,而通過檢測對應SAS鏈路phy的狀態(tài),可 以判斷SAS鏈路狀態(tài)是否發(fā)生變化。SAS鏈路狀態(tài)的變化主要包括鏈路狀 態(tài)從其它狀態(tài)切換到phy ready或者spinup狀態(tài)(為描述方便,本文中簡稱 link-up狀態(tài))和鏈路狀態(tài)從phy ready或者spinup狀態(tài)切換到其它狀態(tài)(為 描述方便,本文中簡稱link-down狀態(tài))。
Broadcast(Change)是一種廣播報文,用于向SAS initiator通知SAS域發(fā) 生了狀態(tài)變化。
步驟102, SAS initiator收到Broadcast (Change)后,首先向expander發(fā) 送REPORT GENERAL (報告概要)請求。
步驟103, Expander向SAS initiator返回REPORT GENERAL響應,以 通知SAS initiator自身所包含的phy (收發(fā)器的物理鏈路接口 )數(shù)量。
步驟104, SAS initiator按照phy的ID (身份標識)順序,依次向該 Expander發(fā)送對應每個phy的SMP DISCOVER請求。
步驟105, Expander向SAS initiator返回DISCOVER響應,將每個phy 的相關(guān)信息(如SAS地址、所連接設(shè)備的類型、連接設(shè)備的SAS地址和所 支持的協(xié)議等)通知給SAS initiator。
之后,SAS initiator根據(jù)獲取的每個phy的相關(guān)信息,得到SAS域的拓 樸信息。
其中,如果SAS域中包含了多個Expander設(shè)備,SAS initiator要獲取 整個SAS域的拓樸,必須按照級別順序(如寬度優(yōu)先原則)遍歷SAS域, 獲取所有Expander設(shè)備的信息。Expander設(shè)備也會對低于自身級別的 Expander設(shè)備發(fā)起DISCOVER過程,并根據(jù)獲取的拓樸信息建立路由表。
實際應用中,由于人為操作、鏈路連接不可靠、物理鏈路存在故障、或 SAS設(shè)備和其它相關(guān)設(shè)備的固件錯誤或硬件故障等原因,可能會造成SAS 鏈路狀態(tài)頻繁發(fā)生變化,繼而會引起Discovery過程的頻繁觸發(fā),而由于每 次Discovery過程需要對所有phy進行請求,信息交互需消耗較長的時間,并且為了等待Discovery過程處理完成,SAS域中的I/O數(shù)據(jù)處理被阻塞。 因此,Discovery過程的頻繁觸發(fā)會影響SAS存儲系統(tǒng)的運行性能,并且SAS 拓樸信息的振蕩,也會增加存儲系統(tǒng)運行的不穩(wěn)定性。但目前的SAS協(xié)議 標準中,尚沒有對SAS鏈路狀態(tài)頻繁變化的抑制處理。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明中一方面提供一種SAS鏈路狀態(tài)變化抑制方法,另 一方面提供一種用于實現(xiàn)SAS鏈路狀態(tài)變化抑制的監(jiān)控實體,以避免大量 頻繁的Discovery過程,增加存儲系統(tǒng)的運行性能和穩(wěn)定性。
本發(fā)明所提供的SAS鏈路狀態(tài)變化抑制方法,包括
A、 監(jiān)控實體檢測到自身的SAS鏈路發(fā)生設(shè)定的狀態(tài)變化時,確定對應所 述SAS鏈路的當前延時時長;
B、 啟動對應所述當前延時時長的第一定時器;
C、 在所述第一定時器的延時期間,監(jiān)控實體檢測所述SAS鏈路是否再次 發(fā)生設(shè)定的狀態(tài)變化,如果是,則確定對應所述SAS鏈路的新的延時時長,將 所述新的延時時長作為當前延時時長,并返回執(zhí)行步驟B;否則,在所述第一 定時器的延時超時后,發(fā)起Discovery過程。
較佳地,所述監(jiān)控實體為SAS initiator;或者,所述監(jiān)控實體為Expander 設(shè)備。
較佳地,所述監(jiān)控實體為Expander設(shè)備,且所述Expander設(shè)備的SAS鏈 路包括兩條或兩條以上;
所述Expander設(shè)備在確定自身的某個或某些SAS鏈路的第一定時器的延時 超時后,執(zhí)行步驟C所述的發(fā)起Discovery過程之前,進一步包括
Cl、確定當前合并處理時長;
C2、啟動對應所述當前合并處理時長的第二定時器;
C3、在所述第二定時器的延時期間,Expander設(shè)備確定其它SAS鏈路的第 一定時器的延時是否超時,如果是,則確定新的合并處理時長,將所述新的合并處理時長作為當前合并處理時長,并返回執(zhí)行步驟C2;否則,在所述第二定 時器的延時超時后,對應所有第一定時器的延時超時的SAS鏈路發(fā)起一個 Discovery過程。
較佳地,所述合并處理時間為按照后退算法計算得到的合并處理時間。 較佳地,所述后退算法包括二元指數(shù)后退算法或線性增值后退算法。 較佳地,所述后退算法為線性增值后退算法;
所述按照后退算法計算得到的合并處理時間包括對于線性增值后退算法 函數(shù)/2(n)中的輸入?yún)?shù)n,在系統(tǒng)啟動后設(shè)置n的初始值n=0;每進行一次延時, n累力。l;在當前合并處理時長的延時超時后,令!1=0;
當Expander設(shè)備確定SAS鏈路的第一定時器的延時超時時,將n的當前取 值代入線性增值后退算法函數(shù)力(n)中,得到合并處理時長。
較佳地,所述監(jiān)控實體為Expander設(shè)備,且所述Expander設(shè)備的SAS鏈 路包括兩條或兩條以上;
所述Expander設(shè)備在確定自身的某個或某些SAS鏈路的第一定時器的延時 超時后,執(zhí)行步驟C所述的發(fā)起Discovery過程之前,進一步包括判斷當前 是否存在對應合并處理時長的第二定時器的延時,如不存在,則確定當前合并 處理時長,啟動對應所述當前合并處理時長的第二定時器,在所述第二定時器 的延時超時后,對應所有第一定時器的延時超時的SAS鏈路發(fā)起一個Discovery 過程。
較佳地,該方法進一步包括在所述第二定時器的延時超時前,接收到SMP DISCOVER請求,則停止所述第二定時器的延時,并響應所述SMP DISCOVER請求。
較佳地,所述延時時間為按照后退算法計算得到的延時時間。 較佳地,所述后退算法包括二元指數(shù)后退算法或線性增值后退算法。 較佳地,所述后退算法為二元指數(shù)后退算法; 所述按照后退算法計算得到延時時間包括
對于二元指數(shù)后退算法函數(shù)力(n)中的輸入?yún)?shù)n,在系統(tǒng)啟動后設(shè)置n的
10初始值n=0;每檢測到 一次設(shè)定的狀態(tài)變化n累力口 1;在當前延時時長的延時超 時后,如果SAS鏈路狀態(tài)仍然處于設(shè)定的狀態(tài)變化,則令n=(n+l)/2作為該SAS 鏈路下一次后退算法計算的初始值,否則,令n二O;
當SAS鏈路發(fā)生設(shè)定的狀態(tài)變化時,將n的當前取值代入二元指數(shù)后退算
法函數(shù)y;(n)中,得到延時時長。
較佳地,所述設(shè)定的狀態(tài)變化為任意狀態(tài)變化; 或者為發(fā)生link-up的狀態(tài)變化; 或者為發(fā)生link-down的狀態(tài)變化。
較佳地,所述設(shè)定的狀態(tài)變化為發(fā)生link-up的狀態(tài)變化或者發(fā)生 link-down的狀態(tài)變化時,所述發(fā)起Discovery過程之前,進一步包括檢測所 述SAS鏈路是否仍然處于所述設(shè)定的狀態(tài)變化,如果是,則發(fā)起所述Discovery 過程。
較佳地,該方法進一步包括
為每條SAS鏈路設(shè)置統(tǒng)計時間區(qū)間、以及該統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)告 警閾值和鏈路狀態(tài)禁用閾值;
對應每條SAS鏈路,統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù),在 所述SAS鏈路的鏈路狀態(tài)變化次數(shù)大于其對應的《連路狀態(tài)告警閾值時,對所述 SAS鏈路進行告警;在所述SAS鏈路的鏈路狀態(tài)變化次數(shù)大于其對應的鏈路狀 態(tài)禁用閾值時,禁用所述SAS鏈路。
較佳地,所述對應每條SAS鏈路,統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài) 變化次數(shù)為對應每條SAS鏈路,采用環(huán)算法統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi)的鏈 路狀態(tài)變化次數(shù)。
較佳地,該方法進一步包括
為每條SAS鏈路設(shè)置鏈路狀態(tài)告警總閾值;
對應每條SAS鏈路,統(tǒng)計其鏈路狀態(tài)總的變化次數(shù),在所述SAS鏈路 的鏈路狀態(tài)總變化次數(shù)大于其對應的鏈路狀態(tài)告警總閾值時,對所述SAS 鏈路進行告警。本發(fā)明所提供的用于實現(xiàn)SAS鏈路狀態(tài)變化抑制的監(jiān)控實體,包括 檢測單元,用于檢測監(jiān)控實體的SAS鏈路是否發(fā)生設(shè)定的狀態(tài)變化,在所
述SAS鏈路每發(fā)生一次設(shè)定的狀態(tài)變化時,向延時處理單元發(fā)送一次對應所述
SAS鏈路的延時通知;
延時處理單元,用于在每次接收到對應所述SAS鏈路的延時通知時,確定
對應所述SAS鏈路的當前延時時長,并重啟對應所述SAS鏈路的第一定時器; 過程觸發(fā)單元,用于在所述第一定時器的延時超時后,發(fā)起Discovery過程。 較佳地,所述延時處理單元進一步在所述第一定時器的延時超時后,發(fā)送
啟動通知;
所述過程觸發(fā)單元,用于根據(jù)所述啟動通知,發(fā)起Discovery過程。 較佳地,所述監(jiān)控實體為Expander設(shè)備,且所述Expander設(shè)備的SAS鏈
路包括兩條或兩條以上;
該監(jiān)控實體進一步包括合并處理單元,用于接收來自延時處理單元的啟
動通知,在每接收到一個啟動通知時,確定當前的合并處理時間,并重啟對應
的第二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元發(fā)送啟動通
知;
或者,所述合并處理單元用于接收來自延時處理單元的啟動通知,根據(jù)所 述啟動通知,判斷當前是否存在對應合并處理時間的第二定時器,如存在,則 不進行任何處理;如不存在,則確定當前合并處理時長,啟動對應所述當前合 并處理時長的第二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元 發(fā)送啟動通^口。
較佳地,所述設(shè)定的狀態(tài)變化為發(fā)生link-up的狀態(tài)變化或發(fā)生link-down 的狀態(tài)變化;
所述延時處理單元進一步在所述第一定時器的延時超時后,向檢測單元發(fā) 送超時通知;
所述檢測單元進一步根據(jù)來自延時處理單元的超時通知,檢測監(jiān)控實體的 SAS鏈路是否仍處于所述設(shè)定的狀態(tài)變化,如果是,則發(fā)送啟動通知;所述過程觸發(fā)單元,用于根據(jù)所述啟動通知,發(fā)起Discovery過程。
較佳地,所述監(jiān)控實體為Expander設(shè)備,且所述Expander設(shè)備的SAS鏈 路包括兩條或兩條以上;
該監(jiān)控實體進一步包括合并處理單元,用于接收來自檢測單元的啟動通 知,在每接收到一個啟動通知時,確定當前的合并處理時間,并重啟對應的第 二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元發(fā)送啟動通知;
或者,所述合并處理單元用于接收來自檢測單元的啟動通知,根據(jù)所述啟 動通知,判斷當前是否存在對應合并處理時長的第二定時器,如存在,則不進 行任何處理;如不存在,則確定當前合并處理時長,啟動對應所述當前合并處 理時長的第二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元發(fā)送 啟動通知。
較佳地,該監(jiān)控實體進一步包括第一監(jiān)控單元,用于對應每條SAS鏈路, 統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù),在所述SAS鏈路的鏈路狀態(tài) 變化次數(shù)大于其對應的鏈路狀態(tài)告警閾值時,對所述SAS鏈路進行告警;在所 述SAS鏈路的鏈路狀態(tài)變化次數(shù)大于其對應的鏈路狀態(tài)禁用閾值時,禁用所述 SAS鏈路。
較佳地,該監(jiān)控實體進一步包括第二監(jiān)控單元,用于對應每條SAS 鏈路,統(tǒng)計其鏈路狀態(tài)總的變化次數(shù),在所述SAS鏈路的鏈路狀態(tài)總變化 次數(shù)大于其對應的鏈路狀態(tài)告警總閾值時,對所述SAS鏈路進行告警。
從上述方案可以看出,本發(fā)明中當監(jiān)控實體檢測到自身的SAS鏈路發(fā) 生設(shè)定的狀態(tài)變化時,不立即發(fā)起Discovery過程,而是先進行延時,如果 延時期間該SAS鏈路再次發(fā)生設(shè)定的狀態(tài)變化,則重新進行延時, 一直到 延時期間該SAS鏈路不再發(fā)生設(shè)定的狀態(tài)變化時,再發(fā)起Discovery過程, 從而在一定程度上避免了 SAS鏈路頻繁發(fā)生狀態(tài)變化時所引起的大量頻繁 的Discovery過程,增加了存儲系統(tǒng)的運行性能和穩(wěn)定性。
此外,當監(jiān)控實體為Expander設(shè)備,且所述Expander設(shè)備的SAS鏈路 包括兩條或兩條以上時,進一步對其上的多條SAS鏈路的Discovery過程進
13行合并處理,從而進一步避免了大量頻繁的Discovery過程。
最后,通過設(shè)置鏈路狀態(tài)告警闊值和鏈路狀態(tài)禁用閾值,對狀態(tài)變化次 數(shù)達到鏈路狀態(tài)告警閾值的SAS鏈路進行告警,對狀態(tài)變化次數(shù)達到鏈路 狀態(tài)禁用閾值的SAS鏈路進行禁用,從而減少查找出或禁用存在鏈路連接 不可靠、物理鏈路存在故障、或SAS設(shè)備和其它相關(guān)設(shè)備的固件錯誤或硬 件故障等情況的鏈路,進一步保障了存儲系統(tǒng)的運行性能和穩(wěn)定性。
圖1為SAS協(xié)議中Expander設(shè)備發(fā)起Discovery過程的流程示意圖2為本發(fā)明實施例中SAS鏈路狀態(tài)變化抑制方法的示例性流程圖3為本發(fā)明實施例中Expander設(shè)備的合并處理方法的流程示意圖4為本發(fā)明實施例中鏈路狀態(tài)變化的環(huán)算法實現(xiàn)示意圖5為本發(fā)明實施例中監(jiān)控實體的一個示例性結(jié)構(gòu)圖6為本發(fā)明實施例中Expander i殳備的 一 個示例性結(jié)構(gòu)圖7為本發(fā)明實施例中監(jiān)控實體的又 一 個示例性結(jié)構(gòu)圖8為本發(fā)明實施例中Expander設(shè)備的又 一 個示例性結(jié)構(gòu)圖。
具體實施例方式
為了避免SAS鏈路頻繁發(fā)生狀態(tài)變化時所引起的大量頻繁的Discovery 過程,增加存儲系統(tǒng)的運行性能和穩(wěn)定性,本發(fā)明實施例中,當監(jiān)控實體檢 測到自身的SAS鏈路發(fā)生狀態(tài)變化時,并不立即發(fā)起Discovery過程,而是 先進行延時,延時期間不發(fā)起Discovery過程,延時超時后才啟動Discovery 過程。如果延時期間該SAS鏈路再次發(fā)生狀態(tài)變化,則重新進行延時,一 直到延時期間該SAS鏈路不再發(fā)生狀態(tài)變化時,再發(fā)起Discovery過程。
具體實現(xiàn)時,上述狀態(tài)變化可以指任意的狀態(tài)變化,即從link-down到 link-up或從link-up到link-down,只要發(fā)生一次狀態(tài)改變,即可進行延時觸 發(fā)Discovery過程。或者,也可根據(jù)實現(xiàn)策略或?qū)崿F(xiàn)效果等,將上述狀態(tài)變化限定為從
link-down到link-up的狀態(tài)變化,即每次發(fā)生link-up時進行延時觸發(fā) Discovery過程,延時期間對發(fā)生的link-down的狀態(tài)變化不做處理,非延時 期間發(fā)生的link-down的狀態(tài)變化按現(xiàn)有過程處理。或者,將上述狀態(tài)變化 限定為從link-up到link-down的狀態(tài)變化,即每次發(fā)生link-down時進行延 時觸發(fā)Discovery過程,延時期間對發(fā)生的link-up的狀態(tài)變化不^f故處理,非 延時期間發(fā)生的link-up的狀態(tài)變化按現(xiàn)有過程處理。
其中,將上述狀態(tài)變化限定為從link-down到link-up的狀態(tài)變化時的實 現(xiàn)方式為本發(fā)明實施例中的較佳實現(xiàn)方式。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面結(jié)合實施例和 附圖,對本發(fā)明進一步詳細說明。
圖2為本發(fā)明實施例中SAS鏈路狀態(tài)變化抑制方法的示例性流程圖。 如圖2所示,該流程包括如下步驟
步驟201,監(jiān)控實體檢測到自身的SAS鏈路發(fā)生設(shè)定的狀態(tài)變化時,確 定對應所述SAS鏈路的當前延時時長。
其中,監(jiān)控實體可以為SAS initiator,也可以為Expander設(shè)備。
設(shè)定的狀態(tài)變化可以是任意狀態(tài)變化,也可以是發(fā)生link-up的狀態(tài)變 化,還可以是發(fā)生link-down的狀態(tài)變化。
步驟202,啟動對應所述當前延時時長的延時定時器,記為第一定時器。
本步驟中,啟動延時定時器,并將延時定時器的最大延時時長設(shè)定為所 確定的當前延時時長。
步驟203,在所述第一定時器的延時期間,監(jiān)控實體檢測所述SAS鏈路 是否再次發(fā)生設(shè)定的狀態(tài)變化,如果是,則執(zhí)行步驟204;否則,執(zhí)行步驟 205。
其中,當監(jiān)控實體為Expander設(shè)備時,若在第一定時器的延時期間接 收到SMP DISCOVER請求,則Expander設(shè)備可反饋該SAS鏈路尚未處于 設(shè)定的狀態(tài)(例如,該SAS鏈^各為link-up)。步驟204,確定對應所述SAS鏈路的新的延時時長,將所述新的延時時 長作為當前延時時長,并返回執(zhí)行步驟202。
步驟205,在所述第一定時器的延時超時后,發(fā)起Discovery過程。
本步驟中,無論設(shè)定的狀態(tài)變化為何種狀態(tài)變化,均可以在第一定時器 的延時超時后,即發(fā)起Discovery過程。具體實現(xiàn)時,對于設(shè)定的狀態(tài)變化 為發(fā)生link-up的狀態(tài)變化,或發(fā)生link-down的狀態(tài)變化時,本步驟中, 也可在發(fā)起Discovery過程之前,進一步判斷所述SAS鏈路是否仍然處于所 述設(shè)定的狀態(tài)(即發(fā)生link-up的狀態(tài)或發(fā)生link-down的狀態(tài)),如果是, 再發(fā)起Discovery過程。
本實施例中,延時時長的確定方法可有多種。例如,可以預先設(shè)定固定 的延時時長作為當前的延時時長,也可以是按某種算法(如后退算法)確定 當前的延時時長和新的延時時長。下面以二元指數(shù)后退算法為例,對本發(fā)明 實施例中確定延時時長的方法進行詳細描述。
設(shè)置如式(l)所示的二元指數(shù)后退算法函數(shù)力(n):
其中,T為時間系數(shù),表示后退算法的時間粒度,用戶可根據(jù)實際需要 進行配置,并可設(shè)置默認值,例如100ms; N為最大延時常數(shù),通過N計算 得到的/i(N)是函數(shù)的最大值,表示后退算法最大的延時時間,用戶可根據(jù) 實際需要行配置N的取值,并可設(shè)置默認值,例如8,相應地,最大延時時 間的默認值可以為25.5s; n為輸入?yún)?shù),表示鏈路的狀態(tài)變化次數(shù),對應每 個鏈路維護一個參數(shù)n作為鏈路狀態(tài)變化的計數(shù)此數(shù)值。
其中,n的計算方法可如下所示
1) 系統(tǒng)啟動后設(shè)置n的初始值i^0;
2) 每檢測到一次設(shè)定的狀態(tài)變化,如link-up, n累力。1,即n=n+l;
3) 當定時器超時后,如果SAS鏈路狀態(tài)仍然處于設(shè)定的狀態(tài)變化,例 如為link-up,則可令n氣n+l)/2作為該SAS鏈路下一次后退算法計算的初始值;當定時器超時后,如果SAS鏈路狀態(tài)不再處于設(shè)定的狀態(tài)變化,如變 為link-down,貝寸可令11=0。
當SAS鏈路發(fā)生設(shè)定的狀態(tài)變化時,將n的當前取值代入二元指數(shù)后
退算法函數(shù)/;(")=^'(2"—D (B"W,中,得到延時時長。
力(AO (">A0. 此后退算法的特點是
1) 當SAS鏈路狀態(tài)變化越多、越頻繁,后退算法就會使用更長的延時 時間,來抑制存儲系統(tǒng)的拓樸變化。
2) 這種后退算法能夠記錄SAS鏈路變化的歷史值,有過不良歷史記錄 的SAS鏈路,后續(xù)變化會用更長的延時時間。
此外,實際應用中,也可采用線性增值后退算法或其它后退算法確定延 時時長。
本發(fā)明實施例中,當監(jiān)控實體為Expander設(shè)備,且該Expander設(shè)備的 SAS鏈路包括兩條或兩條以上時,則該Expander設(shè)備可對其兩條或兩條以 上的SAS鏈路的Discovery過程進行合并處理。即當Expander設(shè)備確定自 身的某個或某些SAS鏈路的第一定時器的延時超時后,可不立即發(fā)起 Discovery過程,而是執(zhí)行如圖3所示的流程,包括
步驟301,確定當前合并處理時長。
步驟302,啟動對應所述當前合并處理時長的延時定時器,記為第二定時器。
步驟303,在所述第二定時器的延時期間,Expander設(shè)備確定其它SAS 鏈路的第一定時器的延時是否超時,如果是,則執(zhí)行步驟304;否則,執(zhí)行 步驟305。
本實施例中,如果在第二定時器的延時期間,Expander設(shè)備接收到SMP DISCOVER請求,則可停止所述第二定時器的延時,結(jié)束當前流程,并響 應所述SMP DISCOVER請求。
步驟304,確定新的合并處理時長,將所述新的合并處理時長作為當前合并處理時長,并返回執(zhí)行步驟302。
步驟305,在所述第二定時器的延時超時后,對應所有第一定時器的延 時超時的SAS鏈^各發(fā)起一個Discovery過程。
本實施例中,合并處理時長的確定方法可有多種。例如,可以預先設(shè)定 固定的合并處理時長作為當前的合并處理時長,也可以是按某種算法(如后 退算法)確定當前的合并處理時長和新的合并處理時長。下面以線性增值后 退算法為例,對本發(fā)明實施例中確定合并處理時長的方法進行詳細描述。 設(shè)置如式(l)所示的線性增值后退算法函數(shù)/2(n): /2(n)=w/"(T x n, Tmax) (2) 其中,T為時間系數(shù),表示后退算法的時間粒度,用戶可根據(jù)實際需要 進行配置,并可設(shè)置默認值,例如100ms; Tmax為最大延時常數(shù),表示后退 算法最大的延時時間,用戶可根據(jù)實際需要行進行配置,并可設(shè)置默認值, 例如12s; n為輸入?yún)?shù),表示第幾次進行合并處理延時。 其中,n的計算方法可如下所示
1) 系統(tǒng)啟動后i殳置n的初始值n^O;
2) 每進行一次延時,n累力口 1,即n=n+l;
3) 當定時器超時或停止后,令nK)。
當Expander設(shè)備確定SAS鏈路的當前延時時長的延時超時時,將n的 當前取值代入線性增值后退算法函數(shù)/2(n)-mz'"(T x n, Tmax)t,得到合并處理 時長。
此外,也可采用二元指數(shù)后退算法或其它后退算法確定延時時長。 實際應用中,Expander設(shè)備在確定自身的某個或某些SAS鏈路的第一 定時器的延時超時后,也可只進行一次合并處理時長的延時,即若當前不存 在第二定時器的延時,則確定當前合并處理時長,啟動對應所述當前合并處 理時長的第二定時器,在第二定時器的延時超時后,對應所有第一定時器的 延時超時的SAS鏈路發(fā)起一個Discovery過程。若當前存在第二定時器的延 時,則不進行任何處理。其中,若Expander設(shè)備在第二定時器的延時超時前,接收到SMP DISCOVER請求,則可停止所述第二定時器的延時,并響應所述SMP DISCOVER請求。
為了進一步將存在鏈路連接不可靠、物理鏈路存在故障、或SAS設(shè)備 和其它相關(guān)設(shè)備的固件錯誤或硬件故障等情況的鏈路查找出來,本實施例中 可進一步對鏈路狀態(tài)變化進行監(jiān)控。
例如,可為每條SAS鏈路設(shè)置統(tǒng)計時間區(qū)間、以及該統(tǒng)計時間區(qū)間內(nèi) 的鏈路狀態(tài)告警閾值。之后,對應每條SAS鏈路,統(tǒng)計其每個統(tǒng)計時間區(qū) 間內(nèi)的鏈路狀態(tài)變化次數(shù),在所述SAS鏈路的鏈路狀態(tài)變化次數(shù)大于其對 應的鏈路狀態(tài)告警閾值時,對所述SAS鏈路進行告警。
進一步地,還可以為每條SAS鏈路設(shè)置該統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài) 禁用閾值,當統(tǒng)計到SAS鏈路每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù)大 于其對應的鏈路狀態(tài)禁用閾值時,禁用該SAS鏈路。
此外,還可以為每條SAS鏈路設(shè)置鏈路狀態(tài)告警總閾值,之后,對應 每條SAS鏈路,統(tǒng)計其鏈路狀態(tài)總的變化次數(shù),在所述SAS鏈路的鏈路狀 態(tài)總變化次數(shù)大于其對應的鏈路狀態(tài)告警總閾值時,對所述SAS鏈路進行 告警。
具體實現(xiàn)時,也可以只設(shè)置鏈路狀態(tài)告警總闊值,并只對鏈路狀態(tài)總變 化次數(shù)進行監(jiān)控。
下面以某一條SAS鏈路為例,對上述過程進行詳細描述 為該SAS鏈路保存一組變量和閾值常量
*統(tǒng)計時間區(qū)間T:用戶設(shè)定的監(jiān)控SAS鏈路狀態(tài)的變化時間段???默認設(shè)置為1小時。
*統(tǒng)計時間區(qū)間內(nèi)鏈路狀態(tài)告警閾值Ml:統(tǒng)計時間區(qū)間內(nèi)鏈路狀態(tài)變 化超出此值時,對此鏈路進行告警。用戶可以設(shè)定,并可默認設(shè)置為3次。
統(tǒng)計時間區(qū)間內(nèi)鏈^各狀態(tài)禁用閾值M2:統(tǒng)計時間區(qū)間內(nèi)鏈路狀態(tài)變 化超出此值時,禁用此鏈路。用戶可以設(shè)定。用戶可以設(shè)定,并可默認設(shè)置為10次。
*統(tǒng)計時間區(qū)間內(nèi)鏈路狀態(tài)變化計數(shù)器Cl:統(tǒng)計時間區(qū)間內(nèi)鏈路狀態(tài) 變化的統(tǒng)計值。
參鏈路狀態(tài)告警總閾值M3:鏈路狀態(tài)總的變化超出此值時,對此鏈路
進行告警。用戶可以設(shè)定,并可默認設(shè)置為10次。
鏈路狀態(tài)變化總計數(shù)器C2:鏈路狀態(tài)變化的總統(tǒng)計值。
監(jiān)控SAS鏈路狀態(tài)的變化次數(shù),根據(jù)用戶設(shè)定的閾值,實現(xiàn)告警和鏈
路禁用功能,具體包括
系統(tǒng)初始化后,所有計數(shù)器自動清空。用戶也可以手工清除計數(shù)器。 當SAS鏈路狀態(tài)變化時,如發(fā)生link-up時,增加Cl和C2的值,并進
行以下的處理
1) 如果C1〉M1,進行鏈路告警處理;
2) 如果C1〉M2,進行鏈路禁用處理。
3 )如果C2 > M3,進行鏈路總告警處理。
實際應用中,統(tǒng)計每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù)時,可采用 環(huán)算法或其它算法進行統(tǒng)計。
下面仍以某一條SAS鏈路為例,對采用環(huán)算法統(tǒng)計狀態(tài)變化次數(shù)時的 上述監(jiān)控過程進行詳細描述
為該SAS鏈路保存一組變量和閾值常量
爭統(tǒng)計時間區(qū)間Ts:用戶設(shè)定的監(jiān)控SAS鏈路狀態(tài)的變化時間段???默認設(shè)置為1小時。
,統(tǒng)計時間粒度Tg:表明統(tǒng)計時間區(qū)間移動的最小單位,可默認設(shè)置 為IO分鐘。
*Ts內(nèi)鏈路狀態(tài)告警閾值MAXsw: Ts內(nèi)鏈路狀態(tài)變化超出此值時, 對此鏈路進行告警。用戶可以設(shè)定,默認3次。
Ts內(nèi)鏈路狀態(tài)禁用閾值MAXsd: Ts內(nèi)鏈路狀態(tài)變化超出此值時,禁
用此鏈路。用戶可以設(shè)定。用戶可以設(shè)定,默認10次。
20 Ts內(nèi)鏈路狀態(tài)變化計數(shù)器CNTs: Ts內(nèi)鏈路狀態(tài)變化的統(tǒng)計值。
Tg內(nèi)鏈路狀態(tài)變化計數(shù)器組(CNT—Gi, i=0,l,...,N}:每個Tg內(nèi)的鏈 路狀態(tài)變化的統(tǒng)計值。CNT一Gi使用環(huán)(ring)實現(xiàn),同時記錄當前的時刻 位置n和最早的時刻位置m。
參鏈路狀態(tài)告警總閾值MAXaw:鏈路狀態(tài)總的變化超出此值時,對此 鏈路進行告警。用戶可以設(shè)定,默認IO次。
,鏈路狀態(tài)變化總計數(shù)器CNTa:鏈路狀態(tài)變化的總統(tǒng)計值。 系統(tǒng)初始化后,所有計數(shù)器自動清空。用戶也可以手工清空計數(shù)器。
1、 CNTs和CNT—Gi算法
當SAS鏈路狀態(tài)變化時,如發(fā)生link-up時,增加CNTs的值。如果CNTs 〉MAXsw,進行鏈路告警處理;如果CNTs>MAXsw,進行鏈路禁用處理。
當SAS鏈路狀態(tài)變化時,如發(fā)生link-up時,增加CNT—Gn的值。每過 Tg時刻,CNTs要減去已經(jīng)超時統(tǒng)計時間區(qū)間的計數(shù)值。
即Tg = Tg+ 1時
CNTs = CNTs - CNT—Gm;
n = INC(n, 1); m= INC(m, 1);
CNT—Gn = 0。
其中INC(n, l)表示環(huán)的索引向前移動一格的算法。
圖4說明了 CNT一G計數(shù)器的一個實現(xiàn)實例。在當前時刻,計數(shù)器 CNT—Gm為3, CNT—Gn為5,下一個時刻到后,m、 n的位置都增加1格, CNT—Gn清0。
2、 CNTa算法
當SAS鏈路狀態(tài)變化時,如發(fā)生link-up時,增加CNTa的值,如果CNTa >MAXaw,進行鏈路總告警處理。
下面再對本發(fā)明實施例中用于實現(xiàn)SAS鏈路狀態(tài)變化抑制的監(jiān)控實體進行 ■if纟田4苗i^。圖5為本發(fā)明實施例中用于實現(xiàn)SAS鏈路狀態(tài)變化抑制的監(jiān)控實體的 示例性結(jié)構(gòu)圖。如圖5所示,該監(jiān)控實體包括檢測單元、延時處理單元和 過程觸發(fā)單元。其中,檢測單元用于檢測監(jiān)控實體的SAS鏈路是否發(fā)生設(shè)定的狀態(tài)變化, 在所述SAS鏈路每發(fā)生一次設(shè)定的狀態(tài)變化時,向延時處理單元發(fā)送一次對應 所述SAS 4連^各的延時通知。延時處理單元用于在每次接收到對應所述SAS鏈路的延時通知時,確定對 應所述SAS鏈路的當前延時時長,并重啟對應所述SAS鏈路的延時定時器(即 第一定時器),啟動第一定時器的延時。其中,延時處理單元若在延時定時器的 延時期間,接收到來自檢測單元的延時通知,則確定新的延時時長,將該新的 延時時長作為當前延時時長,然后重啟延時定時器。過程觸發(fā)單元用于在所述第一定時器的延時超時后,發(fā)起Discovery過程。具體實現(xiàn)時,無論設(shè)定的狀態(tài)變化為何種狀態(tài)變化,監(jiān)控實體為SAS initiator還是Expander設(shè)備,其均可以由延時處理單元在第一定時器的延時超 時后,向過程觸發(fā)單元發(fā)送啟動通知,由過程觸發(fā)單元根據(jù)該啟動通知,發(fā)起 Discovery過程。進一步地,當監(jiān)控實體為Expander設(shè)備、且該Expander設(shè)備的SAS鏈路 包括兩條或兩條以上時,該Expander設(shè)備還可以對自身SAS鏈路的Discovery 過程進行合并處理。相應地,該Expander設(shè)備的結(jié)構(gòu)還可以進一步包括合并處 理單元,如圖6所示,圖6為Expander設(shè)備的一個示例性結(jié)構(gòu)圖。此時,延時處理單元在第一定時器的延時超時后,向合并處理單元發(fā)送啟 動通知。合并處理單元用于接收來自延時處理單元的啟動通知,在每接收到一個啟 動通知時,確定當前的合并處理時間,并重啟對應的第二定時器,以啟動對應 所述合并處理時間的延時,在所述第二定時器的延時超時后,向過程觸發(fā)單元 發(fā)送啟動通知?;蛘?,該合并處理單元用于接收來自延時處理單元的啟動通知, 根據(jù)所述啟動通知,判斷當前是否存在對應合并處理時間的第二定時器的延時,如存在,則不進行任何處理;如不存在,則確定當前合并處理時長,啟動對應 所述當前合并處理時長的第二定時器的延時,在所述第二定時器的延時超時后, 向過程觸發(fā)單元發(fā)送啟動通知。過程觸發(fā)單元才艮據(jù)來自合并處理單元的啟動通知,發(fā)起Discovery過程。 此外,當設(shè)定的狀態(tài)變化為發(fā)生link-up的狀態(tài)變化或發(fā)生link-down的 狀態(tài)變化時,發(fā)起Discovery過程之前,可進一步包括檢測對應的SAS鏈路 是否仍然處于所述設(shè)定的狀態(tài)變化,如果是,再發(fā)起所述Discovery過程。相 應地,圖5所示檢測單元、延時處理單元和過程觸發(fā)單元的交互關(guān)系可如圖7 所示,圖7為監(jiān)控實體的又一個示例性結(jié)構(gòu)圖。其中,檢測單元用于檢測監(jiān)控實體的SAS鏈路是否發(fā)生設(shè)定的狀態(tài)變化, 在所述SAS鏈路每發(fā)生一次設(shè)定的狀態(tài)變化時,向延時處理單元發(fā)送一次對應 所述SAS鏈路的延時通知;根據(jù)來自延時處理單元的超時通知,檢測監(jiān)控實體 的SAS鏈路是否仍處于所述設(shè)定的狀態(tài)變化,如果是,則向過程觸發(fā)單元發(fā)送 啟動通知。延時處理單元用于在每次接收到對應所述SAS鏈;洛的延時通知時,確定對 應所述SAS鏈路的當前延時時長,并重啟對應所述SAS鏈路的延時定時器(即 第一定時器),啟動第一定時器的延時,在所述第一定時器的延時超時后,向檢 測單元發(fā)送超時通知。過程觸發(fā)單元用于根據(jù)來自檢測單元的所述啟動通知,發(fā)起Discovery過程。同樣,對應圖7所示監(jiān)控實體,當監(jiān)控實體為Expander設(shè)備,且該Expander 設(shè)備的SAS鏈路包括兩條或兩條以上時,該監(jiān)控實體可進一步包括合并處理 單元,如圖8所示,圖8為為Expander設(shè)備的又一個示例性結(jié)構(gòu)圖。此時,檢測單元在檢測到監(jiān)控實體的SAS鏈路仍處于設(shè)定的狀態(tài)變化時, 向合并處理單元發(fā)送啟動通知。合并處理單元用于接收來自4企測單元的啟動通知,在每4妄收到一個啟動通 知時,確定當前的合并處理時間,并重啟對應的定時器(即第二定時器),以啟動對應所述合并處理時間的延時,在所述第二定時器的延時超時后,向過程觸 發(fā)單元發(fā)送啟動通知?;蛘?,所述合并處理單元用于接收來自4企測單元的啟動 通知,根據(jù)所述啟動通知,判斷當前是否存在對應合并處理時長的第二定時器的延時,如存在,則不進行任何處理;如不存在,則確定當前合并處理時長, 啟動對應所述當前合并處理時長的第二定時器的延時,在所述第二定時器的延 時超時后,向過程觸發(fā)單元發(fā)送啟動通知。過程觸發(fā)單元用于根據(jù)來自合并處理單元的啟動通知,發(fā)起Discovery過程。具體實現(xiàn)時,對于上述圖5至圖8中任一種具體結(jié)構(gòu)的監(jiān)控實體,其均可 以包括第一監(jiān)控單元和/或第二監(jiān)控單元(圖中未示出)。其中,第一監(jiān)控單元用于對應每條SAS鏈路,統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi) 的鏈路狀態(tài)變化次數(shù),在所述SAS鏈路的鏈路狀態(tài)變化次數(shù)大于其對應的鏈路 狀態(tài)告警閾值時,對所述SAS鏈路進行告警;和/或,在所述SAS鏈路的鏈路 狀態(tài)變化次數(shù)大于其對應的鏈路狀態(tài)禁用閾值時,禁用所述SAS鏈路。第二監(jiān)控單元用于對應每條SAS鏈路,統(tǒng)計其鏈路狀態(tài)總的變化次數(shù),在 所述SAS鏈路的鏈路狀態(tài)總變化次數(shù)大于其對應的鏈路狀態(tài)告警總閾值時,對 所述SAS鏈路進行告警。本發(fā)明實施例中監(jiān)控實體的各組成單元的具體操作過程可與本發(fā)明實施例 中SAS鏈路狀態(tài)變化抑制方法中描述的具體操作過程一致,此處不再贅述。以上對本發(fā)明中的具體實施方式
進行了詳細描述,通過上述描述可以看出, 本發(fā)明具體實施方式
中的技術(shù)方案具有如下優(yōu)點1、 SAS鏈路狀態(tài)變化抑制功能和SAS鏈路狀態(tài)變化合并功能,能夠抑 制SAS鏈路的頻繁變化引起的拓樸振蕩,避免大量頻繁的Discovery過程, 提高了 SAS存儲系統(tǒng)的運行性能和穩(wěn)定性。2、 通過SAS鏈路狀態(tài)變化合并功能,使Expander設(shè)備的SAS鏈路數(shù) 量增加時,Discovery的處理不再隨SAS鏈路數(shù)量線性增加,加快了系統(tǒng)拓 樸穩(wěn)定的速度。3、通過SAS鏈路狀態(tài)變化監(jiān)控功能,能夠?qū)Σ环€(wěn)定的鏈路實現(xiàn)告警和 鏈路自動禁用,避免不穩(wěn)定設(shè)備帶來的存儲系統(tǒng)的不可靠性風險。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了 進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的較佳實施例而已, 并非用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所作的任 何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種串行附接小型計算機系統(tǒng)接口SAS鏈路狀態(tài)變化抑制方法,其特征在于,該方法包括A、監(jiān)控實體檢測到自身的SAS鏈路發(fā)生設(shè)定的狀態(tài)變化時,確定對應所述SAS鏈路的當前延時時長;B、啟動對應所述當前延時時長的第一定時器;C、在所述第一定時器的延時期間,監(jiān)控實體檢測所述SAS鏈路是否再次發(fā)生設(shè)定的狀態(tài)變化,如果是,則確定對應所述SAS鏈路的新的延時時長,將所述新的延時時長作為當前延時時長,并返回執(zhí)行步驟B;否則,在所述第一定時器的延時超時后,發(fā)起Discovery過程。
2、 如權(quán)利要求l所述的方法,其特征在于,所述監(jiān)控實體為SAS initiator; 或者,所述監(jiān)控實體為Expander設(shè)備。
3、 如權(quán)利要求2所述的方法,其特征在于,所述監(jiān)控實體為Expander設(shè) 備,且所述Expander設(shè)備的SAS鏈路包括兩條或兩條以上;所述Expander設(shè)備在確定自身的某個或某些SAS鏈路的第 一定時器的延時 超時后,執(zhí)行步驟C所述的發(fā)起Discovery過程之前,進一步包括 Cl、確定當前合并處理時長;C2、啟動對應所述當前合并處理時長的第二定時器;C3、在所述第二定時器的延時期間,Expander設(shè)備確定其它SAS鏈路的第 一定時器的延時是否超時,如果是,則確定新的合并處理時長,將所述新的合 并處理時長作為當前合并處理時長,并返回執(zhí)行步驟C2;否則,在所述第二定 時器的延時超時后,對應所有第一定時器的延時超時的SAS鏈路發(fā)起一個 Discovery過程。
4、 如權(quán)利要求3所述的方法,其特征在于,所述合并處理時間為按照后 退算法計算得到的合并處理時間。
5、 如權(quán)利要求4所述的方法,其特征在于,所述后退算法包括二元指數(shù)后退算法或線性增值后退算法。
6、 如權(quán)利要求5所述的方法,其特征在于,所述后退算法為線性增值后退算法;所述按照后退算法計算得到的合并處理時間包括對于線性增值后退算法 函數(shù)力(n)中的輸入?yún)?shù)n,在系統(tǒng)啟動后設(shè)置n的初始值n=0;每進行一次延時, n累加l;在當前合并處理時長的延時超時后,令11=0;當Expander設(shè)備確定SAS鏈路的第一定時器的延時超時時,將n的當前取 值代入線性增值后退算法函數(shù)力(n)中,得到合并處理時長。
7、 如權(quán)利要求2所述的方法,其特征在于,所述監(jiān)控實體為Expander設(shè) 備,且所述Expander設(shè)備的SAS鏈路包括兩條或兩條以上;所述Expander設(shè)備在確定自身的某個或某些SAS鏈路的第一定時器的延時 超時后,執(zhí)行步驟C所述的發(fā)起Discovery過程之前,進一步包括判斷當前 是否存在對應合并處理時長的第二定時器的延時,如不存在,則確定當前合并 處理時長,啟動對應所述當前合并處理時長的第二定時器,在所述第二定時器 的延時超時后,對應所有第一定時器的延時超時的SAS鏈路發(fā)起一個Discovery 過程。
8、 如權(quán)利要求3至7中任一項所述的方法,其特征在于,該方法進一步包 括在所述第二定時器的延時超時前,接收到SMP DISCOVER請求,則停止 所述第二定時器的延時,并響應所述SMP DISCOVER請求。
9、 如權(quán)利要求1至7中任一項所述的方法,其特征在于,所述延時時間為 按照后退算法計算得到的延時時間。
10、 如權(quán)利要求9所述的方法,其特征在于,所述后退算法包括二元指 數(shù)后退算法或線性增值后退算法。
11、 如權(quán)利要求IO所述的方法,其特征在于,所述后退算法為二元指數(shù)后 退算法;所述按照后退算法計算得到延時時間包括對于二元指數(shù)后退算法函數(shù)/1(n)中的輸入?yún)?shù)n,在系統(tǒng)啟動后設(shè)置n的初始值rK);每檢測到一次設(shè)定的狀態(tài)變化n累加1;在當前延時時長的延時超 時后,如果SAS鏈路狀態(tài)仍然處于設(shè)定的狀態(tài)變化,則令n=(n+l)/2作為該SAS 鏈路下一次后退算法計算的初始值,否則,令薩O;當SAS鏈路發(fā)生設(shè)定的狀態(tài)變化時,將n的當前取值代入二元指數(shù)后退算 法函數(shù)/i(n)中,得到延時時長。
12、 如權(quán)利要求1至7中任一項所述的方法,其特征在于,所述設(shè)定的狀 態(tài)變化為任意狀態(tài)變化;或者為發(fā)生link-up的狀態(tài)變化; 或者為發(fā)生link-down的狀態(tài)變化。1
13、 如權(quán)利要求12所述的方法,其特征在于,所述設(shè)定的狀態(tài)變化為發(fā) 生link-up的狀態(tài)變化或者發(fā)生link-down的狀態(tài)變化時,所述發(fā)起Discovery 過程之前,進一步包括檢測所述SAS鏈路是否仍然處于所述設(shè)定的狀態(tài)變化, 如果是,則發(fā)起所述Discovery過程。
14、 如權(quán)利要求1至7中任一項所述的方法,其特征在于,該方法進一步 包括為每條SAS鏈路設(shè)置統(tǒng)計時間區(qū)間、以及該統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)告 警閾值和鏈路狀態(tài)禁用閾值;對應每條SAS鏈路,統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù),在SAS鏈路進行告警;在所述SAS鏈路的鏈路狀態(tài)變化次數(shù)大于其對應的鏈路狀 態(tài)禁用閾值時,禁用所述SAS鏈路。
15、 如權(quán)利要求14所述的方法,其特征在于,所述對應每條SAS鏈路, 統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù)為對應每條SAS鏈路,采用 環(huán)算法統(tǒng)計其每個統(tǒng)計時間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù)。
16、 如權(quán)利要求14所述的方法,其特征在于,該方法進一步包括 為每條SAS鏈路設(shè)置鏈路狀態(tài)告警總闊值;對應每條SAS鏈路,統(tǒng)計其鏈路狀態(tài)總的變化次數(shù),在所述SAS鏈路的鏈路狀態(tài)總變化次數(shù)大于其對應的鏈路狀態(tài)告警總闊值時,對所述SAS鏈路進行 告警。
17、 一種用于實現(xiàn)SAS鏈路狀態(tài)變化抑制的監(jiān)控實體,其特征在于,該監(jiān) 控實體包括檢測單元,用于檢測監(jiān)控實體的SAS鏈路是否發(fā)生設(shè)定的狀態(tài)變化,在所 述SAS鏈路每發(fā)生一次設(shè)定的狀態(tài)變化時,向延時處理單元發(fā)送一次對應所述 SAS鏈路的延時通知;延時處理單元,用于在每次接收到對應所述SAS鏈路的延時通知時,確定 對應所述SAS鏈路的當前延時時長,并重啟對應所述SAS鏈路的第一定時器;過程觸發(fā)單元,用于在所述第一定時器的延時超時后,發(fā)起Discovery過程。
18、 如權(quán)利要求17所述的監(jiān)控實體,其特征在于,所述延時處理單元進一 步在所述第一定時器的延時超時后,發(fā)送啟動通知;所述過程觸發(fā)單元,用于根據(jù)所述啟動通知,發(fā)起Discovery過程。
19、 如權(quán)利要求18所述的監(jiān)控實體,其特征在于,所述監(jiān)控實體為Expander 設(shè)備,且所述Expander設(shè)備的SAS鏈路包括兩條或兩條以上;該監(jiān)控實體進一步包括:合并處理單元,用于接收來自延時處理單元的啟 動通知,在每接收到一個啟動通知時,確定當前的合并處理時間,并重啟對應 的第二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元發(fā)送啟動通 知;或者,所述合并處理單元用于接收來自延時處理單元的啟動通知,根據(jù)所 述啟動通知,判斷當前是否存在對應合并處理時間的第二定時器,如存在,則 不進行任何處理;如不存在,則確定當前合并處理時長,啟動對應所述當前合 并處理時長的第二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元 發(fā)送啟動通知。
20、 如權(quán)利要求17所述的監(jiān)控實體,其特征在于,所述設(shè)定的狀態(tài)變化為 發(fā)生link-up的狀態(tài)變化或發(fā)生link-down的狀態(tài)變化;所述延時處理單元進一步在所述第一定時器的延時超時后,向檢測單元發(fā)送超時通知;所述檢測單元進一步根據(jù)來自延時處理單元的超時通知,檢測監(jiān)控實體的 SAS鏈路是否仍處于所述設(shè)定的狀態(tài)變化,如果是,則發(fā)送啟動通知; 所述過程觸發(fā)單元,用于根據(jù)所述啟動通知,發(fā)起Discovery過程。
21、 如權(quán)利要求20所述的監(jiān)控實體,其特征在于,所述監(jiān)控實體為Expander 設(shè)備,且所述Expander設(shè)備的SAS鏈路包括兩條或兩條以上;該監(jiān)控實體進一步包括合并處理單元,用于接收來自檢測單元的啟動通 知,在每接收到一個啟動通知時,確定當前的合并處理時間,并重啟對應的第 二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元發(fā)送啟動通知;或者,所述合并處理單元用于接收來自檢測單元的啟動通知,根據(jù)所述啟 動通知,判斷當前是否存在對應合并處理時長的第二定時器,如存在,則不進 行任何處理;如不存在,則確定當前合并處理時長,啟動對應所述當前合并處 理時長的第二定時器,在所述第二定時器的延時超時后,向過程觸發(fā)單元發(fā)送 啟動通知。
22、 如權(quán)利要求17至21中任一項所述的監(jiān)控實體,其特征在于,該監(jiān)控 實體進一步包括第一監(jiān)控單元,用于對應每條SAS鏈路,統(tǒng)計其每個統(tǒng)計時 間區(qū)間內(nèi)的鏈路狀態(tài)變化次數(shù),在所述SAS鏈路的鏈路狀態(tài)變化次數(shù)大于其對 應的鏈路狀態(tài)告警閾值時,對所述SAS鏈路進行告警;在所述SAS鏈路的鏈 路狀態(tài)變化次數(shù)大于其對應的鏈路狀態(tài)禁用閾值時,禁用所述SAS鏈路。
23、 如權(quán)利要求22所述的監(jiān)控實體,其特征在于,該監(jiān)控實體進一步包括 第二監(jiān)控單元,用于對應每條SAS鏈路,統(tǒng)計其鏈路狀態(tài)總的變化次數(shù),在所 述SAS鏈路的鏈路狀態(tài)總變化次數(shù)大于其對應的鏈路狀態(tài)告警總閾值時,對所 述SAS鏈路進行告警。
全文摘要
本發(fā)明公開了一種串行附接小型計算機系統(tǒng)接口(SAS)鏈路狀態(tài)變化抑制方法,包括A、監(jiān)控實體檢測到自身的SAS鏈路發(fā)生設(shè)定的狀態(tài)變化時,確定對應所述SAS鏈路的當前延時時長;B、啟動對應的延時;C、在延時期間,監(jiān)控實體檢測所述SAS鏈路是否再次發(fā)生設(shè)定的狀態(tài)變化,如果是,則重新確定當前延時時長,并返回執(zhí)行步驟B;否則,在延時超時后,發(fā)起Discovery過程。此外,本發(fā)明還公開了一種用于實現(xiàn)SAS鏈路狀態(tài)變化抑制的監(jiān)控實體。本發(fā)明所公開的技術(shù)方案能夠避免大量頻繁的Discovery過程,增加存儲系統(tǒng)的運行性能和穩(wěn)定性。
文檔編號H04L12/26GK101515871SQ200910081019
公開日2009年8月26日 申請日期2009年3月27日 優(yōu)先權(quán)日2009年3月27日
發(fā)明者磊 徐 申請人:杭州華三通信技術(shù)有限公司