一種資源的訪問方法和裝置的制造方法
【技術領域】
[0001]本發明涉及通信技術領域,尤其涉及一種資源的訪問方法和裝置。
【背景技術】
[0002]為了保證客戶端與磁盤之間路徑的可靠性,通常會在客戶端與磁盤之間部署多條路徑,如圖1所示,為客戶端與磁盤之間部署多條路徑的組網示意圖。客戶端通過端口Pl連接到交換機I,客戶端通過端口 P2連接到交換機2。交換機I通過端口 Pl連接到存儲控制器A,交換機I通過端口 P2連接到存儲控制器B。交換機2通過端口 Pl連接到存儲控制器A,交換機2通過端口 P2連接到存儲控制器B。存儲控制器A和存儲控制器B均與磁盤連接。
[0003]客戶端上使用FC(Fibre Channel,光纖通道)卡,且該FC卡上包括端口Pl和端口P2。交換機I上使用FC卡,且該FC卡上包括端口 P1、端口 P2和端口 P3。交換機2上使用FC卡,且該FC卡上包括端口 Pl、端口 P2和端口 P3。存儲控制器A上使用FC卡,且該FC卡上包括端口PAl、端口 PA2。存儲控制器BI上使用FC卡,且該FC卡上包括端口 I3Bl、端口 。此外,每個FC卡上的每個端口均有各自的全球唯一的WWPN(World Wide Port Name,全球唯一端口名稱),可以通過該WffPN連接對應的端口。
[0004]客戶端使用多路徑軟件進行存儲雙控雙活的故障保護,多路徑軟件能夠保護客戶端與交換機之間的光纖路徑故障、交換機故障、交換機與磁盤之間的光纖路徑故障、存儲控制器故障等。在圖1中,當路徑I發生故障時,可以使用路徑I +。當路徑2發生故障時,可以使用路徑2+。當路徑3發生故障時,可以使用路徑3+。當路徑4發生故障時,可以使用路徑3和路徑4+。
[0005]但是,在使用多路徑軟件進行存儲雙控雙活的故障保護時,要求存儲控制器A和存儲控制器B之間是雙活的,即從任意的存儲控制器上都能夠訪問(讀或寫)同一個資源,而不同存儲控制器之間的雙活的實現難度很大。
【發明內容】
[0006]本發明提供一種資源的訪問方法,應用于包括第一存儲控制器和第二存儲控制器的系統中,所述第一存儲控制器上的第一端口與所述第二存儲控制器上的第二端口互為保護端口,所述方法應用在所述第一存儲控制器上,在所述第二存儲控制器對應的路徑發生故障時,所述方法包括:在所述第一端口上創建所述第二端口對應的虛擬端口 ;獲取所述第二存儲控制器對應的資源;將所述第二存儲控制器對應的資源分配給所述虛擬端口;通過所述虛擬端口將所述第二存儲控制器對應的資源提供給客戶端,以使所述客戶端通過所述虛擬端口訪問所述第二存儲控制器對應的資源。
[0007]本發明提供一種資源的訪問裝置,應用于包括第一存儲控制器和第二存儲控制器的系統中,所述第一存儲控制器上的第一端口與所述第二存儲控制器上的第二端口互為保護端口,所述裝置應用在所述第一存儲控制器上,在所述第二存儲控制器對應的路徑發生故障時,所述裝置具體包括:創建模塊,用于在所述第一端口上創建所述第二端口對應的虛擬端口 ;獲取模塊,用于獲取所述第二存儲控制器對應的資源;分配模塊,用于將所述第二存儲控制器對應的資源分配給所述虛擬端口 ;發送模塊,用于通過所述虛擬端口將第二存儲控制器對應的資源提供給客戶端,以使客戶端通過所述虛擬端口訪問所述第二存儲控制器對應的資源。
[0008]基于上述技術方案,本發明實施例中,通過將第一存儲控制器上的第一端口與第二存儲控制器上的第二端口配置成互為保護端口,從而在第二存儲控制器對應的路徑發生故障時,在第一端口上創建第二端口對應的虛擬端口,并將第二存儲控制器對應的資源分配給虛擬端口,以使客戶端通過該虛擬端口訪問第二存儲控制器對應的資源。基于上述方式,可以由第一存儲控制器接管第二存儲控制器的資源,并對客戶端提供第二存儲控制器的資源,接管過程的時間很短,客戶端的業務流量不會發生中斷。而且,可以不使用多路徑軟件,而是進行存儲雙控互備的故障保護,實現較簡單、難度較低、穩定性較好、維護工作量較小。而且,互為保護端口的兩個端口不再閑置,可以同時分配資源提供給客戶端,端口利用率很高,端口利用率可以高達100%。
【附圖說明】
[0009]圖1是現有技術中的客戶端與磁盤之間部署多條路徑的組網示意圖;
[0010]圖2是現有技術中的雙控雙活信息的同步示意圖;
[0011]圖3是現有技術中的存儲雙控雙活的負載均衡配置示意圖;
[0012]圖4是本發明一種實施方式中的資源的訪問方法的流程圖;
[0013]圖5是本發明一種實施方式中的存儲雙控互備配置的組網示意圖;
[0014]圖6是本發明一種實施方式中的存儲雙控互備的信息同步示意圖;
[0015]圖7是本發明一種實施方式中的接管后的存儲雙控互備的配置示意圖;
[0016]圖8是本發明一種實施方式中多路徑軟件的存儲雙控互備配置示意圖;
[0017]圖9A和圖9B是本發明一種實施方式中的交換機先故障,存儲控制器后故障的存儲雙控互備配置示意圖;
[0018]圖1OA和圖1OB是本發明一種實施方式中的存儲控制器先故障,交換機后故障的存儲雙控互備配置示意圖;
[0019]圖11是本發明一種實施方式中的第一存儲控制器的硬件結構圖;
[0020]圖12是本發明一種實施方式中地址的資源的訪問裝置的結構圖。
【具體實施方式】
[0021 ]為了使用多路徑軟件進行存儲雙控雙活的故障保護,存儲控制器A和存儲控制器B上的所有RAID(Redundant Arrays of Independent Disks,獨立磁盤冗余陣列)資源和LV(Logical Volume,邏輯資源卷)資源需要相同,一個存儲控制器的RAID資源/LV資源變化,需要同步到另一個存儲控制器。兩個存儲控制器可以同時對同一 RAID資源/LV資源進行讀寫訪問,又要避免RAID資源/LV資源的使用沖突,保證兩個存儲控制器的讀寫數據正確。
[0022]為了保證存儲控制器A和存儲控制器B上的所有RAID資源和LV資源相同,可以采用如圖2所示的雙控雙活信息的同步示意圖來實現。
[0023]如圖2所示,存儲控制器A和存儲控制器B需要都能夠訪問磁盤。在一個存儲控制器上使用多個磁盤創建RAID資源時,存儲控制器A和存儲控制器B上的磁盤管理模塊均判斷這些磁盤是否可以使用。在一個存儲控制器上創建RAID資源成功時,在生成各個模塊(如RAID管理模塊、CACHE(高速緩存)管理模塊、SCSI LLD (Sma 11 Computer Systems InterfaceLower Level Device,小型計算機系統接口較低層驅動器)模塊等)的RAID內存節點時,可以通知另一個存儲控制器的各個模塊創建相同的RAID內存節點。在一個存儲控制器上創建LV資源時,存儲控制器A和存儲控制器B均判斷該LV資源對應的RAID段是否可以使用。在一個存儲控制器上創建LV資源成功時,可以在生成LV資源的內存節點時,將LV資源的段列表等配置信息同步到另一個存儲控制器,并通知另一個存儲控制器創建相同的LV資源的內存節點。當一個存儲控制器上發現RAID資源/LV資源異常或者狀態變化,并且該存儲控制器對該RAID資源/LV資源進行處理時,通知另一個存儲控制器進行相應處理,并且需要避免重復處理和資源競爭使用。當數據需要寫入一個存儲控制器的寫緩存時,存儲控制器A和存儲控制器B均判斷是否可以使用某一個空閑的緩存塊,數據同時寫入存儲控制器A和存儲控制器B的寫緩存中,并通知另一個存儲控制器進行空閑寫緩存和已使用緩存塊等鏈表的操作。當存儲控制器A和存儲控制器B啟動時,存儲控制器A和存儲控制器B都會掃描所有的磁盤,并運行所有的RAID資源/LV資源。
[0024]在存儲雙控雙活的基礎上,存儲控制器A和存儲控制器B都存在LVl資源和LV2資源,且將LVl資源和LV2資源同時分配給不同的端口,形成使用多路徑軟件的存儲雙控雙活配置,如圖3所示,為使用多路徑軟件的存儲雙控雙活的負載均衡配置示意圖。針對同一個LV資源,可以通過兩個存儲控制器上各自的FC卡端口提供給客戶端,客戶端通過多路徑軟件訪問到相應的LV資源,并將該LV資源提供給需要這個LV資源的具體應用。
[0025]為了實現上述過程,在存儲控制器A上將LVl資源和LV2資源分配給端口 PAl和端口PA2,在存儲控制器B上將LVl資源和LV2資源分配給端口 PBl和端口 PB2。客戶端使用交換機I訪問到端口PAl,繼而訪問到存儲控制器A上的LVl資源;客戶端使用交換機I訪問到端口PBl,繼而訪問到存儲控制器B上的LV2資源。客戶端使用交換機2訪問到端口PA2,繼而訪問到存儲控制器A上的LV2資源;客戶端使用交換機2訪問到端口 PB2,繼而訪問到存儲控制器B上的LVl資源。客戶端使用多路徑