(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-19
(45)【発行日】2024-09-30
(54)【発明の名称】ストレージ・ドライブの動的パフォーマンス・クラス調節
(51)【国際特許分類】
G06F 3/06 20060101AFI20240920BHJP
G06F 11/30 20060101ALI20240920BHJP
【FI】
G06F3/06 306Z
G06F3/06 304N
G06F3/06 305C
G06F3/06 540
G06F11/30 140M
G06F11/30 155
(21)【出願番号】P 2021575513
(86)(22)【出願日】2020-06-11
(86)【国際出願番号】 IB2020055480
(87)【国際公開番号】W WO2020261020
(87)【国際公開日】2020-12-30
【審査請求日】2022-11-21
(32)【優先日】2019-06-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】グプタ、ローケーシュ、モハン
(72)【発明者】
【氏名】ボーリック、マシュー
(72)【発明者】
【氏名】ニールセン、カール、アレン
(72)【発明者】
【氏名】ロビソン、マイカ
【審査官】北村 学
(56)【参考文献】
【文献】特開2004-334561(JP,A)
【文献】特開2013-182402(JP,A)
【文献】特表2008-516307(JP,A)
【文献】国際公開第2012/169027(WO,A1)
【文献】国際公開第2017/090176(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
G06F 11/30
(57)【特許請求の範囲】
【請求項1】
複数のストレージ・ドライブのI/O性能のパフォーマンス・クラスを動的に変化させてストレージ・ドライブのエージングまたは摩耗あるいはその両方を補償するための方法であって、
複数のストレージ・ドライブ
のオーバープロビジョニングの量の特性をストレージ環境内で監視することであって、各ストレージ・ドライブが、前記ストレージ・ドライブに関連付けられた個別の前記パフォーマンス・クラスを
それぞれ割り当てられて有する、監視することと、
前記特性を判定して、前記オーバープロビジョニングの量が指定のレベルより下に落ちた前記ストレージ・ドライブ
は、論理ストレージ容量を減らし、前記オーバープロビジョニングの量を増加させること、
前記オーバープロビジョニングの量の増加に基づいて、
前記オーバープロビジョニングの量の増加した前記ストレージ・ドライブに
それぞれ割り当てられている前記個別の前記パフォーマンス・クラスを変更すること、および
前記ストレージ・ドライブの
それぞれ割り当てられている前記個別の前記パフォーマンス・クラスに基づいて、同じ前記個別の前記パフォーマンス・クラスの前記ストレージ・ドライブを同じストレージ・グループ内に置いて、様々なストレージ・グループ内の前記ストレージ・ドライブを再編成すること
を周期的に実行することと
を含む、方法。
【請求項2】
前記ストレージ・グループが、RAIDアレイである、請求項1に記載の方法。
【請求項3】
前記ストレージ・グループが、階層化したストレージ環境におけるストレージ階層である、請求項1に記載の方法。
【請求項4】
前記ストレージ・グループが、一定のI/Oワークロードをサポートするように構成されたストレージ・ドライブのグループである、請求項1に記載の方法。
【請求項5】
複数のストレージ・ドライブのI/O性能のパフォーマンス・クラスを動的に変化させてストレージ・ドライブのエージングまたは摩耗あるいはその両方を補償するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、コンピュータ使用可能プログラム・コードを具現化したコンピュータ可読媒体を備え、前記コンピュータ使用可能プログラム・コードが、少なくとも1つのプロセッサによって実行されると、
複数のストレージ・ドライブ
のオーバープロビジョニングの量の特性をストレージ環境内で監視することであって、各ストレージ・ドライブが、前記ストレージ・ドライブに関連付けられた個別の前記パフォーマンス・クラスを
それぞれ割り当てられて有する、監視することと、
前記特性を判定して、前記オーバープロビジョニングの量が指定のレベルより下に落ちた前記ストレージ・ドライブ
は、論理ストレージ容量を減らし、前記オーバープロビジョニングの量を増加させること、
前記オーバープロビジョニングの量の増加に基づいて、
前記オーバープロビジョニングの量の増加した前記ストレージ・ドライブに
それぞれ割り当てられている前記個別の前記パフォーマンス・クラスを変更すること、および
前記ストレージ・ドライブの
それぞれ割り当てられている前記個別の前記パフォーマンス・クラスに基づいて、同じ前記個別の前記パフォーマンス・クラスの前記ストレージ・ドライブを同じストレージ・グループ内に置いて、様々なストレージ・グループ内の前記ストレージ・ドライブを再編成すること
を周期的に実行することと
を実行するように構成される、コンピュータ・プログラム製品。
【請求項6】
前記ストレージ・グループが、RAIDアレイである、請求項5に記載のコンピュータ・プログラム製品。
【請求項7】
前記ストレージ・グループが、階層化したストレージ環境におけるストレージ階層である、請求項5に記載のコンピュータ・プログラム製品。
【請求項8】
前記ストレージ・グループが、一定のI/Oワークロードをサポートするように構成されたストレージ・ドライブのグループである、請求項5に記載のコンピュータ・プログラム製品。
【請求項9】
複数のストレージ・ドライブのI/O性能のパフォーマンス・クラスを動的に変化させてストレージ・ドライブのエージングまたは摩耗あるいはその両方を補償するためのシステムであって、前記システムが、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに連結され、前記少なくとも1つのプロセッサ上での実行のための命令を格納する少なくとも1つのメモリ・デバイスと
を備え、前記命令が、
複数のストレージ・ドライブ
のオーバープロビジョニングの量の特性をストレージ環境内で監視することであって、各ストレージ・ドライブが、前記ストレージ・ドライブに関連付けられた個別の前記パフォーマンス・クラスを
それぞれ割り当てられて有する、監視することと、
前記特性を判定して、前記オーバープロビジョニングの量が指定のレベルより下に落ちた前記ストレージ・ドライブ
は、論理ストレージ容量を減らし、前記オーバープロビジョニングの量を増加させること、
前記オーバープロビジョニングの量の増加に基づいて、
前記オーバープロビジョニングの量の増加した前記ストレージ・ドライブに
それぞれ割り当てられている前記個別の前記パフォーマンス・クラスを変更すること、および
前記ストレージ・ドライブの
それぞれ割り当てられている前記個別の前記パフォーマンス・クラスに基づいて、同じ前記個別の前記パフォーマンス・クラスの前記ストレージ・ドライブを同じストレージ・グループ内に置いて、様々なストレージ・グループ内の前記ストレージ・ドライブを再編成すること
を周期的に実行することと
を前記少なくとも1つのプロセッサに行わせる、システム。
【請求項10】
前記ストレージ・グループが、RAIDアレイである、請求項9に記載のシステム。
【請求項11】
前記ストレージ・グループが、階層化したストレージ環境におけるストレージ階層である、請求項9に記載のシステム。
【請求項12】
前記ストレージ・グループが、一定のI/Oワークロードをサポートするように構成されたストレージ・ドライブのグループである、請求項9に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ・ドライブのエージングまたは摩耗あるいはその両方を動的に補償するためのシステムおよび方法に関する。
【背景技術】
【0002】
RAID(すなわち、独立ディスクの冗長アレイ)は、冗長性を通じて、向上したストレージ機能および信頼性を提供するストレージ技術である。RAIDは、複数のストレージ・ドライブ構成要素(例えば、ディスク・ドライブまたはソリッド・ステート・ドライブあるいはその両方)を結合して論理ユニットにすることによって作り出される。その後、「RAIDレベル」と呼ばれる様々な技術を使用して、ドライブ全体にデータを分散させる。標準的なRAIDレベルは、RAIDレベル1から6を現在含み、ストライピング、ミラーリング、またはパリティ、あるいはその組合せを用いてデータ冗長性を提供するRAID構成の基本セットである。構成のそれぞれは、(1)データ信頼性の向上、および(2)I/O性能の向上という、2つの主要な目標間のバランスを提供する。
【0003】
RAID内のストレージ・ドライブが新しいとき、ストレージ・ドライブは、一定の性能特性または仕様を有することができる。これらの特性または仕様は、パフォーマンス・クラス、一日あたりの書込み回数(writes-per-day)分類、ストレージ容量、オーバープロビジョニング(over-provisioning)の量、等の用語で表現することができる。それでも、ストレージ・ドライブがエージングし、摩耗すると、ストレージ・ドライブは、新しいときに提供できた同じ性能特性または仕様を提供できなくなる可能性がある。これにより、一定の性能要件を有し得る、一定のRAIDアレイ、ストレージ階層、またはワークロードにおいて使用するのに、ストレージ・ドライブが適さなくなる可能性がある。ストレージ・ドライブの摩耗またはエージングを無視し、ストレージ・ドライブのエージングまたは摩耗あるいはその両方に関わらず、これらのストレージ・ドライブに同じワークロードを送ると、ストレージ・ドライブは、高い故障率、または低下したライフ・サイクル、あるいはその両方を過度に示す可能性がある。
【0004】
前述を考慮すると、必要とされるのは、ストレージ・ドライブのエージングまたは摩耗あるいはその両方を動的に補償するためのシステムおよび方法である。理想的には、このようなシステムおよび方法は、ストレージ・ドライブのエージングまたは摩耗あるいはその両方に基づいて、適切なRAIDアレイ、ストレージ階層、またはワークロードにストレージ・ドライブを周期的に再割当てすることになる。また、このようなシステムおよび方法は、故障率を理想的に低下させ、ストレージ・ドライブの有効寿命を増加させることになる。
【発明の概要】
【0005】
本発明は、現行の技術に応じて、および具体的には、現在利用可能なシステムおよび方法でまだ完全に解決されていない、当技術分野における問題および必要性に応じて開発されてきた。したがって、本発明の実施形態は、ストレージ・ドライブのエージングまたは摩耗あるいはその両方を動的に補償するために開発されてきた。本発明の特徴および利点は、以下の説明および添付の特許請求の範囲から、より完全に明らかになるか、または、以下に示すような、本発明の実践によって習得することができる。
【0006】
前述と一致した、複数のストレージ・ドライブのパフォーマンス・クラスを動的に変化させるための方法を開示する。1つの実施形態では、このような方法は、複数のストレージ・ドライブの特性(例えば、エージング、摩耗、等)をストレージ環境内で監視する。各ストレージ・ドライブは、ストレージ・ドライブに関連付けられたパフォーマンス・クラスを有する。特性に基づいて、方法は、ストレージ・ドライブのパフォーマンス・クラスを周期的に変更する。次に、方法は、ストレージ・ドライブのパフォーマンス・クラスに基づいて、様々なストレージ・グループ(例えば、RAIDアレイ、ストレージ階層、ワークロード、等)内のストレージ・ドライブを再編成する。例えば、方法は、同じパフォーマンス・クラスのストレージ・ドライブを同じストレージ・グループ内にできる限り置くことができる。
【0007】
また、対応するシステムおよびコンピュータ・プログラム製品を開示し、本明細書で特許請求する。
【0008】
本発明の利点を容易に理解するために、添付の図面に示す固有の実施形態を参照することによって、上記で簡単に説明した本発明のより詳しい説明を提供する。これらの図面が本発明の典型的な実施形態を描写するにすぎず、したがってその範囲の限定とみなされないことを理解して、添付の図面を使用してさらに具体的かつ詳細に本発明を記述し、説明する。
【図面の簡単な説明】
【0009】
【
図1】本発明によるシステムおよび方法を実施し得るネットワーク環境の一例を示す高レベル・ブロック図である。
【
図2】1つまたは複数のRAIDまたはストレージ階層を実施し得るストレージ・システムの1つの実施形態を示す高レベル・ブロック図である。
【
図3】様々なストレージ・ドライブ、および新しいときのストレージ・ドライブに関連付けられたパフォーマンス・クラスを示す高レベル・ブロック図である。
【
図4】ストレージ・ドライブがエージングするときのストレージ・ドライブのパフォーマンス・クラスの低下を示す高レベル・ブロック図である。
【
図5】ストレージ・ドライブのパフォーマンス・クラスに基づく、RAID内のストレージ・ドライブの再編成を示す高レベル・ブロック図である。
【
図6】ストレージ・ドライブの一日あたりの書込み回数分類に基づく、RAID内のストレージ・ドライブの再編成を示す高レベル・ブロック図である。
【
図7】ストレージ・ドライブの論理ストレージ容量に基づく、RAID内のストレージ・ドライブの再編成を示す高レベル・ブロック図である。
【
図8】本発明による、ドライブ監視モジュール内の様々なサブ・モジュールを示す高レベル・ブロック図である。
【
図9】本発明による、再分類モジュール内の様々なサブ・モジュールを示す高レベル・ブロック図である。
【
図10】ドライブ特性に基づいてストレージ・ドライブを再編成するための方法の1つの実施形態を示す流れ図である。
【
図11】ストレージ・ドライブのパフォーマンス・クラスに基づいてストレージ・ドライブを再編成するための方法の1つの実施形態を示す流れ図である。
【
図12】ストレージ・ドライブの一日あたりの書込み回数分類に基づいてストレージ・ドライブを再編成するための方法の1つの実施形態を示す流れ図である。
【
図13】ストレージ・ドライブの論理ストレージ容量に基づいてストレージ・ドライブを再編成するための方法の1つの実施形態を示す流れ図である。
【発明を実施するための形態】
【0010】
本発明の構成要素は、本明細書で図に全体的に記述し、示すように、多種多様な異なる構成で配置し、設計できることが容易に理解されよう。したがって、図に表すような、本発明の実施形態の以下のより詳細な説明は、特許請求するように、本発明の範囲を限定することを意図するものではなく、本発明による現時点で想定される実施形態の一定の例の代表的なものにすぎない。今説明する実施形態は、図面への参照により、最も良く理解され、全体にわたって同様の部品が同様の番号によって指名される。
【0011】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとして具体化することができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサが実行するためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
【0012】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持し、格納できる有形デバイスであってもよい。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・システム、磁気ストレージ・システム、光ストレージ・システム、電磁気ストレージ・システム、半導体ストレージ・システム、または前述の適切ないずれかの組合せであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の適切ないずれかの組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で使用するように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、本質的に一時的な信号であると解釈するべきではない。
【0013】
本明細書で説明するコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれの計算/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといったネットワークを介して、外部コンピュータまたは外部ストレージ・システムに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えることができる。各計算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれの計算/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0014】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++、等などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってもよい。
【0015】
コンピュータ可読プログラム命令は、全面的にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして、あるいは、部分的にユーザのコンピュータおよび部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて、ユーザのコンピュータに接続することができ、または、接続は、(例えば、インターネット・サービス・プロバイダを使用して、インターネットを通じて)外部コンピュータに対して行うことができる。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行することができる。
【0016】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明することができる。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施できることが理解されよう。
【0017】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作り出すべく、機械を生み出すために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供することができる。また、これらのコンピュータ可読プログラム命令は、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納することができ、特定の手法で機能するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに指図することができる。
【0018】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するべく、コンピュータ実施処理を生み出すために、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行するため、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードすることができる。
【0019】
図1を参照して、ネットワーク環境100の一例を示す。ネットワーク環境100は、本発明によるシステムおよび方法を実施し得る環境の一例を示すために提示する。ネットワーク環境100は、例として、また限定ではなく提示する。実際には、本明細書で開示するシステムおよび方法は、図示のネットワーク環境100に加えて、多種多様な異なるネットワーク環境に適用できる可能性がある。
【0020】
図示のように、ネットワーク環境100は、ネットワーク104によって相互接続された1つまたは複数のコンピュータ102、106を含む。ネットワーク104は、例えば、ローカル・エリア・ネットワーク(LAN)104、ワイド・エリア・ネットワーク(WAN)104、インターネット104、イントラネット104等を含むことができる。特定の実施形態では、コンピュータ102、106は、(「ホスト」106または「ホスト・システム」106と本明細書でさらに呼ばれる)クライアント・コンピュータ102とサーバ・コンピュータ106の両方を含むことができる。一般に、クライアント・コンピュータ102は、通信セッションを始め、その一方で、サーバ・コンピュータ106は、クライアント・コンピュータ102からのリクエストを待ち、これに応答する。特定の実施形態では、コンピュータ102またはサーバ106あるいはその両方は、1つまたは複数の内部または外部の直接接続型ストレージ・システム112(例えば、ハード・ストレージ・ドライブ、ソリッド・ステート・ドライブ、テープ・ドライブ等のアレイ)に接続することができる。これらのコンピュータ102、106および直接接続型ストレージ・システム112は、ATA、SATA、SCSI、SAS、ファイバ・チャネル等などのプロトコルを使用して通信することができる。
【0021】
特定の実施形態では、ネットワーク環境100は、(例えば、ネットワーク接続型ストレージを使用するとき)ストレージ・エリア・ネットワーク(SAN:storage-area-network)108またはLAN108などの、サーバ106の背後にあるストレージ・ネットワーク108を含むことができる。このネットワーク108は、ハード・ディスク・ドライブまたはソリッド・ステート・ドライブのアレイ110a、テープ・ライブラリ110b、個々のハード・ディスク・ドライブ110cまたはソリッド・ステート・ドライブ110c、テープ・ドライブ110d、CD-ROMライブラリ等などの、1つまたは複数のストレージ・システム110にサーバ106を接続することができる。ストレージ・システム110にアクセスするために、ホスト・システム106は、ホスト106上の1つまたは複数のポートからストレージ・システム110上の1つまたは複数のポートへの物理接続で通信することができる。接続は、スイッチ、ファブリック、直接接続、等を通じたものであってもよい。特定の実施形態では、サーバ106およびストレージ・システム110は、ファイバ・チャネル(FC)またはiSCSIなどのネットワーク規格を使用して通信することができる。
【0022】
図2を参照して、ハード・ディスク・ドライブ204またはソリッド・ステート・ドライブ204あるいはその両方のアレイを収めるストレージ・システム110aの一例を示す。ストレージ・システム110aの内部構成要素を示すが、なぜなら、特定の実施形態では、このようなストレージ・システム110a内で、RAIDアレイを全てまたは部分的に実施できるからである。図示のように、ストレージ・システム110aは、ストレージ・コントローラ200、1つまたは複数のスイッチ202、および、ハード・ディスク・ドライブ204またはソリッド・ステート・ドライブ204(例えば、フラッシュ・メモリ・ベースのドライブ204)あるいはその両方などの、1つまたは複数のストレージ・ドライブ204を含む。ストレージ・コントローラ200は、1つまたは複数のホスト・システム106(例えば、z/OS(R)、zVM(R)等などのオペレーティング・システムを実行するオープン・システムまたはメインフレーム・サーバ106あるいはその両方)が、1つまたは複数のストレージ・ドライブ204内のデータにアクセスできるようにすることができる。
【0023】
選択した実施形態では、ストレージ・コントローラ200は、1つまたは複数のサーバ206a、206bを含む。また、ストレージ・コントローラ200は、ホスト・システム106およびストレージ・ドライブ204にストレージ・コントローラ200を接続するための、ホスト・アダプタ208およびデバイス・アダプタ210をそれぞれ含むことができる。複数のサーバ206a、206bは、接続したホスト・システム106がデータを常に利用できることを保証するために、冗長性をもたらすことができる。したがって、1つのサーバ206aが故障したとき、他のサーバ206bは、ホスト・システム106とストレージ・ドライブ204との間でI/Oを継続できることを保証するために、故障したサーバ206aのI/Oロードを回復させることができる。この処理は、「フェイルオーバ」と呼ぶことができる。
【0024】
選択した実施形態では、各サーバ206は、1つまたは複数のプロセッサ212およびメモリ214を含む。メモリ214は、揮発性メモリ(例えば、RAM)、および不揮発性メモリ(例えば、ROM、EPROM、EEPROM、ハード・ディスク、フラッシュ・メモリ等)を含むことができる。特定の実施形態では、揮発性および不揮発性メモリは、プロセッサ212上で動き、ストレージ・ドライブ204内のデータにアクセスするために使用される、ソフトウェア・モジュールを格納することができる。これらのソフトウェア・モジュールは、ストレージ・ドライブ204内の論理ボリュームへの全ての読込みおよび書込みリクエストを管理することができる。
【0025】
図2に示すものと同様のアーキテクチャを有するストレージ・システム110aの一例は、IBM DS8000(TM)エンタープライズ・ストレージ・システムである。DS8000(TM)は、連続動作をサポートするように設計されたディスクおよびソリッド・ステート・ストレージを提供する高性能、高容量ストレージ・コントローラである。それでも、本明細書で開示する技術は、IBM DS8000(TM)エンタープライズ・ストレージ・システム110aに限定されず、システム110に関連付けられた製造業者、製品名、または構成要素もしくは構成要素名に関わらず、任意の同等または類似のストレージ・システム110において実施することができる。本発明の1つまたは複数の実施形態から恩恵を受け得るいずれのストレージ・システムも、本発明の範囲に含まれるものとみなされる。したがって、IBM DS8000(TM)を、例としてのみ、また限定することなく提示する。
【0026】
図3を参照すると、特定の実施形態では、ストレージ・システム110aのストレージ・ドライブ204は、信頼性またはI/O性能あるいはその両方の所望のレベルを提供するように、1つまたは複数のRAIDアレイ304内に構成することができる。RAIDアレイ304は、複数のストレージ・ドライブ構成要素(例えば、ディスク・ドライブ204またはソリッド・ステート・ドライブ204あるいはその両方)を結合して論理ユニットにすることによって、作り出される。その後、「RAIDレベル」と呼ばれる様々な技術を使用して、ドライブ全体にデータを分散させる。標準的なRAIDレベルは、RAIDレベル1から6を現在含み、ストライピング、ミラーリング、またはパリティ、あるいはその組合せを用いてデータ冗長性を提供するRAID構成の基本セットである。構成のそれぞれは、(1)データ信頼性の向上、および(2)I/O性能の向上という、2つの主要な目標間のバランスを提供する。
【0027】
RAIDアレイ304内のストレージ・ドライブ204が新しいとき、ストレージ・ドライブ204は、一定の性能特性または仕様を有することができる。これらの特性または仕様は、パフォーマンス・クラス、一日あたりの書込み回数分類、ストレージ容量、オーバープロビジョニングの量、等の用語で表現することができる。それでも、ストレージ・ドライブ204がエージングし、摩耗すると、ストレージ・ドライブ204は、新しいときに提供できた同じ性能特性または仕様を提供できなくなる可能性がある。これにより、一定の性能要件を有し得る、一定のRAIDアレイ304、ストレージ階層、またはワークロードで使用するのに、ストレージ・ドライブ204が適さなくなる可能性がある。ストレージ・ドライブ204の摩耗またはエージングを無視し、ストレージ・ドライブ204のエージングまたは摩耗あるいはその両方に関わらず、これらのストレージ・ドライブ204に同じワークロードを送ると、ストレージ・ドライブ204は、高い故障率、または低下したライフ・サイクル、あるいはその両方を過度に示す可能性がある。
【0028】
したがって、システムおよび方法は、ストレージ・ドライブ204のエージングまたは摩耗あるいはその両方を動的に補償する必要がある。理想的には、このようなシステムおよび方法は、ストレージ・ドライブ204のエージングまたは摩耗あるいはその両方に基づいて、適切なRAIDアレイ304、ストレージ階層、またはワークロードにストレージ・ドライブ204を周期的に再割当てすることになる。また、このようなシステムおよび方法は、故障率を理想的に低下させ、ストレージ・ドライブ204の有効寿命を増加させることになる。
【0029】
図3に示すように、ストレージ・ドライブ204が新しいとき、新しいストレージ・ドライブ204は、新しいストレージ・ドライブ204に関連付けられた一定のパフォーマンス・クラスを有することができる。例えば、ストレージ・ドライブ204は、パフォーマンス・クラスA、B、またはCを割り当てられており、ここで、パフォーマンス・クラスAは、パフォーマンス・クラスBよりパフォーマンス(例えば、I/O性能)が良く、パフォーマンス・クラスBは、パフォーマンス・クラスCよりパフォーマンスが良い。図示の実施形態では、RAIDアレイ304のそれぞれは、同じパフォーマンス・クラス(この例では、パフォーマンス・クラスA)のストレージ・ドライブ204でスタートするが、これは、全ての実施形態において必要なわけではない。例えば、RAIDアレイ304の中には、RAIDアレイ304の性能要件に応じて、低い方のパフォーマンス・クラス(例えば、パフォーマンス・クラスBまたはC)のストレージ・ドライブ204を割り当てられるものがあってもよい。
【0030】
時間が経つにつれて、RAIDアレイ304内の一定のストレージ・ドライブ204の故障および交換により、RAIDアレイ304は、異なるエージングまたは摩耗あるいはその両方の特性を有するストレージ・ドライブ204から構成される可能性がある。それでも、ストレージ・ドライブ204がエージングし、摩耗すると、ストレージ・ドライブ204は、同じ性能特性または仕様を提供できなくなるか、受入れ可能な故障率または低下したライフ・サイクル以上のものを示すことなく、提供できなくなる可能性がある。それでも、一定のパフォーマンス・クラスのストレージ・ドライブ204がエージングまたは摩耗あるいはその両方をすると、ストレージ・ドライブ204は、パフォーマンス・クラスを最初に割り当てられた結果として、同じように使用され続ける可能性がある。
【0031】
特定の実施形態では、本発明によるシステムおよび方法は、ストレージ環境内のストレージ・ドライブ204の特性(例えば、エージングまたは摩耗あるいはその両方)を監視し、適切なパフォーマンス・クラスにストレージ・ドライブ204を周期的に再分類することができる。例えば、3年という予想寿命のストレージ・ドライブ204について、ストレージ・ドライブ204は、パフォーマンス・クラスAを最初に割り当てることができる。1年目の使用の後、ストレージ・ドライブ204は、パフォーマンス・クラスBに下げることができる。2年目の使用の後、ストレージ・ドライブ204は、パフォーマンス・クラスCに下げることができる。ストレージ・ドライブ204に新しいパフォーマンス・クラスを割り当てるたびに、ストレージ・ドライブ204は、まだ行われていなければ、適切なストレージ・グループ(例えば、RAIDアレイ304、階層化したストレージ環境におけるストレージ階層、特定のワークロード要件を伴うストレージ・ドライブ204、等)内に置くことができる。これは、ストレージ・グループ(例えば、RAIDアレイ304、ストレージ階層、ワークロード、等)が、同じパフォーマンス・クラスのストレージ・ドライブ204をできる限り収めるように、ストレージ環境において、一定のパフォーマンス・クラスのストレージ・ドライブ204を異なるパフォーマンス・クラスのストレージ・ドライブ204と入れ替えることによって達成することができる。
【0032】
図3に示すように、特定の実施形態では、1つまたは複数のモジュール300、302、303は、本発明による様々な特徴および機能を提供するために使用することができる。例えば、ドライブ監視モジュール300は、ストレージ・ドライブのエージング、使用、または摩耗、あるいはその組合せなどの、ストレージ・ドライブ特性を監視するように構成することができる。対照的に、ドライブ再分類モジュール302は、ストレージ・ドライブ204をその特性に従って周期的に再分類するように構成することができる。例えば、ドライブ再分類モジュール302は、エージングまたは摩耗すると、ストレージ・ドライブ204のパフォーマンス・クラスを下げることができる。ストレージ・ドライブ204を再分類すると、ドライブ再編成モジュール303は、ストレージ環境内のストレージ・ドライブ204をその分類に従って再編成するように構成することができる。例えば、特定の実施形態では、ドライブ再編成モジュール303は、同じパフォーマンス・クラスのストレージ・ドライブ204を、同じRAIDアレイ304または同じストレージ階層内などの同じストレージ・グループ内にできる限り置くことができる。
【0033】
図4は、ドライブ再分類モジュール302でストレージ・ドライブ204を再分類した後の
図3のRAIDアレイ304を示す。図示のように、数時間が経過し、RAIDアレイ304内の様々なストレージ・ドライブ204を、同じまたは異なるパフォーマンス・クラスの他のストレージ・ドライブ204と置き替えるか、取り替えた後、RAIDアレイ304内のストレージ・ドライブ204は、異なるエージングまたは摩耗あるいはその両方の特性を有する可能性がある。これらのエージングまたは摩耗あるいはその両方の特性に基づいて、ドライブ再分類モジュール302は、ストレージ・ドライブ204のエージングまたは摩耗あるいはその両方を反映するように、ストレージ・ドライブ204のパフォーマンス・クラスを変更することができる。例えば、
図4に示すように、ストレージ環境は、ストレージ・ドライブ204の製造業者の仕様、あるいは、ストレージ・ドライブ204のエージングもしくは摩耗またはその両方に基づいて、パフォーマンス・クラスA、B、またはCとして分類されたストレージ・ドライブ204を収めることができる。これは、
図4に示すような、異なるパフォーマンス・クラスのストレージ・ドライブ204をRAIDアレイ304が収めるシナリオを作り出す。特定の実施形態では、最も低いパフォーマンス・クラスを有するストレージ・ドライブ204は、RAIDアレイ304全体のパフォーマンスを定義する可能性がある。すなわち、RAIDアレイ304は、その最も低い性能のストレージ・ドライブ204(すなわち、最も低いパフォーマンス・クラスのストレージ・ドライブ204)と同様に機能することしかできなくなり得る。したがって、RAIDアレイ304の性能を最大化するために、RAIDアレイ304は、同じパフォーマンス・クラスを有するストレージ・ドライブ204を理想的に収めることになる。
【0034】
図5を参照すると、これを達成するために、ドライブ再分類モジュール302がストレージ・ドライブ204のパフォーマンス・クラスを変更して、ストレージ・ドライブ204のエージングまたは摩耗あるいはその両方に適合させると、ドライブ再編成モジュール303は、ストレージ環境内のストレージ・ドライブ204を再編成することができる。より具体的には、ドライブ再編成モジュール303は、同じパフォーマンス・クラスのストレージ・ドライブ204を同じRAIDアレイ304内に置こうとすることができる。より高い性能のRAIDアレイ304が、より高いパフォーマンス・クラスのストレージ・ドライブ204を理想的に収めることになる。同様に、より低い性能のRAIDアレイ304が、より低いパフォーマンス・クラスのストレージ・ドライブ204を収めることができる。
【0035】
ストレージ・ドライブ204を再編成するために、ドライブ再編成モジュール303は、例えば、データの入替えを容易にするために中間データ・ストアのような予備のストレージ・ドライブ204を使用して、RAIDアレイ304の間でストレージ・ドライブ204を入れ替えることができる。特定の実施形態では、これは、1つのストレージ・ドライブ204から別のストレージ・ドライブ204にデータをコピーするためのスマート再構築処理(smart rebuild process)を使用して、達成される。スマート再構築処理は、データがストレージ・ドライブ204にコピーされているときでも、予備としてストレージ・ドライブ204を使用する能力を維持することによって、データ喪失にさらされるのを減らすことができる。特定の実施形態では、第1のストレージ・ドライブ204から第2のストレージ・ドライブ204(例えば、予備のストレージ・ドライブ204)にデータをコピーするとき、スマート再構築処理は、第1のストレージ・ドライブ204のビットマップを作り出すことができる。各ビットは、第1のストレージ・ドライブ204上のストレージ空間のセクション(例えば、1メガバイト領域)を表すことができる。次に、スマート再構築処理は、第1のストレージ・ドライブ204から第2のストレージ・ドライブ204へのデータのコピーを始めることができる。各セクションをコピーしつつ、セクションの関連付けられたビットを、ビットマップに記録することができる。
【0036】
データ・コピー処理の進行中に、第1のストレージ・ドライブ204のセクションへの書込みを受けた場合、スマート再構築処理は、ビットマップをチェックして、関連付けられたセクションにおけるデータが、第2のストレージ・ドライブ204に既にコピーされたかどうかを判定することができる。コピーされていない場合、スマート再構築処理は、第1のストレージ・ドライブ204の対応するセクションにデータを単純に書き込むことができる。そうでなければ、第1のストレージ・ドライブ204にデータを書き込んだ後、データは、第2のストレージ・ドライブ204にさらにコピーすることができる。第1のストレージ・ドライブ204から第2のストレージ・ドライブ204に全てのセクションをコピーすると、RAIDアレイ304は、第1のストレージ・ドライブ204の代わりに、第2のストレージ・ドライブ204の使用を始めることができる。これにより、第1のストレージ・ドライブ204は、RAIDアレイ304から解放される。
【0037】
代替として、スマート再構築処理は、ビットマップの代わりにウォーターマークを利用して、第1のストレージ・ドライブ204から第2のストレージ・ドライブ204にどのデータをコピーしたかを追跡することができる。このような実施形態では、セクションは、第1のストレージ・ドライブ204から第2のストレージ・ドライブ204に指名順にコピーすることができる。ウォーターマークは、セクションを通じてコピー処理がどこまで進んでいるかを追跡することができる。コピー処理中に、第1のストレージ・ドライブ204のセクションへの書込みを受けると、スマート再構築処理は、ウォーターマークをチェックして、セクション内のデータが第2のストレージ・ドライブ204に既にコピーされたかどうかを判定することができる。コピーされていない場合、スマート再構築処理は、第1のストレージ・ドライブ204にデータを書き込むことができる。そうでなければ、第1のストレージ・ドライブ204にデータを書き込んだ後、スマート再構築処理は、第2のストレージ・ドライブ204にデータをさらにコピーすることができる。第1のストレージ・ドライブ204から第2のストレージ・ドライブ204に全てのセクションをコピーすると、RAIDアレイ304は、第1のストレージ・ドライブ204の代わりに、第2のストレージ・ドライブ204の使用を始めることができる。これにより、第1のストレージ・ドライブ204は、RAIDアレイ304から解放される。
【0038】
他の実施形態では、ドライブ再分類モジュール302は、ストレージ環境内のストレージ・ドライブ204の他の特性を変化させることができる。例えば、ドライブ再分類モジュール302は、ストレージ・ドライブ204に関連付けられたストレージ・ドライブ204のエージングもしくは摩耗、一日あたりの書込み回数分類、論理ストレージ容量、またはオーバープロビジョニングの量、あるいはその組合せに基づいて変更することができる。次に、ドライブ再編成モジュール303は、
図6に示すような、ストレージ・ドライブ204の一日あたりの書込み回数分類、または
図7に示すような、ストレージ・ドライブ204の論理ストレージ容量に基づいて、RAIDアレイ304内のストレージ・ドライブ204を再編成することができる。このように、本発明によるシステムおよび方法は、ストレージ・ドライブ204の様々な特性を監視すること、ストレージ・ドライブ204の特性に基づいてストレージ・ドライブ204を再分類すること、および、ストレージ・ドライブ204を再分類した後、ストレージ・ドライブ204を再編成することができる。これを達成し得る手法は、
図8から
図13に関連して、より詳細に説明する。
【0039】
図8は、ドライブ監視モジュール300内に含み得る様々なサブ・モジュールを示す高レベル・ブロック図である。ドライブ監視モジュール300および関連付けられたサブ・モジュールは、ハードウェア、ソフトウェア、ファームウェア、またはその組合せで実施することができる。ドライブ監視モジュール300および関連付けられたサブ・モジュールを、例として、また限定することなく提示する。より多くのまたは少ないサブ・モジュールを、異なる実施形態で提供することができる。例えば、いくつかのサブ・モジュールの機能を、単一もしくはより少ない数のサブ・モジュールに結合することができるか、または、単一のサブ・モジュールの機能を、いくつかのサブ・モジュールにわたって分散させることができる。
【0040】
図示のように、ドライブ監視モジュール300は、エージング監視モジュール800、摩耗監視モジュール802、およびオーバープロビジョニング監視モジュール804の1つまたは複数を含む。エージング監視モジュール800は、ストレージ環境内のストレージ・ドライブ204のエージングを監視するように構成することができる。特定の実施形態では、これは、ストレージ環境にストレージ・ドライブ204がいつ新たにインストールされたかを検出し、次に、その時から、ストレージ・ドライブ204がストレージ環境内にある時間を追跡することによって、達成することができる。
【0041】
対照的に、摩耗監視モジュール802は、ストレージ環境内のストレージ・ドライブ204の摩耗を監視することができる。特定の実施形態では、ストレージ・ドライブ204の耐用期間にわたってストレージ・ドライブ204に送られたI/Oの量、ストレージ・ドライブ204がアクティブになっている時間、ストレージ・ドライブ204の使用中にストレージ・ドライブ204が関連付けられたストレージ・グループ(例えば、RAIDアレイ304、ストレージ階層、またはワークロード)等などの、ストレージ・ドライブ204の使用状況から摩耗を判定することができる。
【0042】
オーバープロビジョニング監視モジュール804は、ストレージ・ドライブ204内に存在するオーバープロビジョニングの量を監視するように構成することができる。ソリッド・ステート・ストレージ・ドライブ204(SSD)などの、一定のストレージ・ドライブ204は、データを格納するのに充てられるストレージ・ドライブ204の全ストレージ容量の一定の割合、および、「オーバープロビジョニング」の形で確保された残りの割合を有することができる。このオーバープロビジョニングは、典型的には、ソリッド・ステート・ストレージ・ドライブ204の性能を改善し、寿命を増加させる。ソリッド・ステート・ストレージ・ドライブ204がエージングまたは摩耗あるいはその両方をすると、ソリッド・ステート・ストレージ・ドライブ204内の記憶素子が劣化する可能性があり、これにより、ストレージ・ドライブ204内のオーバープロビジョニングの量が低下する可能性がある。これは、ソリッド・ステート・ストレージ・ドライブ204の性能または寿命あるいはその両方を低下させる可能性がある。
【0043】
図9は、前述のドライブ再分類モジュール302内に含み得る様々なサブ・モジュールを示す高レベル・ブロック図である。図示のように、ドライブ再分類モジュール302は、パフォーマンス・クラス調節モジュール900、一日あたりの書込み回数調節モジュール902、およびサイズ/オーバープロビジョニング調節モジュール904の1つまたは複数を含むことができる。パフォーマンス・クラス調節モジュール900は、ドライブ監視モジュール300が検出したストレージ・ドライブ204の特性(例えば、エージングまたは摩耗あるいはその両方)に応じて、ストレージ・ドライブ204のパフォーマンス・クラスを調節するように構成することができる。特定の実施形態では、パフォーマンス・クラス調節モジュール900は、様々な個別ステップでパフォーマンス・クラスを調節することができる。例えば、パフォーマンス・クラス調節モジュール900は、ストレージ・ドライブ204のエージングまたは摩耗に応じて、パフォーマンス・クラスAからパフォーマンス・クラスBに、およびパフォーマンス・クラスBからパフォーマンス・クラスCに、パフォーマンス・クラスを下げることができる。
【0044】
一日あたりの書込み回数調節モジュール902は、ストレージ・ドライブ204に関連付けられた一日あたりの書込み回数分類を調節するために使用することができる。ストレージ・ドライブ204に関連付けられたエージング、摩耗、またはオーバープロビジョニングの量、あるいはその組合せに基づいて、一日あたりの書込み回数調節モジュール902は、ストレージ・ドライブ204に関連付けられた一日あたりの書込み回数分類を下げることができる。特定の実施形態では、これは、個別ステップで発生させることができる。例えば、一日あたりの書込み回数分類は、ストレージ・ドライブ204に関連付けられた特性(例えば、オーバープロビジョニングの量、エージング等)に応じて様々な個別ステップで、第1のレベル(例えば、200GB/日)から第2のレベル(150GB/日)に、および次に、第2のレベルから第3のレベル(例えば、100GB/日)に、などに、落とすことができる。
【0045】
サイズ/オーバープロビジョニング調節モジュール904は、ストレージ・ドライブ204に関連付けられた論理ストレージ容量、またはオーバープロビジョニングの量、あるいはその両方を調節するように構成することができる。上述のように、ストレージ・ドライブ204(例えば、ソリッド・ステート・ストレージ・ドライブ204)がエージングするか、利用されると、ストレージ・ドライブ204内のセクタまたは記憶素子が劣化する可能性がある。ストレージ・ドライブ204内のオーバープロビジョニングの量が一定のレベルまたは閾値に低下すると、サイズ/オーバープロビジョニング調節モジュール904は、ストレージ・ドライブ204内の論理ストレージ容量、またはオーバープロビジョニングの量、あるいはその両方を調節することができる。例えば、サイズ/オーバープロビジョニング調節モジュール904は、オーバープロビジョニングの量を増加させるために、ストレージ・ドライブ204の論理ストレージ容量を減らすことができる。これにより、ストレージ・ドライブ204の性能を改善すること、または有効寿命を増加させること、あるいはその両方を行うことができる。特定の実施形態では、これは、様々な個別ステップで発生させることができる。例えば、サイズ/オーバープロビジョニング調節モジュール904は、ストレージ・ドライブ204がエージングまたは摩耗あるいはその両方をすると、様々な個別ステップで、サイズA(例えば、900GB)からサイズB(例えば、800GB)に、サイズBからサイズC(例えば、700GB)に、など、ストレージ・ドライブ204の論理ストレージ容量を減らすことができる。以下でより詳細に説明するように、一定のケースでは、ストレージ・ドライブ204の論理ストレージ容量を減少させるとき、論理ストレージ容量の減少を容易にするために、データによってはストレージ・ドライブ204から移動させる必要があるものもあり得る。
【0046】
図10を参照して、ドライブ特性に基づいてストレージ・ドライブ204を再編成するための方法1000の1つの実施形態を示す流れ図を示す。この方法1000は、
図11から
図13に示す、より具体的な方法を広く包含することを意図する。
【0047】
図示のように、方法1000は、ストレージ環境内のストレージ・ドライブ204を再分類し、再編成する時が来たかどうかを最初に判定する1002。特定の実施形態では、方法1000は、1週間ごと、1カ月ごと、または数カ月ごとなど、周期的に実行することを意図する。ステップ1002は、方法1000を実行するべきかどうか、およびいつ実行するべきかを判定するように構成することができる。
【0048】
ストレージ環境内のストレージ・ドライブ204を再分類し、再編成する時が来た場合、方法1000は、ストレージ環境内のストレージ・ドライブ204のエージング、摩耗、オーバープロビジョニングの量、等などの、ドライブ特性を判定する1004。特定の実施形態では、方法1000は、一定の特性が観察されると、ドライブ特性を実際に変更する。例えば、ストレージ・ドライブ204内のオーバープロビジョニングの量が、指定のレベルより下に落ちた場合、方法1000は、論理ストレージ容量を減らし、これにより、ストレージ・ドライブ204のオーバープロビジョニングの量を増加させることができる。
【0049】
次に、方法1000は、判定した特性に基づいて、ストレージ環境内のストレージ・ドライブ204を再分類する1008。例えば、ストレージ・ドライブ204が一定のエージングに達した場合、方法1000は、パフォーマンス・クラスAからパフォーマンス・クラスBに、またはパフォーマンス・クラスBからパフォーマンス・クラスCに、ストレージ・ドライブ204を再分類することができる1008。別の例では、ストレージ・ドライブ204が一定のエージング、または摩耗の量に達した場合、方法1000は、第1の一日あたりの書込み回数分類から第2の一日あたりの書込み回数分類に、ストレージ・ドライブ204を再分類することができる1008。さらに別の例では、ストレージ・ドライブ204が一定のエージング、または摩耗の量に達した場合、方法1000は、第1の論理ストレージ容量を有することから第2の論理ストレージ容量を有することに、ストレージ・ドライブ204を再分類することができる1008。
【0050】
次に、方法1000は、ストレージ・ドライブ204を収める一定のストレージ・グループ(例えば、RAIDアレイ304、ストレージ階層、一定のワークロードをサポートするストレージ・ドライブ204、等)の要件を判定する1010。例えば、方法1000は、ストレージ環境内のRAIDアレイ304の性能要件を判定することができる。ストレージ・グループの要件、およびストレージ・ドライブ204の分類に基づいて、方法1000は、ストレージ・グループ内のストレージ・ドライブ204を再編成する1012。例えば、方法1000は、より高い性能のRAIDアレイ304またはストレージ階層が、より高いパフォーマンス・クラス(例えば、パフォーマンス・クラスA)のストレージ・ドライブ204を収め、より低い性能のRAIDアレイ304またはストレージ階層が、より低いパフォーマンス・クラスのストレージ・ドライブ204を収めるように、RAIDアレイ304内のストレージ・ドライブ204の再編成を試みることができる1012。特定の実施形態では、これは、ストレージ・ドライブ204間でデータを入れ替えるスマート再構築処理を使用して、RAIDアレイ304またはストレージ階層内のストレージ・ドライブ204を入れ替えることによって達成することができる。
【0051】
図11を参照して、ストレージ・ドライブ204のパフォーマンス・クラスに基づいてストレージ・ドライブ204を再編成するための方法の1つの実施形態1100を示す。ステップ1102において、ストレージ環境内のストレージ・ドライブ204を再分類し、再編成する時が来た場合、方法1100は、ストレージ環境内のストレージ・ドライブ204のエージングを判定する1104。次に、方法1100は、エージングが指名の閾値に達したストレージ・ドライブ204のパフォーマンス・クラスを下げる1106。例えば、計画ライフスパンが3年のストレージ・ドライブ204は、1年のエージングに達すると、パフォーマンス・クラスAからパフォーマンス・クラスBに下げることができる1106。同じストレージ・ドライブ204は、2年のエージングに達したとき、パフォーマンス・クラスBからパフォーマンス・クラスCに下げることができる1106。
【0052】
次に、方法1100は、ストレージ環境内の様々なストレージ・グループ(例えば、RAIDアレイ304、ストレージ階層、一定のワークロードをサポートするストレージ・ドライブ204、等)の要件を判定する1108。例えば、方法1100は、ストレージ環境内の第1のRAIDアレイ304またはストレージ階層が、より高い性能、およびしたがって、より高い性能のストレージ・ドライブ204を必要とし、ストレージ環境内の第2のRAIDアレイ304またはストレージ階層が、より低い性能のストレージ・ドライブ204を利用できると判定することができる。ストレージ・グループの要件、およびストレージ・ドライブ204の特性に基づいて、方法1100は、ストレージ・グループ内のストレージ・ドライブ204を再編成する1110。例えば、方法1100は、同じパフォーマンス・クラスのストレージ・ドライブ204を同じストレージ・グループ内にできる限り置くことができる。特定の実施形態では、これは、スマート再構築処理を使用して、RAIDアレイ304またはストレージ階層内のストレージ・ドライブ204を入れ替えることによって達成することができる。
【0053】
特定の実施形態では、再編成ステップ1110は以下のように機能し、ストレージ・ドライブ204のパフォーマンス・クラスに応じてストレージ・ドライブ204が再編成され、ストレージ・ドライブ204がパフォーマンス・クラスA、B、またはCとして分類され、ストレージ・グループがRAID304アレイであると仮定する。再編成ステップ1110は、パフォーマンス・クラスAのストレージ環境内の全てのストレージ・ドライブ204の「カウント」を最初に生成することができる。次に、再編成ステップ1110は、パフォーマンス・クラスAのストレージ・ドライブ204が最も多いストレージ環境内のRAIDアレイ304を見つけることができる。再編成ステップ1110は、RAIDアレイ304内のパフォーマンス・クラスAのストレージ・ドライブ204の数だけ「カウント」を減らす。次に、再編成ステップ1110は、全てのパフォーマンス・クラスAのストレージ・ドライブ204をRAIDアレイ304が収めるまで、スマート再構築処理を使用して、他のRAIDアレイ304からRAIDアレイ304にパフォーマンス・クラスAのストレージ・ドライブ204を入れ替える。再編成ステップ1110は、入れ替えたストレージ・ドライブ204の数だけ「カウント」を減らす。「カウント」がゼロの場合、パフォーマンス・クラスAのストレージ・ドライブ204に対する再編成は停止する。そうでなければ、再編成ステップ1110は、パフォーマンス・クラスAのストレージ・ドライブ204の数が次に多いRAIDアレイ304に対して、または、「カウント」がゼロになるまで、繰り返す。この再編成ステップ1110は、パフォーマンス・クラスBおよびパフォーマンス・クラスCのストレージ・ドライブ204に対して繰り返す。再編成ステップ1110は、同じパフォーマンス・クラスのストレージ・ドライブ204を同じRAIDアレイ304内にできる限り置くことになる。
【0054】
図12を参照して、ストレージ・ドライブの一日あたりの書込み回数分類に基づいてストレージ・ドライブを再編成するための方法1200の1つの実施形態を示す。ステップ1202において、ストレージ環境内のストレージ・ドライブ204を再分類し、再編成する時が来た場合、方法1200は、ストレージ環境内のストレージ・ドライブ204のエージング、またはオーバープロビジョニングの量、あるいはその両方を判定する1204。次に、方法1200は、エージング、またはオーバープロビジョニングの量が指名の閾値に達したストレージ・ドライブ204の一日あたりの書込み回数分類を下げる1206。例えば、ストレージ・ドライブ204は、ストレージ・ドライブ204が第1のエージング(例えば、1年)、またはオーバープロビジョニングの指定の量(例えば、10パーセント未満のオーバープロビジョニング)に達すると、レベル1の一日あたりの書込み回数分類からレベル2の一日あたりの書込み回数分類に下げることができる1206。同様に、ストレージ・ドライブ204は、ストレージ・ドライブ204が第2のエージング(例えば、2年)に達するか、オーバープロビジョニングの指定の量に再度達すると、レベル2の一日あたりの書込み回数分類からレベル3の一日あたりの書込み回数分類に下げることができる1206。
【0055】
次に、方法1200は、ストレージ環境内の様々なストレージ・グループ(例えば、RAIDアレイ304、ストレージ階層、一定のワークロードをサポートするストレージ・ドライブ204、等)の要件を判定する1208。例えば、方法1200は、ストレージ環境内の第1のRAIDアレイ304またはストレージ階層が、より高い性能、およびしたがって、より高い一日あたりの書込み回数分類のストレージ・ドライブ204を必要とし、ストレージ環境内の第2のRAIDアレイ304またはストレージ階層が、より低い一日あたりの書込み回数分類を有するストレージ・ドライブ204を利用できると判定することができる。ストレージ・グループの要件、およびストレージ・ドライブ204の一日あたりの書込み回数分類に基づいて、方法1200は、ストレージ・グループ内のストレージ・ドライブ204を再編成する1210。例えば、方法1200は、同じ一日あたりの書込み回数分類のストレージ・ドライブ204を同じストレージ・グループ内にできる限り置くことができる。特定の実施形態では、これは、スマート再構築処理を使用して、RAIDアレイ304またはストレージ階層内のストレージ・ドライブ204を入れ替えることによって達成することができる。特定の実施形態では、再編成ステップ1210は、
図11に関連して説明した、再編成ステップ1110とほぼ同じ方式で機能することができる。
【0056】
図13を参照して、ストレージ・ドライブの論理ストレージ容量に基づいてストレージ・ドライブを再編成するための方法の1つの実施形態1300を示す。ステップ1302において、ストレージ環境内のストレージ・ドライブ204を再分類し、再編成する時が来た場合、方法1300は、ストレージ環境内のストレージ・ドライブ204のエージングを判定する1304。次に、方法1300は、ストレージ・ドライブ204のエージングに基づいて、ストレージ・ドライブ204の論理ストレージ容量の適切な減少、およびオーバープロビジョニングの量の増加を判定する1306。新たに判定した論理ストレージ容量に収容可能なものを超えるデータの量を、ストレージ・ドライブ204が収める場合、方法1300は、ストレージ・ドライブ204から別の位置にデータを移動させる1308。次に、ストレージ・ドライブ204は、解放した論理ストレージ容量をオーバープロビジョニングに充てるように再構成することができる。次に、方法1300は、ステップ1306で判定した量に応じて、ストレージ・ドライブ204内の論理ストレージ容量を減少させ1310、オーバープロビジョニングの量を増加させる1310。
【0057】
次に、方法1300は、ストレージ・グループ(例えば、RAIDアレイ304、ストレージ階層、等)内のストレージ・ドライブ204を再編成する1312。例えば、方法1300は、同じ論理ストレージ容量のストレージ・ドライブ204を同じストレージ・グループ内にできる限り置くことができる。特定の実施形態では、これは、スマート再構築処理を使用して、ストレージ・グループ内のストレージ・ドライブ204を入れ替えることによって達成することができる。特定の実施形態では、再編成ステップ1312は、
図11および
図12に関連して説明した再編成ステップ1110、1210とほぼ同じ方式で機能することができる。
【0058】
図中の流れ図またはブロック図あるいはその両方は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ使用可能媒体の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図またはブロック図の各ブロックは、コードのモジュール、セグメント、または一部を表すことができ、コードは、指定の論理機能を実施するための1つまたは複数の実行可能命令を含む。いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよいことにも留意されたい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行してもよく、または、ブロックは、時には、含まれる機能に応じて逆の順序で実行してもよい。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せは、指定の機能もしくは動作を実行する専用ハードウェア・ベースのシステム、または専用ハードウェアとコンピュータ命令の組合せによって実施できることにも留意されたい。