JP2009217719A - Raidコントローラ、raidシステム、およびraidシステムの制御方法 - Google Patents
Raidコントローラ、raidシステム、およびraidシステムの制御方法 Download PDFInfo
- Publication number
- JP2009217719A JP2009217719A JP2008062940A JP2008062940A JP2009217719A JP 2009217719 A JP2009217719 A JP 2009217719A JP 2008062940 A JP2008062940 A JP 2008062940A JP 2008062940 A JP2008062940 A JP 2008062940A JP 2009217719 A JP2009217719 A JP 2009217719A
- Authority
- JP
- Japan
- Prior art keywords
- data
- redundant code
- storage device
- stripe
- storage devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】バッテリを不要としつつ、縮退時のデータ化けを抑制することが可能なアレイ型記憶装置を提供すること。
【解決手段】先ず、HDD0からデータD10、HDD3からデータD13、HDD2からパリティP1を読み込む(ステップS11)。読み込んだデータD10、データD13、およびパリティP1からデータD11を計算する(ステップS12)。更新されるデータD10'に対応するパリティP1'を演算する(ステップS13)。パリティP1を読み込むことが出来ない状態にする(ステップS14)。パリティP1が読み込めないようにした状態で、データD10'及び新しいパリティP1'をHDDにライトする(ステップS15)。データD10'及び新しいパリティP1'を書き込んだ後、パリティP1'をリードできるように変更する(ステップS16)。
【選択図】 図4
【解決手段】先ず、HDD0からデータD10、HDD3からデータD13、HDD2からパリティP1を読み込む(ステップS11)。読み込んだデータD10、データD13、およびパリティP1からデータD11を計算する(ステップS12)。更新されるデータD10'に対応するパリティP1'を演算する(ステップS13)。パリティP1を読み込むことが出来ない状態にする(ステップS14)。パリティP1が読み込めないようにした状態で、データD10'及び新しいパリティP1'をHDDにライトする(ステップS15)。データD10'及び新しいパリティP1'を書き込んだ後、パリティP1'をリードできるように変更する(ステップS16)。
【選択図】 図4
Description
本発明は、複数台の記憶装置でデータの冗長性を測ったRAIDのRAIDコントローラ、RAIDシステム、およびRAIDシステムの制御方法に関する。
アレイ型記憶装置では、HDDが故障し、冗長性がない状態(縮退)で、データライト中にシステムがクラッシュした場合、データライト中のパリティに対応する故障したHDD上にあったデータが化けてしまう可能性があった。
例えば、HDD0、HDD1、HDD2、およびHDD3の4台のハードディスクでRAID5を組んでいる場合を考える。
HDD0、HDD1、およびHDD2に分散して書き込まれているデータD00〜D02に対応するパリティがP0、HDD0、HDD1、およびHDD3に分散して書き込まれているデータD10、D11、D13に対応するパリティがP1、…である。ここで、例えばパリティPnがHDD2に存在する場合、以下の式で計算できる。
また、HDD0のデータD10をデータD10'に更新する場合、(10)式の条件を満たすように、パリティP1も新しいパリティP1'に更新する必要がある。
ここで、HDD1が故障した場合のデータ書き換えを考える。この状態でD10をD10'に更新する場合、以下の手順で処理を行う。
(1) D10およびP1を読み込む。
(3) 新しいD10'および新しいパリティP1'をハードディスクドライブに書き込む。
このとき、例えばデータD10'を書き込んだ後、且つパリティP1'を書き込む前にシステムがクラッシュすると、データとパリティの整合が取れない状況が発生する。故障したHDD1上のデータD11を故障していないHDDに格納されているデータから演算すると、
となり、データ化けが生じる。
これまでの技術では、このようなデータ化けを防ぐには、バッテリ等のハードウェアを実装する必要があった(例えば、特許文献1)。
特開2001−34407号公報
縮退時のデータ化けを防ぐためには上述した技術に開示されているように、バッテリ等のハードウェア等が必要であった。ところがバッテリには寿命があり、定期的にバッテリを交換する必要があり、バッテリの交換時期の管理が必要であった。
本発明の目的は、バッテリを不要としつつ、縮退時のデータ化けを抑制することが可能なRAIDコントローラ、RAIDシステム、およびRAIDシステムの制御方法を提供することにある。
本発明の一例に係わる、複数台の記憶装置をストライプ単位で管理すると共に、ホストからライト命令されたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる1台以上の記憶装置に格納するRAIDコントローラは、少なくとも1台の記憶装置が故障している縮退時に、前記ホストからライト命令された更新データを用いて正常な記憶装置に格納されている1台の記憶装置の一つのストライプに属するデータを更新する場合、更新されるデータが属するストライプ中の冗長コードを更新するための新たな冗長コードを演算する処理と、前記新たな冗長コードの演算後、更新されるデータが属するストライプ中の冗長コードを読み出し不可状態にする処理と、前記読み出し不可状態で、前記更新データを用いてデータを書き換える処理と、前記読み出し不可状態で、前記冗長コードを前記新たな冗長コードに書き換える処理と、読み出し不可状態の冗長コードを読み台可能な状態にする処理とを実行することを特徴とする。
本発明によれば、バッテリを不要としつつ、縮退時のデータ化けを抑制することが可能になる。
本発明の実施の形態を以下に図面を参照して説明する。
まず、図1および図2を参照して、本発明の一実施形態に係るRAIDシステムの構成について説明する。このRAIDシステムは、NAS(Network Attached Storage)として機能するアプライアンスサーバとして実現されている。
図1はアプライアンスサーバ10の斜視図である。本サーバ10は、サーバ本体11から構成されている。サーバ本体11は箱形の筐体を有している。サーバ本体11の前面には、LCD(Liquid Crystal Display)から構成されるフロントディスプレイパネル17が組み込まれている。サーバ本体11の前面には、本サーバ10を電源オン/オフするためのパワーボタン14などが配置されている。
次に、図2を参照して、本サーバ10のシステム構成について説明する。
本サーバ10は、図2に示されているように、CPU111、ノースブリッジ112、主メモリ113、グラフィクスコントローラ114、サウスブリッジ119、BIOS−ROM120、RAIDコントローラ121、ハードディスクドライブ(HDD)HDD0〜HDD5、LANコントローラ123、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124、および電源コントローラ125等を備えている。
CPU111は本サーバ10の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ(HDD)HDD0〜HDD5から主メモリ113にロードされる、オペレーティングシステム(OS)および各種アプリケーションプログラムを実行する。OSは、複数のウィンドウを表示画面上に表示するためのウィンドウシステムを有している。
また、CPU111は、BIOS−ROM120に格納されたシステムBIOS(Basic Input Output System)も実行する。システムBIOSはハードウェア制御のためのプログラムである。
ノースブリッジ112はCPU111のローカルバスとサウスブリッジ119との間を接続するブリッジデバイスである。ノースブリッジ112には、主メモリ113をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ112は、AGP(Accelerated Graphycs Port)バスなどを介してグラフィクスコントローラ114との通信を実行する機能も有している。
グラフィクスコントローラ114は、本サーバ10のフロントディスプレイパネルとして使用されるLCD17を制御する表示コントローラである。このグラフィクスコントローラ114はビデオメモリ(VRAM)を有しており、OS/アプリケーションプログラムによってビデオメモリに描画された表示データから、LCD17に表示すべき表示イメージを形成する映像信号を生成する。
サウスブリッジ119は、LPC(0 Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ119は、PCI−Xバスに接続されたデバイスと通信を行うためのPCI−Xコントローラを内蔵している。さらに、サウスブリッジ119は、BIOS−ROM120をアクセス制御するための機能も有している。
RAIDコントローラ121は、HDD0,HDD1,HDD2,HDD3の4台のハードディスクドライブを1台のハードディスクドライブとして取り扱ってRAID(Redundant Array Of Inexpensive Disks)を構成するための制御デバイスである。本実施形態の場合、HDD0,HDD1,HDD2,HDD3を用いてRAID5を構成する。RAIDコントローラ121とサウスブリッジ119とは、例えばPCI−Xバスで接続されている。
LANコントローラ123は、本コンピュータをLANに接続するためのネットワークインターフェースである。
エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、電源制御、放熱制御のためのエンベデッドコントローラと、キーボード(KB)およびマウスを制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このエンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、ユーザによるパワーボタン14の操作に応じて本サーバ10をパワーオン/パワーオフする機能を有している。
電源回路としてのAC/DCコンバータ126は、交流電圧を直流電圧に変換する。変換された直流電圧は、電源回路としての電源コントローラ125に出力される。電源コントローラ125は、直流電圧を用いて本サーバ10の各コンポーネントに供給すべきシステム電力を生成する。電源コントローラ125は電圧供給指示手段としてのEC/KBC124からの指示に応じて、本サーバ10の各コンポーネントにシステム電力を供給する。
図3は、一般的な4台のHDDでRAID5を組んだ場合のデータ・パリティ配置の例である。HDD0〜HDD3のそれぞれのハードディスクドライブは、ユーザエリアとRAID管理情報エリアに分けられる。RAID管理情報エリアには、RAIDアレイの構成情報やアレイに属するHDDの情報等が保存されている。ユーザエリアは、ストライプ(S0、S1、S2、S3、S4、‥、Sn、‥)という単位で管理されて、それぞれのストライプには、データDsd(sはストライプ番号、ディスク番号)が3台のハードディスクドライブに分散されて格納されると共に、分散されたデータから生成されるパリティPs(冗長コード)が1台のハードディスクドライブに格納される。パリティは他のハードディスクドライブに格納されているデータの排他的論理和を演算することで求められる。
上述したRAIDを組んでいる状態で、CPU(ホスト)111からのライト命令によって、ストライプ1のハードディスクドライブ0のデータD10をD10'に更新する場合を考える。この時、ストライプ1のHDD0のデータD10をD10'に更新すると共に、ストライプ1のHDD2のパリティP1をP1'に更新する必要がある。通常の状態では問題がないが、1台のハードディスクドライブが故障している場合に、データD10'を書き込んだ後、且つパリティP1'を書き込む前にシステムがクラッシュすると、データとパリティの整合が取れない状況が発生する。
そこで、本RAIDコントローラ121では、図4のフローチャートに示す手順でデータを書き換えることによって、書込みの途中でシステムの縮退時のデータ化けを防止する。図3のフローチャートに示す手順を以下に説明する。なお、図4に示すフローチャートは、ストライプ1のHDD0のデータD10をデータD10'に更新する例である。
先ず、HDD0からストライプ1のデータD10、HDD3からストライプ1のデータD13、HDD2からストライプ1のパリティP1を読み込む(ステップS11)。次いで、読み込んだデータD10、データD13、およびパリティP1から(1)式を用いて、故障しているHDD1に格納されているはずのデータD11を計算する(ステップS12)。
次いで、パリティP1を読み込むことが出来ない状態にする(ステップS14)。パリティP1を読み込むことが出来ないようにするために、例えば、パリティP1が書き込まれている各セクタのECCを破壊することで、メディアエラーを発生させることがあげられる。
次に、パリティP1が読み込めないようにした状態で、データD10'及び新しいパリティP1'をHDDに書き込む(ステップS15)。データD10'及び新しいパリティP1'を書き込んだ後、パリティP1'をリードできるように変更する(ステップS16)。メディアエラーを発生させる方法の場合は、パリティP1'をライトした時点で、新たなECCが書き込まれるのでリード可能になるため、このステップは不要である。
このような方法を用いると、パリティP1を書き換える前にシステムがクラッシュした場合にデータD11をリードすると、パリティがリードできないため、リードエラーとなる。リードエラーとなることにより、ファイルシステム等の上位レベルでのデータリカバリを期待することができる。
なお、上述したようにパリティをリードできなくするのではなく、図5に示すようにRAID管理情報のパリティ書換中エリア情報0〜パリティ書換中エリア情報nに書き換え中のパリティに関するエリア情報、例えばストライプ番号を登録することにより、システムクラッシュ後に、書き換え中のデータがあったことを容易に検出できるようにしても良い。
RAID管理情報に書き換え中のパリティに関する情報を登録する処理の手順について図6のフローチャートを参照して説明する。
先ず、HDD0からデータD10、HDD3からデータD13、HDD2からパリティP1を読み込む(ステップS21)。次いで、読み込んだデータD10、データD13、およびパリティP1から(3)式を用いて、故障しているHDD1に格納されているはずのデータD11を計算する(ステップS22)。
次いで、パリティP1が格納されているHDD2のRAID管理情報のパリティ書換中エリア情報0〜パリティ書換中エリア情報nの何れかにストライプ番号を格納する(ステップS24)。なお、パリティ書換中エリア情報への情報の書込みは、パリティP1が格納されておらず、且つ故障していないHDD0、HDD3に格納しても良い。
データD10'及び新しいパリティP1'をHDDにライトする(ステップS25)。データD10'及び新しいパリティP1'を書き込んだ後、RAID管理情報のパリティ書換中エリア情報0〜パリティ書換中エリア情報nの何れかに格納されたストライプ番号を削除する(ステップS26)。
RAID管理情報エリアに書き換え中のパリティに関する情報を登録することにより、システムクラッシュ後に、書き換え中のデータがあったことを容易に検出できるようにすることが可能となる。図4のフローチャートを参照して説明した方式では、書き換え中のデータがあったことが、実際にその場所をリードしてからでないと検出することができないが、本方式では簡単に検出でき、ユーザに通知することで、ファイルシステムのチェックプログラムを実行してもらう等の処置を促すことができる。
また、図7に示すように、データD10'および新たなパリティP'を書き込む前にRAID管理情報エリアのバックアップデータ0〜バックアップデータnの何れかに、新たなパリティ、または新たなパリティを演算するために必要なデータを書き込んでおくと、パリティの書込みに失敗してもデータの修復も行うことが可能である。新たなパリティを演算するために必要なデータとしては、ステップS22で演算された故障中のHDDに格納されているデータD11である。また、書き込む処理は、図6のフローチャートに示すステップS22の後、或いはステップS24のパリティ書換中エリア情報に情報を書き込んだ後、或いは書き込んだ後に行う。なお、データD10'および新たなパリティP'の書込みに成功した場合は、RAID管理情報エリアに書き込んだ新たなパリティ、または新たなパリティを演算するために必要なデータを削除する。
RAID管理情報エリアにデータD11をRAID管理情報エリアに書き込み、HDD1のユーザエリアにデータD10'を書き込んだ後、パリティP'の書込みに失敗した場合の修復方法について図8のフローチャートを参照して説明する。
先ず、パリティ書換中エリア情報iを取得する(ステップS31)。パリティ書換中エリア情報から書込みを失敗したパリティP1'が属するストライプ番号のHDD0、HDD3に格納されているデータD10'、D13およびRAID管理情報エリアのバックアップデータiに格納されているデータD11を読み出す(ステップS32)。データD10'、D11、D13からパリティP1'を演算する(ステップS33)。演算されたパリティP1'をHDD2に書き込む(ステップS34)。HDD2のRAID管理情報エリアに格納されているパリティ書換中エリア情報iを削除する(ステップS35)。
以上の処理で、パリティP1'の書込みに失敗した場合でも、RAID管理情報エリアに格納されているデータを用いてパリティP1'を修復することが出来る。
[RAID6]
以上、RAID5の例について説明したが、上述した実施の形態はRAID6に適用することも出来る。以下にRAID6の場合について説明する。
以上、RAID5の例について説明したが、上述した実施の形態はRAID6に適用することも出来る。以下にRAID6の場合について説明する。
図9に一般的な5台のHDDを用いてRAID6を構成した場合のデータ・パリティ配置の例を示す。各HDDはユーザエリアとRAID管理情報エリアに分けられ、RAID管理情報エリアには、RAIDアレイの構成情報やアレイに属するHDDの情報等が保存されている。
ストライプ0のデータD00〜D02に対応するパリティがP0及びQ0、ストライプ1のD10〜D14に対応するパリティがP1及びQ1、…である。ここで、例えばストライプnのパリティPnがHDD2に存在し、パリティQnがHDD3に存在する場合、パリティPnおよびパリティQnは、以下の(5)式で計算できる。
また、HDD0のストライプ1のデータD10をD10'に更新する場合、(5)式及び(6)式の条件を満たすように、ストライプ1のパリティP1及びQ1も新しいパリティP1'及びQ1'に更新する必要がある。
ここで、HDD1が故障している状態でのデータの書き換えを考える。HDD0のストライプ1のデータD10をD10'に更新する場合、RAID管理情報エリアにパリティ書換中エリア情報と共にバックアップデータを書き込んでおく例を図10のフローチャートを参照して説明する。
先ず、HDD0、HDD2、HDD3、およびHDD4のストライプ1に格納されているデータをそれぞれ読み出す(ステップS41)。なお、本実施形態の場合、故障しているHDD1に格納されているD11を求められればよく、故障しているHDD1のストライプ1に格納されているデータはパリティP1,Q1ではないので、パリティP1,Q1の両方を読み出す必要はなく、パリティP1,Q1の一方を読み出せばよい。つまり、このステップでは、HDD0からデータD10、HDD4からデータD14を読み出し、HDD2からP1またはHDD3からQ1を読み出す。
次に、故障しているHDD1のストライプ1に格納されているデータD11をステップS41で読み出したデータから演算する(ステップS42)。例えば、ステップS41において、D10、D14、およびパリティP1を読み出した場合、(7)式からデータD11を演算する。
次に、ストライプ1のパリティP1が格納されているHDD2のバックアップデータi及びストライプ1のパリティQ1が格納されているHDD3のバックアップデータjに、データD11を書き込む(ステップS43)。バックアップデータi、jの物理アドレスは同じであってもよいし、異なっていてもよい。
さらに、新たなデータD10'、ステップS41で読み出されたD13、およびステップS42で演算されたデータD11と(8)、(9)式とを用いて、新しいパリティP1'、Q1'をそれぞれ計算する(ステップS44)。
次に、HDD2のパリティ書換中エリア情報iにストライプ1のストライプ番号(ストライプ1)を書き込み、HDD3のパリティ書換中エリア情報jにストライプ1のパリティQ1'をストライプ番号(ストライプ1)を書き込む(ステップS45)。
HDD0のストライプ1をデータD10'に更新すると共に、HDD2のストライプ1にパリティP1'、HDD3のストライプ1にパリティQ1'をHDDに書き込む(ステップS46)。その後、HDD2,3に書き込んだパリティ書換中エリアi,j情報を削除する(ステップS47)。
パリティ書換中エリア情報の削除は、すべてのデータの書き換えが終ってから実行してもよいが、パリティのHDD毎に独立して行うことも出来る。つまり、D10'及びHDD2のパリティP1'の書き込みが終ったら、Q1'の書き込み完了を待たずにHDD2のパリティ書換中エリア情報iを削除し、D10'及びHDD3のパリティQ1'の書き込みが終ったら、P1'の書き込み完了を待たずにHDD3のパリティ書換中エリア情報jを削除することが可能である。このようにすることで、処理効率を向上させることが出来る。
次に、上述した方法でデータを書き込んでいる最中に、パリティP1'の書込みに失敗した場合の修復方法について図11のフローチャートを参照して説明する。
まず、パリティ書換中エリア情報を検索し、パリティ書換中エリア情報iに情報を見つけ、パリティ書換中エリア情報iを取得する(ステップS51)。次に、パリティ書換中エリア情報iに対応するバックアップデータD11を読み込む。また、他のHDDから対応するデータD10'、D14も読み込む(ステップS52)。
ストライプ1のHDD2に書き込むべきパリティがパリティP1'であるかパリティQ1'であるか否かを判別する(ステップS53)。パリティがパリティP1'であるかパリティQ1'であるかは、アドレスにより一意に決まるため、パリティ書換中エリア情報iに格納されているストライプ番号から判別できる。本実施形態の場合、パリティP1'であるため、データD10'、D14、およびバックアップデータD11からパリティP1'を演算し(ステップS54)、演算されたパリティP1'を書き込む(ステップS55)。最後に、パリティ書換中エリア情報iを削除する(ステップS56)。なお、ステップS53において、パリティQであると判別された場合、データD10'、D14、およびバックアップデータD11からパリティQ1'を演算し(ステップS64)、演算されたパリティQ1'を書き込む(ステップS65)。
以上の処理で、パリティP1'の書込みに失敗した場合でも、RAID管理情報エリアに格納されているデータを用いてパリティP1'を修復することが出来る。
上述した実施形態では、情報処理装置にRAIDシステムが組み込まれている例について説明したが、RAIDコントローラとHDDとを組み合わせたアレイ型記憶装置として提供することも出来る。この場合、情報処理装置とはSAS等のインタフェースで接続される。また、RAIDコントローラの機能は、ソフトウェアで提供することも出来る。
上記実施形態では、ストライプ単位でのデータ書き込みになっているが、ストライプの一部の書き込みで有っても良い。
上記実施形態では、ストライプ単位でのデータ書き込みになっているが、ストライプの一部の書き込みで有っても良い。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成 要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
10…アプライアンスサーバ,111…CPU,113…主メモリ,121…RAIDコントローラ,HDD0〜HDD5…ハードディスクドライブ。
Claims (12)
- 複数台の記憶装置をストライプ単位で管理すると共に、ホストからライト命令されたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる1台以上の記憶装置に格納する処理を実行するRAIDコントローラであって、
少なくとも1台の記憶装置が故障している縮退時に、前記ホストからライト命令された更新データを用いて正常な記憶装置に格納されている1台の記憶装置の一つのストライプに属するデータを更新する場合、更新されるデータが属するストライプ中の冗長コードを更新するための新たな冗長コードを演算する処理と、
前記新たな冗長コードの演算後、更新されるデータが属するストライプ中の冗長コードを読み出し不可状態にする処理と、
前記読み出し不可状態で、前記更新データを用いてデータを書き換える処理と、
前記読み出し不可状態で、前記冗長コードを前記新たな冗長コードに書き換える処理と、
読み出し不可状態の冗長コードを読み台可能な状態にする処理とを実行する
ことを特徴とするRAIDコントローラ。 - 前記冗長コードを読み出し不可状態にするために、前記冗長コードが記録されている領域のECCを破壊することを特徴とする請求項1記載のRAIDコントローラ。
- 複数台の記憶装置をストライプ単位で管理すると共に、ホストからライト命令されたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる1台以上の記憶装置に格納する処理を実行するRAIDコントローラであって、
少なくとも1台の記憶装置が故障している縮退時に、前記ホストからライト命令された更新データを用いて正常な記憶装置に格納されている1台の記憶装置の一つのストライプに属するデータを更新する場合、更新されるデータが属するストライプ中の冗長コードを更新するための新たな冗長コードを演算する処理と、
前記新たな冗長コードの演算後、前記更新されるデータが属するストライプ中の冗長コードが書き換え中であることを示す書換中情報を故障していない記憶装置に格納する処理と、
前記書換中情報の生成後、前記更新データを用いてデータを更新する処理と、
前記データの更新後、前記冗長コードを前記新たな冗長コードに書き換える処理と、
前記新たな冗長コードが正常に書き込まれた場合に、前記書換中情報を削除する処理とを実行する
ことを特徴とするRAIDコントローラ。 - 前記新たな冗長コード、または前記新たな冗長コードを演算するために必要なデータを故障していない記憶装置に書き込むことを特徴とする請求項3に記載のRAIDコントローラ。
- 前記新たな冗長コードを演算するために必要なデータは、故障している記憶装置の前記更新されるデータが属するストライプに書き込まれているはずのデータであることを特徴とする請求項4に記載のRAIDコントローラ。
- 複数台の記憶装置をストライプ単位で管理すると共に、ホストからライト命令されたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる1台以上の記憶装置に格納するRAIDシステムであって、
少なくとも1台の記憶装置が故障している縮退時に、前記ホストからライト命令された更新データを用いて正常な記憶装置に格納されている1台の記憶装置の一つのストライプに属するデータを更新する場合、更新されるデータが属するストライプ中の冗長コードを更新するための新たな冗長コードを演算する処理と、
前記新たな冗長コードの演算後、更新されるデータが属するストライプ中の冗長コードを読み出し不可状態にする処理と、
前記読み出し不可状態で、前記更新データを用いて前記データ領域のデータを書き換えるための処理と、
前記読み出し不可状態で、前記冗長コードを前記新たな冗長コードに書き換えるための処理と、
読み出し不可状態の冗長コードを読み台可能な状態にするための処理とを実行するコントローラ
を具備することを特徴とするRAIDシステム。 - 前記冗長コードを読み出し不可状態にするために、前記冗長コードが記録されている領域のECCを破壊することを特徴とする請求項6記載のRAIDシステム。
- 複数台の記憶装置をストライプ単位で管理すると共に、ホストからライト命令されたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる1台以上の記憶装置に格納するRAIDシステムであって、
少なくとも1台の記憶装置が故障している縮退時に、前記ホストからライト命令された更新データを用いて正常な記憶装置に格納されている1台の記憶装置の一つのストライプに属するデータを更新する場合、更新されるデータが属するストライプ中の冗長コードを更新するための新たな冗長コードを演算する処理と、
前記新たな冗長コードの演算後、前記更新されるデータが属するストライプ中の冗長コードが書き換え中であることを示す書換中情報を故障していない記憶装置に格納する処理と、
前記書換中情報の生成後、前記更新データを用いてデータを更新するための処理と、
前記書換中情報の生成後、前記冗長コードを前記新たな冗長コードに書き換えるための処理と、
前記新たな冗長コードが正常に書き込まれた場合に、前記書換中情報を削除するための処理とを実行するコントローラ
を具備することを特徴とするRAIDシステム。 - 前記新たな冗長コード、または前記新たな冗長コードを演算するために必要なデータを故障していない記憶装置に書き込むことを特徴とする請求項8に記載のRAIDシステム。
- 前記新たな冗長コードを演算するために必要なデータは、故障している記憶装置の前記更新されるデータが属するストライプに書き込まれているはずのデータであることを特徴とする請求項9に記載のRAIDシステム。
- 複数台の記憶装置をストライプ単位で管理すると共に、ホストからライト命令されたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる1台以上の記憶装置に格納するRAIDシステムの制御方法であって、
少なくとも1台の記憶装置が故障している縮退時に、前記ホストからライト命令された更新データを用いて正常な記憶装置に格納されている1台の記憶装置の一つのストライプに属するデータを更新する場合、更新されるデータが属するストライプ中の冗長コードを更新するための新たな冗長コードを演算し、
前記新たな冗長コードの演算後、更新されるデータが属するストライプ中の冗長コードを読み出し不可状態にし、
前記読み出し不可状態で、前記更新データを用いて前記データ領域のデータを書き換え、
前記読み出し不可状態で、前記冗長コードを前記新たな冗長コードに書き換え、
読み出し不可状態の冗長コードを読み台可能な状態にする
ことを特徴とするRAIDシステムの制御方法。 - 複数台の記憶装置をストライプ単位で管理すると共に、ホストからライト命令されたデータを複数の記憶装置に分散して書き込み、前記複数台の記憶装置の同一ストライプの前記複数台の記憶装置の一部の記憶装置に格納されているデータから生成される冗長コードを前記冗長コードの生成に用いたデータが格納されている記憶装置とは異なる1台以上の記憶装置に格納するRAIDシステムの制御方法であって、
少なくとも1台の記憶装置が故障している縮退時に、前記ホストからライト命令された更新データを用いて正常な記憶装置に格納されている1台の記憶装置の一つのストライプに属するデータを更新する場合、更新されるデータが属するストライプ中の冗長コードを更新するための新たな冗長コードを演算し、
前記新たな冗長コードの演算後、前記更新されるデータが属するストライプ中の冗長コードが書き換え中であることを示す書換中情報を当該冗長コードが格納されている記憶装置の管理情報領域に生成し、
前記書換中情報の生成後、前記更新データを用いてデータを更新し、
前記データの更新後、前記冗長コードを前記新たな冗長コードに書き換え、
前記新たな冗長コードが正常に書き込まれた場合に、前記書換中情報を削除する
ことを特徴とするRAIDシステムの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008062940A JP2009217719A (ja) | 2008-03-12 | 2008-03-12 | Raidコントローラ、raidシステム、およびraidシステムの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008062940A JP2009217719A (ja) | 2008-03-12 | 2008-03-12 | Raidコントローラ、raidシステム、およびraidシステムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009217719A true JP2009217719A (ja) | 2009-09-24 |
Family
ID=41189468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008062940A Withdrawn JP2009217719A (ja) | 2008-03-12 | 2008-03-12 | Raidコントローラ、raidシステム、およびraidシステムの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009217719A (ja) |
-
2008
- 2008-03-12 JP JP2008062940A patent/JP2009217719A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10191676B2 (en) | Scalable storage protection | |
JP4884885B2 (ja) | 記憶制御装置及び記憶制御装置の障害回復方法 | |
JP5768587B2 (ja) | ストレージシステム、ストレージ制御装置およびストレージ制御方法 | |
CN106933708B (zh) | 有助于进行存储系统恢复的方法、装置以及一种存储系统 | |
US7340638B2 (en) | Operating system update and boot failure recovery | |
US9081697B2 (en) | Storage control apparatus and storage control method | |
US8438429B2 (en) | Storage control apparatus and storage control method | |
JP2006301714A (ja) | アレイコントローラ、当該アレイコントローラを含む情報処理装置及びディスクアレイ制御方法 | |
JP4114877B2 (ja) | 不正データを検出するための装置、方法、及びプログラム | |
JP2006172320A (ja) | データ複製制御装置 | |
JP2006134149A (ja) | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム | |
JP2009104412A (ja) | ストレージ装置及びその制御方法 | |
US7480820B2 (en) | Disk array apparatus, method for controlling the same, and program | |
WO2015045122A1 (ja) | ストレージ装置、ストレージシステム、およびデータ管理方法 | |
US7457990B2 (en) | Information processing apparatus and information processing recovery method | |
JP2006268502A (ja) | アレイコントローラ、メディアエラー修復方法及びプログラム | |
JP5107196B2 (ja) | 情報処理装置および再構築処理および修復処理の制御方法 | |
JP2005293119A (ja) | ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム | |
JP2009217719A (ja) | Raidコントローラ、raidシステム、およびraidシステムの制御方法 | |
JP5913078B2 (ja) | ディスクアレイシステム、データ復旧方法、および、データ復旧プログラム | |
JP2014119831A (ja) | ストレージ装置、制御方法及び制御プログラム | |
JP2010128933A (ja) | アレイ型記憶装置およびアレイ型記憶装置の制御方法 | |
JP4944220B2 (ja) | 記憶装置及びその制御プログラム | |
JP2005346212A (ja) | ディスクアレイコントローラおよび情報処理装置 | |
JP5842655B2 (ja) | 情報処理装置、プログラムおよびエラー処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110607 |