本發(fā)明涉及包含存儲(chǔ)控制裝置的存儲(chǔ)系統(tǒng)及其控制方法。
背景技術(shù):
作為實(shí)現(xiàn)存儲(chǔ)控制裝置(以下,節(jié)點(diǎn))中的性能提高的技術(shù),在專利文獻(xiàn)1中記載有如下技術(shù):將來(lái)自主機(jī)的更新數(shù)據(jù)保存到節(jié)點(diǎn)的非易失性存儲(chǔ)器區(qū)域后,不論存儲(chǔ)裝置的數(shù)據(jù)更新,均立即設(shè)為處理完成。該技術(shù)將由雙節(jié)點(diǎn)集群形成的ha(highavailability:高可用性)構(gòu)成的存儲(chǔ)系統(tǒng)作為對(duì)象。各節(jié)點(diǎn)具有非易失性存儲(chǔ)器,并在非易失性存儲(chǔ)器上具有保存本節(jié)點(diǎn)的數(shù)據(jù)的區(qū)域、和保存其他節(jié)點(diǎn)的數(shù)據(jù)的區(qū)域這兩個(gè)區(qū)域。接收了來(lái)自主機(jī)(主機(jī)計(jì)算機(jī))的更新數(shù)據(jù)的節(jié)點(diǎn)在本節(jié)點(diǎn)的非易失性存儲(chǔ)器上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域保存更新數(shù)據(jù),并將更新數(shù)據(jù)復(fù)制到其他節(jié)點(diǎn)的非易失性存儲(chǔ)器上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域。復(fù)制結(jié)束時(shí),接收到更新數(shù)據(jù)的節(jié)點(diǎn)向主機(jī)通知處理完成。
像這樣,專利文獻(xiàn)1的技術(shù)通過(guò)向非易失性存儲(chǔ)器進(jìn)行的更新數(shù)據(jù)的保存,能夠在將更新數(shù)據(jù)寫(xiě)出到存儲(chǔ)裝置前向主機(jī)通知處理完成。另外,由于伴隨著復(fù)制的更新數(shù)據(jù)的雙重化,即使一個(gè)節(jié)點(diǎn)產(chǎn)生故障,另一個(gè)節(jié)點(diǎn)也能夠接手處理。
現(xiàn)有技術(shù)文獻(xiàn)
專利文獻(xiàn)
專利文獻(xiàn)1:us7730153
技術(shù)實(shí)現(xiàn)要素:
非易失性存儲(chǔ)器與易失性存儲(chǔ)器相比成本高,因此性價(jià)比低。于是,有通過(guò)電池對(duì)易失性存儲(chǔ)器的特定區(qū)域進(jìn)行備份來(lái)與非易失性存儲(chǔ)器同等地使用的技術(shù)。通過(guò)該技術(shù),電池的成本也高,性價(jià)比也低,因此需要使電池容量為最小限度。尤其在集群構(gòu)成的存儲(chǔ)系統(tǒng)中,需要與節(jié)點(diǎn)數(shù)相應(yīng)地增大非易失性存儲(chǔ)器的容量,因此即使進(jìn)行電池備份,也要求將其容量抑制為較小。
所公開(kāi)的存儲(chǔ)系統(tǒng)是將節(jié)點(diǎn)與其他節(jié)點(diǎn)連接的集群構(gòu)成,節(jié)點(diǎn)具有保存來(lái)自主機(jī)的第1更新數(shù)據(jù)的易失性存儲(chǔ)器、和對(duì)從主機(jī)向其他節(jié)點(diǎn)的第2更新數(shù)據(jù)的第2復(fù)制數(shù)據(jù)進(jìn)行保存的第1非易失性存儲(chǔ)器,節(jié)點(diǎn)包括:復(fù)制管理處理部,其將第1更新數(shù)據(jù)的第1復(fù)制數(shù)據(jù)保存到其他節(jié)點(diǎn)的第2非易失性存儲(chǔ)器;和存儲(chǔ)服務(wù)處理部,其響應(yīng)于由復(fù)制管理處理部進(jìn)行的第1更新數(shù)據(jù)的第1復(fù)制數(shù)據(jù)向其他節(jié)點(diǎn)的第2非易失性存儲(chǔ)器的保存,將對(duì)第1更新數(shù)據(jù)的更新請(qǐng)求作出的響應(yīng)向主機(jī)發(fā)送。
發(fā)明效果
根據(jù)所公開(kāi)的存儲(chǔ)系統(tǒng),能夠?qū)⑦M(jìn)行電池備份的易失性存儲(chǔ)器的容量、非易失性存儲(chǔ)器的容量抑制為較小。
附圖說(shuō)明
圖1是表示對(duì)存儲(chǔ)系統(tǒng)的易失性存儲(chǔ)器進(jìn)行電池備份的構(gòu)成的圖。
圖2是表示開(kāi)關(guān)的狀態(tài)的表。
圖3是開(kāi)關(guān)的狀態(tài)遷移圖。
圖4是實(shí)施例1的存儲(chǔ)系統(tǒng)的概略構(gòu)成圖。
圖5是存儲(chǔ)系統(tǒng)的硬件構(gòu)成圖。
圖6a是本節(jié)點(diǎn)靜止點(diǎn)管理表的例子。
圖6b是本節(jié)點(diǎn)操作管理表的例子。
圖6c是其他節(jié)點(diǎn)靜止點(diǎn)管理表的例子。
圖6d是其他節(jié)點(diǎn)操作管理表的例子。
圖7a是數(shù)據(jù)退避場(chǎng)所管理表的例子。
圖7b是節(jié)點(diǎn)狀態(tài)管理表的例子。
圖8是各節(jié)點(diǎn)的易失性存儲(chǔ)器及非易失性存儲(chǔ)器的數(shù)據(jù)的持有方式的例子。
圖9是在其他節(jié)點(diǎn)產(chǎn)生故障,通過(guò)1個(gè)節(jié)點(diǎn)進(jìn)行處理的情況的構(gòu)成例。
圖10是檢測(cè)到其他節(jié)點(diǎn)的故障后的、本節(jié)點(diǎn)的復(fù)制管理處理部的處理流程圖。
圖11是接收到更新請(qǐng)求時(shí)的處理流程圖。
圖12a是非同步地將更新數(shù)據(jù)寫(xiě)出到卷的復(fù)制管理處理部的處理流程圖。
圖12b是冗余處理部的處理流程圖。
圖13是退避到卷中的數(shù)據(jù)的恢復(fù)處理的流程圖。
圖14是退避到卷中的數(shù)據(jù)的另一恢復(fù)處理的流程圖。
圖15是退避到卷中的數(shù)據(jù)的又一恢復(fù)處理的流程圖。
圖16是實(shí)施例2的存儲(chǔ)系統(tǒng)的概略構(gòu)成圖。
圖17是關(guān)于在非易失性存儲(chǔ)器上保存的其他節(jié)點(diǎn)的數(shù)據(jù)的保存方法進(jìn)行示出的圖。
圖18是關(guān)于在非易失性存儲(chǔ)器上保存的其他節(jié)點(diǎn)的數(shù)據(jù)的另一保存方法進(jìn)行示出的圖。
圖19是一部分節(jié)點(diǎn)停止了的情況下的復(fù)制管理處理部的處理流程圖。
圖20是實(shí)施例3的由文件服務(wù)器和區(qū)塊存儲(chǔ)的多級(jí)構(gòu)成的節(jié)點(diǎn)形成的存儲(chǔ)系統(tǒng)的概略構(gòu)成圖。
圖21是存儲(chǔ)系統(tǒng)的硬件構(gòu)成圖。
具體實(shí)施方式
參照附圖對(duì)幾個(gè)實(shí)施例進(jìn)行說(shuō)明。
在以下的說(shuō)明中,有時(shí)表現(xiàn)為“xx表”來(lái)對(duì)各種信息進(jìn)行說(shuō)明,但各種信息也可以通過(guò)表以外的數(shù)據(jù)結(jié)構(gòu)來(lái)表現(xiàn)。為了表示不依賴于數(shù)據(jù)結(jié)構(gòu),有時(shí)將“xx表”稱為“xx信息”。
另外,在以下的說(shuō)明中,存在以程序?yàn)橹髡Z(yǔ)來(lái)說(shuō)明處理的情況,但由于程序通過(guò)由硬件本身或硬件所具有的處理器(例如、mp(microprocessor:微處理器))來(lái)執(zhí)行,而能夠邊適當(dāng)?shù)厥褂么鎯?chǔ)資源(例如存儲(chǔ)器)和/或通信接口設(shè)備(例如端口)邊進(jìn)行設(shè)定好的處理,因此處理的主語(yǔ)也可以為硬件。另外,程序源也可以為例如程序分發(fā)服務(wù)器或存儲(chǔ)介質(zhì)。
而且,在以下的說(shuō)明中,將得到應(yīng)用程序或文件系統(tǒng)的匹配性的狀態(tài)稱為靜止點(diǎn)。靜止點(diǎn)存在1個(gè)或兩個(gè)以上,對(duì)這些點(diǎn)賦予靜止點(diǎn)編號(hào)來(lái)進(jìn)行管理。
實(shí)施例1
圖1是表示對(duì)存儲(chǔ)系統(tǒng)的易失性存儲(chǔ)器進(jìn)行電池備份的構(gòu)成的圖。圖1中,為了說(shuō)明易失性存儲(chǔ)器的電池備份,省略用于電池備份以外的構(gòu)成的圖示。
存儲(chǔ)系統(tǒng)是基于節(jié)點(diǎn)a200和節(jié)點(diǎn)b400的雙節(jié)點(diǎn)集群構(gòu)成。節(jié)點(diǎn)a200具有易失性存儲(chǔ)器205,節(jié)點(diǎn)b400具有易失性存儲(chǔ)器405。易失性存儲(chǔ)器205具有不能進(jìn)行電池備份的區(qū)域290和能夠進(jìn)行電池備份的區(qū)域300。易失性存儲(chǔ)器405具有不能進(jìn)行電池備份的區(qū)域490和能夠進(jìn)行電池備份的區(qū)域500。區(qū)域300包含本節(jié)點(diǎn)用區(qū)域320及其他節(jié)點(diǎn)用區(qū)域310。同樣地,區(qū)域500包含本節(jié)點(diǎn)用區(qū)域520及其他節(jié)點(diǎn)用區(qū)域510。這些能夠進(jìn)行電池備份的各區(qū)域在斷電等故障時(shí)還通過(guò)經(jīng)由與被故障檢測(cè)部710控制的開(kāi)關(guān)800而與電池700連接,被從電池700供給電源(電力、電氣),能夠保持?jǐn)?shù)據(jù)(信息)。即,能夠進(jìn)行電池備份的各區(qū)域也能夠在斷電等故障時(shí)保持?jǐn)?shù)據(jù)(信息),因此作為非易失性存儲(chǔ)器進(jìn)行動(dòng)作。作為能夠進(jìn)行電池備份的各區(qū)域的具體例子,有電池備份式的nvram(non-volatilerandomaccessmemory:非易失隨機(jī)讀寫(xiě)存儲(chǔ)器)等。此外,省略向故障檢測(cè)部710的輸入的圖示。
開(kāi)關(guān)800包含sw1、sw2、sw3及sw4。在sw1為on(導(dǎo)通)時(shí),本節(jié)點(diǎn)用區(qū)域320通過(guò)電池備份而作為非易失性存儲(chǔ)器進(jìn)行動(dòng)作。在sw2為on時(shí),其他節(jié)點(diǎn)用區(qū)域310通過(guò)電池備份而作為非易失性存儲(chǔ)器進(jìn)行動(dòng)作。在sw3為on時(shí),本節(jié)點(diǎn)用區(qū)域520通過(guò)電池備份而作為非易失性存儲(chǔ)器進(jìn)行動(dòng)作。在sw4為on時(shí),其他節(jié)點(diǎn)用區(qū)域520通過(guò)電池備份而作為非易失性存儲(chǔ)器進(jìn)行動(dòng)作。
圖2是表示開(kāi)關(guān)800的狀態(tài)(由sw1、sw2、sw3及sw4的組合構(gòu)成的狀態(tài))的表。圖3是開(kāi)關(guān)800的狀態(tài)遷移圖。開(kāi)關(guān)800具有狀態(tài)1~5。通過(guò)sw1、sw2、sw3及sw4的組合,也能夠得到狀態(tài)1~5以外的其他狀態(tài),但也可以通過(guò)故障檢測(cè)部710控制為不遷移到其他狀態(tài)。圖2中,“-”表示sw可以為on及off中的任一種。若考慮到電池700的耗電,則期望為off。
狀態(tài)1是節(jié)點(diǎn)a200及節(jié)點(diǎn)b400為正常時(shí)的開(kāi)關(guān)800的狀態(tài)。狀態(tài)2是響應(yīng)于節(jié)點(diǎn)b400的故障(斷電等)的檢測(cè)而從狀態(tài)1遷移的開(kāi)關(guān)800的狀態(tài),sw1及sw2為on或off。開(kāi)關(guān)800的狀態(tài)響應(yīng)于狀態(tài)2中的節(jié)點(diǎn)a200的故障(斷電等)的檢測(cè)而遷移到狀態(tài)3。狀態(tài)3是sw1及sw2為on。狀態(tài)4是響應(yīng)于節(jié)點(diǎn)a200的故障(斷電等)的檢測(cè)而從狀態(tài)1遷移的開(kāi)關(guān)800的狀態(tài),sw3及sw4為on或off。開(kāi)關(guān)800的狀態(tài)響應(yīng)于狀態(tài)4中的節(jié)點(diǎn)b400的故障(斷電等)的檢測(cè)而遷移到狀態(tài)5。狀態(tài)5是sw3及sw4為on。狀態(tài)3和狀態(tài)5均是節(jié)點(diǎn)a200及節(jié)點(diǎn)b400為故障的狀態(tài),但依賴于故障檢測(cè)部710先檢測(cè)到哪個(gè)節(jié)點(diǎn)的故障而故障檢測(cè)部710控制為不同的狀態(tài)。
節(jié)點(diǎn)a200及節(jié)點(diǎn)b400的電源由于通常準(zhǔn)備為不同的系統(tǒng)因此多檢測(cè)到一個(gè)節(jié)點(diǎn)的故障之一的斷電等故障,但有時(shí)即使是不同的系統(tǒng)也因相同的原因(例如,廣域或設(shè)置有存儲(chǔ)系統(tǒng)的中心整體電源異常)而檢測(cè)到節(jié)點(diǎn)a200及節(jié)點(diǎn)b400的電源的故障。為了應(yīng)對(duì)這樣的故障的發(fā)生,在前面敘述了圖2中的“-”在考慮到電池700的耗電時(shí)期望sw為off,但在其他觀點(diǎn)中期望預(yù)先設(shè)為on。這是因?yàn)?,在從檢測(cè)到電源的故障到完成電池備份為止的時(shí)間,保存在能夠進(jìn)行電池備份的區(qū)域300或區(qū)域500中的數(shù)據(jù)有可能消失。
但是,在節(jié)點(diǎn)a200及節(jié)點(diǎn)b400的電源為正常時(shí)(狀態(tài)1),只要事先對(duì)能夠進(jìn)行電池備份的區(qū)域300及區(qū)域500的其他節(jié)點(diǎn)用區(qū)域310、510進(jìn)行電池備份即可。
以后,以預(yù)先對(duì)其他節(jié)點(diǎn)用區(qū)域310、510進(jìn)行電池備份為前提,將通過(guò)電池備份而作為非易失性存儲(chǔ)器進(jìn)行動(dòng)作的區(qū)域300及區(qū)域500稱為非易失性存儲(chǔ)器來(lái)進(jìn)行說(shuō)明。
圖4是存儲(chǔ)系統(tǒng)的概略構(gòu)成圖。存儲(chǔ)系統(tǒng)如前述那樣包含節(jié)點(diǎn)a(文件存儲(chǔ)裝置a)200及節(jié)點(diǎn)b(文件存儲(chǔ)裝置b)400、而且還包含存儲(chǔ)裝置(通常為區(qū)塊存儲(chǔ)裝置)600而構(gòu)成集群100。
節(jié)點(diǎn)a200在非易失性存儲(chǔ)器320上具有存儲(chǔ)服務(wù)處理部a210及復(fù)制管理處理部a220的處理部。同樣地,節(jié)點(diǎn)b400在非易失性存儲(chǔ)器520上具有存儲(chǔ)服務(wù)處理部b410及復(fù)制管理處理部b420的處理部。以下,使節(jié)點(diǎn)a200的處理部作為代表來(lái)進(jìn)行說(shuō)明。
節(jié)點(diǎn)a200的存儲(chǔ)服務(wù)處理部a210接收包含來(lái)自主機(jī)110的更新數(shù)據(jù)a10的數(shù)據(jù)更新請(qǐng)求。在此,“更新”包含新“保存”的情況。存儲(chǔ)服務(wù)處理部a210將更新數(shù)據(jù)a10保存到易失性存儲(chǔ)器290上的本節(jié)點(diǎn)(節(jié)點(diǎn)a)數(shù)據(jù)保存區(qū)域291。復(fù)制管理處理部a220經(jīng)由節(jié)點(diǎn)a-b間的通信線路800來(lái)控制復(fù)制管理處理部b420,并將更新數(shù)據(jù)a10復(fù)制到節(jié)點(diǎn)b400的非易失性存儲(chǔ)器510上的其他節(jié)點(diǎn)(節(jié)點(diǎn)a)數(shù)據(jù)保存區(qū)域501,向其他節(jié)點(diǎn)操作管理表460登記所接收的數(shù)據(jù)更新請(qǐng)求中包含的、與更新數(shù)據(jù)a10有關(guān)的操作(write)。復(fù)制管理處理部a220向本節(jié)點(diǎn)操作管理表240登記與更新數(shù)據(jù)a10有關(guān)的操作(write),并將對(duì)來(lái)自主機(jī)110的數(shù)據(jù)更新請(qǐng)求作出的響應(yīng)發(fā)送到主機(jī)110,而完成處理。
復(fù)制管理處理部a220參照本節(jié)點(diǎn)操作管理表240,在保存在節(jié)點(diǎn)b400的非易失性存儲(chǔ)器510的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域501中的數(shù)據(jù)的、數(shù)據(jù)量超過(guò)了預(yù)先設(shè)定的規(guī)定量的情況、在從保存時(shí)刻起經(jīng)過(guò)了預(yù)先設(shè)定的規(guī)定時(shí)間的情況、或者從主機(jī)110接受了強(qiáng)制寫(xiě)出請(qǐng)求的情況下,執(zhí)行與易失性存儲(chǔ)器290中存儲(chǔ)的本節(jié)點(diǎn)靜止點(diǎn)管理表230的最久未寫(xiě)入的靜止點(diǎn)編號(hào)(后述)對(duì)應(yīng)的本節(jié)點(diǎn)操作管理表240的操作,并向區(qū)塊存儲(chǔ)裝置600的卷a610寫(xiě)出數(shù)據(jù)。由此,保存在易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291中的數(shù)據(jù)(在本例中為更新數(shù)據(jù)a10)被寫(xiě)出到卷a610。復(fù)制管理處理部a220在寫(xiě)出完成時(shí),更新本節(jié)點(diǎn)靜止點(diǎn)管理表230的最久未寫(xiě)入的靜止點(diǎn)編號(hào),并控制復(fù)制管理處理部b420,來(lái)更新存儲(chǔ)在其他節(jié)點(diǎn)400的非易失性存儲(chǔ)器510中的其他節(jié)點(diǎn)靜止點(diǎn)管理表450的最久未寫(xiě)入的靜止點(diǎn)編號(hào)。
當(dāng)在1個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),由另一個(gè)節(jié)點(diǎn)執(zhí)行故障發(fā)生節(jié)點(diǎn)的處理部,接手服務(wù)。將其稱為失效備援。例如,當(dāng)僅在節(jié)點(diǎn)a200發(fā)生故障時(shí),在節(jié)點(diǎn)a200中運(yùn)轉(zhuǎn)的存儲(chǔ)服務(wù)處理部a210及復(fù)制管理處理部a220在節(jié)點(diǎn)b400的非易失性存儲(chǔ)器520上執(zhí)行。此時(shí),參照非易失性存儲(chǔ)器510上的其他節(jié)點(diǎn)靜止點(diǎn)管理表450、其他節(jié)點(diǎn)操作管理表460及其他節(jié)點(diǎn)(節(jié)點(diǎn)a)數(shù)據(jù)保存區(qū)域501來(lái)接手服務(wù)。
在將易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291的數(shù)據(jù)寫(xiě)出到卷a610之前發(fā)生了斷電等所有節(jié)點(diǎn)故障的情況下,節(jié)點(diǎn)a200的復(fù)制管理處理部a220在執(zhí)行了數(shù)據(jù)保護(hù)處理的基礎(chǔ)上將保存在非易失性存儲(chǔ)器310上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301中的數(shù)據(jù)向卷630的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631寫(xiě)出。數(shù)據(jù)保護(hù)處理是同一數(shù)據(jù)的鏡像或帶有奇偶校驗(yàn)(parity)的寫(xiě)出等。非易失性存儲(chǔ)器退避區(qū)域631只要能夠供各節(jié)點(diǎn)訪問(wèn),則可以位于任何地方(圖4中位于存儲(chǔ)裝置內(nèi)的卷630中)。
節(jié)點(diǎn)a200的存儲(chǔ)服務(wù)處理部a210在接收到來(lái)自主機(jī)110的數(shù)據(jù)參照請(qǐng)求時(shí),如果在易失性存儲(chǔ)器209上的本節(jié)點(diǎn)(節(jié)點(diǎn)a)數(shù)據(jù)保存區(qū)域291存在退避數(shù)據(jù),則將該數(shù)據(jù)向主機(jī)110發(fā)送,如果不存在退避數(shù)據(jù),則從卷a610獲取數(shù)據(jù)(read),并將該數(shù)據(jù)向主機(jī)110發(fā)送,從而完成處理。
根據(jù)本實(shí)施例,能夠在執(zhí)行數(shù)據(jù)的保護(hù)的同時(shí)提高對(duì)來(lái)自主機(jī)110的數(shù)據(jù)更新請(qǐng)求的響應(yīng)性能。而且,通過(guò)使用易失性存儲(chǔ)器290、490、非易失性存儲(chǔ)器310、510和非易失性存儲(chǔ)器退避區(qū)域631,能夠削減非易失性存儲(chǔ)器300、500的容量。換言之,與不使用易失性存儲(chǔ)器的情況相比,可以不用將與易失性存儲(chǔ)器290、490相當(dāng)?shù)娜萘看_保為非易失性存儲(chǔ)器310、510的容量。這示出了:在基于雙節(jié)點(diǎn)集群的ha構(gòu)成的存儲(chǔ)系統(tǒng)中,各節(jié)點(diǎn)200、400可以不再確保兩節(jié)點(diǎn)量(自節(jié)點(diǎn)及其他節(jié)點(diǎn)的數(shù)據(jù)保存區(qū)域的容量)的非易失性存儲(chǔ)器,只要彼此確保其他節(jié)點(diǎn)的數(shù)據(jù)保存區(qū)域301、501的容量的非易失性存儲(chǔ)器即可。因此,能夠削減電池700的容量,能夠降低電池700的成本。
圖5是存儲(chǔ)系統(tǒng)的硬件構(gòu)成圖。集群100是由主機(jī)110經(jīng)由網(wǎng)絡(luò)131所連接的節(jié)點(diǎn)a200及節(jié)點(diǎn)b400構(gòu)成的、雙節(jié)點(diǎn)的存儲(chǔ)系統(tǒng)。另外,各節(jié)點(diǎn)經(jīng)由專用網(wǎng)絡(luò)161與管理終端160連接。網(wǎng)絡(luò)131及161可以為例如wan(wideareanetwork:廣域網(wǎng))、lan(localareanetwork:局域網(wǎng))、互聯(lián)網(wǎng)、公用線路或?qū)S镁€路等。集群內(nèi)開(kāi)關(guān)150將在與主機(jī)110之間轉(zhuǎn)送的數(shù)據(jù)分配給節(jié)點(diǎn)a200及節(jié)點(diǎn)b400。
節(jié)點(diǎn)a200是從主機(jī)110接收數(shù)據(jù)更新請(qǐng)求,并將被更新請(qǐng)求的數(shù)據(jù)寫(xiě)出到區(qū)塊存儲(chǔ)裝置600的存儲(chǔ)控制裝置。cpu1210執(zhí)行保存在非易失性存儲(chǔ)器320中的處理部的處理。
監(jiān)視部1230檢測(cè)本節(jié)點(diǎn)(節(jié)點(diǎn)a200)及其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)的狀態(tài)(運(yùn)轉(zhuǎn)中、停止中),并改寫(xiě)節(jié)點(diǎn)狀態(tài)管理表280,在需要進(jìn)行電池備份的情況下將監(jiān)視結(jié)果通知給故障檢測(cè)部710,并且對(duì)與節(jié)點(diǎn)的狀態(tài)對(duì)應(yīng)的各處理部的執(zhí)行進(jìn)行管理。節(jié)點(diǎn)a200的監(jiān)視部1230和節(jié)點(diǎn)b400的監(jiān)視部1430使用心跳檢測(cè)等,檢測(cè)彼此的節(jié)點(diǎn)狀態(tài),控制各自所具有的節(jié)點(diǎn)狀態(tài)管理表280、480的更新,并在故障檢測(cè)時(shí)控制復(fù)制管理處理部220、420的執(zhí)行。從監(jiān)視部1230收到通知的故障檢測(cè)部710如前述那樣控制開(kāi)關(guān)800。
保存在易失性存儲(chǔ)器290中的表為本節(jié)點(diǎn)靜止點(diǎn)管理表230、本節(jié)點(diǎn)操作管理表240、數(shù)據(jù)退避場(chǎng)所管理表270以及節(jié)點(diǎn)狀態(tài)管理表280。如圖1所示,非易失性存儲(chǔ)器300包括本節(jié)點(diǎn)用區(qū)域320及其他節(jié)點(diǎn)用區(qū)域310。也將這些區(qū)域稱為非易失性存儲(chǔ)器。保存在非易失性存儲(chǔ)器310中的表是其他節(jié)點(diǎn)靜止點(diǎn)管理表250及其他節(jié)點(diǎn)操作管理表260。在此,數(shù)據(jù)退避場(chǎng)所管理表270和節(jié)點(diǎn)狀態(tài)管理表280作為位于易失性存儲(chǔ)器290上的表來(lái)進(jìn)行圖示、說(shuō)明,但也可以位于非易失性存儲(chǔ)器320和卷610、620、630的任一個(gè)。而且,易失性存儲(chǔ)器290和非易失性存儲(chǔ)器300具有各處理部的執(zhí)行所需的區(qū)域(例如,工作區(qū)域)。
節(jié)點(diǎn)b400除本節(jié)點(diǎn)為節(jié)點(diǎn)b、其他節(jié)點(diǎn)為節(jié)點(diǎn)a這一點(diǎn)以外,與節(jié)點(diǎn)a相同,因此省略說(shuō)明。
管理終端160是根據(jù)需要獲取節(jié)點(diǎn)a200和節(jié)點(diǎn)b400的管理信息,具有用于對(duì)節(jié)點(diǎn)a200和節(jié)點(diǎn)b400進(jìn)行操作的輸入輸出裝置的終端。
區(qū)塊存儲(chǔ)裝置600根據(jù)來(lái)自節(jié)點(diǎn)a200、節(jié)點(diǎn)b400、主機(jī)110或管理終端160的控制來(lái)保存數(shù)據(jù)。為此,區(qū)塊存儲(chǔ)裝置600具有用于保存數(shù)據(jù)的卷a610、卷b620。另外,區(qū)塊存儲(chǔ)裝置600具有用于在故障時(shí)供包含非易失性存儲(chǔ)器300、500的表在內(nèi)的各種數(shù)據(jù)退避的卷630,卷630具有非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631。
圖6a是本節(jié)點(diǎn)靜止點(diǎn)管理表230、430的例子。以本節(jié)點(diǎn)靜止點(diǎn)管理表230為代表進(jìn)行說(shuō)明。本節(jié)點(diǎn)靜止點(diǎn)管理表230保存本節(jié)點(diǎn)的最新的靜止點(diǎn)編號(hào)231和最久未寫(xiě)入的靜止點(diǎn)編號(hào)232。
最新的靜止點(diǎn)編號(hào)231是用于對(duì)操作世代(將對(duì)卷a610的數(shù)據(jù)進(jìn)行更新的集合稱為世代。)進(jìn)行管理的編號(hào)。復(fù)制管理處理部a220在向本節(jié)點(diǎn)操作管理表240登記從主機(jī)110收到的數(shù)據(jù)更新的操作時(shí),與操作相關(guān)聯(lián)地賦予最新的靜止點(diǎn)編號(hào)231。因此,在本節(jié)點(diǎn)所接收的操作數(shù)超過(guò)了規(guī)定數(shù)的情況下,或者從對(duì)操作進(jìn)行登記起經(jīng)過(guò)了規(guī)定時(shí)間的情況下,復(fù)制管理處理部220使最新靜止點(diǎn)編號(hào)231增加(更新)。
最久未寫(xiě)入的靜止點(diǎn)編號(hào)232表示操作(卷a610的數(shù)據(jù)的更新)尚未結(jié)束的靜止點(diǎn)的最舊編號(hào)。在一個(gè)靜止點(diǎn)編號(hào)(世代)具有多個(gè)操作(作為上述世代的集合)的情況下,在所有相同的靜止點(diǎn)編號(hào)的操作的執(zhí)行結(jié)束了的階段,復(fù)制管理處理部a220對(duì)最久未寫(xiě)入的靜止點(diǎn)編號(hào)232進(jìn)行更新。
圖6b是本節(jié)點(diǎn)操作管理表240、440的例子。以本節(jié)點(diǎn)操作管理表240為代表進(jìn)行說(shuō)明。本節(jié)點(diǎn)操作管理表240保存從主機(jī)110對(duì)本節(jié)點(diǎn)的操作242和與操作對(duì)應(yīng)的靜止點(diǎn)編號(hào)241。靜止點(diǎn)編號(hào)241是接收到各操作242的時(shí)刻的最新的靜止點(diǎn)編號(hào)231。操作242是本節(jié)點(diǎn)接收到的來(lái)自主機(jī)110的操作(的類(lèi)別)。
例如,若參照?qǐng)D6a的本節(jié)點(diǎn)靜止點(diǎn)管理表230,最新的靜止點(diǎn)編號(hào)231為“3”,最久未寫(xiě)入的靜止點(diǎn)編號(hào)233為“2”,在登記于本節(jié)點(diǎn)操作管理表240的條目中,與靜止點(diǎn)編號(hào)1對(duì)應(yīng)的操作(write(dataa))已結(jié)束處理(在此為向區(qū)塊存儲(chǔ)裝置600的卷610的寫(xiě)入)。與靜止點(diǎn)編號(hào)“2”對(duì)應(yīng)的操作(write(datac)及write(datae))是處理尚未結(jié)束的最舊的操作,是接下來(lái)處理的操作的候選。與靜止點(diǎn)編號(hào)“3”對(duì)應(yīng)的操作是最新的操作。
圖6c是其他節(jié)點(diǎn)靜止點(diǎn)管理表250、450的例子。以其他節(jié)點(diǎn)靜止點(diǎn)管理表250為代表進(jìn)行說(shuō)明。其他節(jié)點(diǎn)靜止點(diǎn)管理表250保存其他節(jié)點(diǎn)的最新的靜止點(diǎn)編號(hào)251和最久未寫(xiě)入的靜止點(diǎn)編號(hào)252。最新的靜止點(diǎn)編號(hào)251和最久未寫(xiě)入的靜止點(diǎn)編號(hào)252除與其他節(jié)點(diǎn)有關(guān)的方面以外,與本節(jié)點(diǎn)靜止點(diǎn)管理表230的最新的靜止點(diǎn)編號(hào)231和最久未寫(xiě)入的靜止點(diǎn)編號(hào)232相同,因此省略說(shuō)明。
圖6d是其他節(jié)點(diǎn)操作管理表260、460的例子。以其他節(jié)點(diǎn)操作管理表260為代表進(jìn)行說(shuō)明。其他節(jié)點(diǎn)操作管理表260保存其他節(jié)點(diǎn)所接收的各操作262和與各操作對(duì)應(yīng)的靜止點(diǎn)編號(hào)261。其他節(jié)點(diǎn)操作管理表260除了與其他節(jié)點(diǎn)有關(guān)的方面以外,與本節(jié)點(diǎn)操作管理表240相同,因此省略說(shuō)明。此外,其他節(jié)點(diǎn)操作管理表260與其他節(jié)點(diǎn)(例如節(jié)點(diǎn)b)所管理的本節(jié)點(diǎn)操作管理表440的內(nèi)容同步(數(shù)據(jù)同步)。
圖7a是數(shù)據(jù)退避場(chǎng)所管理表270、470的例子。以數(shù)據(jù)退避場(chǎng)所管理表270為代表進(jìn)行說(shuō)明。數(shù)據(jù)退避場(chǎng)所管理表270在其他節(jié)點(diǎn)故障時(shí)、進(jìn)而本節(jié)點(diǎn)的故障發(fā)生時(shí)準(zhǔn)備的、通過(guò)節(jié)點(diǎn)a的復(fù)制管理處理部a220將保存在本節(jié)點(diǎn)a的非易失性存儲(chǔ)器310中的數(shù)據(jù)向卷630的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631退避時(shí)的、退避目的地。數(shù)據(jù)退避場(chǎng)所管理表270由管理終端160設(shè)定。節(jié)點(diǎn)名271是用于區(qū)分各節(jié)點(diǎn)的標(biāo)識(shí)符。退避數(shù)據(jù)保存卷272是供保存在各節(jié)點(diǎn)的非易失性存儲(chǔ)器310、510中的數(shù)據(jù)退避的卷。退避數(shù)據(jù)保存路徑273是用于將保存在各節(jié)點(diǎn)的非易失性存儲(chǔ)器310、510中的數(shù)據(jù)向卷退避的路徑。
圖7b是節(jié)點(diǎn)狀態(tài)管理表280、480的例子。以節(jié)點(diǎn)狀態(tài)管理表280為代表進(jìn)行說(shuō)明。節(jié)點(diǎn)狀態(tài)管理表280是監(jiān)視部1230用于記錄本節(jié)點(diǎn)及其他節(jié)點(diǎn)的狀態(tài)的表。節(jié)點(diǎn)名281是用于區(qū)分各節(jié)點(diǎn)的標(biāo)識(shí)符。狀態(tài)282是各節(jié)點(diǎn)的當(dāng)前狀態(tài)(運(yùn)轉(zhuǎn)中或停止中)。接手中節(jié)點(diǎn)283是在存在停止中的節(jié)點(diǎn)的情況下(圖中:節(jié)點(diǎn)c停止中),接手停止中的節(jié)點(diǎn)在運(yùn)轉(zhuǎn)過(guò)程中所執(zhí)行的操作的節(jié)點(diǎn)(圖中:節(jié)點(diǎn)a)。直接寫(xiě)入模式284不經(jīng)由向非易失性存儲(chǔ)器510、310的保存,在從易失性存儲(chǔ)器290、490向區(qū)塊存儲(chǔ)裝置600直接寫(xiě)入的情況下設(shè)定為開(kāi)啟(圖中為關(guān)閉)。
故障恢復(fù)時(shí)模式285是在伴隨故障發(fā)生而向非易失性存儲(chǔ)器退避區(qū)域631退避了各節(jié)點(diǎn)的非易失性存儲(chǔ)器的數(shù)據(jù)之后,從故障恢復(fù)的情況下的恢復(fù)模式。作為恢復(fù)模式,將在后敘述通?;謴?fù)模式(圖13)、其他節(jié)點(diǎn)用的退避區(qū)域安裝恢復(fù)模式(圖14)以及失效備援恢復(fù)模式(圖15),但恢復(fù)模式不限于此。管理終端160從管理終端160設(shè)定直接寫(xiě)入模式284和故障恢復(fù)時(shí)模式285。
圖8是各節(jié)點(diǎn)的易失性存儲(chǔ)器及非易失性存儲(chǔ)器的數(shù)據(jù)的持有方式的例子。節(jié)點(diǎn)a200將節(jié)點(diǎn)a200的易失性存儲(chǔ)器290的數(shù)據(jù)(圖中為更新數(shù)據(jù)a1、a2、···)復(fù)制到節(jié)點(diǎn)b400的非易失性存儲(chǔ)器510(圖中為其他節(jié)點(diǎn)(節(jié)點(diǎn)a)數(shù)據(jù)保存區(qū)域501),不復(fù)制到節(jié)點(diǎn)a200的非易失性存儲(chǔ)器300。節(jié)點(diǎn)b400也與節(jié)點(diǎn)a200同樣地,將易失性存儲(chǔ)器490的數(shù)據(jù)(圖中為更新數(shù)據(jù)b1、b2、···)復(fù)制到節(jié)點(diǎn)a200的非易失性存儲(chǔ)器310(圖中為其他節(jié)點(diǎn)(節(jié)點(diǎn)b)數(shù)據(jù)保存區(qū)域301),不復(fù)制到節(jié)點(diǎn)b400的非易失性存儲(chǔ)器500。
圖9是節(jié)點(diǎn)b400因故障而停止時(shí)的集群100(運(yùn)轉(zhuǎn)中部分)的例子。伴隨著節(jié)點(diǎn)b400的故障,開(kāi)關(guān)800的sw1及sw2為on,sw3及sw4為off。
當(dāng)節(jié)點(diǎn)狀態(tài)管理表280(省略圖示)的直接寫(xiě)入模式284開(kāi)啟時(shí),將保存在本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291中的更新數(shù)據(jù)不保存到非易失性存儲(chǔ)器300的本節(jié)點(diǎn)區(qū)域320,而將其寫(xiě)出到卷610。
圖9是在其他節(jié)點(diǎn)(節(jié)點(diǎn)b)發(fā)生故障而由1個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)a)處理的情況下的構(gòu)成例。說(shuō)明直接寫(xiě)入模式284關(guān)閉的情況。復(fù)制管理處理部a220在非易失性存儲(chǔ)器300的本節(jié)點(diǎn)用區(qū)域320上確保本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域302。復(fù)制管理處理部a220將在本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291保存的本節(jié)點(diǎn)數(shù)據(jù)的復(fù)制目的地從節(jié)點(diǎn)b400的非易失性存儲(chǔ)器500的其他節(jié)點(diǎn)用區(qū)域510變更為在節(jié)點(diǎn)a200的非易失性存儲(chǔ)器320確保的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域302。
而且,節(jié)點(diǎn)a200的復(fù)制管理處理部a220在節(jié)點(diǎn)a200的易失性存儲(chǔ)器290上創(chuàng)建其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域292,將位于節(jié)點(diǎn)a200的非易失性存儲(chǔ)器300上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301的數(shù)據(jù)復(fù)制到節(jié)點(diǎn)a200的易失性存儲(chǔ)器290的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域292。由此,最大化地利用電池700的容量,實(shí)現(xiàn)性能提高。
圖10是檢測(cè)到其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)故障后的、本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的復(fù)制管理處理部a220的處理流程圖。
復(fù)制管理處理部a220在本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的非易失性存儲(chǔ)器300的本節(jié)點(diǎn)用區(qū)域320上確保本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域302(s10)。復(fù)制管理處理部a220將易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291的更新數(shù)據(jù)復(fù)制到確保出的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域302(s11)。
復(fù)制管理處理部220在本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的易失性存儲(chǔ)器290上確保其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域292(s12)。復(fù)制管理處理部220向確保出的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域292復(fù)制本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的非易失性存儲(chǔ)器300的其他節(jié)點(diǎn)用區(qū)域310上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301的數(shù)據(jù)(s13)。
復(fù)制管理處理部a220使存儲(chǔ)服務(wù)處理部a210執(zhí)行,而將易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291以及其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域292的更新數(shù)據(jù)分別寫(xiě)出到卷610及620(s14)。
另外,在s11、s13中,本節(jié)點(diǎn)(節(jié)點(diǎn)a200)復(fù)制本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的更新數(shù)據(jù)以及用于對(duì)其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)所處理了的更新數(shù)據(jù)進(jìn)行管理的表(本節(jié)點(diǎn)(其他節(jié)點(diǎn)(節(jié)點(diǎn)b400))的靜止點(diǎn)管理表430、本節(jié)點(diǎn)(節(jié)點(diǎn)b)操作管理表440、其他節(jié)點(diǎn)(本節(jié)點(diǎn)(節(jié)點(diǎn)a200))靜止點(diǎn)管理表450、其他節(jié)點(diǎn)(本節(jié)點(diǎn)(節(jié)點(diǎn)a200))操作管理表460),并接手其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)的處理。
圖11是本節(jié)點(diǎn)從主機(jī)110接收數(shù)據(jù)的更新請(qǐng)求,并直到向主機(jī)110通知更新請(qǐng)求的處理完成為止的、存儲(chǔ)服務(wù)處理部a210及復(fù)制管理處理部a220的處理流程圖的例子。在此,對(duì)本節(jié)點(diǎn)(節(jié)點(diǎn)a200)接收到更新請(qǐng)求的情況進(jìn)行說(shuō)明。
存儲(chǔ)服務(wù)處理部a210將接收到的更新數(shù)據(jù)保存到易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291(s20)。存儲(chǔ)服務(wù)處理部a210使復(fù)制管理處理部a220執(zhí)行。復(fù)制管理處理部a220參照節(jié)點(diǎn)狀態(tài)管理表280的節(jié)點(diǎn)名281和狀態(tài)282,確認(rèn)其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)是否正運(yùn)轉(zhuǎn)(s21)。
若其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)的狀態(tài)為運(yùn)轉(zhuǎn)中,則復(fù)制管理處理部a220向其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)的非易失性存儲(chǔ)器500上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域501復(fù)制更新數(shù)據(jù)(s22)。根據(jù)復(fù)制管理處理部a220進(jìn)行的復(fù)制結(jié)束,存儲(chǔ)服務(wù)處理部a210向主機(jī)110通知處理完成(s23)。
若其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)的狀態(tài)為停止中,則復(fù)制管理處理部a220執(zhí)行存儲(chǔ)服務(wù)處理部a210。存儲(chǔ)服務(wù)處理部a210參照節(jié)點(diǎn)狀態(tài)管理表280的直接寫(xiě)入模式284,確認(rèn)是否為直接寫(xiě)入模式(s24)。
存儲(chǔ)服務(wù)處理部a210在直接寫(xiě)入模式為無(wú)效(關(guān)閉)的情況下,向本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的非易失性存儲(chǔ)器300的本節(jié)點(diǎn)用區(qū)域320上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域302復(fù)制更新數(shù)據(jù)(s25),向主機(jī)110通知處理完成(s23)。
存儲(chǔ)服務(wù)處理部a210在直接寫(xiě)入模式為有效(開(kāi)啟)的情況下,將位于本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291的更新數(shù)據(jù)(操作)向卷610寫(xiě)出(s26),并向主機(jī)110通知處理完成(s23)。
圖12a是與到由存儲(chǔ)服務(wù)處理部a210向主機(jī)110的處理完成的通知為止的處理非同步地將易失性存儲(chǔ)器上的更新數(shù)據(jù)向卷610寫(xiě)出的復(fù)制管理處理部a220的處理流程圖。
復(fù)制管理處理部a220參照本節(jié)點(diǎn)操作管理表240,在操作的總數(shù)據(jù)量達(dá)到了預(yù)先設(shè)定的規(guī)定量的情況、保存更新數(shù)據(jù)起經(jīng)過(guò)了規(guī)定時(shí)間的情況或者有來(lái)自主機(jī)110及管理終端160的強(qiáng)制寫(xiě)出請(qǐng)求的情況下,參照本節(jié)點(diǎn)靜止點(diǎn)管理表230的最久未寫(xiě)入的靜止點(diǎn)編號(hào)232,執(zhí)行使本節(jié)點(diǎn)操作管理表240的靜止點(diǎn)編號(hào)241和最久未寫(xiě)入的靜止點(diǎn)編號(hào)232一致的操作,并向卷610寫(xiě)出更新數(shù)據(jù)(s31)。也可以將與寫(xiě)出到卷610的更新數(shù)據(jù)對(duì)應(yīng)的、保存在其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)的非易失性存儲(chǔ)器510的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域501中的更新數(shù)據(jù)(復(fù)制數(shù)據(jù))刪除。
復(fù)制管理處理部a220參照節(jié)點(diǎn)a200的本節(jié)點(diǎn)靜止點(diǎn)管理表230的最久未寫(xiě)入的靜止點(diǎn)編號(hào)232,確認(rèn)是否執(zhí)行了本節(jié)點(diǎn)操作管理表240的最久未寫(xiě)入的靜止點(diǎn)編號(hào)241的所有操作(s32)。若沒(méi)有處理完最久未寫(xiě)入的靜止點(diǎn)編號(hào)232的所有操作,則返回到s31。
若處理了最久未寫(xiě)入的靜止點(diǎn)編號(hào)232的所有操作,則復(fù)制管理處理部a220對(duì)節(jié)點(diǎn)a200所管理的本節(jié)點(diǎn)靜止點(diǎn)管理表230的未寫(xiě)入編號(hào)232加1(s33),對(duì)節(jié)點(diǎn)b400所管理的其他節(jié)點(diǎn)靜止點(diǎn)管理表450的最久未寫(xiě)入的靜止點(diǎn)編號(hào)加1(s34)。
圖12b是由于因節(jié)點(diǎn)的停止而易失性存儲(chǔ)器上的更新數(shù)據(jù)消失,因此為了使非易失性存儲(chǔ)器上的更新數(shù)據(jù)具有冗余而向卷退避的、冗余處理部(圖4中省略圖示)的處理流程圖的例子。更新數(shù)據(jù)的冗余的原因在于,由于非易失性存儲(chǔ)器被電池備份,因此有可能發(fā)生超過(guò)電池容量的極限(導(dǎo)致放電)的時(shí)間的斷電。節(jié)點(diǎn)a200的冗余處理部參照數(shù)據(jù)退避場(chǎng)所管理表270,將非易失性存儲(chǔ)器300上的更新數(shù)據(jù)退避到卷630的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631(s40)。
圖13~15是因電源喪失等故障而導(dǎo)致所有節(jié)點(diǎn)停止、各節(jié)點(diǎn)的非易失性存儲(chǔ)器上的數(shù)據(jù)被退避到卷630后的恢復(fù)處理的流程圖。將本節(jié)點(diǎn)設(shè)為節(jié)點(diǎn)a200、將其他節(jié)點(diǎn)設(shè)為節(jié)點(diǎn)b400來(lái)進(jìn)行說(shuō)明。
圖13是恢復(fù)模式為通?;謴?fù)模式的情況下的復(fù)制管理處理部220a的處理流程圖的例子。復(fù)制管理處理部220a將本節(jié)點(diǎn)(節(jié)點(diǎn)a200)所退避的更新(退避)數(shù)據(jù)復(fù)原到本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的非易失性存儲(chǔ)器300上,將位于其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)的非易失性存儲(chǔ)器500上的更新(退避)數(shù)據(jù)復(fù)制到本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的易失性存儲(chǔ)器290上之后,執(zhí)行操作。
復(fù)制管理處理部a220將節(jié)點(diǎn)a200向卷630上的非易失性存儲(chǔ)器退避區(qū)域631退避的數(shù)據(jù)(節(jié)點(diǎn)b400的更新數(shù)據(jù))復(fù)原到節(jié)點(diǎn)a200的非易失性存儲(chǔ)器300的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301。此時(shí),復(fù)制管理處理部b420在節(jié)點(diǎn)b400中也同樣地,將退避數(shù)據(jù)(節(jié)點(diǎn)a200的更新數(shù)據(jù))復(fù)原到非易失性存儲(chǔ)器500的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域501上(s50)。
復(fù)制管理處理部a220從位于節(jié)點(diǎn)b400的非易失性存儲(chǔ)器500上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域501讀出數(shù)據(jù)(節(jié)點(diǎn)a200的更新數(shù)據(jù)),并復(fù)制到節(jié)點(diǎn)a200的易失性存儲(chǔ)器290的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291上(s51)。復(fù)制管理處理部a220執(zhí)行易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291的更新(退避)數(shù)據(jù)的操作,并寫(xiě)出到卷a610(s52)。
復(fù)制管理處理部a220對(duì)位于節(jié)點(diǎn)a200的本節(jié)點(diǎn)靜止點(diǎn)管理表230的最久未寫(xiě)入的靜止點(diǎn)編號(hào)232和位于節(jié)點(diǎn)b400的其他節(jié)點(diǎn)靜止點(diǎn)管理表450的最久未寫(xiě)入的靜止點(diǎn)編號(hào)進(jìn)行更新(s53)。復(fù)制管理處理部a220將與寫(xiě)出到卷a610的數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)且為向卷630的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631退避了的數(shù)據(jù)(冗余數(shù)據(jù))刪除(s54)。
復(fù)制管理處理部a220確認(rèn)是否已處理了所有的更新數(shù)據(jù)(s55)。若已完成所有的更新(退避)數(shù)據(jù)的處理,則復(fù)制管理處理部a220結(jié)束恢復(fù)處理。若沒(méi)有處理完所有的更新數(shù)據(jù),則返回到s52。
圖14是恢復(fù)模式為其他節(jié)點(diǎn)用的退避區(qū)域安裝恢復(fù)模式的情況下的復(fù)制管理處理部220a的處理流程圖的例子。復(fù)制管理處理部220a將其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)所退避的更新(退避)數(shù)據(jù)復(fù)原到本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的非易失性存儲(chǔ)器300上,將位于本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的非易失性存儲(chǔ)器300上的更新(退避)數(shù)據(jù)復(fù)制到本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的易失性存儲(chǔ)器290上之后,執(zhí)行操作。
節(jié)點(diǎn)a200的復(fù)制管理處理部a220將節(jié)點(diǎn)b400向卷630上的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631退避的數(shù)據(jù)(節(jié)點(diǎn)a200的更新數(shù)據(jù))復(fù)原到節(jié)點(diǎn)a200的非易失性存儲(chǔ)器300的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301。此時(shí),在節(jié)點(diǎn)b400中也同樣地將退避數(shù)據(jù)(節(jié)點(diǎn)b400的更新數(shù)據(jù))復(fù)原到非易失性存儲(chǔ)器500上(s60)。復(fù)制管理處理部a220從位于節(jié)點(diǎn)a200的非易失性存儲(chǔ)器300上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301讀出數(shù)據(jù)(節(jié)點(diǎn)a200的更新數(shù)據(jù)),并將其復(fù)制到節(jié)點(diǎn)a200的易失性存儲(chǔ)器290的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291(s61)。以后的s62~s65的處理與圖13的復(fù)制管理處理部a220的s52~s55的處理相同,因此省略說(shuō)明。
圖15是恢復(fù)模式為失效備援恢復(fù)模式的情況下的復(fù)制管理處理部220a的處理流程圖的例子。復(fù)制管理處理部220a將本節(jié)點(diǎn)(節(jié)點(diǎn)a200)所退避的更新(退避)數(shù)據(jù)復(fù)原到本節(jié)點(diǎn)(節(jié)點(diǎn)a200)的非易失性存儲(chǔ)器300后,向其他節(jié)點(diǎn)進(jìn)行失效備援,執(zhí)行操作。
節(jié)點(diǎn)a200的復(fù)制管理處理部a220將節(jié)點(diǎn)a200向卷630上的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631退避了的數(shù)據(jù)(節(jié)點(diǎn)b400的更新數(shù)據(jù))復(fù)原到節(jié)點(diǎn)a200的非易失性存儲(chǔ)器300的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301。此時(shí),在節(jié)點(diǎn)b400中也同樣地將退避數(shù)據(jù)(節(jié)點(diǎn)a200的更新數(shù)據(jù))復(fù)原到非易失性存儲(chǔ)器500上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域501(s70)。
從本節(jié)點(diǎn)(節(jié)點(diǎn)a200)向其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)進(jìn)行失效備援(s71)。另外,從其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)向本節(jié)點(diǎn)(節(jié)點(diǎn)a200)進(jìn)行失效備援。
復(fù)制管理處理部a220從位于節(jié)點(diǎn)a200的非易失性存儲(chǔ)器300上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域301讀出退避數(shù)據(jù)(節(jié)點(diǎn)b400的更新數(shù)據(jù)),并將其復(fù)制到節(jié)點(diǎn)a200的易失性存儲(chǔ)器290的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291(s72)。
復(fù)制管理處理部a220執(zhí)行易失性存儲(chǔ)器290上的本節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域291的退避數(shù)據(jù)(節(jié)點(diǎn)b400的更新數(shù)據(jù))的操作,并向卷b620寫(xiě)出(s73)。復(fù)制管理處理部a220對(duì)位于節(jié)點(diǎn)b400的本節(jié)點(diǎn)靜止點(diǎn)管理表430的最久未寫(xiě)入的靜止點(diǎn)編號(hào)和位于節(jié)點(diǎn)a200的其他節(jié)點(diǎn)靜止點(diǎn)管理表250的最久未寫(xiě)入的靜止點(diǎn)編號(hào)252進(jìn)行更新(s74)。
將與向卷b620寫(xiě)出的數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)且向卷630的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631退避了的數(shù)據(jù)刪除(s75)。此時(shí),在節(jié)點(diǎn)b400中也進(jìn)行同樣的處理,向卷a620寫(xiě)入退避數(shù)據(jù)(節(jié)點(diǎn)a400的更新數(shù)據(jù)),并刪除卷630的非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631的退避數(shù)據(jù)。
確認(rèn)是否已刪除了所有的更新(退避)數(shù)據(jù)(s77)。如果沒(méi)有處理完所有的退避數(shù)據(jù),則返回到s73。如果完成了所有的更新(退避)數(shù)據(jù)的處理,則從本節(jié)點(diǎn)(節(jié)點(diǎn)a200)向其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)進(jìn)行故障恢復(fù)(s78),結(jié)束恢復(fù)處理。另外,也從其他節(jié)點(diǎn)(節(jié)點(diǎn)b400)向本節(jié)點(diǎn)(節(jié)點(diǎn)a200)進(jìn)行故障恢復(fù)。
實(shí)施例2
圖16是集群為3節(jié)點(diǎn)以上的存儲(chǔ)系統(tǒng)的概略構(gòu)成圖?;緞?dòng)作與實(shí)施例1相同,因此,以與實(shí)施例1的不同點(diǎn)為中心進(jìn)行說(shuō)明。
集群構(gòu)成的存儲(chǔ)系統(tǒng)由節(jié)點(diǎn)a204、節(jié)點(diǎn)b404、節(jié)點(diǎn)a及節(jié)點(diǎn)b以外的節(jié)點(diǎn)405構(gòu)成,各節(jié)點(diǎn)的構(gòu)成相同。
圖17及圖18是示出各節(jié)點(diǎn)保存在非易失性存儲(chǔ)器上的其他節(jié)點(diǎn)的數(shù)據(jù)的保存方法的圖。圖17示出了將本節(jié)點(diǎn)以外的所有節(jié)點(diǎn)的易失性存儲(chǔ)器上的數(shù)據(jù)復(fù)制到本節(jié)點(diǎn)的非易失性存儲(chǔ)器上并保存的情況。圖18示出了各節(jié)點(diǎn)復(fù)制一個(gè)節(jié)點(diǎn)的易失性存儲(chǔ)器的數(shù)據(jù)并保存的環(huán)狀的保存方法。
圖19是一部分節(jié)點(diǎn)停止了的情況下的復(fù)制管理處理部的處理流程圖的例子。在實(shí)施例1的雙節(jié)點(diǎn)構(gòu)成的存儲(chǔ)系統(tǒng)中,響應(yīng)于其他節(jié)點(diǎn)的停止,需要本節(jié)點(diǎn)繼續(xù)進(jìn)行處理。在本實(shí)施例的構(gòu)成的存儲(chǔ)系統(tǒng)中,僅在所有其他節(jié)點(diǎn)停止了的情況下需要本節(jié)點(diǎn)單獨(dú)地繼續(xù)進(jìn)行處理。一部分其他節(jié)點(diǎn)停止了的情況在實(shí)施例1和本實(shí)施例中不同。設(shè)本節(jié)點(diǎn)為節(jié)點(diǎn)a204進(jìn)行說(shuō)明。
節(jié)點(diǎn)a204的監(jiān)視部1231檢測(cè)其他節(jié)點(diǎn)的故障。響應(yīng)于其他節(jié)點(diǎn)的故障的檢測(cè),節(jié)點(diǎn)a204的復(fù)制管理處理部參照節(jié)點(diǎn)狀態(tài)管理表280,判定是否存在運(yùn)轉(zhuǎn)中的其他節(jié)點(diǎn)(s15)。若存在運(yùn)轉(zhuǎn)中的其他節(jié)點(diǎn),則復(fù)制管理處理部執(zhí)行實(shí)施例1的其他節(jié)點(diǎn)故障發(fā)生檢測(cè)后的本節(jié)點(diǎn)處理(圖10的s10~s14)。在存在運(yùn)轉(zhuǎn)中的其他節(jié)點(diǎn)的情況下,運(yùn)轉(zhuǎn)中的節(jié)點(diǎn)接手停止中的節(jié)點(diǎn)的處理(s16)。接手方法與實(shí)施例1的其他節(jié)點(diǎn)故障發(fā)生檢測(cè)后的本節(jié)點(diǎn)處理(圖10的s10~s14)相同。
實(shí)施例3
圖20是由文件服務(wù)器和區(qū)塊存儲(chǔ)的多級(jí)構(gòu)成的節(jié)點(diǎn)形成的存儲(chǔ)系統(tǒng)的概略構(gòu)成圖。在此,與實(shí)施例1同樣地說(shuō)明雙節(jié)點(diǎn)構(gòu)成的存儲(chǔ)系統(tǒng),但如實(shí)施例2那樣,3節(jié)點(diǎn)以上的存儲(chǔ)系統(tǒng)也同樣地進(jìn)行動(dòng)作?;緞?dòng)作與實(shí)施例1和實(shí)施例2相同,因此以與它們的不同點(diǎn)為中心進(jìn)行說(shuō)明。
圖20是實(shí)施例1中的節(jié)點(diǎn)將文件服務(wù)器和區(qū)塊存儲(chǔ)連接的構(gòu)成的存儲(chǔ)系統(tǒng)。文件服務(wù)器a201和文件服務(wù)器b401的組合與實(shí)施例1的節(jié)點(diǎn)a200和節(jié)點(diǎn)b400的組合同樣地動(dòng)作。另外,區(qū)塊存儲(chǔ)a202和區(qū)塊存儲(chǔ)b402將來(lái)自文件服務(wù)器的數(shù)據(jù)的更新請(qǐng)求保存到易失性存儲(chǔ)器,之后向其他節(jié)點(diǎn)的非易失性存儲(chǔ)器上的其他節(jié)點(diǎn)數(shù)據(jù)保存區(qū)域保存。包含在更新請(qǐng)求中的更新數(shù)據(jù)與實(shí)施例1同樣,被非同步地寫(xiě)出到存儲(chǔ)裝置。如以上那樣,在區(qū)塊存儲(chǔ)中也與文件服務(wù)器同樣地動(dòng)作。
圖21是存儲(chǔ)系統(tǒng)的硬件構(gòu)成圖。以與實(shí)施例1的硬件構(gòu)成的不同為中心進(jìn)行說(shuō)明。文件存儲(chǔ)a201是從主機(jī)110接收數(shù)據(jù)的更新請(qǐng)求,并寫(xiě)出到區(qū)塊存儲(chǔ)a202或區(qū)塊存儲(chǔ)b402的計(jì)算機(jī)。cpu2010執(zhí)行保存在易失性存儲(chǔ)器2013或非易失性存儲(chǔ)器2014中的處理部。i/f2011在主機(jī)110、集群內(nèi)開(kāi)關(guān)150、文件服務(wù)器b401、區(qū)塊存儲(chǔ)a202、區(qū)塊存儲(chǔ)b402和存儲(chǔ)裝置600等各計(jì)算機(jī)之間收發(fā)數(shù)據(jù)。監(jiān)視部2012檢測(cè)文件服務(wù)器a201及文件服務(wù)器b402、區(qū)塊存儲(chǔ)a202和區(qū)塊存儲(chǔ)b402的狀態(tài)(運(yùn)轉(zhuǎn)中、停止中),并將檢測(cè)到的狀態(tài)保存到節(jié)點(diǎn)狀態(tài)管理表280中。文件服務(wù)器a202的監(jiān)視部2012和文件服務(wù)器b401的監(jiān)視部4012管理彼此的狀態(tài),使用各自具有的節(jié)點(diǎn)狀態(tài)管理表280、480進(jìn)行管理。易失性存儲(chǔ)器2013或非易失性存儲(chǔ)器2014保存用于提供存儲(chǔ)服務(wù)的處理部和表類(lèi)。保存的處理部和表類(lèi)與實(shí)施例相同。
文件服務(wù)器b401為與文件服務(wù)器a201成對(duì)的構(gòu)成。區(qū)塊存儲(chǔ)a202和區(qū)塊存儲(chǔ)b402也為與文件服務(wù)器a201和文件服務(wù)器b202同樣的成對(duì)的構(gòu)成。
管理終端160是根據(jù)需要獲取文件服務(wù)器a201、文件服務(wù)器b401、區(qū)塊存儲(chǔ)a202或區(qū)塊存儲(chǔ)b402的管理信息并進(jìn)行操作的終端,是具有用于與網(wǎng)絡(luò)連接的i/f和用于操作的輸入輸出裝置的計(jì)算機(jī)。
存儲(chǔ)裝置600根據(jù)來(lái)自文件服務(wù)器a201、文件服務(wù)器b401、區(qū)塊存儲(chǔ)a202、區(qū)塊存儲(chǔ)b402、主機(jī)110和管理終端160的指示保存數(shù)據(jù)。因此,存儲(chǔ)裝置600具有用于保存數(shù)據(jù)的單個(gè)/多個(gè)卷640。另外,具有在斷電等故障發(fā)生時(shí)供包含文件服務(wù)器a201、文件服務(wù)器b401、區(qū)塊存儲(chǔ)a202和區(qū)塊存儲(chǔ)b402的非易失性存儲(chǔ)器上的表在內(nèi)的各種數(shù)據(jù)退避的卷630、以及非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631。
實(shí)施例4
本實(shí)施例示出在實(shí)施例1~3的構(gòu)成中非易失性存儲(chǔ)器不是電池備份的易失性存儲(chǔ)器的情況?;緞?dòng)作與實(shí)施例1~3相同因此省略,僅說(shuō)明不同點(diǎn)。在本實(shí)施例中,由于在非易失性存儲(chǔ)器上持續(xù)留有更新數(shù)據(jù),因此圖4的故障發(fā)生時(shí)不需要進(jìn)行向非易失性存儲(chǔ)器數(shù)據(jù)退避區(qū)域631的退避處理。而且,單節(jié)點(diǎn)故障時(shí)不會(huì)形成如圖9和圖10那樣基于電池保護(hù)區(qū)域增加的非易失性存儲(chǔ)器增加。因此,若因節(jié)點(diǎn)故障而產(chǎn)生向其他節(jié)點(diǎn)的失效備援,則其存儲(chǔ)服務(wù)處理部b410和復(fù)制管理處理部b420始終以直接寫(xiě)入模式動(dòng)作。根據(jù)以上實(shí)施方式,構(gòu)成集群的各節(jié)點(diǎn)只要具有保存其他節(jié)點(diǎn)的數(shù)據(jù)的非易失性存儲(chǔ)器即可。另外,在非易失性存儲(chǔ)器對(duì)易失性存儲(chǔ)器進(jìn)行了電池備份的情況下,能夠減小電池容量。
附圖標(biāo)記說(shuō)明
100:集群、200:節(jié)點(diǎn)a、290:易失性存儲(chǔ)器、300:非易失性存儲(chǔ)器、400:節(jié)點(diǎn)b、490:易失性存儲(chǔ)器、500:非易失性存儲(chǔ)器、600:存儲(chǔ)裝置、700:電池、710:故障檢測(cè)部。