專利名稱:庫裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于對(duì)記錄在諸如磁帶、磁盤、或者磁光盤的記錄介質(zhì)上的數(shù)據(jù)進(jìn)行寫入和讀取的庫裝置。
背景技術(shù):
近年來,許多數(shù)據(jù)庫系統(tǒng)和電子編檔系統(tǒng)因?yàn)樾枰鎯?chǔ)大量的數(shù)據(jù)而開始采用庫裝置,在該庫裝置中存儲(chǔ)有大量電子數(shù)據(jù)記錄介質(zhì),并且可使用該庫裝置對(duì)記錄在該記錄介質(zhì)上的數(shù)據(jù)進(jìn)行寫入和讀取。圖12示出現(xiàn)有技術(shù)的庫裝置的基本結(jié)構(gòu)。
庫裝置1包括庫控制器Lct,根據(jù)來自主機(jī)2的控制指令對(duì)庫裝置1的整體操作進(jìn)行控制;多個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn,這些驅(qū)動(dòng)器控制器根據(jù)來自庫控制器Lct的控制指令分別對(duì)它們所連接的記錄介質(zhì)驅(qū)動(dòng)器單元D11和D12、D21和D22、…、以及Dn1和Dn2進(jìn)行控制;以及驅(qū)動(dòng)命令通道P,其使庫控制器Lct與驅(qū)動(dòng)器控制器Dct1、Dct2、…、以及Dctn相連。
庫控制器Lct具有連接到驅(qū)動(dòng)命令通道P的庫控制器端口14,并且?guī)炜刂破鱈ct經(jīng)由該庫控制器端口14將控制指令發(fā)送給各個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、以及Dctn,并且從各個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn接收狀態(tài)信息;另一方面,驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn分別具有驅(qū)動(dòng)器控制器端口31、41、…、51,這些端口中的每一個(gè)分別連接到驅(qū)動(dòng)命令通道P,并且各個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn分別經(jīng)由這些端口將狀態(tài)信息發(fā)送給庫控制器Lct并且從庫控制器Lct接收控制指令。
當(dāng)從主機(jī)2接收到電子數(shù)據(jù)讀取或者寫入指令時(shí),庫控制器Lct識(shí)別要讀取或者寫入的電子數(shù)據(jù)的位置,并且從驅(qū)動(dòng)器單元D11到Dn2中確定要從中讀取或者向其寫入所請(qǐng)求的數(shù)據(jù)的驅(qū)動(dòng)器單元。接著庫控制器Lct經(jīng)由驅(qū)動(dòng)命令通道P將電子數(shù)據(jù)讀取或者寫入指令發(fā)送到對(duì)由此確定的驅(qū)動(dòng)器單元進(jìn)行控制的驅(qū)動(dòng)器控制器。
接收到電子數(shù)據(jù)讀取或者寫入指令的驅(qū)動(dòng)器控制器執(zhí)行控制,以在由庫控制器Lct確定的驅(qū)動(dòng)器單元上讀取或者寫入所請(qǐng)求的數(shù)據(jù)。
在此情況下,當(dāng)經(jīng)由驅(qū)動(dòng)命令通道P接收的指令是寫入指令時(shí),經(jīng)由連接在主機(jī)與驅(qū)動(dòng)器單元之間的驅(qū)動(dòng)通道(未示出)傳輸待寫入的電子數(shù)據(jù),并且將其寫入該驅(qū)動(dòng)器單元。另一方面,當(dāng)經(jīng)由驅(qū)動(dòng)命令通道P接收的指令是讀取指令時(shí),將從該驅(qū)動(dòng)器單元讀取的電子數(shù)據(jù)經(jīng)由上述驅(qū)動(dòng)通道(未示出)傳輸給主機(jī)2。
發(fā)明內(nèi)容
如圖所示,在先技術(shù)的庫裝置1針對(duì)庫控制器Lct,驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn,驅(qū)動(dòng)命令通道P,以及端口14、31、41、…、51采用非冗余結(jié)構(gòu)。因此,存在這樣的問題如果在庫控制器Lct與任一驅(qū)動(dòng)器單元D11到Dn2之間出現(xiàn)通信故障,則不會(huì)知道沿所涉及的路徑布置的哪個(gè)設(shè)備是引起該故障的原因。
具體地,由于通過庫控制器Lct、驅(qū)動(dòng)命令通道P和庫控制器端口14分別是由各個(gè)單個(gè)設(shè)備構(gòu)成的,因此,如果在這些中的任一個(gè)中出現(xiàn)故障,則不僅會(huì)出現(xiàn)無法識(shí)別故障源的問題,而且也無法繼續(xù)庫裝置1的整體操作。
此外,因?yàn)椴荒茏R(shí)別故障源,所以采用這種非冗余結(jié)構(gòu)的庫裝置1具有這樣的問題為了快速恢復(fù)服務(wù),必須替換全部受影響的部件,其中包括沒有故障的部件,這是非常浪費(fèi)的。
鑒于上述問題設(shè)計(jì)了本發(fā)明,并且本發(fā)明的目的是提供一種庫裝置,其中將設(shè)備構(gòu)造成在該庫裝置的構(gòu)成元件的任何一個(gè)中發(fā)生故障的情況下,該庫裝置能夠無中斷地繼續(xù)整體操作。
本發(fā)明的另一個(gè)目的是提供一種庫裝置,其中將設(shè)備制造成能夠識(shí)別在構(gòu)成元件的任何一個(gè)中發(fā)生的故障源。
為了實(shí)現(xiàn)上述目的,在根據(jù)本發(fā)明的庫裝置中,以冗余結(jié)構(gòu)分別構(gòu)造庫控制器,驅(qū)動(dòng)命令通路,以及連接到驅(qū)動(dòng)命令通道的庫控制器端口。
在此情況下,可以通過利用第二驅(qū)動(dòng)命令通道備份第一驅(qū)動(dòng)命令通道來冗余地構(gòu)造驅(qū)動(dòng)命令通道,并且可以通過在各個(gè)冗余構(gòu)造的庫控制器上利用庫控制器第二端口備份庫控制器第一端口來冗余地構(gòu)造庫控制器端口;在此,可以分別將庫控制器第一端口和庫控制器第二端口連接到第一驅(qū)動(dòng)命令通道和第二驅(qū)動(dòng)命令通道。
此外,根據(jù)本發(fā)明的庫裝置可以包括故障源確定部分,用于確定在庫控制器,驅(qū)動(dòng)命令通道,和庫控制器端口的任何一個(gè)中發(fā)生的故障源。
此外,在根據(jù)本發(fā)明的庫裝置中,通過在各個(gè)驅(qū)動(dòng)器控制器上利用驅(qū)動(dòng)器控制器第二端口備份驅(qū)動(dòng)器控制器第一端口,來分別冗余地構(gòu)造連接到驅(qū)動(dòng)命令通道的驅(qū)動(dòng)器控制器端口,并且各個(gè)驅(qū)動(dòng)器控制器上的驅(qū)動(dòng)器控制器第一端口與第一驅(qū)動(dòng)命令通道并聯(lián)連接,而各個(gè)驅(qū)動(dòng)器控制器上的驅(qū)動(dòng)器控制器第二端口與第二驅(qū)動(dòng)命令通道并聯(lián)連接。
在此情況下,根據(jù)本發(fā)明的庫裝置可以包括故障源確定部分,用于確定在庫控制器,驅(qū)動(dòng)器控制器,驅(qū)動(dòng)命令通道,庫控制器端口,和驅(qū)動(dòng)器控制器端口的任何一個(gè)中出現(xiàn)的故障源。
在根據(jù)上述本發(fā)明的庫裝置中,庫控制器和驅(qū)動(dòng)器控制器可以分別包括用于相互通信的通信部分,并且可以將該故障源確定部分構(gòu)造成在通信部分之間的通信中出現(xiàn)異常時(shí)對(duì)該故障的出現(xiàn)進(jìn)行檢測。
從下文參照附圖闡述的說明中,將更清晰地理解本發(fā)明,其中圖1是示出根據(jù)本發(fā)明的庫裝置的基本結(jié)構(gòu)(第一結(jié)構(gòu))的圖;圖2是示出根據(jù)本發(fā)明的庫裝置的基本結(jié)構(gòu)(第二結(jié)構(gòu))的圖圖3是示出根據(jù)本發(fā)明的庫裝置的第一實(shí)施例的結(jié)構(gòu)的圖;圖4是示出圖3中示出的庫裝置的總體操作的流程圖;圖5是圖4中示出的子例程S13的流程圖;圖6是圖4中示出的子例程S14的流程圖;
圖7是示出根據(jù)本發(fā)明的庫裝置的第二實(shí)施例的結(jié)構(gòu)的圖;圖8是示出圖7中示出的庫裝置的總體操作的流程圖;圖9是圖8中示出的子例程S42的流程圖;圖10是圖9中示出的子例程S52的流程圖;圖11是圖9中示出的子例程S53的流程圖;以及圖12是示出在先技術(shù)的庫裝置的基本結(jié)構(gòu)的圖。
具體實(shí)施例方式
下面將參照?qǐng)D1描述根據(jù)本發(fā)明的庫裝置的第一基本結(jié)構(gòu)。
庫裝置1包括庫控制器Lct1和Lct2,其根據(jù)來自主機(jī)2的控制指令對(duì)庫裝置1的整體操作進(jìn)行控制;驅(qū)動(dòng)器控制器Dct,其根據(jù)來自庫控制器Lct1和Lct2的控制指令對(duì)其所連接的存儲(chǔ)介質(zhì)驅(qū)動(dòng)器進(jìn)行控制;和驅(qū)動(dòng)命令通道P1和P2,其將庫控制器Lct1和Lct2與驅(qū)動(dòng)器控制器Dct相連接。
通過使用具有相同功能的第二庫控制器Lct2備份(duplicate)第一庫控制器Lct1,來構(gòu)造庫控制器Lct1和Lct2以提供冗余,這樣的設(shè)計(jì)使得當(dāng)一個(gè)控制器處于工作狀體(激活狀態(tài))時(shí),另一個(gè)處于備用狀態(tài)。如果激活的控制器發(fā)生故障,則將備用控制器接通以替換故障的控制器,將故障的控制設(shè)置為備用狀態(tài),并且由此無中斷地繼續(xù)庫裝置1的整體操作。
還通過利用第二驅(qū)動(dòng)命令通道P2備份第一驅(qū)動(dòng)命令通道P1來冗余地構(gòu)造驅(qū)動(dòng)命令通道P1和P2,該第一和第二驅(qū)動(dòng)命令通道都使用相同的信號(hào)線等來實(shí)現(xiàn),并且當(dāng)一個(gè)處于工作(激活)狀態(tài)時(shí),另一個(gè)處于備用狀態(tài)。
此外,還以冗余結(jié)構(gòu)來構(gòu)造用于將這些控制器連接到各個(gè)驅(qū)動(dòng)命令通道P1和P2的、設(shè)置在第一控制器Lct1和第二庫控制器Lct2的每一個(gè)上的庫控制器端口,即將庫控制器第一端口14和庫控制器第二端口15設(shè)置在第一庫控制器Lct1上,而將庫控制器第一端口24和庫控制器第二端口25設(shè)置在第二庫控制器Lct2上。
在此,通過第一Lct間連接驅(qū)動(dòng)命令通道PL1并聯(lián)連接庫控制器第一端接14和24,以連接到第一驅(qū)動(dòng)命令通道P1;同樣地,通過第二Lct間連接驅(qū)動(dòng)命令通道PL2并聯(lián)連接庫控制器第二端口15和25,以連接到第二驅(qū)動(dòng)命令通道P2。
此外,也通過利用驅(qū)動(dòng)器控制器第二端口32備份驅(qū)動(dòng)器控制器第一端口31來冗余地構(gòu)造用于連接各個(gè)驅(qū)動(dòng)命令通道P1和P2的、設(shè)置在驅(qū)動(dòng)器控制器Dct上的驅(qū)動(dòng)器控制器端口;在此,將驅(qū)動(dòng)器控制器第一端口31連接到第一驅(qū)動(dòng)命令通道P1,并且將驅(qū)動(dòng)器控制器第二端口32連接到第二驅(qū)動(dòng)命令通道P2。
如果在預(yù)定時(shí)間間隔內(nèi)沒有從驅(qū)動(dòng)單元D1或者D2返回通信響應(yīng),則在第一控制器Lct1和第二庫控制器Lct2中的工作(激活)庫控制器(此后,為了解釋的目的,假設(shè)第一庫控制器Lct1是激活控制器)能夠檢測出在沿著第一庫控制器Lct1與驅(qū)動(dòng)單元D1或者D2之間的所涉及的路徑的某處已經(jīng)發(fā)生故障。
另選地,可以在庫控制器Lct1和驅(qū)動(dòng)器控制器Dct上分別設(shè)置用于經(jīng)由驅(qū)動(dòng)命令通道P1或者P2相互進(jìn)行通信的通信單元,并且可將庫控制器Lct1構(gòu)造為如果在通信單元之間的通信中發(fā)生異常,則檢測出在沿著在第一庫控制器Lct1與驅(qū)動(dòng)器控制器Dct之間所涉及路徑的某處已經(jīng)發(fā)生故障。
接著,如果庫控制器Lct1不能經(jīng)由當(dāng)前激活的庫控制器端口(例如,第一端口14)與驅(qū)動(dòng)器單元D1或者D2進(jìn)行通信(或者如果分別設(shè)置在庫控制器Lct1和驅(qū)動(dòng)器控制器Dct中的通信單元不能相互通信),但是不僅在使用在同一庫控制器Lct1上提供的備用庫控制器端口(例如第二端口15)時(shí)能夠通信,而且當(dāng)使用在備用庫控制器Lct2上提供的、并且連接到與當(dāng)前激活的庫控制器端口14相同的驅(qū)動(dòng)命令通道(第一驅(qū)動(dòng)命令通道P1)的庫控制器端口24時(shí)也能夠通信,則庫控制器Lct1確定在當(dāng)前激活的庫控制器端口14中已發(fā)生了故障,并且將激活的驅(qū)動(dòng)命令通道切換到第二驅(qū)動(dòng)命令通道P2,以使得能夠繼續(xù)庫裝置1的操作。
另一方面,如果庫控制器Lct1不能經(jīng)由當(dāng)前激活的庫控制器端口14與驅(qū)動(dòng)器單元D1或者D2進(jìn)行通信(或者如果分別設(shè)置在庫控制器Lct1和驅(qū)動(dòng)器控制器Dct中的通信單元不能相互通信),并且即使當(dāng)使用提供在備用庫控制器Lct2上的并且連接到與庫控制器端口14相同的驅(qū)動(dòng)命令通道(第一驅(qū)動(dòng)命令通道P1)的庫控制器端口24時(shí)仍然不能通信,則庫控制器Lct1確定在當(dāng)前激活的驅(qū)動(dòng)命令通道P1中已發(fā)生了故障,并且將激活的驅(qū)動(dòng)命令通道切換到第二驅(qū)動(dòng)命令通道P2,以使得能夠繼續(xù)庫裝置1的操作。
此外,如果無論使用庫控制器Lct1的第一端口14還是使用第二端口15,庫控制器Lct1均不能與驅(qū)動(dòng)器單元D1或者D2進(jìn)行通信(或者如果分別設(shè)置在庫控制器Lct1和驅(qū)動(dòng)器控制器Dct上的通信單元不能相互通信),但當(dāng)使用備用庫控制器Lct2時(shí)能夠進(jìn)行通信,則庫控制器Lct1確定該庫控制器Lct1自身發(fā)生了故障,并且將激活的庫控制器切換到庫控制器Lct2,以便利能夠繼續(xù)庫裝置1的操作。
這樣,當(dāng)以如上所述的冗余結(jié)構(gòu)來分別構(gòu)造庫裝置1的構(gòu)成元件,例如庫控制器、驅(qū)動(dòng)命令通道、和連接到驅(qū)動(dòng)命令通道的庫控制器端口時(shí),不僅能夠找到沿著庫控制器與驅(qū)動(dòng)命令通道之間所涉及的路徑上發(fā)生的任何故障的位置,而且即使當(dāng)已經(jīng)發(fā)生故障時(shí),也能夠無中斷地繼續(xù)庫裝置1的操作。
圖2示出根據(jù)本發(fā)明的庫裝置的第二基本結(jié)構(gòu)。
圖2中示出的庫裝置包括用于分別控制存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元D11和D12、D21和D22、…、以及Dn1和Dn2的多個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、以及Dctn。
在此,可以使用多個(gè)驅(qū)動(dòng)器控制器Dct1到Dctn以及多個(gè)存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元D11到Dn2來分別備份驅(qū)動(dòng)器控制器和存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元,或者另選地,可以通過將不同的存儲(chǔ)器區(qū)域分配給各個(gè)驅(qū)動(dòng)器單元D11到Dn2,來將多個(gè)驅(qū)動(dòng)器控制器Dct1到Dctn以及多個(gè)存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元D11到Dn2分別構(gòu)造為非冗余設(shè)備。
即使當(dāng)將驅(qū)動(dòng)器控制器Dct1到Dctn以及存儲(chǔ)介質(zhì)驅(qū)動(dòng)單元D11到Dn2分別構(gòu)造為非冗余設(shè)備,由于這些控制器或者單元是通過并聯(lián)連接多個(gè)相同設(shè)備而構(gòu)造的,所以如果其中任何一個(gè)發(fā)生故障(例如,如果Dct1發(fā)生故障),而其他設(shè)備(例如,Dct2至Dctn)可用,則也能夠使庫裝置1的整體操作繼續(xù)進(jìn)行。還能夠通過識(shí)別其它可用設(shè)備來識(shí)別故障源。
通過第一Dct間連接驅(qū)動(dòng)命令通道PD1將各個(gè)驅(qū)動(dòng)器控制器Dct1到Dctn上的驅(qū)動(dòng)器控制器第一端口31、41、…、51并聯(lián)連接,以便連接到第一驅(qū)動(dòng)命令通道P1,而通過第二Dct間連接驅(qū)動(dòng)命令通道PD2將驅(qū)動(dòng)器控制器第二端口32、42、…、以及52并聯(lián)連接,以連接到第二驅(qū)動(dòng)命令通道P2。
這樣,在根據(jù)本發(fā)明的庫裝置1中,以冗余的結(jié)構(gòu)構(gòu)造在先技術(shù)的庫裝置中分別由單個(gè)部件構(gòu)成的庫控制器、驅(qū)動(dòng)命令通道、庫控制器端口、以及驅(qū)動(dòng)器控制器端口。
利用這種結(jié)構(gòu),能夠?qū)煅b置1的所有組成部分(庫控制器、驅(qū)動(dòng)命令通道、庫控制器端口、驅(qū)動(dòng)器控制器、驅(qū)動(dòng)器控制器端口以及存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元)構(gòu)造為并聯(lián)連接的多個(gè)元件的陣列,并且能夠識(shí)別出在這些組成部分中的任何一個(gè)中發(fā)生的任何故障源。
即,當(dāng)在沿著庫控制器與驅(qū)動(dòng)命令通道之間的所涉及的路徑上發(fā)生故障時(shí),能夠通過使用參照?qǐng)D1描述的方法來識(shí)別出故障源。
例如,在驅(qū)動(dòng)器控制器Dct1上的當(dāng)前激活的驅(qū)動(dòng)器控制器端口(例如端口31)發(fā)生故障的情況下,如果庫控制器Lct1能夠通過使用當(dāng)前激活的驅(qū)動(dòng)命令通道P1與在其它驅(qū)動(dòng)器控制器Dct2到Dctn中的任何一個(gè)的控制下運(yùn)轉(zhuǎn)的存儲(chǔ)介質(zhì)驅(qū)動(dòng)單元中的任何一個(gè)進(jìn)行通信(或者能夠與其它驅(qū)動(dòng)器控制器Dct2到Dctn的任何一個(gè)進(jìn)行通信),并且如果在將驅(qū)動(dòng)命令通道切換到P2時(shí)能夠與在驅(qū)動(dòng)器控制器Dct1控制下運(yùn)轉(zhuǎn)的驅(qū)動(dòng)器11和12進(jìn)行通信(或者與驅(qū)動(dòng)器控制器Dct1進(jìn)行通信),則能夠確定驅(qū)動(dòng)器控制器端口31發(fā)生故障。此時(shí),通過將激活的驅(qū)動(dòng)命令通道切換到第二驅(qū)動(dòng)命令通道P2來使庫裝置1的操作繼續(xù)進(jìn)行。
此外,在驅(qū)動(dòng)器控制器(例如,Dct1)發(fā)生故障的情況下,如果庫控制器Lct1能夠通過使用當(dāng)前激活的驅(qū)動(dòng)命令通道P1與在其它驅(qū)動(dòng)器控制器Dct2到Dctn中的任何一個(gè)的控制下運(yùn)轉(zhuǎn)的存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元中的任何一個(gè)進(jìn)行通信(或者能夠與其它驅(qū)動(dòng)器控制器Dct2到Dctn中的任何一個(gè)進(jìn)行通信),但即使當(dāng)將驅(qū)動(dòng)命令通道切換到P2時(shí),仍然不能與在驅(qū)動(dòng)器控制器Dct1的控制下運(yùn)轉(zhuǎn)的驅(qū)動(dòng)器11或者12進(jìn)行通信(或者不能與驅(qū)動(dòng)器控制器Dct1進(jìn)行通信),則確定驅(qū)動(dòng)器控制器Dct1發(fā)生故障。
在此情況下,如果將驅(qū)動(dòng)器控制器構(gòu)造為冗余結(jié)構(gòu),則庫控制器Lct1禁止訪問在驅(qū)動(dòng)器控制器Dct1的控制下運(yùn)轉(zhuǎn)的存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元11和12。
另一方面,在存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元(例如D11)發(fā)生故障的情況下,如果庫控制器Lct1能夠通過使用當(dāng)前激活的驅(qū)動(dòng)命令通道P1與在其它驅(qū)動(dòng)器控制器Dct2到Dctn中的任何一個(gè)控制下運(yùn)轉(zhuǎn)的存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元中的任何一個(gè)進(jìn)行通信(或者能夠與其它驅(qū)動(dòng)器控制器Dct2到Dctn中的任何一個(gè)進(jìn)行通信),并且也能夠與在同一驅(qū)動(dòng)器控制器Dct1的控制下運(yùn)轉(zhuǎn)的其它存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元D12進(jìn)行通信,則確定存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元D11發(fā)生故障。
接著,將參照附圖來描述本發(fā)明的庫裝置的優(yōu)選實(shí)施例。圖3是示出根據(jù)本發(fā)明的庫裝置的第一實(shí)施例的結(jié)構(gòu)的圖。
庫裝置1包括第一庫控制器Lct1和第二庫控制器Lct2,其根據(jù)來自主機(jī)2的控制指令對(duì)庫裝置1的整體操作進(jìn)行控制;多個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、以及Dctn,其根據(jù)來自庫控制器Lct1和Lct2的控制器命令分別控制它們所連接的存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元D11和D12、D21和D22、…、以及Dn1和Dn2;以及,第一驅(qū)動(dòng)命令通道P1和第二驅(qū)動(dòng)命令通道P2,其將庫控制器Lct1和Lct2連接到驅(qū)動(dòng)器控制器Dct1到Dctn。
第一庫控制器Lct1包括MPU 10,用于執(zhí)行用于對(duì)庫裝置1的整體操作進(jìn)行控制的各種處理;存儲(chǔ)部分11,其是通過存儲(chǔ)器設(shè)備等實(shí)現(xiàn)的,用于存儲(chǔ)對(duì)由MPU 10執(zhí)行的處理進(jìn)行限定的程序和諸如用于執(zhí)行該程序所需的工作數(shù)據(jù)的數(shù)據(jù);以及,第一庫控制器端口14和第二庫控制器端口15,分別連接到MPU 10的數(shù)據(jù)總線12上,并且?guī)炜刂破鱈ct1經(jīng)由端口14和15將控制指令發(fā)送給驅(qū)動(dòng)器控制器Dct1到Dctn并且從驅(qū)動(dòng)器控制器Dct1到Dctn接收狀態(tài)信息。
針對(duì)第一庫控制器Lct1中的MPU 10,在存儲(chǔ)部分11中存儲(chǔ)有故障源確定軟件13,以根據(jù)稍后將描述的流程來確定庫裝置1中的故障源。
第二庫控制器Lct2在結(jié)構(gòu)上與第一庫控制器Lct1相同;即,冗余地構(gòu)造控制器Lct1和Lct2,這種設(shè)計(jì)使得其中之一處于工作(激活)狀態(tài),另一個(gè)處于備用狀態(tài),并且使得如果激活的控制器發(fā)生故障,則接通備用的控制器以替代發(fā)生故障的控制器,并將發(fā)生故障的控制器設(shè)置為備用狀態(tài)。
在第一庫控制器Lct1與第二庫控制器Lct2之間設(shè)置有庫控制器間通信線3。如稍后所述,當(dāng)庫控制器Lct1和Lct2中的一個(gè)通知另一個(gè)庫控制器其處于激活狀態(tài)還是備用狀態(tài)時(shí),或者當(dāng)從其它庫控制器詢問所述的一個(gè)庫控制器關(guān)于所述一個(gè)庫控制器是否能夠向存儲(chǔ)介質(zhì)驅(qū)動(dòng)器單元D11到Dn2發(fā)送并且從其接收指令,或者所述一個(gè)庫控制器能否與驅(qū)動(dòng)器控制器Dct1到Dctn進(jìn)行通信時(shí),使用該庫控制器間通信線3。
還通過利用第二驅(qū)動(dòng)命令通道P2備份第一驅(qū)動(dòng)命令通道P1來冗余地構(gòu)造驅(qū)動(dòng)命令通道P1和P2,使用相同信號(hào)線等來實(shí)現(xiàn)上述通道P1和P2。此外,還通過使用庫控制器第二端口15備份庫控制器第一端口14來冗余地構(gòu)造在第一庫控制器Lct1上提供的庫控制器端口,使用相同通信接口電路實(shí)現(xiàn)上述端口14和15;同樣地,通過使用庫控制器第二端口25備份庫控制器第一端口24來冗余地構(gòu)造在第二庫控制器Lct2上提供的庫控制器端口。
并聯(lián)連接庫控制器第一端口14和24,以連接到第一驅(qū)動(dòng)命令通道P1,而并聯(lián)連接庫控制器第二端口15和25,以連接到第二驅(qū)動(dòng)命令通道P2。在此通過用于連接到第一驅(qū)動(dòng)命令通道P1的第一Lct間連接驅(qū)動(dòng)命令通道PL1,將第二庫控制器Lct2上的庫控制器第一端口24與庫控制器第一端口14并聯(lián)連接,而通過用于連接到第二驅(qū)動(dòng)命令通道P2的第二Lct間連接驅(qū)動(dòng)命令通道PL2,將第二庫控制器Lct2上的庫控制器第二端口25與庫控制器第二端口15并聯(lián)連接。
同樣冗余地構(gòu)造在每個(gè)驅(qū)動(dòng)器控制器Dct1到Dctn上提供的驅(qū)動(dòng)器控制器端口。
即,通過利用驅(qū)動(dòng)器控制器第二端口32備份驅(qū)動(dòng)器控制器第一端口31來冗余地構(gòu)造驅(qū)動(dòng)器控制器Dct1上的端口,并且通過利用驅(qū)動(dòng)器控制器第二端口42備份驅(qū)動(dòng)器控制器第一端口41來冗余地構(gòu)造在驅(qū)動(dòng)器控制器Dct2上的端口,而通過利用驅(qū)動(dòng)器控制器第二端口52備份驅(qū)動(dòng)器控制器第一端口51來冗余地構(gòu)造驅(qū)動(dòng)器控制器Dctn上的端口。
接著,并聯(lián)連接驅(qū)動(dòng)器控制器第一端口31到51,以連接到第一驅(qū)動(dòng)命令通道P1,同時(shí)并聯(lián)連接驅(qū)動(dòng)器控制器第二端口32和52,以連接到第二驅(qū)動(dòng)命令通道P2。
在此,經(jīng)由第一Dct間連接驅(qū)動(dòng)命令通道PD1將驅(qū)動(dòng)器控制器Dct2到Dctn上的第一端口41到51連接到第一驅(qū)動(dòng)命令通道P1,而經(jīng)由第二Dct間連接驅(qū)動(dòng)命令通道PD2將驅(qū)動(dòng)器控制器Dct2到Dctn上的第二端口42到52連接到第二驅(qū)動(dòng)命令通道P2。
圖4到6是示出在根據(jù)本發(fā)明的庫裝置1中執(zhí)行的故障源檢測處理的流程圖。通過根據(jù)在存儲(chǔ)部分11(21)中存儲(chǔ)的故障確定軟件13(23)執(zhí)行操作的第一庫控制器Lct1中的MPU 10(或者第二庫控制器Lct2中的MPU 20),來執(zhí)行此故障源檢測處理。
在下面的描述中,假設(shè)在冗余構(gòu)造的庫控制器、驅(qū)動(dòng)命令通道、庫控制器端口以及驅(qū)動(dòng)器控制器端口中,第一庫控制器Lct1、第一驅(qū)動(dòng)命令通道P1、庫控制器第一端口14以及驅(qū)動(dòng)器控制器第一端口31處于激活狀態(tài),而第二庫控制器Lct2、第二驅(qū)動(dòng)命令通道P2、庫控制器第二端口15和25、庫控制器第一端口24以及驅(qū)動(dòng)器控制器第二端口32處于備用狀態(tài)。
在圖4示出的步驟S11中,庫控制器Lct1以預(yù)定時(shí)間間隔(例如每隔一秒)向特定存儲(chǔ)介質(zhì)驅(qū)動(dòng)器(例如D11)發(fā)送指令并且從特定存儲(chǔ)介質(zhì)驅(qū)動(dòng)器接收指令,并且如果在預(yù)定時(shí)間間隔內(nèi)沒有返回響應(yīng),則檢測出沿著在庫控制器Lct1與存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D11之間所涉及的路徑的某處已經(jīng)發(fā)生了故障。
接著,在步驟S12中,庫控制器Lct1嘗試?yán)卯?dāng)前激活的驅(qū)動(dòng)命令通道P1向存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D21到Dn1發(fā)送或者從存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D21到Dn1接收指令,該存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D21到Dn1在其它驅(qū)動(dòng)器控制器Dct2到Dctn的任何一個(gè)的控制下運(yùn)轉(zhuǎn)。
在此,如果能夠向這些存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D21到Dn1發(fā)送或者從其接收命令,則庫控制器Lct1確定在驅(qū)動(dòng)器D11、驅(qū)動(dòng)器控制器Dct1或者驅(qū)動(dòng)器控制器第一端口31中的任一中已發(fā)生了故障,并且促使處理分轉(zhuǎn)到圖5中示出的例程S13。
在另一方面,如果不能向存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D21到Dn1中的任何一個(gè)發(fā)送或者從其接收指令,則庫控制器Lct1確定在庫控制器Lct1自身、庫控制器第一端口14或者第一驅(qū)動(dòng)命令通道P1的任何一個(gè)中已經(jīng)發(fā)生了故障,并且使處理分轉(zhuǎn)到圖6中示出的例程S14。
當(dāng)處理因步驟S12中的確定而分轉(zhuǎn)到圖5示出的例程S13時(shí),庫控制器Lct1在步驟S21中向其它驅(qū)動(dòng)器D12發(fā)送并且從其接收指令,該驅(qū)動(dòng)器D12連接到控制驅(qū)動(dòng)器D11的同一驅(qū)動(dòng)器控制器Dct1。此時(shí),如果能夠向該其它驅(qū)動(dòng)器D12發(fā)送并從其接收命令,則庫控制器Lct1在步驟S22中確定故障源是驅(qū)動(dòng)器D11;接著處理進(jìn)入步驟S23,在此禁止使用驅(qū)動(dòng)器D11,直到將其修復(fù)或者替換,并且終止處理。
另一方面,如果不能向其它驅(qū)動(dòng)器D12發(fā)送或者從其接收命令,則在步驟S24中庫控制器Lct1嘗試通過使用當(dāng)前處于備用狀態(tài)的第二驅(qū)動(dòng)命令通道P2向驅(qū)動(dòng)器D11發(fā)送并從其接收指令。
如果當(dāng)使用第二驅(qū)動(dòng)命令通道P2時(shí)能夠向驅(qū)動(dòng)器D11發(fā)送并從其接收指令,則庫控制器Lct1在步驟S25中確定驅(qū)動(dòng)器控制器第一端口31發(fā)生故障,并且在步驟S26中,庫控制器Lct1將第二驅(qū)動(dòng)命令通道P2切換到激活狀態(tài),并且將第一驅(qū)動(dòng)命令通道P1切換到備用狀態(tài),由此允許無中斷地繼續(xù)庫裝置1的操作。
如果即使當(dāng)使用第二驅(qū)動(dòng)命令通道P2時(shí)也不能向驅(qū)動(dòng)器D11發(fā)送并從其接收命令,則庫控制器Lct1在步驟27中確定第一驅(qū)動(dòng)器控制器Dct1發(fā)生故障,并且處理進(jìn)入步驟S28,在此,禁止使用連接到第一驅(qū)動(dòng)器控制器Dct1的驅(qū)動(dòng)器D11和D12,直到修復(fù)或者替換該第一驅(qū)動(dòng)器控制器Dct1。
當(dāng)處理因圖4中的步驟S12的確定而分轉(zhuǎn)到圖6中示出的例程S14時(shí),庫控制器Lct1在步驟S31中檢查是否已經(jīng)庫控制器Lct1上的備用第二端口15記錄為故障狀態(tài)(稍后將參照步驟S37進(jìn)行描述)。
如果已經(jīng)第二端口15已經(jīng)處于故障狀態(tài),則庫控制器Lct1不能訪問使用第一端口14或者第二端口15的任何一個(gè)的驅(qū)動(dòng)器單元D11到Dn2中的任何一個(gè);因此,在步驟S32中,庫控制器Lct1確定庫控制器Lct1自身發(fā)生故障,并且在步驟S33中,將庫控制器Lct1設(shè)置為備用狀態(tài),而將庫控制器Lct2切換到激活狀態(tài),并且隨后利用庫控制器Lct2使庫裝置1的操作繼續(xù)進(jìn)行。
在將激活的系統(tǒng)從庫控制器Lct1切換到庫控制器Lct2的一種方法中,在步驟S31中已經(jīng)確定其第一和第二端口都不可用的第一庫控制器Lct1例如親自將其切換到備用狀態(tài),并且同時(shí)經(jīng)由庫控制器間通信線3向第二庫控制器Lct2發(fā)送指令,指示其切換到激活狀態(tài)。
另選地,可以在庫裝置1中提供用于在庫控制器Lct1與Lct2之間切換激活系統(tǒng)的激活Lct切換裝置(未示出);因此,在此情況下,已經(jīng)確定其第一和第二端口都不可用的第一庫控制器Lct1通知激活Lct切換裝置,并且激活Lct切換裝置接著將激活系統(tǒng)從庫控制器Lct1切換到庫控制器Lct2。
如果在步驟S31中確定第一庫控制器Lct1上的第二端口15未發(fā)生故障,則在步驟S34中,第一庫控制器Lct1經(jīng)由庫控制器間通信線3向第二庫控制器Lct2發(fā)送詢問,詢問第二庫控制器Lct2是否能夠通過使用驅(qū)動(dòng)命令通道P1向驅(qū)動(dòng)器單元D11到Dn2中的任何一個(gè)發(fā)送并從其接收指令。
在此,如果第二庫控制器Lct2也不能向驅(qū)動(dòng)器單元D11到Dn2中的任何一個(gè)發(fā)送并從其接收指令,則在步驟S35中確定第一驅(qū)動(dòng)命令通道P1發(fā)生故障,并且在步驟S38中,將激活的驅(qū)動(dòng)命令通道從當(dāng)前使用的第一驅(qū)動(dòng)命令通道P1切換到備用第二驅(qū)動(dòng)命令通道P2,此后終止處理。
在此情況下,例如,如果能夠向連接到驅(qū)動(dòng)器控制器Dct1的驅(qū)動(dòng)器D11或者D12發(fā)送并且從其接收指令,但不能向連接到驅(qū)動(dòng)器控制器Dct2到Dctn的驅(qū)動(dòng)器D21到Dn2中的任何一個(gè)發(fā)送并從其接收指令,則有可能連接在驅(qū)動(dòng)命令控制器Dct1與Dct2之間的Dct間連接驅(qū)動(dòng)命令通道PD1或者PD2發(fā)生了故障。在此,可以將設(shè)備構(gòu)造成通過檢查當(dāng)將驅(qū)動(dòng)命令通道切換到備用驅(qū)動(dòng)命令通道時(shí),是否能夠向連接到驅(qū)動(dòng)器控制器Dct2到Dctn的驅(qū)動(dòng)器D21到Dn2發(fā)送并從其接收指令,來檢測Dct間連接驅(qū)動(dòng)命令通道PD1或PD2的故障。
另一方面,如果第二庫控制器Lct2能夠向驅(qū)動(dòng)器單元D11到Dn2中的任何一個(gè)發(fā)送并從其接收命令,則在步驟S36中確定第一庫控制器Lct1上的第一端口14發(fā)生故障,并且在步驟37中將第一端口14的故障狀態(tài)存儲(chǔ)在存儲(chǔ)部分11中;接著,將激活的驅(qū)動(dòng)命令通道從當(dāng)前使用的第一驅(qū)動(dòng)命令通道P1切換到備用的第二驅(qū)動(dòng)命令通道P2,此后終止處理。
如上所述,根據(jù)圖3中示出的庫裝置1的結(jié)構(gòu),庫控制器Lct1向存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D11到Dn2發(fā)送并從其接收命令,并且如果在預(yù)定時(shí)間間隔內(nèi)沒有返回響應(yīng),則檢測出在沿著庫控制器Lct1與存儲(chǔ)介質(zhì)驅(qū)動(dòng)器D11之間所涉及的路徑上的某處已經(jīng)發(fā)生了故障。
然而,根據(jù)上述方法,每次在故障源確定流程中的指定點(diǎn)(例如圖4中的步驟S12、圖5中的步驟S21和S24以及圖6中的步驟S34)執(zhí)行向驅(qū)動(dòng)器D11到Dn2發(fā)送并從其接收指令,等待時(shí)間開始等待來自存儲(chǔ)介質(zhì)驅(qū)動(dòng)器的響應(yīng);因此有可能在主機(jī)2所允許的響應(yīng)時(shí)間內(nèi)未完成故障源確定流程。
鑒于此,此后提出庫裝置1的第二實(shí)施例,在各個(gè)庫控制器和驅(qū)動(dòng)器控制器中提供用于相互進(jìn)行通信的多個(gè)通信單元,并且當(dāng)在這些通信單元之間的通信中出現(xiàn)異常時(shí),確定到故障的發(fā)生。因?yàn)榕c必須等待來自存儲(chǔ)介質(zhì)驅(qū)動(dòng)器的響應(yīng)的結(jié)構(gòu)相比,這種通信單元使得能夠?qū)⒌却龝r(shí)間設(shè)定得更短,所以通過對(duì)通信單元之間的通信中是否存在異常進(jìn)行檢測,并由此檢查沿著庫控制器與驅(qū)動(dòng)器控制器之間所涉及的路徑上是否發(fā)生任何故障,能夠在更短的時(shí)間內(nèi)完成故障源的確定流程。
圖7是示出根據(jù)本發(fā)明的第二實(shí)施例的庫裝置的結(jié)構(gòu)的圖。
如圖所示,第一庫控制器Lct1具有庫控制器通信單元16,其能夠與在各個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn中提供的驅(qū)動(dòng)器控制器通信單元33、43、…、53進(jìn)行通信。
經(jīng)由庫控制器第一端口14、第一驅(qū)動(dòng)命令通道P1和驅(qū)動(dòng)器控制器第一端口31,或者經(jīng)由庫控制器第二端口15、第二驅(qū)動(dòng)命令通道P2和驅(qū)動(dòng)器控制器第二端口32,執(zhí)行庫控制器通信單元16與驅(qū)動(dòng)器控制器通信單元33之間的通信,并且例如以預(yù)定時(shí)間間隔(例如每隔11毫秒)發(fā)送對(duì)與連接到各個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn的相關(guān)驅(qū)動(dòng)器有關(guān)的信息(例如連接、通電/斷電狀態(tài)等)的詢問和響應(yīng)。
同樣地,第二庫控制器Lct2具有庫控制器通信單元26,其能夠與在各個(gè)驅(qū)動(dòng)器控制器Dct1、Dct2、…、Dctn中提供的驅(qū)動(dòng)器控制器通信單元33、43、…、53進(jìn)行通信。
圖8到圖11是示出在圖7中示出的庫裝置1中執(zhí)行的故障源確定處理的流程圖。
在圖8中的步驟S41中,庫控制器Lct1確定其通信單元16是否能夠與控制特定存儲(chǔ)介質(zhì)驅(qū)動(dòng)器(例如D11)的驅(qū)動(dòng)器控制器Dct1中的通信單元33進(jìn)行通信。
在此,如果通信單元16不能與通信單元33進(jìn)行通信,則庫控制器Lct1確定在庫控制器Lct1自身、庫控制器驅(qū)動(dòng)端口14、第一驅(qū)動(dòng)命令通道P1、驅(qū)動(dòng)器控制器Dct1、或者驅(qū)動(dòng)器控制器第一端口31中的任何一個(gè)中已經(jīng)發(fā)生了故障,并且使處理分轉(zhuǎn)到圖9中示出的例程S42。
另一方面,如果在步驟S41中確定通信單元16能夠與通信單元33進(jìn)行通信,則在步驟S43中,庫控制器Lct1向驅(qū)動(dòng)器D11發(fā)送并從其接收指令;如果在預(yù)定時(shí)間間隔內(nèi)返回了響應(yīng),則在步驟S44中確定未發(fā)生故障,由此終止處理。
反之,如果沒有返回響應(yīng),則在步驟S45中確定在驅(qū)動(dòng)器D11中發(fā)生了故障,并且處理進(jìn)入步驟S46,在該步驟中,禁止使用驅(qū)動(dòng)器D11,直到將其修復(fù)或者替換,此后終止處理。
如果在步驟S41中,通信單元16不能與通信單元33進(jìn)行通信,則處理分轉(zhuǎn)到圖9中示出的例程S42。在圖9中的步驟S51中,庫控制器Lct1使其通信單元16通過利用當(dāng)前激活的第一驅(qū)動(dòng)命令通道P1,來嘗試與在其它驅(qū)動(dòng)器控制器Dct2到Dctn中提供的通信單元43到53中的任何一個(gè)進(jìn)行通信。
在此,如果通信單元16能夠與信單元43到53中的任何一個(gè)進(jìn)行通信,則庫控制器Lct1確定驅(qū)動(dòng)器控制器Dct1或者驅(qū)動(dòng)器控制器第一端口31中的任何一個(gè)中已經(jīng)發(fā)生了故障,并且使處理分轉(zhuǎn)到圖10中示出的例程S52。
反之,如果通信單元16不能與信單元43到53中的任何一個(gè)進(jìn)行通信,則庫控制器Lct1確定在庫控制器Lct1自身、庫控制器第一端口114或者第一驅(qū)動(dòng)命令通道P1中的任何一個(gè)中已經(jīng)發(fā)生了故障,并且使處理分轉(zhuǎn)到圖11中示出的例程S53。
當(dāng)處理因步驟S51中的確定而分轉(zhuǎn)到圖10中示出的例程S52時(shí),在步驟S61中庫控制器Lct1使其通信單元16通過利用備用第二驅(qū)動(dòng)命令通道P2嘗試與控制驅(qū)動(dòng)器D11的驅(qū)動(dòng)器控制器Dct1中的通信單元33進(jìn)行通信。
如果當(dāng)使用第二驅(qū)動(dòng)命令通道P2時(shí),通信單元16能夠與通信單元33進(jìn)行通信,則庫控制器Lct1在步驟S62中確定驅(qū)動(dòng)器控制器第一端口31發(fā)生故障,并且在步驟S63中將第一驅(qū)動(dòng)命令通道P1設(shè)置為備用狀態(tài),而將第二驅(qū)動(dòng)命令通道P2切換到激活狀態(tài),由此繼續(xù)庫裝置1的操作。
如果即使當(dāng)使用第二驅(qū)動(dòng)命令通道P2時(shí),通信單元16也不能與通信單元33進(jìn)行通信,則庫控制器Lct1在步驟S64中確定第一驅(qū)動(dòng)器控制器Dct1發(fā)生故障,并且處理進(jìn)入步驟S65,在該步驟中,禁止使用連接到第一驅(qū)動(dòng)器控制器Dct1的驅(qū)動(dòng)器D11和D12,直到修復(fù)或者替換了該第一驅(qū)動(dòng)器控制器Dct1。
當(dāng)處理因圖9中的步驟S51中的確定而分轉(zhuǎn)到圖11的例程S53時(shí),庫控制器Lct1在步驟S71中檢查是否已經(jīng)將庫控制器Lct1上的備用第二端口15記錄為故障狀態(tài)。
如果第二端口15已經(jīng)處于故障狀態(tài),則庫控制器Lct1在步驟S72中確定庫控制器Lct1自身發(fā)生了故障,并且在步驟S73中,將庫控制器Lct1設(shè)置為備用狀態(tài),而將庫控制器Lct2切換到激活狀態(tài),并且此后利用庫控制器Lct2繼續(xù)庫裝置1的操作。在此,能夠通過利用如圖3中的庫裝置1的第一實(shí)施例中所述的相同方法將激活系統(tǒng)從庫控制器Lct1切換到庫控制器Lct2。
如果在步驟S71中確定第一庫控制器Lct1上的第二端口15未發(fā)生故障,則在步驟S74中第一庫控制器Lct1經(jīng)由庫控制器間通信線3向第二庫控制器Lct2發(fā)送詢問,詢問第二庫控制器Lct2其通信單元26通過利用驅(qū)動(dòng)命令通道P1是否能夠與驅(qū)動(dòng)器控制器Dct1到Dctn中的通信單元33到53中的任何一個(gè)進(jìn)行通信。
在此,如果在第二庫控制器Lct2中的通信單元26也不能向驅(qū)動(dòng)器控制器Dct1到Dctn中的通信單元33到53的任何一個(gè)發(fā)送并從其接收指令,則在步驟S75中確定第一驅(qū)動(dòng)命令通道P1發(fā)生了故障,并且在步驟S78中將激活的驅(qū)動(dòng)命令通道從當(dāng)前使用的第一驅(qū)動(dòng)命令通道P1切換到備用第二驅(qū)動(dòng)命令通道P2,此后終止處理。
在此情況下,例如如果與驅(qū)動(dòng)器控制器Dct1中的通信單元進(jìn)行通信,但不能與驅(qū)動(dòng)器控制器Dct2到Dctn中的通信單元43到53中的任何一個(gè)進(jìn)行通信,則存在如下的可能連接在驅(qū)動(dòng)器控制器Dct1與Dct2之間的Dct間連接驅(qū)動(dòng)命令通道PD1或者PD2發(fā)生了故障。在此,可以將設(shè)備構(gòu)造成通過對(duì)在將驅(qū)動(dòng)命令通道切換到備用驅(qū)動(dòng)命令通道時(shí)是否能夠進(jìn)行與驅(qū)動(dòng)器控制器Dct2到Dctn中的通信單元43到53的通信進(jìn)行檢查,來檢測Dct間連接驅(qū)動(dòng)命令通道PD1或者PD2的故障。
另一方面,如果第二庫控制器Lct2中的通信單元26能夠向驅(qū)動(dòng)器控制器Dct1到Dctn中的通信單元33到53中的任何一個(gè)發(fā)送并從其接收命令,則在步驟S76中確定第一庫控制器Lct1上的第一端口14發(fā)生了故障,并且在步驟S77中,將第一端口14的故障狀態(tài)存儲(chǔ)在存儲(chǔ)部分11中;接著將激活的驅(qū)動(dòng)命令通道從當(dāng)前使用的第一驅(qū)動(dòng)命令通道P1切換到備用第二驅(qū)動(dòng)命令通道P2,此后終止處理。
根據(jù)本發(fā)明的庫裝置,即使當(dāng)庫裝置的構(gòu)成元件中的任何一個(gè)中發(fā)生了故障,也能夠無中斷地繼續(xù)該庫裝置的整體操作。
還能夠識(shí)別故障源。這樣防止了發(fā)生如現(xiàn)有技術(shù)中的替換無故障部分的情況。
本發(fā)明也能夠應(yīng)用于用于對(duì)記錄在諸如磁帶、磁盤、或者磁光盤的記錄介質(zhì)上的數(shù)據(jù)進(jìn)行寫入和讀取的庫裝置。
雖然為了解釋的目的,已經(jīng)參照所選擇的具體實(shí)施例描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員應(yīng)該明確能夠在不脫離本發(fā)明的基本概念和范圍的情況下,對(duì)本發(fā)明進(jìn)行大量的修改。
本申請(qǐng)基于并且要求于2005年6月7日提交的在先日本專利申請(qǐng)2005-166812的優(yōu)選權(quán),在此通過引用并入其全部內(nèi)容。
權(quán)利要求
1.一種庫裝置,其包括庫控制器,其根據(jù)來自主機(jī)的控制指令對(duì)整體操作進(jìn)行控制;一個(gè)或者多個(gè)驅(qū)動(dòng)器控制器,所述驅(qū)動(dòng)器控制器中的每一個(gè)根據(jù)來自所述庫控制器的控制指令對(duì)與其相連的存儲(chǔ)介質(zhì)驅(qū)動(dòng)單元進(jìn)行控制;以及,驅(qū)動(dòng)命令通道,其連接在所述庫控制器與所述驅(qū)動(dòng)器控制器之間,其中,所述庫控制器、所述驅(qū)動(dòng)命令通道以及要連接到所述驅(qū)動(dòng)命令通道的庫控制器端口分別被構(gòu)造成冗余結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的庫裝置,其中通過利用第二驅(qū)動(dòng)命令通道備份第一驅(qū)動(dòng)命令通道來冗余地構(gòu)造所述驅(qū)動(dòng)命令通道,并且在所述冗余地構(gòu)造的庫控制器的每一個(gè)上,通過利用庫控制器第二端口備份庫控制器第一端口,來冗余地構(gòu)造所述庫控制器端口,并且其中所述庫控制器第一端口和所述庫控制器第二端口被分別連接到所述第一驅(qū)動(dòng)命令通道和所述第二驅(qū)動(dòng)命令通道。
3.根據(jù)權(quán)利要求2所述的庫裝置,其包括故障源確定部分,用于確定在所述庫控制器、所述驅(qū)動(dòng)命令通道和所述庫控制器端口中的至少任何一個(gè)中出現(xiàn)的故障源。
4.根據(jù)權(quán)利要求3所述的庫裝置,其中所述庫控制器和所述驅(qū)動(dòng)器控制器分別包括用于相互進(jìn)行通信的通信部分,并且其中所述故障源確定部分在所述通信部分之間的通信中發(fā)生異常時(shí),對(duì)所述故障的發(fā)生進(jìn)行檢測。
5.根據(jù)權(quán)利要求2所述的庫裝置,其中在所述一個(gè)或者多個(gè)驅(qū)動(dòng)器控制器的每一個(gè)上,通過利用驅(qū)動(dòng)器控制器第二端口備份驅(qū)動(dòng)器控制器第一端口,來冗余地構(gòu)造要連接到所述驅(qū)動(dòng)命令通道的驅(qū)動(dòng)器控制器端口,并且其中所述驅(qū)動(dòng)器控制器上的所述驅(qū)動(dòng)器控制器第一端口被并聯(lián)連接,以連接到所述第一驅(qū)動(dòng)命令通道,并且所述驅(qū)動(dòng)器控制器上的所述驅(qū)動(dòng)器控制器第二端口被并聯(lián)連接,以連接到所述第二驅(qū)動(dòng)命令通道。
6.根據(jù)權(quán)利要求5所述的庫裝置,其包括故障源確定部分,用于確定在所述庫控制器、所述驅(qū)動(dòng)器控制器、所述驅(qū)動(dòng)命令通道、所述庫控制器端口和所述驅(qū)動(dòng)器控制器端口中的至少任何一個(gè)中發(fā)生的故障源。
7.根據(jù)權(quán)利要求6所述的庫裝置,其中所述庫控制器和所述驅(qū)動(dòng)器控制器分別包括用于相互進(jìn)行通信的通信部分,并且其中所述故障源確定部分在所述通信部分之間的通信中發(fā)生異常時(shí),對(duì)所述故障的發(fā)生進(jìn)行檢測。
全文摘要
庫裝置,本發(fā)明提供了一種庫裝置,其中將設(shè)備構(gòu)造成如果該庫裝置的組成部分中的任何一個(gè)中發(fā)生故障,能夠無中斷地繼續(xù)庫裝置的整體操作,進(jìn)一步將設(shè)備構(gòu)造成能夠識(shí)別該故障源。庫裝置1包括以冗余結(jié)構(gòu)構(gòu)造的庫控制器Lct1和Lct2,和以冗余結(jié)構(gòu)構(gòu)造的驅(qū)動(dòng)命令通道P1和P2,其中通過利用端口15備份端口14來冗余地構(gòu)造庫控制器Lct1上的庫控制器端口,端口14和15分別連接到冗余構(gòu)造的驅(qū)動(dòng)命令通道P1和P2;并且通過利用端口25備份端口24來冗余地構(gòu)造庫控制器Lct2上的庫控制器端口,該端口24和25分別連接到冗余構(gòu)造的驅(qū)動(dòng)命令通道P1和P2。
文檔編號(hào)G06F11/20GK1877511SQ20051011281
公開日2006年12月13日 申請(qǐng)日期2005年10月12日 優(yōu)先權(quán)日2005年6月7日
發(fā)明者富井大介 申請(qǐng)人:富士通株式會(huì)社