專利名稱:多存儲(chǔ)系統(tǒng)上的多路徑交換的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總地涉及多路徑存儲(chǔ)系統(tǒng),并且更具體地涉及通過在存儲(chǔ)系統(tǒng)之上運(yùn)行虛擬交換以及在存儲(chǔ)器和服務(wù)器之間運(yùn)行多路徑而在多路徑連接上進(jìn)行的非毀壞數(shù)據(jù)遷移和I/O負(fù)載均衡。
背景技術(shù):
根據(jù)近來的趨勢,已知作為TRILL (多鏈接透明互連)的新的多路徑組網(wǎng)方法正處于標(biāo)準(zhǔn)化進(jìn)程中,用于在層2(L2)以太網(wǎng)之上的組網(wǎng)。TRILL允許L2網(wǎng)絡(luò)建立兩個(gè)平行的數(shù)據(jù)傳輸路徑,這在現(xiàn)有基于STP (生成樹協(xié)議)的以太網(wǎng)中是不允許的。當(dāng)TRILL被設(shè)置并且在存儲(chǔ)網(wǎng)絡(luò)中可用時(shí),將通過多個(gè)路徑執(zhí)行服務(wù)器和存儲(chǔ)器之間的數(shù)據(jù)傳輸。圖1是現(xiàn)有存儲(chǔ)區(qū)域網(wǎng)絡(luò)拓?fù)涞氖纠?。服?wù)器計(jì)算機(jī)300連接到交換機(jī)200A, 交換機(jī)200A并行地連接到交換機(jī)200B和200C,交換機(jī)200B和200C連接到交換機(jī)200D, 交換機(jī)200D連接到數(shù)據(jù)存儲(chǔ)器200。并行地通過路徑300-200A-200B-200D-100以及 300-200A-200C-200D-100執(zhí)行服務(wù)器與存儲(chǔ)器之間的數(shù)據(jù)傳輸。在該情況下,交換機(jī)200D 的網(wǎng)絡(luò)端口 210A或者數(shù)據(jù)存儲(chǔ)器100的網(wǎng)絡(luò)端口 110處(在這里不能處理通過兩條路徑接收到的太多的流量)會(huì)有性能瓶頸。除了 L2組網(wǎng)之外,另一個(gè)問題是通過存儲(chǔ)系統(tǒng)之上的數(shù)據(jù)遷移發(fā)生I/O服務(wù)中斷。圖2是存儲(chǔ)區(qū)域網(wǎng)絡(luò)的現(xiàn)有邏輯配置的示例。服務(wù)器計(jì)算機(jī)300裝配由存儲(chǔ)系統(tǒng)100A 服務(wù)的一個(gè)或多個(gè)邏輯單元530。在服務(wù)器300上運(yùn)行的操作系統(tǒng)通過由其網(wǎng)絡(luò)地址(MAC 地址,F(xiàn)CID)或WffN(全球名稱)識(shí)別的網(wǎng)絡(luò)端口 IlOA識(shí)別邏輯單元530。如果管理員試圖將邏輯單元530從網(wǎng)絡(luò)端口 IlOA遷移到端口 110B,則服務(wù)器操作系統(tǒng)必須停止I/O處理以掛起存儲(chǔ)在邏輯單元中的靜態(tài)數(shù)據(jù)圖像,并且通過目的地網(wǎng)絡(luò)端口 IlOB再裝配新的邏輯單元。然而,不能在保持商業(yè)穩(wěn)定性的同時(shí)掛起公司數(shù)據(jù)中心處運(yùn)行的關(guān)鍵任務(wù)應(yīng)用或關(guān)鍵商業(yè)應(yīng)用。當(dāng)例如從一個(gè)存儲(chǔ)系統(tǒng)100A的端口 IlOA向另一個(gè)存儲(chǔ)系統(tǒng)100B的端口 IlOC而在存儲(chǔ)系統(tǒng)邊界上遷移邏輯單元時(shí),發(fā)生同樣的問題。需要在系統(tǒng)之間的數(shù)據(jù)復(fù)制操作,從而I/O掛起時(shí)間將比內(nèi)部LU遷移時(shí)間更長。另外,現(xiàn)有單路徑網(wǎng)絡(luò)的另外的問題在于在移除存儲(chǔ)系統(tǒng)100A之后I/O服務(wù)可能被中斷,因?yàn)榫W(wǎng)絡(luò)路徑必須被重置到新的數(shù)據(jù)存儲(chǔ)設(shè)備。
發(fā)明內(nèi)容
本發(fā)明的示例實(shí)施例提供了通過在存儲(chǔ)系統(tǒng)之上運(yùn)行虛擬交換以及在存儲(chǔ)器和服務(wù)器之間運(yùn)行多路徑而在多路徑連接上進(jìn)行的非毀壞數(shù)據(jù)遷移和I/O負(fù)載均衡。該數(shù)據(jù)存儲(chǔ)器具有交換功能以及虛擬端口(網(wǎng)絡(luò)接口)。在多個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)之間共享網(wǎng)絡(luò)路由以及路徑配置設(shè)置。邏輯上,單個(gè)虛擬網(wǎng)絡(luò)交換機(jī)在多個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)上運(yùn)行。網(wǎng)絡(luò)設(shè)備具有建立服務(wù)器和存儲(chǔ)器之間的多路徑通信的能力。這允許在移除舊的數(shù)據(jù)存儲(chǔ)設(shè)備之后繼續(xù)I/O服務(wù),因?yàn)榱硪粋€(gè)數(shù)據(jù)路徑仍然與遷移目標(biāo)設(shè)備保持通信。以此方式,本發(fā)明允許在存儲(chǔ)系統(tǒng)上運(yùn)行虛擬交換以及在存儲(chǔ)器和服務(wù)器之間運(yùn)行多路徑,從而完成多路徑連接上的非毀壞數(shù)據(jù)遷移和I/O負(fù)載均衡。根據(jù)本發(fā)明的方面,系統(tǒng)包括第一數(shù)據(jù)存儲(chǔ)系統(tǒng),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少一個(gè)第一接口端口、第一 CPU、第一存儲(chǔ)器、以及多個(gè)第一邏輯單元;第二數(shù)據(jù)存儲(chǔ)系統(tǒng), 所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少一個(gè)第二接口端口、第二 CPU、第二存儲(chǔ)器、以及多個(gè)第二邏輯單元,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng);多個(gè)交換機(jī);以及服務(wù)器,所述服務(wù)器經(jīng)由所述交換機(jī)中的第一組交換機(jī)與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接并經(jīng)由所述交換機(jī)中的第二組交換機(jī)與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接,所述第一組交換機(jī)和所述第二組交換機(jī)具有至少一個(gè)不包括在所述第一組交換機(jī)和所述第二組交換機(jī)這兩個(gè)組中的交換機(jī)。所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)經(jīng)由所述第一組交換機(jī)從所述服務(wù)器接收以所述多個(gè)第一邏輯單元為目標(biāo)的I/O指令。所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)保持關(guān)于所述第一存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端口的第一信息。所述第一信息被用于在所述服務(wù)器與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)之間生成多路徑通信,所述多路徑通信包括通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條路徑、以及未通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條其他路徑。在有的實(shí)施例中,所述第一信息包括與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間的路徑有關(guān)的信息。所述第一信息包括用于在所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息、以及用于在所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息。通過WWPN識(shí)別所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端口。在特定實(shí)施例中,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的一個(gè)是源系統(tǒng),用于將數(shù)據(jù)遷移到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的作為目的地系統(tǒng)的另一個(gè);并且其中,為了進(jìn)行數(shù)據(jù)遷移,所述目的地系統(tǒng)創(chuàng)建虛擬端口作為目標(biāo)端口,所述目標(biāo)端口具有與所述源系統(tǒng)上的源端口相同的識(shí)別符,并且所述目的地系統(tǒng)在所述目標(biāo)端口上創(chuàng)建邏輯單元,所述源系統(tǒng)運(yùn)行從包含所述源系統(tǒng)中的所述數(shù)據(jù)的邏輯單元到所述目的地系統(tǒng)中的所述目標(biāo)端口上的所述邏輯單元的數(shù)據(jù)拷貝并且對(duì)所述源系統(tǒng)上的所述源端口進(jìn)行去激活,且所述目的地系統(tǒng)激活所述目的地系統(tǒng)上的所述目標(biāo)端口。在檢測到有設(shè)備新連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的端口中的一個(gè)端口時(shí),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)添加與新連接的設(shè)備和所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的與所述新連接的設(shè)備連接的端口之間的路徑有關(guān)的信息并通過與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接而將所添加的信息通知所述多個(gè)交換機(jī)、所述服務(wù)器以及所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)。管理計(jì)算機(jī)連接到所述交換機(jī)中的一個(gè)交換機(jī)。響應(yīng)于來自所述管理計(jì)算機(jī)的請(qǐng)求,所述交換機(jī)更新所述服務(wù)器與所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的至少一個(gè)系統(tǒng)的端口之間的路徑信息。本發(fā)明的另一個(gè)方面關(guān)于系統(tǒng)中的第一數(shù)據(jù)存儲(chǔ)系統(tǒng),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)在包括第二數(shù)據(jù)存儲(chǔ)系統(tǒng)、多個(gè)交換機(jī)以及服務(wù)器的系統(tǒng)中,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)具有至少一個(gè)第二接口端口,所述服務(wù)器經(jīng)由所述交換機(jī)中的第一組交換機(jī)與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接并且經(jīng)由所述交換機(jī)中的第二組交換機(jī)與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接,所述第一組交換機(jī)和所述第二組交換機(jī)具有至少一個(gè)不包括在所述第一組交換機(jī)和所述第二組交換機(jī)這兩個(gè)組中的交換機(jī)。所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少一個(gè)第一接口端口 ;第一 CPU ;第一存儲(chǔ)器;以及多個(gè)第一邏輯單元。所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)經(jīng)由所述第一組交換機(jī)從所述服務(wù)器接收以所述多個(gè)第一邏輯單元為目標(biāo)的I/O指令。所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)保持關(guān)于所述第一存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端口的第一信息。所述第一信息用于生成在所述服務(wù)器與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)之間的多路徑通信,所述多路徑通信包括通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條路徑、以及不通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條其他路徑。在有的實(shí)施例中,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)是源系統(tǒng),用于將數(shù)據(jù)遷移到作為目的地系統(tǒng)的所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)。為了進(jìn)行數(shù)據(jù)遷移,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)創(chuàng)建虛擬端口作為目標(biāo)端口,所述目標(biāo)端口具有與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)上的源端口相同的識(shí)別符; 在所述目標(biāo)端口上創(chuàng)建邏輯單元;以及在運(yùn)行從包含所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的所述數(shù)據(jù)的邏輯單元到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)中的所述目標(biāo)端口上的所述邏輯單元的數(shù)據(jù)拷貝之后并且在去激活所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)上的所述源端口之后,激活所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)上的所述目標(biāo)端口。本發(fā)明的另一個(gè)方面是一種系統(tǒng)中的多路徑通信方法,所述系統(tǒng)包括第一數(shù)據(jù)存儲(chǔ)系統(tǒng),具有至少一個(gè)第一接口端口、第一 CPU、第一存儲(chǔ)器、以及多個(gè)第一邏輯單元;第二數(shù)據(jù)存儲(chǔ)系統(tǒng),包括至少一個(gè)第二接口端口、第二 CPU、第二存儲(chǔ)器、以及多個(gè)第二邏輯單元,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng);多個(gè)交換機(jī);以及服務(wù)器,所述服務(wù)器經(jīng)由所述交換機(jī)中的第一組交換機(jī)與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接并經(jīng)由所述交換機(jī)中的第二組交換機(jī)與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接,所述第一組交換機(jī)和所述第二組交換機(jī)具有至少一個(gè)不包括在所述第一組交換機(jī)和所述第二組交換機(jī)這兩個(gè)組中的交換機(jī)。所述方法包括經(jīng)由所述交換機(jī)從所述服務(wù)器接收目標(biāo)為所述多個(gè)第一和第二邏輯單元中的至少一個(gè)的I/O指令;保持與所述第一存儲(chǔ)系統(tǒng)和所述第二存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的所述端口有關(guān)的第一信息;以及使用所述第一信息生成在所述服務(wù)器和所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)之間的多路徑通信,所述多路徑通信包括通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條路徑和不通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條其他路徑。在特定實(shí)施例中,所述方法進(jìn)一步包括用于將數(shù)據(jù)從所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的作為源系統(tǒng)的一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)遷移到所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的作為目的地系統(tǒng)的另一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)遷移處理。所述數(shù)據(jù)遷移處理包括創(chuàng)建虛擬端口作為目標(biāo)端口,所述目標(biāo)端口具有與所述源系統(tǒng)上的源端口相同的識(shí)別符;在所述目標(biāo)端口上創(chuàng)建邏輯單元;運(yùn)行從包含所述源系統(tǒng)中的所述數(shù)據(jù)的邏輯單元到所述目的地系統(tǒng)中的所述目標(biāo)端口上的所述邏輯單元的數(shù)據(jù)拷貝;對(duì)所述源系統(tǒng)上的所述源端口進(jìn)行去激活;以及激活所述目的地系統(tǒng)上的所述目標(biāo)端口。響應(yīng)于來自管理計(jì)算機(jī)的請(qǐng)求,所述方法進(jìn)一步包括更新在所述服務(wù)器與所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的至少一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)的端口之間的路徑信息。當(dāng)結(jié)合下述特定實(shí)施例的具體描述來閱讀時(shí),本發(fā)明的這些和其它特征和優(yōu)勢對(duì)于本領(lǐng)域普通技術(shù)人員來說是顯而易見的。
圖1是現(xiàn)有存儲(chǔ)區(qū)域網(wǎng)絡(luò)的示例;圖2是現(xiàn)有存儲(chǔ)區(qū)域網(wǎng)絡(luò)的邏輯配置的示例;圖3示出了根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)網(wǎng)絡(luò)配置的示例;圖4說明了服務(wù)器計(jì)算機(jī)的硬件配置;圖5說明了網(wǎng)絡(luò)交換機(jī)的硬件配置;圖6說明了數(shù)據(jù)存儲(chǔ)器的硬件配置;圖7說明了管理計(jì)算機(jī)的硬件配置;圖8說明了存儲(chǔ)在存儲(chǔ)器中并且運(yùn)行在服務(wù)器計(jì)算機(jī)上的軟件的示例;圖9說明了存儲(chǔ)在存儲(chǔ)器中并且運(yùn)行在交換機(jī)上的軟件的示例;圖10說明了存儲(chǔ)在存儲(chǔ)器中并且運(yùn)行在數(shù)據(jù)存儲(chǔ)器上的軟件的示例;圖11說明了存儲(chǔ)在存儲(chǔ)器中并且運(yùn)行在管理計(jì)算機(jī)上的軟件的示例;圖12說明了服務(wù)器計(jì)算機(jī)的存儲(chǔ)器中的卷配置信息的示例數(shù)據(jù)結(jié)構(gòu);圖13說明了交換機(jī)的存儲(chǔ)器中的路由信息的示例數(shù)據(jù)結(jié)構(gòu);圖14說明了交換機(jī)的存儲(chǔ)器中的發(fā)送端口信息的示例數(shù)據(jù)結(jié)構(gòu);圖15說明了數(shù)據(jù)存儲(chǔ)器的內(nèi)存中的本地存儲(chǔ)網(wǎng)絡(luò)路由信息的示例數(shù)據(jù)結(jié)構(gòu);圖16說明了數(shù)據(jù)存儲(chǔ)器的內(nèi)存中的共享存儲(chǔ)網(wǎng)絡(luò)路由信息的示例數(shù)據(jù)結(jié)構(gòu);圖17說明了數(shù)據(jù)存儲(chǔ)器的內(nèi)存中的存儲(chǔ)發(fā)送端口信息的示例數(shù)據(jù)結(jié)構(gòu);圖18說明了數(shù)據(jù)存儲(chǔ)器的內(nèi)存中的LU配置信息的示例數(shù)據(jù)結(jié)構(gòu);圖19說明了根據(jù)本實(shí)施例的存儲(chǔ)網(wǎng)絡(luò)拓?fù)涞氖纠?;圖20是更新交換機(jī)上的路由信息和發(fā)送端口信息或數(shù)據(jù)存儲(chǔ)器上的共享本地存儲(chǔ)網(wǎng)絡(luò)路由信息和存儲(chǔ)發(fā)送端口信息的流程圖的示例;圖21是選擇從服務(wù)器至存儲(chǔ)器的一個(gè)或多個(gè)路徑的流程圖的示例;圖22是組合兩個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)的本地存儲(chǔ)網(wǎng)絡(luò)路由信息的流程圖的示例;圖23是在數(shù)據(jù)存儲(chǔ)系統(tǒng)上的數(shù)據(jù)遷移的流程圖的示例;以及圖M是在虛擬交換機(jī)上的虛擬端口的邏輯說明的示例。
具體實(shí)施例方式在本發(fā)明的下述具體實(shí)施方式
中,參考形成本揭示的一部分的附圖,附圖通過說明示例實(shí)施例的方式而不是限制示例實(shí)施例的方式示出,通過示例實(shí)施例可以實(shí)施本發(fā)明。在附圖中,相似的附圖標(biāo)記描述各個(gè)圖中基本相似的部件。進(jìn)一步地,應(yīng)該注意到盡管如下所述并且如圖所說明的具體實(shí)施方式
提供了各種示例實(shí)施例,本發(fā)明不限于這里描述和說明的實(shí)施例,而是能夠延伸到如同本領(lǐng)域普通技術(shù)人員所知或會(huì)知道的其它實(shí)施例。 說明書中引用的“一個(gè)實(shí)施例”、“該實(shí)施例”、或“這些實(shí)施例”的意思是聯(lián)系實(shí)施例所描述的特定特征、結(jié)構(gòu)或特點(diǎn)包括在本發(fā)明的至少一個(gè)實(shí)施例中,并且在說明書的各個(gè)地方出現(xiàn)的這些短語不是必須地指的是相同的實(shí)施例。另外,在下述具體實(shí)施方式
中,提出多個(gè)特定細(xì)節(jié)從而提供對(duì)本發(fā)明的詳細(xì)理解。然而,對(duì)本領(lǐng)域普通技術(shù)人員來說將顯而易見不是必須所有的這些特定細(xì)節(jié)才能實(shí)施本發(fā)明。在其它環(huán)境下,公知的結(jié)構(gòu)、材料、電路、處理和接口沒有詳細(xì)描述,和/或可以用框圖的形式說明,從而不會(huì)不必要地使本發(fā)明模糊。此外,通過計(jì)算機(jī)中操作的算法和符號(hào)表達(dá)來表述下面具體實(shí)施方式
中的一些部
9分。這些算法描述和符號(hào)表達(dá)是在數(shù)據(jù)處理領(lǐng)域的普通技術(shù)人員使用的以最有效地將它們的創(chuàng)新實(shí)質(zhì)傳遞給本領(lǐng)域的其它普通技術(shù)人員的手段。算法是一系列定義的步驟以導(dǎo)致期望的結(jié)束狀態(tài)和結(jié)果。在本發(fā)明中,執(zhí)行的步驟需要切實(shí)的物理量操作以實(shí)現(xiàn)切實(shí)的結(jié)果。 盡管并不必須,通常這些量采用電或磁信號(hào)的形式,或者是能夠被存儲(chǔ)、傳遞、合并、比較和操作的指令的形式。為了共用的原因,已經(jīng)多次被證明將這些信號(hào)參考為比特、值、元件、符號(hào)、字符、術(shù)語、數(shù)字、指令等是方便的。然而,應(yīng)該牢記所有這些和類似的術(shù)語與恰當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅為施加到這些量上的方便的標(biāo)簽。除非另行提及,如從下面的討論中顯而易見,應(yīng)該理解到在整個(gè)說明書中,利用例如“處理”、“計(jì)算”、“確定”、“顯示”等的術(shù)語的討論可以包括計(jì)算機(jī)系統(tǒng)或其它信息處理裝置的行為和處理,該計(jì)算機(jī)系統(tǒng)或其它信息處理裝置將在計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器中的表示為物理(電子)量的數(shù)據(jù)操作和轉(zhuǎn)換為計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器或寄存器或其它信息存儲(chǔ)、傳輸和顯示裝置內(nèi)的類似地表示為物理量的其它數(shù)據(jù)。本發(fā)明還涉及一種用于執(zhí)行這里的操作的裝置。該裝置可以被特別地構(gòu)造用于所需目的,或者可以包括由一個(gè)或多個(gè)計(jì)算機(jī)程序選擇性地激活或重配置的一個(gè)或多個(gè)通用計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,例如但不限于光盤、磁盤、 只讀存儲(chǔ)器、隨機(jī)訪問存儲(chǔ)器、固態(tài)設(shè)備和驅(qū)動(dòng)、或任何適用于存儲(chǔ)電子信息的其它類型的介質(zhì)。這里示出的算法和顯示并不內(nèi)在地與任何特定的計(jì)算機(jī)或其它裝置相關(guān)。各種通用系統(tǒng)可以根據(jù)這里的教示使用程序和模塊,或者可以證明便于構(gòu)造更加專業(yè)的裝置以執(zhí)行期望的方法步驟。此外,本發(fā)明并不通過參考任何特定編程語言來描述。應(yīng)當(dāng)理解可以使用多種編程語言來實(shí)施這里描述的本發(fā)明的教示。編程語言的指令可以由一個(gè)或多個(gè)處理設(shè)備來執(zhí)行,處理設(shè)備例如是中央處理單元(CPU)、處理器或控制器。如在下面將更加詳細(xì)描述的,本發(fā)明的示例實(shí)施例提供通過在存儲(chǔ)系統(tǒng)之上運(yùn)行虛擬交換以及在存儲(chǔ)器和服務(wù)器之間運(yùn)行多路徑而在多路徑連接上進(jìn)行的非毀壞數(shù)據(jù)遷移和I/O負(fù)載均衡的裝置、方法和計(jì)算機(jī)程序。圖3示出了根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)網(wǎng)絡(luò)配置的示例。第一和第二服務(wù)器計(jì)算機(jī)300A和300B連接到交換機(jī)200A,交換機(jī)200A連接到兩個(gè)交換機(jī)200B和200D。交換機(jī) 200B連接到交換機(jī)200C,交換機(jī)200C連接到第一數(shù)據(jù)存儲(chǔ)器100A。交換機(jī)200D連接到交換機(jī)200E,交換機(jī)200E連接到第二數(shù)據(jù)存儲(chǔ)器100B。管理計(jì)算機(jī)400連接到交換機(jī)200B。 服務(wù)器300運(yùn)行商業(yè)應(yīng)用并且生成以存儲(chǔ)器100為目標(biāo)的I/O工作負(fù)載。交換機(jī)200是網(wǎng)絡(luò)交換機(jī),即支持TRILL協(xié)議的層2以太網(wǎng)交換機(jī)。數(shù)據(jù)存儲(chǔ)器100是安裝具有多個(gè)磁盤驅(qū)動(dòng)(HDD)或固態(tài)驅(qū)動(dòng)(SSD)的外部存儲(chǔ)系統(tǒng)。管理計(jì)算機(jī)400提供整個(gè)存儲(chǔ)網(wǎng)絡(luò)的管理。在圖3中,第一服務(wù)器計(jì)算機(jī)300A和第一數(shù)據(jù)存儲(chǔ)器100A之間的通信能夠通過路徑 300A-200A-200B-200C-100A 以及 300A-200A-200D-200E-100B-100A 建立。圖4說明了服務(wù)器計(jì)算機(jī)300的硬件配置。CPU 330、存儲(chǔ)器;340、輸入設(shè)備360 (例如鍵盤、鼠標(biāo)等)以及輸出設(shè)備370(例如連接到外部顯示監(jiān)視器的視頻圖形卡)通過內(nèi)存控制器350互連。由I/O控制器320處理的所有的I/O都在內(nèi)部HDD設(shè)備380或者通過網(wǎng)絡(luò)接口 310在外部存儲(chǔ)設(shè)備上處理。該配置能夠由多用途PC實(shí)施。圖5說明了網(wǎng)絡(luò)交換機(jī)200的硬件配置。CPU 230和存儲(chǔ)器240通過內(nèi)存控制器 250互連。I/O控制器220處理的I/O通過多個(gè)網(wǎng)絡(luò)接口 210處理。
圖6說明了數(shù)據(jù)存儲(chǔ)器100的硬件配置。CPU 130和內(nèi)存140通過內(nèi)存控制器150 互連。由I/O控制器120處理的I/O在內(nèi)部HDD設(shè)備180或通過網(wǎng)絡(luò)接口 310在外部存儲(chǔ)設(shè)備上處理。圖7說明了管理計(jì)算機(jī)400的硬件配置。CPU 430、內(nèi)存440、輸入設(shè)備460以及輸出設(shè)備470通過內(nèi)存控制器450互連。由I/O控制器420處理的I/O在內(nèi)部HDD設(shè)備480 或通過網(wǎng)絡(luò)接口 410在外部存儲(chǔ)設(shè)備上處理。圖8說明了存儲(chǔ)在內(nèi)存340中并且運(yùn)行在服務(wù)器計(jì)算機(jī)300上的軟件的示例。應(yīng)用程序3401是生成I/O工作負(fù)載(例如數(shù)據(jù)庫、SAP、電子郵件、交換服務(wù)器、網(wǎng)絡(luò)應(yīng)用等) 的商業(yè)應(yīng)用。I/O傳輸控制程序3402控制在SCSI協(xié)議之上的外部數(shù)據(jù)I/O傳輸通信并且也設(shè)置在服務(wù)器300和存儲(chǔ)器100之間的通信路徑。卷配置信息3404是由服務(wù)器操作系統(tǒng)處理的數(shù)據(jù)卷的配置定義。“/etc/fstab”是卷配置信息3403的簡單示例。在圖12中說明了其數(shù)據(jù)結(jié)構(gòu)。圖9說明了存儲(chǔ)在內(nèi)存240中并且運(yùn)行在交換機(jī)200上的軟件的示例。網(wǎng)絡(luò)路由管理程序MOl是設(shè)置和釋放網(wǎng)絡(luò)上的通信路由的程序。流量監(jiān)控程序M02是測量網(wǎng)絡(luò)接口 210的流量的程序。可以通過例如bsp (每秒字節(jié)數(shù))和IOPS的度量來測量。路由信息 2403是表示由網(wǎng)絡(luò)路由管理程序2401設(shè)置的通信路由的配置數(shù)據(jù)。發(fā)送端口信息M04是表示發(fā)送數(shù)據(jù)的目標(biāo)網(wǎng)絡(luò)接口 210的配置數(shù)據(jù)。路由信息M03和發(fā)送端口信息M04使得能夠確定網(wǎng)絡(luò)上的通信路由。圖10說明了存儲(chǔ)在內(nèi)存140中并且運(yùn)行在數(shù)據(jù)存儲(chǔ)器100上的軟件的示例。I/O 傳輸控制程序1401在SCSI協(xié)議上操作外部數(shù)據(jù)I/O傳輸通信并且也設(shè)置數(shù)據(jù)存儲(chǔ)器100 和服務(wù)器300之間的通信路徑。存儲(chǔ)網(wǎng)絡(luò)路由管理程序1402是本發(fā)明中的獨(dú)特程序。該程序生成和更新本地存儲(chǔ)網(wǎng)絡(luò)路由信息1406和共享存儲(chǔ)網(wǎng)絡(luò)路由信息1407。其合并由多個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)創(chuàng)建的路由信息從而保持存儲(chǔ)系統(tǒng)之間的一致性。配置管理程序1403如管理計(jì)算機(jī)400指示的那樣來更新邏輯單元配置。數(shù)據(jù)復(fù)制程序1404將一個(gè)邏輯單元530 中存儲(chǔ)的整個(gè)數(shù)據(jù)復(fù)制到另一個(gè)邏輯單元530中從而復(fù)制原始邏輯單元530。流量監(jiān)控程序1405測量網(wǎng)絡(luò)接口 110和邏輯單元530的I/O流量。Bps (每秒字節(jié)數(shù))、IOPS等是可接受的度量。共享存儲(chǔ)網(wǎng)絡(luò)路由信息1407是在多個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)100之間共享的信息。其定義網(wǎng)絡(luò)上的通信路由。存儲(chǔ)發(fā)送端口信息1408允許確定網(wǎng)絡(luò)上的通信路由。LU配置信息1409是邏輯單元530的配置設(shè)置。圖11說明了存儲(chǔ)在內(nèi)存440中并且運(yùn)行在管理計(jì)算機(jī)400上的軟件的示例。I/O 路徑控制程序4401與包括存儲(chǔ)網(wǎng)絡(luò)的設(shè)備通信。發(fā)出請(qǐng)求以設(shè)置或更新通信路徑。LU配置請(qǐng)求程序4402與數(shù)據(jù)存儲(chǔ)器100通信。其發(fā)出請(qǐng)求以設(shè)置或更新邏輯單元530。LU配置信息4403是從多個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)100的LU配置信息1408的收集。路由信息4404是從多個(gè)交換機(jī)200和數(shù)據(jù)存儲(chǔ)系統(tǒng)300的路由信息M03和共享存儲(chǔ)網(wǎng)絡(luò)路由信息1407的收集。發(fā)送端口信息4405是發(fā)送端口信息M04和存儲(chǔ)發(fā)送端口信息1408的收集。從交換機(jī)200收集的信息和從數(shù)據(jù)存儲(chǔ)器100收集的信息不是必須被區(qū)分,而是能夠以相同的方式處理。管理計(jì)算機(jī)400更新這些信息使得總是保持最新的配置。數(shù)據(jù)存儲(chǔ)器100的內(nèi)存 140包括物理端口和虛擬端口之間的映射信息,從而虛擬端口可以被作為物理端口對(duì)待。虛擬端口和物理端口之間的關(guān)系不限于一對(duì)一的關(guān)系。一個(gè)物理端口可以與多個(gè)虛擬端口相關(guān)聯(lián)并且一個(gè)虛擬端口可以與多個(gè)物理端口相關(guān)聯(lián)。映射信息應(yīng)當(dāng)由管理計(jì)算機(jī)控制;從而數(shù)據(jù)存儲(chǔ)器100的映射信息可以在管理計(jì)算機(jī)400的內(nèi)存440中集成并且更新能夠彼此
ififn。圖12說明了服務(wù)器計(jì)算機(jī)300的內(nèi)存340中的卷配置信息3403的示例數(shù)據(jù)結(jié)構(gòu)。裝配點(diǎn)34031是在文件系統(tǒng)中定義的邏輯目錄。例如邏輯單元的外部設(shè)備被裝配在該位置。目標(biāo)FCID 34032是網(wǎng)絡(luò)接口 110的標(biāo)識(shí),當(dāng)發(fā)起網(wǎng)絡(luò)登錄處理時(shí),網(wǎng)絡(luò)接口 110由光纖通道網(wǎng)絡(luò)動(dòng)態(tài)地分配。目標(biāo)設(shè)備34033是網(wǎng)絡(luò)接口 110的標(biāo)識(shí)。全球名稱通常用作光纖通道網(wǎng)絡(luò)中的標(biāo)識(shí)符。LUN 34034是分配給每個(gè)邏輯單元530的“邏輯單元號(hào)”。圖13說明了交換機(jī)200的內(nèi)存MO中的路由信息M03的示例數(shù)據(jù)結(jié)構(gòu)。本地端口地址24031是裝配在交換機(jī)200上的網(wǎng)絡(luò)接口。遠(yuǎn)程端口地址24032是裝配在其它設(shè)備上的端口。遠(yuǎn)程端口必須是從一個(gè)或多個(gè)交換機(jī)200上的邏輯端口地址可到達(dá)的。傳輸成本24033是從本地端口到達(dá)遠(yuǎn)程端口的設(shè)備的跳數(shù)。圖14說明了交換機(jī)200的內(nèi)存240中的發(fā)送端口信息M04的示例數(shù)據(jù)結(jié)構(gòu)。遠(yuǎn)程端口地址24031是安裝在其它設(shè)備上的網(wǎng)絡(luò)接口。本地傳遞端口地址24032是與遠(yuǎn)程端口通信并且傳輸數(shù)據(jù)的本地網(wǎng)絡(luò)接口。圖15說明了數(shù)據(jù)存儲(chǔ)器100的內(nèi)存140的本地存儲(chǔ)網(wǎng)絡(luò)路由信息1406的示例數(shù)據(jù)結(jié)構(gòu)。第一表1406A是在圖19的第一存儲(chǔ)器100A上生成的路由信息的示例。第二表 1406B是在圖19的第二存儲(chǔ)器100B上生成的路由信息的示例。本地端口地址14061、遠(yuǎn)程端口地址14062以及傳輸成本14063分別表示與圖13中具有相同功能的相同實(shí)體。該表的獨(dú)特特征在于在該數(shù)據(jù)存儲(chǔ)器100上設(shè)置的虛擬端口 520能夠與物理端口 110 —樣被記錄。圖16說明了數(shù)據(jù)存儲(chǔ)器100的內(nèi)存140中的共享存儲(chǔ)網(wǎng)絡(luò)路由信息1407的示例數(shù)據(jù)結(jié)構(gòu)。邏輯端口地址14071是安裝在數(shù)據(jù)存儲(chǔ)系統(tǒng)100之一上的網(wǎng)絡(luò)接口 110。遠(yuǎn)程端口地址14072是安裝在數(shù)據(jù)存儲(chǔ)系統(tǒng)100之外的外部設(shè)備上的網(wǎng)絡(luò)接口。遠(yuǎn)程端口必須從本地端口可到達(dá)。傳輸成本14073是從本地端口到達(dá)遠(yuǎn)程端口的設(shè)備的跳數(shù)。圖16中的表的內(nèi)容與圖19中的存儲(chǔ)網(wǎng)絡(luò)拓?fù)湟恢?。例如,?shù)據(jù)存儲(chǔ)器100A上的網(wǎng)絡(luò)接口 IlOA直接連接到交換機(jī)#23上的網(wǎng)絡(luò)接口 210E,從而傳輸成本被計(jì)數(shù)為“1”。另一方面,從網(wǎng)絡(luò)接口 IlOA至服務(wù)器300A上的網(wǎng)絡(luò)接口 310A的路由需要四個(gè)設(shè)備的跳數(shù)。第三個(gè)條目的獨(dú)特特征,網(wǎng)絡(luò)接口 IlOC被邏輯上認(rèn)為連接到虛擬端口 520A。當(dāng)數(shù)據(jù)存儲(chǔ)器100檢測到在其它存儲(chǔ)系統(tǒng)100上的配置改變時(shí),其更新路由信息以將信息保持為當(dāng)前的和一致的。圖17說明了數(shù)據(jù)存儲(chǔ)器100的內(nèi)存140中的存儲(chǔ)發(fā)送端口信息1408的示例數(shù)據(jù)結(jié)構(gòu)。遠(yuǎn)程端口地址14081是安裝在其它設(shè)備上的網(wǎng)絡(luò)接口 110。本地傳遞端口地址14082 是與遠(yuǎn)程端口通信和發(fā)送數(shù)據(jù)的本地網(wǎng)絡(luò)接口 110。圖18說明了數(shù)據(jù)存儲(chǔ)器100的內(nèi)存140中的LU配置信息1409的示例數(shù)據(jù)結(jié)構(gòu)。 邏輯端口地址14091是定義在存儲(chǔ)器100上的網(wǎng)絡(luò)接口 110或虛擬網(wǎng)絡(luò)接口 520。虛擬網(wǎng)絡(luò)接口 520不是物理網(wǎng)絡(luò)接口 110但是看上去好像是安裝在數(shù)據(jù)存儲(chǔ)器100上而不是服務(wù)器計(jì)算機(jī)300上。全球名稱14092是網(wǎng)絡(luò)接口 110或虛擬網(wǎng)絡(luò)接口 520的標(biāo)識(shí)。LUN 14093 是用來識(shí)別定義在網(wǎng)絡(luò)接口 110或虛擬網(wǎng)絡(luò)接口 520上的邏輯單元530的“邏輯單元號(hào)”。 存儲(chǔ)資源ID 14094是例如RAID組或HDD或SSD集的物理存儲(chǔ)資源。
圖19說明了根據(jù)本實(shí)施例的存儲(chǔ)網(wǎng)絡(luò)拓?fù)涞氖纠?。第一服?wù)器300A連接到定義在第一數(shù)據(jù)存儲(chǔ)器100A中的虛擬網(wǎng)絡(luò)端口 520A的“/裝配/數(shù)據(jù)2”(見圖12)處的邏輯單元530A。交換機(jī)200A被配置為使用通過網(wǎng)絡(luò)接口 210B和210C至虛擬網(wǎng)絡(luò)端口 520A的雙通信路徑(見圖13和圖14)。初始地,該配置并不發(fā)生,因?yàn)橐粋€(gè)路徑 “210C-把4-#25-110B-110D-520A”在到達(dá)虛擬端口 520A時(shí)具有傳輸成本“5”,這不等于僅具有傳輸成本“4”的另一條路徑“210B-#22-#23-110A-520A”。如圖16所示,通過將多個(gè)虛擬交換機(jī)看作單個(gè)設(shè)備能夠?qū)崿F(xiàn)。從服務(wù)器計(jì)算機(jī)300和交換機(jī)200的角度,物理地多個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)100被識(shí)別為單個(gè)數(shù)據(jù)存儲(chǔ)器100。本實(shí)施例的該方面解決了背景技術(shù)部分提及的第一瓶頸問題。在直接連接的交換機(jī)#23不會(huì)發(fā)生瓶頸,因?yàn)榻?jīng)由第二數(shù)據(jù)存儲(chǔ)器 100B路由了另一個(gè)路徑。圖20是更新交換機(jī)200上的路由信息M03和發(fā)送端口信息M04或數(shù)據(jù)存儲(chǔ)器 100上的共享本地存儲(chǔ)網(wǎng)絡(luò)路由信息1406和存儲(chǔ)發(fā)送端口信息1408的流程圖的示例。首先,交換機(jī)200或數(shù)據(jù)存儲(chǔ)器100檢測新連接到網(wǎng)絡(luò)接口 210或110上的設(shè)備(步驟S101)。 然后在路由信息M03或1406上創(chuàng)建新條目,然后在其傳輸成本域24033或14063記錄 “1”(步驟S102)。交換機(jī)200或數(shù)據(jù)存儲(chǔ)器100然后向通過網(wǎng)絡(luò)接口 210或110直接連接的其它設(shè)備通知新的條目記錄(步驟S103)。接下來,已經(jīng)接收到新設(shè)備發(fā)現(xiàn)通知的交換機(jī)200或數(shù)據(jù)存儲(chǔ)器100更新自己的路由信息M03或1406 (步驟S104)。在這種情況下, 傳輸成本域M033或14063將被加“1”。該設(shè)備重復(fù)至其它網(wǎng)絡(luò)設(shè)備的通知(步驟S105)。 然后,確定到達(dá)新檢測的網(wǎng)絡(luò)接口的一個(gè)或多個(gè)路徑(步驟S106,步驟S107)。在步驟S106 和步驟S107,交換機(jī)200或數(shù)據(jù)存儲(chǔ)器100選擇到達(dá)新設(shè)備具有最小傳輸成本的一個(gè)或多個(gè)網(wǎng)絡(luò)接口 210或110,并且更新發(fā)送端口信息M04或1407。圖21是選擇從服務(wù)器300至存儲(chǔ)器100的一個(gè)或多個(gè)路徑的流程圖的示例。這不是強(qiáng)制處理,而是可選的處理。在步驟S201,管理計(jì)算機(jī)400選擇通過目標(biāo)存儲(chǔ)器100的 I/O路徑。在步驟S202,管理計(jì)算機(jī)400請(qǐng)求路徑更新。在步驟S203,交換機(jī)和虛擬交換機(jī)更新路徑信息。這是現(xiàn)有的選擇,尤其是在管理員在監(jiān)視和分析數(shù)據(jù)流量之后想控制網(wǎng)絡(luò)流量的情形下。同時(shí),當(dāng)三個(gè)或更多個(gè)路徑可用并且管理員想縮減它們時(shí),這是有用的。圖22是組合兩個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)100 (例如100A和100B)之間的本地存儲(chǔ)網(wǎng)絡(luò)路由信息1406的流程圖的示例。在檢測到在本地網(wǎng)絡(luò)端口上的新連接的設(shè)備后,數(shù)據(jù)存儲(chǔ)器 100A在本地存儲(chǔ)網(wǎng)絡(luò)信息1406上增加新的路由信息條目。然后數(shù)據(jù)存儲(chǔ)器100A將新的路由信息條目傳輸?shù)搅硪粋€(gè)數(shù)據(jù)存儲(chǔ)器100B(步驟S301)。數(shù)據(jù)存儲(chǔ)器100B接收新的路由信息并且然后搜索自己的本地存儲(chǔ)網(wǎng)絡(luò)路由信息1406以確認(rèn)是否存在與從原始數(shù)據(jù)存儲(chǔ)器100中接收的路由信息相同的路由信息(步驟S302)。在圖15的示例中,在數(shù)據(jù)存儲(chǔ)器100B接收到新的條目以將至網(wǎng)絡(luò)接口 210F的路徑目標(biāo)以傳輸成本“2”表示時(shí),其搜索并且找到傳輸成本為“1”的網(wǎng)絡(luò)接口 210F的相同目標(biāo)路徑條目。如果步驟S302的結(jié)果是 “是”,則確定采用具有較低傳輸成本的路由(步驟S303)。在圖15的情況下,數(shù)據(jù)存儲(chǔ)器 100B采用自己的以網(wǎng)絡(luò)接口 210F為目標(biāo)的本地條目。其更新共享存儲(chǔ)網(wǎng)絡(luò)路由信息1407 上的路由信息(步驟S304,步驟S305)。圖23是在數(shù)據(jù)存儲(chǔ)系統(tǒng)100上的數(shù)據(jù)遷移的流程圖的示例。目的地存儲(chǔ)器 100(即遷移目標(biāo)設(shè)備)創(chuàng)建新的虛擬端口 520(步驟S401)。該虛擬端口 520具有與源端
13口 520相同的標(biāo)識(shí)符。然后創(chuàng)建在端口 520上的邏輯單元530(步驟S402)。很清楚新的條目被增加到LU配置信息1409。然后數(shù)據(jù)復(fù)制程序1404在設(shè)備上從源LU至目的地LU運(yùn)行數(shù)據(jù)復(fù)制(步驟S40;3)。在數(shù)據(jù)復(fù)制完成之后,源存儲(chǔ)器100去激活源虛擬端口 520(步驟 S404)。在步驟S404之后,激活目標(biāo)虛擬端口 520(步驟S405)。通常響應(yīng)于來自管理服務(wù)器400的請(qǐng)求來執(zhí)行數(shù)據(jù)遷移。圖M是在虛擬交換機(jī)500上的虛擬端口 520的邏輯說明的示例。在該實(shí)施例中, 能夠忽略數(shù)據(jù)存儲(chǔ)器100上的硬件邊界,從而在虛擬交換機(jī)500上虛擬端口位置是靈活的。 同時(shí),服務(wù)器300和交換機(jī)200不會(huì)受到數(shù)據(jù)遷移導(dǎo)致的影響。它們不需要重新配置自己的配置,并且具有在步驟S404和S405發(fā)生的非常短的I/O服務(wù)中斷周期。當(dāng)然,圖19所說明的系統(tǒng)配置僅是僅是示例信息系統(tǒng),其中可以實(shí)施本發(fā)明,并且本發(fā)明不限于特定硬件配置。實(shí)施本發(fā)明的計(jì)算機(jī)和存儲(chǔ)系統(tǒng)也能夠具有已知I/O設(shè)備(例如⑶和DVD驅(qū)動(dòng),軟盤驅(qū)動(dòng),硬驅(qū)等),這些設(shè)備能夠存儲(chǔ)和讀取用于實(shí)施上述發(fā)明的模塊、程序和數(shù)據(jù)結(jié)構(gòu)。這些模塊、程序和數(shù)據(jù)結(jié)構(gòu)能夠被編碼在這樣的計(jì)算機(jī)可讀介質(zhì)上。例如,本發(fā)明的數(shù)據(jù)結(jié)構(gòu)能夠在與記錄了本發(fā)明中使用的程序的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)相獨(dú)立的計(jì)算機(jī)可讀介質(zhì)上??梢酝ㄟ^任何形式的數(shù)字?jǐn)?shù)據(jù)通信介質(zhì),例如通信網(wǎng)絡(luò),來將系統(tǒng)的這些組件相連。通信網(wǎng)絡(luò)的例子包括局域網(wǎng)、廣域網(wǎng)(例如互聯(lián)網(wǎng))、無線網(wǎng)絡(luò),存儲(chǔ)區(qū)域網(wǎng)絡(luò)等。在說明書中,多個(gè)細(xì)節(jié)用于說明的目的以提供對(duì)本發(fā)明的透徹理解。然而,對(duì)本領(lǐng)域普通技術(shù)人員來說,不需要全部的這些特定細(xì)節(jié)來實(shí)現(xiàn)本發(fā)明。也注意到本發(fā)明可以被描述作為處理,通常被描述作為流程圖、流圖、結(jié)構(gòu)圖或框圖。盡管流程圖可能將操作描述作為順序處理,能夠并行或同時(shí)執(zhí)行許多操作。此外,操作的順序可以重新安排。如本領(lǐng)域公知,上述操作能夠由硬件、軟件或軟件和硬件的一些組合來執(zhí)行??梢允褂秒娐泛瓦壿嬙O(shè)備(硬件)來實(shí)施本發(fā)明實(shí)施例的各個(gè)方面,同時(shí)可以使用在機(jī)器可讀介質(zhì)上存儲(chǔ)的指令(軟件)來實(shí)施本發(fā)明實(shí)施例的其它方面,如果處理器執(zhí)行該指令,該指令將使得處理器執(zhí)行方法以實(shí)現(xiàn)本發(fā)明的實(shí)施例。另外,可以主要地在硬件中執(zhí)行本發(fā)明的一些實(shí)施例,而可以主要地在軟件中執(zhí)行其它實(shí)施例。此外,能夠在單個(gè)單元中執(zhí)行描述的各種功能,或者該各種功能能夠以多種方式分布在多個(gè)組件上。當(dāng)由軟件執(zhí)行時(shí),可以由處理器(例如通用計(jì)算機(jī))基于計(jì)算機(jī)可讀介質(zhì)中存儲(chǔ)的指令來執(zhí)行方法。如果需要的話, 能夠以壓縮和/或加密格式將指令存儲(chǔ)在介質(zhì)中。由上述顯而易見,本發(fā)明提供用于在多路徑連接上非毀壞數(shù)據(jù)遷移和I/O負(fù)載均衡的方法、裝置以及存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的程序。另外,盡管在該說明書中描述了特定實(shí)施例,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解設(shè)計(jì)為實(shí)現(xiàn)相同目的的任何適當(dāng)?shù)牟贾媚軌蛱娲@里揭示的特定實(shí)施例。該揭示意欲覆蓋本發(fā)明的任何和所有適配或變化,并且應(yīng)當(dāng)理解在所附權(quán)利要求中使用的術(shù)語不應(yīng)當(dāng)被理解為將本發(fā)明限制為說明書中揭示的特定實(shí)施例。 相反,本發(fā)明的范圍應(yīng)當(dāng)由所附權(quán)利要求以及這樣的權(quán)利要求的等價(jià)物的完全范圍來整體地確定,應(yīng)當(dāng)根據(jù)權(quán)利要求解釋的已制定原則來理解所附權(quán)利要求。
權(quán)利要求
1.一種系統(tǒng),包括第一數(shù)據(jù)存儲(chǔ)系統(tǒng),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少一個(gè)第一接口端口、第一 CPU、第一存儲(chǔ)器、以及多個(gè)第一邏輯單元;第二數(shù)據(jù)存儲(chǔ)系統(tǒng),所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少一個(gè)第二接口端口、第二 CPU、 第二存儲(chǔ)器、以及多個(gè)第二邏輯單元,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng);多個(gè)交換機(jī);以及服務(wù)器,所述服務(wù)器經(jīng)由所述交換機(jī)中的第一組交換機(jī)與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接并經(jīng)由所述交換機(jī)中的第二組交換機(jī)與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接,所述第一組交換機(jī)和所述第二組交換機(jī)具有至少一個(gè)不包括在所述第一組交換機(jī)和所述第二組交換機(jī)這兩個(gè)組中的交換機(jī);其中,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)經(jīng)由所述第一組交換機(jī)從所述服務(wù)器接收以所述多個(gè)第一邏輯單元為目標(biāo)的I/O指令;其中,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)保持關(guān)于所述第一存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端口的第一信息;并且其中,所述第一信息被用于在所述服務(wù)器與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)之間生成多路徑通信,所述多路徑通信包括通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條路徑、以及未通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條其他路徑。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第一信息包括與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間的路徑有關(guān)的信息。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,所述第一信息包括用于在所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息、以及用于在所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中,通過WffPN識(shí)別所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端□。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的一個(gè)是源系統(tǒng),用于將數(shù)據(jù)遷移到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的作為目的地系統(tǒng)的另一個(gè); 并且其中,為了進(jìn)行數(shù)據(jù)遷移,所述目的地系統(tǒng)創(chuàng)建虛擬端口作為目標(biāo)端口,所述目標(biāo)端口具有與所述源系統(tǒng)上的源端口相同的識(shí)別符,并且所述目的地系統(tǒng)在所述目標(biāo)端口上創(chuàng)建邏輯單元,所述源系統(tǒng)運(yùn)行從包含所述源系統(tǒng)中的所述數(shù)據(jù)的邏輯單元到所述目的地系統(tǒng)中的所述目標(biāo)端口上的所述邏輯單元的數(shù)據(jù)拷貝并且對(duì)所述源系統(tǒng)上的所述源端口進(jìn)行去激活,且所述目的地系統(tǒng)激活所述目的地系統(tǒng)上的所述目標(biāo)端口。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,在檢測到有設(shè)備新連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的端口中的一個(gè)端口時(shí),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)添加與新連接的設(shè)備和所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的與所述新連接的設(shè)備連接的端口之間的路徑有關(guān)的信息并通過與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接而將所添加的信息通知所述多個(gè)交換機(jī)、所述服務(wù)器以及所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),進(jìn)一步包括 連接到所述交換機(jī)中的一個(gè)交換機(jī)的管理計(jì)算機(jī);其中,響應(yīng)于來自所述管理計(jì)算機(jī)的請(qǐng)求,所述交換機(jī)更新所述服務(wù)器與所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的至少一個(gè)系統(tǒng)的端口之間的路徑信息。
8.第一數(shù)據(jù)存儲(chǔ)系統(tǒng),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)在包括第二數(shù)據(jù)存儲(chǔ)系統(tǒng)、多個(gè)交換機(jī)以及服務(wù)器的系統(tǒng)中,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)具有至少一個(gè)第二接口端口,所述服務(wù)器經(jīng)由所述交換機(jī)中的第一組交換機(jī)與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接并且經(jīng)由所述交換機(jī)中的第二組交換機(jī)與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接,所述第一組交換機(jī)和所述第二組交換機(jī)具有至少一個(gè)不包括在所述第一組交換機(jī)和所述第二組交換機(jī)這兩個(gè)組中的交換機(jī),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)包括至少一個(gè)第一接口端口; 第一 CPU ; 第一存儲(chǔ)器;以及多個(gè)第一邏輯單元;其中,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)經(jīng)由所述第一組交換機(jī)從所述服務(wù)器接收以所述多個(gè)第一邏輯單元為目標(biāo)的I/O指令;其中,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)保持關(guān)于所述第一存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端口的第一信息;并且其中,所述第一信息用于在所述服務(wù)器與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)之間生成多路徑通信,所述多路徑通信包括通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條路徑、以及不通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條其他路徑。
9.根據(jù)權(quán)利要求8所述的第一數(shù)據(jù)存儲(chǔ)系統(tǒng),其中,所述第一信息包括與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間的路徑有關(guān)的信息。
10.根據(jù)權(quán)利要求9所述的第一數(shù)據(jù)存儲(chǔ)系統(tǒng),其中,所述第一信息包括用于在所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息、以及用于在所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息。
11.根據(jù)權(quán)利要求10所述的第一數(shù)據(jù)存儲(chǔ)系統(tǒng),其中,通過WffPN識(shí)別所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端□。
12.根據(jù)權(quán)利要求8所述的第一數(shù)據(jù)存儲(chǔ)系統(tǒng),其中,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)是源系統(tǒng),用于將數(shù)據(jù)遷移到作為目的地系統(tǒng)的所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng);并且其中,為了進(jìn)行數(shù)據(jù)遷移,所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)創(chuàng)建虛擬端口作為目標(biāo)端口,所述目標(biāo)端口具有與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)上的源端口相同的識(shí)別符;在所述目標(biāo)端口上創(chuàng)建邏輯單元;以及在運(yùn)行從包含所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的所述數(shù)據(jù)的邏輯單元到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)中的所述目標(biāo)端口上的所述邏輯單元的數(shù)據(jù)拷貝之后并且在對(duì)所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)上的所述源端口進(jìn)行去激活之后,激活所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)上的所述目標(biāo)端口。
13.根據(jù)權(quán)利要求8所述的第一數(shù)據(jù)存儲(chǔ)系統(tǒng),其中,在檢測到有設(shè)備新連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的端口中的一個(gè)端口時(shí),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)添加與新連接的設(shè)備和所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的與所述新連接的設(shè)備連接的端口之間的路徑有關(guān)的信息并通過與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接而將所添加的信息通知所述多個(gè)交換機(jī)、所述服務(wù)器以及所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)。
14.一種系統(tǒng)中的多路徑通信方法,所述系統(tǒng)包括第一數(shù)據(jù)存儲(chǔ)系統(tǒng),具有至少一個(gè)第一接口端口、第一 CPU、第一存儲(chǔ)器、以及多個(gè)第一邏輯單元;第二數(shù)據(jù)存儲(chǔ)系統(tǒng),包括至少一個(gè)第二接口端口、第二 CPU、第二存儲(chǔ)器、以及多個(gè)第二邏輯單元,所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng);多個(gè)交換機(jī);以及服務(wù)器,所述服務(wù)器經(jīng)由所述交換機(jī)中的第一組交換機(jī)與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接并經(jīng)由所述交換機(jī)中的第二組交換機(jī)與所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)連接,所述第一組交換機(jī)和所述第二組交換機(jī)具有至少一個(gè)不包括在所述第一組交換機(jī)和所述第二組交換機(jī)這兩個(gè)組中的交換機(jī);所述方法包括經(jīng)由所述交換機(jī)從所述服務(wù)器接收以所述多個(gè)第一和第二邏輯單元中的至少一個(gè)的 I/O指令為目標(biāo);保持與所述第一存儲(chǔ)系統(tǒng)和所述第二存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的所述端口有關(guān)的第一信息;以及使用所述第一信息在所述服務(wù)器和所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)之間生成多路徑通信,所述多路徑通信包括通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條路徑和不通過所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條其他路徑。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述第一信息包括與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)、所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間的路徑有關(guān)的信息。
16.根據(jù)權(quán)利要求15所述的方法,其中,所述第一信息包括用于在所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息、以及用于在所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述多個(gè)交換機(jī)以及所述服務(wù)器的端口之間發(fā)送數(shù)據(jù)的負(fù)載信息。
17.根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括,通過WffPN識(shí)別所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)和所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)這兩個(gè)系統(tǒng)的端口。
18.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括用于將數(shù)據(jù)從所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的作為源系統(tǒng)的一個(gè)存儲(chǔ)系統(tǒng)遷移到所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的作為目的地系統(tǒng)的另一個(gè)存儲(chǔ)系統(tǒng)的數(shù)據(jù)遷移處理,所述數(shù)據(jù)遷移處理包括創(chuàng)建虛擬端口作為目標(biāo)端口,所述目標(biāo)端口具有與所述源系統(tǒng)上的源端口相同的識(shí)別符;在所述目標(biāo)端口上創(chuàng)建邏輯單元;運(yùn)行從包含所述源系統(tǒng)中的所述數(shù)據(jù)的邏輯單元到所述目的地系統(tǒng)中的所述目標(biāo)端口上的所述邏輯單元的數(shù)據(jù)拷貝;對(duì)所述源系統(tǒng)上的所述源端口進(jìn)行去激活;以及激活所述目的地系統(tǒng)上的所述目標(biāo)端口。
19.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括在檢測到有設(shè)備新連接到所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的端口中的一個(gè)端口時(shí),所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)添加與新連接的設(shè)備和所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)的與所述新連接的設(shè)備連接的端口之間的路徑有關(guān)的信息并通過與所述第一數(shù)據(jù)存儲(chǔ)系統(tǒng)連接而將所添加的信息通知所述多個(gè)交換機(jī)、所述服務(wù)器以及所述第二數(shù)據(jù)存儲(chǔ)系統(tǒng)。
20.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括響應(yīng)于來自管理計(jì)算機(jī)的請(qǐng)求,更新在所述服務(wù)器與所述第一和第二數(shù)據(jù)存儲(chǔ)系統(tǒng)中的至少一個(gè)系統(tǒng)的端口之間的路徑信息。
全文摘要
一種多存儲(chǔ)系統(tǒng)上的多路徑交換。系統(tǒng)包括第一存儲(chǔ)系統(tǒng),第二存儲(chǔ)系統(tǒng),多個(gè)交換機(jī)以及經(jīng)由第一組交換機(jī)與第一存儲(chǔ)系統(tǒng)連接并且經(jīng)由第二組交換機(jī)與第二存儲(chǔ)系統(tǒng)連接的服務(wù)器。第一組交換機(jī)和第二組交換機(jī)具有至少一個(gè)不包括在第一組交換機(jī)和第二組交換機(jī)這兩個(gè)組中的交換機(jī)。第一存儲(chǔ)系統(tǒng)經(jīng)由第一組交換機(jī)從服務(wù)器接收以第一邏輯單元為目標(biāo)的I/O指令。第一存儲(chǔ)系統(tǒng)保持關(guān)于第一存儲(chǔ)系統(tǒng)和第二存儲(chǔ)系統(tǒng)二者的端口的第一信息。第一信息被用于在服務(wù)器與第一數(shù)據(jù)存儲(chǔ)系統(tǒng)之間生成多路徑通信,多路徑通信包括通過第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條路徑、以及不通過第二數(shù)據(jù)存儲(chǔ)系統(tǒng)的至少一條其他路徑。
文檔編號(hào)H04L12/56GK102469025SQ20111005414
公開日2012年5月23日 申請(qǐng)日期2011年3月4日 優(yōu)先權(quán)日2010年11月18日
發(fā)明者大谷俊雄, 田口雄一, 羽賀太 申請(qǐng)人:株式會(huì)社日立制作所