亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)處理方法及相關(guān)存儲(chǔ)設(shè)備與流程

文檔序號(hào):12176275閱讀:194來(lái)源:國(guó)知局
一種數(shù)據(jù)處理方法及相關(guān)存儲(chǔ)設(shè)備與流程
本發(fā)明涉及存儲(chǔ)
技術(shù)領(lǐng)域
,尤其涉及一種數(shù)據(jù)處理方法及相關(guān)存儲(chǔ)設(shè)備。
背景技術(shù)
:在由主機(jī)集群和若干存儲(chǔ)陣列構(gòu)成的數(shù)據(jù)處理系統(tǒng)中,如果要在新存儲(chǔ)陣列(下面稱(chēng)為第一存儲(chǔ)陣列)和原存儲(chǔ)陣列(下面稱(chēng)為第二存儲(chǔ)陣列)之間實(shí)施數(shù)據(jù)遷移,那么在數(shù)據(jù)遷移的準(zhǔn)備階段,需要執(zhí)行以下步驟:將第二存儲(chǔ)陣列的待遷移邏輯單元(LogicalUnit,簡(jiǎn)稱(chēng)LU),通過(guò)邏輯單元號(hào)(LogicalUnitNumber,簡(jiǎn)稱(chēng)LUN)映射方式映射至第一存儲(chǔ)陣列;在第一存儲(chǔ)陣列中創(chuàng)建虛擬LU,并建立待遷移LU與虛擬LU的對(duì)應(yīng)關(guān)系;當(dāng)待遷移LU通過(guò)第一存儲(chǔ)陣列映射給主機(jī)之后,主機(jī)通過(guò)多路徑軟件可以獲取用于訪問(wèn)待遷移LU的多條路徑。路徑可以分為兩類(lèi),第一類(lèi)路徑為主機(jī)直接連接至第二存儲(chǔ)陣列的路徑,第二類(lèi)路徑為主機(jī)通過(guò)第一存儲(chǔ)陣列連接至第二存儲(chǔ)陣列的路徑。當(dāng)不同主機(jī)(如主機(jī)A和主機(jī)B)對(duì)待遷移LU進(jìn)行I/O操作時(shí),如果主機(jī)A與主機(jī)B發(fā)生腦裂現(xiàn)象(如通信中斷),那么主機(jī)A和主機(jī)B會(huì)向第二存儲(chǔ)陣列發(fā)送預(yù)留搶占命令,以搶占待遷移LU的控制權(quán)。在搶占過(guò)程中,如果主機(jī)A向第二存儲(chǔ)陣列發(fā)送預(yù)留搶占命令,主機(jī)B通過(guò)第一存儲(chǔ)陣列向第二存儲(chǔ)陣列發(fā)送預(yù)留搶占命令,那么第二存儲(chǔ)陣列接收主機(jī)A發(fā)送的預(yù)留搶占命令,以實(shí)現(xiàn)主機(jī)A對(duì)待遷移LU進(jìn)行搶占;第一存儲(chǔ)陣列接收主機(jī)B發(fā)送的預(yù)留搶占命令,如果將預(yù)留搶占命令原樣轉(zhuǎn)發(fā)給第二存儲(chǔ)陣列,由于第二存儲(chǔ)陣列根據(jù)第一存儲(chǔ)陣列的下發(fā)端口識(shí)別預(yù)留搶占命令的來(lái)源,第二存儲(chǔ)陣列并不會(huì)實(shí)現(xiàn)主機(jī)B對(duì)待遷移LU的搶占,同時(shí)第一存儲(chǔ)陣列根據(jù)預(yù)留搶占命令,會(huì)執(zhí)行主機(jī)B對(duì)第一存儲(chǔ)陣列中的虛擬LU進(jìn)行搶占。若兩個(gè)都搶占成功,接下來(lái)執(zhí)行數(shù)據(jù)遷移時(shí),由于待遷移LU和虛擬LU分別被不同的主機(jī)占用,當(dāng)主機(jī)A和主機(jī)B的命令不一致時(shí),虛擬LU與待遷移LU中的數(shù)據(jù)無(wú)法保持一致,造成原存儲(chǔ)陣列與新存儲(chǔ)陣列的數(shù)據(jù)無(wú)法保持一致。為了保證數(shù)據(jù)的一致性,現(xiàn)有的預(yù)留搶占方法大致如下:第一存儲(chǔ)陣列可以使用端口ID虛擬化(N-PortIdentifierVirtualization,簡(jiǎn)稱(chēng)NPIV)功能,利用第一存儲(chǔ)陣列的端口,對(duì)每個(gè)主機(jī)的主機(jī)端口做一對(duì)一的模擬。如圖1所示,將第一存儲(chǔ)陣列的P10'的WWN設(shè)置為P10的WWN,將P11'的WWN設(shè)置為P11的WWN。當(dāng)?shù)谝淮鎯?chǔ)陣列收到來(lái)自P0端口的命令時(shí),第一存儲(chǔ)陣列選取與P10對(duì)應(yīng)的P10',從P10'將預(yù)留轉(zhuǎn)發(fā)命令原樣轉(zhuǎn)發(fā)給第二存儲(chǔ)陣列,第二存儲(chǔ)陣列根據(jù)P10'的WWN(即P10的WWN),就可以確定預(yù)留搶占命令的來(lái)源為主機(jī)A,再執(zhí)行主機(jī)A搶占待遷移LU的操作。但是,現(xiàn)有技術(shù)必須依賴(lài)光纖通道(FiberChannel,簡(jiǎn)稱(chēng)FC)交換機(jī)實(shí)施NPIV技術(shù)。在沒(méi)有FC交換機(jī)的組網(wǎng)場(chǎng)景中,以上預(yù)留搶占方法無(wú)法實(shí)施,具有很大的局限性。技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供了一種數(shù)據(jù)處理方法以及相關(guān)存儲(chǔ)設(shè)備,能夠在不同存儲(chǔ)陣列實(shí)施在線數(shù)據(jù)遷移的過(guò)程中,當(dāng)主機(jī)集群發(fā)生腦裂時(shí),保證不同存儲(chǔ)陣列之間數(shù)據(jù)的一致性,并且不依賴(lài)光纖通道交換機(jī),適用場(chǎng)景更廣。第一方面提供了一種數(shù)據(jù)處理方法,該方法應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò),存儲(chǔ)區(qū)域網(wǎng)絡(luò)包括第一存儲(chǔ)設(shè)備和第二存儲(chǔ)設(shè)備,第二存儲(chǔ)設(shè)備包括LU,用LUN標(biāo)識(shí)。該數(shù)據(jù)處理方法包括:主機(jī)通過(guò)目標(biāo)端口將第一預(yù)留搶占命令發(fā)送給第一存儲(chǔ)設(shè)備,第一存儲(chǔ)設(shè)備獲取第一預(yù)留搶占命令包括的目標(biāo)端口的端口標(biāo)識(shí)、待校驗(yàn)預(yù)留密鑰以及LUN之后,根據(jù)預(yù)設(shè)的端口映射關(guān)系確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口,再將待校驗(yàn)預(yù)留密鑰、LUN、目標(biāo)端口的端口標(biāo)識(shí)以及轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)進(jìn)行封裝得到第二預(yù)留搶占命令;然后,通過(guò)轉(zhuǎn)發(fā)端口將第二預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備,第二存儲(chǔ)設(shè)備根據(jù)第二預(yù)留搶占命令包括的目標(biāo)端口的端口標(biāo)識(shí),執(zhí)行預(yù)留搶占操作,因此該主機(jī)能夠通過(guò)第一存儲(chǔ)設(shè)備搶占第二存儲(chǔ)設(shè)備的LU。其中,目標(biāo)端口可以是任意一個(gè)主機(jī)端口,待校驗(yàn)預(yù)留密鑰用于第二存儲(chǔ)設(shè)備對(duì)主機(jī)進(jìn)行校驗(yàn),端口映射關(guān)系包括目標(biāo)端口與轉(zhuǎn)發(fā)端口的映射關(guān)系。由此可見(jiàn),第一存儲(chǔ)設(shè)備將預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備,而不是在第一存儲(chǔ)設(shè)備上執(zhí)行,因此可以解決了不同主機(jī)的預(yù)留搶占命令在不同存儲(chǔ)設(shè)備執(zhí)行的問(wèn)題。由于在數(shù)據(jù)遷移過(guò)程中新舊存儲(chǔ)設(shè)備都執(zhí)行同一主機(jī)的控制指令,使得新舊存儲(chǔ)設(shè)備的數(shù)據(jù)能夠保持一致。并且,根據(jù)本發(fā)明設(shè)置的命令處理方法,每個(gè)存儲(chǔ)設(shè)備都可以識(shí)別并處理第二預(yù)留搶占命令,因此無(wú)需使用NPIV功能進(jìn)行端口模擬,既可以應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò),也可以應(yīng)用于無(wú)光纖通道交換機(jī)的直連式網(wǎng)絡(luò),因此本發(fā)明數(shù)據(jù)處理方法的適用場(chǎng)景更廣。在第一方面的一種可能實(shí)現(xiàn)方式中,在第一存儲(chǔ)設(shè)備根據(jù)預(yù)設(shè)的端口映射關(guān)系,確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口之前,第一存儲(chǔ)設(shè)備獲取目標(biāo)端口的端口標(biāo)識(shí)之后,以及從與第二存儲(chǔ)設(shè)備的目標(biāo)LU建立有對(duì)應(yīng)關(guān)系的端口中選取至少一個(gè)端口作為轉(zhuǎn)發(fā)端口,再根據(jù)目標(biāo)端口的端口標(biāo)識(shí)建立轉(zhuǎn)發(fā)端口與目標(biāo)端口的端口映射關(guān)系。第一存儲(chǔ)設(shè)備還可以獲取目標(biāo)LU存儲(chǔ)的預(yù)留密鑰,根據(jù)轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)與目標(biāo)端口對(duì)應(yīng)的預(yù)留密鑰生成預(yù)留注冊(cè)命令,然后,通過(guò)轉(zhuǎn)發(fā)端口向目標(biāo)LU發(fā)送預(yù)留注冊(cè)命令,第二存儲(chǔ)設(shè)備根據(jù)該預(yù)留注冊(cè)命令記錄目標(biāo)端口對(duì)應(yīng)的預(yù)留密鑰與轉(zhuǎn)發(fā)端口的對(duì)應(yīng)關(guān)系。由此可見(jiàn),本發(fā)明通過(guò)設(shè)置目標(biāo)端口到轉(zhuǎn)發(fā)端口的端口映射關(guān)系,并且在目標(biāo)LU中注冊(cè)了轉(zhuǎn)發(fā)端口,以使得第一存儲(chǔ)設(shè)備可以通過(guò)轉(zhuǎn)發(fā)端口將來(lái)自目標(biāo)端口的信息轉(zhuǎn)發(fā)給目標(biāo)LU。由于轉(zhuǎn)發(fā)端口與目標(biāo)端口的預(yù)留密鑰一致,因此主機(jī)可以在完成預(yù)留搶占之后傳輸數(shù)據(jù)。進(jìn)一步的,在第一方面的另一種可能實(shí)現(xiàn)方式中,在第一存儲(chǔ)設(shè)備獲取目標(biāo)LU存儲(chǔ)的預(yù)留密鑰之前,第一存儲(chǔ)設(shè)備讀取第二存儲(chǔ)設(shè)備中目標(biāo)LU的識(shí)別信息,根據(jù)識(shí)別信息創(chuàng)建虛擬LU;將虛擬LU映射到主機(jī)端口。進(jìn)一步的,在第一方面的另一種可能實(shí)現(xiàn)方式中,在通過(guò)轉(zhuǎn)發(fā)端口向目標(biāo)LU發(fā)送預(yù)留注冊(cè)命令之后,第一存儲(chǔ)設(shè)備接收主機(jī)通過(guò)目標(biāo)端口發(fā)送的輸入/輸出I/O指令,I/O指令用于通過(guò)虛擬LU訪問(wèn)目標(biāo)LU;通過(guò)轉(zhuǎn)發(fā)端口,將I/O指令發(fā)送給第二存儲(chǔ)設(shè)備中的目標(biāo)LU。結(jié)合第一方面以上實(shí)現(xiàn)方式,在第一方面的另一種可能實(shí)現(xiàn)方式中,當(dāng)主機(jī)直接連接至第二存儲(chǔ)設(shè)備的磁盤(pán)路徑全部被禁用時(shí),第一存儲(chǔ)設(shè)備接收關(guān)閉預(yù)留轉(zhuǎn)發(fā)指令,根據(jù)關(guān)閉預(yù)留轉(zhuǎn)發(fā)指令關(guān)閉預(yù)留轉(zhuǎn)發(fā)功能。第二方面提供一種存儲(chǔ)設(shè)備,可以實(shí)現(xiàn)第一方面的數(shù)據(jù)處理方法中第一存儲(chǔ)設(shè)備的功能。該功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。第三方面提供一種數(shù)據(jù)處理系統(tǒng),包括主機(jī)、第二存儲(chǔ)設(shè)備以及第一存儲(chǔ)設(shè)備。主機(jī)可以通過(guò)目標(biāo)端口向第一存儲(chǔ)設(shè)備發(fā)送第一預(yù)留搶占命令,第一存儲(chǔ)設(shè)備獲取第一預(yù)留搶占命令包括的目標(biāo)端口的端口標(biāo)識(shí)、待校驗(yàn)預(yù)留密鑰以及LUN之后,根據(jù)預(yù)設(shè)的端口映射關(guān)系確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口,再將待校驗(yàn)預(yù)留密鑰、LUN、目標(biāo)端口的端口標(biāo)識(shí)以及轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)進(jìn)行封裝得到第二預(yù)留搶占命令;然后,通過(guò)轉(zhuǎn)發(fā)端口將第二預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備,第二存儲(chǔ)設(shè)備接收第二預(yù)留搶占命令之后,確定LUN對(duì)應(yīng)的LU,從LU存儲(chǔ)的預(yù)留注冊(cè)信息中查找與目標(biāo)端口對(duì)應(yīng)的目標(biāo)預(yù)留密鑰;若待校驗(yàn)預(yù)留密鑰與目標(biāo)預(yù)留密鑰一致,則根據(jù)目標(biāo)端口的端口標(biāo)識(shí),執(zhí)行預(yù)留搶占操作。由此可見(jiàn),第一存儲(chǔ)設(shè)備將預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備,而不是在第一存儲(chǔ)設(shè)備上執(zhí)行,因此可以解決了不同主機(jī)的預(yù)留搶占命令在不同存儲(chǔ)設(shè)備執(zhí)行的問(wèn)題。由于在數(shù)據(jù)遷移過(guò)程中新舊存儲(chǔ)設(shè)備都執(zhí)行同一主機(jī)的控制指令,使得新舊存儲(chǔ)設(shè)備的數(shù)據(jù)能夠保持一致。并且,根據(jù)本發(fā)明設(shè)置的命令處理方法,每個(gè)存儲(chǔ)設(shè)備都可以識(shí)別并處理第二預(yù)留搶占命令,因此無(wú)需使用NPIV功能進(jìn)行端口模擬,既可以應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò),也可以應(yīng)用于無(wú)光纖通道交換機(jī)的直連組網(wǎng)場(chǎng)景,因此本發(fā)明數(shù)據(jù)處理方法的適用場(chǎng)景更廣。從本發(fā)明實(shí)施例可以看出,第一存儲(chǔ)設(shè)備接收主機(jī)通過(guò)目標(biāo)端口發(fā)送的第一預(yù)留搶占命令以及目標(biāo)端口的端口標(biāo)識(shí),將待校驗(yàn)預(yù)留密鑰、LUN和目標(biāo)端口的端口標(biāo)識(shí)進(jìn)行封裝得到第二預(yù)留搶占命令,根據(jù)預(yù)設(shè)的端口映射關(guān)系確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口,通過(guò)轉(zhuǎn)發(fā)端口將第二預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備,第二存儲(chǔ)設(shè)備根據(jù)第二預(yù)留搶占命令刪除其他預(yù)留密鑰。由此可見(jiàn),第一存儲(chǔ)設(shè)備接收原預(yù)留搶占命令之后,不執(zhí)行根據(jù)原預(yù)留搶占命令對(duì)虛擬LU進(jìn)行預(yù)留搶占操作,而是將原預(yù)留搶占命令和目標(biāo)端口的端口標(biāo)識(shí)打包生成新的預(yù)留搶占命令轉(zhuǎn)發(fā)給第二存儲(chǔ)設(shè)備,第二存儲(chǔ)設(shè)備收到新的預(yù)留搶占命令時(shí),可以根據(jù)目標(biāo)端口的端口標(biāo)識(shí)以及待校驗(yàn)預(yù)留密鑰,執(zhí)行預(yù)留搶占操作。本發(fā)明可以避免在第一存儲(chǔ)設(shè)備中主機(jī)對(duì)虛擬LU進(jìn)行搶占,導(dǎo)致待遷移LU與虛擬LU中數(shù)據(jù)不一致的問(wèn)題。同時(shí),本發(fā)明無(wú)需使用NPIV功能進(jìn)行端口模擬,可以應(yīng)用于無(wú)光纖通道交換機(jī)的直連式網(wǎng)絡(luò),具有更好的適用性。附圖說(shuō)明圖1為現(xiàn)有技術(shù)中數(shù)據(jù)處理方法的應(yīng)用場(chǎng)景的一個(gè)示意圖:圖2為現(xiàn)有技術(shù)中數(shù)據(jù)處理方法的應(yīng)用場(chǎng)景的另一個(gè)示意圖;圖3為本發(fā)明實(shí)施例中數(shù)據(jù)處理方法的應(yīng)用場(chǎng)景的一個(gè)示意圖;圖4為本發(fā)明實(shí)施例中數(shù)據(jù)處理方法的應(yīng)用場(chǎng)景的另一個(gè)示意圖;圖5為本發(fā)明實(shí)施例中數(shù)據(jù)處理方法的一個(gè)示意圖;圖6為本發(fā)明實(shí)施例中數(shù)據(jù)處理方法的另一個(gè)示意圖;圖7為本發(fā)明實(shí)施例中數(shù)據(jù)處理方法的應(yīng)用場(chǎng)景的另一個(gè)示意圖;圖8為本發(fā)明實(shí)施例中數(shù)據(jù)處理方法的另一個(gè)示意圖;圖9為本發(fā)明實(shí)施例中存儲(chǔ)設(shè)備的一個(gè)示意圖;圖10為本發(fā)明實(shí)施例中數(shù)據(jù)處理系統(tǒng)的一個(gè)示意圖;圖11為本發(fā)明實(shí)施例中存儲(chǔ)設(shè)備的另一個(gè)示意圖。具體實(shí)施方式下面先對(duì)本發(fā)明提供的數(shù)據(jù)處理方法的應(yīng)用環(huán)境進(jìn)行介紹,本發(fā)明的數(shù)據(jù)處理系統(tǒng)既可以為存儲(chǔ)區(qū)域網(wǎng)絡(luò)(StorageAreaNetwork,簡(jiǎn)稱(chēng)SAN),也可以為直連式存儲(chǔ)(Direct-AttachedStorage,簡(jiǎn)稱(chēng)DAS)系統(tǒng)。下面以SAN為例,對(duì)本發(fā)明的數(shù)據(jù)處理系統(tǒng)進(jìn)行詳細(xì)介紹。請(qǐng)參閱圖3,SAN系統(tǒng)包括:主機(jī)集群、SAN交換網(wǎng)絡(luò)以及存儲(chǔ)陣列。主機(jī)集群包括若干主機(jī),每個(gè)主機(jī)也稱(chēng)作集群節(jié)點(diǎn)。每個(gè)主機(jī)通過(guò)SAN交換網(wǎng)絡(luò)與存儲(chǔ)設(shè)備相連。每個(gè)主機(jī)可以包括一個(gè)或多個(gè)端口,例如主機(jī)A包括P10、P11,主機(jī)B包括P20、P21等,如圖4所示。SAN交換網(wǎng)絡(luò):是連接存儲(chǔ)設(shè)備和主機(jī)的專(zhuān)用光纖通道網(wǎng)絡(luò),由支持光纖通道的服務(wù)器、光纖通道卡(網(wǎng)卡)、光纖通道集線器/交換機(jī)和光纖通道存儲(chǔ)裝置所組成。SAN交換網(wǎng)絡(luò)最重要的三個(gè)組成部分就是:設(shè)備接口(如小型計(jì)算機(jī)系統(tǒng)接口(SmallComputerSystemInterface,簡(jiǎn)稱(chēng)SCSI)、光纖通道等)、連接設(shè)備(如交換機(jī)、網(wǎng)關(guān)、路由器、集線器等)和通信控制協(xié)議(如互聯(lián)網(wǎng)協(xié)議(InternetProtocol,簡(jiǎn)稱(chēng)IP)和SCSI協(xié)議等)。存儲(chǔ)設(shè)備一般是指由多個(gè)存儲(chǔ)單元組成的存儲(chǔ)陣列。存儲(chǔ)單元可以通過(guò)LU來(lái)描述,每個(gè)LU可以用LUN進(jìn)行標(biāo)識(shí)。存儲(chǔ)陣列可以提供一個(gè)或多個(gè)LU給主機(jī)訪問(wèn)。存儲(chǔ)設(shè)備可以包括多個(gè)端口,例如,存儲(chǔ)陣列C包括P00、P01,存儲(chǔ)陣列D包括P30、P31、P33、P33等,如圖4所示。在數(shù)據(jù)遷移準(zhǔn)備階段中,為了避免主機(jī)A和主機(jī)B搶占新舊存儲(chǔ)陣列,導(dǎo)致數(shù)據(jù)不一致的情況,現(xiàn)有技術(shù)有兩種數(shù)據(jù)處理方法來(lái)處理。第一種方法:每個(gè)主機(jī)設(shè)置位于集群軟件的下層的懸掛邏輯軟件處理層,以截獲主機(jī)下發(fā)的所有命令。當(dāng)主機(jī)向指定LU下發(fā)預(yù)留搶占命令時(shí),主機(jī)可以利用懸掛邏輯軟件檢測(cè)到預(yù)留搶占命令,將預(yù)留搶占命令懸掛起來(lái),既不發(fā)送到舊存儲(chǔ)陣列,也不發(fā)送到新存儲(chǔ)陣列。當(dāng)新存儲(chǔ)陣列接管舊存儲(chǔ)陣列之后,再將懸掛的命令下發(fā)給新存儲(chǔ)陣列。但是,如果懸掛命令的時(shí)間太長(zhǎng),主機(jī)會(huì)認(rèn)為該命令執(zhí)行失敗,預(yù)留搶占無(wú)法實(shí)行;如果懸掛命令的時(shí)間太短,在接管步驟還未完成前就把預(yù)留搶占命令下發(fā)到存儲(chǔ)陣列,數(shù)據(jù)不一致的問(wèn)題就不能得到解決。因此,采用懸掛預(yù)留搶占命令的缺點(diǎn)在于懸掛時(shí)間具有很大的限制,具有一定局限性。第二種方法:第一存儲(chǔ)陣列使用NPIV功能利用第一存儲(chǔ)陣列的端口,對(duì)每個(gè)主機(jī)的主機(jī)端口做一對(duì)一的模擬。如圖4所示,將第一存儲(chǔ)陣列的P10'的全球唯一標(biāo)識(shí)(WorldWideName,簡(jiǎn)稱(chēng)WWN)設(shè)置為P10的WWN,將P11'的WWN設(shè)置為P11的WWN。當(dāng)?shù)谝淮鎯?chǔ)陣列收到來(lái)自P10端口的命令時(shí),第一存儲(chǔ)陣列選取與P10對(duì)應(yīng)的P10',從P10'將預(yù)留轉(zhuǎn)發(fā)命令原樣轉(zhuǎn)發(fā)給第二存儲(chǔ)陣列,第二存儲(chǔ)陣列根據(jù)P10'的WWN(即P10的WWN),就可以確定預(yù)留搶占命令的來(lái)源為主機(jī)A,再執(zhí)行主機(jī)A搶占待遷移LU的操作。但是,現(xiàn)有技術(shù)必須依賴(lài)光纖通道(FiberChannel)交換機(jī)實(shí)施NPIV技術(shù)。在沒(méi)有FC交換機(jī)的組網(wǎng)場(chǎng)景中,以上預(yù)留搶占方法無(wú)法實(shí)施,具有很大的局限性。為了解決以上問(wèn)題,本發(fā)明提供一種數(shù)據(jù)處理方法,其核心思想是設(shè)置一種新預(yù)留搶占命令以及存儲(chǔ)設(shè)備對(duì)該新預(yù)留搶占命令的處理流程。該預(yù)留搶占命令包括主機(jī)端口的端口信息,第一存儲(chǔ)設(shè)備能夠?qū)⒃撔骂A(yù)留搶占命令轉(zhuǎn)發(fā)給第二存儲(chǔ)設(shè)備,第二存儲(chǔ)設(shè)備接收到該預(yù)留搶占命令時(shí),能夠根據(jù)其包含的主機(jī)端口的端口信息進(jìn)行預(yù)留搶占。在本發(fā)明的數(shù)據(jù)處理方法實(shí)施之前,為了便于理解,首先對(duì)本發(fā)明數(shù)據(jù)處理方法的準(zhǔn)備階段進(jìn)行介紹。在數(shù)據(jù)處理系統(tǒng)中,主機(jī)A和主機(jī)B分別向存儲(chǔ)陣列C的LU_1發(fā)送預(yù)留注冊(cè)命令,假設(shè)主機(jī)A的預(yù)留密鑰(reservationkey)為KeyA,主機(jī)A下發(fā)預(yù)留注冊(cè)命令的端口為P10,主機(jī)B的預(yù)留密鑰為KeyB,主機(jī)B下發(fā)預(yù)留注冊(cè)命令的端口為P20。存儲(chǔ)陣列C可以記錄主機(jī)端口與預(yù)留密鑰的對(duì)應(yīng)關(guān)系,如下表所示。邏輯單元主機(jī)端口預(yù)留密鑰LU_1P10KeyALU_1P11KeyALU_1P20KeyBLU_1P21KeyB注冊(cè)成功后,主機(jī)A和主機(jī)B均具有訪問(wèn)LU_1的權(quán)限。當(dāng)主機(jī)進(jìn)行持續(xù)預(yù)留操作時(shí),若持續(xù)預(yù)留成功,就可以獲得LU_1的操作權(quán)限。主機(jī)還可以通過(guò)上述主機(jī)端口下發(fā)I/O指令到LU_1,存儲(chǔ)陣列C允許來(lái)自上述主機(jī)端口的I/O指令對(duì)LU_1進(jìn)行讀寫(xiě)操作。若要在第一存儲(chǔ)設(shè)備與第二存儲(chǔ)設(shè)備之間實(shí)施數(shù)據(jù)遷移,首先第二存儲(chǔ)設(shè)備要將LU映射給第一存儲(chǔ)設(shè)備,具體過(guò)程可參閱以下實(shí)施例。請(qǐng)參閱圖5,本發(fā)明的數(shù)據(jù)處理方法的一個(gè)實(shí)施例包括:步驟501、第一存儲(chǔ)設(shè)備讀取第二存儲(chǔ)設(shè)備中目標(biāo)LU的識(shí)別信息。步驟502、第一存儲(chǔ)設(shè)備根據(jù)識(shí)別信息創(chuàng)建虛擬LU,將虛擬LU映射到主機(jī)端口。本實(shí)施例中,目標(biāo)LU可以為第二存儲(chǔ)設(shè)備中的任意一個(gè)LU。虛擬LU與目標(biāo)LU是一一對(duì)應(yīng)的。當(dāng)?shù)谝淮鎯?chǔ)設(shè)備接入交換網(wǎng)絡(luò)之后,第一存儲(chǔ)設(shè)備可以通過(guò)交換網(wǎng)絡(luò)與第二存儲(chǔ)設(shè)備建立通信連接,建立第一存儲(chǔ)設(shè)備的端口到目標(biāo)LU的訪問(wèn)路徑。第一存儲(chǔ)設(shè)備讀取第二存儲(chǔ)設(shè)備中目標(biāo)LU的識(shí)別信息之后,根據(jù)識(shí)別信息創(chuàng)建虛擬LU,然后將虛擬LU映射到主機(jī)端口。當(dāng)?shù)谝淮鎯?chǔ)設(shè)備將虛擬LU映射到主機(jī)端口之后,若主機(jī)在磁盤(pán)掃描的過(guò)程中訪問(wèn)虛擬LU,第一存儲(chǔ)設(shè)備可以從第二存儲(chǔ)設(shè)備的目標(biāo)LU中讀取數(shù)據(jù)反饋給主機(jī),此時(shí),主機(jī)會(huì)將主機(jī)到虛擬LU的路徑認(rèn)為是主機(jī)到目標(biāo)LU的新路徑。對(duì)于主機(jī)來(lái)說(shuō),當(dāng)出現(xiàn)新路徑之后,主機(jī)的磁盤(pán)路徑管理程序可以將后續(xù)I/O流切換到新路徑,在原路徑?jīng)]有被完全禁用的情況下,新路徑與原路徑共存。步驟503、第一存儲(chǔ)設(shè)備獲取目標(biāo)端口的端口標(biāo)識(shí)。步驟504、第一存儲(chǔ)設(shè)備從與第二存儲(chǔ)設(shè)備的目標(biāo)LU建立有對(duì)應(yīng)關(guān)系的端口中選取至少一個(gè)端口作為轉(zhuǎn)發(fā)端口,根據(jù)目標(biāo)端口的端口標(biāo)識(shí)建立轉(zhuǎn)發(fā)端口與目標(biāo)端口的端口映射關(guān)系。步驟501及步驟502可知,第一存儲(chǔ)設(shè)備可以通過(guò)若干端口訪問(wèn)目標(biāo)LU。第一存儲(chǔ)設(shè)備可以選取若干端口的全部或部分作為轉(zhuǎn)發(fā)端口,建立轉(zhuǎn)發(fā)端口與主機(jī)端口的映射關(guān)系。需要說(shuō)明的是,第一存儲(chǔ)設(shè)備可以根據(jù)主機(jī)數(shù)量,將上述轉(zhuǎn)發(fā)端口劃分為多個(gè)端口組,主機(jī)與端口組一一對(duì)應(yīng)。每個(gè)主機(jī)可以從任意一個(gè)主機(jī)端口下發(fā)I/O流,第一存儲(chǔ)設(shè)備可以從相應(yīng)的端口組中選取一個(gè)轉(zhuǎn)發(fā)端口,將上述I/O流轉(zhuǎn)發(fā)給第二存儲(chǔ)設(shè)備。步驟505、第一存儲(chǔ)設(shè)備獲取目標(biāo)LU存儲(chǔ)的預(yù)留密鑰,根據(jù)轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)與目標(biāo)端口對(duì)應(yīng)的預(yù)留密鑰生成預(yù)留注冊(cè)命令。目標(biāo)LU存儲(chǔ)有目標(biāo)端口與預(yù)留密鑰的對(duì)應(yīng)關(guān)系,第一存儲(chǔ)設(shè)備獲取目標(biāo)LU存儲(chǔ)的預(yù)留密鑰之后,可以根據(jù)目標(biāo)端口與預(yù)留密鑰的對(duì)應(yīng)關(guān)系,以及轉(zhuǎn)發(fā)端口與目標(biāo)端口的映射關(guān)系之后,確定轉(zhuǎn)發(fā)端口對(duì)應(yīng)的預(yù)留密鑰,然后生成轉(zhuǎn)發(fā)端口的預(yù)留注冊(cè)命令,該預(yù)留注冊(cè)命令包括轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)與其對(duì)應(yīng)的預(yù)留密鑰。步驟506、第一存儲(chǔ)設(shè)備通過(guò)轉(zhuǎn)發(fā)端口向目標(biāo)LU發(fā)送預(yù)留注冊(cè)命令。步驟507、第二存儲(chǔ)設(shè)備根據(jù)預(yù)留注冊(cè)命令,記錄目標(biāo)端口對(duì)應(yīng)的預(yù)留密鑰與轉(zhuǎn)發(fā)端口的對(duì)應(yīng)關(guān)系。第二存儲(chǔ)設(shè)備獲取上述預(yù)留注冊(cè)命令之后,可以獲取其包括的轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)、預(yù)留密鑰等信息,然后利用上述信息注冊(cè)該轉(zhuǎn)發(fā)端口。注冊(cè)完成后,該轉(zhuǎn)發(fā)端口就具有訪問(wèn)目標(biāo)LU的權(quán)限。本實(shí)施例中,第一存儲(chǔ)設(shè)備建立了目標(biāo)端口到轉(zhuǎn)發(fā)端口的端口映射關(guān)系,并且在目標(biāo)LU中注冊(cè)了轉(zhuǎn)發(fā)端口,以使得第一存儲(chǔ)設(shè)備可以通過(guò)轉(zhuǎn)發(fā)端口將來(lái)自目標(biāo)端口的信息轉(zhuǎn)發(fā)給目標(biāo)LU。舉例來(lái)說(shuō),在目標(biāo)LU中,主機(jī)端口、轉(zhuǎn)發(fā)端口、邏輯單元以及預(yù)留密鑰的對(duì)應(yīng)關(guān)系可以如下表所示:主機(jī)端口轉(zhuǎn)發(fā)端口邏輯單元預(yù)留密鑰P10P31LU_1KeyAP11P32LU_1KeyAP20P33LU_1KeyBP21P34LU_1KeyB可以理解的是,如果多個(gè)轉(zhuǎn)發(fā)端口對(duì)應(yīng)的是同一個(gè)主機(jī),那么上述轉(zhuǎn)發(fā)端口對(duì)應(yīng)的預(yù)留密鑰相同。基于圖5所示實(shí)施例,請(qǐng)參閱圖6,本發(fā)明的數(shù)據(jù)處理方法的另一個(gè)實(shí)施例包括:步驟601、主機(jī)通過(guò)目標(biāo)端口發(fā)送的I/O指令,I/O指令用于通過(guò)虛擬LU訪問(wèn)目標(biāo)LU。步驟602、第一存儲(chǔ)設(shè)備根據(jù)端口映射關(guān)系,確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口。具體的,第一存儲(chǔ)設(shè)備接收主機(jī)發(fā)送的I/O指令之后,可以基于圖5建立的端口映射關(guān)系,確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口。步驟603、第一存儲(chǔ)設(shè)備通過(guò)轉(zhuǎn)發(fā)端口,將I/O指令發(fā)送給第二存儲(chǔ)設(shè)備中的目標(biāo)LU。步驟604、第二存儲(chǔ)設(shè)備根據(jù)I/O指令在目標(biāo)LU中執(zhí)行讀寫(xiě)操作。本實(shí)施例中,當(dāng)?shù)谝淮鎯?chǔ)設(shè)備建立了目標(biāo)端口到轉(zhuǎn)發(fā)端口的端口映射關(guān)系,并且在目標(biāo)LU中注冊(cè)了轉(zhuǎn)發(fā)端口之后,轉(zhuǎn)發(fā)端口具有訪問(wèn)目標(biāo)LU的權(quán)限。因此第一存儲(chǔ)設(shè)備可以將從目標(biāo)端口下發(fā)的I/O指令,通過(guò)轉(zhuǎn)發(fā)端口發(fā)送給第二存儲(chǔ)設(shè)備的目標(biāo)LU??梢岳斫獾氖?,第一存儲(chǔ)設(shè)備還可以將從目標(biāo)端口下發(fā)的其他信息轉(zhuǎn)發(fā)給目標(biāo)LU。需要說(shuō)明的是,當(dāng)?shù)谝淮鎯?chǔ)設(shè)備的轉(zhuǎn)發(fā)端口在目標(biāo)LU上注冊(cè)失敗時(shí),轉(zhuǎn)發(fā)端口不具有訪問(wèn)目標(biāo)LU的權(quán)限,第二存儲(chǔ)設(shè)備將不會(huì)響應(yīng)來(lái)自轉(zhuǎn)發(fā)端口的I/O指令。基于圖6所示實(shí)施例,下面對(duì)本發(fā)明提供的數(shù)據(jù)處理方法進(jìn)行詳細(xì)介紹,請(qǐng)參閱圖7,本發(fā)明提供的數(shù)據(jù)處理方法的一個(gè)實(shí)施例包括:步驟701、主機(jī)通過(guò)目標(biāo)端口將第一預(yù)留搶占命令發(fā)送給第一存儲(chǔ)設(shè)備。本實(shí)施例中,第一預(yù)留搶占命令也稱(chēng)為持續(xù)預(yù)留(PersistentReservation,簡(jiǎn)稱(chēng)PR)命令,其包括目標(biāo)端口的端口標(biāo)識(shí)、待校驗(yàn)預(yù)留密鑰以及LUN。LUN對(duì)應(yīng)于主機(jī)的訪問(wèn)對(duì)象(即目標(biāo)LU),待校驗(yàn)預(yù)留密鑰用于第二存儲(chǔ)設(shè)備對(duì)目標(biāo)端口進(jìn)行校驗(yàn)。目標(biāo)端口是指用于發(fā)送第一預(yù)留搶占命令的主機(jī)端口,目標(biāo)端口的端口標(biāo)識(shí)一般為目標(biāo)端口的WWN。舉例來(lái)說(shuō),第一預(yù)留搶占命令格式可以為:<目標(biāo)端口的端口標(biāo)識(shí)>+<待校驗(yàn)預(yù)留密鑰>+<LUN>,當(dāng)然第一預(yù)留搶占命令還可以包括其他信息,由于其他信息并非本發(fā)明的發(fā)明點(diǎn),因此不再贅述。步驟702、第一存儲(chǔ)設(shè)備根據(jù)預(yù)設(shè)的端口映射關(guān)系,確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口。其中,端口映射關(guān)系可參閱圖5所示實(shí)施例中的端口映射關(guān)系。步驟703、第一存儲(chǔ)設(shè)備將待校驗(yàn)預(yù)留密鑰、LUN、目標(biāo)端口的端口標(biāo)識(shí)和轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)進(jìn)行封裝,得到第二預(yù)留搶占命令。具體的,第一存儲(chǔ)設(shè)備接收第一預(yù)留搶占命令之后,可以將第一預(yù)留搶占命令包含的信息(如目標(biāo)端口的端口標(biāo)識(shí)、待校驗(yàn)預(yù)留密鑰和LUN等)和轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)進(jìn)行封裝,生成第二預(yù)留搶占命令??梢岳斫獾氖牵诙A(yù)留搶占命令的格式可以是<轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)>+<第一預(yù)留搶占命令>,或<轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)>+<目標(biāo)端口的端口標(biāo)識(shí)>+<校驗(yàn)預(yù)留密鑰>+<LUN>,其中預(yù)留搶占命令包括的參數(shù)的位置關(guān)系并沒(méi)有固定限制。本發(fā)明可以將預(yù)留搶占命令格式設(shè)置成以上命令格式中的一種,并設(shè)置對(duì)應(yīng)的命令處理規(guī)則。每個(gè)存儲(chǔ)設(shè)備都可以通過(guò)設(shè)定的命令處理規(guī)則對(duì)第二預(yù)留搶占命令進(jìn)行處理,例如識(shí)別、封裝或解封。步驟704、第一存儲(chǔ)設(shè)備通過(guò)轉(zhuǎn)發(fā)端口,將第二預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備。舉例來(lái)說(shuō),目標(biāo)LU、主機(jī)端口與轉(zhuǎn)發(fā)端口的對(duì)應(yīng)關(guān)系可以如下表所示:邏輯單元主機(jī)端口轉(zhuǎn)發(fā)端口LU_1P10P31LU_1P20P33第一存儲(chǔ)設(shè)備可以將來(lái)自P10的I/O流從P31發(fā)送給第二存儲(chǔ)設(shè)備的目標(biāo)LU。P31既可以接收I/O流,也可以發(fā)送I/O流。需要說(shuō)明的是,第一存儲(chǔ)設(shè)備還可以設(shè)置端口對(duì)。端口對(duì)包括接收端口和發(fā)送端口,接收端口用于接收來(lái)自主機(jī)端口的I/O流,發(fā)送端口用于將接收端口接收的I/O流發(fā)送至第二存儲(chǔ)設(shè)備。步驟705、第二存儲(chǔ)設(shè)備確定LUN對(duì)應(yīng)的LU,在LU的預(yù)留注冊(cè)信息中查找目標(biāo)端口對(duì)應(yīng)的目標(biāo)預(yù)留密鑰。具體的,第二存儲(chǔ)設(shè)備接收第二預(yù)留搶占命令之后,可以將第二預(yù)留搶占命令解封,獲取第二預(yù)留搶占命令包括的目標(biāo)端口的端口標(biāo)識(shí)、待校驗(yàn)密鑰以及LUN,再確定LUN對(duì)應(yīng)的LU,在LU的預(yù)留注冊(cè)信息中查找目標(biāo)端口對(duì)應(yīng)的目標(biāo)預(yù)留密鑰??梢岳斫獾氖?,在預(yù)留注冊(cè)信息中,主機(jī)與預(yù)留密鑰一一對(duì)應(yīng)。舉例來(lái)說(shuō),邏輯單元、主機(jī)端口與目標(biāo)預(yù)留密鑰的對(duì)應(yīng)關(guān)系可以如下表所示:邏輯單元主機(jī)端口預(yù)留密鑰LU_1P10KeyALU_1P11KeyALU_1P20KeyBLU_1P21KeyB可以理解的是,若在預(yù)留注冊(cè)信息中沒(méi)有查找到目標(biāo)端口的端口信息,則表明目標(biāo)端口還未注冊(cè),不具有訪問(wèn)目標(biāo)LU的權(quán)限。步驟706、若待校驗(yàn)預(yù)留密鑰與目標(biāo)預(yù)留密鑰一致,則第二存儲(chǔ)設(shè)備根據(jù)目標(biāo)端口的端口標(biāo)識(shí)執(zhí)行預(yù)留搶占操作。第二存儲(chǔ)設(shè)備將待校驗(yàn)預(yù)留密鑰與目標(biāo)預(yù)留密鑰進(jìn)行比較,若待校驗(yàn)預(yù)留密鑰與目標(biāo)預(yù)留密鑰不一致,則表明目標(biāo)端口為未注冊(cè)端口,不具有訪問(wèn)目標(biāo)LU的權(quán)限。若待校驗(yàn)預(yù)留密鑰與目標(biāo)預(yù)留密鑰一致,則表明目標(biāo)端口為已注冊(cè)端口,具有訪問(wèn)目標(biāo)LU的權(quán)限。第二存儲(chǔ)設(shè)備根據(jù)目標(biāo)端口的端口標(biāo)識(shí),執(zhí)行預(yù)留搶占操作。具體的,第二存儲(chǔ)設(shè)備可以刪除在預(yù)留注冊(cè)信息中除了目標(biāo)預(yù)留密鑰之外的其他預(yù)留密鑰。由于目標(biāo)預(yù)留密鑰與主機(jī)一一對(duì)應(yīng),因此刪除了其他預(yù)留密鑰之后,其他主機(jī)就不再具有訪問(wèn)目標(biāo)LU的權(quán)限。舉例來(lái)說(shuō),主機(jī)A對(duì)應(yīng)的預(yù)留密鑰為KeyA,當(dāng)主機(jī)A通過(guò)任意一個(gè)主機(jī)端口下發(fā)預(yù)留搶占命令,成功搶占目標(biāo)LU時(shí),第二存儲(chǔ)設(shè)備將除了KeyA以外的其他預(yù)留密鑰(如KeyB、KeyC等)進(jìn)行刪除。當(dāng)主機(jī)B發(fā)送預(yù)留搶占命令時(shí),由于主機(jī)B的預(yù)留密鑰已被刪除,目標(biāo)LU不允許主機(jī)B訪問(wèn)。在現(xiàn)有技術(shù)中,如果不采用NPIV技術(shù),第二存儲(chǔ)陣列根據(jù)下發(fā)端口識(shí)別預(yù)留搶占命令的來(lái)源,第一存儲(chǔ)設(shè)備將預(yù)留搶占命令轉(zhuǎn)發(fā)給第二存儲(chǔ)設(shè)備時(shí),第二存儲(chǔ)陣列認(rèn)為第一存儲(chǔ)陣列對(duì)待遷移LU進(jìn)行搶占,因此主機(jī)無(wú)法通過(guò)第一存儲(chǔ)陣列對(duì)目標(biāo)LU進(jìn)行搶占。本實(shí)施例中,第二存儲(chǔ)設(shè)備可以根據(jù)第一存儲(chǔ)設(shè)備轉(zhuǎn)發(fā)的預(yù)留搶占命令,正確識(shí)別預(yù)留搶占命令的來(lái)源,從而解決了主機(jī)無(wú)法通過(guò)第一存儲(chǔ)陣列對(duì)目標(biāo)LU進(jìn)行搶占的問(wèn)題。其次,第一存儲(chǔ)設(shè)備將預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備,而不是在第一存儲(chǔ)設(shè)備上執(zhí)行,因此可以解決了不同主機(jī)的預(yù)留搶占命令在不同存儲(chǔ)設(shè)備執(zhí)行的問(wèn)題。由于在數(shù)據(jù)遷移過(guò)程中新舊存儲(chǔ)設(shè)備都執(zhí)行同一主機(jī)的控制指令,使得新舊存儲(chǔ)設(shè)備的數(shù)據(jù)能夠保持一致。再次,本發(fā)明在存儲(chǔ)設(shè)備中可以設(shè)定對(duì)新預(yù)留搶占命令的處理規(guī)則,每個(gè)存儲(chǔ)設(shè)備都可以識(shí)別并處理新預(yù)留搶占命令,因此無(wú)需使用NPIV功能進(jìn)行端口模擬,既可以應(yīng)用于SAN,也可以應(yīng)用于無(wú)光纖通道交換機(jī)的直連式網(wǎng)絡(luò),因此本發(fā)明數(shù)據(jù)處理方法的適用場(chǎng)景更廣。基于圖7所示實(shí)施例,在本發(fā)明的另一個(gè)可選實(shí)施例中,在步驟706之后,本發(fā)明的數(shù)據(jù)處理方法還包括:當(dāng)主機(jī)直接連接至第二存儲(chǔ)設(shè)備的磁盤(pán)路徑全部被禁用時(shí),第一存儲(chǔ)設(shè)備接收關(guān)閉預(yù)留轉(zhuǎn)發(fā)指令,根據(jù)關(guān)閉預(yù)留轉(zhuǎn)發(fā)指令關(guān)閉預(yù)留轉(zhuǎn)發(fā)功能。本實(shí)施例中,當(dāng)主機(jī)直接連接至第二存儲(chǔ)設(shè)備的磁盤(pán)路徑全部被禁用時(shí),主機(jī)只能通過(guò)第一存儲(chǔ)設(shè)備向第二存儲(chǔ)設(shè)備發(fā)送預(yù)留類(lèi)指令或I/O指令。預(yù)留類(lèi)指令包括預(yù)留搶占指令(也稱(chēng)為PR指令)、預(yù)留注冊(cè)命令(也稱(chēng)為register指令)、預(yù)留查詢(xún)指令和持續(xù)預(yù)留指令(也稱(chēng)為reserve指令)等。當(dāng)?shù)谝淮鎯?chǔ)設(shè)備關(guān)閉預(yù)留轉(zhuǎn)發(fā)功能后,如果主機(jī)A和主機(jī)B再發(fā)生腦裂時(shí),主機(jī)A或主機(jī)B下發(fā)的預(yù)留搶占命令都在第一存儲(chǔ)設(shè)備上執(zhí)行,從而保證上述命令的執(zhí)行結(jié)果一致。為便于理解,下面以一個(gè)具體應(yīng)用場(chǎng)景對(duì)本發(fā)明實(shí)施例中提供的數(shù)據(jù)處理方法進(jìn)行詳細(xì)介紹:本發(fā)明的具體應(yīng)用場(chǎng)景中,第一存儲(chǔ)設(shè)備為陣列D,第二存儲(chǔ)設(shè)備為陣列C。目標(biāo)LU以Disk_1來(lái)描述,將陣列D接入SAN時(shí),陣列C可以將Disk_1映射給陣列D的端口,陣列D的端口以P30和P31為例,分別建立P30、P31到Disk_1的訪問(wèn)路徑。陣列D將主機(jī)A的P10、P11,分別與P30、P31建立對(duì)應(yīng)關(guān)系,陣列D從Disk_1中讀取P10對(duì)應(yīng)的預(yù)留密鑰,預(yù)留密鑰以KeyA為例,確定P30對(duì)應(yīng)的預(yù)留密鑰為KeyA,然后通過(guò)P30向陣列C發(fā)送預(yù)留注冊(cè)信息(包括P30和KeyA)。P31的注冊(cè)過(guò)程與P30相似。陣列D獲取陣列C中Disk_1的識(shí)別信息之后,在陣列D內(nèi)部創(chuàng)建虛擬LU,虛擬LU與陣列C中的Disk_1是一一對(duì)應(yīng)的。然后,將這些虛擬的LU與主機(jī)端口(P10/P11)也建立映射關(guān)系。當(dāng)主機(jī)執(zhí)行磁盤(pán)掃描程序時(shí),主機(jī)訪問(wèn)Disk_1存儲(chǔ)的數(shù)據(jù)文件時(shí),主機(jī)可以向陣列D發(fā)起I/O指令,然后陣列D按照從陣列C讀取的數(shù)據(jù)反饋給主機(jī)。這樣,主機(jī)既可以直接訪問(wèn)陣列C,也可以訪問(wèn)陣列D的虛擬LU。主機(jī)可以將主機(jī)到虛擬LU作為主機(jī)到Disk_1的新路徑。在主機(jī)A和主機(jī)B訪問(wèn)Disk_1的情況下,當(dāng)主機(jī)A與主機(jī)B發(fā)生通信中斷時(shí),主機(jī)A和主機(jī)B分別向Disk_1下發(fā)預(yù)留搶占指令。假定主機(jī)A的預(yù)留搶占命令先到達(dá)Disk_1,主機(jī)A通過(guò)P10將P10的WWN,LUN和KeyA'發(fā)送給陣列D的P30之后,陣列D將P10的WWN,LUN、KeyA'和P30的WWN進(jìn)行封裝得到新預(yù)留搶占命令,再通過(guò)P30將新預(yù)留搶占命令發(fā)送給陣列C,陣列C將新預(yù)留搶占命令解封,檢測(cè)到新預(yù)留搶占命令包括P10的WWN,則確定預(yù)留搶占命令來(lái)自P10,陣列C查找P10的WWN對(duì)應(yīng)的預(yù)留密鑰為KeyA,將KeyA'與KeyA進(jìn)行比較,如果相同,則調(diào)用P10相關(guān)的接口執(zhí)行持續(xù)預(yù)留搶占流程。例如,陣列C刪除其他預(yù)留密鑰,如KeyB、KeyC等。這樣,主機(jī)B通過(guò)keyB注冊(cè)的所有端口(如P20、P21、P33)都失去訪問(wèn)Disk_1的訪問(wèn)權(quán)限。主機(jī)B通過(guò)P20將P20的WWN,LUN和KeyB'發(fā)送給陣列C,由于KeyB已經(jīng)被刪除,主機(jī)B不再具有訪問(wèn)Disk_1的權(quán)限,則預(yù)留搶占失敗。需要說(shuō)明的是,本發(fā)明的預(yù)留搶占是根據(jù)先后順序來(lái)執(zhí)行的,如果主機(jī)B先于主機(jī)A下發(fā)預(yù)留搶占命令并成功執(zhí)行,那么存儲(chǔ)陣列C將會(huì)刪除KeyA,僅保留KeyB,這樣主機(jī)A就無(wú)法執(zhí)行持續(xù)預(yù)留搶占流程。以上從方法角度對(duì)本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法進(jìn)行了描述,下面從裝置角度對(duì)本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法進(jìn)行介紹。請(qǐng)參閱圖9,本發(fā)明提供一種存儲(chǔ)設(shè)備,可以實(shí)現(xiàn)圖5至圖6所示實(shí)施例中第一存儲(chǔ)設(shè)備的功能。本發(fā)明提供的存儲(chǔ)設(shè)備900的一個(gè)實(shí)施例包括:接收模塊901,用于接收主機(jī)通過(guò)目標(biāo)端口發(fā)送的第一預(yù)留搶占命令以及目標(biāo)端口的端口標(biāo)識(shí),第一預(yù)留搶占命令包括待校驗(yàn)預(yù)留密鑰以及LUN,待校驗(yàn)預(yù)留密鑰用于第二存儲(chǔ)設(shè)備對(duì)主機(jī)進(jìn)行校驗(yàn);處理模塊902,用于根據(jù)預(yù)設(shè)的端口映射關(guān)系,確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口,端口映射關(guān)系包括目標(biāo)端口與轉(zhuǎn)發(fā)端口的映射關(guān)系;處理模塊902,還用于將待校驗(yàn)預(yù)留密鑰、LUN、目標(biāo)端口的端口標(biāo)識(shí)以及轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)進(jìn)行封裝,得到第二預(yù)留搶占命令;發(fā)送模塊903,用于通過(guò)轉(zhuǎn)發(fā)端口,將第二預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備,第二預(yù)留搶占命令用于指示第二存儲(chǔ)設(shè)備根據(jù)目標(biāo)端口的端口標(biāo)識(shí)執(zhí)行預(yù)留搶占操作?;趫D9所示實(shí)施例,在本發(fā)明的一個(gè)可選實(shí)施例中,在第一存儲(chǔ)設(shè)備根據(jù)預(yù)設(shè)的端口映射關(guān)系,確定目標(biāo)端口對(duì)應(yīng)的轉(zhuǎn)發(fā)端口之前,處理模塊902還用于獲取目標(biāo)端口的端口標(biāo)識(shí),從與第二存儲(chǔ)設(shè)備的目標(biāo)LU建立有對(duì)應(yīng)關(guān)系的端口中選取至少一個(gè)端口作為轉(zhuǎn)發(fā)端口,根據(jù)目標(biāo)端口的端口標(biāo)識(shí)建立轉(zhuǎn)發(fā)端口與目標(biāo)端口的端口映射關(guān)系;獲取目標(biāo)LU存儲(chǔ)的預(yù)留密鑰,根據(jù)轉(zhuǎn)發(fā)端口的端口標(biāo)識(shí)與目標(biāo)端口對(duì)應(yīng)的預(yù)留密鑰生成預(yù)留注冊(cè)命令,通過(guò)轉(zhuǎn)發(fā)端口向目標(biāo)LU發(fā)送預(yù)留注冊(cè)命令,預(yù)留注冊(cè)命令用于指示第二存儲(chǔ)設(shè)備記錄目標(biāo)端口對(duì)應(yīng)的預(yù)留密鑰與轉(zhuǎn)發(fā)端口的對(duì)應(yīng)關(guān)系?;趫D9所示實(shí)施例,在本發(fā)明的一個(gè)可選實(shí)施例中,處理模塊902還用于讀取第二存儲(chǔ)設(shè)備中目標(biāo)LU的識(shí)別信息,根據(jù)識(shí)別信息創(chuàng)建虛擬LU,將虛擬LU映射到主機(jī)端口。基于圖9所示實(shí)施例,在本發(fā)明的一個(gè)可選實(shí)施例中,處理模塊902還用于接收主機(jī)通過(guò)目標(biāo)端口發(fā)送的輸入/輸出I/O指令,I/O指令用于通過(guò)虛擬LU訪問(wèn)目標(biāo)LU,通過(guò)轉(zhuǎn)發(fā)端口將I/O指令發(fā)送給第二存儲(chǔ)設(shè)備中的目標(biāo)LU。基于圖9所示實(shí)施例,在本發(fā)明的一個(gè)可選實(shí)施例中,處理模塊902還用于當(dāng)主機(jī)直接連接至第二存儲(chǔ)設(shè)備的全部磁盤(pán)路徑被禁用時(shí),接收關(guān)閉預(yù)留轉(zhuǎn)發(fā)指令,根據(jù)關(guān)閉預(yù)留轉(zhuǎn)發(fā)指令關(guān)閉預(yù)留轉(zhuǎn)發(fā)功能。請(qǐng)參閱圖10,本發(fā)明提供數(shù)據(jù)處理系統(tǒng)1000的一個(gè)實(shí)施例包括:主機(jī)1001、第一存儲(chǔ)設(shè)備1002以及第二存儲(chǔ)設(shè)備1003。主機(jī)1001,用于通過(guò)目標(biāo)端口向第一存儲(chǔ)設(shè)備發(fā)送第一預(yù)留搶占命令,第一預(yù)留搶占命令包括目標(biāo)端口的端口標(biāo)識(shí)、待校驗(yàn)預(yù)留密鑰以及LUN,待校驗(yàn)預(yù)留密鑰用于第二存儲(chǔ)設(shè)備對(duì)主機(jī)進(jìn)行校驗(yàn);第一存儲(chǔ)設(shè)備1002與圖9所示實(shí)施例或可選實(shí)施例中的第一存儲(chǔ)設(shè)備相似。第一存儲(chǔ)設(shè)備1002執(zhí)行本發(fā)明數(shù)據(jù)處理方法的過(guò)程與圖5至圖7所示實(shí)施例相似,此處不再贅述。第二存儲(chǔ)設(shè)備1003,用于接收第一存儲(chǔ)設(shè)備發(fā)送的第二預(yù)留搶占命令;確定LUN對(duì)應(yīng)的LU,從LU存儲(chǔ)的預(yù)留注冊(cè)信息中查找與目標(biāo)端口對(duì)應(yīng)的目標(biāo)預(yù)留密鑰;若待校驗(yàn)預(yù)留密鑰與目標(biāo)預(yù)留密鑰一致,則根據(jù)目標(biāo)端口的端口標(biāo)識(shí),執(zhí)行預(yù)留搶占操作。為便于理解,下面以一個(gè)具體應(yīng)用場(chǎng)景對(duì)本發(fā)明實(shí)施例提供的數(shù)據(jù)處理系統(tǒng)中各裝置之間的交互進(jìn)行詳細(xì)描述:目標(biāo)LU以Disk_1來(lái)描述,將第一存儲(chǔ)設(shè)備1002接入SAN時(shí),第二存儲(chǔ)設(shè)備1003以將Disk_1映射給第一存儲(chǔ)設(shè)備1002的端口,第一存儲(chǔ)設(shè)備1002的端口以P30和P31為例,分別建立P30、P31到Disk_1的訪問(wèn)路徑。第一存儲(chǔ)設(shè)備1002將主機(jī)A的P10、P11,分別與P30、P31建立對(duì)應(yīng)關(guān)系,第一存儲(chǔ)設(shè)備1002從Disk_1中讀取P10對(duì)應(yīng)的預(yù)留密鑰,預(yù)留密鑰以KeyA為例,確定P30對(duì)應(yīng)的預(yù)留密鑰為KeyA,然后通過(guò)P30向陣列C發(fā)送預(yù)留注冊(cè)信息(包括P30和KeyA)。P31的注冊(cè)過(guò)程與P30相似。第一存儲(chǔ)設(shè)備1002獲取第二存儲(chǔ)設(shè)備1003中Disk_1的識(shí)別信息之后,在第一存儲(chǔ)設(shè)備1002內(nèi)部創(chuàng)建虛擬LU,虛擬LU與第二存儲(chǔ)設(shè)備1003中的Disk_1是一一對(duì)應(yīng)的。然后,將這些虛擬的LU與主機(jī)端口(P10/P11)也建立映射關(guān)系。當(dāng)主機(jī)執(zhí)行磁盤(pán)掃描程序時(shí),主機(jī)訪問(wèn)Disk_1存儲(chǔ)的數(shù)據(jù)文件時(shí),主機(jī)可以向第一存儲(chǔ)設(shè)備1002發(fā)起I/O指令,然后第一存儲(chǔ)設(shè)備1002按照從第二存儲(chǔ)設(shè)備1003讀取的數(shù)據(jù)反饋給主機(jī)。這樣,主機(jī)既可以直接訪問(wèn)第二存儲(chǔ)設(shè)備1003,也可以訪問(wèn)第一存儲(chǔ)設(shè)備1002的虛擬LU。主機(jī)可以將主機(jī)到虛擬LU作為主機(jī)到Disk_1的新路徑。在主機(jī)A和主機(jī)B訪問(wèn)Disk_1的情況下,當(dāng)主機(jī)A與主機(jī)B發(fā)生通信中斷時(shí),主機(jī)A和主機(jī)B分別向Disk_1下發(fā)預(yù)留搶占指令。假定主機(jī)A的預(yù)留搶占命令先到達(dá)Disk_1,主機(jī)A通過(guò)P10將P10的WWN,LUN和KeyA'發(fā)送給第一存儲(chǔ)設(shè)備1002的P30之后,第一存儲(chǔ)設(shè)備1002將P10的WWN,LUN、KeyA'和P30的WWN進(jìn)行封裝得到新預(yù)留搶占命令,再通過(guò)P30將新預(yù)留搶占命令發(fā)送給第二存儲(chǔ)設(shè)備1003,第二存儲(chǔ)設(shè)備1003將新預(yù)留搶占命令解封,檢測(cè)到新預(yù)留搶占命令包括P10的WWN,則確定預(yù)留搶占命令來(lái)自P10,第二存儲(chǔ)設(shè)備1003查找P10的WWN對(duì)應(yīng)的預(yù)留密鑰為KeyA,將KeyA'與KeyA進(jìn)行比較,如果相同,則調(diào)用P10相關(guān)的接口執(zhí)行持續(xù)預(yù)留搶占流程。例如,第二存儲(chǔ)設(shè)備1003刪除其他預(yù)留密鑰,如KeyB、KeyC等。這樣,主機(jī)B通過(guò)keyB注冊(cè)的所有端口(如P20、P21、P33)都失去訪問(wèn)Disk_1的訪問(wèn)權(quán)限。主機(jī)B通過(guò)P20將P20的WWN,LUN和KeyB'發(fā)送給第二存儲(chǔ)設(shè)備1003,由于KeyB已經(jīng)被刪除,主機(jī)B不再具有訪問(wèn)Disk_1的權(quán)限,則預(yù)留搶占失敗。需要說(shuō)明的是,本發(fā)明的預(yù)留搶占是根據(jù)先后順序來(lái)執(zhí)行的,如果主機(jī)B先于主機(jī)A下發(fā)預(yù)留搶占命令并成功執(zhí)行,那么第二存儲(chǔ)設(shè)備1003將會(huì)刪除KeyA,僅保留KeyB,這樣主機(jī)A就無(wú)法執(zhí)行持續(xù)預(yù)留搶占流程。下面從硬件裝置角度來(lái)對(duì)本發(fā)明實(shí)施例中的存儲(chǔ)設(shè)備1100進(jìn)行介紹,圖5至圖8所示實(shí)施例中第一存儲(chǔ)設(shè)備以及第二存儲(chǔ)設(shè)備均可以基于該存儲(chǔ)設(shè)備的結(jié)構(gòu),實(shí)現(xiàn)本發(fā)明提供的數(shù)據(jù)處理方法。本發(fā)明提供的存儲(chǔ)設(shè)備1100的一個(gè)實(shí)施例包括:存儲(chǔ)設(shè)備1100,可以是磁盤(pán)或磁盤(pán)陣列等設(shè)備,用于存儲(chǔ)數(shù)據(jù)以及操作指令。存儲(chǔ)設(shè)備1100包括通訊接口1101、控制器1102、存儲(chǔ)器1103以及總線1104;通訊接口1101、控制器1102和存儲(chǔ)器1104之間通過(guò)總線1104相互連接。存儲(chǔ)器1104用于存儲(chǔ)數(shù)據(jù)以及操作指令,其中,通過(guò)調(diào)用存儲(chǔ)器1104存儲(chǔ)的操作指令,控制器1102可以執(zhí)行圖5至圖7所示實(shí)施例中的數(shù)據(jù)處理方法。其中,控制器1102可以是通用處理器,包括中央處理器(CentralProcessingUnit,簡(jiǎn)稱(chēng)CPU)、網(wǎng)絡(luò)處理器(NetworkProcessor,簡(jiǎn)稱(chēng)NP)等;還可以是數(shù)字信號(hào)處理器(DigitalSignalProcessing,簡(jiǎn)稱(chēng)DSP)、專(zhuān)用集成電路(ApplicationSpecificIntegratedCircuit,簡(jiǎn)稱(chēng)ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(Field-ProgrammableGateArray,簡(jiǎn)稱(chēng)FPGA)或者其他可編程邏輯器件等。存儲(chǔ)器1103可以包括隨機(jī)存取存儲(chǔ)器(RandomAccessMemory,簡(jiǎn)稱(chēng)RAM)11031實(shí)現(xiàn),也可能包括非易失性存儲(chǔ)器(Non-VolatileMemory,簡(jiǎn)稱(chēng)NVM)11032,例如至少一個(gè)磁盤(pán)存儲(chǔ)器。在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,上述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。上述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。上述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例上述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(Read-OnlyMemory,簡(jiǎn)稱(chēng)ROM)、隨機(jī)存取存儲(chǔ)器(RandomAccessMemory,簡(jiǎn)稱(chēng)RAM)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1