大容量ディスクドライブの使用方法及び装置
【課題】ディスク障害の発生時に、リカバリ対象となるデータの記憶位置に対して優先度を付与することができるストレージシステムを提供する。
【解決手段】ストレージシステム内の複数の記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、ストレージシステム内の一つ以上の記憶領域を巻き込む障害の発生時に、優先度に基づいて、データリカバリを実行する工程と、を備える。優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。優先度は、アクセス特性を監視することによって付与されるか、又は、ストレージシステム内に記憶されているデータの使用状況及び/又は重要度に基づいてホスト又は管理コンピュータによって特定されるか、又は、シンプロビジョニングボリュームの領域割当て/リリース(つまり、使用状況)に基づいてストレージシステムによって決定される。
【解決手段】ストレージシステム内の複数の記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、ストレージシステム内の一つ以上の記憶領域を巻き込む障害の発生時に、優先度に基づいて、データリカバリを実行する工程と、を備える。優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。優先度は、アクセス特性を監視することによって付与されるか、又は、ストレージシステム内に記憶されているデータの使用状況及び/又は重要度に基づいてホスト又は管理コンピュータによって特定されるか、又は、シンプロビジョニングボリュームの領域割当て/リリース(つまり、使用状況)に基づいてストレージシステムによって決定される。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本発明はストレージシステムに関し、特に、大容量ディスクドライブを使用する方法及び装置に関する。
【背景技術】
【0002】
[0002] ハードディスクドライブ(HDD)市場では、HDDベンダが提供する単一のHDD装置の容量が急速に増加している。また、ソリッドステートディスク(SSD)装置の容量も増加している。ディスク装置の障害によるデータ損失を防ぐため、殆どのストレージシステムではミラーリングやRAID技術といったデータ保護を採用している。参考文献1に開示されるように、RAID構成は、いわゆるRAIDレベルに従って分類される。RAID4、RAID5、及び、RAID6の構成は、記憶されているデータから冗長情報として生成されるパリティコードを使用する。パリティコードを使用することによって、複数のディスクに分散して記憶されたデータを、ディスク障害時に再構成することができる。このようにして高いデータ可用性が実現される。上記参考文献では、複数のディスクに同一のデータを持たせるいわゆるミラーリング技術をデータ保護の一つの方法として紹介し、これをRAID1として分類している。
【0003】
[0003] 米国特許第7,386,758号にはオブジェクトベースのストレージデバイス(OSD)が開示されており、同ストレージデバイスは、RAID技術を使用し、各オブジェクトがOSD内のどこに記憶されているかを示すOSDの情報に従って、データの再構成を行う。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7,386,758号
【非特許文献】
【0005】
【非特許文献1】「A Case for Redundant Arrays of Inexpensive disks (RAID)」(D.A. Patterson、G. Gibson、R.H. Kats著、Proc. ACM SIGMOD社発行、1988年6月、109〜116頁)
【発明の開示】
【発明が解決しようとする課題】
【0006】
[0004] データのリカバリは、障害が発生したディスクに記憶されているデータをコピーしかつ/又は当該データと同一のデータを生成することによって実現されるため、リカバリプロセスには相当の時間が必要となる。また、ディスク障害の影響として、障害発生からリカバリ完了までの間に、冗長性の低下による使用不能やデータ損失の回避可能性が低くなり、データコピーによる負荷から性能が劣化してしまう。
【0007】
[0005] 大容量ディスクドライブを使用すると、従来の小容量ディスクドライブを使用する場合に比べてリカバリ対象となるデータ量が大きいため、上述の期間が長くなってしまう。したがって、現在、ユーザのアプリケーションや使用状況に合ったディスク障害リカバリ方法が求められている。
【課題を解決するための手段】
【0008】
[0006] 本発明の例示的な実施形態では、ディスク障害の発生時にリカバリ対象となるデータの記憶位置に対して優先度を付与することができるストレージシステムが提供される。ある実施形態では、アクセス頻度等のアクセス特性を監視することによって優先度を付与する。ストレージシステムは、データの使用状況としてアクセス特性を監視し、その統計データに従ってリカバリプロセスにおける優先度を決定する。別の実施形態では、ホストコンピュータ又は管理コンピュータが、ストレージシステムに記憶されているデータの使用状況及び又は重要度に基づいて優先度を決定する。この優先度は、ホストコンピュータ又は管理コンピュータがストレージシステムに登録する。そして、ストレージシステムは、決定された優先度に従ってディスク障害からのリカバリを行う。また別の実施形態では、ストレージシステムによる優先度の決定が、シンプロビジョニングボリュームの領域割当て/リリース(つまり使用状況)に基づいて行われる。上記のような方法を使用することにより、一つのディスクドライブ内にあるデータ記憶領域を複数の優先度に分類し、この優先度に従ってディスク障害からのリカバリを行うことができる。本発明は、大容量ディスクドライブに記憶されたデータのリカバリに適用すると特に有利である。
【0009】
[0007] 本発明の一態様によると、ストレージシステムにおけるストレージの使用方法は、前記ストレージシステム内の複数の記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行する工程と、を備える。ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。
【0010】
[0008] いくつかの実施形態では、前記優先度を付与する工程が、前記ストレージシステム内の前記記憶領域のアクセス特性を監視する工程と、前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、を備える。前記アクセス特性は、アクセス頻度、アクセスレート、及び、アクセス間隔のうち少なくとも一つを備える。
【0011】
[0009] 特定の実施形態では、前記優先度を付与する工程が、前記ストレージシステム内の前記記憶領域に対して前記異なる優先度を割り当てる工程を備える。前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる。ストレージシステムにおけるストレージの使用方法は、さらに、前記記憶領域内のデータの使用状況に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域内に記憶されているデータの使用状況を分析して前記優先度を決定し、前記分析した使用状況に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、前記記憶領域内のデータの重要度に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域に記憶されているデータの重要度を分析して前記優先度を決定し、前記分析した重要度に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、を備える。
【0012】
[0010] いくつかの実施形態では、シンプロビジョニングボリュームである記憶ボリュームについて、前記優先度を付与する工程が、前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定する工程、を備える。
【0013】
[0011] 本発明の別の態様によると、ストレージシステムは、データプロセッサと、メモリと、データリカバリにおいて異なる優先度を有する複数の記憶領域と、ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて、前記ストレージシステムのデータリカバリを実行するストレージコントローラと、を備える。前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。
【0014】
[0012] 本発明の別の態様は、ストレージシステム内のストレージを使用するようにデータプロセッサを制御するための複数の命令を記憶する、コンピュータ読取可能な記憶媒体である。前記複数の命令は、前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する命令と、前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行するように、前記データプロセッサに指示する命令と、を備える。前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。
【0015】
[0013] 本発明の上記及びその他の特徴及び利点は、以下に詳述する特定の実施形態から当業者に明らかとなるであろう。
【図面の簡単な説明】
【0016】
【図1】[0014] 図1は、本発明の方法及び装置が適用されうるシステムのハードウェア構成の一例を示している。
【図2】[0015] 図2は、図1のストレージシステム内のメモリの一例を示している。
【図3】[0016] 図3は、シンプロビジョニングボリュームを提供するための構造及び方法を示している。
【図4】[0017] 図4は、マッピング情報の一例を示している。
【図5】[0018] 図5は、プール情報の一例を示している。
【図6】[0019] 図6は、ボリューム情報の一例を示している。
【図7】[0020] 図7は、ディスク、パリティグループ、プールボリューム、及び、慣用ボリューム間の関係の一例を示している。
【図8】[0021] 図8は、パリティ情報を生成するための例示的な方法を示している。
【図9】[0022] 図9は、関連データが更新される際に新たなパリティ値を計算するための例示的な方法を示している。
【図10】[0023] 図10は、パリティ及び他のデータストライプからデータストライプを再構成するための例示的な方法を示している。
【図11】[0024] 図11は、内部ボリューム情報の一例を示している。
【図12】[0025] 図12は、パリティグループ情報の一例を示している。
【図13】[0026] 図13は、ホストコンピュータからのライト要求に対する処理の概要を示すフロー図の一例である。
【図14】[0027] 図14は、ホストコンピュータからのリード要求に対する処理の概要を示すフロー図の一例である。
【図15】[0028] 図15は、シンプロビジョニングボリュームに対するライト処理を示すフロー図の一例である。
【図16】[0029] 図16は、セグメントへのアクセスに関するアクセス情報の一例を示している。
【図17】[0030] 図17は、シンプロビジョニングボリュームに対するリード処理を示すフロー図の一例である。
【図18】[0031] 図18は、慣用ボリュームに対するライト処理を示すフロー図の一例である。
【図19】[0032] 図19は、慣用ボリュームに対するアクセス情報の一例を示している。
【図20】[0033] 図20は、慣用ボリュームに対するリード処理を示すフロー図の一例である。
【図21】[0034] 図21は、シンプロビジョニングボリュームに対するリリース要求処理を示すフロー図の一例である。
【図22】[0035] 図22は、リリーサビリティ情報の一例を示している。
【図23】[0036] 図23は、シンプロビジョニングボリュームのチャンクをリリースする処理を示すフロー図の一例である。
【図24】[0037] 図24は、慣用ボリューム及びシンプロビジョニングボリュームの各領域のリカバリ優先度を決定する処理を示すフロー図の一例である。
【図25】[0038] 図25は、リカバリ優先度情報の一例を示している。
【図26】[0039] 図26は、ボリュームの各領域のリカバリ優先度を性能要件に基づいて登録する処理を示すフロー図の一例である。
【図27】[0040] 図27は、ボリュームの各領域のリカバリ優先度をデータの重要度に基づいて登録する処理を示すフロー図の一例である。
【図28】[0041] 図28は、シンプロビジョニングボリュームの各領域のリカバリ優先度を、当該シンプロビジョニングボリュームの領域割当て/リリース(つまり使用状況)に基づいて生成する処理を示すフロー図の一例である。
【図29】[0042] 図29は、リカバリ優先度に従うディスク障害からのリカバリ処理を示すフロー図の一例である。
【発明を実施するための最良の形態】
【0017】
[0043] 以下に記載する本発明の詳細な説明において添付図面を参照するが、同図面は開示内容の一部を形成するとともに、本発明を実施しうる例示的な実施形態を説明するものであり、本発明を同実施形態に限定するものではない。添付図面中、複数の図面を通して、同種の数字は実質的に類似する構成要素を示している。また、以下に記載及び図示するように、詳細な説明において様々な例示的実施形態を示すが、本発明はここに記載及び図示される実施形態に限定されることはなく、当業者に知られている又はこれから知られるように、他の実施形態にも及びうる。本明細書中の「一実施形態」「本実施形態」又は「これら実施形態」という記載は、同実施形態に関連して記載される特定の特徴、構造、又は特性が本発明の少なくとも一つの実施形態に含まれることを意味するものであり、本明細書の様々な箇所で用いられるこれらの表現が必ずしも同じ実施形態を指しているとは限らない。また、以下の詳細な説明では、本発明の完全な理解のために具体的な詳細を数多く示している。しかし、当業者に明らかなように、本発明を実施する際にこれら具体的な詳細すべてが必要となる訳ではない。また、他の状況においては、本発明を曖昧にすることがないよう、周知の構造、材料、回路、プロセス及びインターフェースを詳細に記載してはおらず、また/又はブロック図の形式で図示する場合がある。
【0018】
[0044] また、以下に記載する詳細な説明の一部は、コンピュータ内のオペレーションをアルゴリズム的及び象徴的に表現する観点から示されている。これらアルゴリズム的記載及び象徴的表現は、データ処理の分野における当業者が自身の技術の要点を他の当業者に最も効果的に伝達する際に使用される手段である。アルゴリズムとは、所望の最終状態又は結果につながる一連の定義されたステップである。本発明中、実施される工程においては、明確な結果を得るべく具体的数量を物理的に操作することが必要となる。通常(必ずしもではないが)、当該数量は、記憶、転送、結合、比較、及びその他の操作が可能な、電気的又は磁気的信号又は命令の形態をとる。上記信号は、主として一般的な用法であるという理由により、ビット、値、エレメント、記号、文字、用語、数字、命令、等と呼ぶのが便利である。ただし、上記用語及びそれに類似する用語はすべて、適切な物理的数量と関連付けされるものであって、それら数量に適用される利便的ラベルでしかない旨留意すべきである。特に明記しない限り、以下の記載からも明らかなように、本明細書全体を通じて、「処理」「算出」「計算」「決定」「表示」等の表現を使用する記載は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表わされるデータを操作しかつそれをコンピュータシステムのメモリ又はレジスタ又は他の情報記憶、送信又は表示デバイス内の物理的数量として上記同様に表現される他のデータに変換するコンピュータシステム又は他の情報処理装置の動作又は処理を含むものとする。
【0019】
[0045] 本発明は、また、本発明の動作を実行するための装置に関する。この装置は、所望の目的のために具体的に構成された装置であってよく、あるいは、一つ以上のコンピュータプログラムによって選択的に起動又は再構成される一つ以上の汎用コンピュータを含んだ装置であってもよい。かかるコンピュータプログラムは、コンピュータ読取り可能な記憶媒体、例えば、光ディスク、磁気ディスク、読取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ、又は、電子情報を記憶するのに適した他の種類の媒体(これらに限定されない)に記憶されたものであってよい。本明細書中に提示されるアルゴリズム及び表示は、特定のコンピュータ又は他の装置に本質的に関連するものではない。本明細書中の教示内容に従って多様な汎用システムをプログラム及びモジュールとともに使用してよく、あるいは、所望の方法工程を実行するために、より特化された装置を構成するのも好都合である。また、本発明は特定のプログラミング言語を基準に記載されるものではない。本明細書に記載される本発明の教示内容を実行するために多様なプログラミング言語を使用することができる。プログラミング言語の命令は、例えば、中央処理装置(CPU)、プロセッサ、又は、コントローラ等の一つ以上の処理デバイスによって実行することができる。
【0020】
[0046] 本発明の例示的な実施形態では、以下に詳述するように、大容量ディスクドライブにおいて特に有利となる、障害時にリカバリするデータの記憶位置に対して優先度を付与するための装置、方法、及び、コンピュータプログラムを提供する。
【0021】
[0047] 例示的実施形態によると、本発明の方法は、
【0022】
[0048] A. システム構成
【0023】
[0049] 図1は、本発明の方法及び装置を適用することができるシステムのハードウェア構成の一例を示している。ストレージシステム100は、ストレージコントローラ110、メインプロセッサ111、スイッチ112、ホストインターフェース113、メモリ200、キャッシュ300、ディスクコントローラ400、ディスク600(例えば、HDDやSSD)、及び、バックエンドパス601(例えば、ファイバチャネル、SATA、SAS、及び、iSCSI(IP))を有する。
【0024】
[0050] メインプロセッサ111は、ストレージコントローラ110に関する様々な処理を実行する。メインプロセッサ111及び他のコンポーネントは、図2に示される、メモリ200に記憶されているマッピング情報201、プール情報202、ボリューム情報203、アクセス情報204、セグメントグループ情報205、内部ボリューム情報206、パリティグループ情報207、リリーサビリティ情報208、及び、リカバリ優先度情報209を使用する。
【0025】
[0051] メインプロセッサ111は、図2に示される、メモリ200に記憶されているライト処理プログラム211、リード処理プログラム212、リリース登録プログラム213、リリースプログラム214、リカバリ優先度決定プログラム215、リカバリ優先度登録プログラム216、及び、リカバリプログラム217を実行することにより処理を行う。処理の詳細については後述する。
【0026】
[0052] ホスト500及び管理コンピュータ520は、SAN900(例えば、ファイバチャネル、ファイバチャネル・オーバー・イーサネット、及び、iSCSI(IP))を介してホストインターフェース113に接続されている。ホスト500、管理コンピュータ520、及び、ストレージコントローラ110は、LAN902(例えば、IPネットワーク)を介して互いに接続されている。
【0027】
[0053] ホスト500は、ファイルシステム501、オペレーティングシステムOS502、及び、アプリケーションプログラム503を有する。これらのプログラムを実行するため、ホスト500はさらに、図1には示されていない、プロセッサ、メモリ、及び、ストレージデバイス等のリソースを有する。
【0028】
[0054] 管理コンピュータ520は、ファイルシステム501、OS502、及び、管理プログラム523を有する。これらのプログラムを実行するため、管理コンピュータ520はさらに、図1には示されていない、プロセッサ、メモリ、及び、ストレージデバイス等のリソースを有する。管理コンピュータ520は、以下に記載するように、メモリ上にリカバリ優先度情報529を保持する。
【0029】
[0055] B. ボリューム提供方法の概要
【0030】
[0056] 一実施形態において、ストレージシステム100は、シンプロビジョニングボリューム(TPV)610及び慣用(シンプロビジョニングされていない)ボリューム630を提供する。これらの種類のボリュームに関しては、特許文献2が慣用ボリューム及びシンプロビジョニングボリュームを提供するストレージシステムを開示している。図3は、TPV610を提供する構造及び方法を示している。ストレージシステム100は、複数のプールボリューム620を有し、これらプールボリューム620をチャンク690と呼ばれる多数の固定長領域に分割する。ストレージシステム100は、ライトアクセス時に、仮想ボリューム(TPV)の一つのセグメントに対して一つのチャンク690を割り当てる。つまり、物理記憶領域を要求に応じて割り当てる。図3中、TPV610は複数のセグメントから仮想的に構成され、プールボリューム620からセグメント(つまり、TPV610の固定長領域(ページ))へチャンク690が割り当てられる。例えば、図3では、チャンク4がセグメント6に割り当てられている。つまり、TPV610はページベースのボリュームである。
【特許文献2】米国特許番号第7,162,600号
【0031】
[0057] 上記を達成するため、ストレージコントローラ110はマッピング情報201及びプール情報202を使用する。図4は、マッピング情報201の一例を示している。マッピング情報201は、各ボリュームのチャンクとセグメントとのマッピングを保持するものである。チャンクがセグメントに割り当てられていない場合、割当て状態は「NO」となる。マッピング情報201は、高速検索用の各エレメントのリスト又はディレクトリとして構成することができる。
【0032】
[0058] 図5は、プール情報202の一例を示している。プール情報202は、チャンクが使用されているか否かを管理している。プール情報202を使用することによって、ストレージコントローラ110は、後述するライト処理において、空き(使用されていない)チャンクを見つけることができる。プール情報202もまた、空きチャンクを迅速に検索するための各エレメントのリスト又はディレクトリとして構成することができる。
【0033】
[0059] ストレージシステム100はまた、慣用ボリューム630を提供する。図1に示すように、ストレージコントローラ110は、慣用ボリュームの生成時に、当該慣用ボリューム630の全領域に記憶領域を割り当てる。慣用ボリューム630用の記憶領域を管理するため、ストレージコントローラ110はボリューム情報203を使用する。
【0034】
[0060] 図6は、ボリューム情報203の一例を示している。ボリューム情報203は、各ボリュームの種別(つまり、慣用又はTPV)、サイズ、及び、公用ボリュームIDを含んでいる。公用ボリュームIDは、ホストコンピュータ500を含む他のコンピュータが当該ボリュームを認識するために使用される。また後述するように、ストレージコントローラ110は、内部ボリュームIDを用いて、さらには内部ボリューム情報206及びパリティグループ情報207を参照することによって、慣用ボリューム630とパリティグループ603との関係(図7参照)を認識することができる。ボリューム情報203はまた、慣用ボリューム630の公用ボリュームIDと内部ボリュームIDとの関係(マッピング)を保持する。
【0035】
[0061] また、ボリューム情報203は、TPVIDを参照することでTPV610をストレージシステム100が提供するデータ記憶ボリュームとしてホスト500に供給するために使用される。つまり、ボリューム情報203は、公用ボリュームIDとTPVIDとの関係(マッピング)を保持する。ボリューム情報203はさらに、TPV610だけではなく各慣用ボリューム630のセグメントサイズに関する情報も含んでいる。つまり、TPV及び慣用ボリュームともに固定長セグメントを有する。セグメントサイズは、ホスト500、管理コンピュータ520、及び/又は、ストレージシステム100の管理端末を介して、ユーザが選択及び登録してもよい。
【0036】
[0062] C. パリティグループ及びデータ保護
【0037】
[0063] 図7は、ディスク600、パリティグループ603、プールボリューム620、及び、慣用ボリューム630間の関係を示している。パリティグループ603は、複数の物理記憶ディスク600の集合体である。RAID技術により、データ及び当該データから生成されるパリティは、パリティグループ603内の複数のディスク600に分散されている。パリティグループは、データを分散して記憶するための記憶リソースを提供する。パリティグループによって提供される記憶領域は、ボリューム(つまり、慣用ボリューム630及びプールボリューム620)に細分されている。また、各慣用ボリューム630及びプールボリューム620は、複数のパリティグループ603の記憶領域を有することができる。
【0038】
[0064] 図8、図9、及び図10は、パリティを生成するとともにRAID技術に基づいてデータを再構成する例示的方法を示している。具体的には、図8は、パリティ情報を生成する例示的方法を示している。パリティは排他的論理和(exclusive OR:EOR)計算により生成され、同計算において、データ‐A、データ‐B、及びデータ‐Cは、一つのパリティを生成する各データ群(ストライプ)であり、単一のパリティグループ内の各ディスクに分散される情報単位を表している。特に、パリティは、以下の計算式で計算される。
式:データ‐A XOR データ‐B XOR データ‐C=パリティ
【0039】
[0065] 物理ディスクに記憶されているデータとパリティとの関係を維持するため、記憶されているデータに変更があればパリティも変更しなければならない。図9は、関連データが更新された際に新たなパリティ値を計算するための例示的方法を示している。新たなパリティ値は、以下の式を使用して計算される。
式:新データ‐A XOR 旧データ‐A XOR 旧パリティ=新パリティ
【0040】
[0066] 上述したようなデータとパリティとの関係は常に維持されるため、あるデータストライプを、他のデータストライプ及びパリティ値から再構成することができる。つまり、パリティグループ内のディスク障害によって記憶されているデータの一部が失われた場合でも、失われたデータストライプをリカバリすることができる。図10は、あるデータストライプを、パリティ及び他のデータストライプから再構成するための例示的方法を示している。具体的には、データ‐Cは、式「データ‐A XOR データ‐B XOR パリティ=データ‐C」を使用して再構成することができる。RAIDレベル6(RAID6)で構成されるストレージシステムでは、二つのパリティコードが維持されかつそれらが二つの異なるディスクに分散しているため、二つのデータストライプを失った場合でも、データを復旧することができる。
【0041】
[0067] また、ディスク600に記憶されたデータは、データのミラーリング(つまり、RAID1)によって保護することもできる。ミラーリングを使用すれば、障害が発生したディスク600に記憶されたデータを復旧する際、障害が発生したディスク600とミラーリングペアを成すディスク600内に記憶されたデータを別のディスク600にコピーする。
【0042】
[0068] 上述したディスク600、パリティグループ603、及び、ボリューム間の関係を管理するため、ストレージコントローラ110は、内部ボリューム情報206及びパリティグループ情報207を保持する。図11は、内部ボリューム情報206の一例を示している。内部ボリューム情報206は、パリティグループ603の一領域がどのように各ボリューム(つまり、慣用ボリューム630及びプールボリューム620)に割り当てられているかに関する関係を示している。この内部ボリューム情報206は、内部ボリュームID、各ボリュームの種別、各ボリュームのサイズ、パリティグループID、及び、当該ボリュームに対する領域の開始アドレスを有する。図12は、パリティグループ情報207の一例を示している。パリティグループ情報207は、各パリティグループ603の構成及び当該パリティグループ603に対するデータ保護の種別を保持維持するものである。例えば、パリティグループ#0は四つのディスク600から構成され、ミラーリングで保護されている(つまり、RAID1)。この例では、ディスク#0とディスク#1とがミラーリングペアを形成し、ディスク#2とディスク#3からなるペアと同一のデータを有している。
【0043】
[0069] D. ライト処理の概要
【0044】
[0070] 図13は、ホストコンピュータ500からのライト要求に対する処理の概要を示すフローダイアグラムの一例である。ステップ1001において、ホスト500はライト要求を発行し、ストレージコントローラ110にライトデータを転送する。ステップ1002において、ストレージコントローラ110は、ライト要求を参照して、ライトアクセスの対象ボリュームを確認する。ステップ1003において、当該対象ボリュームの種別がTPVであれば、ストレージコントローラ110はTPVに対するライト処理を実行する(ステップ1004)。そうでない場合、ストレージコントローラ110は慣用ボリュームに対するライト処理を実行する(ステップ1005)。各ライト処理の詳細は後述する。
【0045】
[0071] E. リード処理の概要
【0046】
[0072] 図14は、ホストコンピュータ500からのリード要求に対する処理の概要を示すフロー図の一例である。ステップ1101において、ホスト500は、ストレージコントローラ110へリード要求を発行する。ステップ1102において、ストレージコントローラ110は、当該リード要求を参照してリードアクセスの対象ボリュームを確認する。ステップ1103において、当該対象ボリュームの種別がTPVであれば、ストレージコントローラ110はTPVに対するリード処理を実行する(ステップ1104)。そうでない場合、ストレージコントローラ110は慣用ボリュームに対するリード処理を実行する(ステップ1105)。各リード処理の詳細は後述する。
【0047】
[0073] F. TPVに対するライト処理
【0048】
[0074] 図15は、TPV610に対するライト処理を示すフロー図の一例である。ステップ1201において、ストレージコントローラ110は、ライト要求を参照して、ライトアクセスの対象TPV610及び対象領域を確認する。ステップ1202において、ストレージコントローラ110は、当該対象領域内のセグメントについてのマッピング情報を確認する。既に当該セグメントにチャンクが割り当てられている場合、ステップ1205へ進む。割り当てられていない場合は、ステップ1203へ進む。
【0049】
[0075] ステップ1203(チャンク未割当て)において、ストレージコントローラ110は、ライトデータを記憶するための新たなチャンクを割り当てる。この割当てを行うために、ストレージコントローラ110は、マッピング情報201及びプール情報202を更新する。プール情報202を使用することにより、ストレージコントローラ110は内部ストレージから新しいチャンクを見つける。ステップ1204において、ストレージコントローラ110はこの新しいチャンクにライトデータを記憶し、処理はステップ1206へ進む。
【0050】
[0076] ステップ1205(チャンク割当て済み)において、ストレージコントローラ110は、既存のチャンクにライトデータを記憶する。
【0051】
[0077] ステップ1206において、ストレージコントローラ110はアクセス情報204を更新する。アクセス情報204は、セグメント(つまり、ページ)に関するアクセス特性を記録している。ステップ1207において、ストレージコントローラ110が当該対象領域のすべてのセグメントを確認済みであれば、処理が終了する。そうでない場合は、ストレージコントローラ110は次のセグメントについての確認を進める(ステップ1208)。
【0052】
[0078] 図16は、セグメントへのアクセスに関するアクセス情報204の一例を示している。図16に示すように、アクセス情報204は、各セグメントグループへのアクセスに関する情報、例えば、リード及びライトそれぞれについて、単位時間当たりのアクセスレート、最終アクセス時刻、平均アクセス長、等を保持する。一つのセグメントグループは、TPVのセグメントの集合体であり、固定数の連続するセグメントからなる。各セグメント番号内のセグメント数は、セグメントグループ情報205で定義されており、ユーザが直接又は管理コンピュータ520を介して選択することができる。値が1に設定されている場合、一つのセグメントグループが一つのセグメントに相当する。一つのセグメントグループ内のセグメント数が小さければ高精度の統計が可能になるが、統計データを記憶するためのメモリのサイズが大きくなる。平均アクセス長に関する情報は定期的に初期化してもよい。当該情報を参照することにより、各セグメントグループについてのアクセス頻度及びアクセス間隔を取得することができる。
【0053】
[0079] G. TPVに対するリード処理
【0054】
[0080] 図17は、TPV610に対するリード処理を示すフロー図の一例である。ステップ1301において、ストレージコントローラ110は、リード要求を参照して、リードアクセスの対象TPV610及び対象領域を確認する。ステップ1302において、ストレージコントローラ110は、当該対象領域内のセグメントについてのマッピング情報201を確認する。既に当該セグメントにチャンクが割り当てられている場合、ステップ1303へと進む。割り当てられていない場合は、ステップ1305へ進む。
【0055】
[0081] ステップ1303(チャンク割当て済み)において、ストレージコントローラ110は当該チャンクに記憶されているデータをホスト500へ転送する。ステップ1304において、ストレージコントローラ110はアクセス情報204を更新する。ステップ1305(チャンク未割当て)において、ストレージコントローラ110はゼロ(0)のデータをホスト500へ送信する。最後に、ステップ1306において、ストレージコントローラ110が当該対象領域のすべてのセグメントを確認済みであれば、処理が終了する。そうでない場合は、ストレージコントローラ110は次のセグメントについての確認を進める(ステップ1307)。
【0056】
[0082] H. 慣用ボリュームに対するライト処理
【0057】
[0083] 本発明の実施形態によると、慣用ボリューム630についてもアクセス情報204が記録される(つまり、アクセス特性が監視される)。
【0058】
[0084] 図18は、慣用ボリューム630に対するライト処理を示すフロー図の一例である。ステップ1401において、ストレージコントローラ110は、ライト要求を参照して、ライトアクセスの対象慣用ボリューム630及び対象領域を確認する。ステップ1402において、ストレージコントローラ110は、ライトアクセスの当該対象領域にライトデータを記憶する。ステップ1403において、ストレージコントローラ110はアクセス情報204を更新する。
【0059】
[0085] 図19は、慣用ボリュームについてのアクセス情報204の一例を示している。図19のアクセス情報204は、慣用ボリュームID及び慣用ボリュームセグメントIDを有する点を除き、図16に示すアクセス情報204と同一である。
【0060】
[0086] I. 慣用ボリュームに対するリード処理
【0061】
[0087] 図20は、慣用ボリューム630に対するリード処理を示すフロー図の一例である。ステップ1501において、ストレージコントローラ110は、リード要求を参照して、リードアクセスの対象慣用ボリューム630及び対象領域を確認する。ステップ1502において、ストレージコントローラ110はリードアクセスの当該対象領域に記憶されているデータをホスト500へ転送する。ステップ1503において、ストレージコントローラ110はアクセス情報204を更新する。
【0062】
[0088] J. TPVに対するリリース要求
【0063】
[0089] ホスト500は、使われなくなった領域(つまり、セグメント)についてストレージシステム100に報告し、当該セグメントからのチャンク690の取り戻しを要求することができる。
【0064】
[0090] 図21は、TPV610に対するリリース要求処理を示すフロー図の一例である。ステップ1601において、ホスト500は、TPV610の使用されなくなった領域を検索し、ストレージコントローラ110へリリース要求を発行する。上記使用されなくなったセグメントを探す処理については、ファイルシステム501がTPV610内のデータ記憶状態及び記憶領域の使用状況を把握することができるため、ファイルシステム501によって実行してもよい。ステップ1602において、ストレージコントローラ110は、受信した要求を参照して、リリース対象となる対象TPV610及び対象領域を確認する。ステップ1603において、ストレージコントローラ110は、当該対象領域のリリーサビリティ情報208を更新する。
【0065】
[0091] 図22はリリーサビリティ情報208の一例を示している。リリーサビリティ情報208は、各セグメントのリリーサビリティを示す情報である。リリース要求によって、ストレージコントローラ110は当該対象領域の「リリース可能」状態を「可」に変更する。
【0066】
[0092] K. TPVのチャンクのリリース処理
【0067】
[0093] 図23は、TPV610のチャンクをリリースする処理を示すフロー図の一例である。この処理は定期的に繰り返されるか又はストレージシステム110の負荷が小さい時に行われる。ステップ1701において、ストレージコントローラ110はリリーサビリティ情報208を確認する。リリース可能と記されたセグメントがあれば、処理はステップ1702へ進む。そのようなセグメントがない場合は処理が終了する。ステップ1702において、ストレージコントローラ110はリリーサビリティ情報208を更新する。ストレージコントローラ110は、リリース対象となるチャンクを有するセグメントについて、「リリース可能」状態を「不可」に変更する。ステップ1703において、ストレージコントローラ110は、マッピング情報201及びプール情報202を更新することにより、上記セグメントからチャンク690をリリースする。
【0068】
[0094] L. リカバリ優先度決定処理
【0069】
[0095] 図24は、慣用ボリューム630及びTPV610の各領域のリカバリ優先度を決定する処理を示すフロー図の一例である。本例では、アクセスレート、アクセス頻度、及びアクセス間隔等のアクセス特性に従って、優先度が決定される。ステップ1801において、ストレージコントローラ110はディスク600の障害を検出する。ステップ1802において、ストレージコントローラ110は、TPV610及び慣用ボリューム630において上記障害の影響を受けた領域を見つける。ストレージコントローラ110は、障害が発生したディスク600についてのマッピング情報201、内部ボリューム情報206、及びパリティグループ情報207を参照することにより、影響を受けた領域を把握する。ステップ1803において、ストレージコントローラ110は、影響を受けた領域についてのアクセス情報204を確認し、アクセス頻度等のアクセス特性を取得する。ステップ1804において、ストレージコントローラ110は、アクセス特性に従って、当該影響を受けた領域を、いくつか(例えば、三つ)の優先度、高、中、低に分類する。例えば、ストレージコントローラ110は、各領域又はセグメントグループについて、アクセス頻度の順位(ランキング)を取得し、各領域又はセグメントを三つのクラスに分類する。ステップ1805において、ストレージコントローラ110は取得した優先度をリカバリ優先度情報209に登録する。
【0070】
[0096] 図25は、リカバリ優先度情報209の一例を示している。本例では、ボリュームIDの列において、ボリューム情報203で使用する識別子が示されている。図25に示すように、慣用ボリューム630及びTPV610を含むボリューム内の領域は、リカバリ処理に関連して、複数のクラス、例えば、高優先度グループ、中優先度グループ、及び、低優先度グループに分類される。本例では、アクセス頻度の高い領域が高い優先度を有し、アクセス頻度の低い領域が低い優先度を有する。アクセス特性の他の要因を、優先度を決定する別の例として使用することもできる。領域を示す態様については、開始アドレス及び領域長を使用する代わりに、別の例として、セグメントID又はセグメントグループIDを使用してもよい。本発明に関する別の方法の例として、ホスト500が監視するアクセス特性を使用して優先度を決定するようにしてもよい。
【0071】
[0097] M. 性能要件に対するリカバリ優先度登録処理
【0072】
[0098] ディスク障害のリカバリにおける優先度の付与又は分類の別の方法として、ホスト500又は管理コンピュータ520から優先度を登録することができる。図26は、性能要件に基づいてボリュームの各領域のリカバリ優先度を登録する処理を示すフロー図の一例である。本例では、ホスト500又は管理コンピュータ520が各ボリュームの各領域の性能要件を分析する。例えば、データベースアプリケーションのデータ、特にデータベースのインデックスは、高い性能を要する。トランザクションアプリケーションのデータもまた高い性能を要する。ホスト500又は管理コンピュータ520は、そのようなデータを記憶している領域に対して高い優先度を割り当てることができる。ホスト500又は管理コンピュータ520は、複数のアプリケーション間での性能要件の違いを評価することができる。
【0073】
[0099] ステップ1901において、管理コンピュータ520は、ボリューム内の領域に記憶されているデータについての性能要件を分析する。ステップ1902において、管理コンピュータ520は、当該データの記憶位置を取得し、その領域を、分析した性能要件の差に従って、いくつか(例えば、三つ)の優先度、高、中、低のいずれかに分類する。ステップ1903において、管理コンピュータ520は、取得した優先度をリカバリ優先度情報529に記録する。図25に示すリカバリ優先度情報209の一例を、上述のリカバリ優先度情報529に適用することもできる。ステップ1904において、管理コンピュータ520は、スレージコントローラ110に対してリカバリ登録要求を発行する。この要求と共に、リカバリ優先度情報529の内容がストレージコントローラ110へ転送される。ステップ1905において、ストレージコントローラ110は、受信した情報を参照して、リカバリ優先度情報209を更新する。別の例として、管理コンピュータ520は、複数のクラスを特定する代わりに高優先度領域のみを特定するようにしてもよい。
【0074】
[0100] N. データ重要度に基づくリカバリ優先度登録処理
【0075】
[0101] 考慮すべき別の要因として、データの重要度がある。つまり、データ損失を回避する必要性に基づいて優先度を評価するようにしてもよい。図27は、データの重要度に基づいてボリュームの各領域のリカバリ優先度を登録する処理を示すフロー図の一例である。本例では、ホスト500又は管理コンピュータ520は、各ボリュームの各領域の重要度を分析する。例えば、ファイルシステム501、OS502、及びアプリケーションプログラム503が使用するメタデータは、損失によってソフトウェアが使用するデータ全体が失われる又は使用できなくなることがあるため、重要である。ホスト500又は管理コンピュータ520は、そのようなデータを記憶する領域に対して高い優先度を割り当てる。また、ユーザの観点から、殆どのアプリケーションプログラム503は、重要なユーザデータと重要でないデータの両方を保持している。つまり、重要度に差が存在することになる。ホスト500又は管理コンピュータ520は、複数のアプリケーションによって維持される複数種類のデータ間において、重要度の差を評価することができる。
【0076】
[0102] ステップ2001において、管理コンピュータ520は、ボリューム内の領域に記憶されているデータについて、上述したような重要度を分析する。ステップ2002において、管理コンピュータ520は当該データの記憶位置を取得し、その領域を、分析したデータ重要度における又はデータ損失回避の必要性における差に従って、いくつか(例えば、三つ)の優先度、高、中、低のいずれかに分類する。ステップ2003において、管理コンピュータ520は、取得した優先度をリカバリ優先度情報529に記録する。図25に示すリカバリ優先度情報209の一例を、上述のリカバリ優先度情報529に適用することもできる。ステップ2004において、管理コンピュータ520は、スレージコントローラ110に対してリカバリ登録要求を発行する。この要求と共に、リカバリ優先度情報529の内容がストレージコントローラ110に転送される。ステップ2005において、ストレージコントローラ110は、受信した情報を参照して、リカバリ優先度情報209を更新する。別の例として、管理コンピュータ520は、複数のクラスを特定する代わりに高優先度領域のみを特定するようにしてもよい。
【0077】
[0103] O. TPVに対する処理に基づくリカバリ優先度の決定
【0078】
[0104] 上述したように、TPV610を提供する処理には、チャンク910の割当て及びリリース要求が含まれる。割当て処理及びリリース処理に関する情報は、リカバリ優先度情報209の生成に使用することができる。図28は、シンプロビジョニングボリュームの各領域の割当て/リリース(つまり、使用状態)に基づいて、シンプロビジョニングボリュームの各領域のリカバリ優先度を生成する処理を示すフロー図の一例である。この処理によって、データを引き続き記憶することが期待される領域は、ディスク障害からのリカバリについて高い優先度を得る。
【0079】
[0105] ステップ2101において、ストレージコントローラ110は、ディスク600の障害を検出する。ステップ2102において、ストレージコントローラ110は、障害の影響を受けたTPV610の領域を見つける。ストレージコントローラ110は、障害が発生したディスク600についてマッピング情報201、内部ボリューム情報206、及びパリティグループ情報207を参照することにより、影響を受けた領域を把握する。ステッ2103において、ストレージコントローラ110は、リカバリ優先度情報209を初期の値である「低」にリセットする。ステップ2104において、ストレージコントローラ110は、影響を受けた領域内のセグメントについてマッピング情報201を確認する。既に当該セグメントにチャンクが割り当てられている場合、ステップ2105へ進む。割り当てられていない場合、ステップ2108へ進む。ステップ2105において、ストレージコントローラ110は、当該セグメントについてリリーサビリティ情報208を確認する。当該セグメントがリリース可能と記されている場合は、ステップ2108へ進む。そうでない場合は、ステップ2106へ進む。ステップ2106において、ストレージコントローラ110は、当該セグメントの領域を、リカバリについて高い優先度を有するものとして分類する。ステップ2107において、ストレージコントローラ110は取得した優先度をリカバリ優先度情報209に記録する。ステップ2108において、当該影響を受けた領域のすべてのセグメントをストレージコントローラ110が確認済みであれば、処理が終了する。そうでない場合は、ストレージコントローラ110は次のセグメントについての確認を進める(ステップ2109)。
【0080】
[0106] P. リカバリ処理
【0081】
[0107] 図29は、上述のリカバリ優先度に従うディスク障害からのリカバリの処理を示すフロー図の一例である。ステップ2201において、ストレージコントローラ110は、リカバリ対象となるディスク600上の各領域のリカバリ優先度を取得する。ストレージコントローラ110は、ボリューム情報203、内部ボリューム情報206、及び/又はマッピング情報201を参照して、ディスク600上の記憶位置を認識する。ストレージコントローラ110はさらにリカバリ優先度情報209を参照して、優先度を取得する。ステップ2202において、ストレージコントローラ110は、上述の方法を使用して、取得した優先度に従い、障害が発生したディスク600に記憶されているデータを別のディスク600に復旧する。
【0082】
[0108] 優先度に基づくリカバリを実現するため、ストレージコントローラ110は、複数の記憶位置に対して行われる同時並行リカバリ処理のそれぞれに対し、各記憶位置の優先度に応じて、演算リソース(例えば、メインプロセッサ111及びディスクコントローラ400の処理タイム、メモリ200、及び、バックエンドパス601のバンド幅)を割り当てることができる。ストレージコントローラ110はまた、優先度に従って、リカバリ処理の実行順を制御することもできる。上述した方法及び処理によって、ユーサのアプリケーション及び使用状況に合ったディスク障害リカバリ方法を実現することができる。
【0083】
[0109] 当然であるが、図1に示すシステム構成は、単に、本発明を実施しうる例示的な情報システムであり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上記発明の実現に使用されるモジュール、プログラム、及びデータ構造を記憶しかつ読み出すことのできる既知のI/Oデバイス(例えば、CD及びDVDドライブ、フロッピーディスクドライブ、ハードドライブ等)を有することもできる。これらモジュール、プログラム、及び、データ構造は、コンピュータ読取可能な媒体上に符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能な媒体とは別の、コンピュータ読取可能な媒体に記憶することができる。当該システムのコンポーネントは、デジタルデータ通信のいずれかの形態又は媒体、例えば、通信ネットワークによって、相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例、インターネット)、ワイヤレスネットワーク、記憶領域ネットワーク等がある。
【0084】
[0110] 上記説明において、本発明を十分理解するための説明として、数多くの詳細を示している。しかし、当業者に明らかなように、本発明を実施する際にこれら具体的な詳細すべてが必要となる訳ではない。また本発明は、一般的にフローチャート、フロー図、構造図、又はブロック図として記載される処理として説明してもよい。フローチャートでは順次的な処理として動作を記載してもよいが、動作の多くは並行又は同時に実施することができる。また、動作の順序を入れ替えることもできる。
【0085】
[0111] 本分野において知られているように、上述の動作は、ハードウェア、ソフトウェア、又は両者の組み合わせによって実現することができる。本発明の実施形態の様々な態様は、回路及び論理機構(ハードウェア)を使用して実現でき、他の態様についても、機械読取可能な媒体(ソフトウェア)上に記憶されている命令を使用して実現でき、また、プロセッサがこれを実現する場合は、当該命令によって本プロセッサが本発明の実施形態の実現方法を実行する。また、本発明の実施形態は、ハードウェアのみで実行してよいものや、ソフトウェアのみで実行してよいものがある。また、記載した様々な機能は、単一のユニットが実行してもよく、あるいは、各種方法を用いて多数のコンポーネントで実行してもよい。ソフトウェアが実行する場合、本発明の実施形態を実行する方法は、コンピュータ読取可能な媒体に記憶された命令に基づいて、汎用コンピュータ等のプロセッサによって実行されうる。所望の場合、これらの命令は、圧縮及び/又は暗号化されたフォーマットで媒体上に記憶することができる。
【0086】
[0112] 上記より明らかなように、本発明は、大容量ディスクドライブにおいて特に有利となる、障害時のリカバリ対象データの記憶位置に優先度を付与するための方法、装置、及び、コンピュータ読取可能な媒体に記憶されたプログラムを提供するものである。また、本明細書中、特定の実施形態を図示及び記載してきたが、当業者達が認識するように、開示された特定の実施形態の代わりに、同一の目的を達成するべく計算されたあらゆる構成を使用してもよい。本開示内容は、本発明のあらゆる調整又は変更を含むものとし、特許請求の範囲に使用される用語は、本発明を明細書中に開示される特定の実施形態に制限するものとして解釈されるべきではない。むしろ、本発明の範囲は、特許請求の範囲によって完全に決定されるものであり、特許請求の範囲は、それが有するあらゆる均等物とともに、請求項の解釈の確立された原則に従って解釈されるものとする。
【技術分野】
【0001】
[0001] 本発明はストレージシステムに関し、特に、大容量ディスクドライブを使用する方法及び装置に関する。
【背景技術】
【0002】
[0002] ハードディスクドライブ(HDD)市場では、HDDベンダが提供する単一のHDD装置の容量が急速に増加している。また、ソリッドステートディスク(SSD)装置の容量も増加している。ディスク装置の障害によるデータ損失を防ぐため、殆どのストレージシステムではミラーリングやRAID技術といったデータ保護を採用している。参考文献1に開示されるように、RAID構成は、いわゆるRAIDレベルに従って分類される。RAID4、RAID5、及び、RAID6の構成は、記憶されているデータから冗長情報として生成されるパリティコードを使用する。パリティコードを使用することによって、複数のディスクに分散して記憶されたデータを、ディスク障害時に再構成することができる。このようにして高いデータ可用性が実現される。上記参考文献では、複数のディスクに同一のデータを持たせるいわゆるミラーリング技術をデータ保護の一つの方法として紹介し、これをRAID1として分類している。
【0003】
[0003] 米国特許第7,386,758号にはオブジェクトベースのストレージデバイス(OSD)が開示されており、同ストレージデバイスは、RAID技術を使用し、各オブジェクトがOSD内のどこに記憶されているかを示すOSDの情報に従って、データの再構成を行う。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7,386,758号
【非特許文献】
【0005】
【非特許文献1】「A Case for Redundant Arrays of Inexpensive disks (RAID)」(D.A. Patterson、G. Gibson、R.H. Kats著、Proc. ACM SIGMOD社発行、1988年6月、109〜116頁)
【発明の開示】
【発明が解決しようとする課題】
【0006】
[0004] データのリカバリは、障害が発生したディスクに記憶されているデータをコピーしかつ/又は当該データと同一のデータを生成することによって実現されるため、リカバリプロセスには相当の時間が必要となる。また、ディスク障害の影響として、障害発生からリカバリ完了までの間に、冗長性の低下による使用不能やデータ損失の回避可能性が低くなり、データコピーによる負荷から性能が劣化してしまう。
【0007】
[0005] 大容量ディスクドライブを使用すると、従来の小容量ディスクドライブを使用する場合に比べてリカバリ対象となるデータ量が大きいため、上述の期間が長くなってしまう。したがって、現在、ユーザのアプリケーションや使用状況に合ったディスク障害リカバリ方法が求められている。
【課題を解決するための手段】
【0008】
[0006] 本発明の例示的な実施形態では、ディスク障害の発生時にリカバリ対象となるデータの記憶位置に対して優先度を付与することができるストレージシステムが提供される。ある実施形態では、アクセス頻度等のアクセス特性を監視することによって優先度を付与する。ストレージシステムは、データの使用状況としてアクセス特性を監視し、その統計データに従ってリカバリプロセスにおける優先度を決定する。別の実施形態では、ホストコンピュータ又は管理コンピュータが、ストレージシステムに記憶されているデータの使用状況及び又は重要度に基づいて優先度を決定する。この優先度は、ホストコンピュータ又は管理コンピュータがストレージシステムに登録する。そして、ストレージシステムは、決定された優先度に従ってディスク障害からのリカバリを行う。また別の実施形態では、ストレージシステムによる優先度の決定が、シンプロビジョニングボリュームの領域割当て/リリース(つまり使用状況)に基づいて行われる。上記のような方法を使用することにより、一つのディスクドライブ内にあるデータ記憶領域を複数の優先度に分類し、この優先度に従ってディスク障害からのリカバリを行うことができる。本発明は、大容量ディスクドライブに記憶されたデータのリカバリに適用すると特に有利である。
【0009】
[0007] 本発明の一態様によると、ストレージシステムにおけるストレージの使用方法は、前記ストレージシステム内の複数の記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行する工程と、を備える。ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。
【0010】
[0008] いくつかの実施形態では、前記優先度を付与する工程が、前記ストレージシステム内の前記記憶領域のアクセス特性を監視する工程と、前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、を備える。前記アクセス特性は、アクセス頻度、アクセスレート、及び、アクセス間隔のうち少なくとも一つを備える。
【0011】
[0009] 特定の実施形態では、前記優先度を付与する工程が、前記ストレージシステム内の前記記憶領域に対して前記異なる優先度を割り当てる工程を備える。前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる。ストレージシステムにおけるストレージの使用方法は、さらに、前記記憶領域内のデータの使用状況に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域内に記憶されているデータの使用状況を分析して前記優先度を決定し、前記分析した使用状況に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、前記記憶領域内のデータの重要度に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域に記憶されているデータの重要度を分析して前記優先度を決定し、前記分析した重要度に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、を備える。
【0012】
[0010] いくつかの実施形態では、シンプロビジョニングボリュームである記憶ボリュームについて、前記優先度を付与する工程が、前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定する工程、を備える。
【0013】
[0011] 本発明の別の態様によると、ストレージシステムは、データプロセッサと、メモリと、データリカバリにおいて異なる優先度を有する複数の記憶領域と、ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて、前記ストレージシステムのデータリカバリを実行するストレージコントローラと、を備える。前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。
【0014】
[0012] 本発明の別の態様は、ストレージシステム内のストレージを使用するようにデータプロセッサを制御するための複数の命令を記憶する、コンピュータ読取可能な記憶媒体である。前記複数の命令は、前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する命令と、前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行するように、前記データプロセッサに指示する命令と、を備える。前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される。
【0015】
[0013] 本発明の上記及びその他の特徴及び利点は、以下に詳述する特定の実施形態から当業者に明らかとなるであろう。
【図面の簡単な説明】
【0016】
【図1】[0014] 図1は、本発明の方法及び装置が適用されうるシステムのハードウェア構成の一例を示している。
【図2】[0015] 図2は、図1のストレージシステム内のメモリの一例を示している。
【図3】[0016] 図3は、シンプロビジョニングボリュームを提供するための構造及び方法を示している。
【図4】[0017] 図4は、マッピング情報の一例を示している。
【図5】[0018] 図5は、プール情報の一例を示している。
【図6】[0019] 図6は、ボリューム情報の一例を示している。
【図7】[0020] 図7は、ディスク、パリティグループ、プールボリューム、及び、慣用ボリューム間の関係の一例を示している。
【図8】[0021] 図8は、パリティ情報を生成するための例示的な方法を示している。
【図9】[0022] 図9は、関連データが更新される際に新たなパリティ値を計算するための例示的な方法を示している。
【図10】[0023] 図10は、パリティ及び他のデータストライプからデータストライプを再構成するための例示的な方法を示している。
【図11】[0024] 図11は、内部ボリューム情報の一例を示している。
【図12】[0025] 図12は、パリティグループ情報の一例を示している。
【図13】[0026] 図13は、ホストコンピュータからのライト要求に対する処理の概要を示すフロー図の一例である。
【図14】[0027] 図14は、ホストコンピュータからのリード要求に対する処理の概要を示すフロー図の一例である。
【図15】[0028] 図15は、シンプロビジョニングボリュームに対するライト処理を示すフロー図の一例である。
【図16】[0029] 図16は、セグメントへのアクセスに関するアクセス情報の一例を示している。
【図17】[0030] 図17は、シンプロビジョニングボリュームに対するリード処理を示すフロー図の一例である。
【図18】[0031] 図18は、慣用ボリュームに対するライト処理を示すフロー図の一例である。
【図19】[0032] 図19は、慣用ボリュームに対するアクセス情報の一例を示している。
【図20】[0033] 図20は、慣用ボリュームに対するリード処理を示すフロー図の一例である。
【図21】[0034] 図21は、シンプロビジョニングボリュームに対するリリース要求処理を示すフロー図の一例である。
【図22】[0035] 図22は、リリーサビリティ情報の一例を示している。
【図23】[0036] 図23は、シンプロビジョニングボリュームのチャンクをリリースする処理を示すフロー図の一例である。
【図24】[0037] 図24は、慣用ボリューム及びシンプロビジョニングボリュームの各領域のリカバリ優先度を決定する処理を示すフロー図の一例である。
【図25】[0038] 図25は、リカバリ優先度情報の一例を示している。
【図26】[0039] 図26は、ボリュームの各領域のリカバリ優先度を性能要件に基づいて登録する処理を示すフロー図の一例である。
【図27】[0040] 図27は、ボリュームの各領域のリカバリ優先度をデータの重要度に基づいて登録する処理を示すフロー図の一例である。
【図28】[0041] 図28は、シンプロビジョニングボリュームの各領域のリカバリ優先度を、当該シンプロビジョニングボリュームの領域割当て/リリース(つまり使用状況)に基づいて生成する処理を示すフロー図の一例である。
【図29】[0042] 図29は、リカバリ優先度に従うディスク障害からのリカバリ処理を示すフロー図の一例である。
【発明を実施するための最良の形態】
【0017】
[0043] 以下に記載する本発明の詳細な説明において添付図面を参照するが、同図面は開示内容の一部を形成するとともに、本発明を実施しうる例示的な実施形態を説明するものであり、本発明を同実施形態に限定するものではない。添付図面中、複数の図面を通して、同種の数字は実質的に類似する構成要素を示している。また、以下に記載及び図示するように、詳細な説明において様々な例示的実施形態を示すが、本発明はここに記載及び図示される実施形態に限定されることはなく、当業者に知られている又はこれから知られるように、他の実施形態にも及びうる。本明細書中の「一実施形態」「本実施形態」又は「これら実施形態」という記載は、同実施形態に関連して記載される特定の特徴、構造、又は特性が本発明の少なくとも一つの実施形態に含まれることを意味するものであり、本明細書の様々な箇所で用いられるこれらの表現が必ずしも同じ実施形態を指しているとは限らない。また、以下の詳細な説明では、本発明の完全な理解のために具体的な詳細を数多く示している。しかし、当業者に明らかなように、本発明を実施する際にこれら具体的な詳細すべてが必要となる訳ではない。また、他の状況においては、本発明を曖昧にすることがないよう、周知の構造、材料、回路、プロセス及びインターフェースを詳細に記載してはおらず、また/又はブロック図の形式で図示する場合がある。
【0018】
[0044] また、以下に記載する詳細な説明の一部は、コンピュータ内のオペレーションをアルゴリズム的及び象徴的に表現する観点から示されている。これらアルゴリズム的記載及び象徴的表現は、データ処理の分野における当業者が自身の技術の要点を他の当業者に最も効果的に伝達する際に使用される手段である。アルゴリズムとは、所望の最終状態又は結果につながる一連の定義されたステップである。本発明中、実施される工程においては、明確な結果を得るべく具体的数量を物理的に操作することが必要となる。通常(必ずしもではないが)、当該数量は、記憶、転送、結合、比較、及びその他の操作が可能な、電気的又は磁気的信号又は命令の形態をとる。上記信号は、主として一般的な用法であるという理由により、ビット、値、エレメント、記号、文字、用語、数字、命令、等と呼ぶのが便利である。ただし、上記用語及びそれに類似する用語はすべて、適切な物理的数量と関連付けされるものであって、それら数量に適用される利便的ラベルでしかない旨留意すべきである。特に明記しない限り、以下の記載からも明らかなように、本明細書全体を通じて、「処理」「算出」「計算」「決定」「表示」等の表現を使用する記載は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表わされるデータを操作しかつそれをコンピュータシステムのメモリ又はレジスタ又は他の情報記憶、送信又は表示デバイス内の物理的数量として上記同様に表現される他のデータに変換するコンピュータシステム又は他の情報処理装置の動作又は処理を含むものとする。
【0019】
[0045] 本発明は、また、本発明の動作を実行するための装置に関する。この装置は、所望の目的のために具体的に構成された装置であってよく、あるいは、一つ以上のコンピュータプログラムによって選択的に起動又は再構成される一つ以上の汎用コンピュータを含んだ装置であってもよい。かかるコンピュータプログラムは、コンピュータ読取り可能な記憶媒体、例えば、光ディスク、磁気ディスク、読取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ、又は、電子情報を記憶するのに適した他の種類の媒体(これらに限定されない)に記憶されたものであってよい。本明細書中に提示されるアルゴリズム及び表示は、特定のコンピュータ又は他の装置に本質的に関連するものではない。本明細書中の教示内容に従って多様な汎用システムをプログラム及びモジュールとともに使用してよく、あるいは、所望の方法工程を実行するために、より特化された装置を構成するのも好都合である。また、本発明は特定のプログラミング言語を基準に記載されるものではない。本明細書に記載される本発明の教示内容を実行するために多様なプログラミング言語を使用することができる。プログラミング言語の命令は、例えば、中央処理装置(CPU)、プロセッサ、又は、コントローラ等の一つ以上の処理デバイスによって実行することができる。
【0020】
[0046] 本発明の例示的な実施形態では、以下に詳述するように、大容量ディスクドライブにおいて特に有利となる、障害時にリカバリするデータの記憶位置に対して優先度を付与するための装置、方法、及び、コンピュータプログラムを提供する。
【0021】
[0047] 例示的実施形態によると、本発明の方法は、
【0022】
[0048] A. システム構成
【0023】
[0049] 図1は、本発明の方法及び装置を適用することができるシステムのハードウェア構成の一例を示している。ストレージシステム100は、ストレージコントローラ110、メインプロセッサ111、スイッチ112、ホストインターフェース113、メモリ200、キャッシュ300、ディスクコントローラ400、ディスク600(例えば、HDDやSSD)、及び、バックエンドパス601(例えば、ファイバチャネル、SATA、SAS、及び、iSCSI(IP))を有する。
【0024】
[0050] メインプロセッサ111は、ストレージコントローラ110に関する様々な処理を実行する。メインプロセッサ111及び他のコンポーネントは、図2に示される、メモリ200に記憶されているマッピング情報201、プール情報202、ボリューム情報203、アクセス情報204、セグメントグループ情報205、内部ボリューム情報206、パリティグループ情報207、リリーサビリティ情報208、及び、リカバリ優先度情報209を使用する。
【0025】
[0051] メインプロセッサ111は、図2に示される、メモリ200に記憶されているライト処理プログラム211、リード処理プログラム212、リリース登録プログラム213、リリースプログラム214、リカバリ優先度決定プログラム215、リカバリ優先度登録プログラム216、及び、リカバリプログラム217を実行することにより処理を行う。処理の詳細については後述する。
【0026】
[0052] ホスト500及び管理コンピュータ520は、SAN900(例えば、ファイバチャネル、ファイバチャネル・オーバー・イーサネット、及び、iSCSI(IP))を介してホストインターフェース113に接続されている。ホスト500、管理コンピュータ520、及び、ストレージコントローラ110は、LAN902(例えば、IPネットワーク)を介して互いに接続されている。
【0027】
[0053] ホスト500は、ファイルシステム501、オペレーティングシステムOS502、及び、アプリケーションプログラム503を有する。これらのプログラムを実行するため、ホスト500はさらに、図1には示されていない、プロセッサ、メモリ、及び、ストレージデバイス等のリソースを有する。
【0028】
[0054] 管理コンピュータ520は、ファイルシステム501、OS502、及び、管理プログラム523を有する。これらのプログラムを実行するため、管理コンピュータ520はさらに、図1には示されていない、プロセッサ、メモリ、及び、ストレージデバイス等のリソースを有する。管理コンピュータ520は、以下に記載するように、メモリ上にリカバリ優先度情報529を保持する。
【0029】
[0055] B. ボリューム提供方法の概要
【0030】
[0056] 一実施形態において、ストレージシステム100は、シンプロビジョニングボリューム(TPV)610及び慣用(シンプロビジョニングされていない)ボリューム630を提供する。これらの種類のボリュームに関しては、特許文献2が慣用ボリューム及びシンプロビジョニングボリュームを提供するストレージシステムを開示している。図3は、TPV610を提供する構造及び方法を示している。ストレージシステム100は、複数のプールボリューム620を有し、これらプールボリューム620をチャンク690と呼ばれる多数の固定長領域に分割する。ストレージシステム100は、ライトアクセス時に、仮想ボリューム(TPV)の一つのセグメントに対して一つのチャンク690を割り当てる。つまり、物理記憶領域を要求に応じて割り当てる。図3中、TPV610は複数のセグメントから仮想的に構成され、プールボリューム620からセグメント(つまり、TPV610の固定長領域(ページ))へチャンク690が割り当てられる。例えば、図3では、チャンク4がセグメント6に割り当てられている。つまり、TPV610はページベースのボリュームである。
【特許文献2】米国特許番号第7,162,600号
【0031】
[0057] 上記を達成するため、ストレージコントローラ110はマッピング情報201及びプール情報202を使用する。図4は、マッピング情報201の一例を示している。マッピング情報201は、各ボリュームのチャンクとセグメントとのマッピングを保持するものである。チャンクがセグメントに割り当てられていない場合、割当て状態は「NO」となる。マッピング情報201は、高速検索用の各エレメントのリスト又はディレクトリとして構成することができる。
【0032】
[0058] 図5は、プール情報202の一例を示している。プール情報202は、チャンクが使用されているか否かを管理している。プール情報202を使用することによって、ストレージコントローラ110は、後述するライト処理において、空き(使用されていない)チャンクを見つけることができる。プール情報202もまた、空きチャンクを迅速に検索するための各エレメントのリスト又はディレクトリとして構成することができる。
【0033】
[0059] ストレージシステム100はまた、慣用ボリューム630を提供する。図1に示すように、ストレージコントローラ110は、慣用ボリュームの生成時に、当該慣用ボリューム630の全領域に記憶領域を割り当てる。慣用ボリューム630用の記憶領域を管理するため、ストレージコントローラ110はボリューム情報203を使用する。
【0034】
[0060] 図6は、ボリューム情報203の一例を示している。ボリューム情報203は、各ボリュームの種別(つまり、慣用又はTPV)、サイズ、及び、公用ボリュームIDを含んでいる。公用ボリュームIDは、ホストコンピュータ500を含む他のコンピュータが当該ボリュームを認識するために使用される。また後述するように、ストレージコントローラ110は、内部ボリュームIDを用いて、さらには内部ボリューム情報206及びパリティグループ情報207を参照することによって、慣用ボリューム630とパリティグループ603との関係(図7参照)を認識することができる。ボリューム情報203はまた、慣用ボリューム630の公用ボリュームIDと内部ボリュームIDとの関係(マッピング)を保持する。
【0035】
[0061] また、ボリューム情報203は、TPVIDを参照することでTPV610をストレージシステム100が提供するデータ記憶ボリュームとしてホスト500に供給するために使用される。つまり、ボリューム情報203は、公用ボリュームIDとTPVIDとの関係(マッピング)を保持する。ボリューム情報203はさらに、TPV610だけではなく各慣用ボリューム630のセグメントサイズに関する情報も含んでいる。つまり、TPV及び慣用ボリュームともに固定長セグメントを有する。セグメントサイズは、ホスト500、管理コンピュータ520、及び/又は、ストレージシステム100の管理端末を介して、ユーザが選択及び登録してもよい。
【0036】
[0062] C. パリティグループ及びデータ保護
【0037】
[0063] 図7は、ディスク600、パリティグループ603、プールボリューム620、及び、慣用ボリューム630間の関係を示している。パリティグループ603は、複数の物理記憶ディスク600の集合体である。RAID技術により、データ及び当該データから生成されるパリティは、パリティグループ603内の複数のディスク600に分散されている。パリティグループは、データを分散して記憶するための記憶リソースを提供する。パリティグループによって提供される記憶領域は、ボリューム(つまり、慣用ボリューム630及びプールボリューム620)に細分されている。また、各慣用ボリューム630及びプールボリューム620は、複数のパリティグループ603の記憶領域を有することができる。
【0038】
[0064] 図8、図9、及び図10は、パリティを生成するとともにRAID技術に基づいてデータを再構成する例示的方法を示している。具体的には、図8は、パリティ情報を生成する例示的方法を示している。パリティは排他的論理和(exclusive OR:EOR)計算により生成され、同計算において、データ‐A、データ‐B、及びデータ‐Cは、一つのパリティを生成する各データ群(ストライプ)であり、単一のパリティグループ内の各ディスクに分散される情報単位を表している。特に、パリティは、以下の計算式で計算される。
式:データ‐A XOR データ‐B XOR データ‐C=パリティ
【0039】
[0065] 物理ディスクに記憶されているデータとパリティとの関係を維持するため、記憶されているデータに変更があればパリティも変更しなければならない。図9は、関連データが更新された際に新たなパリティ値を計算するための例示的方法を示している。新たなパリティ値は、以下の式を使用して計算される。
式:新データ‐A XOR 旧データ‐A XOR 旧パリティ=新パリティ
【0040】
[0066] 上述したようなデータとパリティとの関係は常に維持されるため、あるデータストライプを、他のデータストライプ及びパリティ値から再構成することができる。つまり、パリティグループ内のディスク障害によって記憶されているデータの一部が失われた場合でも、失われたデータストライプをリカバリすることができる。図10は、あるデータストライプを、パリティ及び他のデータストライプから再構成するための例示的方法を示している。具体的には、データ‐Cは、式「データ‐A XOR データ‐B XOR パリティ=データ‐C」を使用して再構成することができる。RAIDレベル6(RAID6)で構成されるストレージシステムでは、二つのパリティコードが維持されかつそれらが二つの異なるディスクに分散しているため、二つのデータストライプを失った場合でも、データを復旧することができる。
【0041】
[0067] また、ディスク600に記憶されたデータは、データのミラーリング(つまり、RAID1)によって保護することもできる。ミラーリングを使用すれば、障害が発生したディスク600に記憶されたデータを復旧する際、障害が発生したディスク600とミラーリングペアを成すディスク600内に記憶されたデータを別のディスク600にコピーする。
【0042】
[0068] 上述したディスク600、パリティグループ603、及び、ボリューム間の関係を管理するため、ストレージコントローラ110は、内部ボリューム情報206及びパリティグループ情報207を保持する。図11は、内部ボリューム情報206の一例を示している。内部ボリューム情報206は、パリティグループ603の一領域がどのように各ボリューム(つまり、慣用ボリューム630及びプールボリューム620)に割り当てられているかに関する関係を示している。この内部ボリューム情報206は、内部ボリュームID、各ボリュームの種別、各ボリュームのサイズ、パリティグループID、及び、当該ボリュームに対する領域の開始アドレスを有する。図12は、パリティグループ情報207の一例を示している。パリティグループ情報207は、各パリティグループ603の構成及び当該パリティグループ603に対するデータ保護の種別を保持維持するものである。例えば、パリティグループ#0は四つのディスク600から構成され、ミラーリングで保護されている(つまり、RAID1)。この例では、ディスク#0とディスク#1とがミラーリングペアを形成し、ディスク#2とディスク#3からなるペアと同一のデータを有している。
【0043】
[0069] D. ライト処理の概要
【0044】
[0070] 図13は、ホストコンピュータ500からのライト要求に対する処理の概要を示すフローダイアグラムの一例である。ステップ1001において、ホスト500はライト要求を発行し、ストレージコントローラ110にライトデータを転送する。ステップ1002において、ストレージコントローラ110は、ライト要求を参照して、ライトアクセスの対象ボリュームを確認する。ステップ1003において、当該対象ボリュームの種別がTPVであれば、ストレージコントローラ110はTPVに対するライト処理を実行する(ステップ1004)。そうでない場合、ストレージコントローラ110は慣用ボリュームに対するライト処理を実行する(ステップ1005)。各ライト処理の詳細は後述する。
【0045】
[0071] E. リード処理の概要
【0046】
[0072] 図14は、ホストコンピュータ500からのリード要求に対する処理の概要を示すフロー図の一例である。ステップ1101において、ホスト500は、ストレージコントローラ110へリード要求を発行する。ステップ1102において、ストレージコントローラ110は、当該リード要求を参照してリードアクセスの対象ボリュームを確認する。ステップ1103において、当該対象ボリュームの種別がTPVであれば、ストレージコントローラ110はTPVに対するリード処理を実行する(ステップ1104)。そうでない場合、ストレージコントローラ110は慣用ボリュームに対するリード処理を実行する(ステップ1105)。各リード処理の詳細は後述する。
【0047】
[0073] F. TPVに対するライト処理
【0048】
[0074] 図15は、TPV610に対するライト処理を示すフロー図の一例である。ステップ1201において、ストレージコントローラ110は、ライト要求を参照して、ライトアクセスの対象TPV610及び対象領域を確認する。ステップ1202において、ストレージコントローラ110は、当該対象領域内のセグメントについてのマッピング情報を確認する。既に当該セグメントにチャンクが割り当てられている場合、ステップ1205へ進む。割り当てられていない場合は、ステップ1203へ進む。
【0049】
[0075] ステップ1203(チャンク未割当て)において、ストレージコントローラ110は、ライトデータを記憶するための新たなチャンクを割り当てる。この割当てを行うために、ストレージコントローラ110は、マッピング情報201及びプール情報202を更新する。プール情報202を使用することにより、ストレージコントローラ110は内部ストレージから新しいチャンクを見つける。ステップ1204において、ストレージコントローラ110はこの新しいチャンクにライトデータを記憶し、処理はステップ1206へ進む。
【0050】
[0076] ステップ1205(チャンク割当て済み)において、ストレージコントローラ110は、既存のチャンクにライトデータを記憶する。
【0051】
[0077] ステップ1206において、ストレージコントローラ110はアクセス情報204を更新する。アクセス情報204は、セグメント(つまり、ページ)に関するアクセス特性を記録している。ステップ1207において、ストレージコントローラ110が当該対象領域のすべてのセグメントを確認済みであれば、処理が終了する。そうでない場合は、ストレージコントローラ110は次のセグメントについての確認を進める(ステップ1208)。
【0052】
[0078] 図16は、セグメントへのアクセスに関するアクセス情報204の一例を示している。図16に示すように、アクセス情報204は、各セグメントグループへのアクセスに関する情報、例えば、リード及びライトそれぞれについて、単位時間当たりのアクセスレート、最終アクセス時刻、平均アクセス長、等を保持する。一つのセグメントグループは、TPVのセグメントの集合体であり、固定数の連続するセグメントからなる。各セグメント番号内のセグメント数は、セグメントグループ情報205で定義されており、ユーザが直接又は管理コンピュータ520を介して選択することができる。値が1に設定されている場合、一つのセグメントグループが一つのセグメントに相当する。一つのセグメントグループ内のセグメント数が小さければ高精度の統計が可能になるが、統計データを記憶するためのメモリのサイズが大きくなる。平均アクセス長に関する情報は定期的に初期化してもよい。当該情報を参照することにより、各セグメントグループについてのアクセス頻度及びアクセス間隔を取得することができる。
【0053】
[0079] G. TPVに対するリード処理
【0054】
[0080] 図17は、TPV610に対するリード処理を示すフロー図の一例である。ステップ1301において、ストレージコントローラ110は、リード要求を参照して、リードアクセスの対象TPV610及び対象領域を確認する。ステップ1302において、ストレージコントローラ110は、当該対象領域内のセグメントについてのマッピング情報201を確認する。既に当該セグメントにチャンクが割り当てられている場合、ステップ1303へと進む。割り当てられていない場合は、ステップ1305へ進む。
【0055】
[0081] ステップ1303(チャンク割当て済み)において、ストレージコントローラ110は当該チャンクに記憶されているデータをホスト500へ転送する。ステップ1304において、ストレージコントローラ110はアクセス情報204を更新する。ステップ1305(チャンク未割当て)において、ストレージコントローラ110はゼロ(0)のデータをホスト500へ送信する。最後に、ステップ1306において、ストレージコントローラ110が当該対象領域のすべてのセグメントを確認済みであれば、処理が終了する。そうでない場合は、ストレージコントローラ110は次のセグメントについての確認を進める(ステップ1307)。
【0056】
[0082] H. 慣用ボリュームに対するライト処理
【0057】
[0083] 本発明の実施形態によると、慣用ボリューム630についてもアクセス情報204が記録される(つまり、アクセス特性が監視される)。
【0058】
[0084] 図18は、慣用ボリューム630に対するライト処理を示すフロー図の一例である。ステップ1401において、ストレージコントローラ110は、ライト要求を参照して、ライトアクセスの対象慣用ボリューム630及び対象領域を確認する。ステップ1402において、ストレージコントローラ110は、ライトアクセスの当該対象領域にライトデータを記憶する。ステップ1403において、ストレージコントローラ110はアクセス情報204を更新する。
【0059】
[0085] 図19は、慣用ボリュームについてのアクセス情報204の一例を示している。図19のアクセス情報204は、慣用ボリュームID及び慣用ボリュームセグメントIDを有する点を除き、図16に示すアクセス情報204と同一である。
【0060】
[0086] I. 慣用ボリュームに対するリード処理
【0061】
[0087] 図20は、慣用ボリューム630に対するリード処理を示すフロー図の一例である。ステップ1501において、ストレージコントローラ110は、リード要求を参照して、リードアクセスの対象慣用ボリューム630及び対象領域を確認する。ステップ1502において、ストレージコントローラ110はリードアクセスの当該対象領域に記憶されているデータをホスト500へ転送する。ステップ1503において、ストレージコントローラ110はアクセス情報204を更新する。
【0062】
[0088] J. TPVに対するリリース要求
【0063】
[0089] ホスト500は、使われなくなった領域(つまり、セグメント)についてストレージシステム100に報告し、当該セグメントからのチャンク690の取り戻しを要求することができる。
【0064】
[0090] 図21は、TPV610に対するリリース要求処理を示すフロー図の一例である。ステップ1601において、ホスト500は、TPV610の使用されなくなった領域を検索し、ストレージコントローラ110へリリース要求を発行する。上記使用されなくなったセグメントを探す処理については、ファイルシステム501がTPV610内のデータ記憶状態及び記憶領域の使用状況を把握することができるため、ファイルシステム501によって実行してもよい。ステップ1602において、ストレージコントローラ110は、受信した要求を参照して、リリース対象となる対象TPV610及び対象領域を確認する。ステップ1603において、ストレージコントローラ110は、当該対象領域のリリーサビリティ情報208を更新する。
【0065】
[0091] 図22はリリーサビリティ情報208の一例を示している。リリーサビリティ情報208は、各セグメントのリリーサビリティを示す情報である。リリース要求によって、ストレージコントローラ110は当該対象領域の「リリース可能」状態を「可」に変更する。
【0066】
[0092] K. TPVのチャンクのリリース処理
【0067】
[0093] 図23は、TPV610のチャンクをリリースする処理を示すフロー図の一例である。この処理は定期的に繰り返されるか又はストレージシステム110の負荷が小さい時に行われる。ステップ1701において、ストレージコントローラ110はリリーサビリティ情報208を確認する。リリース可能と記されたセグメントがあれば、処理はステップ1702へ進む。そのようなセグメントがない場合は処理が終了する。ステップ1702において、ストレージコントローラ110はリリーサビリティ情報208を更新する。ストレージコントローラ110は、リリース対象となるチャンクを有するセグメントについて、「リリース可能」状態を「不可」に変更する。ステップ1703において、ストレージコントローラ110は、マッピング情報201及びプール情報202を更新することにより、上記セグメントからチャンク690をリリースする。
【0068】
[0094] L. リカバリ優先度決定処理
【0069】
[0095] 図24は、慣用ボリューム630及びTPV610の各領域のリカバリ優先度を決定する処理を示すフロー図の一例である。本例では、アクセスレート、アクセス頻度、及びアクセス間隔等のアクセス特性に従って、優先度が決定される。ステップ1801において、ストレージコントローラ110はディスク600の障害を検出する。ステップ1802において、ストレージコントローラ110は、TPV610及び慣用ボリューム630において上記障害の影響を受けた領域を見つける。ストレージコントローラ110は、障害が発生したディスク600についてのマッピング情報201、内部ボリューム情報206、及びパリティグループ情報207を参照することにより、影響を受けた領域を把握する。ステップ1803において、ストレージコントローラ110は、影響を受けた領域についてのアクセス情報204を確認し、アクセス頻度等のアクセス特性を取得する。ステップ1804において、ストレージコントローラ110は、アクセス特性に従って、当該影響を受けた領域を、いくつか(例えば、三つ)の優先度、高、中、低に分類する。例えば、ストレージコントローラ110は、各領域又はセグメントグループについて、アクセス頻度の順位(ランキング)を取得し、各領域又はセグメントを三つのクラスに分類する。ステップ1805において、ストレージコントローラ110は取得した優先度をリカバリ優先度情報209に登録する。
【0070】
[0096] 図25は、リカバリ優先度情報209の一例を示している。本例では、ボリュームIDの列において、ボリューム情報203で使用する識別子が示されている。図25に示すように、慣用ボリューム630及びTPV610を含むボリューム内の領域は、リカバリ処理に関連して、複数のクラス、例えば、高優先度グループ、中優先度グループ、及び、低優先度グループに分類される。本例では、アクセス頻度の高い領域が高い優先度を有し、アクセス頻度の低い領域が低い優先度を有する。アクセス特性の他の要因を、優先度を決定する別の例として使用することもできる。領域を示す態様については、開始アドレス及び領域長を使用する代わりに、別の例として、セグメントID又はセグメントグループIDを使用してもよい。本発明に関する別の方法の例として、ホスト500が監視するアクセス特性を使用して優先度を決定するようにしてもよい。
【0071】
[0097] M. 性能要件に対するリカバリ優先度登録処理
【0072】
[0098] ディスク障害のリカバリにおける優先度の付与又は分類の別の方法として、ホスト500又は管理コンピュータ520から優先度を登録することができる。図26は、性能要件に基づいてボリュームの各領域のリカバリ優先度を登録する処理を示すフロー図の一例である。本例では、ホスト500又は管理コンピュータ520が各ボリュームの各領域の性能要件を分析する。例えば、データベースアプリケーションのデータ、特にデータベースのインデックスは、高い性能を要する。トランザクションアプリケーションのデータもまた高い性能を要する。ホスト500又は管理コンピュータ520は、そのようなデータを記憶している領域に対して高い優先度を割り当てることができる。ホスト500又は管理コンピュータ520は、複数のアプリケーション間での性能要件の違いを評価することができる。
【0073】
[0099] ステップ1901において、管理コンピュータ520は、ボリューム内の領域に記憶されているデータについての性能要件を分析する。ステップ1902において、管理コンピュータ520は、当該データの記憶位置を取得し、その領域を、分析した性能要件の差に従って、いくつか(例えば、三つ)の優先度、高、中、低のいずれかに分類する。ステップ1903において、管理コンピュータ520は、取得した優先度をリカバリ優先度情報529に記録する。図25に示すリカバリ優先度情報209の一例を、上述のリカバリ優先度情報529に適用することもできる。ステップ1904において、管理コンピュータ520は、スレージコントローラ110に対してリカバリ登録要求を発行する。この要求と共に、リカバリ優先度情報529の内容がストレージコントローラ110へ転送される。ステップ1905において、ストレージコントローラ110は、受信した情報を参照して、リカバリ優先度情報209を更新する。別の例として、管理コンピュータ520は、複数のクラスを特定する代わりに高優先度領域のみを特定するようにしてもよい。
【0074】
[0100] N. データ重要度に基づくリカバリ優先度登録処理
【0075】
[0101] 考慮すべき別の要因として、データの重要度がある。つまり、データ損失を回避する必要性に基づいて優先度を評価するようにしてもよい。図27は、データの重要度に基づいてボリュームの各領域のリカバリ優先度を登録する処理を示すフロー図の一例である。本例では、ホスト500又は管理コンピュータ520は、各ボリュームの各領域の重要度を分析する。例えば、ファイルシステム501、OS502、及びアプリケーションプログラム503が使用するメタデータは、損失によってソフトウェアが使用するデータ全体が失われる又は使用できなくなることがあるため、重要である。ホスト500又は管理コンピュータ520は、そのようなデータを記憶する領域に対して高い優先度を割り当てる。また、ユーザの観点から、殆どのアプリケーションプログラム503は、重要なユーザデータと重要でないデータの両方を保持している。つまり、重要度に差が存在することになる。ホスト500又は管理コンピュータ520は、複数のアプリケーションによって維持される複数種類のデータ間において、重要度の差を評価することができる。
【0076】
[0102] ステップ2001において、管理コンピュータ520は、ボリューム内の領域に記憶されているデータについて、上述したような重要度を分析する。ステップ2002において、管理コンピュータ520は当該データの記憶位置を取得し、その領域を、分析したデータ重要度における又はデータ損失回避の必要性における差に従って、いくつか(例えば、三つ)の優先度、高、中、低のいずれかに分類する。ステップ2003において、管理コンピュータ520は、取得した優先度をリカバリ優先度情報529に記録する。図25に示すリカバリ優先度情報209の一例を、上述のリカバリ優先度情報529に適用することもできる。ステップ2004において、管理コンピュータ520は、スレージコントローラ110に対してリカバリ登録要求を発行する。この要求と共に、リカバリ優先度情報529の内容がストレージコントローラ110に転送される。ステップ2005において、ストレージコントローラ110は、受信した情報を参照して、リカバリ優先度情報209を更新する。別の例として、管理コンピュータ520は、複数のクラスを特定する代わりに高優先度領域のみを特定するようにしてもよい。
【0077】
[0103] O. TPVに対する処理に基づくリカバリ優先度の決定
【0078】
[0104] 上述したように、TPV610を提供する処理には、チャンク910の割当て及びリリース要求が含まれる。割当て処理及びリリース処理に関する情報は、リカバリ優先度情報209の生成に使用することができる。図28は、シンプロビジョニングボリュームの各領域の割当て/リリース(つまり、使用状態)に基づいて、シンプロビジョニングボリュームの各領域のリカバリ優先度を生成する処理を示すフロー図の一例である。この処理によって、データを引き続き記憶することが期待される領域は、ディスク障害からのリカバリについて高い優先度を得る。
【0079】
[0105] ステップ2101において、ストレージコントローラ110は、ディスク600の障害を検出する。ステップ2102において、ストレージコントローラ110は、障害の影響を受けたTPV610の領域を見つける。ストレージコントローラ110は、障害が発生したディスク600についてマッピング情報201、内部ボリューム情報206、及びパリティグループ情報207を参照することにより、影響を受けた領域を把握する。ステッ2103において、ストレージコントローラ110は、リカバリ優先度情報209を初期の値である「低」にリセットする。ステップ2104において、ストレージコントローラ110は、影響を受けた領域内のセグメントについてマッピング情報201を確認する。既に当該セグメントにチャンクが割り当てられている場合、ステップ2105へ進む。割り当てられていない場合、ステップ2108へ進む。ステップ2105において、ストレージコントローラ110は、当該セグメントについてリリーサビリティ情報208を確認する。当該セグメントがリリース可能と記されている場合は、ステップ2108へ進む。そうでない場合は、ステップ2106へ進む。ステップ2106において、ストレージコントローラ110は、当該セグメントの領域を、リカバリについて高い優先度を有するものとして分類する。ステップ2107において、ストレージコントローラ110は取得した優先度をリカバリ優先度情報209に記録する。ステップ2108において、当該影響を受けた領域のすべてのセグメントをストレージコントローラ110が確認済みであれば、処理が終了する。そうでない場合は、ストレージコントローラ110は次のセグメントについての確認を進める(ステップ2109)。
【0080】
[0106] P. リカバリ処理
【0081】
[0107] 図29は、上述のリカバリ優先度に従うディスク障害からのリカバリの処理を示すフロー図の一例である。ステップ2201において、ストレージコントローラ110は、リカバリ対象となるディスク600上の各領域のリカバリ優先度を取得する。ストレージコントローラ110は、ボリューム情報203、内部ボリューム情報206、及び/又はマッピング情報201を参照して、ディスク600上の記憶位置を認識する。ストレージコントローラ110はさらにリカバリ優先度情報209を参照して、優先度を取得する。ステップ2202において、ストレージコントローラ110は、上述の方法を使用して、取得した優先度に従い、障害が発生したディスク600に記憶されているデータを別のディスク600に復旧する。
【0082】
[0108] 優先度に基づくリカバリを実現するため、ストレージコントローラ110は、複数の記憶位置に対して行われる同時並行リカバリ処理のそれぞれに対し、各記憶位置の優先度に応じて、演算リソース(例えば、メインプロセッサ111及びディスクコントローラ400の処理タイム、メモリ200、及び、バックエンドパス601のバンド幅)を割り当てることができる。ストレージコントローラ110はまた、優先度に従って、リカバリ処理の実行順を制御することもできる。上述した方法及び処理によって、ユーサのアプリケーション及び使用状況に合ったディスク障害リカバリ方法を実現することができる。
【0083】
[0109] 当然であるが、図1に示すシステム構成は、単に、本発明を実施しうる例示的な情報システムであり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上記発明の実現に使用されるモジュール、プログラム、及びデータ構造を記憶しかつ読み出すことのできる既知のI/Oデバイス(例えば、CD及びDVDドライブ、フロッピーディスクドライブ、ハードドライブ等)を有することもできる。これらモジュール、プログラム、及び、データ構造は、コンピュータ読取可能な媒体上に符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能な媒体とは別の、コンピュータ読取可能な媒体に記憶することができる。当該システムのコンポーネントは、デジタルデータ通信のいずれかの形態又は媒体、例えば、通信ネットワークによって、相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例、インターネット)、ワイヤレスネットワーク、記憶領域ネットワーク等がある。
【0084】
[0110] 上記説明において、本発明を十分理解するための説明として、数多くの詳細を示している。しかし、当業者に明らかなように、本発明を実施する際にこれら具体的な詳細すべてが必要となる訳ではない。また本発明は、一般的にフローチャート、フロー図、構造図、又はブロック図として記載される処理として説明してもよい。フローチャートでは順次的な処理として動作を記載してもよいが、動作の多くは並行又は同時に実施することができる。また、動作の順序を入れ替えることもできる。
【0085】
[0111] 本分野において知られているように、上述の動作は、ハードウェア、ソフトウェア、又は両者の組み合わせによって実現することができる。本発明の実施形態の様々な態様は、回路及び論理機構(ハードウェア)を使用して実現でき、他の態様についても、機械読取可能な媒体(ソフトウェア)上に記憶されている命令を使用して実現でき、また、プロセッサがこれを実現する場合は、当該命令によって本プロセッサが本発明の実施形態の実現方法を実行する。また、本発明の実施形態は、ハードウェアのみで実行してよいものや、ソフトウェアのみで実行してよいものがある。また、記載した様々な機能は、単一のユニットが実行してもよく、あるいは、各種方法を用いて多数のコンポーネントで実行してもよい。ソフトウェアが実行する場合、本発明の実施形態を実行する方法は、コンピュータ読取可能な媒体に記憶された命令に基づいて、汎用コンピュータ等のプロセッサによって実行されうる。所望の場合、これらの命令は、圧縮及び/又は暗号化されたフォーマットで媒体上に記憶することができる。
【0086】
[0112] 上記より明らかなように、本発明は、大容量ディスクドライブにおいて特に有利となる、障害時のリカバリ対象データの記憶位置に優先度を付与するための方法、装置、及び、コンピュータ読取可能な媒体に記憶されたプログラムを提供するものである。また、本明細書中、特定の実施形態を図示及び記載してきたが、当業者達が認識するように、開示された特定の実施形態の代わりに、同一の目的を達成するべく計算されたあらゆる構成を使用してもよい。本開示内容は、本発明のあらゆる調整又は変更を含むものとし、特許請求の範囲に使用される用語は、本発明を明細書中に開示される特定の実施形態に制限するものとして解釈されるべきではない。むしろ、本発明の範囲は、特許請求の範囲によって完全に決定されるものであり、特許請求の範囲は、それが有するあらゆる均等物とともに、請求項の解釈の確立された原則に従って解釈されるものとする。
【特許請求の範囲】
【請求項1】
ストレージシステム内の複数の記憶領域に対して、データリカバリのために異なる優先度を付与する工程と、
前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行する工程と、
を備え、
前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリが、優先度の低い別の記憶領域のデータリカバリよりも先に実行される、
ストレージシステムにおけるストレージ使用方法。
【請求項2】
前記優先度を付与する工程が、
前記ストレージシステム内の前記記憶領域のアクセス特性を監視する工程と、
前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、
を備える、請求項1に記載の方法。
【請求項3】
前記アクセス特性が、アクセス頻度、アクセスレート、及び、アクセス間隔のうち少なくとも一つを備える、請求項2に記載の方法。
【請求項4】
前記優先度を付与する工程が、前記ストレージシステム内の前記記憶領域に対して前記異なる優先度を割り当てる工程を備える、請求項1に記載の方法。
【請求項5】
前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる、請求項4に記載の方法。
【請求項6】
前記記憶領域内のデータの使用状況に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域内に記憶されているデータの使用状況を分析して前記優先度を決定し、前記分析した使用状況に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、
前記記憶領域内のデータの重要度に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域に記憶されているデータの重要度を分析して前記優先度を決定し、前記分析した重要度に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、
をさらに備える、請求項5に記載の方法。
【請求項7】
シンプロビジョニングボリュームである記憶ボリュームについて、前記優先度を付与する工程が、
前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定する工程、を備える、
請求項1に記載の方法。
【請求項8】
データプロセッサと、
メモリと、
データリカバリにおいて異なる優先度を有する複数の記憶領域と、
ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて、前記ストレージシステムのデータリカバリを実行するストレージコントローラと、を備え、
前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される、
ストレージシステム。
【請求項9】
前記ストレージコントローラが、前記ストレージシステム内の前記記憶領域のアクセス特性を監視し、前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対して、データリカバリにおける異なる優先度を付与する、請求項8に記載のストレージシステム。
【請求項10】
前記アクセス特性が、アクセス頻度、アクセスレート、及び、アクセス間隔のうち少なくとも一つを備える、請求項9に記載のストレージシステム。
【請求項11】
前記ストレージシステムにおいて、前記記憶領域に対して前記異なる優先度が割り当てられる又は登録される、請求項8に記載のストレージシステム。
【請求項12】
前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる、請求項11に記載のストレージシステム。
【請求項13】
前記記憶領域内のデータの使用状況に基づいて前記異なる優先度が割り当てられる場合、
前記ストレージコントローラは、各前記記憶領域内に記憶されているデータの使用状況の分析に関する情報を受信して前記優先度を決定し、
前記記憶領域内のデータの重要度に基づいて前記異なる優先度が割り当てられる場合、前記ストレージコントローラは、各前記記憶領域に記憶されているデータの重要度の分析に関する情報を受信して前記優先度を決定し、
前記ストレージコントローラは、前記受信した情報に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する、
請求項12に記載のストレージシステム。
【請求項14】
シンプロビジョニングボリュームである記憶ボリュームについて、前記ストレージコントローラは、前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定する、
請求項8に記載のストレージシステム。
【請求項15】
ストレージシステム内のストレージを使用するようにデータプロセッサを制御するための複数の命令を記憶する、コンピュータ読取可能な記憶媒体であって、
前記複数の命令は、
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する命令と、
前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行するように、前記データプロセッサに指示する命令と、を備え、
前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される、
コンピュータ読取可能な記憶媒体。
【請求項16】
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記ストレージシステム内の前記記憶領域のアクセス特性を監視するように、前記データプロセッサに指示する命令と、
前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する命令と、を備える、
請求項15に記載のコンピュータ読取可能な記憶媒体。
【請求項17】
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記ストレージシステム内の前記記憶領域に対して前記異なる優先度を割り当てるように、前記データプロセッサに指示する命令、を備える、
請求項16に記載のコンピュータ読取可能な記憶媒体。
【請求項18】
前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる、
請求項17に記載のコンピュータ読取可能な記憶媒体。
【請求項19】
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記記憶領域内の前記データの使用状況に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域内に記憶されている前記データの使用状況を分析して前記優先度を決定し、前記分析した使用状況に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新するように、前記データプロセッサに指示する命令と、
前記記憶領域内の前記データの重要度に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域に記憶されている前記データの重要度を分析して前記優先度を決定し、前記分析した重要度に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新するように、前記データプロセッサに指示する命令と、を備える、
請求項18に記載のコンピュータ読取可能な記憶媒体。
【請求項20】
シンプロビジョニングボリュームである記憶ボリュームについて、前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定するように、前記データプロセッサに指示する命令、を備える、
請求項15に記載のコンピュータ読取可能な記憶媒体。
【請求項1】
ストレージシステム内の複数の記憶領域に対して、データリカバリのために異なる優先度を付与する工程と、
前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行する工程と、
を備え、
前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリが、優先度の低い別の記憶領域のデータリカバリよりも先に実行される、
ストレージシステムにおけるストレージ使用方法。
【請求項2】
前記優先度を付与する工程が、
前記ストレージシステム内の前記記憶領域のアクセス特性を監視する工程と、
前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対して、データリカバリにおける異なる優先度を付与する工程と、
を備える、請求項1に記載の方法。
【請求項3】
前記アクセス特性が、アクセス頻度、アクセスレート、及び、アクセス間隔のうち少なくとも一つを備える、請求項2に記載の方法。
【請求項4】
前記優先度を付与する工程が、前記ストレージシステム内の前記記憶領域に対して前記異なる優先度を割り当てる工程を備える、請求項1に記載の方法。
【請求項5】
前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる、請求項4に記載の方法。
【請求項6】
前記記憶領域内のデータの使用状況に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域内に記憶されているデータの使用状況を分析して前記優先度を決定し、前記分析した使用状況に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、
前記記憶領域内のデータの重要度に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域に記憶されているデータの重要度を分析して前記優先度を決定し、前記分析した重要度に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する工程と、
をさらに備える、請求項5に記載の方法。
【請求項7】
シンプロビジョニングボリュームである記憶ボリュームについて、前記優先度を付与する工程が、
前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定する工程、を備える、
請求項1に記載の方法。
【請求項8】
データプロセッサと、
メモリと、
データリカバリにおいて異なる優先度を有する複数の記憶領域と、
ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて、前記ストレージシステムのデータリカバリを実行するストレージコントローラと、を備え、
前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される、
ストレージシステム。
【請求項9】
前記ストレージコントローラが、前記ストレージシステム内の前記記憶領域のアクセス特性を監視し、前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対して、データリカバリにおける異なる優先度を付与する、請求項8に記載のストレージシステム。
【請求項10】
前記アクセス特性が、アクセス頻度、アクセスレート、及び、アクセス間隔のうち少なくとも一つを備える、請求項9に記載のストレージシステム。
【請求項11】
前記ストレージシステムにおいて、前記記憶領域に対して前記異なる優先度が割り当てられる又は登録される、請求項8に記載のストレージシステム。
【請求項12】
前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる、請求項11に記載のストレージシステム。
【請求項13】
前記記憶領域内のデータの使用状況に基づいて前記異なる優先度が割り当てられる場合、
前記ストレージコントローラは、各前記記憶領域内に記憶されているデータの使用状況の分析に関する情報を受信して前記優先度を決定し、
前記記憶領域内のデータの重要度に基づいて前記異なる優先度が割り当てられる場合、前記ストレージコントローラは、各前記記憶領域に記憶されているデータの重要度の分析に関する情報を受信して前記優先度を決定し、
前記ストレージコントローラは、前記受信した情報に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新する、
請求項12に記載のストレージシステム。
【請求項14】
シンプロビジョニングボリュームである記憶ボリュームについて、前記ストレージコントローラは、前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定する、
請求項8に記載のストレージシステム。
【請求項15】
ストレージシステム内のストレージを使用するようにデータプロセッサを制御するための複数の命令を記憶する、コンピュータ読取可能な記憶媒体であって、
前記複数の命令は、
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する命令と、
前記ストレージシステム内の一つ以上の前記記憶領域を巻き込む障害の発生時に、前記優先度に基づいて前記ストレージシステムのデータリカバリを実行するように、前記データプロセッサに指示する命令と、を備え、
前記ストレージシステムにおいて、優先度の高い記憶領域のデータリカバリは、優先度の低い別の記憶領域のデータリカバリよりも先に実行される、
コンピュータ読取可能な記憶媒体。
【請求項16】
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記ストレージシステム内の前記記憶領域のアクセス特性を監視するように、前記データプロセッサに指示する命令と、
前記監視したアクセス特性に基づいて、前記ストレージシステム内の前記記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する命令と、を備える、
請求項15に記載のコンピュータ読取可能な記憶媒体。
【請求項17】
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記ストレージシステム内の前記記憶領域に対して前記異なる優先度を割り当てるように、前記データプロセッサに指示する命令、を備える、
請求項16に記載のコンピュータ読取可能な記憶媒体。
【請求項18】
前記記憶領域内のデータの使用状況又は重要度の少なくとも一方に基づいて、前記異なる優先度が割り当てられる、
請求項17に記載のコンピュータ読取可能な記憶媒体。
【請求項19】
前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記記憶領域内の前記データの使用状況に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域内に記憶されている前記データの使用状況を分析して前記優先度を決定し、前記分析した使用状況に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新するように、前記データプロセッサに指示する命令と、
前記記憶領域内の前記データの重要度に基づいて前記異なる優先度が割り当てられる場合、各前記記憶領域に記憶されている前記データの重要度を分析して前記優先度を決定し、前記分析した重要度に基づいて、前記ストレージシステム内の前記記憶領域に対する前記異なる優先度を更新するように、前記データプロセッサに指示する命令と、を備える、
請求項18に記載のコンピュータ読取可能な記憶媒体。
【請求項20】
シンプロビジョニングボリュームである記憶ボリュームについて、前記ストレージシステム内の複数の記憶領域に対してデータリカバリにおける異なる優先度を付与するように、前記データプロセッサに指示する前記命令は、
前記シンプロビジョニングボリュームについての領域割当て処理に関する情報及び領域リリース処理に関する情報を使用して、前記シンプロビジョニングボリュームの領域割当て及びリリースに基づいて前記異なる優先度を決定するように、前記データプロセッサに指示する命令、を備える、
請求項15に記載のコンピュータ読取可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【公開番号】特開2011−65625(P2011−65625A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−23237(P2010−23237)
【出願日】平成22年2月4日(2010.2.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.フロッピー
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2010−23237(P2010−23237)
【出願日】平成22年2月4日(2010.2.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.フロッピー
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]