設備更新的方法、存儲設備及應用服務器的制造方法
【技術領域】
[0001]本發明涉及存儲領域,尤其涉及一種設備更新的方法、存儲設備及應用服務器。
【背景技術】
[0002]現有存儲系統的組網架構包括應用服務器和存儲設備。其中,一個存儲設備包括多個存儲控制器,一個存儲控制器包括多個前端接口模塊,一個前端接口模塊包括多個光口模塊;應用服務器運行有應用,操作系統以及與所述前端接口模塊相匹配的驅動模塊,應用服務器與存儲設備之間的鏈路的一端連接應用服務器的驅動模塊,另一端連接前端接口模塊的上的光口模塊。為了防止應用服務器與存儲設備之間的某一鏈路斷開后,該鏈路上的業務被迫中斷,現有的組網架構中,應用服務器與存儲設備之間通常包括互為冗余的多條鏈路。也就是說,應用服務器的驅動模塊可與存儲設備上的多個光口模塊相連。這樣,應用服務器在檢測到某條鏈路發生故障時,可以將發生故障的鏈路上的業務切換到其他鏈路上,避免了業務中斷。
[0003]存儲設備的更新包括軟件的更新以及硬件的替換,例如,為了解決存儲的產品軟件在現網中長期運行出現的缺陷,或提高產品軟件的可靠性,存儲廠商會對存儲控制器上的產品軟件執行在線升級,又例如,存儲控制器上的前端接口模塊出現問題時,為了防止影響正常業務,存儲廠商會在線更換出現問題的前端接口模塊,當前端接口模塊上的光口模塊出現故障時,也需要對前端接口模塊上的光口模塊執行在線更換。由于軟件在線升級時,通常需要對存儲控制器進行下電處理,在對前端接口模塊和光口模塊執行在線更換時,也需要對前端接口模塊和光口模塊進行下電處理,因此,設備更新將導致相關鏈路斷開。
[0004]現有技術在對存儲設備進行設備更新時,會首先對相關模塊進行下電,此時,應用服務器由于無法預先感知存儲設備的哪些模塊已下電,因此該應用服務器會繼續向已斷開的鏈路發送業務消息,并且,該應用服務器在發送不成功后,會對該業務消息進行重傳,直到重傳次數達到閾值時,才將該業務消息切換到其他鏈路發送。由此可知,現有技術在對存儲設備進行設備更新的過程中,從相關鏈路斷開到該鏈路的業務切換至其他鏈路,費時較長,鏈路切換的效率低下。
【發明內容】
[0005]本發明的目的是提供一種設備更新的方法、存儲設備及應用服務器,用以解決現有技術在進行設備更新時鏈路切換的效率低下的技術問題。
[0006]上述目的將通過獨立權利要求中的特征來達成。進一步的實現方式在從屬權利要求、說明書和附圖中體現。
[0007]第一方面,提供一種設備更新方法,所述方法應用于存儲設備,所述存儲設備包括存儲控制器,所述存儲控制器包括前端接口模塊,所述前端接口模塊包括光口模塊;所述方法包括:所述存儲設備接收設備更新指令;所述存儲設備根據所述設備更新指令確定所述存儲設備與應用服務器之間需要斷開的鏈路;所述存儲設備接收所述應用服務器在所述鏈路上發送的業務的報文消息,并在所述鏈路上向所述應用服務器發送用于響應所述報文消息的錯誤碼,所述錯誤碼被用于將所述業務的報文消息切換到其他鏈路進行發送;所述存儲設備接收所述應用服務器發送的用于指示所述業務切換鏈路成功的消息,并在確定所述鏈路上的所有業務均切換成功后,執行所述設備更新指令指示的更新操作。
[0008]采用上述方案,由于應用服務器在接收到存儲設備發送的錯誤碼后,即可對業務切換鏈路,而無需對報文消息進行多次重傳才切換業務的鏈路,提高了鏈路切換的效率。另夕卜,該存儲設備在鏈路上的所有業務切換成功后,才對相關的模塊進行下電處理,保證了應用服務器與存儲設備之間的業務不會中斷,實現設備的在線更新。
[0009]在結合第一方面的第一種可能的實現方式中,所述執行所述設備更新指令指示的更新操作,包括:所述存儲設備根據所述設備更新指令對所述存儲控制器上運行的軟件,所述前端接口模塊,所述光口模塊中的至少一種執行在線更新。也就是說,本發明所述的設備更新可以是對存儲控制器上的軟件執行在線更新,也可以是對前端接口模塊的在線替換,還可以是對光口模塊的在線替換,其中,“在線”是指存儲設備與應用服務器之間的業務不中斷。
[0010]結合第一方面,或者第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述存儲設備接收所述應用服務器在所述鏈路上發送的業務的報文消息,并在所述鏈路上向所述應用服務器發送用于響應所述報文消息的錯誤碼之前,包括:所述存儲設備獲取所述應用服務器發送的鏈路冗余信息;所述存儲設備根據所述鏈路冗余信息確定所述應用服務器與所述存儲設備之間存在所述鏈路的冗余鏈路,所述冗余鏈路被用于所述應用服務器將所述鏈路上的業務的報文消息切換至所述冗余鏈路發送。從而保證了該應用服務器能夠切換業務的發送鏈路,進而保證了該存儲設備可以對相關模塊進行下電處理并進行軟件升級或更換。
[0011]結合第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述鏈路冗余信息包括所述應用服務器與所述存儲設備之間的每條鏈路的存儲控制器標識,所述設備更新指令用于對所述存儲控制器上運行的軟件執行在線更新,則所述存儲設備根據所述鏈路冗余信息確定所述應用服務器與所述存儲設備之間存在所述鏈路的冗余鏈路,包括:所述存儲設備查詢所述鏈路冗余信息,確定所述應用服務器與所述存儲設備之間存在與所述鏈路具有不同存儲控制器標識的鏈路,所述冗余鏈路包括與所述鏈路具有不同存儲控制器標識的鏈路。
[0012]結合第一方面的第二種可能的實現方式,在第一方面的第四種可能的實現方式中,所述鏈路冗余信息包括所述應用服務器與所述存儲設備之間的每條鏈路的存儲控制器標識和前端接口模塊標識,所述設備更新指令用于對所述前端接口模塊執行在線更換,則所述存儲設備根據所述鏈路冗余信息確定所述應用服務器與所述存儲設備之間存在所述鏈路的冗余鏈路,包括:所述存儲設備查詢所述鏈路冗余信息,確定所述應用服務器與所述存儲設備之間存在與所述鏈路具有不同存儲控制器標識的鏈路,或者與所述鏈路具有相同存儲控制器標識且具有不同前端接口模塊標識的鏈路,所述冗余鏈路包括與所述鏈路具有不同存儲控制器標識的鏈路,以及與所述鏈路具有相同存儲控制器標識、不同前端接口模塊標識的鏈路。
[0013]結合第一方面的第四種可能的實現方式,在第一方面的第五種可能的實現方式中,所述鏈路冗余信息包括所述應用服務器與所述存儲設備之間的每條鏈路的存儲控制器標識,前端接口模塊標識和光口模塊標識,所述設備更新指令用于對所述光口模塊執行在線更換,則所述存儲設備根據所述鏈路冗余信息確定所述應用服務器與所述存儲設備之間存在所述鏈路的冗余鏈路,包括:所述存儲設備查詢所述鏈路冗余信息,確定所述應用服務器與所述存儲設備之間存在與所述鏈路的存儲控制器標識,前端接口模塊標識和光口模塊標識中的任一標識不同的鏈路,所述冗余鏈路包括與所述鏈路的存儲控制器標識,前端接口模塊標識和光口模塊標識中的任一標識不同的鏈路。
[0014]第二方面,提供一種設備更新方法,包括:應用服務器在所述應用服務器與存儲設備之間的鏈路上發送業務的報文消息;所述應用服務器接收所述存儲設備在所述鏈路上發送的用于響應所述報文消息的錯誤碼;所述應用服務器根據所述錯誤碼將所述業務的報文消息切換至所述應用服務器與所述存儲設備之間的其他鏈路進行發送;所述應用服務器向所述存儲設備發送用于指示所述業務切換鏈路成功的消息。由于應用服務器在接收到存儲設備發送的錯誤碼后,即可對業務切換鏈路,而無需對報文消息進行多次重傳才切換業務的鏈路,提高了鏈路切換的效率。
[0015]在結合第二方面的第一種可能的實現方式中,還包括:所述應用服務器遍歷所述應用服務器與所述存儲設備之間的每條鏈路,得到鏈路冗余信息;所述應用服務器將所述鏈路冗余信息發送至所述存儲設備;所述鏈路冗余信息被用于確定所述應用服務器與所述存儲設備之間是否存在所述鏈路的冗余鏈路,以確保該應用服務器能夠切換業務的發送鏈路,進而保證了該存儲設備可以對相關模塊進行下電處理并進行軟件升級或更換。
[0016]第三方面,提供一種存儲設備,所述存儲設備包括存儲控制器,所述存儲控制器包括前端接口模塊,所述前端接口模塊包括光口模塊,所述存儲設備還包括:收發器,用于接收設備更新指令;處理器,用于根據所述設備更新指令確定所述存儲設備與應用服務器之間需要斷開的鏈路;所述收發器還用于,接收所述應用服務器在所述鏈路上發送的業務的報文消息,并在所述鏈路上向所述應用服務器發送用于響應所述報文消息的錯誤碼,所述錯誤碼被用于將所述業務的報文消息切換到其他鏈路進行發送,并接收所述應用服務器發送的用于指示所述業務切換鏈路成功的消息;所述處理器還用于,在確定所述鏈路上的所有業務均切換成功后,執行所述設備更新指令指示的更新操作。
[0017]在結合第三方面的第一種可能的實現方式中,所述處理器具體用于,根據所述設備更新指令對所述存儲控制器上運行的軟件,所述前端接口模塊,所述光口模塊中的至少一種執行在線更新。
[0018]結合第三方面,或者第三方面的第一種可能的實現方式,在第三方面的第二種可能的實現方式中,所述收發器還用于,獲取所述應用服務器發送的鏈路冗余信息;所述處理器還用于,根據所述鏈路冗余信息確定所述應用服務器與所述存儲設備之間存在所述鏈路的冗余鏈路,