專利名稱:盤存儲裝置的數(shù)據(jù)更新方法和盤存儲控制裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用了RAID(Redundant Array of Inexpensive Disk廉價盤的冗余陣列)等多臺盤存儲裝置的盤陣列存儲裝置,特別是涉及對盤陣列存儲裝置進(jìn)行數(shù)據(jù)存儲和讀出的方法及其所用的控制裝置。在美國專利第5,124,987號、特開平6-214720和特開平6-266510號所公開的RAID方式的存儲裝置中,作為向存儲裝置高速寫入的方法,提出了一種改寫數(shù)據(jù)的方法,即,不是改寫舊數(shù)據(jù)區(qū),而是將更新的數(shù)據(jù)整理后寫入盤裝置內(nèi)的預(yù)先準(zhǔn)備好的另外的空區(qū)域中,然后,在其后的空閑時間內(nèi)再改寫舊數(shù)據(jù)區(qū)。
使用
圖18簡單地說明上述現(xiàn)有的方法。在圖中,考慮更新已存儲在邏輯塊地址(以下僅稱為邏輯地址)L6、L4、L2、L12、L7、L11內(nèi)的數(shù)據(jù)塊的情況。這些邏輯塊地址L6、L4、L2、L12、L7、L11內(nèi)的舊數(shù)據(jù)存在于3個盤裝置181、182、183內(nèi)的物理塊地址(以下僅稱為物理地址)P6、P4、P2、P12、P7、P11中。首先,應(yīng)更新的新數(shù)據(jù)塊L6數(shù)據(jù)、L4數(shù)據(jù)、L2數(shù)據(jù)、L12數(shù)據(jù)、L7數(shù)據(jù)、L11數(shù)據(jù)通常暫時存儲在由非易失性存儲器構(gòu)成的寫入緩沖存儲器184中。這些數(shù)據(jù)塊不是直接去替換存儲了要更新的舊數(shù)據(jù)的物理塊地址P6、P4、P2、P12、P7、P11的內(nèi)容、即數(shù)據(jù),而是保持舊數(shù)據(jù)不變,將該更新的數(shù)據(jù)塊整理后寫入盤裝置181~183內(nèi)的預(yù)先準(zhǔn)備好的另外的空區(qū)域、即物理地址P51、P52、P53、P54、P55、P56中。該寫入工作是向3個盤裝置181、182、183內(nèi)的連續(xù)物理地址P51-P52、P53-P54、P55-P56寫入的,所以,與直接進(jìn)行替換時需要6次寫入工作相比,減少到實(shí)際上只要3次寫入工作,寫入性能大大提高。
另一方面,在這種現(xiàn)有的盤陣列存儲裝置中,設(shè)有表示數(shù)據(jù)塊與存儲的邏輯地址和物理地址的對應(yīng)關(guān)系的表、即間接映象(map)。在數(shù)據(jù)更新時,如上所述,邏輯地址L6、L4、L2、L12、L7、L11內(nèi)的最新數(shù)據(jù)實(shí)際上是存在于盤裝置內(nèi)的物理地址P51、P52、P53、P54、P55、P56中,所以,改寫間接映象的內(nèi)容使它正確地指向盤上的位置。即,例如,邏輯地址L6內(nèi)的數(shù)據(jù)塊本來必須在盤裝置181內(nèi)的物理地址P6中,但實(shí)際上存儲在物理地址P51內(nèi),所以,將與間接映象175內(nèi)的邏輯地址L6對應(yīng)的物理地址P6改寫成P51。以下,同樣分別將與間接映象185內(nèi)的邏輯地址L4、L2、L12、L7、L11對應(yīng)的物理地址改寫成P52、P53、P54、P55、P56。
此外,因?yàn)樵趯⒋鎯υ诒P陣列存儲裝置中的數(shù)據(jù)讀出時,是求出與間接映象185所指定的邏輯地址對應(yīng)的存儲了最新數(shù)據(jù)塊的物理地址后再讀出的,所以沒有將舊數(shù)據(jù)讀出的危險(xiǎn)。
再有,在圖18所示的例子中,為使說明簡單起見,作為存儲的數(shù)據(jù)塊,對1臺盤裝置只寫入2個塊的數(shù)據(jù),但實(shí)際上要寫入幾十個數(shù)據(jù)塊。
在上述現(xiàn)有的技術(shù)中,因?yàn)槭峭ㄟ^間接映象去管理最新數(shù)據(jù)的位置信息,所以,存在當(dāng)間接映象因故障或誤工作而使其數(shù)據(jù)丟失時盤裝置內(nèi)的全部數(shù)據(jù)便丟失的所謂數(shù)據(jù)安全性問題。此外,因?yàn)楸仨殞θ窟壿媺K準(zhǔn)備間接映象,而且當(dāng)發(fā)生電源故障時還要保持間接映象,所以必需要大容量的非易失性存儲器,因而存在間接映象非常貴的問題。
本發(fā)明是為了解決上述問題而提出的,其目的在于提供一種原理上不需要間接映象、便宜且快速的盤存儲裝置的數(shù)據(jù)更新方法以及盤存儲控制系統(tǒng)。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征在于,具有由N臺盤裝置、根據(jù)主機(jī)的命令向上述N臺盤裝置寫入數(shù)據(jù)或從上述N臺盤裝置讀出數(shù)據(jù)的控制裝置、易失性存儲器和非易失性存儲器構(gòu)成的盤存儲裝置,該易失性存儲器與該控制裝置連接,并包含時間印記(stamp)存儲部和變換映象存儲部,該非易失性存儲器與該控制裝置連接,并包含具有與N×K(整數(shù))個邏輯塊的數(shù)據(jù)相當(dāng)?shù)拇鎯θ萘康膶懭刖彌_存儲部和緩沖管理表存儲部,將應(yīng)更新的邏輯塊的數(shù)據(jù)存儲到上述寫入緩沖器中,直到邏輯塊個數(shù)達(dá)到N×K-1塊為止,同時生成包含這些各邏輯塊的邏輯地址和存儲在時間印記存儲部中的時間印記的邏輯地址標(biāo)記(tag)塊,將它附加在上述N×K-1個邏輯塊上,總共是N×K個邏輯塊,依次將它們連續(xù)地寫入上述N臺盤裝置上的與分別保持上述應(yīng)被更新的數(shù)據(jù)的邏輯地址區(qū)不同的別的空閑地址區(qū)中。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,上述寫入是在橫跨多個盤存儲裝置的條形區(qū)中進(jìn)行寫入。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,每當(dāng)將上述寫入緩沖器中存儲的N×K個邏輯塊寫入上述N臺盤裝置時,使上述時間印記存儲部遞增。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,讀出記錄在上述盤裝置的各條形區(qū)的邏輯地址標(biāo)記塊,通過檢查該邏輯地址標(biāo)記塊檢測出與各邏輯地址對應(yīng)的盤裝置上的物理存儲位置,對檢測出的存儲位置進(jìn)行寫入或讀出。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在上述邏輯地址標(biāo)記塊的檢查中,當(dāng)有多個包含相同邏輯地址的條形區(qū)時,將上述邏輯地址標(biāo)記塊內(nèi)的時間印記是最新的一條邏輯地址塊作為有效塊,把其它條形區(qū)的具有相同邏輯地址的塊判定為無效塊。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在上述邏輯地址標(biāo)記塊的檢查中,尋找最大時間印記值,再生由下一次寫入所附加的時間印記。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在上述邏輯地址標(biāo)記塊的檢查中,尋找最小時間印記值,求出作為寫入順序判定基準(zhǔn)的時間印記值。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,讀出存儲在上述盤存儲裝置中的多個條形區(qū)的邏輯塊的數(shù)據(jù),通過檢查上述邏輯地址標(biāo)記塊,只將各條形區(qū)內(nèi)的有效邏輯塊送到上述寫入緩沖器,生成與這些有效邏輯塊對應(yīng)的新的邏輯地址標(biāo)記塊,將由已送入上述寫入緩沖器的有效數(shù)據(jù)和新生成的邏輯地址標(biāo)記構(gòu)成的1條邏輯決依次寫入與上述讀出的多個條形區(qū)不同的另一個空閑區(qū)域中,由此,在上述盤存儲裝置上形成能夠連續(xù)地寫入邏輯塊的空閑區(qū)域。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在生成上述新的邏輯地址標(biāo)記塊時,當(dāng)有效塊的個數(shù)不到N×K-1個時,對與不存儲新的邏輯地址標(biāo)記塊內(nèi)的數(shù)據(jù)的塊對應(yīng)的邏輯地址設(shè)定無效地址。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在把數(shù)據(jù)寫入上述盤裝置的空閑區(qū)域之后,在啟動上述盤裝置時檢查上述多個條形區(qū)的邏輯地址標(biāo)記塊,據(jù)此,將與判斷為有效的各邏輯地址對應(yīng)的條號、條內(nèi)的塊號和有效數(shù)據(jù)的時間印記記錄到上述變換映象中。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在作成上述變換映象的記錄之后,在向盤裝置進(jìn)行的存取少的時間段內(nèi)讀出各條的邏輯地址標(biāo)記塊并與變換映象進(jìn)行比較修正。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,根據(jù)條對記錄邏輯地址標(biāo)記塊的盤裝置進(jìn)行分散配置,在檢查邏輯地址標(biāo)記塊時,將不同盤裝置的邏輯地址標(biāo)記塊并列地讀出。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,上述邏輯地址標(biāo)記與邏輯塊數(shù)據(jù)一起依次寫入各條形區(qū),同時,還并列地寫入專用標(biāo)記區(qū),在檢查上述邏輯地址標(biāo)記塊時依次讀該專用標(biāo)記區(qū)并進(jìn)行檢查。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,將盤裝置上的存儲區(qū)分割成以多個條為單位的多個段,控制成在一定時間內(nèi)將條的數(shù)據(jù)只能寫入1個段內(nèi),同時,在切換寫入對象段時,將該時刻的上述變換映象的內(nèi)容和切換目標(biāo)段的號碼記錄在盤裝置內(nèi),在作成以后的變換映象時,只檢查上述段切換時的變換映象的內(nèi)容和寫入已記錄在上述盤裝置中的段號碼內(nèi)的條形區(qū)域的邏輯地址標(biāo)記塊。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在上述非易失性存儲器上準(zhǔn)備與上述段內(nèi)的各條對應(yīng)的位映象,在切換寫入對象段時,清除該位映象,在向條形區(qū)寫入數(shù)據(jù)時,將與已寫好的條形區(qū)對應(yīng)的位進(jìn)行置位,在作成變換映象時,只檢查在盤裝置的段切換時的變換映象和已記錄在上述盤裝置的段號的邏輯地址標(biāo)記中已將上述位映象置位的標(biāo)記。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,為了尋找時間印記的最小值,即使對無效塊少的條也定期進(jìn)行讀出,只將有效塊送人上述寫入緩沖器,從對應(yīng)的邏輯標(biāo)記塊的邏輯地址和新的時間印記生成邏輯地址標(biāo)記塊,把由寫入緩沖器的有效數(shù)據(jù)和已生成的邏輯地址標(biāo)記塊構(gòu)成的條依次寫入與保存有已讀出的條的區(qū)域不同的另外的空閑區(qū)中。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,為了尋找時間印記的最小值,對無效塊少的條定期地只讀出邏輯地址標(biāo)記塊,生成附加了已把無效塊的邏輯地址作為NULL地址的新的時間印記的邏輯地址標(biāo)記塊,把在這里生成的邏輯地址標(biāo)記塊寫在已讀出的邏輯地址標(biāo)記塊的上面。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在變換映象作成后,和與盤裝置上的邏輯地址標(biāo)記塊的時間印記對應(yīng)的變換映象的時間印記進(jìn)行比較,判定無效塊。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在由N臺盤裝置構(gòu)成的盤存儲裝置中,備有具有相當(dāng)于(N-1)×K個邏輯塊的容量的寫入緩沖器,把應(yīng)更新數(shù)據(jù)的邏輯塊存儲在該寫入緩沖器中,使該邏輯塊的更新延遲到該已存儲的邏輯塊達(dá)到所選擇的個數(shù),生成由上述寫入緩沖器存儲的各邏輯塊的邏輯地址構(gòu)成的邏輯地址標(biāo)記塊,由在所選擇的個數(shù)的邏輯塊中附加了上述邏輯地址標(biāo)記塊的(N-1)×K個數(shù)據(jù)邏輯塊生成K個奇偶塊,通過連續(xù)的寫入工作將在該數(shù)據(jù)邏輯塊中附加了奇偶塊的N×K個邏輯塊依次寫入N臺盤裝置上的與保存了應(yīng)被更新的數(shù)據(jù)的區(qū)域不同的另外的空閑區(qū)域中。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,使上述選擇的個數(shù)為(N-1)×K-1,以便在1個盤裝置上記錄邏輯地址標(biāo)記塊。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,使上述選擇的個數(shù)為(N-1)×K-2,分配2個邏輯地址標(biāo)記塊,以便用1個奇偶條在2個盤裝置上記錄邏輯地址標(biāo)記塊。
本發(fā)明的盤存儲裝置的數(shù)據(jù)更新方法的特征還在于,在檢查記錄在盤裝置上的邏輯地址標(biāo)記塊方面,除了奇偶條單位的依次寫入之外,還將該邏輯地址標(biāo)記寫入集中了邏輯地址標(biāo)記的專用標(biāo)記區(qū),雖不用奇偶保護(hù)該專用標(biāo)記區(qū)的寫入數(shù)據(jù),但使奇偶條內(nèi)的記錄邏輯地址標(biāo)記的盤裝置與記錄專用標(biāo)記區(qū)的邏輯地址標(biāo)記的盤裝置不同。
本發(fā)明的盤存儲控制裝置的特征在于,具有由N臺盤裝置、根據(jù)主機(jī)的命令向上述N臺盤裝置寫入數(shù)據(jù)或從上述N臺盤裝置讀出數(shù)據(jù)的控制裝置、易失性存儲器和非易失性存儲器構(gòu)成的盤存儲裝置,該易失性存儲器與該控制裝置連接,并包含時間印記存儲部和變換映象存儲部,該非易失性存儲器與該控制裝置連接,并包含具有與N×K(整數(shù))個邏輯塊的數(shù)據(jù)相當(dāng)?shù)拇鎯θ萘康膶懭刖彌_存儲部和緩沖管理表存儲部,將應(yīng)更新的邏輯塊的數(shù)據(jù)存儲到上述寫入緩沖器中,直到邏輯塊個數(shù)達(dá)到N×K-1塊為止,同時生成包含這些各邏輯塊的邏輯地址和存儲在時間印記存儲部中的時間印記的邏輯地址標(biāo)記(tag)塊,將它附加在上述N×K-1個邏輯塊上,總共是N×K個邏輯塊,依次將它們連續(xù)地寫入上述N臺盤裝置上的與分別保持上述應(yīng)被更新的數(shù)據(jù)的邏輯地址區(qū)不同的別的空閑地址區(qū)中。
本發(fā)明的盤存儲控制裝置的特征在于,還具有存儲維持寫入的時間順序的時間印記的易失性存儲器、將應(yīng)寫入到盤裝置上的數(shù)據(jù)變成記錄表格的形式后保存的上述寫入緩沖器和存儲寫入緩沖器內(nèi)的空閑區(qū)域及保存所保存的寫入數(shù)據(jù)的邏輯地址信息的緩沖器管理信息的非易失性存儲器。
本發(fā)明的盤存儲控制裝置的特征在于,還具備由N臺盤裝置構(gòu)成的盤存儲裝置、具有與(N-1)×K個邏輯塊相當(dāng)?shù)娜萘康膶懭刖彌_器和控制裝置,所述控制裝置把應(yīng)更新數(shù)據(jù)的邏輯塊存儲在該寫入緩沖器中,使該邏輯塊的更新延遲到該已存儲的邏輯塊達(dá)到所選擇的個數(shù)為止,生成由對于上述寫入緩沖器中已存儲的各邏輯塊的邏輯地址構(gòu)成的邏輯地址標(biāo)記塊,從在選擇個數(shù)的邏輯塊中附加了上述邏輯地址標(biāo)記塊的(N-1)×K個數(shù)據(jù)邏輯塊生成K個奇偶塊,通過連續(xù)的寫入工作將在該數(shù)據(jù)邏輯塊中附加了奇偶塊的N×K個邏輯塊依次寫入N臺盤裝置上的與保存了應(yīng)被更新的數(shù)據(jù)的區(qū)域不同的另外的空閑區(qū)域中。
本發(fā)明的盤存儲控制裝置的特征還在于,為了采用使用了奇偶檢驗(yàn)的冗余性的盤結(jié)構(gòu)而附加冗余盤裝置,進(jìn)而還具有存儲維持寫入的時間順序的時間印記的易失性存儲器、將應(yīng)寫入到盤裝置上的數(shù)據(jù)變成記錄表格的形式后保存的上述寫入緩沖器和存儲寫入緩沖器內(nèi)的空閑區(qū)域及保存所保存的寫入數(shù)據(jù)的邏輯地址信息的緩沖器管理信息的非易失性存儲器。
通過采用上述結(jié)構(gòu),原則上不需要間接映象,可以構(gòu)筑一種便宜且高速的盤存儲裝置以及盤存儲控制系統(tǒng)。
圖1是表示本發(fā)明的實(shí)施例的框圖。
圖2是為顯示本發(fā)明的實(shí)施例中寫入緩沖器和緩沖器管理信息的關(guān)系所引用的圖。
圖3是表示本發(fā)明的實(shí)施例中盤裝置的空閑區(qū)存儲的內(nèi)容的圖。
圖4是為顯示從主機(jī)寫入1個塊的數(shù)據(jù)的寫入順序所引用的圖。
圖5是表示圖4的例子中條ST1、ST2的邏輯地址標(biāo)記TG1/TG2的內(nèi)容的圖。
圖6是表示將條ST3/ST4統(tǒng)一成1個條ST5的例子的圖。
圖7是表示在進(jìn)行條的統(tǒng)一時從邏輯地址標(biāo)記TG3/TG4作成邏輯地址標(biāo)記TG5的例子的圖。
圖8是表示本發(fā)明的實(shí)施例中使用的變換映象的結(jié)構(gòu)例的圖。
圖9是用于說明系統(tǒng)啟動時變換映象的作成方法的流程圖。
圖10是表示將根據(jù)條分散配置了4臺存儲邏輯地址標(biāo)記的盤裝置的例子的圖。
圖11是表示在段分割中的盤裝置的存儲區(qū)域的分配的圖。
圖12是表示段管理信息的輸入項(xiàng)目結(jié)構(gòu)的圖。
圖13是表示連續(xù)地存儲邏輯地址標(biāo)記的專用標(biāo)記區(qū)的內(nèi)容的圖。
圖14是表示應(yīng)用本發(fā)明而構(gòu)成的基于RAID5的盤裝置的實(shí)施例的框圖。
圖15是表示圖13所示的實(shí)施例的工作原理的圖。
圖16是表示控制成將相同的邏輯地址標(biāo)記寫入2個盤裝置的例子的圖。
圖17是表示為了高速地作成變換映象而分配使用專用標(biāo)記區(qū)的情況的例子的圖。
圖18是表示現(xiàn)有例中實(shí)現(xiàn)數(shù)據(jù)更新方法的系統(tǒng)結(jié)構(gòu)的圖。
圖1使用本發(fā)明構(gòu)成的盤存儲裝置的原理結(jié)構(gòu)圖。本發(fā)明的盤存儲裝控制系統(tǒng)由控制裝置1、盤裝置2、易失性存儲器3和非易失性存儲器4構(gòu)成。盤裝置2由多臺盤存儲裝置構(gòu)成,但在該實(shí)施例中為說明簡單起見,以由4臺21、22、23、24構(gòu)成的盤裝置為例進(jìn)行說明。易失性存儲器3中設(shè)有存儲寫入的時間順序的時間印記區(qū)31和間接映象存儲區(qū)32。非易失性存儲器4中設(shè)有將寫入盤裝置2的數(shù)據(jù)作成記錄表的結(jié)構(gòu)并保存的寫入緩沖區(qū)41和保存寫入緩沖區(qū)41中的空閑區(qū)域及已保存的寫入數(shù)據(jù)的邏輯地址的信息的緩沖器管理表42??刂蒲b置1根據(jù)主機(jī)5來的命令管理這些時間印記區(qū)31、寫入緩沖區(qū)41和緩沖器管理表42,控制向盤裝置2的寫入。
圖2示出分配給非易失性存儲器4的寫入緩沖區(qū)41和緩沖器管理表42的關(guān)系??刂蒲b置1不是直接將與外部連接的主機(jī)所要求的寫入數(shù)據(jù)寫入盤裝置2,而是將它們以塊為單位分割后再順序(以記錄表的形式)存儲到寫入緩沖區(qū)41中。在此,緩沖器管理表41形成由多個輸入項(xiàng)目構(gòu)成的表格,在這些各輸入項(xiàng)目中,與緩沖區(qū)41內(nèi)的各塊位置B0、B1、…B15對應(yīng)地保存應(yīng)寫入的各數(shù)據(jù)塊的從主機(jī)看到的邏輯地址。在緩沖器管理表42內(nèi)的各輸入項(xiàng)目中還設(shè)立標(biāo)志“F”,表示該輸入項(xiàng)目已分配了數(shù)據(jù),對沒有分配數(shù)據(jù)的輸入項(xiàng)目設(shè)立標(biāo)志“U”。
在圖2所示的例子中示出,寫入數(shù)據(jù)存儲在寫入緩沖區(qū)41內(nèi)的到塊位置B7為止的區(qū)域中,B0、B1、…B7的邏輯地址是LA134、LA199、…LA678。
此外,以稱之為條單元的存儲區(qū)為單位(其長度接近于該盤裝置的1個信道(track)的長度即可),對于盤裝置2的各盤存儲裝置21~24進(jìn)行數(shù)據(jù)的寫入,該數(shù)據(jù)的長度相當(dāng)于塊長度的整數(shù)(K)倍、即K個塊的長度。而且,與各盤存儲裝置21~24的物理位置對應(yīng)的條單元整體上作為1個條形區(qū)(ST),也以相同的時序進(jìn)行寫入。
此外,盤裝置2向主機(jī)2呈現(xiàn)的存儲容量比構(gòu)成它的多臺盤裝置21~24加在一起的實(shí)際存儲容量要小,即,當(dāng)主機(jī)5最初詢問存儲容量時,作為回答返回的是較小的容量。因此,除了從主機(jī)5可以進(jìn)行邏輯讀寫的存儲區(qū)域之外,還可確保多余的存儲區(qū)域,即空閑區(qū)域。
進(jìn)而,時間印記31是當(dāng)從主機(jī)5來的寫入數(shù)據(jù)實(shí)際上已寫入盤裝置2時所附加的信息,是為了判定向盤裝置2寫入數(shù)據(jù)的順序而使用的。因此,每當(dāng)寫入緩沖器41的數(shù)據(jù)寫入盤裝置2時,時間印記31就遞增。
下面,參照圖2~圖8詳細(xì)說明圖1所示的本發(fā)明實(shí)施例的工作。
首先,說明寫入工作??刂蒲b置1從主機(jī)5接受應(yīng)寫入的數(shù)據(jù)及其邏輯地址,如圖2所示,將數(shù)據(jù)以塊為單位分割,按順序連續(xù)地存儲到非易失性存儲器4的寫入緩沖區(qū)41的空閑區(qū)域中。再有,在圖2中,依次連續(xù)地寫入到寫入緩沖區(qū)41的相當(dāng)于由B0、B1、…B15形成的15個塊長的空閑區(qū)內(nèi)。
此外,將接受的邏輯地址變換成每個塊的地址,并存儲到與緩沖器管理表42對應(yīng)的輸入項(xiàng)目B0、B1、…B15中。再有,當(dāng)對已存儲到寫入緩沖器41的數(shù)據(jù)進(jìn)行更新時,不是依次存儲到寫入緩沖器41的空閑區(qū),而是直接改變寫入緩沖器41的舊數(shù)據(jù)。
在來自主機(jī)5的寫入數(shù)據(jù)存儲在相對于盤裝置2的1個條(ST)的區(qū)域只少1個塊的數(shù)目的寫入緩沖器41中、即存儲在(4K-1)塊的寫入緩沖器41中時,控制裝置1將這些數(shù)據(jù)寫入盤裝置2。在圖2中,是在存儲于于K=4、即15個塊的寫入緩沖器41中時進(jìn)行對于盤裝置2的寫入。這時,作為最后的寫入塊,根據(jù)存儲在緩沖器管理表42內(nèi)的寫入管理表中的各個塊的邏輯地址和易失性存儲器3上的時間印記31作成圖3所示那樣的邏輯地址標(biāo)記塊LA-TAG。事先在該邏輯地址標(biāo)記塊的地址數(shù)據(jù)和數(shù)據(jù)塊之間設(shè)一一對應(yīng)的關(guān)系,就可以知道各數(shù)據(jù)塊的邏輯地址。
然后,如圖3所示,將附加了該邏輯地址標(biāo)記塊的1個條的數(shù)據(jù)整理后同時寫入盤裝置21~24的空閑區(qū)。在圖3中,盤裝置21~24的1個條(ST)的空閑區(qū)由4個單元條D1~D4表示,圖3示出了寫入各單元條D1~D4區(qū)域內(nèi)的4個數(shù)據(jù)塊的邏輯地址。再有,圖1的時間印記31的值在寫入結(jié)束時加1。這樣,將很多零碎的盤寫入工作歸納成1次寫入,所以大大地提高了盤的寫入性能。
其次,說明數(shù)據(jù)塊的重新裝入處理。作為本發(fā)明的盤寫入方法,不是直接改寫舊的數(shù)據(jù)區(qū),而是將更新的數(shù)據(jù)存起來,歸納后寫入盤裝置2的事先準(zhǔn)備好的另外的空閑區(qū)域中。在這樣的盤寫入方法中,必須始終存在用于將存儲在盤裝置2內(nèi)的數(shù)據(jù)歸納后再寫入的空閑區(qū)。因此,可以在沒有進(jìn)行從主機(jī)5來的盤的存取的空閑時間內(nèi)把已寫入其它區(qū)域而變成無效的數(shù)據(jù)集中起來,作成空閑區(qū)。將該處理稱為重新裝入處理。該重新裝入處理由判定無效塊和條統(tǒng)一兩個步驟構(gòu)成。
作為判定無效塊的例子,考慮有按圖4所示的順序從主機(jī)5寫入1個塊長的數(shù)據(jù)的情況。圖中L××表示從主機(jī)送過來的邏輯地址,S××表示寫入順序。在本發(fā)明的實(shí)施例中,因?qū)懭刖彌_器41保存有15個塊的數(shù)據(jù),將最初S1~S15寫入的數(shù)據(jù)歸納成1個條(ST1),附加時間印記TS1后寫入盤裝置的空閑區(qū)。同樣,S16~S30的寫入數(shù)據(jù)作為另外的條(ST2)并附加時間印記TS2后寫入另外的空閑區(qū)。再有,因每寫入1次時間印記31加1,故存在TS1<TS2的關(guān)系。
這里,由圖可知,邏輯地址L9、L18的數(shù)據(jù)在時間印記為TS1的條中作為S5、S2的塊、在時間印記為TS2的條中作為S19、S21的塊重復(fù)存在。即,存在2個應(yīng)寫入同一邏輯地址L9、L18的數(shù)據(jù)。但是,若考慮寫入數(shù)據(jù)塊的順序,后來寫入的S19、S21的數(shù)據(jù)塊是有效的,因此,S5、S2的數(shù)據(jù)必須判定為無效。
然而,在此為方便而使用的寫入順序S××在實(shí)際的盤上沒有記錄下來。因此,使用附加在各個條中的邏輯地址標(biāo)記進(jìn)行判定。在圖4的例子中,2個條ST1、ST2的邏輯地址標(biāo)記TG1、TG2的內(nèi)容如圖5所示。即,邏輯地址TG1、TG2將各塊的邏輯地址存儲在與寫入到寫入緩沖器41的15個塊B0、B1、…B15對應(yīng)的存儲區(qū)中,在第16號存儲區(qū)內(nèi)分別寫入條ST1、ST2的每一個被寫入時的時間印記TS1、TS2。
由圖可知,2個邏輯地址標(biāo)記TG1、TG2包含相同的邏輯地址L9、L18的數(shù)據(jù),條ST1的塊B5、B2和條ST2的塊B4、B6中的某一個的數(shù)據(jù)為無效數(shù)據(jù)。進(jìn)而,若將邏輯地址標(biāo)記TG1的時間印記TS1與邏輯地址標(biāo)記TG2的時間印記TS2進(jìn)行比較,根據(jù)TS1<TS2的關(guān)系可以判定條ST1的塊B5、B2為無效。如上面說明的那樣,通過調(diào)查盤裝置2的邏輯地址就可以找出無效的數(shù)據(jù)塊。
圖6是表示條統(tǒng)一的例子的圖,示出了將2個條ST3、ST4統(tǒng)一成1個條ST5的情況。在該圖中,對于條ST3,假定B2、B7、B8、B12、B13的5個塊有效,其余10個塊無效(畫陰影線)。同樣,對于條ST4,假定B18、B19、B20、B21、B22、B24、B25、B27、B29的9個塊有效,其余6個塊無效(畫陰影線)。因此,在2個條ST3、ST4中,有效決加起來只有14塊,通過只將這2個條ST3、ST4的有效塊取出來統(tǒng)一變成1個條ST5,結(jié)果作成相當(dāng)于1個條的空閑區(qū)。
條統(tǒng)一的具體方法是,從易失性存儲器3讀出圖6所示的2個條ST3、ST4,只將這2個條ST3、ST4的有效塊取出并將它們連續(xù)地轉(zhuǎn)送到寫入緩沖器41中。與此相應(yīng),邏輯地址標(biāo)記也如圖7所示從TG3、TG4轉(zhuǎn)移到只與有效塊的邏輯地址對應(yīng)的位置上,作成新的邏輯地址標(biāo)記TG5,將這時的時間印記更新為ST5。
在該例中,因只有14個有效塊,故進(jìn)而等待從主機(jī)5供給1個寫入塊,使之湊成1個條,歸納后寫入盤裝置2的空閑區(qū)。這時,雖然有效地利用了盤區(qū)域,但因?yàn)橐却龔闹鳈C(jī)5供給寫入塊,故存在使向盤進(jìn)行的存取集中在一起的危險(xiǎn)。因此,也可在存取的空隙時間按原有的空狀態(tài)寫入最后的數(shù)據(jù)塊。這時,由于通過在與邏輯地址標(biāo)記TG5的最后數(shù)據(jù)塊對應(yīng)的邏輯地址上輸入-1等NULL地址來表示數(shù)據(jù)沒有輸入,所以不成為問題。
其次,說明這樣寫入的數(shù)據(jù)塊的讀出工作。通過對盤裝置2的全部條的邏輯地址標(biāo)記進(jìn)行重新裝入處理的無效塊判定,可以檢測出對全部邏輯地址有效的決的物理位置。因此,從原理上講,通過在從主機(jī)5接受讀出塊的邏輯地址時進(jìn)行全部條的檢查,可以找出應(yīng)讀出的物理塊。但是,該方法在塊讀出時要耗費(fèi)很長的時間,所以不實(shí)用。
因此,只在系統(tǒng)啟動時進(jìn)行全部條的邏輯地址標(biāo)記的調(diào)查,在圖1所示的易失性存儲器3上根據(jù)邏輯地址作成向物理地址變換的映象32。使用該變換映象32對主機(jī)5來的讀出請求進(jìn)行向有效塊的存取。因此,可不對每一個主機(jī)5來的讀出請求都進(jìn)行地址標(biāo)記的調(diào)查,不會大大降低讀出時的性能。此外,該變換映象32無論何時都能通過調(diào)查全部條來再生,所以,不需要象以往的間接映象那樣為了防備電源故障而必須將其存儲在非易失性存儲器中。
在此,使用圖8說明變換映象32。如圖所示,變換映象32以表格的形式保存存儲了相對各邏輯地址L0~Ln的塊的條號ST#、該條內(nèi)的塊號BLK3及其時間印記TS#。因此,若給出邏輯地址LO~Ln,通過檢索該表就可以簡單地從ST#和BLK#求出實(shí)際的物理地址。
此外,關(guān)于系統(tǒng)啟動時變換映象的作成,如圖9的流程圖所示那樣,依次讀出存儲在盤裝置2中的條ST1、ST2、ST3、…的邏輯地址標(biāo)記TG1、TG2、TG3、…(步驟1)。將這樣讀出的邏輯地址標(biāo)記TG1、TG2、TG3、…內(nèi)的各時間印記TS1、TS2、TS3、…取出(步驟2)。進(jìn)而,將讀出的各邏輯地址標(biāo)記TG1、TG2、TG3、…內(nèi)的各邏輯地址LA××依次取出(步驟3)。當(dāng)將與取出的邏輯地址LAn相同的邏輯地址LAn登錄在變換映象32內(nèi)時,將登錄在變換映象32內(nèi)的邏輯地址LAn的時間印記TSn與取出的邏輯地址LAn的時間印記TSm進(jìn)行比較(步驟4)。作為該比較的結(jié)果,當(dāng)取出的邏輯地址LAn的時間印記TSi比登錄在變換映象32內(nèi)的邏輯地址LAn的時間印記TSj新、即TSi大于TSj時,將存儲了已作為登錄在對于邏輯地址LAn的變換映象32內(nèi)的條號ST#取出的邏輯地址LAn的盤裝置2的條號ST#存儲起來,此外,還將存儲了該邏輯地址LAn的條ST#內(nèi)的數(shù)據(jù)塊的位置BLK#存儲起來(步驟5)。進(jìn)而,將已作為對于變換映象32內(nèi)的邏輯地址LAn的時間印記TS#取出的、對于邏輯地址LAn的時間印記TS#存儲起來(步驟6)。作為上述步驟4的比較結(jié)果,當(dāng)取出的邏輯地址LAn的時間印記TSi比登錄在變換映象32內(nèi)的邏輯地址LAn的時間印記TSj舊、即TSi小于TSj時,使對于登錄在變換映象32內(nèi)的邏輯地址LAn的條ST#、數(shù)據(jù)塊的位置BLK#和時間印記TS#的內(nèi)容維持不變,針對已讀出的邏輯地址標(biāo)記內(nèi)的所有的邏輯地址,調(diào)查是否執(zhí)行了同樣的處理(步驟7)。在對全部邏輯地址未執(zhí)行同樣的處理的情況下,返回步驟3,重復(fù)執(zhí)行直到步驟8的處理。在對已讀出的邏輯地址標(biāo)記內(nèi)的所有的邏輯地址已完成同樣的處理的情況下,則接著針對存儲在盤裝置2上的所有的邏輯地址標(biāo)記TG1、TG2、TG3、…,調(diào)查是否已執(zhí)行上述處理(步驟8)。若未完成同樣的處理,則返回步驟3,重復(fù)執(zhí)行直到步驟7的處理。若已完成同樣的處理,則使對于該時刻殘留的邏輯地址的條ST#、數(shù)據(jù)塊的位置BLK#和時間印記TS#的內(nèi)容變成變換映象32的登錄內(nèi)容(步驟9)。
即,對于已取出的邏輯地址標(biāo)記內(nèi)的全部邏輯地址,只有當(dāng)邏輯地址標(biāo)記的時間印記比變換映象32內(nèi)表格的時間印記大時,才將與該條號對應(yīng)的塊號登錄在表格中。若對全部條進(jìn)行該調(diào)查,則可以作成只指示有效塊的變換映象。進(jìn)而,每當(dāng)向盤裝置2寫入條時,通過對該邏輯地址標(biāo)記也進(jìn)行同樣的處理,只將始終有效的塊登錄在該變換映象32上。此外,通過在盤存取的空隙時間內(nèi)將各條的邏輯地址標(biāo)記與變換映象進(jìn)行比較檢查,即使因存儲器故障使該變換映象出現(xiàn)不正確的值,也能夠檢測出來并加以改正。
如上所述,作成變換映象的主要的處理是邏輯地址標(biāo)記的檢查。所以,在象大容量盤裝置那樣邏輯地址標(biāo)記數(shù)多時,作成電源故障和系統(tǒng)啟動時的變換映象需要很長時間。特別是,如圖2所示,當(dāng)邏輯地址標(biāo)記塊集中在1臺盤裝置24上時,在系統(tǒng)啟動時存取工作集中在該盤上進(jìn)行,不能平行地進(jìn)行邏輯地址標(biāo)記的調(diào)查。因此,如圖10所示,通過將根據(jù)條來存儲邏輯地址標(biāo)記的盤裝置分散成4臺平行地進(jìn)行邏輯地址標(biāo)記的調(diào)查,可以使作成該映象的時間縮短到1/4。
此外,通過將盤裝置2的存儲區(qū)域分割成多個段進(jìn)行管理,可以削減作成變換映象所必需的邏輯地址標(biāo)記的檢查個數(shù)。圖11示出段分割方式下盤裝置的存儲區(qū)域的結(jié)構(gòu)。如圖所示,盤裝置的存儲區(qū)域以條為單位被分割成段管理信息部分(陰影部分)和4個段。在此,所謂段是指寫入緩沖器數(shù)據(jù)的一并寫入和重新裝入處理的盤寫入集中在某一時間進(jìn)行的單位區(qū)域。例如,控制空閑區(qū)的選擇,使得在段2是盤寫入的對象的期間內(nèi)不向段1、3、4進(jìn)行寫入。
此外,當(dāng)某段的空閑區(qū)少、將盤寫入切換到其它段時,將段管理信息保存在盤裝置上。段管理信息如圖12所示那樣由段號和切換時的變換映象構(gòu)成。所謂段號是指切換目標(biāo)段的段號碼,所謂切換時的變換映象是指段切換時刻的易失性存儲器3上的變換映象的狀態(tài)。
再有,每當(dāng)段切換時,切換時的變換映象不是全都寫在上面,只要返回寫到當(dāng)前段中已寫入的邏輯地址的輸入項(xiàng)目中即可。因此,通過在上一次段切換時記住時間印記并與變換映象的時間印記比較,就可以判定寫入到當(dāng)前段中的邏輯地址。
在該段分割方式中,在段切換時保存了段管理信息。因此,從段管理信息讀出段切換時的變換映象,然后,只要檢查由段管理信息的段號所指定的段的邏輯地址標(biāo)記,就能夠再現(xiàn)與檢查全部邏輯地址標(biāo)記的情況相同的變換映象。所以,利用該方式所必需的邏輯地址標(biāo)記的檢查數(shù)只要檢查1個段的即可,在本例中作成變換映象所要的時間縮短到1/4。
進(jìn)而,在非易失性存儲器4上準(zhǔn)備好與段內(nèi)全部條對應(yīng)的位映象,在段切換時清除該位映象,在一并寫入和重新裝入時將與已寫入的條對應(yīng)的比特置位成“1”。由此,在段切換之后只是有變化的條的位映象變成“1”。因此,在作成變換映象時,通過參照該位映象、只檢查有變化的條的邏輯地址標(biāo)記,可使檢查數(shù)進(jìn)一步減少,使作成變換映象所要的時間進(jìn)一步縮短。
通常邏輯地址標(biāo)記的長度是512~1024字節(jié)。盤的順序存取和隨機(jī)存取大約有50倍的性能差。在圖2所示的方式中,邏輯地址標(biāo)記的信息對各個條是分散存在的,所以,進(jìn)行的是在變換映象作成時很耗費(fèi)時間的隨機(jī)存取。因此,如圖13所示那樣,準(zhǔn)備了專用標(biāo)記區(qū)(在段分割的情況下,是對每個段準(zhǔn)備的),該標(biāo)記區(qū)只連續(xù)地存儲邏輯地址標(biāo)記,能以高到50倍速度的順序存取來讀出邏輯地址標(biāo)記。
而且,在將主機(jī)來的數(shù)據(jù)一并寫入或重新裝入數(shù)據(jù)的寫入時,不僅將邏輯地址標(biāo)記寫入空閑區(qū)還寫入對應(yīng)的專用標(biāo)記區(qū)。在該方法中,在圖2的方式下,每一個條有4次盤寫入,由于向?qū)S脜^(qū)寫入邏輯地址而增加1次。但是,作成變換映象的速度卻提高了50倍,所以,當(dāng)在盤裝置的建立時間方面出問題時,它是非常有效的方法。為了使向?qū)S脴?biāo)記區(qū)的寫入時間最少,使專用標(biāo)記區(qū)如圖13所示那樣成為對象區(qū)域的中心,減少搜索時間。此外,盤裝置2是以扇區(qū)(512字節(jié)等)為單位寫入的,專用標(biāo)記區(qū)內(nèi)的邏輯地址標(biāo)記沒有必要以扇區(qū)為單位進(jìn)行分配并在邏輯地址標(biāo)記寫入時讀出。
最后,就時間印記進(jìn)行說明。如圖1所示,因時間印記存儲在易失性存儲器3上,故由于電源故障等原因,易失性存儲器3上的時間印記會丟失。因此,與變換映象一樣,只在系統(tǒng)啟動時調(diào)查全部條的邏輯地址標(biāo)記,使最大的時間印記31的下一個值置成易失性存儲器3上的時間印記31。再有,在作成變換映象的說明中所述的縮短時間的方法照樣可以適用于時間印記的再生。
此外,每當(dāng)寫入盤裝置時,時間印記31加1,只在判定盤上的寫入順序時才使用。作為例子,說明時間印記31由24位計(jì)數(shù)器構(gòu)成時的情況。在24位計(jì)數(shù)器中,計(jì)數(shù)器在16M次寫入后完成1個循環(huán)而回到0。因此,一般來說,以有效時間印記的最小值為基準(zhǔn),將比它小的值加16M后進(jìn)行比較判定。該最小值也是一樣,只在系統(tǒng)啟動時才調(diào)查全部條的邏輯地址標(biāo)記并將它求出來。
但是,可以使用該方法的前提是,時間印記的最大值沒有超過最小值,即時間印記最大值和最小值的差是在能用24位表示的范圍內(nèi)。因此,時間印記31必需在1個循環(huán)前更新全部條并重新更新時間印記值。因此,即使無效塊少也控制成將在預(yù)先設(shè)定的寫入次數(shù)間沒有被更新的條作為重新裝入的對象選出,或者只改寫將無效塊的邏輯地址作為NULL(無效)地址的條的邏輯地址標(biāo)記。使用NULL地址的方法因?yàn)槭歉膶戇壿嫷刂窐?biāo)記塊,故與重新裝入相比是非常簡單的處理。
再有,在上述實(shí)施例中,對于無效塊的判定,只說明了將2個條ST1、ST2的邏輯地址標(biāo)記相互比較來進(jìn)行判定的方法,但要調(diào)查全部無效塊則必需調(diào)查2個條之間的全部組合。然而,如果有變換映象,則可以對邏輯地址標(biāo)記內(nèi)的各邏輯地址將指示有效數(shù)據(jù)的變換映象的時間印記與該條的時間印記進(jìn)行比較,將時間印記值小的塊判定為無效塊。
圖1已示出將數(shù)據(jù)分散在多個盤上的RAID0的結(jié)構(gòu),但本發(fā)明的方式也可以適用于使用了奇偶檢驗(yàn)的冗余性盤結(jié)構(gòu)(RAID4、5)的情況。圖14示出使用本發(fā)明構(gòu)成的RAID5結(jié)構(gòu)的盤存儲裝置的原理圖。這是在圖1的結(jié)構(gòu)之上添加了用于賦予冗余性的盤25的結(jié)構(gòu),控制裝置1、盤裝置2(21、22、23、24)、易失性存儲器3、非易失性存儲器4、時間印記31、寫入緩沖器41和緩沖器管理表42具有與圖1所示的實(shí)施例相同的功能。
對于圖14所示的實(shí)施例的工作,著眼于與圖1所示的實(shí)施例的差別進(jìn)行說明。在寫入處理中,在主機(jī)來的寫入數(shù)據(jù)以只比1條少1個塊的數(shù)(K×4-1)存儲于寫入緩沖器時,控制裝置1將這些數(shù)據(jù)寫入盤裝置21~25中。這時,在由作為最后的寫入塊存儲在緩沖器管理表42中的各塊的邏輯地址和易失性存儲器3上的時間印記31作成邏輯地址標(biāo)記塊之前,與圖1所示的實(shí)施例相同。
然后,根據(jù)附加了該邏輯地址標(biāo)記塊的1個條的數(shù)據(jù)進(jìn)行每一個條單元的異或邏輯(XOR)運(yùn)算,作成奇偶性的條單元。而且,將該帶奇偶的條單元的數(shù)據(jù)整理后同時寫入盤裝置21~25的空閑區(qū)內(nèi)。此外,時間印記31的值在寫入結(jié)束時刻加1。這樣,將很多零碎的寫入歸納成1次,而且計(jì)算奇偶性時不必讀出舊數(shù)據(jù)和舊的奇偶性塊,所以,能夠進(jìn)一步減少存取次數(shù)。再有,條的重新裝入處理的數(shù)據(jù)寫入也一樣,在作成帶奇偶的條之后寫入盤裝置2。該狀態(tài)示于圖15。
在奇偶RAID的結(jié)構(gòu)中,即使1臺盤裝置發(fā)生故障,通過計(jì)算發(fā)生故障的盤的數(shù)據(jù)和構(gòu)成條的其他盤的數(shù)據(jù)的奇偶異或(XOR),可以再現(xiàn)發(fā)生故障的盤的數(shù)據(jù),可以繼續(xù)進(jìn)行作為盤存儲裝置的服務(wù)。但是,當(dāng)系統(tǒng)啟動時1個盤發(fā)生故障時,因?yàn)檫€要讀出沒有存儲邏輯地址標(biāo)記的盤裝置的數(shù)據(jù)并在再生邏輯地址標(biāo)記之后進(jìn)行檢查,所以,作成變換映象很費(fèi)時間,大大地增加了系統(tǒng)啟動所需要的時間。
因此,如圖16所示,控制成將構(gòu)成條的數(shù)據(jù)塊減少1個,把相同的邏輯地址標(biāo)記寫入2個盤裝置。由此,即使1個盤裝置發(fā)生故障,因?yàn)樵谧鞒勺儞Q映象時可以讀出另一個盤裝置的邏輯地址標(biāo)記,所以,能夠避免大幅度增加系統(tǒng)啟動所要的時間。
此外,在使用專用標(biāo)記區(qū)來高速地作成變換映象時,如圖17所示那樣,通過控制專用標(biāo)記區(qū)的邏輯地址標(biāo)記的分配以便使專用標(biāo)記區(qū)中存儲邏輯地址標(biāo)記的盤裝置和存儲在條中的盤裝置不同,使條內(nèi)的邏輯地址標(biāo)記只要1個就行了。
再有,在向?qū)S脴?biāo)記區(qū)寫入邏輯地址標(biāo)記時,若利用奇偶校驗(yàn)去對付盤故障,過去增加1次寫入即可,但在這里必需要2次寫入和2次讀出,這樣,大大地增加了一并寫入和條的重新裝入時的額外的盤寫入時間。因此,該專用區(qū)的信息不能用奇偶校驗(yàn)來對付故障。該信息是用于使變換映象高速化,存儲在有故障的盤裝置的專用標(biāo)記區(qū)中的邏輯地址標(biāo)記也可以看作是條中邏輯地址標(biāo)記(隨機(jī)存取時),所以沒有問題。此外,因用隨機(jī)存取檢查的邏輯地址標(biāo)記只有1/5,故對于高速八成變換映象很有效果。
本發(fā)明可以適用于所有的不改寫舊數(shù)據(jù)區(qū)而預(yù)先保存更新數(shù)據(jù)并歸納起來寫入到盤裝置內(nèi)的事先準(zhǔn)備好的另外的空閑區(qū)中的方法是有效的領(lǐng)域。即,主要可以適用于盤裝置和RAID結(jié)構(gòu)的存儲裝置,所述盤裝置不僅包括磁盤還包括在順序?qū)懭牒碗S機(jī)寫入方面性能很不相同的光磁盤等,所述存儲裝置是具有在更新小塊時需要2次讀出和2次寫入的奇偶校驗(yàn)的冗余性的RAID結(jié)構(gòu)的存儲裝置。
如上所述,若按照本發(fā)明,因原理上無論何時都可以再生變換映象,故不必為了防備電源故障而將變換映象保存在非易失性存儲器中。因此,可以構(gòu)筑非常便宜的盤存儲裝置。此外,當(dāng)因硬件故障而使非易失性存儲器中的內(nèi)容丟失時,以往的方法因不能再生變換映象故盤上的數(shù)據(jù)全部丟失,而現(xiàn)在不同,只是保存在寫入緩沖器中的最近的寫入數(shù)據(jù)才丟失,而盤上絕大部分?jǐn)?shù)據(jù)仍然完好地保留下來了。因此,大大地提高了對抗故障的能力。進(jìn)而,因從電源故障恢復(fù)過來的處理和通常的系統(tǒng)啟動處理完全相同,故不需要系統(tǒng)終結(jié)和恢復(fù)時的特別處理,從而降低了開發(fā)成本。
此外,系統(tǒng)啟動時的處理,也因能夠通過將邏輯地址標(biāo)記分散配置在多個盤裝置中、設(shè)置可以順序存取邏輯地址標(biāo)記的專用標(biāo)記區(qū)和對存儲區(qū)的段分割管理等能實(shí)現(xiàn)高速化,故能夠?qū)⑾到y(tǒng)啟動時的等待時間控制在實(shí)際使用時不會發(fā)生問題的范圍內(nèi)。特別是,在奇偶性的RAID結(jié)構(gòu)中,通過將邏輯地址標(biāo)記記錄在2個盤裝置中,即使1個盤裝置發(fā)生故障也可以不增加系統(tǒng)啟動的時間。
權(quán)利要求
1.一種盤存儲裝置的數(shù)據(jù)更新方法,該盤存儲裝置具有N臺盤裝置(2)和根據(jù)主機(jī)(5)的命令向上述N臺盤裝置(2)寫入數(shù)據(jù)或從上述N臺盤裝置(2)讀出數(shù)據(jù)的控制裝置(1),其特征在于上述盤存儲裝置包括與上述控制裝置(1)連接的易失性存儲裝置(3)和非易失性存儲器(4),易失性存儲裝置(3)包含時間印記存儲部(31)和變換映象存儲部(32),非易失性存儲器(4)包含具有與N×K(整數(shù))個邏輯塊的數(shù)據(jù)相當(dāng)?shù)拇鎯θ萘康膶懭刖彌_存儲部(41)和緩沖管理表存儲部(42),將應(yīng)更新的邏輯塊的數(shù)據(jù)存儲到上述寫入緩沖存儲部(41)中,直到邏輯塊個數(shù)達(dá)到N×K-1塊為止,同時生成包含對于這些各邏輯塊的邏輯地址和存儲在時間印記存儲部(31)中的時間印記的邏輯地址標(biāo)記塊,將它附加在上述N×K-1個邏輯塊上,總共是N×K個邏輯塊,依次將它們連續(xù)地寫入上述N臺盤裝置(2)上的與分別保持上述應(yīng)被更新的數(shù)據(jù)的邏輯地址區(qū)不同的別的空閑地址區(qū)中。
2.如權(quán)利要求1所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于上述寫入是在橫跨多個盤存儲裝置的條形區(qū)中進(jìn)行寫入。
3.如權(quán)利要求2所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于每當(dāng)將上述寫入緩沖器(41)中存儲的N×K個邏輯塊寫入上述N臺盤裝置(2)時,使上述時間印記存儲部(31)的值遞增。
4.如權(quán)利要求3所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于讀出記錄在上述盤裝置的各條形區(qū)的邏輯地址標(biāo)記塊,通過檢查該邏輯地址標(biāo)記塊檢測出與各邏輯地址對應(yīng)的盤裝置上的物理存儲位置,對檢測出的存儲位置進(jìn)行寫入或讀出。
5.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在上述邏輯地址標(biāo)記塊的檢查中,當(dāng)有多個包含相同邏輯地址的條形區(qū)時,將上述邏輯地址標(biāo)記塊內(nèi)的時間印記是最新的一條邏輯地址塊作為有效塊,把其它條形區(qū)的具有相同邏輯地址的塊判定為無效塊。
6.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在上述邏輯地址標(biāo)記塊的檢查中,尋找最大時間印記值,再生由下一次寫入所附加的時間印記。
7.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在上述邏輯地址標(biāo)記塊的檢查中,尋找最小時間印記值,求出作為寫入順序判定基準(zhǔn)的時間印記值。
8.如權(quán)利要求5所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征還在于讀出存儲在上述盤存儲裝置中的多個條形區(qū)的邏輯塊的數(shù)據(jù),通過檢查上述邏輯地址標(biāo)記塊,只將各條形區(qū)內(nèi)的有效邏輯塊送到上述寫入緩沖器,生成與這些有效邏輯塊對應(yīng)的新的邏輯地址標(biāo)記塊,將由已送入上述寫入緩沖存儲部(41)的有效數(shù)據(jù)和新生成的邏輯地址標(biāo)記構(gòu)成的1條邏輯塊依次寫入與上述讀出的多個條形區(qū)不同的另一個空閑區(qū)域中,由此,在上述盤存儲裝置上形成能夠連續(xù)地寫入邏輯塊的空閑區(qū)域。
9.如權(quán)利要求8所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在生成上述新的邏輯地址標(biāo)記塊時,當(dāng)有效塊的個數(shù)不到N×K-1個時,對與不存儲新的邏輯地址標(biāo)記塊內(nèi)的數(shù)據(jù)的塊對應(yīng)的邏輯地址設(shè)定無效地址。
10.如權(quán)利要求8所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在把數(shù)據(jù)寫入上述盤裝置的空閑區(qū)域之后,在啟動上述盤裝置時檢查上述多個條形區(qū)的邏輯地址標(biāo)記塊,據(jù)此,將與判斷為有效的各邏輯地址對應(yīng)的條號、條內(nèi)的塊號和有效數(shù)據(jù)的時間印記記錄到上述變換映象中。
11.如權(quán)利要求10所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在作成上述變換映象的記錄之后,在向盤裝置進(jìn)行的存取少的時間段內(nèi)讀出各條的邏輯地址標(biāo)記塊并與變換映象進(jìn)行比較修正。
12.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于根據(jù)條對記錄邏輯地址標(biāo)記塊的盤裝置進(jìn)行分散配置,在檢查邏輯地址標(biāo)記塊時,將不同盤裝置的邏輯地址標(biāo)記塊并列地讀出。
13.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于上述邏輯地址標(biāo)記與邏輯塊數(shù)據(jù)一起依次寫入各條形區(qū),同時,還并列地寫入專用標(biāo)記區(qū),在檢查上述邏輯地址標(biāo)記塊時依次讀該專用標(biāo)記區(qū)并進(jìn)行檢查。
14.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于將盤裝置上的存儲區(qū)分割成以多個條為單位的多個段,控制成在一定時間內(nèi)將條的數(shù)據(jù)只能寫入1個段內(nèi),同時,在切換寫入對象段時,將該時刻的上述變換映象(32)的內(nèi)容和切換目標(biāo)段的號碼記錄在盤裝置內(nèi),在作成以后的變換映象(32)時,只檢查上述段切換時的變換映象的內(nèi)容和寫入已記錄在上述盤裝置中的段號碼內(nèi)的條形區(qū)域的邏輯地址標(biāo)記塊。
15.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在上述非易失性存儲器上準(zhǔn)備與上述段內(nèi)的各條對應(yīng)的位映象,在切換寫入對象段時,清除該位映象,在向條形區(qū)寫入數(shù)據(jù)時,將與已寫好的條形區(qū)對應(yīng)的位進(jìn)行置位,在作成變換映象(32)時,只檢查在盤裝置的段切換時的變換映象和已記錄在上述盤裝置(2)的段號的邏輯地址標(biāo)記中已將上述位映象置位的邏輯地址標(biāo)記。
16.如權(quán)利要求7所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于為了尋找時間印記的最小值,即使對無效塊少的條也定期進(jìn)行讀出,只將有效塊送人上述寫入緩沖器,從對應(yīng)的邏輯標(biāo)記塊的邏輯地址和新的時間印記生成邏輯地址標(biāo)記塊,把由寫入緩沖器的有效數(shù)據(jù)和已生成的邏輯地址標(biāo)記塊構(gòu)成的條依次寫入與保存有已讀出的條的區(qū)域不同的另外的空閑區(qū)中。
17.如權(quán)利要求4所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于為了尋找時間印記的最小值,對無效塊少的條定期地只讀出邏輯地址標(biāo)記塊,生成附加了已把無效塊的邏輯地址作為NULL地址的新的時間印記的邏輯地址標(biāo)記塊,把在這里生成的邏輯地址標(biāo)記塊寫在已讀出的邏輯地址標(biāo)記塊的上面。
18.如權(quán)利要求10所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在變換映象(32)作成后,和與盤裝置上的邏輯地址標(biāo)記塊的時間印記對應(yīng)的變換映象(32)的時間印記進(jìn)行比較,判定無效塊。
19.一種由N臺盤裝置(2)構(gòu)成的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于上述盤存儲裝置(2)備有具有相當(dāng)于(N-1)×K個邏輯塊的容量的寫入緩沖器(41),把應(yīng)更新數(shù)據(jù)的邏輯塊存儲在該寫入緩沖器(41)中,使該邏輯塊的更新延遲到該已存儲的邏輯塊達(dá)到所選擇的個數(shù),生成由對于上述寫入緩沖器(41)存儲的各邏輯塊的邏輯地址構(gòu)成的邏輯地址標(biāo)記塊,由在所選擇的個數(shù)的邏輯塊中附加了上述邏輯地址標(biāo)記塊的(N-1)×K個數(shù)據(jù)邏輯塊生成K個奇偶塊,通過連續(xù)的寫入工作將在該數(shù)據(jù)邏輯塊中附加了奇偶塊的N×K個邏輯塊依次寫入N臺盤裝置上(2)的與保存了應(yīng)被更新的數(shù)據(jù)的區(qū)域不同的另外的空閑區(qū)域中。
20.如權(quán)利要求19所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于使上述選擇的個數(shù)為(N-1)×K-1,以便在1個盤裝置上記錄邏輯地址標(biāo)記塊。
21.如權(quán)利要求19所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于使上述選擇的個數(shù)為(N-1)×K-2,分配2個邏輯地址標(biāo)記塊,以便用1個奇偶條在2個盤裝置上記錄邏輯地址標(biāo)記塊。
22.如權(quán)利要求20所述的盤存儲裝置的數(shù)據(jù)更新方法,其特征在于在檢查記錄在盤裝置上的邏輯地址標(biāo)記塊方面,除了奇偶條單位的依次寫入之外,還將該邏輯地址標(biāo)記寫入集中了邏輯地址標(biāo)記的專用標(biāo)記區(qū),雖不用奇偶保護(hù)該專用標(biāo)記區(qū)的寫入數(shù)據(jù),但使奇偶條內(nèi)的記錄邏輯地址標(biāo)記的盤裝置與記錄專用標(biāo)記區(qū)的邏輯地址標(biāo)記的盤裝置不同。
23.一種盤存儲控制裝置,具有N臺盤裝置(2)和根據(jù)主機(jī)(5)的命令向上述N臺盤裝置(2)寫入數(shù)據(jù)或從上述N臺盤裝置(2)讀出數(shù)據(jù)的控制裝置(1),其特征在于具有與該盤存儲控制裝置的上述控制裝置(1)連接的易失性存儲裝置(3)和與上述控制裝置(1)連接的非易失性存儲器(4),易失性存儲裝置(3)包含時間印記存儲部(31)和變換映象存儲部(32),非易失性存儲器(4)包含具有與N×K(整數(shù))個邏輯塊的數(shù)據(jù)相當(dāng)?shù)拇鎯θ萘康膶懭刖彌_存儲部(41)和緩沖管理表存儲部(42),將應(yīng)更新的邏輯塊的數(shù)據(jù)存儲到上述寫入緩沖存儲部(41)中,直到邏輯塊個數(shù)達(dá)到N×K-1塊為止,同時生成包含對于這些各邏輯塊的邏輯地址和存儲在時間印記存儲部(31)中的時間印記的邏輯地址標(biāo)記塊,將它附加在上述N×K-1個邏輯塊上,總共是N×K個邏輯塊,依次將它們連續(xù)地寫入上述N臺盤裝置(2)上的與分別保持上述應(yīng)被更新的數(shù)據(jù)的邏輯地址區(qū)不同的別的空閑地址區(qū)中。
24.如權(quán)利要求23所述的盤存儲控制裝置,其特征在于具有存儲維持寫入的時間順序的時間印記的易失性存儲器(3)、將應(yīng)寫入到盤裝置上的數(shù)據(jù)變成記錄表格的形式后保存的上述寫入緩沖器(41)和存儲寫入緩沖器內(nèi)的空閑區(qū)域及保存所保存的寫入數(shù)據(jù)的邏輯地址信息的緩沖器管理信息的非易失性存儲器(4)。
25.一種盤存儲控制裝置,該裝置具有由N臺盤裝置(2)構(gòu)成的盤存儲裝置,其特征在于具有與(N-1)×K個邏輯塊相當(dāng)?shù)娜萘康膶懭刖彌_器(41)和控制裝置,所述控制裝置把應(yīng)更新數(shù)據(jù)的邏輯塊存儲在該寫入緩沖器(41)中,使該邏輯塊的更新延遲直到該已存儲的邏輯塊達(dá)到所選擇的個數(shù)為止,生成由對于上述寫入緩沖器(41)中已存儲的各邏輯塊的邏輯地址構(gòu)成的邏輯地址標(biāo)記塊,從在選擇個數(shù)的邏輯塊中附加了上述邏輯地址標(biāo)記塊的(N-1)×K個數(shù)據(jù)邏輯塊生成K個奇偶塊,通過連續(xù)的寫入工作將在該數(shù)據(jù)邏輯塊附加了奇偶的N×K個邏輯塊依次寫入N臺盤裝置上的與保存了應(yīng)被更新的數(shù)據(jù)的區(qū)域不同的另外的空閑區(qū)域中。
26.如權(quán)利要求25所述的盤存儲控制裝置,其特征在于為了采用使用了奇偶檢驗(yàn)的冗余性的盤結(jié)構(gòu)而附加冗余盤裝置,進(jìn)而還具有存儲維持寫入的時間順序的時間印記的易失性存儲器(3)、將應(yīng)寫入到盤裝置上的數(shù)據(jù)變成記錄表格的形式后保存的上述寫入緩沖器(41)和存儲寫入緩沖器內(nèi)的空閑區(qū)域及保存所保存的寫入數(shù)據(jù)的邏輯地址信息的緩沖器管理信息的非易失性存儲器(4)。
全文摘要
本發(fā)明提出一種原理上不需要間接變換映象、便宜且高速的盤存儲裝置的數(shù)據(jù)更新方法,并構(gòu)成一種實(shí)現(xiàn)該方法的盤存儲控制系統(tǒng)。在由N臺盤裝置構(gòu)成的盤存儲裝置中,備有具有與N×K(整數(shù))個邏輯塊相當(dāng)?shù)娜萘康膶懭刖彌_器,把應(yīng)更新數(shù)據(jù)的邏輯塊存儲在該寫入緩沖器中,控制裝置1使該邏輯塊的更新延遲到該已存儲的邏輯塊達(dá)到N×K-1個為止,把N×K-1個邏輯塊并加上邏輯地址標(biāo)記塊的N×K個邏輯塊依次連續(xù)寫入N臺盤裝置上的空閑區(qū)域中。
文檔編號G06F3/06GK1208891SQ98116228
公開日1999年2月24日 申請日期1998年8月7日 優(yōu)先權(quán)日1997年8月8日
發(fā)明者關(guān)戶一紀(jì) 申請人:株式會社東芝