説明

データ処理システム、データ移動方法、およびデータ移動プログラム

【課題】不揮発性の高速メモリを用いずに、データ移動の際のデータ一貫性、耐障害性、および障害発生時の効率的な回復を実現することが課題である。
【解決手段】実施形態のデータ処理システムは、データを格納している移動元記憶領域と、データの移動先である移動先記憶領域と、データにアクセスするアプリケーションを有するコンピュータと、移動元記憶領域から移動先記憶領域へのデータ移動を行い、データ移動の進捗情報を管理し、進捗情報を移動元記憶領域と移動先記憶領域のと空き領域に格納するデータ移動処理部と、データ移動中にアクセスを受信し、進捗情報を参照して移動元記憶領域または移動先記憶領域に格納されたデータへのアプリケーションからのアクセスを処理するアクセス処理部と、データ移動中に何らかの障害が発生しデータの移動が中断して終了した場合に空き領域に格納された進捗情報を参照してデータ移動の再開を行う回復判定部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態はデータ処理システム、データ移動方法、およびデータ移動プログラムに関する。
【背景技術】
【0002】
ハードディスクドライブ(HDD)やフラッシュメモリドライブ(SSD)などのドライブによって構成される記憶装置やこの記憶装置によって構成されるストレージシステムなどにおける記憶装置の間のデータの移動にはさまざまな形態がある。例えば可搬性のある記憶装置と固定の記憶装置との間の移動、よりセキュリティや信頼性の高い記憶装置への移動、あるいはコスト削減のため記憶単価の安い記憶装置への移動などがある。また、情報ライフサイクル管理の一環として、さまざまな種類の記憶装置の間でのポリシーベースでのデータの移動なども行われる。
【0003】
該データの移動においては、データのサイズが大きい場合にデータサイズに比例して時間がかかる。例えば、100Gバイトのデータを100Mbpsで移動するとき、理論上2時間以上の時間がかかる計算になる。したがって、運用中の大きなサイズのデータを移動したい場合には、データの移動中にもデータを読み出しや書き換えなどの運用が可能なデータの移動方法が求められる。なお、移動中でも読み出しや書き換えが任意に行われる可能性のあるデータのことをオンラインデータという。以下、システムの使用中にデータを移動することをオンラインデータ移動という。
【0004】
オンラインデータ移動においては、記憶装置間のデータの移動に際しデータの内容が不整合にならないという「データの一貫性」と、データの移動中に発生したコンピュータの停止障害等により移動が中断した場合でもデータが失われないという「データの耐障害性」が主に要求される。
【0005】
ここで、停止障害の例としては、停電による装置の停止や装置内部の矛盾を検出し装置自身がフェイルストップする場合があげられる。停止障害からの回復方法は、例えば装置を再起動することである。このとき、装置に含まれるCPUやメインメモリは初期化され障害発生時の状態は失われるが、ハードディスクや不揮発性メモリ等に記憶されたデータは失われない。以下、耐障害性とは、停止障害に対してデータが失われないことを指す。なお、停止障害が発生する対象には、データ移動元の記憶装置、データ移動先の記憶装置、データの移動処理を実行しているコンピュータ等がある。また、これらの装置に対して別々に、あるいは同時に停止障害が発生する可能性がある。さまざまな停止障害のパターンに対して耐障害性を有することが要求される。
【0006】
また、オンラインデータ移動においては、障害等が発生してデータの移動が停止した場合のデータの移動を再開するために要する時間の合理性、すなわち障害等からの「回復処理の効率化」がさらに要求される。なお、回復処理の効率化とは、例えばデータの移動が全体の99%まで進行した時点で中断した時、再開後のデータの移動にかかる時間は、残りの1%程度の分で済むというような障害からの回復処理の効率化をさす。
【0007】
記憶装置間でのデータ移動の従来の方法として、いったんデータをコピーし、コピーがすべて完了した後に元のデータを削除するという方法がある。なお、障害からの回復に当たっては、元のデータをもう一度コピーしなおす。この方法では、移動がすべて完了するまで元のデータを維持しているため一貫性と耐障害性を保つことが可能である。
【0008】
次に、上述した記憶装置間のデータ移動方法においてオンラインデータ移動を行う従来の方法として、データ移動中のデータの読み出しは単に元のデータにアクセスし、書き換えはオンラインデータのコピー技術を利用して実行するという方法がある。ここで、オンラインデータのコピー技術とは、例えばストレージシステムのミラーリング技術(あるいはレプリケーション技術)がある。
【0009】
なお、データの移動はデータのコピーと類似しているが、データのコピーでは元のデータが残されるのに対し、データの移動では元のデータは残されないという違いがある。これらは目的によって使い分けられている。例えば、バックアップの用途ではデータのコピーが主に行われるが、セキュリティやライセンスが関係している用途などデータの移動でなければならない場合もある。
【0010】
ストレージシステムの従来のミラーリング技術においてオンラインデータ移動のデータの一貫性を保つ方法として、データ移動中に書き換えが発生した場合にコピー元およびコピー先の両方を書き換える方法がある。
【0011】
また、このオンラインデータ移動において障害が起こった際にデータ移動再開のための回復処理を効率的に行う従来の方法としては、データの格納領域を適当なサイズのブロックに分割し、各ブロック毎に回復処理時にコピーが必要であることを管理する差分ビットマップを不揮発性の高速メモリに保持するという方法がある。なお、この方法では、コピー済みの箇所に書き換えが発生した場合には、この差分ビットマップの該当ビットをセットする。
【0012】
また、回復処理の効率化の別の従来の方法として、書き換えの際にそのデータを不揮発性の高速メモリを用いたキャッシュメモリに記憶しておき、コピー元およびコピー先に書き換えが完了するまで保持する方法がある。この方法では、障害時点で書き換え中であったデータを回復処理時にキャッシュメモリから読み出し、再度コピー元およびコピー先に書き換えを行う。
【0013】
すなわち、上述した従来技術では、記憶装置間でのオンラインデータの移動の一貫性、耐障害性、回復処理の効率性の各要件をすべて満たすには、不揮発性の高速メモリが構成要素として必要である。なお従来技術では、不揮発性の高速メモリは特別なハードウェアとして実装される。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2007−41701号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
不揮発性の高速メモリを用いずに、データ移動の際のデータ一貫性、耐障害性、および回復処理の効率化を実現することが課題である。
【課題を解決するための手段】
【0016】
本実施形態のデータ処理システムは、データを格納している移動元記憶領域と、前記データの移動先である移動先記憶領域と、前記データにアクセスするアプリケーションを有するコンピュータと、前記移動元記憶領域から前記移動先記憶領域へのデータ移動を行い、前記データ移動の進捗情報を管理し、前記進捗情報を前記移動元記憶領域の空き領域および前記移動先記憶領域の空き領域に格納するデータ移動処理部と、前記データ移動中に前記アクセスを受信し、前記進捗情報を参照して前記移動元記憶領域または前記移動先記憶領域に格納されたデータへの前記アプリケーションからのアクセスを処理するアクセス処理部と、前記データ移動中に何らかの障害が発生し、前記データの移動が中断して終了した場合に、空き領域に格納された前記進捗情報を参照して前記データ移動の再開を行う回復判定部と、を備える。
【図面の簡単な説明】
【0017】
【図1】第1の実施形態に係るデータ処理システムの機能構成を示すブロック図である。
【図2】第1の実施形態に係るシステムの記憶領域の一例を示す図である。
【図3】第1の実施形態に係るシステムのデータ移動処理の手順の一例を示すフローチャートである。
【図4】第1の実施形態に係るシステムのアクセス処理の手順の一例を示すフローチャートである。
【図5】第1の実施形態に係るシステムの回復判定処理の手順の一例を示すフローチャートである。
【図6】第2の実施形態に係るデータ処理システムの機能構成を示すブロック図である。
【図7】第2の実施形態に係る記憶装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0018】
以下、本実施形態のデータ処理システム100、データ移動方法、およびデータ移動プログラムについて図面を参照して説明する。なお、本明細書および図面において実質的に同一の機能構成を有する構成要素については同一の符号を付し、重複する説明は省略する。また、以下のデータの移動とは、移動元記憶領域30から移動先記憶領域40にデータの格納場所を移動して、データの移動が完了した後には移動元記憶領域30は不要とし移動先記憶領域40のみを使って当該データにアクセスできるようにすることを意味する。特に、移動元記憶領域30から移動先記憶領域40にデータをコピーし、コピーが完了した後に移動元記憶領域30の移動が完了したデータを削除することも含まれる。
【0019】
(第1の実施形態)
図1は本発明の第1の実施形態が適用されたデータ処理システム100の概略図の一例を示すブロック図である。
【0020】
図1に示すように本実施形態のデータ処理システム100は、アプリケーション部10とデータ処理管理部20とを有するコンピュータ500と、データ移動元の記憶装置31(第1の記憶装置)と、データの移動先の記憶装置41(第2の記憶装置)とが通信ネットワーク60を介して接続して構成されている。
【0021】
なお、通信ネットワーク60は例えばストレージ・エリア・ネットワーク(SAN)がファイバチャネル(Fibre Channel)の技術を用いて構築されている。また、SANの構築においては、ファイバチャネルに限定されるものではなく、例えばiSCSI(Internet Small Computer System Interface)を用いて構築してもよい。
【0022】
アプリケーション部10はデータ処理管理部20を経由して、本実施形態の移動元記憶装置31または移動先記憶装置41に格納されたデータにアクセスする機能を有する。
【0023】
データ処理管理部20は、データ移動処理を行うデータ移動処理部21と、アプリケーション部10からのアクセスを処理するアクセス処理部22と、データ移動中の障害発生時のデータ移動再開におけるデータ移動開始位置の判定処理(以下、回復判定処理という)を行う回復判定部23とを有する。なお、データ移動処理、アクセス処理、および回復判定処理については後述する。
【0024】
データ処理管理部20のデータ移動処理部21は、データ移動処理として移動元記憶領域30から順にデータを読み出し、読み出したデータを移動先記憶領域40に順に書き出す。また、データ移動処理部21はデータ移動処理を行う際に、データ移動処理の進捗状況を管理するための情報である進捗情報の作成、更新を行う。すなわち、データ移動処理部21はデータ移動処理の進捗状況を進捗情報を用いて管理する。
【0025】
具体的には、データ移動処理部21は、データ移動処理の終わった記憶領域を「移動後」記憶領域、データの移動処理を実行中の記憶領域を「移動中」記憶領域とし、データの移動処理をまだ開始していない記憶領域を「移動前」記憶領域として、進捗状況を管理する。その際データ移動処理部21は、データの移動処理が終わった部分の状態を「移動後」に遷移する際に、この遷移をあらわす情報を含む進捗情報を、移動元記憶領域30あるいは移動先記憶領域40の「空き領域」に書き込んでおく。ここで「空き領域」とは、移動元記憶領域30の「移動後」に対応する領域あるいは移動先記憶領域40の「移動前」に対応する領域を指す。
【0026】
ここで、図2に移動元記憶領域30と移動先記憶領域40の一例を示す。斜線で示された記憶領域が移動対象のデータを格納するために用いる記憶領域であり、空白で示された記憶領域が移動対象のデータを格納するために用いない記憶領域である。
【0027】
また、移動元記憶領域30と移動先記憶領域40は概念上、一定のサイズのn個のブロックに分割されているとする。なお、nは3以上の整数である。分割されたそれぞれのブロックには#1〜#n(n≧3)の番号が振られる。なお、分割されたそれぞれのブロック番号は#1以外の番号から開始されても良い。
【0028】
また2≦m≦n−1(n≧3)を満たす番号m(m:整数)をあらかじめ設定する。設定された番号mにあたるブロックを中間ブロックという。なお、ブロック番号は、記憶領域の先頭方向から昇順に振ってもよいし、降順に振ってもよい。あるいはそのほかのあらかじめ設定された順に振ってもよい。なお、移動元記憶領域30と移動先記憶領域40とで同じ番号をもつブロックは、移動元と移動先として1対1に対応する。
【0029】
図2に示したように、移動元記憶領域30においては「移動前」および「移動中」記憶領域が、移動対象のデータが格納された記憶領域である。これに対し、移動先記憶領域40では「移動中」および「移動後」記憶領域が、移動対象のデータが格納された記憶領域である。なお、記憶装置とは例えばハードディスクドライブ(HDD)やフラッシュメモリドライブ(SSD)などのドライブによって構成される記憶装置やこの記憶装置によって構成されるストレージシステムなどである。
【0030】
すなわち、データ移動処理部21は、移動元記憶領域30のブロックからデータを読み出し、そのデータを移動先記憶領域40の対応する番号のブロックに書き込む。その際の「移動中」のブロック番号をiとすると、例えば進捗情報においては、iより小さい番号のブロックは「移動後」であり、iより大きい番号のブロックは「移動前」である。
【0031】
アクセス処理部22は、アプリケーション部10からの読み出しまたは書き換えのいずれかのアクセス要求を受信し、アクセス要求に基づいた位置であるアクセス位置のデータにアクセスする。該データが移動元記憶領域30もしくは移動先記憶領域40の「移動前」記憶領域に格納されているときは、移動元記憶領域30の該データにアクセスしアプリケーション部10に応答する。該データが「移動後」記憶領域に格納されているときは、移動先記憶領域40の該データにアクセスしアプリケーション部10に応答する。
【0032】
すなわち、アクセス処理部22は、アクセス要求が「移動後」記憶領域に対するものである場合、読み出しの場合も書き換えの場合のも移動先記憶領域40にアクセスする。従来技術では、「移動後」記憶領域に対する書き換えの場合に移動元記憶領域と移動先記憶領域の双方を書き換える必要があったが、本実施形態によると書き換えの場合の処理を効率化することができる。
【0033】
アクセス要求が「移動中」記憶領域に対する読み出しのときは、移動元記憶領域30の該当部分にアクセスしアプリケーション部10に応答する。アクセス要求が「移動中」記憶領域に対する書き換えのときは、データ移動処理部21との間で調整を行って当該ブロックの移動処理を待ち合わせた後、移動先記憶領域40の該当部分に書きこみ、アプリケーション部10に応答する。
【0034】
ここで、アクセス要求に基づいた位置であるアクセス位置からブロック位置を算出する方法は既知の従来技術である。例えば、アクセス要求に基づいた位置であるアクセス位置は、典型的な場合、データ全体の先頭からのオフセットとアクセス長の組で表される。これに対応するブロック位置は以下のように計算する。
【0035】
ブロック番号を記憶領域の先頭方向から昇順に振っている場合、アクセスの先頭ブロック番号は、1+(オフセット÷ブロック長)として計算する。アクセスの後尾ブロック番号は、(オフセット+アクセス長+ブロック長−1)÷ブロック長として計算する。
【0036】
ブロック番号を昇順でも降順でもないあらかじめ決まった順に振っている場合には、例えば、いったん昇順の場合の上記式で計算した結果から、あらかじめ決まった順を表す変換テーブルを引くことによってブロック番号を計算する。
【0037】
ブロック番号が計算されると、当該データの格納場所が「移動前」「移動中」「移動後」のいずれに該当するかがデータ移動処理部21により判明する。なお、アクセスにかかわる一連のブロックが「移動前」「移動中」「移動後」にまたがる場合は、アクセス処理部22において内部的にそれぞれに処理を分割し、結果を取りまとめてアプリケーション部10に応答すればよい。
【0038】
回復判定部23は、データ移動処理中に何らかの障害が発生してデータ移動処理システム100が停止した場合、該データ移動処理システム100の再起動後に、障害発生直前にデータ移動処理部21が作成した進捗情報を取得し、この進捗情報を参照して回復判定処理を行う。ここでは、移動元記憶領域30と移動先記憶領域40とを参照し、それぞれ記憶領域の「空き領域」に書き込まれた進捗情報を取得する。回復判定部23は、取得した進捗情報において「移動後」とされる記憶領域については、再開後も「移動後」として管理する。それ以外の記憶領域、すなわち「移動前」、および「移動中」記憶領域についてはデータ移動再開処理の際に「移動前」に変更する。
【0039】
回復判定処理完了後、データ移動処理部21はデータ移動処理を再開する。再開後は、データ移動処理部21が移動元記憶領域30の「移動前」の記憶領域から順にデータを読み出し、読み出したデータを移動先記憶領域40の「移動後」記憶領域に順次書き出す。
【0040】
ここで、図3乃至図5を参照して本実施形態のデータ処理システム100の動作について説明する。
【0041】
まず、データ移動処理部21が移動元記憶領域30のブロック#i(ここでは1≦i≦n,i:整数)を移動先記憶領域40のブロック#iに移動する際のデータ処理システム100の動作について図3を参照して説明する。
【0042】
図3は本実施形態のデータ処理システム100に係るデータ移動処理部21によるデータ移動処理の手順の一例を示すフローチャートである。
【0043】
まず、データ移動処理部21は、iを最初のブロック番号に初期化する(ステップS10)。そしてデータ移動処理部21は、データ移動処理の対象のブロック番号であるiがブロック数n以下の番号であることを確認する(ステップS11)。
【0044】
ブロック#iがブロック数であるn以下の番号である場合(ステップS11がYes)、移動元記憶領域30のブロック#iのデータを移動先記憶領域40のブロック#iにコピーする(ステップS12)。
【0045】
続いて、データ移動処理部21は、番号iの情報を含む進捗情報P(i)を書き込む「空き領域」の判定として、まずブロック番号iが中間ブロックの番号m以下か否か判定をする(ステップS13)。
【0046】
i≦mの場合(ステップS13がYes)、進捗情報P(i)を移動先のブロック#nに書き込む(ステップS14)。i≦mでない場合(ステップS13がNo)、ステップS14を行わず、ステップS15へと進む。
【0047】
次に、iが中間ブロックm以上か否か判定をする(ステップS15)。i≧mの場合(ステップS15がYes)、進捗情報P(i)を移動元のブロック#1に書き込む(ステップS16)。i≧mでない場合(ステップS15がNo)、ステップS16を行わず、ステップS17へと進む。
【0048】
すなわち、データ移動処理部21がブロック番号iの情報を含む進捗情報P(i)を書き込む「空き領域」の場所は、i<mのときは移動先のブロック#nであり、i>mのときは移動元のブロック#1である。i=mのときは移動先のブロック#nと移動元のブロック#1の双方に書き込む。
【0049】
進捗情報P(i)の書き込み完了後、データ移動処理部21はiにi+1を代入する(ステップS17)。そしてステップS11に戻り処理を繰り返す。
【0050】
ステップS11においてi≦nでない場合(ステップS11がNo)、データ移動処理部21はデータ移動処理を終了する。なお、データ移動処理部21はデータ移動処理の開始時に初期化処理として進捗情報P(0)を移動先のブロック#nに書き込んでおく。P(0)は移動元記憶領域30および移動先記憶領域40の全てのブロックが「移動前」である。
【0051】
また、進捗情報を書き込む空き領域は、移動先記憶領域40ではブロック#n、移動元記憶領域30ではブロック#1であるとしたが、移動先記憶領域40ではブロック#m+1〜#nの範囲、移動元記憶領域30ではブロック#1〜#m−1の範囲のあらかじめ決まった場所であればよい。また、進捗情報の書き込みは同一の場所に上書きするのではなく、追加しながら書いていくジャーナル書き込みとしてもよい。
【0052】
なお、移動元記憶領域30の「移動後」となったブロックで、進捗情報の保存に使用されないものは随時、フリー領域として開放し、他の用途に流用することもできる。
【0053】
次に、アクセス処理部22によるアクセス処理について図4を参照して説明する。
【0054】
図4は本実施形態のデータ処理システム100に係るアクセス処理部22によるアクセス処理の手順の一例を示すフローチャートである。
【0055】
まず、アクセス処理の開始としてアクセス処理部22は、アプリケーション部10からの読み出しまたは書き換えのいずれかのアクセス要求を受ける。そのアクセス対象に含まれるブロックの先頭のブロック番号をjとする。すなわち、アクセス要求が複数のブロックにまたがっている場合は、各ブロックごとのアクセス要求に分割してから処理する。
【0056】
アクセス処理部22は、「移動中」のデータのブロック番号iとアクセスが含まれるブロック番号jとの大小関係を確認する(ステップS21)。
【0057】
ブロック番号iがアクセスが含まれるブロック番号jよりも大きい(j<i)場合(ステップS21Yes)、アクセス処理部22は、移動先記憶領域40のアクセス対象のブロック#jにアクセスし(ステップS28)、ステップS25へ進む。
【0058】
ブロック番号iがアクセスが含まれるブロック番号j以下(j≧i)である場合(ステップS21がNo)、アクセス処理部22は、ブロック番号jとブロック番号iとが等しいか否かを判定する(ステップS22)。
【0059】
ブロック番号jとブロック番号iとが等しくない場合(ステップS22がNo)、すなわち、j>iである場合、アクセス処理部22は移動元記憶領域30のアクセス対象のブロック#jにアクセスし(ステップS24)、ステップS25へ進む。
【0060】
ブロック番号jとブロック番号iとが等しい場合(ステップS22がYes)、アクセス処理部22は、アクセス要求が読み出しか否かを判定する(ステップS23)。アクセス要求が読み出しである場合(ステップS23がYes)、アクセス処理部22は、移動元記憶領域30のアクセス対象のブロック#jにアクセスし(ステップS24)、ステップS25へ進む。
【0061】
アクセス要求が読み出しでない場合(ステップS23がNo)、すなわち、アクセス要求が書き換えである場合、アクセス処理部22はデータ移動処理部21との間で調整を行った後、移動先記憶領域40のブロック#jを書き換える(ステップS27)。すなわち、アクセス処理部22は当該ブロックの移動完了を待ち合わせた後、移動先記憶領域40の該当部分であるアクセス対象のブロック#jにアクセスしステップS25へ進む。
【0062】
続いてステップS25へ進む。ステップS25で、アクセス処理部22はアクセス対象のブロック番号jがアクセス対象の最後のブロック番号であるか否かを判定する(ステップS25)。
【0063】
最後のブロック番号でない場合(ステップS25がNo)、次のアクセス対象のブロックに対してステップS21から同様の処理を繰り返す。
【0064】
最後のブロック番号である場合(ステップS25がYes)、アクセス処理部22はアプリケーション部10に応答し(ステップS26)、アクセス処理を終了する。
【0065】
なお、j=iの時の読み出し(ステップS23がYes)は、データ移動処理部21がブロック番号iのデータ移動のために読み出したデータを参照するように実装してもよい。
【0066】
次に、回復判定部23による回復判定処理について図5を参照して説明する。
【0067】
図5は本実施形態のデータ処理システム100に係る回復判定部23による回復判定処理の手順の一例を示すフローチャートである。
【0068】
ここでは、何らかの障害によって本実施形態のデータ処理システム100の動作が中断された場合に、データ処理システム100が再び起動された際に行われる処理について図5を用いて説明する。
【0069】
まず、障害が発生してデータ処理システム100が停止した際に、障害が復旧した後データ処理システム100が再び起動する。起動すると、まず回復判定部23が、移動先記憶領域40のブロック#nから進捗情報P(i)を読み出す(ステップS31)。続いて回復判定部23は、読み出された進捗情報P(i)が有効であるか否かを判定する(ステップS32)。
【0070】
進捗情報P(i)が有効であるか否かは、例えばこの進捗情報P(i)から「移動後」に遷移した最後のブロックの番号を取得し、取得したブロック番号と中間ブロックの番号mとの大小関係によって判定する。進捗情報P(i)から取得したブロック番号が中間ブロック番号mより小さい場合(ステップS32がYes)には有効であり、この取得した番号をiとする(ステップS33)。また、進捗情報P(i)の有効性の判定のためにCRC(巡回冗長符号)等を含めて進捗情報P(i)を記録する従来技術を併用してもよい。
【0071】
進捗情報P(i)が有効でない場合(ステップS32がNo)、回復判定部23は移動先記憶領域40のブロック#nの進捗情報P(i)は無効であるとし、移動元記憶領域30のブロック#1から進捗情報P(i)を読み出す(ステップS35)。
【0072】
そして、回復判定部23は、読み出した進捗情報P(i)から「移動後」に遷移した最後のブロックの番号iを取得する(ステップS36)。
【0073】
続いて、回復判定部23はステップS33もしくはステップS36で取得された番号iに1を加えて、このiを次の移動対象ブロック番号とし(ステップS34)、回復判定処理を終了する。回復判定処理終了後、データ移動処理部21がデータ移動処理を再開する。
【0074】
回復判定処理で使用される進捗情報は、保存されている進捗情報のうちの「移動後」に遷移した最後の情報だけでよい。上述した本実施形態における進捗情報は従来用いられてきた差分ビットマップやキャッシュメモリによる管理に比べて格段に小さい量である。また、その更新頻度も、移動処理の進捗に比例した量だけであり、書き換えの量に依存しない。そのため、一定の小さい頻度である。したがって、この進捗情報の書き込みのオーバヘッドによる性能の劣化はほとんどない。
【0075】
上述したように、本実施形態のデータ移動処理システムによると、特別なハードウェアを備えていない環境でも、オンラインデータの移動の一貫性、耐障害性、回復処理の効率の各要件を満たしたデータの移動を実現できる。これにより、コンュータ・システムの効率的な運用と耐障害性の向上、障害回復処理の迅速化につながる。
【0076】
本実施形態のデータ移動処理システムは、データ処理管理部20、移動元記憶装置31、および移動先記憶装置41のうちのいずれかひとつまたは複数の動作が障害によって停止したとしても、記憶装置間でのオンラインデータの移動の一貫性、耐障害性、回復処理の効率の各要件をすべて満たす。
【0077】
なお、本実施形態ではデータ処理管理部20、移動元記憶装置31、移動先記憶装置41のすべてが動作していなければ移動中のデータに完全にはアクセスできない。従来技術では、データ処理管理部20、移動元記憶装置31が動作していれば、移動先記憶装置41が動作していなくても、移動中のデータに完全にアクセスできる。しかしこの点は、用途がデータのコピーではなく移動であることを考えれば、問題ではない。なぜなら、移動が完了した後はいずれにせよ、移動先記憶装置41が動作していなければデータには完全にアクセスできなくなるからである。
【0078】
また、移動元のデータ領域と移動先のデータ領域に含まれるデータだけから回復判定を行えるシンプルな構成とすることによって、高度に分散した環境においても効率よく確実に回復判定を行うことができ、さまざまな分散環境で適用可能である。
【0079】
また本実施形態は、記憶装置に格納されるデータのサイズと形式を変換しない方式のため互換性が高く、従来の記憶装置をそのまま使用する環境でも、ソフトウェアとして実装することができるという特徴もある。
【0080】
(第2の実施形態)
本発明の第2の実施形態について図6乃至図7を参照して説明する。
【0081】
図6は移動元記憶装置31と移動先記憶装置41がそれぞれストレージ装置であるデータ処理システム100の構成の一例を示すブロック図である。図6に示すように、本実施形態のデータ処理システム100では、データ処理管理部20は移動元記憶装置31に備えられている。
【0082】
図7に、本実施形態の移動元記憶装置31および移動先記憶装置41であるストレージ装置11のハードウェア構成を示すブロック図を示す。
【0083】
図7に示すように、ストレージ装置11は、ホスト装置に接続するためのホストインタフェース(ホスト I/F)201と、CPU202と、プログラムメモリ203と、フラッシュメモリ204と、ハードディスクドライブに接続するためのハードディスクインタフェース(HDD I/F)205とを有するコントローラ200と、記憶媒体であるハードディスクドライブ(HDD)206とを備える。コントローラ200は、データを格納するHDDへのデータ転送処理を制御する。なお、記憶装置であるHDDは、少なくとも1つのHDDにより構成される論理的な記憶領域としてもよい。
【0084】
コントローラ200は、HDD206と、外部のホスト装置などの上位装置との間のデータ送受信とを制御する機能を有する。また、コントローラ200は、HDD20を制御する。
【0085】
CPU202は、コントローラ200における必要処理を実行するものであり、フラッシュメモリ204は、そのための各種プログラムが格納されている不揮発メモリである。プログラムメモリ203には、不揮発メモリであるフラッシュメモリ204からロードされたプログラムとCPU202が利用するデータ等を格納するためのデータ領域が確保されている。
【0086】
本実施形態で適用されるデータ移動処理の手法は、このプログラムメモリ203にロードされ、格納されている本実施形態のデータ移動プログラムをCPU202が読み取って実行することによって実現されるものとする。すなわち、本実施形態のデータ移動プログラムがプログラムメモリ203にロードされ、格納されているコントローラ200は図1のデータ処理管理部20として機能する。なお、プログラムメモリ203には、上述のプログラムを格納するための領域に加えて、CPU202が利用するデータ等を格納するための領域も確保されている。
【0087】
なお、本実施形態のデータ処理システム100は、移動元記憶装置31であるストレージ装置にのみ、本実施形態のデータ移動プログラムを備える。
【0088】
上述したように本実施形態のデータ移動方法は、ストレージ装置間のデータ移動に適用可能であり、データの移動中でもそのことを意識することなくストレージシステムにアクセスできる。また、本実施形態のデータ処理システム100が停止した後でも、データの移動の一貫性、耐障害性、回復処理の効率の各要件が満たされている。また本実施形態のストレージシステムは、データの移動に係わる不揮発性高速メモリ等のハードウェア・リソースの使用量を削減することを可能にする。このため、ストレージシステムのコストパフォーマンスを向上させることができる。
【0089】
なお、本発明の実施形態のデータ移動方法を、ネットワークブートに対応していない汎用オペレーティングシステムをネットワークブートする際に行われるデータ移動に適用しても良い。
【0090】
オペレーティングシステムをネットワーク上の記憶装置(以下、ネットワークストレージという)に格納し、ネットワーク経由で接続されたコンピュータでこのオペレーティングシステムを起動することをネットワークブート(もしくはネットブート)という。このネットワークブートは内蔵ディスクにデータを残さないためセキュリティ対策として近年特に注目されている。
【0091】
例えば、ネットワークブートに対応していない汎用のオペレーティングシステムは、ローカルディスクにインストールされていることを前提として、コンピュータの立ち上げ処理を行うように設計されているものが主流である。そして、ローカルディスクにインストールされていることを前提としているオペレーティングシステムを、ネットワーク上のストレージに格納し、ネットワーク経由で接続されたコンピュータからこれを起動(ネットワークブート)しようとする場合、すなわち、内蔵されたディスクドライブから起動する通常のコンピュータシステムをネットワークブートに移行する場合、内蔵ディスクに格納されたデータをネットワークストレージに移動する必要がある。
【0092】
本発明の実施形態のデータ移動方法を適用すると、オペレーティングシステムはコンピュータを運用し続けながら内蔵ディスクからネットワークブートにシームレスに移行することができる。また、移行中にコンピュータの停止障害が発生した場合でも、コンピュータの再起動後に、移行の続きを効率的に行うことができる。
【0093】
すなわち、本実施形態のデータ移動方法を適用すると、データの移動中でもそのことを意識することなく利用することができる。またデータの移動中にコンピュータが再起動した場合でも、データの移動の一貫性、耐障害性、回復処理の効率の各要件が満たされている。
【0094】
したがって、従来技術においてオペレーティングシステムをネットワークブートに移行する際の、コピーが完了するまではコンピュータが利用できない、あるいは途中で中断した場合には最初からやり直さなければならないといった問題を解決することが可能となる。
【0095】
なお、移動元と移動先を逆にして、ネットワークブートから通常起動のコンピュータに移行する場合にも、同様に本発明を適用可能である。
【0096】
また、本発明の実施形態のデータ移動方法を適用すると、コンピュータを運用し続けながら内蔵ディスクからネットワークブートにシームレスに移行することができるようになる。また、移行中にコンピュータの停止障害が発生した場合でも、コンピュータの再起動後に、移行の続きを効率的に行うことができる。また、第1の実施形態および第2の実施形態と同様に、記憶装置に格納されるデータのサイズと形式を変換することのない互換性の高い方法を提供することができる。
【0097】
すなわち、上述したような本発明の実施形態によれば、特別なハードウェアが備わっていない環境でも、オンラインデータの移動の一貫性、耐障害性、回復処理の効率の各要件をすべて満たしたデータの移動を実現でき、コンピュータ・システムの効率的な運用と耐障害性の向上、障害回復処理の迅速化につながる。
【0098】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0099】
例えばデータ処理管理部20は、アプリケーション部10の備えるコンピュータ500に備えられてもよい。もしくは別のコンピュータに備えられてもよい。また、移動元記憶装置31または移動先記憶装置41に在ってもよい。すなわち、データ処理管理部20とアプリケーション部10、データ処理管理部20と移動元記憶領域30、データ処理管理部20と移動先記憶領域40のそれぞれの間にアクセスパスが確保されていればよい。
【0100】
また、本実施形態のデータ移動方法は、ハードディスクドライブ上のデータに限らず、ファイルシステムにおけるファイルデータの移動にも適用可能である。この場合、移動元記憶装置31と移動先記憶装置41はファイルシステムである。また、本実施形態のデータ移動プログラムはアプリケーションに組み込まれる。
【0101】
上述したファイルシステムによると、データの移動中でもそのことを意識することなくファイルにアクセスできる。また、アプリケーションやファイルシステムに障害停止が発生した後でも、データの移動の一貫性、耐障害性、回復処理の効率の各要件が満たされている。なお、この場合、ファイルシステム自体が一貫性、耐障害性を保持する。
【0102】
また、上述したファイルシステムは、当該データ移動プログラムを含むアプリケーションに障害停止が発生した後、当該データ移動プログラムを含む別のアプリケーションを別のコンピュータで起動し、データの移動を再開するというアプリケーションのフェイルオーバが可能となる。これは、移動元のデータ領域と移動先のデータ領域に含まれるデータのみから回復判定を行えるシンプルな構成となっているためである。
【符号の説明】
【0103】
10…アプリケーション部
20…データ処理管理部
21…データ移動処理部
22…アクセス処理部
23…回復判定部
30…移動元記憶領域
31…移動元記憶装置
40…移動先記憶領域
41…移動先記憶装置
60…ストレージエリアネットワーク
500…コンピュータ

【特許請求の範囲】
【請求項1】
データを格納している移動元記憶領域と、
前記データの移動先である移動先記憶領域と、
前記データにアクセスするアプリケーションを有するコンピュータと、
前記移動元記憶領域から前記移動先記憶領域へのデータ移動を行い、前記データ移動の進捗情報を管理し、前記進捗情報を前記移動元記憶領域の空き領域および前記移動先記憶領域の空き領域に格納するデータ移動処理部と、
前記データ移動中に前記アクセスを受信し、前記進捗情報を参照して前記移動元記憶領域または前記移動先記憶領域に格納されたデータへの前記アプリケーションからのアクセスを処理するアクセス処理部と、
前記データ移動中に何らかの障害が発生し、前記データの移動が中断して終了した場合に、空き領域に格納された前記進捗情報を参照して前記データ移動の再開を行う回復判定部と、を備え、
前記データ移動処理部は、記憶領域を複数のブロックに細分して管理し、各ブロックごとにデータの移動処理を行い、各ブロックについて前記データ移動処理を行っていないブロックを「移動前」とし、前記データ移動処理を行っているブロックを「移動中」とし、前記データ移動処理を行ったブロックを「移動後」として前記進捗情報を管理し、
前記アクセス処理部は、前記「移動前」のデータへのアクセス要求を受信した場合、前記移動元記憶領域の該当データへアクセスし、前記「移動中」のデータへの読み込みのアクセス要求を受信した場合、前記移動元記憶領域の該当データを読み込み、前記「移動中」のデータへの書き込みのアクセス要求を受信した場合、当該データの移動処理が完了するのを待ち合わせた後、前記移動先記憶領域の該当データを書き換え、前記「移動後」のデータへのアクセス要求を受信した場合、前記移動先記憶領域の該当データへアクセスし、
前記回復判定部は、空き領域に格納された前記進捗情報にて「移動前」となっているブロックは「移動前」とし、「移動中」となっているブロックは「移動前」とし、「移動後」となっているブロックは「移動後」とした進捗情報を生成して、前記データ移動の再開を行うデータ処理システム。
【請求項2】
前記データ移動処理部は、各ブロックを決まった順序で逐次的に処理し、
前記回復判定部は、前記「移動後」に最後に移行したブロックを特定する情報を進捗情報として取得し、当該ブロックより前のブロックを「移動後」とし、当該ブロックおよび以降のブロックを「移動前」とする請求項1に記載のデータ処理システム。
【請求項3】
前記アクセス処理部は、前記「移動中」のデータへの書き込みのアクセス要求を受信した場合、前記移動元記憶領域と前記移動先記憶領域の双方の該当データを書き換える請求項1乃至請求項2のいずれか1項に記載のデータ処理システム。
【請求項4】
データを格納している移動元記憶領域と、前記データの移動先である移動先記憶領域と、 前記データにアクセスするアプリケーションを有するコンピュータと、前記移動元記憶領域から前記移動先記憶領域へのデータ移動を行い、前記データ移動の進捗情報を管理し、前記進捗情報を前記移動元記憶領域の空き領域および前記移動先記憶領域の空き領域に格納するデータ移動処理部と、前記データ移動中に前記アクセスを受信し、前記進捗情報を参照して前記移動元記憶領域または前記移動先記憶領域に格納されたデータへの前記アプリケーションからのアクセスを処理するアクセス処理部と、前記データ移動中に何らかの障害が発生し、前記データの移動が中断して終了した場合に、空き領域に格納された前記進捗情報を参照して前記データ移動の再開を行う回復判定部と、を備えるデータ処理システムのデータ移動方法であって、
前記データ移動処理部が前記移動元記憶領域から前記移動先記憶領域へのデータ移動を行うステップと、
前記データ移動処理部が前記データ移動の進捗情報を管理するステップと、
前記データ移動処理部が前記移動元記憶領域の空き領域および前記移動先記憶領域の空き領域に格納するステップと、
前記アクセス処理部が、前記アクセスを受信し、前記進捗情報を参照して前記移動元記憶領域または前記移動先記憶領域に格納されたデータへの前記アプリケーションからのアクセスを処理するステップと、
前記回復判定部が、前記データ移動中に何らかの障害が発生し、前記データの移動が中断して終了した場合に、空き領域に格納された前記進捗情報を参照して前記データ移動の再開を行うステップと、
を備えるデータ移動方法。
【請求項5】
データを格納している移動元記憶領域と、前記データの移動先である移動先記憶領域と、 前記データにアクセスするアプリケーションを有するコンピュータと、前記移動元記憶領域から前記移動先記憶領域へのデータ移動を行い、前記データ移動の進捗情報を管理し、前記進捗情報を前記移動元記憶領域の空き領域および前記移動先記憶領域の空き領域に格納するデータ移動処理部と、前記データ移動中に前記アクセスを受信し、前記進捗情報を参照して前記移動元記憶領域または前記移動先記憶領域に格納されたデータへの前記アプリケーションからのアクセスを処理するアクセス処理部と、前記データ移動中に何らかの障害が発生し、前記データの移動が中断して終了した場合に、空き領域に格納された前記進捗情報を参照して前記データ移動の再開を行う回復判定部と、を備えるデータ処理システムのデータ移動プログラムであって、
コンピュータに、
前記データ移動処理部が前記移動元記憶領域から前記移動先記憶領域へのデータ移動を行う機能と、
前記データ移動処理部が前記データ移動の進捗情報を管理する機能と、
前記データ移動処理部が前記移動元記憶領域の空き領域および前記移動先記憶領域の空き領域に格納する機能と、
前記アクセス処理部が、前記アクセスを受信し、前記進捗情報を参照して前記移動元記憶領域または前記移動先記憶領域に格納されたデータへの前記アプリケーションからのアクセスを処理する機能と、
前記回復判定部が、前記データ移動中に何らかの障害が発生し、前記データの移動が中断して終了した場合に、空き領域に格納された前記進捗情報を参照して前記データ移動の再開を行う機能と、
を実行させるデータ移動プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−88817(P2012−88817A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−233106(P2010−233106)
【出願日】平成22年10月15日(2010.10.15)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】