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