專利名稱:通過獨(dú)立差錯(cuò)管理對輔pprc/fcp裝置進(jìn)行同時(shí)pprc/fcp和主機(jī)訪問的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于差錯(cuò)管理的方法、系統(tǒng)和制造物品,其允許PPRC/FCP主裝置(primary)和主機(jī)(host)對PPRC/FCP輔裝置(secondary device)進(jìn)行同時(shí)(concurrent)訪問。
背景技術(shù):
信息技術(shù)系統(tǒng)(包括存儲(chǔ)器系統(tǒng))可能需要被保護(hù),以不受站點(diǎn)事故或中斷(中斷可以是有計(jì)劃的或無計(jì)劃的)的影響。而且,信息技術(shù)系統(tǒng)可能需要用于數(shù)據(jù)遷移、數(shù)據(jù)備份、或數(shù)據(jù)復(fù)制的特征。用于事故或中斷恢復(fù)、數(shù)據(jù)遷移、數(shù)據(jù)備份和數(shù)據(jù)復(fù)制的實(shí)施方式可以包括在存儲(chǔ)器系統(tǒng)對數(shù)據(jù)進(jìn)行鏡像或拷貝。這種對數(shù)據(jù)進(jìn)行鏡像或拷貝可能需要該信息技術(shù)系統(tǒng)的主機(jī)、存儲(chǔ)器系統(tǒng)和連接網(wǎng)絡(luò)組件之間的交互作用。
企業(yè)存儲(chǔ)服務(wù)器(ESS),諸如IBM TotalStorage EnterpriseStorage Server,可以是磁盤存儲(chǔ)服務(wù)器,其包括耦合到存儲(chǔ)裝置的一個(gè)或多個(gè)處理器,其中存儲(chǔ)裝置包括高容量可縮放存儲(chǔ)裝置、冗余獨(dú)立磁盤陣列(RAID)等。企業(yè)存儲(chǔ)服務(wù)器連接到網(wǎng)絡(luò),并包括存儲(chǔ)器系統(tǒng)中拷貝數(shù)據(jù)的特征。
對等遠(yuǎn)程拷貝(PPRC)是一種ESS功能,其允許從第一站點(diǎn)到輔站點(diǎn)對應(yīng)用系統(tǒng)數(shù)據(jù)進(jìn)行蔭蔽(shadow)。第一站點(diǎn)可以稱為應(yīng)用站點(diǎn),本地站點(diǎn)或主站點(diǎn)。輔站點(diǎn)可以稱為恢復(fù)站點(diǎn)、遠(yuǎn)程站點(diǎn)或輔站點(diǎn)。在ESS中,將數(shù)據(jù)保持在本地站點(diǎn)的邏輯卷稱為本地卷,并且將鏡像數(shù)據(jù)保持在遠(yuǎn)程站點(diǎn)的對應(yīng)的邏輯卷稱為遠(yuǎn)程卷??梢允褂酶咚冁溌罚T如ESCON鏈路將本地和遠(yuǎn)程ESS系統(tǒng)連接起來。
ESS當(dāng)前支持主機(jī)直接從輔PPRC裝置讀取。另外在PPRC操作環(huán)境中,典型的從主存儲(chǔ)裝置到輔存儲(chǔ)裝置建立通過光纖信道協(xié)議的對等遠(yuǎn)程拷貝(PPRC/FCP)關(guān)系。于是,主機(jī)和PPRC/FCP主裝置可以同時(shí)一訪問PPRC/FCP輔裝置。在這種情況下,輔裝置是用于主裝置和獨(dú)立主機(jī)系統(tǒng)的目標(biāo)裝置。
主機(jī)和PPRC主裝置同時(shí)訪問輔裝置可以產(chǎn)生兩種類型的問題。首先,從主機(jī)到PPRC輔裝置的命令可以在PPRC輔裝置上產(chǎn)生差錯(cuò)狀況,其在小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議下會(huì)毀壞主裝置與輔裝置之間的PPRC/FCP關(guān)系。例如,主機(jī)可能會(huì)向該P(yáng)PRC/FCP輔裝置發(fā)送命令,諸如不支持的寫入命令、非法請求或無效命令。這會(huì)導(dǎo)致該命令被檢查調(diào)節(jié)(check conditioned),并且在輔PPRC裝置上產(chǎn)生偶然結(jié)合(contingent allegiance)或自動(dòng)偶然結(jié)合(autocontingentallegiance)(CAC/ACA)狀況。這種狀況會(huì)禁止PPRC/FCP從主裝置寫入,并且導(dǎo)致PPRC對懸置,以及任何未完的遠(yuǎn)程拷貝不能結(jié)束。同樣的,由于在SCSI協(xié)議下的PPRC/FCP主命令的實(shí)施,在PPRC/FCP輔裝置上遇到的差錯(cuò)可以毀壞主機(jī)對輔PPRC/FCP裝置的訪問。
在輔/目標(biāo)裝置上使用SCSI協(xié)議差錯(cuò)處理不能夠有效的解決這些問題。主機(jī)和PPRC主裝置是兩個(gè)試圖訪問相同目標(biāo)裝置的獨(dú)立實(shí)體。主機(jī)和主裝置對另一方試圖訪問該輔裝置都沒有直接的了解。在SCSI協(xié)議差錯(cuò)處理下,在輔裝置上出現(xiàn)命令差錯(cuò)的情況下,PPRC主裝置和主機(jī)都會(huì)受到差錯(cuò)的影響,并且獨(dú)立的試圖進(jìn)行差錯(cuò)恢復(fù),而不知道另一裝置也在試圖恢復(fù)差錯(cuò),或協(xié)調(diào)另一裝置一起恢復(fù)差錯(cuò)。這種不協(xié)調(diào)的差錯(cuò)處理可以進(jìn)一步引起差錯(cuò)狀況,或中斷從主裝置和主機(jī)對FFPC/FCP輔裝置的訪問。因此,在本領(lǐng)域中需要一種方法和設(shè)備,其通過獨(dú)立的差錯(cuò)管理確保PPRC/FCP主裝置和主機(jī)能對輔PPRC/FCP裝置進(jìn)行同時(shí)訪問。
本發(fā)明意欲克服以上討論的一個(gè)或多個(gè)問題。
發(fā)明內(nèi)容
通過一種在具有目標(biāo)裝置的數(shù)據(jù)存儲(chǔ)系統(tǒng)中進(jìn)行差錯(cuò)管理的方法來滿足本領(lǐng)域的這種需要,其中該目標(biāo)裝置接收來自第一啟動(dòng)器的命令,并且該目標(biāo)裝置同時(shí)接收來自第二啟動(dòng)器的命令。第一啟動(dòng)器是通過小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議與目標(biāo)存儲(chǔ)裝置通信的裝置。第一啟動(dòng)器典型的為主機(jī)或服務(wù)器。第二啟動(dòng)器通過對等遠(yuǎn)程拷貝PPRC啟動(dòng)器模式命令與該目標(biāo)存儲(chǔ)裝置通信。第二啟動(dòng)器典型的為與目標(biāo)裝置具有對等遠(yuǎn)程拷貝(PPRC)關(guān)系的單獨(dú)的存儲(chǔ)裝置。該方法包括獨(dú)立于與從第二啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò),管理與從第一啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò)。
優(yōu)選的,該獨(dú)立的管理與從每一類型的啟動(dòng)器向目標(biāo)存儲(chǔ)裝置發(fā)送的命令相關(guān)的差錯(cuò)包括,確定已經(jīng)向目標(biāo)裝置發(fā)送命令的啟動(dòng)器類型,和應(yīng)用第一差錯(cuò)恢復(fù)程序,以管理與從第一啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò),和類似的,應(yīng)用第二差錯(cuò)恢復(fù)程序,以管理與從第二啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)。該方法進(jìn)一步包括防止與從第一啟動(dòng)器和第二啟動(dòng)器之一定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)影響第一啟動(dòng)器和第二啟動(dòng)器中的另一個(gè)對目標(biāo)裝置的訪問。
該方法進(jìn)一步包括在一個(gè)選擇時(shí)間,只允許第一啟動(dòng)器和第二啟動(dòng)器中的一個(gè)可以對目標(biāo)裝置進(jìn)行寫訪問。另外,與從第一啟動(dòng)器向目標(biāo)存儲(chǔ)裝置發(fā)送的命令相關(guān)的差錯(cuò)的差錯(cuò)恢復(fù)程序可以不同于與從第二啟動(dòng)器向目標(biāo)存儲(chǔ)裝置發(fā)送的命令相關(guān)的差錯(cuò)的差錯(cuò)恢復(fù)程序。典型的,第一啟動(dòng)器是服務(wù)器,第二啟動(dòng)器是存儲(chǔ)裝置,并且目標(biāo)是具有第二啟動(dòng)器的PPRC關(guān)系中的存儲(chǔ)裝置。
本發(fā)明進(jìn)一步的實(shí)施例是一種目標(biāo)裝置,其是數(shù)據(jù)存儲(chǔ)系統(tǒng)的組件,該目標(biāo)裝置接收來自第一啟動(dòng)器的命令,并且同時(shí)接收來自第二啟動(dòng)器的命令,該目標(biāo)裝置能夠使得能夠?qū)崿F(xiàn)上述獨(dú)立的管理與來自第一或第二啟動(dòng)器的命令相關(guān)的差錯(cuò)的步驟。
本方面進(jìn)一步的實(shí)施例是一種制造物品,包括其中置有邏輯的存儲(chǔ)介質(zhì),該邏輯可以使得數(shù)據(jù)存儲(chǔ)系統(tǒng)的組件執(zhí)行上述用于獨(dú)立差錯(cuò)管理的步驟。
圖1所示為根據(jù)本發(fā)明某些方面描述的計(jì)算環(huán)境的方框圖;和圖2所示為根據(jù)本發(fā)明某些實(shí)施方式描述的,主裝置和主機(jī)通過獨(dú)立差錯(cuò)管理對輔PPRC/FCP裝置進(jìn)行同時(shí)訪問的流程圖。
具體實(shí)施例方式
圖1所述為適合于實(shí)施本發(fā)明實(shí)施例的計(jì)算環(huán)境。圖1的數(shù)據(jù)處理系統(tǒng)100包括通過SCSI或FCP協(xié)議接收命令的目標(biāo)裝置101。目標(biāo)裝置101可以是具有PPRC輔邏輯裝置104的輔存儲(chǔ)子系統(tǒng)102。雖然此處使用PPRC/FCP輔裝置104作為目標(biāo)裝置101描述本發(fā)明,但是本發(fā)明可應(yīng)用于任何SCSI之類的協(xié)議或另一傳輸協(xié)議,諸如FCP或iSCSI。該數(shù)據(jù)處理系統(tǒng)100也具有B類啟動(dòng)器106和A類啟動(dòng)器108,并且兩個(gè)啟動(dòng)器都可以同時(shí)訪問目標(biāo)裝置101。
此處A類啟動(dòng)器108定義為利用熟知的用于裝置訪問的SCSI協(xié)議,諸如FCP啟動(dòng)輸入/輸出操作(I/O)的裝置。A類啟動(dòng)器的代表包括文件服務(wù)器或主機(jī),其典型的利用諸如Unix、Windows、Linux或類似程序的操作系統(tǒng)。如此處所定義,B類啟動(dòng)器106是利用PPRC/FCP啟動(dòng)器模式命令啟動(dòng)I/O操作的裝置,其可能不是諸如SCSI的指定協(xié)議,但是其中啟動(dòng)器模式命令允許B類啟動(dòng)器106與目標(biāo)裝置101通信。B類啟動(dòng)器106典型的是PPRC主存儲(chǔ)子系統(tǒng)112,其具有帶有主存儲(chǔ)器卷116的PPRC主邏輯裝置114。B類啟動(dòng)器106可以通過PPRC數(shù)據(jù)路徑118與目標(biāo)裝置101通信,其中數(shù)據(jù)路徑典型的是纖維光學(xué)連接。A類啟動(dòng)器108可以通過專用或共用的光纖信道路徑120與B類啟動(dòng)器106通信。A類啟動(dòng)器也通過專用或共用的纖維光學(xué)連接122與目標(biāo)裝置101通信。如此處所描述,通過將目標(biāo)視為SCSI目標(biāo)裝置邏輯單元的A類啟動(dòng)器108和將目標(biāo)視為PPRC/FCP輔裝置的B類啟動(dòng)器106都可以訪問目標(biāo)裝置101。實(shí)施本發(fā)明的環(huán)境可以具有許多連接到交換環(huán)境、諸如Storage AreaNetwork SAN的A類啟動(dòng)器和B類啟動(dòng)器。
如果沒有獨(dú)立的差錯(cuò)管理,在數(shù)據(jù)處理系統(tǒng)100中A類啟動(dòng)器和B類啟動(dòng)器同時(shí)對目標(biāo)裝置101進(jìn)行訪問可以產(chǎn)生某些錯(cuò)誤。例如,A類啟動(dòng)器108可以向目標(biāo)裝置101發(fā)送某些不支持的或非法的SCSI或FCP命令,目標(biāo)拒絕該命令,使得在裝置101中啟動(dòng)SCSI協(xié)議差錯(cuò)處理。啟動(dòng)SCSI協(xié)議差錯(cuò)處理可以使得B類啟動(dòng)器106(典型的是PPRC/FCP主邏輯裝置114)丟失對PPRC輔裝置104的訪問??商鎿Q的,在A類啟動(dòng)器108從相同的目標(biāo)裝置101讀取的時(shí)候,B類啟動(dòng)器106同時(shí)可以向目標(biāo)裝置101寫入。如果A類啟動(dòng)器108在B類啟動(dòng)器106出現(xiàn)寫入操作的時(shí)候試圖驅(qū)動(dòng)SCSI命令,目標(biāo)裝置101很可能拒絕A類SCSI命令。
通過目標(biāo)裝置101使用獨(dú)立的差錯(cuò)管理,以阻止與一類啟動(dòng)器相關(guān)的差錯(cuò)引起其它類啟動(dòng)器的差錯(cuò),這樣可以解決上述問題。根據(jù)向目標(biāo)裝置101發(fā)送命令的啟動(dòng)器類型,通過目標(biāo)裝置101可以實(shí)施不同的目標(biāo)模式行為(差錯(cuò)處理)規(guī)則。目標(biāo)裝置101區(qū)分是哪一啟動(dòng)器發(fā)送命令,并因此可以為不同的啟動(dòng)器類不同的管理差錯(cuò)(例如裝置狀態(tài)、命令錯(cuò)誤)?;旧?,啟動(dòng)器差錯(cuò)管理的實(shí)施是通過讓A類啟動(dòng)器108獨(dú)立的管理與其命令相關(guān)的差錯(cuò),B類啟動(dòng)器106獨(dú)立的管理與其命令相關(guān)的差錯(cuò)。
A類啟動(dòng)器108和B類啟動(dòng)器106都具有差錯(cuò)恢復(fù)程序,當(dāng)在目標(biāo)裝置101出現(xiàn)差錯(cuò)狀況時(shí)執(zhí)行該程序。對于每一啟動(dòng)器類型,目標(biāo)裝置101區(qū)分的管理其差錯(cuò)狀態(tài)和向啟動(dòng)器展現(xiàn)該差錯(cuò)狀態(tài)。另外,維持PPRC主裝置和PPRC輔裝置之間完整功能的PPRC關(guān)系對于在能夠進(jìn)行PPRC的數(shù)據(jù)存儲(chǔ)系統(tǒng)100中維持?jǐn)?shù)據(jù)完整性很重要。因此,在兩種類型的啟動(dòng)器對相同的PPRC/FCP輔目標(biāo)存儲(chǔ)裝置進(jìn)行訪問的環(huán)境中,當(dāng)在源卷和目標(biāo)卷之間建立PPRC關(guān)系的時(shí)候?qū)類啟動(dòng)器命令給予高于A類啟動(dòng)器命令的優(yōu)先級。于是,通過目標(biāo)裝置101進(jìn)行獨(dú)立差錯(cuò)管理的關(guān)鍵好處在于,在從PPRC/FCP主裝置114到PPRC/FCP輔裝置104的數(shù)據(jù)拷貝命令期間可以防止中斷或差錯(cuò)。這使得拷貝操作具有更有效的帶寬利用,而需要使用更少的差錯(cuò)恢復(fù)和具有更少的命令失敗或超時(shí)。這最終會(huì)導(dǎo)致可以更快更有效的完成從PPRC主裝置到PPRC輔裝置的數(shù)據(jù)傳輸。
在如此所描述的獨(dú)立差錯(cuò)管理下,在任何給定時(shí)間只有一類啟動(dòng)器可以向目標(biāo)裝置101寫入。盡管只有一類啟動(dòng)器可以寫入訪問,但是兩種類型的啟動(dòng)器都可以同時(shí)訪問(發(fā)送命令)目標(biāo)裝置101。
通過目標(biāo)裝置101可以區(qū)分的管理源自每一類啟動(dòng)器的差錯(cuò)。通過目標(biāo)裝置101區(qū)分差錯(cuò)管理可以防止來自一類啟動(dòng)器的差錯(cuò)影響或中斷另一類啟動(dòng)器的訪問。
熟知的用于裝置訪問和差錯(cuò)處理的SCSI(或FCP)協(xié)議適用于A類啟動(dòng)器108。這些熟知的SCSI協(xié)議通過目標(biāo)裝置101實(shí)施,并且包括使用保留(reservation),例如偶然結(jié)合條件(CAC)、自動(dòng)偶然結(jié)合條件(ACA)、和單元注意(UA)。相反,B類啟動(dòng)器106適用于實(shí)施修改的SCSI差錯(cuò)處理和恢復(fù)協(xié)議程序。
應(yīng)用到B類啟動(dòng)器106的修改的SCSI差錯(cuò)處理和恢復(fù)協(xié)議程序用來防止A類啟動(dòng)器108的活動(dòng)影響B(tài)類PPRC/FCP對該目標(biāo)裝置101的輸入/輸出操作。例如,如果目標(biāo)裝置101保留給B類啟動(dòng)器106,從PPRC主裝置114向PPRC輔裝置104的PPRC/FCP輸入/輸出具有高于來自A類啟動(dòng)器108的命令的優(yōu)先級。因此,B類啟動(dòng)器106在目標(biāo)裝置101上的保留就具有高于A類啟動(dòng)器可能具有的普通SCSI保留(傳統(tǒng)的或持久的)的特殊優(yōu)先級。A類保留不一定由B類啟動(dòng)器106破壞或刪除,但是A類保留可以被破壞或刪除。在SCSI協(xié)議下,使用可能的普通方式A類啟動(dòng)器108可以從不釋放或斷開目標(biāo)裝置101上的B類保留,諸如釋放命令或裝置復(fù)位。由于A類產(chǎn)生的命令,在處理B類啟動(dòng)器106的命令中,不會(huì)考慮目標(biāo)裝置上的單元注意狀況或CAC/ACA狀況,由于在目標(biāo)裝置101上處理B類啟動(dòng)器106的命令而產(chǎn)生的差錯(cuò)狀況不會(huì)使得在A類啟動(dòng)器108類型的裝置上設(shè)置UA或CAC/ACA狀況。
總之,如下處理由B類啟動(dòng)器106發(fā)向目標(biāo)裝置101的命令產(chǎn)生的特定差錯(cuò)a在處理B類啟動(dòng)器106命令的過程中,由B類啟動(dòng)器106的命令或裝置錯(cuò)誤產(chǎn)生的偶然結(jié)合條件(CAC)或自動(dòng)偶然結(jié)合條件(ACA)不會(huì)使得關(guān)于B類啟動(dòng)器108的SCSI/FCP目標(biāo)101處于偶然結(jié)合/自動(dòng)偶然結(jié)合狀況。
b關(guān)于單元注意(UA)條件,A類啟動(dòng)器108的SCSI/FCP目標(biāo)101不會(huì)通過B類啟動(dòng)器106的行為設(shè)置為UA。通過A類啟動(dòng)器108設(shè)置的UA不會(huì)影響B(tài)類啟動(dòng)器106的命令,并且通過SCSI/FCP目標(biāo)101處理任何B類啟動(dòng)器106命令,就好像UA狀況不存在于目標(biāo)裝置101上一樣。
圖2以流程圖的形式描述了一種獨(dú)立差錯(cuò)管理的一個(gè)優(yōu)選方法。起始必須做出判定A類啟動(dòng)器202或B類啟動(dòng)器204是否已經(jīng)向SCSI/FCP目標(biāo)裝置220發(fā)送命令,并且命令必須相應(yīng)的被過濾(步驟206)。從登錄信息判定發(fā)出命令的啟動(dòng)器的類型。接著必須做出判定SCSI/FCP目標(biāo)裝置220是否為一類啟動(dòng)器或另一類啟動(dòng)器保留(步驟208A、208B)。如果存在保留,如果發(fā)出命令的啟動(dòng)器類型并沒有權(quán)限訪問保留的SCSI/FCP目標(biāo)裝置220,不一致的命令將被拒絕(步驟210A、步驟210B)。于是,如果SCSI/FCP目標(biāo)裝置220保留給B類啟動(dòng)器,就會(huì)進(jìn)行特殊命令過濾,使得A類啟動(dòng)器202可以從輔目標(biāo)裝置220讀取,但是不能發(fā)布改變命令或刪除該保留的媒體。
向A類啟動(dòng)器202命令應(yīng)用SCSI協(xié)議UA過濾(步驟212A)。如果狀況使得UA被設(shè)置,那么UA狀況將只應(yīng)用到A類啟動(dòng)器202,并且不會(huì)影響B(tài)類啟動(dòng)器204。于是,由于A類啟動(dòng)器202而設(shè)置的SCSI/FIP目標(biāo)裝置220上的UA將不會(huì)影響B(tài)類啟動(dòng)器204的命令,并且B類啟動(dòng)器的命令將會(huì)被處理(步驟212B)。同樣的,如果由于A類啟動(dòng)器204的行為,SCSI/FCP目標(biāo)裝置220處于CAC或ACA狀況(步驟214A),該裝置上的CAC/ACA狀態(tài)只應(yīng)用到A類啟動(dòng)器202。至于A類啟動(dòng)器202,遵從標(biāo)準(zhǔn)SCSI協(xié)議處理CAC/ACA狀況。B類啟動(dòng)器204不會(huì)受到由于A類啟動(dòng)器202的活動(dòng)導(dǎo)致的SCSI/FCP目標(biāo)裝置220上的CAC/ACA狀況的影響(步驟214B)。另外,B類啟動(dòng)器204不會(huì)引起輔目標(biāo)裝置220上影響A類啟動(dòng)器202的CAC/ACA狀況。一旦結(jié)束獨(dú)立差錯(cuò)管理,如果對于該命令是有必要的,輔目標(biāo)裝置220可以處理允許啟動(dòng)器訪問媒體的裝置命令,并以完好狀態(tài)結(jié)束命令(步驟216)。
下面描述了三個(gè)差錯(cuò)管理方案,其詳細(xì)描述了在兩類啟動(dòng)器訪問SCSI/FCP目標(biāo)裝置220的情況下,在該裝置上進(jìn)行的獨(dú)立差錯(cuò)管理。
方案1——A類啟動(dòng)器和B類啟動(dòng)器無差錯(cuò)恢復(fù)——完好路徑A類啟動(dòng)器220向SCSI/FCP目標(biāo)裝置220發(fā)送讀取命令,其中該目標(biāo)裝置是PPRC輔裝置并且保留給PPRC/FCP(B類)啟動(dòng)器。使用啟動(dòng)器登錄信息來確定該命令來自A類啟動(dòng)器(步驟206)。該讀命令被允許通過目標(biāo)裝置上的B類保留(步驟208A)。在SCSI/FCP目標(biāo)220上不存在UA條件,因此允許該讀取通過,至下一級過濾(步驟212A)。在SCSI/FCP目標(biāo)裝置220上不存在CAC/ACA狀況,因此允許該讀取通過,以被處理(步驟214A)。成功的執(zhí)行該讀取命令(步驟216)。該命令成功的完成數(shù)據(jù)傳輸,并針對該讀取命令將完好狀態(tài)提供給A類啟動(dòng)器202。
接著,B類啟動(dòng)器204向SCSI/FCP目標(biāo)裝置220發(fā)送寫命令。根據(jù)啟動(dòng)器登錄信息判定該命令發(fā)自B類啟動(dòng)器204。允許該寫命令通過B類啟動(dòng)器的保留,因?yàn)樵撃繕?biāo)保留給了它(步驟208)。該裝置上沒有出現(xiàn)UA狀況,然而需要對B類啟動(dòng)器的目標(biāo)過濾進(jìn)行檢查調(diào)節(jié),以檢查在該目標(biāo)上的UA狀況(步驟212B)。在該目標(biāo)上不存在CAC/ACA狀況,但是來自B類啟動(dòng)器的命令不會(huì)受到CAC/ACA狀態(tài)的影響(步驟214B)。于是,允許繼續(xù)對該寫入進(jìn)行處理。成功處理該寫命令,并將完好狀態(tài)提供給B類啟動(dòng)器204(步驟216)。
方案2——A類啟動(dòng)器差錯(cuò)恢復(fù)及其對B類的影響A類啟動(dòng)器220向SCSI/FCP目標(biāo)裝置220發(fā)送寫命令。根據(jù)啟動(dòng)器登錄信息確定該命令來自A類啟動(dòng)器(步驟206)。寫命令失敗,因?yàn)锽類啟動(dòng)器204在目標(biāo)裝置上進(jìn)行了保留(步驟208A)。SCSI/FCP目標(biāo)裝置220會(huì)針對該命令返回保留/沖突狀態(tài)給A類啟動(dòng)器(步驟210A)。不允許A類啟動(dòng)器202釋放B類的保留。如果要向SCSI/FCP目標(biāo)裝置220發(fā)送釋放命令,將會(huì)失敗。
第二方案繼續(xù)假設(shè)A類啟動(dòng)器202向SCSI/FCP目標(biāo)裝置220發(fā)送LUN復(fù)位消息。將根據(jù)啟動(dòng)器登錄信息鑒別該信息源自A類啟動(dòng)器(步驟206)。將處理該LUN復(fù)位消息,并代表A類啟動(dòng)器執(zhí)行該消息(步驟216)。現(xiàn)在根據(jù)熟知的SCSI協(xié)議在該裝置上為A類啟動(dòng)器維持單元注意。然而不刪除該裝置上的B類保留。
接著,B類啟動(dòng)器204向SCSI/FCP目標(biāo)裝置220發(fā)送寫命令。判定該命令發(fā)自B類啟動(dòng)器(步驟206)。允許該寫命令通過B類啟動(dòng)器的保留(步驟208B)。由于A類啟動(dòng)器202發(fā)送了LUN復(fù)位消息,在該目標(biāo)裝置上設(shè)置了UA狀況。然而,由于該未完成的寫命令是由B類啟動(dòng)器204發(fā)送的,UA狀況并不出現(xiàn)(步驟212B),并且該命令繼續(xù)被處理執(zhí)行。在該目標(biāo)裝置上不存在CAC/ACA狀況(步驟214B),在該目標(biāo)上寫入被允許通過執(zhí)行。成功處理該寫命令(步驟216),并將完好狀態(tài)提供給B類啟動(dòng)器204。
在UA已經(jīng)被接下來的A類啟動(dòng)器活動(dòng)清除之后,繼續(xù)該第二方案。A類啟動(dòng)器220然后向SCSI/FCP目標(biāo)裝置220發(fā)送無效命令。例如對超出該目標(biāo)裝置大小的塊進(jìn)行讀取的命令。該命令被過濾,并被確定來自A類啟動(dòng)器202。該讀命令被允許通過目標(biāo)上的B類啟動(dòng)器的保留(步驟208A)。在目標(biāo)上不存在UA狀況,因此繼續(xù)過濾(步驟212A)。在目標(biāo)上不存在CAC/ACA狀況,因此該讀取被允許通過處理(步驟214A)。在處理時(shí),該讀命令失敗,并且根據(jù)熟知的SCSI協(xié)議對該命令進(jìn)行檢查調(diào)節(jié)。在該SCSI/FCP目標(biāo)裝置220上設(shè)置CAC或ACA條件(根據(jù)NACA位設(shè)置,SCSI-2/SCSI-3協(xié)議)。該命令失敗,返回到發(fā)送的啟動(dòng)器,并且向A類啟動(dòng)器202提供具有適當(dāng)檢測數(shù)據(jù)的檢查調(diào)節(jié)狀態(tài)。
接著,B類啟動(dòng)器204向SCSI/FCP目標(biāo)裝置220發(fā)送寫命令。確定該命令來自B類啟動(dòng)器(步驟206)。該寫命令通過目標(biāo)上的B類啟動(dòng)器保留(步驟208B)。由于前一次A類啟動(dòng)器讀取失敗,該裝置上現(xiàn)在存在CAC/ACA狀況。由于A類的活動(dòng)使得在裝置上出現(xiàn)CAC/ACA狀況,B類啟動(dòng)器命令不會(huì)失敗,因此允許繼續(xù)處理該寫命令(步驟214B)。該設(shè)備上的CAC/ACA狀態(tài)不會(huì)改變,并為A類啟動(dòng)器維持。成功執(zhí)行該寫命令(步驟216)。向B類啟動(dòng)器204提供完好狀態(tài)。
方案3——B類啟動(dòng)器差錯(cuò)恢復(fù)及其對A類的影響第三個(gè)獨(dú)立差錯(cuò)管理方案從B類啟動(dòng)器204向SCSI/FCP目標(biāo)裝置220發(fā)送帶錯(cuò)誤的寫命令開始,例如CDB的域中的無效數(shù)值。過濾該命令,并確定該命令來自B類啟動(dòng)器(步驟206)。允許該寫命令通過該裝置上的保留,因?yàn)槠溆葿類啟動(dòng)器保持(步驟208)。該目標(biāo)上不存在UA條件(步驟212B),并且該目標(biāo)裝置上不存在CAC/ACA狀況(步驟214B),因此允許寫入通過執(zhí)行。然而由于無效的CDB域值,該寫命令失敗(步驟216)。對該命令進(jìn)行檢查調(diào)節(jié),然而由于該命令源自B類啟動(dòng)器204,目標(biāo)裝置上沒有設(shè)置CAC/ACA狀況。根據(jù)熟知的SCSI協(xié)議向B類啟動(dòng)器204提供具有適當(dāng)檢測的檢查調(diào)節(jié)狀態(tài)。
接著,A類啟動(dòng)器220向SCSI/FCP目標(biāo)裝置220發(fā)送讀取命令。確定該命令來自A類啟動(dòng)器(步驟206)。該讀命令被允許通過目標(biāo)裝置上B類啟動(dòng)器的保留(步驟208A)。關(guān)于A類啟動(dòng)器,在該裝置上不存在UA條件(步驟212A)、并且不存在CAC/ACA狀況(步驟214A)。允許該讀取通過執(zhí)行。成功執(zhí)行該讀命令(步驟216),并將完好狀態(tài)提供給A類啟動(dòng)器202。
替換實(shí)施例由目標(biāo)裝置101進(jìn)行的獨(dú)立差錯(cuò)管理的替換實(shí)施例基于對每一啟動(dòng)器類的UA和CAC/ACA錯(cuò)誤狀況的單獨(dú)維持。于是,目標(biāo)裝置101會(huì)維持A類UA和單獨(dú)的B類UA。相同的,目標(biāo)裝置101會(huì)單獨(dú)維持A類CAC/ACA狀態(tài),并獨(dú)立于B類CAC/ACA狀態(tài)。每一類差錯(cuò)會(huì)只影響對應(yīng)類的啟動(dòng)器。
維持每一啟動(dòng)器完全相互排斥并且獨(dú)立的差錯(cuò)處理,以防止來自一個(gè)啟動(dòng)器的差錯(cuò)影響來自另一類啟動(dòng)器所發(fā)出的訪問或命令。于是,通過目標(biāo)裝置101管理了兩種不同類的差錯(cuò)處理行為,這使得能夠支持不同類的啟動(dòng)器同時(shí)對該目標(biāo)裝置進(jìn)行訪問。替換實(shí)施例允許減少實(shí)施獨(dú)立的差錯(cuò)管理所需要的過濾層數(shù)目。
也可以為每一啟動(dòng)器的裝置各自維持單獨(dú)模式頁面數(shù)據(jù)。
通過裝置101的命令處理會(huì)遵從類似于上述關(guān)于圖2的流程。按照熟知的SCSI協(xié)議,在目標(biāo)裝置101上可以維持普通保留。在鑒別發(fā)出命令的啟動(dòng)器的類型(步驟206)之后會(huì)出現(xiàn)異常。特別的,為每一啟動(dòng)器類型單獨(dú)的維持UA和CAC/ACA狀態(tài),并在命令過濾期間只應(yīng)用到對應(yīng)的類。于是,在替換實(shí)施例中,可以完全單獨(dú)的維持獨(dú)立差錯(cuò)管理,減小過濾的復(fù)雜性。
所描述的用于PPRC/FCP和主機(jī)通過獨(dú)立差錯(cuò)管理對輔PPRC/FCP裝置同時(shí)進(jìn)行訪問的技術(shù)可以作為一種方法、設(shè)備或制造物品實(shí)施,其使用標(biāo)準(zhǔn)編程和/或工程技術(shù),產(chǎn)生軟件、固件、硬件或任何它們的組合。此處使用的詞語“制造物品,,指的是在硬件邏輯(例如磁存儲(chǔ)媒體,諸如硬盤驅(qū)動(dòng)、軟盤、磁帶等)、光學(xué)存儲(chǔ)器(例如CD-ROM、光盤等)、易失性和非易失性記憶裝置(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)中實(shí)施的編碼或邏輯。通過處理器訪問并執(zhí)行計(jì)算機(jī)可讀介質(zhì)中的編碼。進(jìn)一步可以在網(wǎng)絡(luò)上通過傳輸介質(zhì)或從文件服務(wù)器訪問產(chǎn)生實(shí)施方式的編碼。在這種情況下,其中實(shí)現(xiàn)編碼的制造物品可以包括傳輸介質(zhì),諸如網(wǎng)絡(luò)傳輸線、無線傳輸介質(zhì)、通過空間傳播的信號(hào)、無線電波、紅外信號(hào)等。當(dāng)然,本領(lǐng)域的熟練技術(shù)人員會(huì)認(rèn)識(shí)到不脫離這些實(shí)施方式的范圍可以對該結(jié)構(gòu)做出多種修改,并且該制造物品可以包括本領(lǐng)域熟知的任何信息承載介質(zhì)。
通過此處所公開的實(shí)施例已經(jīng)完全實(shí)現(xiàn)了本發(fā)明的目的。本領(lǐng)域的熟練技術(shù)人員會(huì)理解的是,不脫離本發(fā)明的基本功能可以通過不同的實(shí)施例實(shí)現(xiàn)本發(fā)明的各個(gè)方面。這些特定實(shí)施例至少說明性的,并非意欲限制本發(fā)明的范圍,該范圍由下面的權(quán)利要求限定。
權(quán)利要求
1.一種在具有目標(biāo)裝置的數(shù)據(jù)存儲(chǔ)系統(tǒng)中進(jìn)行差錯(cuò)管理的方法,該目標(biāo)裝置接收來自第一啟動(dòng)器的命令,并且該目標(biāo)裝置同時(shí)接收來自第二啟動(dòng)器的命令,該方法包括獨(dú)立于與從第二啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò),管理與從第一啟動(dòng)器向目標(biāo)存儲(chǔ)裝置發(fā)送的命令相關(guān)的差錯(cuò)。
2.權(quán)利要求1的方法,其中第一啟動(dòng)器通過小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議與該目標(biāo)裝置通信,并且第二啟動(dòng)器通過對等遠(yuǎn)程拷貝(PPRC)啟動(dòng)器模式命令與該目標(biāo)存儲(chǔ)裝置通信。
3.權(quán)利要求1的方法,其中獨(dú)立于與從第二啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò),管理與從第一啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò)包括確定已經(jīng)向該目標(biāo)裝置發(fā)送命令的啟動(dòng)器類型;應(yīng)用第一差錯(cuò)恢復(fù)程序,以管理與從第一啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò);和應(yīng)用第二差錯(cuò)恢復(fù)程序,以管理與從第二啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)。
4.權(quán)利要求1的方法,進(jìn)一步包括防止與從第一啟動(dòng)器和第二啟動(dòng)器之一定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)影響第一啟動(dòng)器和第二啟動(dòng)器中的另一個(gè)對目標(biāo)裝置的訪問。
5.權(quán)利要求1的方法,進(jìn)一步包括在一個(gè)選擇時(shí)間,只允許第一啟動(dòng)器和第二啟動(dòng)器中的一個(gè)對目標(biāo)裝置進(jìn)行寫訪問。
6.權(quán)利要求3的方法,其中第一差錯(cuò)恢復(fù)程序不同于第二差錯(cuò)恢復(fù)程序。
7.權(quán)利要求1的方法,其中第一啟動(dòng)器是服務(wù)器,并且第二啟動(dòng)器是存儲(chǔ)裝置。
8.權(quán)利要求7的方法,其中該存儲(chǔ)裝置是PPRC主存儲(chǔ)裝置,并且該目標(biāo)裝置是與該P(yáng)PRC主存儲(chǔ)裝置通信的PPRC輔存儲(chǔ)裝置。
9.一種數(shù)據(jù)存儲(chǔ)系統(tǒng)的目標(biāo)裝置,該目標(biāo)裝置接收來自第一啟動(dòng)器的命令并同時(shí)接收來自第二啟動(dòng)器的命令,該目標(biāo)裝置包括用于獨(dú)立于與從第二啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò),管理與從第一啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò)的裝置。
10.權(quán)利要求9的目標(biāo)裝置,其中第一啟動(dòng)器通過小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議與該目標(biāo)裝置通信,并且第二啟動(dòng)器通過對等遠(yuǎn)程拷貝(PPRC)啟動(dòng)器模式命令與該目標(biāo)裝置通信。
11.權(quán)利要求9的目標(biāo)裝置,進(jìn)一步包括用于確定已經(jīng)向該目標(biāo)裝置發(fā)送命令的啟動(dòng)器類型的裝置;用于應(yīng)用第一差錯(cuò)恢復(fù)程序,以管理與從第一啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)的裝置;和用于應(yīng)用第二差錯(cuò)恢復(fù)程序,以管理與從第二啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)的裝置。
12.權(quán)利要求11的目標(biāo)裝置,其中第一差錯(cuò)恢復(fù)程序不同于第二差錯(cuò)恢復(fù)程序。
13.權(quán)利要求9的目標(biāo)裝置,進(jìn)一步包括用于防止與從第一啟動(dòng)器和第二啟動(dòng)器之一定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)影響第一啟動(dòng)器和第二啟動(dòng)器中的另一個(gè)對目標(biāo)裝置的訪問的裝置。
14.權(quán)利要求9的目標(biāo)裝置,進(jìn)一步包括用于在一個(gè)選擇時(shí)間,只允許第一啟動(dòng)器和第二啟動(dòng)器中的一個(gè)對目標(biāo)裝置進(jìn)行寫訪問的裝置。
15.權(quán)利要求9的目標(biāo)裝置,其中第一啟動(dòng)器是服務(wù)器,并且第二啟動(dòng)器是存儲(chǔ)裝置。
16.權(quán)利要求15的目標(biāo)裝置,其中該存儲(chǔ)裝置是PPRC主存儲(chǔ)裝置,并且該目標(biāo)裝置是與該P(yáng)PRC主存儲(chǔ)裝置通信的PPRC輔存儲(chǔ)裝置。
17.一種用于編程數(shù)據(jù)存儲(chǔ)系統(tǒng)、以管理差錯(cuò)的制造物品,該數(shù)據(jù)存儲(chǔ)系統(tǒng)具有目標(biāo)裝置,該目標(biāo)裝置接收來自第一啟動(dòng)器的命令,并且該目標(biāo)裝置同時(shí)接收來自第二啟動(dòng)器的命令,該制造物品包括具有內(nèi)置于其中的邏輯的存儲(chǔ)介質(zhì),該邏輯使得該數(shù)據(jù)存儲(chǔ)系統(tǒng)的組件獨(dú)立于與從第二啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò),管理與從第一啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò)。
18.權(quán)利要求17的制造物品,其中該邏輯使得第一啟動(dòng)器通過小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議與該目標(biāo)裝置通信,并且該邏輯進(jìn)一步使得第二啟動(dòng)器通過對等遠(yuǎn)程拷貝(PPRC)啟動(dòng)器命令與該目標(biāo)裝置通信。
19.權(quán)利要求17的制造物品,其中該邏輯進(jìn)一步使得該數(shù)據(jù)存儲(chǔ)系統(tǒng)的組件通過如下方式,獨(dú)立于與從第二啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò),管理與從第一啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò)確定已經(jīng)向該目標(biāo)裝置發(fā)送命令的啟動(dòng)器類型;應(yīng)用第一差錯(cuò)恢復(fù)程序,以管理與從第一啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò);和應(yīng)用第二差錯(cuò)恢復(fù)程序,以管理與從第二啟動(dòng)器定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)。
20.權(quán)利要求19的制造物品,其中第一差錯(cuò)恢復(fù)程序不同于第二差錯(cuò)恢復(fù)程序。
21.權(quán)利要求17的制造物品,其中該邏輯進(jìn)一步使得該數(shù)據(jù)存儲(chǔ)系統(tǒng)的組件防止與從第一啟動(dòng)器和第二啟動(dòng)器之一定向到目標(biāo)裝置的命令相關(guān)的差錯(cuò)影響第一啟動(dòng)器和第二啟動(dòng)器中的另一個(gè)對目標(biāo)裝置的訪問。
22.權(quán)利要求17的制造物品,其中該邏輯進(jìn)一步使得該數(shù)據(jù)存儲(chǔ)系統(tǒng)的組件在一個(gè)選擇時(shí)間,只允許第一啟動(dòng)器和第二啟動(dòng)器中的一個(gè)對目標(biāo)裝置進(jìn)行寫訪問。
23.權(quán)利要求17的制造物品,其中第一啟動(dòng)器是服務(wù)器,并且第二啟動(dòng)器是存儲(chǔ)裝置。
24.權(quán)利要求23的制造物品,其中該存儲(chǔ)裝置是PPRC主存儲(chǔ)裝置,并且該目標(biāo)裝置是與該P(yáng)PRC主存儲(chǔ)裝置通信的PPRC輔存儲(chǔ)裝置。
全文摘要
一種在具有目標(biāo)裝置的數(shù)據(jù)存儲(chǔ)系統(tǒng)中進(jìn)行差錯(cuò)管理的方法,其中該目標(biāo)裝置接收來自第一啟動(dòng)器的命令,并且該目標(biāo)裝置同時(shí)接收來自第二啟動(dòng)器的命令。該目標(biāo)裝置典型的是作為PPRC輔裝置運(yùn)行的存儲(chǔ)裝置。第一啟動(dòng)器是通過小型計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議與目標(biāo)裝置通信的裝置。第一啟動(dòng)器典型的為主機(jī)或服務(wù)器。第二啟動(dòng)器通過對等遠(yuǎn)程拷貝PPRC啟動(dòng)器模式命令與該目標(biāo)裝置通信。第二啟動(dòng)器典型的為與目標(biāo)裝置具有對等遠(yuǎn)程拷貝(PPRC)關(guān)系的單獨(dú)的存儲(chǔ)裝置。該方法包括獨(dú)立于與從第二啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò),管理與從第一啟動(dòng)器向目標(biāo)裝置發(fā)送的命令相關(guān)的差錯(cuò)。
文檔編號(hào)G06F3/06GK1649342SQ20041009474
公開日2005年8月3日 申請日期2004年11月17日 優(yōu)先權(quán)日2003年11月20日
發(fā)明者弗雷德里克·J·卡伯里, 魯弗斯·J·特維托, 程建群, 理查德·A·沙弗爾, 考卡布·烏丁 申請人:國際商業(yè)機(jī)器公司