一種多路徑設備的命名方法、裝置、主機及通信系統的制作方法
【技術領域】
[0001] 本發明涉及電子設備領域,尤其涉及一種多路徑設備的命名方法、裝置、主機及通 信系統。
【背景技術】
[0002] 多路徑軟件是運行在主機上用于合并影像盤、實現故障切換與負載均衡的應用軟 件。主機與磁陣連接時,從主機到磁陣中同一 LUN(Logical Unit,邏輯單元)的每一條通 路,都會形成一條路徑,每條路徑在Linux系統中表現為一個磁盤設備,以一個設備文件呈 現,但實際上這些磁盤設備指向磁陣中的同一個LUN。
[0003] 由于相同的LUN對應的WWID(World Wide Identifier,全球標識符)也相同,多路 徑軟件通過比較這些磁盤設備的醫ID,將醫ID相同的磁盤設備合并而創建成一個多路徑 設備(Multipath Device),即將指向磁陣中同一 LUN的路徑合并而創建成的邏輯設備,供 上層應用使用。
[0004] 生成的多路徑設備需要命名,現有的命名方式不夠嚴謹、完善,采用現有的命名方 式進行命名后存在諸多問題,例如會出現同一主機上的不同多路徑設備的名稱重復,或者 在多臺主機連接同一個磁陣的環境中,同一 LUN在不同主機中映射的多路徑設備的名稱不 一致。
【發明內容】
[0005] 本發明提供一種多路徑設備的命名方法、裝置、主機及通信系統,解決現有命名方 式不夠完善的問題。
[0006] 為解決上述技術問題,本發明采用以下技術方案:
[0007] -種多路徑設備的命名方法,所述多路徑設備為將指向磁陣中同一邏輯單元的路 徑合并而創建的邏輯設備,所述多路徑設備的命名方法包括:
[0008] 獲取所述多路徑設備在磁陣中所對應的邏輯單元的邏輯單元號;
[0009] 根據所述邏輯單元號和預設的對應關系記錄,對所述多路徑設備進行命名,并更 新所述對應關系記錄,所述對應關系記錄中記錄有已創建的多路徑設備的名稱或已創建的 多路徑設備在所述磁陣中對應的邏輯單元的邏輯單元號,與該對應的邏輯單元的全球標識 符之間的 對應關系。
[0010] 在一些實施例中,根據所述邏輯單元號和預設的對應關系記錄,對所述多路徑設 備進行命名,并更新所述對應關系記錄,包括:
[0011] 按照預設的名稱生成規則根據所述邏輯單元號生成名稱;
[0012] 根據所述名稱查詢所述對應關系記錄;
[0013] 若所述對應關系記錄中存在所述名稱,則比較所述對應關系記錄中所述名稱對應 的全球標識符,與所述多路徑設備在磁陣中所對應的邏輯單元的全球標識符是否一致;若 一致,則將所述名稱作為所述多路徑設備的名稱;若不一致,則將所述名稱作為所述多路徑 設備的名稱,且將所述對應關系記錄中所述名稱對應的全球標識符更改為所述多路徑設備 在磁陣中所對應的邏輯單元的全球標識符;
[0014] 若所述對應關系記錄中不存在所述名稱,則將所述名稱作為所述多路徑設備的名 稱,且將所述名稱、所述多路徑設備在磁陣中所對應的邏輯單元的全球標識符,以及兩者的 對應關系,加入所述對應關系記錄中。
[0015] 在一些實施例中,根據所述邏輯單元號和預設的對應關系記錄,對所述多路徑設 備進行命名,并更新所述對應關系記錄,包括:
[0016] 根據所述邏輯單元號查詢所述對應關系記錄;
[0017] 若所述對應關系記錄中存在所述邏輯單元號,則比較所述對應關系記錄中所述邏 輯單元號對應的全球標識符,與所述多路徑設備在磁陣中所對應的邏輯單元的全球標識符 是否一致;若一致,則按照預設的名稱生成規則根據所述邏輯單元號生成名稱,作為所述多 路徑設備的名稱;若不一致,則按照預設的名稱生成規則根據所述邏輯單元號生成名稱,作 為所述多路徑設備的名稱,且將所述對應關系記錄中所述邏輯單元號對應的全球標識符更 改為所述多路徑設備在磁陣中所對應的邏輯單元的全球標識符;
[0018] 若所述對應關系記錄中不存在所述邏輯單元號,則按照預設的名稱生成規則根據 所述邏輯單元號生成名稱,作為所述多路徑設備的名稱,且將所述邏輯單元號、所述多路徑 設備在磁陣中所對應的邏輯單元的全球標識符,以及兩者的對應關系,加入所述對應關系 記錄中。
[0019] 在一些實施例中,按照預設的名稱生成規則根據所述邏輯單元號生成名稱包括:
[0020] 根據所述邏輯單元號,以及預設的邏輯單元號與英文字母的一一對應關系,生成 英文字母;
[0021] 將spath與生成的英文字母結合,且spath位于生成的英文字母之前,生成名稱。
[0022] 在一些實施例中,若刪除已創建的多路徑設備,還包括:根據刪除的多路徑設備的 名稱,或其在磁陣中所對應的邏輯單元的邏輯單元號查詢所述對應關系記錄;若所述對應 關系記錄中存在該刪除的多路徑設備的名稱,或其在磁陣中所對應的邏輯單元的邏輯單元 號,則刪除所述對應關系記錄中該刪除的多路徑設備的名稱,或其在磁陣中所對應的邏輯 單元的邏輯單元號,以及對應的全球標識符。
[0023] -種多路徑設備的命名裝置,所述多路徑設備的命名裝置包括:
[0024] 獲取模塊,用于獲取所述多路徑設備在磁陣中所對應的邏輯單元的邏輯單元號;
[0025] 命名處理模塊,用于根據所述獲取模塊獲取的邏輯單元號和預設的對應關系記 錄,對所述多路徑設備進行命名,并更新所述對應關系記錄,所述對應關系記錄中記錄有已 創建的多路徑設備的名稱或已創建的多路徑設備在所述磁陣中對應的邏輯單元的邏輯單 元號,與該對應的邏輯單元的全球標識符之間的一一對應關系。
[0026] 在一些實施例中,所述命名處理模塊包括:
[0027] 第一生成子模塊,用于按照預設的名稱生成規則根據所述邏輯單元號生成名稱, 將生成的所述名稱作為所述多路徑設備的名稱;
[0028] 第一查詢子模塊,用于根據所述第一生成子模塊生成的所述名稱查詢所述對應關 系記錄;
[0029] 第一比較子模塊,用于所述第一查詢子模塊的查詢結果為所述對應關系記錄中存 在所述名稱時,則比較所述對應關系記錄中所述名稱對應的全球標識符,與所述多路徑設 備在磁陣中所對應的邏輯單元的全球標識符是否一致;
[0030] 第一更新子模塊,用于所述第一比較子模塊的比較結果為所述對應關系記錄中所 述名稱對應的全球標識符,與所述多路徑設備在磁陣中所對應的邏輯單元的全球標識符不 一致時,將所述對應關系記錄中所述名稱對應的全球標識符更改為所述多路徑設備在磁陣 中所對應的邏輯單元的全球標識符;以及所述第一查詢子模塊的查詢結果為所述對應關系 記錄中不存在所述名稱時,將所述名稱、所述多路徑設備在磁陣中所對應的邏輯單元的全 球標識符,以及兩者的對應關系,加入所述對應關系記錄中。
[0031] 在另一些實施例中,所述命名處理模塊包括:
[0032] 第二查詢子模塊,用于根據所述邏輯單元號查詢所述對應關系記錄;
[0033] 第二比較子模塊,用于所述第二查詢子模塊的查詢結果為所述對應關系記錄中存 在所述邏輯單元號時,比較所述對應關系記錄中所述邏輯單元號對應的全球標識符,與所 述多路徑設備在磁陣中所對應的邏輯單元的全球標識符是否一致;
[0034] 第二生成子模塊,用于按照預設的名稱生成規則根據所述邏輯單元號生成名稱, 將生成的所述名稱作為所述多路徑設備的名稱;
[0035] 第二更新子模塊,用于所述第二比較子模塊的比較結果為所述對應關系記錄中所 述邏輯單元號對應的全球標識符,與所述多路徑設備在磁陣中所對應的邏輯單元的全球標 識符不一致時,將所述對應關系記錄中所述邏輯單元號對應的全球標識符更改為所述多路 徑設備在磁陣中所對應的邏輯單元的全球標識符;以及所述第二查詢子模塊的查詢結果為 所述對應關系記錄中不存在所述邏輯單元號時,將所述邏輯單元號、所述多路徑設備在磁 陣中所對應的邏輯單元的全球標識符,以及兩者的對應關系,加入所述對應關系記錄中。
[0036] 在一些實施例中,該多路徑設備的命名裝置還包括:
[0037] 第三查詢子模塊,用于刪除已創建的多路徑設備時,根據刪除的多路徑設備的名 稱,或其在磁陣中所對應的邏輯單元的邏輯單元號查詢所述對應關系記錄;
[0038] 第三更新子模塊,用于所述第三查詢子模塊的查詢結果為所述對應關系記錄中 存在刪除的多路徑設備的名稱,或其在磁陣中所對應的邏輯單元的邏輯單元號,則刪除所 述對應關系記錄中刪除的多路徑設備的名稱,或其在磁陣中所對應的邏輯單元的邏輯單元 號,以及對應的全球標識符。
[0039] -種主機,所述主機包括上述任一項所述的多路徑設備的命名裝置。
[0040] 一種通信系統,包括連接同一磁陣的至少一個上述所述的主機,各主機中多路徑 設備的命名裝置按照相同的名稱生成規則根據邏輯單元號生成名稱。
[0041] 本發明提供的多路徑設備的命名方法、裝置、主機及通信系統,根據多路徑設備在 磁陣中所對應的邏輯單元的邏輯單元號和預設的對應關系記錄,對該多路徑設備進行命 名,并更新該對應關系記錄,該對應關系記錄中記錄有已創建的多路徑設備的名稱或已創 建的多路徑設備在所述磁陣中對應的邏輯單元的邏輯單元