本發(fā)明一般地涉及數(shù)據(jù)存儲,具體地涉及使主機計算機能夠無縫地交換同步鏡像的主存儲卷和次級存儲卷的角色。
背景技術:鏡像是用來將主存儲卷復制到分開的次級存儲卷以確保冗余的技術。對于包括主存儲卷和次級存儲卷的存儲設施,鏡像可被實施為同步的或異步的。在同步鏡像期間,與存儲設施通信的主機(例如數(shù)據(jù)庫服務器)在數(shù)據(jù)成功寫入主存儲卷和次級存儲卷兩者之后,接收到寫確認。同步鏡像通常在存儲區(qū)域網(wǎng)絡(SAN)上實施。在異步鏡像期間,主機在數(shù)據(jù)寫入主卷之后(即次級卷可能尚未接收到數(shù)據(jù)并且/或者尚未對寫入數(shù)據(jù)進行確認),接收到寫確認。異步鏡像通常在速度較低的廣域網(wǎng)上實施,尤其是跨越較遠的距離。
技術實現(xiàn)要素:根據(jù)本發(fā)明的實施例,提供了一種方法,該方法包括:通過以下步驟,來配置針對經(jīng)由存儲區(qū)域網(wǎng)絡耦合到主機計算機的第一卷和第二卷的透明的同步鏡像卷切換,其中第一卷映射到主機計算機:啟動第一卷和第二卷之間的狀態(tài)數(shù)據(jù)的同步;將第一卷設置為活動狀態(tài)并將第二卷設置為非活動狀態(tài);將與活動的第一卷相關聯(lián)的標識符復制到與非活動的第二卷耦合的存儲器;由主機計算機從該存儲器檢索復制的標識符;并且在該檢索之后,將非活動的第二卷映射到主機計算機。根據(jù)本發(fā)明的實施例,還提供了一種用于配置透明的同步鏡像卷切換的裝置,該裝置包括:第一卷,第二卷,被配置來耦合主機計算機、第一卷和第二卷的存儲區(qū)域網(wǎng)絡(SAN),耦合到第二卷的存儲器,以及處理器,該處理器被配置為:將第一卷映射到主機計算機;啟動映射的第一卷和第二卷之間的狀態(tài)數(shù)據(jù)的同步;將映射的第一卷設置為活動狀態(tài)并將第二卷設置為非活動狀態(tài);將與活動的第一卷相關聯(lián)的標識符復制到與非活動的第二卷耦合的存儲器;由主機計算機從該存儲器檢索復制的標識符;并且在該檢索之后,將非活動的第二卷映射到主機計算機。根據(jù)本發(fā)明的實施例,進一步提供了一種用于配置針對經(jīng)由存儲區(qū)域網(wǎng)絡耦合到主機計算機的第一卷和第二卷的透明的同步鏡像卷切換的計算機程序產(chǎn)品,其中第一卷映射到主機計算機,該計算機程序產(chǎn)品包括非暫時性計算機可讀存儲介質(zhì),該非暫時性計算機可讀存儲介質(zhì)包含計算機可讀程序代碼,該計算機可讀程序代碼包括:被配置來啟動第一卷和第二卷之間的狀態(tài)數(shù)據(jù)的同步的計算機可讀程序代碼;被配置來將第一卷設置為活動狀態(tài)并將第二卷設置為非活動狀態(tài)的計算機可讀程序代碼;被配置來將與活動的第一卷相關聯(lián)的標識符復制到與非活動的第二卷耦合的存儲器的計算機可讀程序代碼;被配置來由主機計算機從該存儲器檢索復制的標識符的計算機可讀程序代碼;以及被配置來在該檢索之后,將非活動的第二卷映射到主機計算機的計算機可讀程序代碼。附圖說明這里僅通過示例的方式,參照附圖來描述本發(fā)明的優(yōu)選實施例,其中:圖1是根據(jù)本發(fā)明的實施例的被配置來執(zhí)行高可用性卷切換的同步鏡像存儲控制器的示意圖;圖2是根據(jù)本發(fā)明的實施例的主卷、次級卷、第三卷和主機計算機之間的邏輯路徑的示意圖;圖3是根據(jù)本發(fā)明的實施例的示意性地描述透明的同步鏡像卷切換方法的流程圖。具體實施方式綜述通常,存儲在盤驅(qū)動器上的卷經(jīng)由每個卷和主機計算機之間的邏輯路徑被耦合到主機計算機。每個卷可以具有相關聯(lián)的唯一的卷標識符,諸如序列號。該唯一的卷標識符可被用來結合與每個卷相關聯(lián)的邏輯路徑。由于有多個路徑與卷相關聯(lián),因此卷包括多路徑設備。與多路徑設備通信被稱為多路徑輸入/輸出(I/O)。多路徑設備也被稱為MPIO設備。在本發(fā)明的實施例中,除了具有相關聯(lián)的卷標識符之外,每個卷還具有相關聯(lián)的狀態(tài),該狀態(tài)可以是活動的或非活動的。此外,到特定卷的每個邏輯路徑的狀態(tài)可以與卷的狀態(tài)相關聯(lián)。例如,如果特定卷的狀態(tài)是活動的,則在主機計算機與該特定卷之間的所有邏輯路徑的狀態(tài)是活動的。同樣地,如果特定卷的狀態(tài)是非活動的,則在主機計算機與該特定卷之間的所有邏輯路徑的狀態(tài)是非活動的。在配置從第一(即主)卷同步鏡像到第二(即次級)卷時,本發(fā)明的實施例提供了用于操縱主卷和次級卷的卷標識符和狀態(tài)的方法和系統(tǒng),由此使主機計算機能夠無縫地從第一卷轉(zhuǎn)換到第二卷。通常,主機計算機從第一卷轉(zhuǎn)換到第二卷是由于第一卷中的故障或者第一卷和第二卷之間的路徑中的故障。在一些實施例中,將與第一卷相關聯(lián)的卷標識符復制到第二卷,并且將第二卷的路徑的狀態(tài)設置為非活動的。在將第一卷的卷標識符復制到第二卷之后,兩個卷與相同的卷標識符相關聯(lián),第二卷“偽裝”為第一卷(根據(jù)主機所使用的唯一地識別卷并且將邏輯路徑映射到單個多路徑設備的約定)。在將偽裝的第二卷映射到主機計算機后,主機計算機檢測到具有活動的邏輯路徑(即主機計算機與第一卷之間的邏輯路徑)和非活動的新的邏輯路徑(即主機計算機與第二卷之間的新的邏輯路徑)的單個卷。在交換了源卷和第二卷的狀態(tài)之后,所有到第二卷的新的邏輯路徑是活動的,所有到第一卷的邏輯路徑是非活動的。因此,在交換了源卷和第二卷的狀態(tài)之后,所有的輸入/輸出操作重定向到第二卷,而不是第一卷。在完成了上述步驟后,主計算機仍然“認為”其具有到第一卷的活動邏輯路徑,而事實上,現(xiàn)在活動的邏輯路徑是到第二卷的。系統(tǒng)說明圖1是根據(jù)本發(fā)明的實施例的被配置來實施透明的同步鏡像卷切換的存儲設施20的示意圖。設施20包括第一存儲控制器22、第二存儲控制器24和主機計算機26,這些都經(jīng)由輸入/輸出(I/O)路徑30耦合到存儲區(qū)域網(wǎng)絡(SAN)28。在圖1所示的配置中,存儲控制器22和24經(jīng)由SAN28而同步鏡像,并且存儲控制器22和24經(jīng)由廣域網(wǎng)(WAN)90而異步鏡像到第三卷92。通常,存儲卷92存儲在第三存儲控制器(未示出)中。存儲控制器22包括經(jīng)由專用網(wǎng)絡34耦合的多個第一存儲模塊32。每個存儲模塊32包括處理器36,該處理器被配置為執(zhí)行來自存儲器40的存儲模塊應用38。存儲模塊應用38管理存儲第一卷43的多個第一存儲設備42(例如盤驅(qū)動器)。在圖1所示的配置中,卷43分布在各存儲設備42之中,并包括設施20中的單個邏輯存儲區(qū)。源存儲裝置經(jīng)由設備適配器44被耦合到存儲模塊32。第一存儲模塊經(jīng)由專用網(wǎng)絡適配器46被耦合到專用網(wǎng)絡34,并經(jīng)由SAN適配器48耦合到SAN28。除了存儲模塊應用38之外,處理器36還執(zhí)行來自存儲器40的鏡像應用50和透明同步鏡像卷切換應用52(這里也稱為切換應用52)。鏡像應用50和切換應用52在下面進一步地詳細討論。存儲器40還存儲卷數(shù)據(jù)54、端口數(shù)據(jù)56(在下面進一步詳細地描述)和用于卷43的狀態(tài)數(shù)據(jù)58,其中卷數(shù)據(jù)54存儲用于卷43的識別數(shù)據(jù)。狀態(tài)數(shù)據(jù)58可以包括存儲關于卷43的共享狀態(tài)的信息的持久保留表。例如,卷43可以被鎖定(即保留)以用于由主機計算機26或耦合到SAN28的任何其他的主機計算機(未示出)讀和/或?qū)?。附加地或另選地,狀態(tài)數(shù)據(jù)58可以包括精簡配置(thinprovisioning)數(shù)據(jù)。精簡配置是一種允許存儲控制器22剛好及時地(just-in-time)給主機計算機26分配卷43的機制。精簡配置數(shù)據(jù)可以包括用于源存儲控制器的卷分配數(shù)據(jù)。存儲控制器24包括經(jīng)由專用網(wǎng)絡62耦合的多個第二存儲模塊60。每個存儲模塊60包括處理器64,該處理器被配置為執(zhí)行來自存儲器68的存儲模塊應用66。存儲模塊應用66管理存儲第二卷71的多個第二存儲設備70。在圖1所示的配置中,卷71分布在各存儲設備70之中,并包括設施20中的單個邏輯存儲區(qū)。第二存儲設備經(jīng)由設備適配器72被耦合到存儲模塊60。第二存儲模塊經(jīng)由專用網(wǎng)絡適配器74被耦合到專用網(wǎng)絡62,并經(jīng)由SAN適配器76耦合到SAN28。設施20可被配置來將卷43同步鏡像到卷71(即卷43是主卷,卷71是次級卷),反之亦然。當43卷被配置為主卷時,鏡像應用50將卷43同步鏡像到卷71,切換應用52啟動狀態(tài)數(shù)據(jù)58和狀態(tài)數(shù)據(jù)80的同步。存儲器68還存儲端口數(shù)據(jù)78(在下面進一步詳細地描述)和卷數(shù)據(jù)82。卷數(shù)據(jù)82存儲用于卷71的識別數(shù)據(jù)。當卷71被配置為主卷時,處理器64執(zhí)行鏡像應用84以將卷71同步鏡像到卷43,并執(zhí)行切換應用86來啟動狀態(tài)數(shù)據(jù)80和狀態(tài)數(shù)據(jù)58的同步。在圖1所示的配置中,設施20經(jīng)由廣域網(wǎng)(WAN)90將卷43和卷71異步鏡像到存儲在存儲設備88上的第三卷92。通常,如果卷71被配置為次級卷,則鏡像應用84將卷71異步鏡像到卷92。同樣地,如果卷43被配置為次級卷,則鏡像應用50將卷43異步鏡像到卷92。SAN適配器48和76的例子包括交換結構適配器,諸如光纖通道(FC)適配器、互聯(lián)網(wǎng)小型計算機系統(tǒng)接口(iSCSI)適配器、以太網(wǎng)光纖通道(FCoE)適配器和InfiniBandTM適配器。設備適配器44和72的例子包括國際商業(yè)機器公司(IBM)的ServeRAIDTMM5000系列適配器,其采用串行高級技術附件(SATA)和串行連接SCSI(SAS)兩種計算機總線接口。卷43和71通常包括大容量硬盤驅(qū)動器和固態(tài)盤驅(qū)動器的組合。處理器36和64通常包括被以軟件編程來執(zhí)行這里所述的功能的通用計算機。例如,軟件可以通過網(wǎng)絡以電子形式下載到存儲器40和68,或者其可以提供在諸如光學、磁性或電子存儲介質(zhì)的非暫時性的有形介質(zhì)上。另選地,處理器36和64的一些或全部的功能可以由專用或可編程的數(shù)字硬件組件,或者使用硬件和軟件元件的組合來執(zhí)行。卷43經(jīng)由源存儲控制器中的相關端口(relativeport)45被耦合到主機計算機26,卷71經(jīng)由目標存儲控制器中的相關端口73被耦合到主機計算機。相關端口表示主機計算機可用來與卷43和71通信的邏輯路徑。雖然圖1中的配置示出了每個存儲控制器包括單個相關端口(即相關端口45和73),但是每個存儲控制器通常包括多個相關端口。存儲控制器22和24中的每個邏輯路徑通常具有唯一的相關端口標識符。相關端口標識符可以指特定存儲模塊中的物理插槽(未示出)。例如,如果在存儲控制器22中有5個源存儲模塊(即0-4),并且每個存儲模塊32包括8個插槽(即0-7),則相關端口標識符“0205”可以指示設備適配器44被安置在第三(“02”)源存儲模塊的第六(“05”)插槽中。異步邏輯單元訪問(ALUA),也被稱為目標端口組支持(TPGS),是一個小型計算機系統(tǒng)接口(SCSI)協(xié)議,該協(xié)議使存儲控制器22和24能夠設置其各自的每個相關端口的狀態(tài)。支持ALUA/TPGS的SCSI主要命令(SPC)是在國際信息技術標準委員會(INCITS)的T10委員會的SPC-3第5.8節(jié)和SPC-4第5.8節(jié)和第5.11節(jié)中規(guī)定的。使用ALUA,主機計算機26還可以向設施20查詢(query)并接收至存儲控制器的每個邏輯路徑的狀態(tài)。例如,由于卷43經(jīng)由相關端口45被耦合到主機計算機26,因此設置相關端口45的狀態(tài)就設置了在第一卷和主機計算機26之間經(jīng)由相關端口45耦合的每個邏輯路徑的狀態(tài)。ALUA的狀態(tài)包括:(1)活動優(yōu)化,(2)活動非優(yōu)化,(3)待命,(4)不可用,(5)過渡,以及(6)離線。在這里描述的本發(fā)明的實施例中,以如下方式組合ALUA的狀態(tài):活動:活動優(yōu)化和活動非優(yōu)化。非活動:待命、不可用、過渡和離線。此外,相關端口可被劃分成組(在這里也被稱為目標端口組),使設施20能夠在組級別上設置相關端口和邏輯路徑的狀態(tài)。例如,第一存儲控制器22中的相關端口(包括相關端口45)可以被分配給組0(經(jīng)由報告目標端口組SCSI命令),第二存儲控制器24中的相關端口(包括相關端口73)可以被分配給組1(也是經(jīng)由報告目標端口組SCSI命令)。接著,設施20可以通過設置組0的狀態(tài)來設置主機計算機和存儲控制器22之間的邏輯路徑的狀態(tài)。同樣地,設施20可以通過設置組1的狀態(tài)來設置主機計算機和存儲控制器24之間的邏輯路徑的狀態(tài)。進一步地,將相關端口劃分成組有助于定義唯一的相關端口標識符,因為(如在上面給出的例子中的)設備適配器44可以被安裝在存儲控制器22的第三存儲模塊32的第六插槽中,設備適配器72可以被安裝在存儲控制器24的第三存儲模塊60的第六插槽中。因此,組標識符和相關端口標識符可以結合而形成組合的標識符(即,包括組標識符和相關端口標識符的元組),來唯一地識別設施20中的每個相關端口。可以有這樣的情況,其中主機計算機26執(zhí)行僅通過相關端口標識符來識別每個邏輯路徑的操作系統(tǒng)。在這些情況下,在這里描述的實施例的初始化階段期間,處理器36和64彼此協(xié)調(diào)來給設施20中的每個相關端口分配唯一的相關端口標識符。該唯一的相關端口標識符可以被用來表示每個相關端口以及其各自的邏輯路徑。在初始化階段期間,除了識別相關端口之外,處理器36和64通常還給每個卷43和卷71分配唯一的卷標識符,例如序列號。處理器36將用于卷43的唯一的卷標識符存儲到耦合到第一卷的存儲器40中的卷數(shù)據(jù)54。處理器64將用于卷71的唯一的卷標識符存儲到耦合到第二卷的存儲器68中的卷數(shù)據(jù)82。所屬技術領域的技術人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明的各個方面還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼??梢圆捎靡粋€或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、有線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設計語言包括面向?qū)ο蟮某绦蛟O計語言—諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設計語言—諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡——包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。也可以把這些計算機程序指令存儲在計算機可讀介質(zhì)中,這些指令使得計算機、其它可編程數(shù)據(jù)處理裝置、或其他設備以特定方式工作,從而,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(articleofmanufacture)。計算機程序指令也可以裝入計算機、其他可編程數(shù)據(jù)處理裝置、或其他設備,以使得在計算機、其他可編程裝置或其他設備上執(zhí)行一系列操作步驟來產(chǎn)生計算機實施的過程,從而在計算機或其他可編程裝置上執(zhí)行的指令提供用于實施在流程圖中和/或在框圖的一個或多個框中指定的功能/動作的過程。透明的卷切換圖2是示出了主機計算機、卷43(這里也稱為第一卷)、卷71(這里也稱為第二卷)和卷92之間的邏輯路徑的示意圖。兩個設備之間的邏輯路徑指示該兩個設備的耦合在網(wǎng)絡看來是怎樣的。例如,圖2所示的配置示出了卷43、卷71和主機計算機26以環(huán)形網(wǎng)絡拓撲布置。設備之間的實際的物理連接(例如經(jīng)由I/O路徑30)通常不同于邏輯路徑。在圖2所示的配置中,主機計算機26經(jīng)由邏輯路徑100耦合到卷43,主機計算機經(jīng)由邏輯路徑102耦合到卷71。卷43和卷71經(jīng)由邏輯路徑104耦合,邏輯路徑104是可用來在卷43和卷71之間同步地鏡像數(shù)據(jù)的通信路徑。設施20還被配置來經(jīng)由通信路徑106而將卷43或卷71異步鏡像到卷92。當實施諸如光纖通道的SAN拓撲時,每個邏輯路徑100和102通常包括多個物理連接,如由圖1中的I/O路徑30所指示的。使用多個物理路徑,也被稱為多路徑I/O,可以提供容錯,原因在于設施20可以在物理路徑之一發(fā)生故障后,通過另選的物理路徑路由網(wǎng)絡流量。此外,多路徑I/O可以增強性能,因為要被傳輸?shù)臄?shù)據(jù)可以分散在多個物理路徑上。在同步鏡像期間,包含主卷的存儲控制器在這里被稱為主存儲控制器,包含次級卷的存儲控制器在這里被稱為次級存儲控制器。例如,如果卷43是主卷,則存儲控制器22是主存儲控制器,并被配置來將卷43同步鏡像到次級存儲控制器——在這個例子中是存儲控制器24。本發(fā)明的實施例根據(jù)存儲控制器22和24在同步鏡像期間的角色,設置存儲控制器22和24中的相關端口的狀態(tài)。主存儲控制器中的相關端口被設置為活動狀態(tài),次級存儲控制器中的相關端口被設置為非活動狀態(tài)。如果存儲控制器交換同步鏡像的角色,則本發(fā)明的實施例也交換存儲控制器的相關端口的狀態(tài)。圖3是根據(jù)本發(fā)明的實施例的示意性地描述透明的同步鏡像卷切換方法的流程圖。在初始步驟110中,切換應用52將第一卷映射(即邏輯連接)到主機計算機26。在第一狀態(tài)設置112中,切換應用52將第一卷的狀態(tài)設置為活動狀態(tài)。為了將第一卷設置為活動狀態(tài),切換應用52可以將與第一卷相關聯(lián)的目標端口組(即包括相關端口45的目標端口組)設置為活動狀態(tài),從而將與邏輯路徑100相關聯(lián)的物理路徑設置為活動狀態(tài)。在一些實施例中,切換應用52通過設置與存儲控制器22中的相關端口相關聯(lián)的目標端口組的狀態(tài)來設置第一卷的狀態(tài)(并由此設置主機計算機26和第一卷之間的邏輯路徑的狀態(tài))。例如,如果組0包括存儲控制器22中的相關端口(包括端口45),組1包括存儲控制器24中的相關端口(包括端口73),則切換應用52將組0設置為活動狀態(tài),從而也將第一卷設置為活動狀態(tài)。在另選的實施例中,每個組的狀態(tài)保持不變,但包括在目標端口組中的相關端口根據(jù)需要而改變。例如,如果組0處于活動狀態(tài),組1處于非活動狀態(tài),則切換應用52可以將存儲控制器22的端口(包括端口45)分配給組0,從而將第一卷設置為活動狀態(tài)。另選地,切換應用52可以將存儲控制器22的相關端口(包括端口45)分配給組1,從而將第一卷設置為非活動狀態(tài)。在第二狀態(tài)設置114中,切換應用86將第二卷設置為非活動狀態(tài)。為了將第二卷設置為非活動狀態(tài),切換應用86將與第二卷相關聯(lián)的相關端口組(即包括相關端口73的目標端口組)設置為非活動狀態(tài),從而將與邏輯路徑102相關聯(lián)的邏輯路徑設置為非活動狀態(tài)。在復制步驟116中,切換應用52將卷標識符從活動的第一卷復制到非活動的第二卷。為了復制卷標識符,切換應用52將卷數(shù)據(jù)54復制到卷數(shù)據(jù)82。接著,主機計算機26從卷數(shù)據(jù)82檢索復制的卷標識符,從而使主機計算機和第一卷之間的邏輯路徑與主機計算機和第二卷之間的邏輯路徑相結合。在映射步驟117中,切換應用86將非活動的第二卷映射到主機計算機26。接著,切換應用52將查詢設施20中的卷的請求傳送到主機計算機26,并且,在第一查詢步驟118中,主機計算機查詢設施20中的卷,從而識別并確定映射到主機計算機的卷的狀態(tài)。為了查詢設施20,主機計算機26調(diào)用SAN函數(shù)調(diào)用,該函數(shù)調(diào)用返回到設施20中的存儲控制器的所有邏輯路徑。對于每個返回的邏輯路徑,主機計算機26執(zhí)行SCSI報告LUNS命令,其針對返回的邏輯路徑上的每個設備返回邏輯單元號(LUN)。接著,主機計算機26對于每個返回的LUN和路徑執(zhí)行SCSI詢問命令,其首先查詢啟用重要產(chǎn)品數(shù)據(jù)(EVPD)第80頁(十六進制)來檢索卷標識符,然后查詢EVPD第83頁(十六進制)來檢索與每個LUN相關聯(lián)的相關端口標識符和組。最后,對于每個檢索到的組標識符,主機計算機執(zhí)行報告目標端口組命令來檢索每個組(即目標端口組)的狀態(tài)。根據(jù)通過查詢設施20檢索到的信息,主機計算機26可以定義多路徑設備,并確定到每個多路徑設備的每個邏輯路徑的狀態(tài)。由于主機計算機26與每個卷之間可能有多條邏輯路徑,因此主機計算機可能檢測到同一卷(由相關聯(lián)的卷標識符來識別)的多個實例,其中每個實例是經(jīng)由不同的邏輯路徑的。在第一鏡像配置步驟120中,鏡像應用50將第一卷配置為主卷,將第二卷配置為次級卷。如上文所述,為了確保冗余,鏡像將數(shù)據(jù)從主卷復制到次級卷。因此,在步驟120之后,設施20被配置為從第一卷同步鏡像到第二卷。此外,鏡像應用50啟動狀態(tài)數(shù)據(jù)58(用于第一卷)和狀態(tài)數(shù)據(jù)80(用于第二卷)的同步。在圖1所示的配置中,鏡像應用84也可以將第二卷異步鏡像到卷92。可以有這樣的情況,其中系統(tǒng)管理員(未示出)(經(jīng)由主機計算機26)傳送對于存儲控制器22和24交換鏡像角色(即將第二卷配置為主卷,將第一卷配置為次級卷)的請求。另選地,如果在第一卷、存儲控制器22中的任何組件、或邏輯路徑102中出現(xiàn)故障,則設施20可以將存儲控制器24配置為主存儲控制器。該方法停留在比較步驟122,直到需要交換存儲控制器22和24的同步鏡像角色為止。如果鏡像應用50和84接收到切換其各自的存儲控制器的同步鏡像角色的指令,則在第三狀態(tài)設置124中,切換應用52將活動的第一卷的狀態(tài)設置為非活動狀態(tài)。為了將第一卷設置為非活動狀態(tài),切換應用52可以將與第一卷相關聯(lián)的目標端口組(即包括相關端口45的目標端口組)設置為非活動狀態(tài),從而將與邏輯路徑100相關聯(lián)的邏輯路徑設置為非活動狀態(tài)。在第二鏡像配置步驟126中,鏡像應用50將非活動的第一卷配置為次級卷,將非活動的第二卷配置為主卷(即從第二卷同步鏡像到第一卷)。因此,步驟126之后,設施20被配置來從第二卷同步鏡像到第一卷。在第四狀態(tài)設置128中,切換應用86將第二卷的狀態(tài)設置為活動狀態(tài),并將查詢設施20的卷的請求傳送到主機計算機26。為了將第二卷設置為活動狀態(tài),切換應用86可以將與第二卷相關聯(lián)的目標端口組(即包括相關端口73的目標端口組)設置為活動狀態(tài),從而將與邏輯路徑102相關聯(lián)的邏輯路徑設置為活動狀態(tài)。最后,在第二查詢步驟130中,主機計算機26查詢設施20中的卷以識別和確定設施20中的卷的狀態(tài),以及其各自到主機計算機的物理路徑的狀態(tài)。附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。