專利名稱:數(shù)據(jù)存儲(chǔ)系統(tǒng)及其備份方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種數(shù)據(jù)存儲(chǔ)系統(tǒng)及其數(shù)據(jù)備份方法,且特別是有關(guān)于一種能進(jìn) 行非實(shí)時(shí)備份(non-real time backup)的數(shù)據(jù)存儲(chǔ)系統(tǒng)及其數(shù)據(jù)備份方法。
背景技術(shù):
在信息爆炸的現(xiàn)代化社會(huì),重要數(shù)據(jù)或信息能否被妥善保存正受到重視。具有備 份功能以確保數(shù)據(jù)得以完整保留的數(shù)據(jù)存儲(chǔ)系統(tǒng)則受到消費(fèi)者的青睞。然而,通常具備份功能的傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng)需要至少兩個(gè)獨(dú)立存儲(chǔ)裝置(比如硬 盤),其中一個(gè)存儲(chǔ)裝置用以存儲(chǔ)原始數(shù)據(jù),而另一個(gè)存儲(chǔ)裝置用以存儲(chǔ)備份數(shù)據(jù)。故而,具 備份功能的傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng)的成本通常較高。此外,具有備份功能的傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng) 雖可對(duì)數(shù)據(jù)備份,但其備份方式是將所有原始數(shù)據(jù)都備份(不論其是否屬于重要數(shù)據(jù)),使 得存儲(chǔ)裝置的使用率變低。又,傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng)是采用實(shí)時(shí)備份模式進(jìn)行備份(亦即同 時(shí)存儲(chǔ)原始數(shù)據(jù)以及備份數(shù)據(jù)),如此影響了傳統(tǒng)數(shù)據(jù)存儲(chǔ)系統(tǒng)的傳輸效能。因此,如何有效的降低成本、不影響其效能、提高使用率及普適性實(shí)為目前迫切需 要研發(fā)之一方向。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出一種數(shù)據(jù)存儲(chǔ)系統(tǒng)及其備份方法,其只需要一個(gè)獨(dú)立存儲(chǔ) 裝置即可達(dá)成備份功能,故可有效降低成本。本發(fā)明提出一種數(shù)據(jù)存儲(chǔ)系統(tǒng)及其備份方法,其中,使用者可彈性地設(shè)定用以存 儲(chǔ)備份數(shù)據(jù)的數(shù)據(jù)備份區(qū)塊的大小,以提升使用率。本發(fā)明提出一種數(shù)據(jù)存儲(chǔ)系統(tǒng)及其備份方法,其中,使用者更可依據(jù)數(shù)據(jù)的重要 性而決定是否要備份數(shù)據(jù),以提高使用率。本發(fā)明提出一種數(shù)據(jù)存儲(chǔ)系統(tǒng)及其備份方法,其中,透過非實(shí)時(shí)備份,可避免降低 數(shù)據(jù)存儲(chǔ)效能。根據(jù)本發(fā)明的一方面,提出一種數(shù)據(jù)存儲(chǔ)系統(tǒng),包括存儲(chǔ)裝置及存儲(chǔ)控制器。存儲(chǔ) 控制器耦接至存儲(chǔ)裝置,存儲(chǔ)控制器用以分割存儲(chǔ)裝置為主數(shù)據(jù)區(qū)塊與備份數(shù)據(jù)區(qū)塊,并 設(shè)定數(shù)據(jù)存儲(chǔ)系統(tǒng)操作于實(shí)時(shí)備份模式與非實(shí)時(shí)備份模式之一。其中,在非實(shí)時(shí)備份模式 下,當(dāng)數(shù)據(jù)存儲(chǔ)系統(tǒng)處于閑置時(shí),存儲(chǔ)控制器將主數(shù)據(jù)區(qū)塊內(nèi)的數(shù)據(jù)備份至備份數(shù)據(jù)區(qū)塊。根據(jù)本發(fā)明的另一方面,提出一種備份方法,適用于數(shù)據(jù)存儲(chǔ)系統(tǒng)。備份方法包括 下列步驟。分割數(shù)據(jù)存儲(chǔ)系統(tǒng)的存儲(chǔ)裝置為主數(shù)據(jù)區(qū)塊與備份數(shù)據(jù)區(qū)塊。設(shè)定數(shù)據(jù)存儲(chǔ)系 統(tǒng)操作于實(shí)時(shí)備份模式與非實(shí)時(shí)備份模式之一。在數(shù)據(jù)存儲(chǔ)系統(tǒng)操作于非實(shí)時(shí)備份模式 下,當(dāng)數(shù)據(jù)存儲(chǔ)系統(tǒng)處于閑置時(shí),將主數(shù)據(jù)區(qū)塊內(nèi)之?dāng)?shù)據(jù)備份至備份數(shù)據(jù)區(qū)塊。為讓本發(fā)明的上述內(nèi)容能更明顯易懂,下文特舉一較佳實(shí)施例,并配合所附圖式, 作詳細(xì)說明如下
圖1繪示是本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)系統(tǒng)的方塊圖。圖2繪示是數(shù)據(jù)存儲(chǔ)系統(tǒng)的存儲(chǔ)裝置的分割示意圖。圖3A及3B繪示是本發(fā)明實(shí)施例的數(shù)據(jù)備份流程圖。圖4繪示是圖1的步驟S106的詳細(xì)流程圖。圖5繪示是圖1的讀取服務(wù)請(qǐng)求(步驟S142)的詳細(xì)流程圖。主要組件符號(hào)說明10:存儲(chǔ)裝置12:主數(shù)據(jù)區(qū)塊13、14:主數(shù)據(jù)子區(qū)塊16:備份數(shù)據(jù)區(qū)塊50 計(jì)算機(jī)100 數(shù)據(jù)存儲(chǔ)系統(tǒng)S102 S142、S202 S216、S302 S324 步驟
具體實(shí)施例方式請(qǐng)參照?qǐng)D1,圖1繪示本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)系統(tǒng)的方塊圖。數(shù)據(jù)存儲(chǔ)系統(tǒng)100 包括存儲(chǔ)裝置10及存儲(chǔ)控制器30。計(jì)算機(jī)50連接至數(shù)據(jù)存儲(chǔ)系統(tǒng)100 ;且計(jì)算機(jī)50送出 原始數(shù)據(jù)與服務(wù)請(qǐng)求給數(shù)據(jù)存儲(chǔ)系統(tǒng)100。在存儲(chǔ)控制器30的控制下,由計(jì)算機(jī)50所送出 的原始數(shù)據(jù)會(huì)存儲(chǔ)于存儲(chǔ)裝置10之中。存儲(chǔ)裝置10比如硬盤等。圖2繪示圖1的數(shù)據(jù)存儲(chǔ)系統(tǒng)100的存儲(chǔ)裝置10的分割示意圖。在存儲(chǔ)控制器 30的控制下,存儲(chǔ)裝置10可被分割成主數(shù)據(jù)區(qū)塊12及備份數(shù)據(jù)區(qū)塊16。其中,存儲(chǔ)控制 器30依據(jù)使用者以N 1比例分割主數(shù)據(jù)區(qū)塊12及備份數(shù)據(jù)區(qū)塊16的大小。更甚者, 在存儲(chǔ)控制器30的控制下,主數(shù)據(jù)區(qū)塊12可被分割成主數(shù)據(jù)子區(qū)塊13及主數(shù)據(jù)子區(qū)塊 14。其中,存儲(chǔ)控制器30依據(jù)備份數(shù)據(jù)區(qū)塊16之大小與起始地址決定主數(shù)據(jù)子區(qū)塊13及 主數(shù)據(jù)子區(qū)塊14的大小與起始地址,且備份數(shù)據(jù)區(qū)塊16與主數(shù)據(jù)子區(qū)塊14的大小實(shí)質(zhì)上 相同。存儲(chǔ)在主數(shù)據(jù)子區(qū)塊13內(nèi)的原始數(shù)據(jù)是不需被備份的,亦即主數(shù)據(jù)子區(qū)塊13用 以存儲(chǔ)不需備份的使用者數(shù)據(jù)。另一方面,存儲(chǔ)在主數(shù)據(jù)子區(qū)塊14內(nèi)的原始數(shù)據(jù)是需被備 份的,亦即主數(shù)據(jù)子區(qū)塊14用以存儲(chǔ)需備份的使用者數(shù)據(jù)。主數(shù)據(jù)子區(qū)塊14與備份數(shù)據(jù) 區(qū)塊16的大小實(shí)質(zhì)上相同。備份數(shù)據(jù)區(qū)塊16用以存儲(chǔ)對(duì)主數(shù)據(jù)子區(qū)塊14內(nèi)的數(shù)據(jù)備份 后所得的備份數(shù)據(jù)。存儲(chǔ)控制器30用以判斷計(jì)算機(jī)50傳送給數(shù)據(jù)存儲(chǔ)系統(tǒng)100的服務(wù)請(qǐng)求。服務(wù)請(qǐng) 求包括讀取服務(wù)請(qǐng)求、寫入服務(wù)請(qǐng)求等等。存儲(chǔ)控制器30判斷是否進(jìn)行數(shù)據(jù)備份。此外, 當(dāng)要進(jìn)行數(shù)據(jù)備份時(shí),存儲(chǔ)控制器30依據(jù)使用者設(shè)定的備份模式進(jìn)行數(shù)據(jù)備份。備份模式 包括實(shí)時(shí)備份模式或非實(shí)時(shí)備份模式。在實(shí)時(shí)備份模式下,當(dāng)計(jì)算機(jī)50傳送數(shù)據(jù)至主數(shù) 據(jù)子區(qū)塊14時(shí),存儲(chǔ)控制器30實(shí)時(shí)將此數(shù)據(jù)復(fù)制至數(shù)據(jù)備份區(qū)塊16。在非實(shí)時(shí)備份模式 下,在計(jì)算機(jī)50傳送數(shù)據(jù)至主數(shù)據(jù)子區(qū)塊14后,在數(shù)據(jù)存儲(chǔ)系統(tǒng)100閑置時(shí),存儲(chǔ)控制器 30才會(huì)復(fù)制(備份)此數(shù)據(jù)至數(shù)據(jù)備份區(qū)塊16。
在實(shí)時(shí)備份模式下,在進(jìn)行數(shù)據(jù)備份時(shí),將影響數(shù)據(jù)存儲(chǔ)系統(tǒng)100的寫入效率。相 反地,在非實(shí)時(shí)備份模式下,在計(jì)算機(jī)50閑置時(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)100才會(huì)對(duì)需要備份的數(shù)據(jù) 進(jìn)行備份;當(dāng)計(jì)算機(jī)50發(fā)出服務(wù)請(qǐng)求時(shí),則暫時(shí)停止備份,以等待數(shù)據(jù)存儲(chǔ)系統(tǒng)100執(zhí)行完 計(jì)算機(jī)50的服務(wù)請(qǐng)求后,才繼續(xù)進(jìn)行備份。因此,數(shù)據(jù)存儲(chǔ)系統(tǒng)100于進(jìn)行備份時(shí)并不影 響計(jì)算機(jī)50的寫入效率。下面將說明本實(shí)施例如何進(jìn)行備份。請(qǐng)同時(shí)參照?qǐng)D1、圖2及圖3A,圖3A繪示本 發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)備份流程圖。首先,在步驟S100中,分割存儲(chǔ)裝置為主數(shù)據(jù)區(qū)塊12與備份數(shù)據(jù)區(qū)塊16。使用者 決定數(shù)據(jù)存儲(chǔ)系統(tǒng)100執(zhí)行實(shí)時(shí)備份模式或非實(shí)時(shí)備份模式。在步驟S102中,存儲(chǔ)控制器30判斷數(shù)據(jù)存儲(chǔ)系統(tǒng)100目前是否閑置。若閑置,則 流程接續(xù)至步驟S104 ;否則,流程接續(xù)至步驟S108。在步驟S104中,存儲(chǔ)控制器30判斷數(shù)據(jù)存儲(chǔ)系統(tǒng)100是否處于實(shí)時(shí)備份模式、非 實(shí)時(shí)備份程序是否完成以及主數(shù)據(jù)子區(qū)塊14是否關(guān)閉。若三者皆為否,則流程接續(xù)至步驟 S106 ;若三者之一為是,則流程跳回至步驟S102。在步驟S106中,存儲(chǔ)控制器30執(zhí)行非實(shí)時(shí)備份程序。當(dāng)數(shù)據(jù)存儲(chǔ)系統(tǒng)100為閑 置且設(shè)定為非實(shí)時(shí)備份模式時(shí),若非實(shí)時(shí)備份程序尚未完成(亦即,非實(shí)時(shí)備份程序完成 旗標(biāo)未被設(shè)定)與主數(shù)據(jù)區(qū)塊未被關(guān)閉(亦即,主數(shù)據(jù)區(qū)塊關(guān)閉旗標(biāo)未被設(shè)定),則存儲(chǔ)控 制器30可以執(zhí)行非實(shí)時(shí)備份程序。換言之,若其中一個(gè)旗標(biāo)被設(shè)定,則不會(huì)執(zhí)行非實(shí)時(shí)備 份程序。請(qǐng)參照?qǐng)D4,其繪示步驟S106的詳細(xì)流程圖。步驟106更包括數(shù)個(gè)子步驟S202 S216。首先,在步驟S202中,存儲(chǔ)控制器30讀取目前備份數(shù)據(jù)區(qū)塊地址。在步驟S204中,根據(jù)目前備份數(shù)據(jù)區(qū)塊地址,將主數(shù)據(jù)子區(qū)塊14的數(shù)據(jù)復(fù)制至備 份數(shù)據(jù)區(qū)塊16中。在步驟S206中,存儲(chǔ)控制器30判斷備份數(shù)據(jù)是否成功寫入至備份數(shù)據(jù)區(qū)塊16。 若備份數(shù)據(jù)未成功寫入至備份數(shù)據(jù)區(qū)塊16,則流程接續(xù)至步驟S208。另一方面,若備份數(shù) 據(jù)成功寫入至備份數(shù)據(jù)區(qū)塊16,則流程接續(xù)至步驟S212。由于備份數(shù)據(jù)未成功寫入至備份數(shù)據(jù)區(qū)塊16,這代表備份數(shù)據(jù)區(qū)塊16可能異常 或毀損。所以,在步驟S208中,存儲(chǔ)控制器30發(fā)出備份數(shù)據(jù)區(qū)塊異常通知,以告知使用者。接著,在步驟S210中,由于存儲(chǔ)控制器30認(rèn)定備份數(shù)據(jù)區(qū)塊16為異?;驓p,存 儲(chǔ)控制器30關(guān)閉備份數(shù)據(jù)區(qū)塊16,以避免之后再度試著將備份數(shù)據(jù)寫入至備份數(shù)據(jù)區(qū)塊 16,影響寫入效能。之后,流程跳回至步驟S102。在步驟S212中,存儲(chǔ)控制器30判斷目前備份數(shù)據(jù)區(qū)塊地址是否為備份數(shù)據(jù)區(qū)塊 終止地址。若是,則非實(shí)時(shí)備份程序已完成,故要設(shè)定非實(shí)時(shí)備份完成旗標(biāo),且流程接續(xù)至 步驟S214 ;若否,代表非實(shí)時(shí)備份程序尚未完成,則流程接續(xù)至步驟S216。在步驟S214中,存儲(chǔ)控制器30非實(shí)時(shí)備份已完成,也就是,已設(shè)定非實(shí)時(shí)備份完 成旗標(biāo)。之后,流程跳回至步驟S102。在步驟S216中,遞增目前備份數(shù)據(jù)區(qū)塊地址,以使得當(dāng)數(shù)據(jù)存儲(chǔ)系統(tǒng)100再度處 于閑置時(shí),可以將主數(shù)據(jù)子區(qū)塊14內(nèi)的下一筆數(shù)據(jù)以非實(shí)時(shí)備份方式備份至備份數(shù)據(jù)區(qū) 塊16中。之后,流程跳回至步驟S102,再次確認(rèn)系統(tǒng)100是否處于閑置,以完成非實(shí)時(shí)備份程序?,F(xiàn)請(qǐng)回到圖3A,在步驟S108中,存儲(chǔ)控制器30判斷接收寫入服務(wù)請(qǐng)求或讀取服 務(wù)請(qǐng)求。當(dāng)存儲(chǔ)控制器30接收到計(jì)算機(jī)50所傳來的服務(wù)請(qǐng)求時(shí),存儲(chǔ)控制器30會(huì)判斷是 寫入服務(wù)請(qǐng)求或讀取服務(wù)請(qǐng)求。若存儲(chǔ)控制器30接收寫入服務(wù)請(qǐng)求,則執(zhí)行步驟S110 S140,以將數(shù)據(jù)寫入至主數(shù)據(jù)子區(qū)塊13 (如果這筆數(shù)據(jù)不需備份)、主數(shù)據(jù)子區(qū)塊14 (如果 這筆數(shù)據(jù)需要備份)或備份數(shù)據(jù)區(qū)塊16。若存儲(chǔ)控制器30接收到讀取服務(wù)請(qǐng)求,則執(zhí)行步 驟 S142。在步驟S110中,存儲(chǔ)控制器30判斷寫入數(shù)據(jù)是否需要備份且判斷備份數(shù)據(jù)區(qū)塊 16是否正常。若寫入數(shù)據(jù)不需要備份,或者備份數(shù)據(jù)區(qū)塊16不正常,則執(zhí)行步驟S112 S116,以將數(shù)據(jù)寫入主數(shù)據(jù)子塊13中。若寫入數(shù)據(jù)需要備份且備份數(shù)據(jù)區(qū)塊16正常,則執(zhí) 行步驟S118 S122,以將需要備份的數(shù)據(jù)寫入至備份數(shù)據(jù)區(qū)塊16中。在步驟S112中,存儲(chǔ)控制器30將數(shù)據(jù)寫入至主數(shù)據(jù)子區(qū)塊13。在步驟S114中,存儲(chǔ)控制器30判斷數(shù)據(jù)是否成功寫入至主數(shù)據(jù)子區(qū)塊13。若未 成功,則執(zhí)行步驟S116,若成功,則流程跳回至步驟S102。在步驟S116中,存儲(chǔ)控制器30發(fā)出存儲(chǔ)裝置毀損通知。在步驟S118中,存儲(chǔ)控制器30判斷主數(shù)據(jù)子區(qū)塊14是否關(guān)閉(也就是檢查主數(shù) 據(jù)區(qū)塊關(guān)閉旗標(biāo)是否被設(shè)定)。若主數(shù)據(jù)子區(qū)塊14系關(guān)閉(也就是主數(shù)據(jù)區(qū)塊關(guān)閉旗標(biāo)被 設(shè)定),則執(zhí)行步驟S120 S122,以將數(shù)據(jù)寫入備份數(shù)據(jù)區(qū)塊16中。若主數(shù)據(jù)子區(qū)塊14 未關(guān)閉,則執(zhí)行步驟S124 S129,以將數(shù)據(jù)寫入主數(shù)據(jù)子區(qū)塊14中。在步驟S120中,存儲(chǔ)控制器30將數(shù)據(jù)寫入至備份數(shù)據(jù)區(qū)塊16。在步驟S122中,存儲(chǔ)控制器30判斷數(shù)據(jù)是否成功寫入至備份數(shù)據(jù)區(qū)塊16。若數(shù) 據(jù)成功寫入,則流程跳回至步驟S102 ;若數(shù)據(jù)未成功寫入,則發(fā)出存儲(chǔ)裝置毀損通知(步驟 S116)。在步驟S124中,存儲(chǔ)控制器30將數(shù)據(jù)寫入至主數(shù)據(jù)子區(qū)塊14。在步驟S126中,存儲(chǔ)控制器30判斷數(shù)據(jù)是否成功寫入至主數(shù)據(jù)子區(qū)塊14。若數(shù) 據(jù)未成功寫入至主數(shù)據(jù)子區(qū)塊14,則執(zhí)行步驟S128,若數(shù)據(jù)成功寫入至主數(shù)據(jù)子區(qū)塊14, 則執(zhí)行步驟S130。在步驟S128中,存儲(chǔ)控制器30發(fā)出主數(shù)據(jù)區(qū)塊異常通知。此時(shí),若是處于非實(shí)時(shí) 備份模式下,存儲(chǔ)控制器30會(huì)要求計(jì)算機(jī)50重新發(fā)出寫入服務(wù)請(qǐng)求,以試著將數(shù)據(jù)寫入至 備份數(shù)據(jù)區(qū)塊16。在步驟S129中,存儲(chǔ)控制器30關(guān)閉主數(shù)據(jù)子區(qū)塊14。之后,流程回至步驟S102。在步驟S130中,存儲(chǔ)控制器30根據(jù)數(shù)據(jù)的寫入地址來決定是否更新目前備份數(shù) 據(jù)區(qū)塊地址。細(xì)言之,存儲(chǔ)控制器30將數(shù)據(jù)的寫入地址與目前備份數(shù)據(jù)區(qū)塊地址做比對(duì)。 當(dāng)數(shù)據(jù)的寫入地址小于目前備份數(shù)據(jù)區(qū)塊地址時(shí),存儲(chǔ)控制器30會(huì)將目前備份數(shù)據(jù)區(qū)塊 地址更新為數(shù)據(jù)的寫入地址。若數(shù)據(jù)的寫入地址大于目前備份數(shù)據(jù)區(qū)塊地址,或者,數(shù)據(jù)要 寫入至主數(shù)據(jù)子區(qū)塊13 (也就是,這筆數(shù)據(jù)不需要備份),則存儲(chǔ)控制器30不會(huì)更改目前備 份數(shù)據(jù)區(qū)塊地址,而將數(shù)據(jù)直接寫入主數(shù)據(jù)子區(qū)塊13。在步驟S132中,存儲(chǔ)控制器30判斷數(shù)據(jù)存儲(chǔ)系統(tǒng)100是否為實(shí)時(shí)備份模式。若 否,則流程跳回至步驟S102,若為實(shí)時(shí)備份模式,則執(zhí)行步驟S134 140,以將數(shù)據(jù)寫入備
9份數(shù)據(jù)區(qū)塊16中。在步驟S134中,存儲(chǔ)控制器30將數(shù)據(jù)寫入至備份數(shù)據(jù)區(qū)塊16。在步驟S136中,存儲(chǔ)控制器30判斷數(shù)據(jù)是否成功寫入至備份數(shù)據(jù)區(qū)塊16。若數(shù) 據(jù)成功寫入至備份數(shù)據(jù)區(qū)塊16,則流程跳回至步驟S102。若寫入數(shù)據(jù)未成功寫入至備份數(shù) 據(jù)區(qū)塊16,則執(zhí)行步驟S138。在步驟S138中,存儲(chǔ)控制器30發(fā)出備份數(shù)據(jù)區(qū)塊異常通知,以告知使用者。此時(shí), 數(shù)據(jù)存儲(chǔ)系統(tǒng)100將不再具備數(shù)據(jù)備份的能力。在步驟S140中,存儲(chǔ)控制器30關(guān)閉備份數(shù)據(jù)區(qū)塊16,之后,流程跳回至步驟 S102。在步驟S142中,存儲(chǔ)控制器30執(zhí)行讀取服務(wù)請(qǐng)求。另外,在本實(shí)施例中,如果主數(shù)據(jù)區(qū)塊12或是備份數(shù)據(jù)區(qū)塊16被關(guān)閉的話,使用 者最好盡快對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)100進(jìn)行替換并將數(shù)據(jù)存儲(chǔ)系統(tǒng)100內(nèi)的數(shù)據(jù)備份至另一系統(tǒng) 100。也就是,不要等到主數(shù)據(jù)區(qū)塊12與備份數(shù)據(jù)區(qū)塊16皆被關(guān)閉時(shí),才對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng) 100替換與備份其內(nèi)部數(shù)據(jù)。請(qǐng)參照?qǐng)D5,其繪示讀取服務(wù)請(qǐng)求(步驟S142)的詳細(xì)流程圖。步驟S142更包括 數(shù)個(gè)子步驟S302 S324。首先,在步驟S302中,存儲(chǔ)控制器30判斷欲讀取的數(shù)據(jù)是否已 備份。若欲讀取的數(shù)據(jù)未被備份時(shí),則執(zhí)行步驟S304 S308,以從主數(shù)據(jù)子區(qū)塊13中讀 出數(shù)據(jù)。若欲讀取的數(shù)據(jù)已備份,則執(zhí)行步驟S310 S324,以從主數(shù)據(jù)子區(qū)塊14(如果主 數(shù)據(jù)子區(qū)塊14是正常的)或備份數(shù)據(jù)區(qū)塊16 (如果主數(shù)據(jù)子區(qū)塊14是異常的)中讀出數(shù) 據(jù)。在步驟S304中,存儲(chǔ)控制器30讀取主數(shù)據(jù)子區(qū)塊13。在步驟S306中,存儲(chǔ)控制器30判斷讀取主數(shù)據(jù)子區(qū)塊13是否成功。若讀取成功, 則流程回至第3A圖的步驟S102。若讀取未成功,則執(zhí)行步驟S308。在步驟S308中,存儲(chǔ)控制器30發(fā)出存儲(chǔ)裝置毀損通知,以告知使用者。在步驟S310中,存儲(chǔ)控制器30判斷主數(shù)據(jù)子區(qū)塊14是否關(guān)閉(也就是檢查主數(shù) 據(jù)區(qū)塊關(guān)閉旗標(biāo)是否被設(shè)定)。若主數(shù)據(jù)子區(qū)塊14系關(guān)閉(也就是主數(shù)據(jù)區(qū)塊關(guān)閉旗標(biāo)被 設(shè)定),則執(zhí)行步驟S312 ;反之,若主數(shù)據(jù)子區(qū)塊14未關(guān)閉,則執(zhí)行步驟S318。在步驟S312中,存儲(chǔ)控制器30讀取備份數(shù)據(jù)區(qū)塊16。在步驟S314中,存儲(chǔ)控制器30判斷讀取備份數(shù)據(jù)區(qū)塊16是否成功。若讀取備份 數(shù)據(jù)區(qū)塊16成功,則流程跳回至第3圖的步驟S102 ;若讀取備份數(shù)據(jù)區(qū)塊16未成功,則執(zhí) 行步驟S316。在步驟S316中,存儲(chǔ)控制器30發(fā)出存儲(chǔ)裝置毀損通知,以告知使用者。在步驟S318中,存儲(chǔ)控制器30讀取主數(shù)據(jù)子區(qū)塊14。在步驟S320中,存儲(chǔ)控制器30判斷讀取主數(shù)據(jù)子區(qū)塊14是否成功。若成功,則 流程跳回至圖3的步驟S102。若未成功,則執(zhí)行步驟S322。在步驟S322中,存儲(chǔ)控制器30關(guān)閉主數(shù)據(jù)子區(qū)塊14 (也就是存儲(chǔ)控制器30會(huì)設(shè) 定主數(shù)據(jù)區(qū)塊關(guān)閉旗標(biāo))。在步驟S324中,存儲(chǔ)控制器30發(fā)出主數(shù)據(jù)區(qū)塊異常通知,在發(fā)出異常通知之后, 流程跳回至步驟S102。此時(shí),存儲(chǔ)控制器30會(huì)要求計(jì)算機(jī)50重新發(fā)出讀取服務(wù)請(qǐng)求,以試著從備份數(shù)據(jù)區(qū)塊16讀出數(shù)據(jù)。如果從備份數(shù)據(jù)區(qū)塊16讀出數(shù)據(jù)也失敗,則存儲(chǔ)控制器 30將發(fā)出存儲(chǔ)裝置毀損通知。本發(fā)明實(shí)施例的數(shù)據(jù)存儲(chǔ)系統(tǒng)及其備份方法的功效如下(1)數(shù)據(jù)存儲(chǔ)系統(tǒng)只需具有單一存儲(chǔ)裝置(比如硬盤)即可進(jìn)行數(shù)據(jù)備份,以使得 數(shù)據(jù)存儲(chǔ)系統(tǒng)可降低其成本。(2)由使用者決定存儲(chǔ)裝置的主數(shù)據(jù)區(qū)塊與備份數(shù)據(jù)區(qū)塊的大小,以提升存儲(chǔ)裝 置的使用率。(3)使用者可依據(jù)數(shù)據(jù)的重要性決定是否進(jìn)行備份,并可選擇數(shù)據(jù)的備份模式 (非實(shí)時(shí)或?qū)崟r(shí)備份模式)以進(jìn)行備份。相較于習(xí)知的實(shí)時(shí)備份模式,本發(fā)明實(shí)施例的數(shù)據(jù) 存儲(chǔ)系統(tǒng)若以非實(shí)時(shí)備份模式進(jìn)行備份時(shí),其不會(huì)影響數(shù)據(jù)存儲(chǔ)系統(tǒng)的寫入效率。綜上所述,雖然本發(fā)明已以實(shí)施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所 屬技術(shù)領(lǐng)域中具有通常知識(shí)者,在不脫離本發(fā)明之精神和范圍內(nèi),當(dāng)可作各種之更動(dòng)與潤(rùn) 飾。因此,本發(fā)明之保護(hù)范圍當(dāng)視后附之權(quán)利要求書所界定者為準(zhǔn)。
1權(quán)利要求
一種數(shù)據(jù)備份方法,適用于數(shù)據(jù)存儲(chǔ)系統(tǒng),該數(shù)據(jù)備份方法包括分割該數(shù)據(jù)存儲(chǔ)系統(tǒng)的存儲(chǔ)裝置為一主數(shù)據(jù)區(qū)塊與一備份數(shù)據(jù)區(qū)塊;設(shè)定該數(shù)據(jù)存儲(chǔ)系統(tǒng)操作于一實(shí)時(shí)備份模式與一非實(shí)時(shí)備份模式之一;以及在該數(shù)據(jù)存儲(chǔ)系統(tǒng)操作于該非實(shí)時(shí)備份模式下,當(dāng)該數(shù)據(jù)存儲(chǔ)系統(tǒng)處于閑置時(shí),將該主數(shù)據(jù)區(qū)塊內(nèi)的數(shù)據(jù)備份至該備份數(shù)據(jù)區(qū)塊。
2.如權(quán)利要求1所述的數(shù)據(jù)備份方法,更包括 分割該主數(shù)據(jù)區(qū)塊為第一主數(shù)據(jù)子區(qū)塊與第二主數(shù)據(jù)子區(qū)塊,其中,存儲(chǔ)于該第一主 數(shù)據(jù)子區(qū)塊內(nèi)的數(shù)據(jù)不需備份至該備份數(shù)據(jù)區(qū)塊,而存儲(chǔ)于該第二主數(shù)據(jù)子區(qū)塊內(nèi)的數(shù)據(jù) 需備份至該備份數(shù)據(jù)區(qū)塊;當(dāng)該數(shù)據(jù)存儲(chǔ)系統(tǒng)閑置時(shí),判斷該數(shù)據(jù)存儲(chǔ)系統(tǒng)是否處于該實(shí)時(shí)備份模式、非實(shí)時(shí)備 份程序是否完成以及該主數(shù)據(jù)區(qū)塊是否關(guān)閉;以及 若否,則執(zhí)行該非實(shí)時(shí)備份程序。
3.如權(quán)利要求2所述的數(shù)據(jù)備份方法,其中,執(zhí)行該非實(shí)時(shí)備份程序之步驟包括 讀取目前備份數(shù)據(jù)區(qū)塊地址;將該第二主數(shù)據(jù)子區(qū)塊的該數(shù)據(jù)復(fù)制至該備份數(shù)據(jù)區(qū)塊;以及 判斷該數(shù)據(jù)是否成功復(fù)制至該備份數(shù)據(jù)區(qū)塊。
4.如權(quán)利要求3所述的數(shù)據(jù)備份方法,其中,當(dāng)該數(shù)據(jù)未成功復(fù)制至該備份數(shù)據(jù)區(qū)塊 時(shí),該方法更包括發(fā)出備份數(shù)據(jù)區(qū)塊異常通知;以及 關(guān)閉該備份數(shù)據(jù)區(qū)塊。
5.如權(quán)利要求3所述的數(shù)據(jù)備份方法,更包括判斷該目前備份數(shù)據(jù)區(qū)塊地址是否為備份數(shù)據(jù)區(qū)塊終止地址; 若是,則代表該非實(shí)時(shí)備份程序已完成;以及 若否,遞增該目前備份區(qū)塊地址。
6.如權(quán)利要求2所述的數(shù)據(jù)備份方法,其中,當(dāng)該數(shù)據(jù)存儲(chǔ)系統(tǒng)非閑置時(shí),該方法更包括;判斷接收到寫入服務(wù)請(qǐng)求或讀取服務(wù)請(qǐng)求;若接收到該寫入服務(wù)請(qǐng)求,則判斷該數(shù)據(jù)是否需要備份且判斷該備份數(shù)據(jù)區(qū)塊是否正常。
7.如權(quán)利要求6所述的數(shù)據(jù)備份方法,其中,當(dāng)該數(shù)據(jù)不需要備份且該備份數(shù)據(jù)區(qū)塊 不正常時(shí),該方法更包括將該數(shù)據(jù)寫入至該第一主數(shù)據(jù)子區(qū)塊;以及當(dāng)該數(shù)據(jù)無法成功寫入至該第一主數(shù)據(jù)子區(qū)塊時(shí),發(fā)出一存儲(chǔ)裝置毀損通知。
8.如權(quán)利要求6所述的數(shù)據(jù)備份方法,其中,當(dāng)該數(shù)據(jù)需要備份且該備份數(shù)據(jù)區(qū)塊為 正常時(shí),該方法更包括;當(dāng)該第二主數(shù)據(jù)子區(qū)塊是關(guān)閉時(shí),將該數(shù)據(jù)寫入至該備份數(shù)據(jù)區(qū)塊;以及 當(dāng)該數(shù)據(jù)無法成功寫入至該備份數(shù)據(jù)區(qū)塊時(shí),發(fā)出一存儲(chǔ)裝置毀損通知。
9.如權(quán)利要求6所述的數(shù)據(jù)備份方法,其中,當(dāng)該第二主數(shù)據(jù)子區(qū)塊不為關(guān)閉時(shí),該方 法更包括將該數(shù)據(jù)寫入至該第二主數(shù)據(jù)子區(qū)塊;以及當(dāng)該數(shù)據(jù)未成功寫入至該第二主數(shù)據(jù)子區(qū)塊時(shí),則發(fā)出一主數(shù)據(jù)區(qū)塊異常通知并關(guān)閉 該主數(shù)據(jù)區(qū)塊。
10.如權(quán)利要求9所述的數(shù)據(jù)備份方法,其中,當(dāng)該數(shù)據(jù)成功寫入至該第二主數(shù)據(jù)子區(qū) 塊時(shí),該方法更包括當(dāng)該數(shù)據(jù)的地址小于該目前備份數(shù)據(jù)區(qū)塊地址時(shí),更新該目前備份數(shù)據(jù)區(qū)塊地址為該 數(shù)據(jù)的地址;判斷該數(shù)據(jù)存儲(chǔ)系統(tǒng)是否處于該實(shí)時(shí)備份程序;以及 若是,則將該數(shù)據(jù)寫入該備份數(shù)據(jù)區(qū)塊。
11.如權(quán)利要求8所述的數(shù)據(jù)備份方法,其中,當(dāng)該數(shù)據(jù)未成功寫入至該備份數(shù)據(jù)區(qū)塊 時(shí),該方法包括發(fā)出一備份數(shù)據(jù)區(qū)塊異常通知;以及 關(guān)閉該備份數(shù)據(jù)區(qū)塊。
12.如權(quán)利要求6所述的數(shù)據(jù)備份方法,其中,當(dāng)接收該讀取服務(wù)請(qǐng)求時(shí),該方法更包括當(dāng)欲讀取的數(shù)據(jù)未被備份時(shí),讀取該第一主數(shù)據(jù)子區(qū)塊以及 判斷讀取該第一主數(shù)據(jù)子區(qū)塊是否成功;以及 若否,則發(fā)出一存儲(chǔ)裝置毀損通知。
13.如權(quán)利要求12所述的數(shù)據(jù)備份方法,其中,當(dāng)欲讀取的該數(shù)據(jù)已被備份保護(hù)且該 第二主數(shù)據(jù)子區(qū)塊是關(guān)閉時(shí),該方法更包括讀取該備份數(shù)據(jù)區(qū)塊;判斷讀取該備份數(shù)據(jù)區(qū)塊是否成功;以及若否,則發(fā)出一存儲(chǔ)裝置毀損通知。
14.如權(quán)利要求12所述的數(shù)據(jù)備份方法,其中,當(dāng)欲讀取的該數(shù)據(jù)已被備份且該第二 主數(shù)據(jù)子區(qū)塊未關(guān)閉時(shí),該方法步驟包括讀取該第二主數(shù)據(jù)子區(qū)塊; 判斷讀取該第二主數(shù)據(jù)區(qū)塊是否成功;若否,關(guān)閉該第二主數(shù)據(jù)區(qū)塊,以及發(fā)出一主數(shù)據(jù)區(qū)塊異常通知。
15.一種數(shù)據(jù)存儲(chǔ)系統(tǒng),包括 存儲(chǔ)裝置;以及存儲(chǔ)控制器,耦接至該存儲(chǔ)裝置,該存儲(chǔ)控制器分割該存儲(chǔ)裝置為一主數(shù)據(jù)區(qū)塊與一 備份數(shù)據(jù)區(qū)塊,并設(shè)定該數(shù)據(jù)存儲(chǔ)系統(tǒng)操作于一實(shí)時(shí)備份模式與一非實(shí)時(shí)備份模式之一;其中,在該非實(shí)時(shí)備份模式下,當(dāng)該數(shù)據(jù)存儲(chǔ)系統(tǒng)處于閑置時(shí),該存儲(chǔ)控制器將該主數(shù) 據(jù)區(qū)塊內(nèi)的數(shù)據(jù)備份至該備份數(shù)據(jù)區(qū)塊。
16.如權(quán)利要求15所述的數(shù)據(jù)存儲(chǔ)裝置,其中,該存儲(chǔ)控制器用以分割該主數(shù)據(jù)區(qū)塊 為第一主數(shù)據(jù)子區(qū)塊與第二主數(shù)據(jù)子區(qū)塊,存儲(chǔ)于該第一主數(shù)據(jù)子區(qū)塊內(nèi)的數(shù)據(jù)不需備份 至該備份數(shù)據(jù)區(qū)塊,而存儲(chǔ)于該第二主數(shù)據(jù)子區(qū)塊內(nèi)的數(shù)據(jù)需備份至該備份數(shù)據(jù)區(qū)塊;當(dāng)該數(shù)據(jù)存儲(chǔ)系統(tǒng)閑置時(shí),判斷該數(shù)據(jù)存儲(chǔ)系統(tǒng)是否處于該實(shí)時(shí)備份模式、非實(shí)時(shí)備 份程序是否完成以及該主數(shù)據(jù)區(qū)塊是否關(guān)閉;以及若否,則執(zhí)行該非實(shí)時(shí)備份程序。
17.如權(quán)利要求16所述的數(shù)據(jù)存儲(chǔ)裝置,其中,在執(zhí)行該非實(shí)時(shí)備份程序時(shí),該存儲(chǔ)控 制器讀取目前備份數(shù)據(jù)區(qū)塊地址,且將該第二主數(shù)據(jù)子區(qū)塊之該數(shù)據(jù)復(fù)制至該備份數(shù)據(jù)區(qū) 塊,以及判斷該數(shù)據(jù)是否成功復(fù)制至該備份數(shù)據(jù)區(qū)塊。
18.如權(quán)利要求17所述的數(shù)據(jù)存儲(chǔ)裝置,其中,當(dāng)該數(shù)據(jù)未成功復(fù)制至該備份數(shù)據(jù)區(qū) 塊時(shí),該存儲(chǔ)控制器發(fā)出備份數(shù)據(jù)區(qū)塊異常通知,并關(guān)閉該備份數(shù)據(jù)區(qū)塊。
19.如權(quán)利要求17所述的數(shù)據(jù)存儲(chǔ)裝置,其中該存儲(chǔ)控制器判斷該目前備份數(shù)據(jù)區(qū)塊地址是否為一備份數(shù)據(jù)區(qū)塊終止地址;若是,該存儲(chǔ)控制器則設(shè)定一非實(shí)時(shí)備份完成旗標(biāo),以代表該非實(shí)時(shí)備份程序已完成;以及若否,該存儲(chǔ)控制器遞增該目前備份區(qū)塊地址。
20.如權(quán)利要求16所述的數(shù)據(jù)存儲(chǔ)裝置,其中在該數(shù)據(jù)存儲(chǔ)系統(tǒng)非閑置時(shí),該存儲(chǔ)控制器判斷接收到寫入服務(wù)請(qǐng)求或讀取服務(wù)請(qǐng) 求;以及若接收到該寫入服務(wù)請(qǐng)求,則該存儲(chǔ)控制器判斷該數(shù)據(jù)是否需要備份且判斷該備份數(shù) 據(jù)區(qū)塊是否正常。
21.如權(quán)利要求20所述的數(shù)據(jù)存儲(chǔ)裝置,其中在該數(shù)據(jù)不需要備份且該備份數(shù)據(jù)區(qū)塊不正常時(shí),該存儲(chǔ)控制器將該數(shù)據(jù)寫入至該第 一主數(shù)據(jù)子區(qū)塊;以及當(dāng)該數(shù)據(jù)無法成功寫入至該第一主數(shù)據(jù)子區(qū)塊時(shí),該存儲(chǔ)控制器發(fā)出一存儲(chǔ)裝置毀損 通知。
22.如權(quán)利要求20所述的數(shù)據(jù)存儲(chǔ)裝置,其中當(dāng)該數(shù)據(jù)需要備份且該備份數(shù)據(jù)區(qū)塊為正常時(shí),若該第二主數(shù)據(jù)子區(qū)塊已被關(guān)閉,該 存儲(chǔ)控制器將該數(shù)據(jù)寫入至該備份數(shù)據(jù)區(qū)塊,當(dāng)該數(shù)據(jù)無法成功寫入至該備份數(shù)據(jù)區(qū)塊 時(shí),該存儲(chǔ)控制器發(fā)出一存儲(chǔ)裝置毀損通知。
23.如權(quán)利要求20所述的數(shù)據(jù)存儲(chǔ)裝置,其中,在該第二主數(shù)據(jù)子區(qū)塊不為關(guān)閉時(shí),該 存儲(chǔ)控制器將該數(shù)據(jù)寫入至該第二主數(shù)據(jù)子區(qū)塊,當(dāng)該數(shù)據(jù)未成功寫入至該第二主數(shù)據(jù)子 區(qū)塊時(shí),該存儲(chǔ)控制器則發(fā)出一主數(shù)據(jù)區(qū)塊異常通知并關(guān)閉該主數(shù)據(jù)區(qū)塊。
24.如權(quán)利要求23所述的數(shù)據(jù)存儲(chǔ)裝置,其中,在該數(shù)據(jù)成功寫入至該第二主數(shù)據(jù)子 區(qū)塊時(shí),當(dāng)該數(shù)據(jù)之一地址小于該目前備份數(shù)據(jù)區(qū)塊地址,該存儲(chǔ)控制器更新該目前備份 數(shù)據(jù)區(qū)塊地址為該數(shù)據(jù)的地址并判斷該數(shù)據(jù)存儲(chǔ)系統(tǒng)是否處于該實(shí)時(shí)備份程序;若是,該 存儲(chǔ)控制器將該數(shù)據(jù)寫入該備份數(shù)據(jù)區(qū)塊。
25.如權(quán)利要求22所述的數(shù)據(jù)存儲(chǔ)裝置,其中,在該數(shù)據(jù)未成功寫入至該備份數(shù)據(jù)區(qū) 塊時(shí),該存儲(chǔ)控制器發(fā)出一備份數(shù)據(jù)區(qū)塊異常通知并關(guān)閉該備份數(shù)據(jù)區(qū)塊。
26.如權(quán)利要求20所述的數(shù)據(jù)存儲(chǔ)裝置,其中在接收該讀取服務(wù)請(qǐng)求時(shí),當(dāng)欲讀取的數(shù)據(jù)未被備份時(shí),該存儲(chǔ)控制器讀取該第一主 數(shù)據(jù)子區(qū)塊,并且判斷讀取該第一主數(shù)據(jù)子區(qū)塊是否成功;以及若否,該存儲(chǔ)控制器發(fā)出一存儲(chǔ)裝置毀損通知。
27.如權(quán)利要求26所述的數(shù)據(jù)存儲(chǔ)裝置,其中在欲讀取的該數(shù)據(jù)已被備份且該第二主數(shù)據(jù)子區(qū)塊是關(guān)閉時(shí),該存儲(chǔ)控制器讀取該備 份數(shù)據(jù)區(qū)塊;該存儲(chǔ)控制器判斷讀取該備份數(shù)據(jù)區(qū)塊是否成功;以及 若否,該存儲(chǔ)控制器發(fā)出一存儲(chǔ)裝置毀損通知。
28.如權(quán)利要求26所述的數(shù)據(jù)存儲(chǔ)裝置,其中在讀取的該數(shù)據(jù)已被備份且該第二主數(shù)據(jù)子區(qū)塊未關(guān)閉時(shí),該存儲(chǔ)控制器讀取該第二 主數(shù)據(jù)子區(qū)塊并且判斷讀取該第二主數(shù)據(jù)子區(qū)塊是否成功;以及若否,該存儲(chǔ)控制器關(guān)閉該第二主數(shù)據(jù)區(qū)塊并發(fā)出一主數(shù)據(jù)區(qū)塊異常通知。
全文摘要
一種數(shù)據(jù)存儲(chǔ)系統(tǒng)及其備份方法。數(shù)據(jù)存儲(chǔ)系統(tǒng)包括存儲(chǔ)裝置及存儲(chǔ)控制器。存儲(chǔ)控制器耦接至存儲(chǔ)裝置,存儲(chǔ)控制器用以分割存儲(chǔ)裝置為主數(shù)據(jù)區(qū)塊與備份數(shù)據(jù)區(qū)塊,并設(shè)定數(shù)據(jù)存儲(chǔ)系統(tǒng)操作于實(shí)時(shí)備份模式與非實(shí)時(shí)備份模式之一。其中,在非實(shí)時(shí)備份模式下,當(dāng)數(shù)據(jù)存儲(chǔ)系統(tǒng)處于閑置時(shí),存儲(chǔ)控制器將主數(shù)據(jù)區(qū)塊內(nèi)的數(shù)據(jù)備份至備份數(shù)據(jù)區(qū)塊。
文檔編號(hào)G06F11/14GK101847110SQ20091013067
公開日2010年9月29日 申請(qǐng)日期2009年3月27日 優(yōu)先權(quán)日2009年3月27日
發(fā)明者劉志文, 陳柏源 申請(qǐng)人:旺玖科技股份有限公司