【文献】
池田力也,BackOfficeテストベンチ ミラーリングの手順と設定の方法,バックオフィスマガジン日本版,日本,CQ出版株式会社,1997年12月01日,第1巻 第1号,150−155ページ
(58)【調査した分野】(Int.Cl.,DB名)
請求項2に記載のDAコンピューティング装置において、前記第2のデータ記憶装置の前記以前の領域は、以前のオペレーティングシステムに関連付けられた少なくとも1つの領域を含み、前記少なくとも1つの領域は、前記第2のデータ記憶装置から、以前の領域に関連付けられた前記少なくとも1つのブロック装置識別子を削除するときに、前記第2のデータ記憶装置から削除される、DAコンピューティング装置。
請求項1に記載のDAコンピューティング装置において、前記メモリは命令を更に含み、前記命令は前記プロセッサによって実行されると前記プロセッサに、前記第2の領域のサブセットをリンクさせることに応答して、
(i)前記第1のデータ記憶装置および前記第2のデータ記憶装置内に記憶された前記メタデータから、前記第1の領域のサブセットに関連付けられた前記参照ポインタを削除することと、(ii)前記領域のアレイに関連付けられた少なくとも1つのブロック装置識別子を前記第1のデータ記憶装置から削除することと、(iii)前記第1の領域のサブセットについて前記記憶された領域テーブルをスキャンして、前記領域テーブルに基づいて前記第1のデータ記憶装置上の前記第1の領域のサブセットについて新たなブロック装置識別子を生成することと、(iv)前記第1のデータ記憶装置および前記第2のデータ記憶装置内に記憶された前記メタデータを更新して、前記第1の領域のサブセットについての前記参照ポインタを含ませることと、
によって、前記第1の領域のサブセットを前記第2の領域のサブセットに整列させる、DAコンピューティング装置。
請求項5に記載のDAコンピューティング装置において、前記メモリは命令を更に含み、前記命令は前記プロセッサによって実行されると前記プロセッサに、前記第2の領域のサブセットを故障領域として識別することによって、前記メタデータを更新して前記第2の領域のサブセットについての前記参照ポインタを削除させる、DAコンピューティング装置。
請求項5に記載のDAコンピューティング装置において、前記メモリは更に命令を含み、前記命令は前記プロセッサによって実行されると前記プロセッサに、前記メタデータが更新されて前記第1の領域のサブセットについての前記参照ポインタを含むときに、前記領域のアレイを、RAID(redundant array of independent disks)1構成に構成させる、DAコンピューティング装置。
請求項5に記載のDAコンピューティング装置において、前記メモリは更に命令を含み、前記命令は前記プロセッサによって実行されたときに前記プロセッサに、前記第1のデータ記憶装置および前記第2のデータ記憶装置上にブートローダをインストールさせる、DAコンピューティング装置。
請求項1に記載のDAコンピューティング装置において、前記メモリは更に命令を含み、前記命令は前記プロセッサによって実行されたとき前記プロセッサに、前記第2の領域のサブセットが前記領域のアレイにリンクされているときに、前記第2の領域のサブセットを前記第1の領域のサブセットと同期させる、DAコンピューティング装置。
第1の領域のサブセットと第2の領域のサブセットとを含む領域のアレイ内のデータを整列する方法であって、第1のデータ記憶装置は領域のアレイと、前記領域のアレイに関連付けられたメタデータとを記憶し、前記方法は、
データ整列(DA)コンピューティング装置によって、前記第2の領域のサブセットについての参照ポインタを削除することによって、前記領域のアレイから、前記第2の領域のサブセットを削除することと、
領域テーブルを前記第1のデータ記憶装置および第2のデータ記憶装置内に記憶することであって、前記領域テーブルは前記第1のデータ記憶装置内の前記第1の領域のサブセットと、前記第2のデータ記憶装置内の前記第2の領域のサブセットとを定義する、ことと、
前記領域のアレイに関連付けられた前記メタデータを、前記第2のデータ記憶装置内に記憶することと、
前記DAコンピューティング装置によって、前記第2のデータ記憶装置を更新して前記第2の領域のサブセットを含ませることと、
前記第1のデータ記憶装置および前記第2のデータ記憶装置によって記憶された前記メタデータを更新して、前記第2の領域のサブセットを前記領域のアレイにリンクさせることと、を含む方法。
請求項11に記載の方法において、前記第2のデータ記憶装置の前記以前の領域は、以前のオペレーティングシステムに関連付けられた少なくとも1つの領域を含み、前記第2のデータ記憶装置から、以前の領域テーブルに関連付けられた前記少なくとも1つのブロック装置識別子を削除することは更に、前記第2のデータ記憶装置から前記少なくとも1つの領域を削除する、方法。
請求項10に記載の方法において、前記第2の領域のサブセットを前記領域のアレイにリンクさせることに応答して、(i)前記第1のデータ記憶装置および前記第2のデータ記憶装置内に記憶された前記メタデータから、前記第1の領域のサブセットに関連付けられた前記参照ポインタを削除することと、(ii)前記領域のアレイに関連付けられた少なくとも1つのブロック装置識別子を前記第1のデータ記憶装置から削除することと、(iii)前記第1の領域のサブセットについて記憶された前記領域テーブルをスキャンして、前記領域テーブルに基づいて、前記第1のデータ記憶装置上の前記第1の領域のサブセットについて新たなブロック装置識別子を生成することと、(iv)前記第1の領域のサブセットのための前記参照ポインタを含むように、前記第1のデータ記憶装置および前記第2のデータ記憶装置内に記憶された前記メタデータを更新することと、
によって前記第1の領域のサブセットを、前記第2の領域のサブセットに整列させる、方法。
請求項14に記載の方法において、前記メタデータを更新して、前記第2の領域のサブセットについての前記参照ポインタを削除することは、故障領域として前記第2の領域のサブセットを識別することを含む、方法。
請求項14に記載の方法において、前記メタデータが更新されて前記第1の領域のサブセットについての前記参照ポインタを含むとき、前記領域のアレイを、RAID(redundant array of independent disks)1の構成に構成することをさらに含む、方法。
請求項14に記載の方法において、前記DAコンピューティング装置によって、前記第1のデータ記憶装置および前記第2のデータ記憶装置にブートローダをインストールすることをさらに含む、方法。
請求項10に記載の方法において、前記メタデータを更新して前記第2の領域のサブセットを前記領域のアレイにリンクさせることは、前記第2の領域のサブセットを前記第1の領域のサブセットと同期させることをさらに含む、方法。
コンピュータ実行可能命令を実装した少なくとも1つの非一時的なコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、少なくとも1つのプロセッサによって実行されると、前記プロセッサに、
第1の領域のサブセットと第2の領域のサブセットとを含む領域のアレイに関連付けられたメタデータを更新して、前記第2の領域のサブセットについての参照ポインタを削除することによって、前記領域のアレイから前記第2の領域のサブセットを削除することであって、前記メタデータと前記領域のアレイとは、第1のデータ記憶装置上に記憶される、ことと、
領域テーブルを第1のデータ記憶装置および第2のデータ記憶装置に記憶することであって、前記領域テーブルは前記第1のデータ記憶装置内の前記第1の領域のサブセットと、前記第2のデータ記憶装置内の前記第2の領域のサブセットとを定義する、ことと、
前記領域のアレイに関連付けられた前記メタデータを、前記第2のデータ記憶装置内に記憶することと、
前記第2のデータ記憶装置を更新して前記第2の領域のサブセットを含ませることと、
前記第1のデータ記憶装置と前記第2のデータ記憶装置とによって記憶された前記メタデータを更新して、前記第2の領域のサブセットを、前記領域のアレイにリンクさせる、ことと、
を実行させる、コンピュータ可読記憶媒体。
請求項19に記載のコンピュータ可読記憶媒体において、前記コンピュータ実行可能命令は前記プロセッサに、前記第2の領域のサブセットを前記領域のアレイにリンクさせることに応答して、(i)前記第1のデータ記憶装置および前記第2のデータ記憶装置内に記憶された前記メタデータから前記第1の領域のサブセットに関連付けられた前記参照ポインタを削除することと、(ii)前記第1のデータ記憶装置から、前記領域のアレイに関連付けられた少なくとも1つのブロック装置識別子を削除することと、(iii)前記第1の領域のサブセットについての前記記憶された領域テーブルをスキャンして、前記領域テーブルに基づいて、前記第1のデータ記憶装置上の前記第1の領域のサブセットについての新たなブロック装置識別子を生成することと、(iv)前記第1の領域のサブセットについての前記参照ポインタを含むように、前記第1のデータ記憶装置および前記第2のデータ記憶装置内に記憶されたメタデータを更新することと、
によって、前記第1の領域のサブセットを前記第2の領域のサブセットに整列させる、コンピュータ可読記憶媒体。
請求項23に記載のコンピュータ可読記憶媒体において、前記コンピュータ実行可能命令はさらに前記プロセッサに、故障領域として前記第2の領域のサブセットを識別することによって、前記メタデータを更新して前記第2の領域のサブセットについて前記参照ポインタを削除させる、コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0010】
本発明によるシステムおよび方法はデータ記憶構成、より具体的にはオペレーティングシステム変換中の分割記憶装置のデータ整列を対象とする。
【0011】
特にオペレーティングシステム(OS)間の変換中に、多数の物理データ記憶装置にわたってデータ記憶領域を整列するためのデータ整列(DA)システムが本明細書で説明される。例示的な実施形態では、DAシステムが第1のデータ記憶装置および第2のデータ記憶装置を含む。第1および第2のデータ記憶装置は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、および/または任意の他の好適なタイプのデータ記憶装置であってもよい。それぞれのデータ記憶装置は、複数の領域を含む。少なくともいくつかの実施形態では、第1および第2のデータ記憶装置がデータ冗長性、記憶容量の増加、および/または性能向上のために、多重ディスクアレイ内に構成される。例えば、第1および第2のデータ記憶装置は、RAID 1またはRAID 5などの独立ディスク(RAID)構成の冗長アレイ内にあってもよい。RAID 1構成では、第1のデータ記憶装置に記憶されたデータが第2のデータ記憶装置にミラーリングまたはコピーされる。本明細書で使用されるように、「ミラー」は、一致するデータのコピーを記憶する冗長アレイ内の複数の領域を指す。RAID 1のような冗長アレイは、記憶装置の故障の場合にデータ喪失を防止するために使用される。すなわち、冗長アレイ内の領域または記憶装置が故障した場合、故障した領域によって記憶されたデータの複製は、アレイ内のそれぞれのミラーを介してアクセス可能である。
【0012】
例示的な実施形態では、第1および第2のデータ記憶装置が冗長アレイに関連するメタデータを記憶する。メタデータは、冗長アレイ内の領域毎に参照ポインタを含む。いくつかの実施形態では、参照ポインタが、領域に関連付けられたブロック装置ファイルを識別する。ブロック装置ファイルは、ソフトウェアがデータ記憶装置の装置ドライバと対話して領域上のデータを読み書きすることを可能にするインタフェースである。一実施形態では、参照ポインタが、それぞれのブロック装置ファイルを参照するブロック装置識別子に関連付けられる。少なくともいくつかの実施形態では、メタデータが、第1および第2のデータ記憶装置の両方によって記憶されるスーパーブロックの一部である。
【0013】
例示的な実施形態では、第1および第2のデータ記憶装置が、1以上のプロセッサと、プロセッサ用の命令を記憶するように構成されたメモリ装置と、通信する。第1および第2のデータ記憶装置は、プロセッサによって実行されると、プロセッサをサーバなどのコンピューティング装置として動作させる、OSに関連する命令およびデータを記憶する。OSはコンピューティング装置(これはファイルシステムアーキテクチャ、ネットワークプロトコル、カーネルアーキテクチャなどを含むが、これらに限定されない)の種々の機能のための一組の特定のフォーマットおよびプロトコルを含む。第1および第2のデータ記憶装置は、インストールされたOSによってサポートされる1つまたは複数のファイルシステムアーキテクチャに従ってフォーマットされる。
【0014】
少なくともいくつかの実施形態では、インストールされたOS(「第1のOS」)が新しいOS(「第2のOS」)に置き換えられてよい。例えば、インストールされたOSがサポート不足のために減価した場合、新たなOSがコンピューティング装置にインストールされることがある。コンピューティング装置を第2のOSに変換するために、第2のOSに関連付けられたイメージファイルがプロセッサによって実行され、第1および第2のデータ記憶装置の少なくとも一方に第2のOSがインストールされる。本実施形態では、第2のOSは第1のデータ記憶装置にインストールされ、第2のデータ記憶装置には第1のOSがインストールされる。具体的には、データ記憶装置上に領域(以下、「OS領域」という)を生成し、ユーザが第1のOSに復帰する機能を保持したまま、第2のOSを試験することができるように、それぞれのOSをインストールする。OS領域はそれぞれのOSによってサポートされている特定のファイルシステムアーキテクチャでフォーマットされている(ただし、他のOSによってサポートされていない場合もある)。データを記憶するために、第1および第2のデータ記憶装置に追加の領域をインストールすることができる。いくつかの実施形態では、追加の領域が第1および第2のOSの両方によってサポートされるファイルシステムアーキテクチャでフォーマットすることができる。
【0015】
冗長アレイが、(OS領域の1つを上書きする)第1および第2のデータ記憶装置にわたって同期するのを防止するために、キックスタート構成ファイルがイメージファイルと共に実行されて、アレイを単一のデータ記憶装置(すなわち、第1のデータ記憶装置)上に構成する。すなわち、キックスタートクオ整列ファイルは第1のデータ記憶装置の領域のみを含むようにアレイを構成し、ミラーの他の半分を故障装置として扱う。ミラーの一部を、故障した装置として扱うことによって、第2のOSは、第2のデータ記憶装置上のデータを上書きせず、アレイのミラーを完成させる。むしろ、アレイは、それぞれのミラーにおいて、少なくとも領域で動作し続ける。したがって、第1および第2のOSの両方が記憶され、コンピューティング装置によって選択的に開始されることができる。第2のOSに完全に変換することが判定された後、第1のOSは削除され、冗長アレイは、第1および第2のデータ記憶装置を完全に利用するように更新される。
【0016】
例示的な実施形態では、DAシステムはDAコンピューティング装置を含む。いくつかの実施形態では、DAコンピューティング装置が第1および第2のデータ記憶装置と、メモリ装置と通信するプロセッサとを含む。他の実施形態では、DAコンピューティング装置が第1および第2のデータ記憶装置と通信するプロセッサに通信可能に接続される。そのような実施形態では、プロセッサおよびメモリ装置が、第1および第2のデータ記憶装置を含むホストコンピューティング装置の一部である。DAコンピューティング装置は第1および第2のデータ記憶装置が第2のOSと共にアレイとして動作することを可能にするためにデータ整列処理を実行することによって、第1および第2のデータ記憶装置を整列するように構成される。すなわち、アレイ内のデータ記憶装置を動作させるために、第1および第2のデータ記憶装置内の領域は、それぞれのミラーに追加される、一致するサイズおよび一致するファイルシステムを含まなければならない。少なくともいくつかの公知のシステムでは2つのデータ記憶装置を整列させることは、アレイを初期化するために、追加のデータ記憶装置および/またはコンピューティング装置の1つ以上のリブートを必要としうる。これはコンピューティング装置によって提供されるサービスを中断し得る。例示的な実施形態では、DAコンピューティング装置がキックスタート構成ファイルによって構成された「故障」装置と、冗長アレイの「ホットスワップ」機能とを使用して、追加のデータ記憶装置を使用することなく、またはコンピューティング装置をリブートすることなく、第1および第2のデータ記憶装置を整列させる。
【0017】
例示的な実施形態では、DAコンピューティング装置が第1および/または第2のデータ記憶装置を整列させる前に、同期またはミラー復旧処理を受けているかどうかを判定するように構成される。より具体的には、DAコンピューティング装置がメタデータを分析して、進行中の同期または復旧処理を検出する。メタデータは、アレイ内のそれぞれのミラーの現行状態を示す状態ファイルまたは状態データを含む。同期化または復旧処理が行われていないと判定した後、DAコンピューティング装置は、データ整列処理を開始する。
【0018】
DAコンピューティング装置はさらに、第1および第2のデータ記憶装置に記憶されたデータを使用してプロセスまたはサービスを中断することなく、バックグランドでのデータ整列処理の実行を容易にするために、アレイ内のミラーのためのデータ伝達速度を設定するように構成される。いくつかの実施形態では、DAコンピューティング装置がデータ伝送速度限界を設定するために、アレイミラーに関連付けられたブロック装置ファイルを生成し、それに命令を送信する。
【0019】
DAコンピューティング装置はメタデータをスキャン(走査)して、以前のアレイに関連付けられたデータを識別し、削除する。DAコンピューティング装置が以前のアレイに関連するデータを検出すると、DAコンピューティング装置はデータを上書きまたは削除して、データがデータ整列処理に影響を及ぼさないようにする。DAコンピューティング装置は、メタデータをスキャンして、データ整列処理全体を通して、以前の任意のアレイに関連するデータを数回削除することができる。
【0020】
DAコンピューティング装置は少なくとも第1データの記憶装置によって保存されたメタデータを更新し、キックスタート構成ファイルによってフェイル装置と判別された領域に対する参照指摘事項を削除する。本明細書で使用されるように、「領域の第1のサブセット」は故障装置として識別されない、第1のデータ記憶装置によって記憶された領域を指す。「領域の第2のサブセット」は、故障装置として識別された領域を指す。少なくともいくつかの実施形態では、DAコンピューティング装置がメタデータから領域の第2のサブセットに関連付けられた参照ポインタを削除する。
【0021】
例示的な実施形態では、DAコンピューティング装置が第1および第2のデータ記憶装置のための領域テーブルを生成する。いくつかの実施形態では、DAコンピューティング装置が遠隔コンピューティング装置から領域テーブルを取り出す。領域テーブルは、データ整列処理によってそれぞれのデータ記憶装置上に生成される所定の領域を定義するデータを含む。また、領域テーブルには、データ容量、使用データ量、領域毎のブロック装置識別子など、領域毎の付加情報が含まれている。ブロック装置識別子は、領域に関連付けられたブロック装置ファイルを示すデータまたはポインタである。例示的な実施形態では、領域テーブルが、領域の第1のサブセットおよび領域の第2のサブセットに一致するデータエントリを含む。DAコンピューティング装置は第2のデータ記憶装置によって記憶された既存の領域テーブルを上書きするために、第2のデータ記憶装置上に領域テーブルを記憶する。既存の領域テーブルを上書きすることにより、最初のOSを記憶するOS領域を含む第2のデータ記憶装置から前の領域を削除する。例示的な実施形態では、DAコンピューティング装置が、一致するメタデータが第1および第2のデータ記憶装置によって記憶されるように、第2のデータ記憶装置上の領域のアレイに関連付けられたメタデータを記憶する。一致するメタデータを記憶することにより、第1または第2のデータ記憶装置が誤動作した場合であっても、アレイを正しく動作させることができる。したがって、メタデータを更新するか、さもなければ編集するとき、メタデータは、第1および第2のデータ記憶装置の両方の中で更新される。
【0022】
例示的な実施形態では、DAコンピューティング装置が領域の第2のサブセットを含むように第2のデータ記憶装置を更新するように構成される。より具体的には、DAコンピューティング装置が第2のデータ記憶装置から前の領域に関連する少なくとも1つの装置識別子を削除する。次いで、DAコンピューティング装置は領域の第2のサブセットについて記憶された領域テーブルをスキャンし、領域テーブルに基づいて第2のデータ記憶装置上の領域の第2のサブセットについて新しいブロック装置識別子を生成する。以前のブロック装置識別子を削除し、以前に故障した装置に関連付けられていた領域のサブセットのための新しい装置識別子を生成することによって、DAコンピューティング装置はコンピューティング装置をリブートすることを必要とせずに、領域のアレイの一部を単一のデータ記憶装置から2つのデータ記憶装置に移動させている。すなわち、DAコンピューティング装置は、冗長アレイのホットスワップ機能を使用して、第1および第2のデータ記憶装置によって記憶されたデータを使用するサービスまたはプロセスを中断することなく、領域の第2のサブセットを第2のデータ記憶装置に移動させる。例示的な実施形態では、DAコンピューティング装置が領域の第2のサブセットに関連付けられた参照ポインタを含むように第1および第2のデータ記憶装置に記憶されたメタデータを更新することによって、領域の第2のサブセットを領域のアレイにリンクするように構成される。参照ポインタは、第2のデータ記憶装置の新しい装置識別子を参照または識別するように構成される。領域の第2のサブセットは領域の第1のサブセットによって記憶されたデータをミラーリングするために、領域の第1のサブセットと同期される。
【0023】
データ記憶装置を整列させるために、少なくともいくつかの冗長アレイ(すなわち、RAID 1)は冗長アレイ内のそれぞれのミラーが少なくとも2つの一致領域を含むことを必要とする。このため、第1のデータ記憶装置は第2のデータ記憶装置に一致するようにも構成される。DAコンピューティング装置は第2のデータ記憶装置の処理と同様に、第1のデータ記憶装置の処理を行う。特に、例示的実施形態では、DAコンピューティング装置は、(i)前記メタデータから、前記第1の領域のサブセットに関連付けられた前記参照ポインタを削除することと、(ii)第2のデータ記憶装置からの領域テーブルを記憶することと、(iii)第1のデータ記憶装置から、第1の領域のサブセットに関連付けられた少なくとも1つのブロック装置識別子を削除することと、(iv)記憶された領域テーブルをスキャンして、前記第1のデータ記憶装置上の前記第1の領域のサブセットについて新たなブロック装置識別子を生成することと、(v)メタデータを更新して、前記第1の領域のサブセットについての前記参照ポインタを含ませて、第1の領域のサブセットを領域のアレイへ戻ってリンクさせることと、を実行する。第1のデータ記憶装置の構成中、第2のデータ記憶装置はデータを取り出し、記憶するためにアクセス可能である。それによって、第1および第2のデータ記憶装置に記憶されたデータを使用して実行される任意のサービスまたはプロセスの中断が防止される。メタデータが領域の第1のサブセットのための参照ポインタを含むように更新された後、第1および第2のデータ記憶装置のデータが整列され、領域のアレイは、両方のデータ記憶装置を使用するように構成される。
【0024】
例示的な実施形態では、DAコンピューティング装置が第1および第2のデータ記憶装置上の任意の未使用空間を含むように、アレイの少なくとも1つのミラーを拡張する。各ミラーは各データ記憶装置からの少なくとも1つの領域を含み、したがって、1つのミラーを拡張すると、各データ記憶装置上のそれぞれの領域が拡張される。次に、DAコンピューティング装置はリブート後にアレイが残るように、冗長アレイに関連付けられたアレイ構成ファイルにメタデータを保存する。少なくともいくつかの実施形態では、DAコンピューティング装置がグランドユニファイドブートローダ(GRUB)などのブートローダを第1および第2のデータ記憶装置の両方にインストールして、新しいOSがいずれかのデータ記憶装置からブート可能になるようにする。ブートローダは、どの装置をどの順序で起動するかを決定するように構成されている。DAコンピューティング装置がデータ記憶装置と直接的に通信するいくつかの実施形態では、DAコンピューティング装置がDAコンピューティング装置に上述のデータ整列処理を実行させるスクリプトまたは命令セットを遠隔コンピューティング装置から受信することができる。
【0025】
他の実施形態では、DAコンピューティング装置が第1および第2のデータ記憶装置を含むホストコンピューティング装置と通信する。そのような実施形態では、DAコンピューティング装置が上位コンピューティング装置にデータ整列処理を実行させるスクリプトを生成するように構成される。あるいは、スクリプトがローカルに生成され、処理されてもよい(すなわち、別のコンピューティング装置から受信されない)。スクリプトを使用することにより、データ整列処理を少なくとも部分的に自動化して、プロセスを完了するのに必要な、専門家による概覧を減らすことができる。
【0026】
スクリプトを生成するために、遠隔コンピューティング装置またはDAコンピューティング装置はログファイルデータ、ホスト名、および第1および第2のデータ記憶装置に関連付けられたディスクサイズなどの、データ記憶装置に関連付けられた環境変数を収集するように構成されるが、これらに限定されない。ログファイルデータは、受信側コンピューティング装置によって処理される際に、スクリプトに関する情報を記録するログファイルの位置とフォーマットとを識別する。ホスト名は、スクリプトを実行するように指定されたコンピューティング装置を識別する。これらの環境変数は収集され、スクリプトに挿入され、特定の受信者コンピューティング装置のためにスクリプトをカスタマイズする。
【0027】
本明細書で説明される方法およびシステムはコンピュータソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せまたはサブセットを含むコンピュータプログラミングまたはエンジニアリング技法を使用して実装することができる。技術的効果は、(i)領域の第2のサブセットを故障領域として識別することによって、領域の第1および第2のサブセットを含む領域のアレイに関連するメタデータを更新して、領域の第2のサブセットを削除することと、(ii)領域の第1および第2のサブセットを識別する領域テーブルを第1および第2のデータ記憶装置に格納することと、(iii)第2のデータ記憶装置から以前の領域に関連する少なくとも1つのブロック装置識別子を削除することと、領域の第2のサブセットについての新たなブロック装置識別子を生成するために領域の第2のサブセットについて記憶された領域テーブルをスキャンすることとによって、領域の第2のサブセットを含むように第2のデータ記憶装置を更新することと、(iv)メタデータを更新して領域の第2のサブセットについての新たなブロック装置識別子に関連付けられた、領域の第2のサブセットの参照ポインタを含ませることによって、領域の第2のサブセットを領域のアレイにリンクさせることと、(vi)領域のアレイに関連する少なくとも1つのブロック装置識別子を第1のデータ記憶装置から削除することと、(vii)第1のデータ記憶装置上に領域の第1のサブセットについての新たなブロック装置識別子を生成するために、領域の第1のサブセットについての記憶された領域テーブルをスキャンすることと、(viii)領域の第1のサブセットに関する参照ポインタを含むようにメタデータを更新することと、(ix)領域の第1および第2のサブセットの少なくとも1つの領域を、第1および第2のデータ記憶装置の未使用のデータ記憶空間を含むように拡張することと、(x)第1および第2のデータ記憶装置に格納されたオペレーティングシステムが第1のデータ記憶装置または第2のデータ記憶装置から初期化することを可能にするために、ブートローダを第1および第2のデータ記憶装置にインストールすることと、のうち1つを実行することによって実現される。
【0028】
本明細書のシステム及び方法は、(a)OS間にて変換するデータ記憶装置上に記憶されたデータを用いて、帯域幅と、サービス及び処理との処理干渉とを低減することと、(b)スクリプトを用いてデータ整列を自動化することによって専門的な概覧を低減することと、(c)バックグラウンドでデータ整列処理を実行することによって、2つのデータ記憶装置上のアレイを整列するのに必要な時間を低減することと、(d)新たなOSを冗長アレイで試験しながら、初期のOSに戻る選択肢を提供することによる改善したデータ安全性、とを支援するよう構成される。
【0029】
ここでは、ホストコンピューティング装置、DAコンピューティング装置等のコンピュータシステムについて説明する。本明細書で説明するように、そのようなコンピュータシステムはすべて、プロセッサおよびメモリを含む。
【0030】
さらに、本明細書で言及されるコンピュータ装置内の任意のプロセッサは1つまたは複数のプロセッサを指すこともでき、プロセッサは、並列に動作する1つのコンピューティング装置または複数のコンピューティング装置内にあることができる。さらに、本明細書で言及されるコンピュータ装置内の任意のメモリは1つまたは複数のメモリを指すこともでき、メモリは、並列に動作する1つのコンピューティング装置または複数のコンピューティング装置内にあることができる。
【0031】
本明細書で使用されるように、プロセッサは、マイクロコントローラ、縮小命令設定回路(RISC)、特定の用途向け集積回路(ASIC)、ロジック回路、および本明細書で説明される機能を実行することができる任意の他の回路またはプロセッサを使用するシステムを含む、任意のプログラマブルシステムを含むことができる。上記の例は単なる例示であり、したがって、「プロセッサ」という語の定義および/または意味合いを限定することを決して意図するものではない。
【0032】
本明細書で使用される「データベース」という語は、データの本体、リレーショナルデータベースマネージメントシステム(RDBMS)、またはその両方を指すことができる。本明細書で使用されるように、データベースは、階層データベース、リレーショナルデータベース、フラットファイルデータベース、オブジェクトリレーショナルデータベース、オブジェクト指向データベース、およびコンピュータシステムに格納される記録またはデータの任意の他の構造化された集合を含む任意の集合のデータを含むことができる。上記の例は、例にすぎず、したがって、データベースという用語の定義および/または意味を限定することを意図するものでは決してない。RDBMSの例にはOracle(登録商標)Database、MySQL、IBM(登録商標)DB2、Microsoft(登録商標)SQLサーバ、Sybase(登録商標)、およびPostgreSQLが含まれるが、これらに限定されない。しかし、本明細書に記載のシステムおよび方法を可能にする任意のデータベースを使用することができる。(Oracleはカリフォルニア州レッドウッドショアーズのOracle Corporationの登録商標であり、IBMはニューヨーク州アーモンクのInternational Business Machines Corporationの登録商標であり、Microsoftはワシントン州レッドモンドのMicrosoft Corporationの登録商標であり、Sybaseはカリフォルニア州ダブリンのSybaseの登録商標である。
【0033】
一実施形態ではコンピュータプログラムが提供され、このプログラムはコンピュータ可読媒体上に実装される。例示的な実施形態では、システムがサーバコンピュータへの接続を必要とせずに、単一のコンピュータシステム上で実行される。さらなる実施形態では、システムがWindows(Windowsはワシントン州レッドモンドのMicrosoft Corporationの登録商標)で実行されている。さらに別の実施形態では、システムがメインフレーム環境およびUNIX(登録商標)サーバ環境上で実行される(UNIXが英国バークシャー州リーディングに所在するX/Open Company Limitedの登録商標)。アプリケーションは柔軟性があり、主要な機能性を損なうことなく、種々異なる環境で動作するように設計されている。いくつかの実施形態では、システムが複数のコンピューティング装置間に分散された多数のコンポーネントを含む。1つまたは複数の構成要素は、コンピュータ可読媒体内に実装されたコンピュータ実行可能命令の形態とすることができる。
【0034】
ここで用いられているように、単独で引用され、「a」又は「a」又は「an」という用語で進められる要素又はステップはその除外が明示的に言及されない限り、複数の要素又はステップを除外しないものとして理解されるべきである。さらに、本開示の「実施形態」又は「一実施形態」に関する言及は、引用された特徴をも含む追加の実施形態の存在を除外するものとして解釈されるものではない。
【0035】
本明細書で使用されるように、「ソフトウェア」および「ファームウェア」という用語は交換可能であり、RAMメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、および不揮発性RAM(NVRAM)メモリを含む、プロセッサによる実行のためにメモリに格納された任意のコンピュータプログラムを含む。上記のメモリのタイプは、例示にすぎず、したがって、コンピュータプログラムの記憶に使用可能なメモリのタイプに関して限定するものではない。
【0036】
本システムおよびプロセスは、本明細書に記載の特定の実施形態に限定されない。さらに、各システムおよび各処理の構成要素は、本明細書に記載される他の構成要素および処理とは独立して、かつ別個に実施することができる。それぞれの構成要素および処理は、他の組み立てパッケージおよび処理と組合せて使用することもできる。
【0037】
以下の詳細な説明は本開示の実施形態を例示するものであり、限定するものではない。本発明は、オペレーティングシステム転換中にデータ記憶装置間でデータを整列させるための全般的な用途を有することが企図される。
【0038】
図1は、冗長アレイ内の2つのデータ記憶装置間でデータを整列させるための例示的なデータ整列(DA)システム100の構成図である。例示的な実施形態では、システム100がDAコンピューティング装置102を含む。DAコンピューティング装置102は、プロセッサ104と、プロセッサ104と通信するメモリ装置106と、第1のデータ記憶装置108と、第2のデータ記憶装置110とを含む。いくつかの実施形態では第1および/または第2のデータ記憶装置108、110はDAコンピューティング装置102とは別個である。例えば、第1および第2のデータ記憶装置108、110は、DAコンピューティング装置102と通信するネットワークアタッチドストレージ(NAS)として構成することができる。他の実施形態では、システム100が、本明細書の他の場所で説明されるものを含む、追加の、より少ない、または代替の構成要素を含むことができる。例えば、DAコンピューティング装置102は、3つ以上のデータ記憶装置を含むことができる。
【0039】
DAコンピューティング装置102は、第1および第2のデータ記憶装置108、110に記憶されたデータに関連する1つまたは複数のプロセスまたはサービスを提供するように構成される。例えば、DAコンピューティング装置102は、認証、承認、決済、および/または他の方法で支払いネットワーク内の支払いトランザクションを処理することに関するメッセージを送受信するなど、様々な当事者間の支払いネットワーク内のデータ通信を容易にするように構成され得る。他の実施形態では、DAコンピューティング装置102がデータ記憶装置108、110に記憶されたデータを使用して、別のサービスまたは処理を提供するように構成される。
【0040】
例示的な実施形態では第1および第2のデータ記憶装置108、110は複数の領域112に分割されたデータ記憶能力を有する。領域112は、データ記憶装置108、110のサブセクションである。本明細書で説明するデータ整列処理の前に、第1のデータ記憶装置108は第1の動作システム(OS)に関連付けられ、第2のデータ記憶装置110は第1のOSとは別の第2のOSに関連付けられる。特に、第1のデータ記憶装置108は第1のOSに関連し、同様に第2のデータ記憶装置110および第2のOSのためのファイルシステムアーキテクチャに従ってフォーマットされた少なくとも1つの領域112を含む。いくつかの実施形態では、少なくともいくつかの領域112が第1および第2のOSの両方によってアクセス可能である。
【0041】
それぞれの領域112は、ブロック装置ファイル(
図1には示されていない)に関連付けられている。ブロック装置ファイルは、ソフトウェアアプリケーション(OSを含む)が、領域112と対話することを可能にする。それぞれのブロック装置ファイルは、複数の領域に関連付けられてもよい。データ記憶装置108、110は、関連するブロック装置ファイルを参照する又は指す1つまたは複数のブロック装置識別子(
図1には図示せず)を含む。いくつかの実施形態では、ブロック装置ファイルではなく、領域112を文字装置ファイルに関連付けることができる。
【0042】
それぞれのデータ記憶装置108、110上の領域112を識別するために、データ記憶装置108、110は、それぞれの領域テーブル114を含む。領域テーブル114は、それぞれのデータ記憶装置108または110上のそれぞれの領域112に関する情報(これは例えば、データ記憶容量、現在使用されているデータ記憶装置、領域識別子(すなわち、それぞれの領域112の名前)、および領域112のアレイのための1つまたは複数の参照ポインタ等であるが、これらに限定されない)を定義する。領域テーブル114はデータ記憶装置108、110の領域112を識別し、それと対話するために、DAコンピューティング装置によって使用される。
【0043】
例示的な実施形態では、第1のデータ記憶装置108および/または第2のデータ記憶装置110が独立ディスクの冗長アレイ(RAID)などの領域のアレイに関連付けられたメタデータ116を含む。アレイは、データ記憶装置上で冗長性および/または性能の向上を提供するために使用される。例えば、第1のデータ記憶装置108は、第1のデータ記憶装置108上の領域112を使用して1つまたは複数のミラーを含むようにRAID 1構成で構成される。他の実施形態では、第1のデータ記憶装置108が別のアレイ構成(例えば、RAID 5またはRAID 6)にある。例示的な実施形態では、メタデータ116がアレイ内の領域のための複数の参照ポインタ(
図1には図示せず)を含む。それぞれの参照ポインタは、それぞれの領域112に関連するブロック装置ファイルを識別する。一実施形態では、参照ポインタが領域112に関連するブロック装置識別子である。別の実施形態では、参照ポインタがブロック装置識別子を識別する。例示的な実施形態ではアレイが第1のデータ記憶装置108にのみ記憶される場合、メタデータ116は第2のデータ記憶装置110に記憶されなくてもよい。
【0044】
例示的な実施形態では、領域のアレイが1つまたは複数のミラーを含む。それぞれのミラーは、複数の領域112を含む。ミラー内のそれぞれの領域112は、一致するデータを記憶する。第2のデータ記憶装置110に関連付けられた第2のOSから第1のデータ記憶装置108に関連付けられた第1のOSへのOS変換中、第1のデータ記憶装置108は、第1のデータ記憶装置108の領域112のみを使用して領域のアレイを含むように構成される。すなわち、第1のデータ記憶装置108のメタデータ116は、第1のデータ記憶装置108の領域112に対する参照ポインタのみを含むように更新される。アレイ内のそれぞれのミラーの少なくとも1つの領域112は、DAコンピューティング装置102によって「故障」装置として識別される。例示的な実施形態では、領域112を故障として識別することによって、第1のOSの核が第1のデータ記憶装置108上のデータを第2のデータ記憶装置110と同期させようとすることが防止され、それによって、第1のOSの試験中に第2のOSを第2のデータ記憶装置110上に維持する。
【0045】
第1のOSを使用することが判定された後、本明細書で説明するように、データ整列処理がDAコンピューティング装置102によって実行される。データ整列処理は、故障領域112を第1のデータ記憶装置108から第2のデータ記憶装置110に転送して、DAコンピューティング装置102によって実行されるサービスまたは処理を中断することなく、両方のデータ記憶装置を利用するために使用される。すなわち、DAコンピューティング装置102は、数回再起動し、第1のOSを用いて領域のアレイを再初期化する必要はない。
【0046】
図2は、システム100(
図1に示す)と同様の例示的なDAシステム200の構成図である。システム100とは異なり、DAシステム200は、DAコンピューティング装置220と通信するホストコンピューティング装置202を含む。ホストコンピューティング装置202は、1つまたは複数のプロセッサ204、メモリ装置206、第1のデータ記憶装置208、および第2のデータ記憶装置210を含む。他の実施形態では、ホストコンピューティング装置202が本明細書の他の箇所に記載されるものを含む、追加の、より少ない、または代替の構成要素を含む。
【0047】
DAコンピューティング装置220はスクリプト222を生成し、スクリプト222をホストコンピューティング装置202に送信するように構成されたリモートコンピューティング装置である。スクリプト222は、プロセッサ204によって実行されると、ホストコンピューティング装置202をDAコンピューティング装置102(
図1に示す)と同様に動作させる命令またはコマンドを記憶するデータファイルである。より具体的には、ホストコンピューティング装置222が、スクリプト222に基づいて、本明細書で説明するように、第1および第2のデータ記憶装置208、210を使用してデータ整列処理を実行するように構成される。
【0048】
例示的な実施形態では、DAコンピューティング装置220がホストコンピューティング装置202から1つまたは複数の環境変数224を取り出すように構成される。環境変数224は、ログファイルデータ、装置識別子、および第1および第2のデータ記憶装置208、210のデータ記憶容量など、ホストコンピューティング装置202に特定な情報を含む。DAコンピューティング装置220はさらに、スクリプト222がホストコンピューティング装置202上で適切に実行できるようにするために、スクリプト222に環境変数224を入れるように構成される。すなわち、スクリプト222は、環境変数224で設定(ポピュレート)されるテンプレートとして記憶されて、ホストコンピューティング装置202に展開されてよい。いくつかの実施形態では、スクリプト222がホストコンピューティング装置202によって生成され、実行される。
【0049】
図3は、例示的なデータ整列処理中のシステム100(
図1に示す)のデータ図である。例示的なデータ整列処理は、「故障」領域を使用して第2のOSが第1のデータ記憶装置108に記憶され、且つ、第2のデータ記憶装置110が第1のOSを記憶した後に、実行される。第1および第2のデータ記憶装置108、110は
図3のDAコンピューティング装置102とは別のものとして図示されているが、DAコンピューティング装置102は第1および/または第2のデータ記憶装置108、110を含むことができることは理解されるべきである。いくつかの実施形態では、データ整列処理が様々な状況下で実行されてもよい。他の実施形態では、データ整列処理が本明細書の他の箇所で説明されるものを含む、追加の、より少ない、または代替のデータおよび/またはステップを含む。
【0050】
図1および
図3を参照すると、例示的な実施形態では、DAコンピューティング装置102が第1および/または第2のデータ記憶装置108、110がデータ記憶装置を整列する前に、同期またはミラー復旧処理を受けているかどうかを判定するように構成される。より具体的には、DAコンピューティング装置がメタデータ116を分析して、進行中の同期また復旧処理を検出する。同期または復旧処理は、一致データがミラーのそれぞれの領域112に記憶されることを保証するために実行される。メタデータ116は、アレイ内のそれぞれのミラーの現行状態を示す状態ファイルまたは状態データ302を含む。例えば、これに限定されないが、状態データ302はそれぞれのミラーを「動作中」、「故障」、「同期中」等として識別することができる。同期または復旧処理が行われていないと判定した後、DAコンピューティング装置102は、データ整列処理を開始する。
【0051】
DAコンピューティング装置102は、第1および第2のデータ記憶装置108、110に記憶されたデータを使用して、いかなるプロセスまたはサービスも中断することなくバックグランドでのデータ整列処理の実行を容易にするために、アレイ内のミラーのためのデータ伝達速度を設定するように構成される。いくつかの実施形態では、DAコンピューティング装置102がデータ伝送速度限界を設定するために、アレイミラーに関連付けられた装置ファイル304を遮断するための命令を生成し、伝送する。
【0052】
DAコンピューティング装置102はメタデータ116をスキャンして、以前のアレイに関連付けられた任意のデータを識別し、削除する。データは以前に構成されたアレイに関連付けられた参照ポインタを含むことができるが、これに限定されない。DAコンピューティング装置102が以前のアレイに関連するデータを検出すると、DAコンピューティング装置102はデータがデータ整列処理に影響を及ぼさないように、メタデータ116からデータを上書きまたは削除する。DAコンピューティング装置102は、メタデータ116をスキャンして、データ整列処理全体を通して、以前の任意のアレイに関連するデータを数回削除することができる。
【0053】
DAコンピューティング装置102は、少なくとも第1のデータ記憶装置108によって記憶されたメタデータ116を更新して、キックスタート構成ファイルによって故障装置と識別された領域112に関連付けられた参照ポインタ306を削除する。本明細書で使用されるように、「領域308の第1のサブセット」は故障装置として識別されない、第1のデータ記憶装置108によって記憶された領域112を指す。「領域310の第2のサブセット」は、故障装置として識別された領域112を指す。少なくともいくつかの実施形態において、DAコンピューティング装置102は、領域310の第2のサブセットに関連する参照ポインタ306をメタデータ116から削除する。
【0054】
例示的な実施形態では、DAコンピューティング装置102が第1および第2のデータ記憶装置108、110のための領域テーブル312を生成する。他の実施形態では、DAコンピューティング装置102が、メモリ装置104、遠隔データベース(図示せず)、および/または別のメモリ装置から、領域テーブル312を取り出す。領域テーブル312は、データ整列処理によってそれぞれのデータ記憶装置上に構成される所定の領域112を定義するデータを含む。すなわち、第1のデータ記憶装置108上の領域テーブル312は第1のデータ記憶装置108内の領域308の第1のサブセットを定義するデータを含み、第2のデータ記憶装置110上の領域テーブル312は、第2のデータ記憶装置110内の領域310の第2のサブセットを定義するデータを含む。例示的な実施形態ではデータ記憶装置108、110ごとの領域テーブル312はそれぞれ第1および第2のデータ記憶装置108、110内の領域308、310の両方のサブセットを定義するデータを含む。また、領域テーブル312は、データ容量、現在使用されているデータの大きさ、及び各領域112に対するブロック装置識別子314のような、各領域112に対する付加的な情報を含む。ブロック装置識別子314は、領域112に関連するブロック装置ファイル312を示すデータまたはポインタである。
【0055】
DAコンピューティング装置102は以前のOS(すなわち、第1のOS)に関連付けられた以前の領域316を含む、第2のデータ記憶装置110によって記憶された以前の領域を上書きするために、第2のデータ記憶装置110上に領域テーブル312を記憶する。例えば、少なくとも1つの以前の領域316は、以前のOSによってサポートされたファイルシステムアーキテクチャでフォーマットされてもよい。DAコンピューティング装置102は領域310の第2のサブセットを第2のデータ記憶装置110に移動することを容易にするために、第2のデータ記憶装置110内の領域のアレイに関連するメタデータ116を記憶する。一実施形態では、メタデータ116は、第1のデータ記憶装置108によって記憶されたメタデータ116からコピーすることができる。メタデータ116の一致コピーは、メタデータ116への任意の更新または編集がデータ記憶装置108、110の両方によって記憶されるように、第1および第2のデータ聞く装置108、110に保存される。メタデータ116を一致させることにより、領域のアレイは、装置故障の場合であっても動作し続けることができる。
【0056】
例示的な実施形態では、DAコンピューティング装置102が領域310の第2のサブセットを含むように第2のデータ記憶装置110を更新するように構成される。より具体的には、DAコンピューティング装置102は、第2のデータ記憶装置110から前の領域316に関連する少なくとも1つの装置識別子314を削除する。次いで、DAコンピューティング装置102は領域310の第2のサブセットについて記憶された領域テーブル312をスキャンし、第2のデータ記憶装置110上の領域310の第2のサブセットについて新しいブロック装置識別子314を生成する。以前のブロック装置識別子314を削除し、以前に故障した装置に関連付けられていた領域のサブセットのための新しい装置識別子314を生成することによって、DAコンピューティング装置102はコンピューティング装置をリブートすることを必要とせずに、領域のアレイの一部を単一のデータ記憶装置から2つのデータ記憶装置に移動させている。すなわち、DAコンピューティング装置102は、冗長アレイのホットスワップ機能を使用して、第1および第2のデータ記憶装置108、110によって記憶されたデータを使用するサービスまたはプロセスを中断することなく、領域310の第2のサブセットを第2のデータ記憶装置110に移動させる。
【0057】
例示的な実施形態では、DAコンピューティング装置102は、領域310の第2のサブセットに関連付けられた参照ポインタ306を含むように第1および第2のデータ記憶装置108、110に記憶されたメタデータ116を更新することによって、領域310の第2のサブセットを領域のアレイにリンクするように構成される。参照ポインタ306は、第2のデータ記憶装置110の新しい装置識別子314を参照または識別するように構成される。領域310の第2のサブセットは領域308の第1のサブセットによって記憶されたデータをミラーリングするために、領域308の第1のサブセットと同期される。
【0058】
データ記憶装置108、110を整列させるために、第1のデータ記憶装置108はまた、第2のデータ記憶装置110に整列するように構成される。なぜなら、少なくともいくつかの冗長アレイ(すなわち、RAID 1)が、冗長アレイ内のそれぞれのミラーが少なくとも2つの一致領域を含むことを必要とするからである。DAコンピューティング装置102は第2のデータ記憶装置110のためのプロセスと同様に、第1のデータ記憶装置108のためのプロセスを実行する。特に、例示的な実施形態では、DAコンピューティング装置102が(i)メタデータ116から領域308の第1のサブセットに関連付けられた参照ポインタ306を削除し、(ii)第2のデータ格納装置110から領域テーブル308を格納し、(iii)領域308の第1のサブセットに関連付けられた少なくとも1つのブロック装置識別子314を第1のデータ格納装置108から削除し、(iv)格納された領域テーブル308をスキャンして、第1のデータ格納装置108上の領域308の第1のサブセットのための新しいブロック装置識別子314を生成し、(v)領域308の第1のサブセットのための参照ポインタ306を含むように、第1および第2のデータ格納装置108、110に格納されたメタデータ116を更新し、それによって領域308の第1のサブセットを領域のアレイにリンクさせる。第1のデータ記憶装置108の構成中、第2のデータ記憶装置110はデータを取り出し、記憶するためにアクセス可能である。これによって、記憶されたデータを使用するサービスおよび/または処理の中断を防止する。メタデータ116が更新されて、領域308の第一のサブセットに対する参照ポインタ306が含まれると、第1および第2のデータ保存装置108、110のデータが整列され、領域のアレイがデータ保存装置108、110の両方を使用するように構成される。
【0059】
例示的な実施形態では、DAコンピューティング装置102が第1および第2のデータ記憶装置108、110上の任意の未使用空間を含むように、アレイの少なくとも1つのミラーを拡張する。各ミラーは各データ記憶装置108.110からの少なくとも1つの領域112を含み、したがって、1つのミラーを拡張すると、各データ記憶装置108、110上のそれぞれの領域112が拡張される。次に、DAコンピューティング装置102はリブート後もアレイが残るように、冗長アレイに関連付けられたアレイ構成ファイル318にメタデータ116を保存する。いくつかの実施形態では、アレイ構成ファイル318が第1および/または第2のデータ記憶装置108、110内に記憶される。他の実施形態では、アレイ構成ファイル318がアレイ制御部(図示せず)などの別個のデータ記憶装置に記憶される。少なくともいくつかの実施形態では、DAコンピューティング装置102がグランドユニファイドブートローダ(GRUB)などのブートローダ320を第1および第2のデータ記憶装置108、110にインストールし、新しいOSがいずれかのデータ記憶装置108、110からブート可能になるようにする。ブートローダ320は、どの装置をどの順序で起動するかを決定するように構成されている。
【0060】
図4は、DAコンピューティング装置202(
図2に示す)などの遠隔のまたはユーザコンピューティング装置402の例示的な構成を示す。コンピューティング装置402は、命令を実行するためのプロセッサ405を含むことができる。いくつかの実施形態では、実行可能命令がメモリ領域410に格納されてもよい。プロセッサ405は(例えば、マルチコア構成において)1つ以上の処理ユニットを含み得る。メモリ領域410は、実行可能命令および/または他のデータなどの記憶および検索を可能にする任意の装置とすることができる。メモリ領域410は、1つまたは複数のコンピュータ可読媒体を含むことができる。
【0061】
コンピューティング装置402はまた、ユーザ401に情報を提示するために、少なくとも1つのメディア出力コンポーネント415を含んでもよい。メディア出力コンポーネント415は、ユーザ401に情報を伝達することができる任意のコンポーネントであってもよい。いくつかの実施形態では、メディア出力コンポーネント415がビデオアダプタおよび/またはオーディオアダプタなどの出力アダプタを含むことができる。出力アダプタはプロセッサ405に動作可能に接続され、表示装置(例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、陰極管(CRT)、または「電子インク」ディスプレイ)または音声出力装置(例えば、スピーカまたはヘッドホン)のような出力装置に動作可能に接続され得る。いくつかの実施形態では、メディア出力コンポーネント415が対話型ユーザインタフェース(例えば、ウェブブラウザまたはクライアントアプリケーション)をユーザ401に提示するように構成されてもよい。
【0062】
いくつかの実施形態では、コンピューティング装置402がユーザ401から入力を受信するための入力装置420を含み得る。入力装置420は例えば、キーボード、ポインティング装置、マウス、スタイラス、タッチセンシティブパネル(例えば、タッチパッド又はタッチスクリーン)、カメラ、ジャイロスコープ、加速度センサ、位置検出部、及び/又は音声入力装置を含むことができる。タッチスクリーンのような単一の構成要素は、メディア出力コンポーネント415の出力装置及び入力装置420の両方として機能することができる。
【0063】
コンピューティング装置402はまた、遠隔装置に通信可能に接続可能であり得る通信ユニット425を含み得る。通信ユニット425は例えば、携帯電話機ネットワーク(例えば、グローバルシステムフォーモバイルコミュニケーションズ(GSM)、3G、4GまたはBluetooth)または他のモバイルデータネットワーク(例えばWIMAX)と共に使用するための有線または無線のネットワークアダプタまたはワイヤレスデータ送受信機を含むことができる。
【0064】
メモリ領域410には、例えば、メディア出力コンポーネント415を介してユーザ401にユーザインタフェースを提供し、選択的に、入力装置420からの入力を受信し処理するためのコンピュータ可読命令が格納される。ユーザインタフェースは、他の可能性の中でもとりわけ、ウェブブラウザ及びクライアントアプリケーションを含むことができる。ウェブブラウザは、ユーザ401が販売者に関連付けられたウェブサーバからウェブページまたはウェブサイトに典型的に埋め込まれた媒体および他の情報を表示し、それらと対話することを可能にする。クライアントアプリケーションはユーザ401が例えば、ベンダまたは企業に関連付けられたサーバアプリケーションと対話することを可能にする。
【0065】
図5は、DAコンピューティング装置102(
図1に示す)およびホストコンピューティング装置202(
図2に示す)などのホストコンピューティング装置502の例示的な構成を示す。
ホストコンピューティング装置502は、命令を実行するためのプロセッサ505を含むことができる。命令は例えば、メモリ領域510に格納することができる。プロセッサ505は(例えば、マルチコア構成において)1つ以上の処理ユニットを含み得る。
【0066】
プロセッサ505はホストコンピューティング装置502が
図4に示すコンピューティング装置402または別のホストコンピューティング装置502などの遠隔装置と通信することができるように、通信ユニット515に動作可能に接続することができる。例えば、通信ユニット515は、インターネットを介してユーザコンピューティング装置402から要求を受信することができる。
【0067】
プロセッサ505はまた、記憶装置525(例えば、図第1に示される第1および第2のデータ記憶装置108、110)に動作可能に接続され得る。記憶装置525は、データを記憶および/または検索するのに適した任意のコンピュータ操作ハードウェアであってもよい。いくつかの実施形態では、記憶装置525がホストコンピューティング装置502に統合されてもよい。例えば、ホストコンピューティング装置502は、記憶装置525として1つ以上のハードディスクドライブを含んでもよい。他の実施形態では、記憶装置525がホストコンピューティング装置502の外部にあってもよく、複数のホストコンピューティング装置502によってアクセスされてもよい。例えば、記憶装置525は、ハードディスクドライブまたはソリッドステートディスクなどの多数の記憶ユニットを、RAID構成で含むことができる。記憶装置525は、ストレージエリアネットワーク(SAN)および/またはネットワーク接続ストレージ(NAS)システムを含むことができる。
【0068】
いくつかの実施形態では、プロセッサ505が記憶インタフェース520を介して記憶装置525に動作可能に接続され得る。記憶インタフェース520は、プロセッサ505に記憶装置525へのアクセスを提供することができる任意の構成要素とすることができる。記憶インタフェース520は例えば、アドバンストテクノロジアタッチメント(ATA)アダプタ、シリアルATA(SATA)アダプタ、スモールコンピュータシステムインタフェース(SCSI)アダプタ、RAID制御部、SANアダプタ、ネットワークアダプタ、および/または記憶装置525への接続をプロセッサ405に提供する任意のコンポーネントを含むことができる。
【0069】
メモリ領域410(
図4に示す)および510は動的RAM(DRAM)または静的RAM(SRAM)などのランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROM)、電気的消去可能プログラマブル読出し専用メモリ(EEPROM)、および非揮発性RAM(NVRAM)を含むことができるが、これらに限定されない。上記のメモリのタイプは、例示にすぎず、したがって、コンピュータプログラムの記憶に使用可能なメモリのタイプに関して限定するものではない。
【0070】
図6は、システム100(
図1に示す)などのDAシステムを使用して、2つのデータ記憶装置間で領域のアレイのデータを整列させるための例示的な方法600の流れ図である。方法600はDAコンピューティング装置(例えば、
図1に示すDAコンピューティング装置102)によって少なくとも部分的に実行される。他の実施形態では、方法600は、追加の、より少ない、または代替のステップ(本明細書の他の箇所で記載されるステップを含む)を含むことができる。
【0071】
方法600は、DAコンピューティング装置が、少なくとも第1のデータ記憶装置によって記憶された領域のアレイに関連付けられたメタデータを更新して(602)、領域のアレイのうち、領域の第2のサブセットに対する参照ポインタを削除することから始まる。参照ポインタを削除することはまた、領域のアレイから領域の第2のサブセットを削除する。DAコンピューティング装置は、第1のデータ記憶装置と第2のデータ記憶装置とに領域テーブルを記憶する(604)。領域テーブルは、第1のデータ記憶装置内の領域の第1のサブセットと、第2のデータ記憶装置内の領域の第2のサブセットとを定義する。DAコンピューティング装置は第1および第2のデータ記憶装置の両方がメタデータの複製(コピー)を含むように、第2のデータ記憶装置内の領域のアレイに、関連するメタデータを記憶する(606)。DAコンピューティング装置はさらに、領域の第2のサブセットを含むように第2のデータ記憶装置を更新する(608)。少なくともいくつかの実施形態では、DAコンピューティング装置は、第2のデータ記憶装置から前の領域に関連付けられた少なくとも1つのブロック装置識別子を削除することと、領域の第2のサブセットのために記憶された領域テーブルをスキャンして、領域テーブルに基づいて領域の第2のサブセットのための新しいブロック装置識別子を生成することとよって、領域の第2のサブセットを含む。
DAコンピューティング装置はまた、第1および第2のデータ記憶装置によって記憶されたメタデータを更新して(610)、領域の第2のサブセットを領域のアレイにリンクさせる。
例示的な実施形態では、DAコンピューティング装置が、領域の第2のサブセットの参照ポインタを含むようにメタデータを更新する(610)ことによって、領域の第2のサブセットを領域のアレイにリンクさせる。領域の第2のサブセットに対する基準ポインタは、領域の第2のサブセットに対する新しいブロック装置識別子に関連付けられる。
【0072】
例示的な実施形態では、領域の第2のサブセットを領域のアレイにリンクさせることに応答して、DAコンピューティング装置は領域の第1のサブセットを領域の第2のサブセットと整列させる(612)。いくつかの実施形態では、DAコンピューティング装置が(i)メタデータから領域の第1のサブセットに関連付けられた参照ポインタを削除すること、(ii)領域のアレイに関連付けられた少なくとも1つのブロック装置識別子を第1のデータ記憶装置から削除すること、(iii)第1のデータ記憶装置上の領域の第1のサブセットのための新しいブロック装置識別子を生成するために、領域の第1のサブセットについての記憶された領域テーブルをスキャンすること、および(iv)領域の第1のサブセットのための参照ポインタを含むようにメタデータを更新することとによって、領域の2つのサブセットを整列(612)させる。
【0073】
図7は、
図6に示される方法で使用され得る1つまたは複数の例示的なコンピューティング装置のコンポーネントの
図700である。
図7はさらに、DAコンピューティング装置102(
図1に示す)内のいくつかの別個の構成要素(これは特定のタスクを実行する)に結合されたデータ記憶システム710の構成を示す。
【0074】
DAコンピューティング装置102は領域の第2のサブセットのための参照ポインタを削除するために、領域のアレイに関連付けられたメタデータを更新するように構成された更新コンポーネント702を含む。更新コンポーネント702は、第2のデータ記憶装置から以前の領域に関連付けられた少なくとも1つのブロック装置識別子を削除することと、領域の第2のサブセットのために記憶された領域テーブルをスキャンして領域の第2のサブセットのための新しいブロック装置識別子を生成することとによって、第2のデータ記憶装置を更新して領域の第2のサブセットを含む。DAコンピューティング装置102はまた、第1および第2のデータ記憶装置にて領域の第1および第2のサブセットを識別する領域テーブルを記憶するように構成された記憶コンポーネント704を含む。記憶コンポーネント704は、第2のデータ記憶装置内の領域のアレイに関連付けられたメタデータを記憶するようにさらに構成される。DAコンピューティング装置102は、新たなブロック装置識別子に関連付けられた領域テーブルの第2のサブセットの参照ポインタを含むようにメタデータを更新することによって、領域テーブルの第2のサブセットを領域のアレイにリンクするように構成されたリンクコンポーネント706をさらに含む。少なくともいくつかの実施形態において、DAコンピューティング装置102は(i)メタデータから領域の第1のサブセットに関連する参照ポインタを削除し、(ii)領域の第1のデータ記憶装置から領域のアレイに関連する少なくとも1つのブロック装置識別子を削除し、(iii)第1の記憶装置上の領域の第1のサブセットに対する新しいブロック装置識別子を生成するために、領域の第1のサブセットに対する記憶された領域テーブルをスキャンし、および(iv)領域の第1のサブセットに対する参照ポインタを含むように、メタデータを更新することによって、領域の第1および第2のサブセットを整列させるように構成された整列コンポーネント708をさらに含む。
【0075】
例示的な実施形態ではデータ記憶システム710が複数のセクション(これはアレイデータセクション712、OSデータセクション714、装置メタデータセクション716、およびスクリプトデータセクション718を含むが、これらに限定されない)に分割される。これらのセクションは、DAコンピューティング装置102を介して相互接続され、必要に応じて更新および検索を行う。
【0076】
前述の仕様に基づいて評価されるように、本開示の上記の実施形態は、コンピュータソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せまたはサブセットを含むコンピュータコンピュータプログラムまたはエンジニアリング技術を用いて実施されることができる。コンピュータ可読および/またはコンピュータ実行可能命令を有する、そのような結果として得られる任意のコンピュータプログラムは、1つまたは複数のコンピュータ可読媒体内で実施または提供される。それによって、本開示で説明される実施形態によるコンピュータプログラム製品、すなわち製造品を作製することができる。これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)はプログラマブルプロセッサのための機械命令を含み、高いレベルの手続き型のおよび/またはオブジェクト指向のプログラミング言語、および/またはアセンブリ/機械語で実装することができる。本明細書で使用されるように、「機械可読媒体」、「コンピュータ可読媒体」、および「コンピュータ可読媒体」という用語はプログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラムプロダクト、装置、および/または装置(例えば、磁気ディスク、光ディスク、記憶部、プログラマブルロジック装置(PLD))を指す(これは機械可読信号として機械命令を受信する機械可読媒体を含む)。しかし「機械可読媒体」、「コンピュータ可読媒体」、および「コンピュータ可読媒体」は一時的信号を含まない(すなわち、「非一時的」である)。「機械可読信号」という用語は機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0077】
本明細書は最良の形態を含めて本発明を開示するための例を用いており、また、任意の装置またはシステムを作成および使用することと任意の組み込まれた方法を実行することとを含んで、任意の当業者が本発明を実施することを可能にするために例を用いている。
本発明の特許可能な範囲は、特許請求の範囲によって定義され、当業者に想起される他の例を含むことができる。そのような他の例は、それらが特許請求の範囲の文字通りの文言と異なる構造要素を有する場合、またはそれらが特許請求の範囲の文字通りの文言と実質的に異なる当量の構造要素を含む場合、特許請求の範囲内にあることが意図される。