説明

ストレージ装置及びその制御方法

【課題】
寿命が短く、データ書き換えに時間のかかるフラッシュメモリの欠点を補いながら、省電力運転を行い得るストレージ装置及びその制御方法を提案する。
【解決手段】
ストレージ装置は、複数の不揮発性メモリがそれぞれ提供する記憶領域をプールとして管理すると共に、ホスト装置に仮想的なボリュームを提供し、ホスト装置からのデータの書込み要求に応じて仮想プールから仮想的なボリュームに記憶領域を動的に割り当て、割り当てた記憶領域に前記データを配置する。そしてホスト装置からのデータの配置先を一部の不揮発性メモリが提供する記憶領域に集中させて、未使用の前記不揮発性メモリに対する電源供給を停止させ、起動中の不揮発性メモリが提供する記憶領域に対するデータの書換え回数及び又はアクセス頻度を監視し、データの書換え回数が増大した場合には他の記憶領域にデータを移動させ、アクセス頻度が過多になった場合にはデータの配置先を分散させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はストレージ装置及びその制御方法に関し、例えば記憶媒体としてフラッシュメモリが搭載されたストレージ装置に適用して好適なものである。
【背景技術】
【0002】
フラッシュメモリを記憶媒体とするストレージ装置は、小型ディスクドライブを多数備えるストレージ装置に比べ、省電力及びアクセス時間等に優れている。しかしながら、フラッシュメモリは、データの書き換えのために以下の手順を踏む必要があるため、書き換えに時間を要する問題がある。
【0003】
(ステップ1)有効領域(現在使われているデータが格納されている領域)のデータを退避する。
(ステップ2)無効領域(現在使われていないデータが格納されている領域)のデータを消去する。
(ステップ3)未使用領域(データを消去した領域)に、新たなデータを書き込む。
【0004】
またフラッシュメモリはデータの消去回数に制限があり、消去回数が増大した記憶領域は使用不能となる。この問題に対し、複数のフラッシュメモリに渡って消去回数を平準化する方法(以下、これを消去回数平準化方法と呼ぶ)が特許文献1に開示されている。この消去回数平準化方法は以下の手順により実行される。
【0005】
(ステップ1)複数のフラッシュメモリ(PDEV)をまとめたウェアレベリンググループ(WDEV)を定義する。
(ステップ2)WDEV内の複数のPDEVの論理ページアドレスをまとめて仮想ページアドレスにマッピングする。
(ステップ3)複数のWDEVを組み合わせてRAID(Redundant Arrays of Independent Disks)グループ(冗長化グループ)を構成する。
(ステップ4)1つのRAIDグループ内の領域を組み合わせて、又は、複数のRAIDグループで論理ボリュームを構成する。
(ステップ5)ストレージコントローラが、論理ページアドレス空間内の所定領域ごとの延べ書き込み容量を計数管理し、論理ページアドレス間のデータ移動と論理対仮想ページアドレス・マッピング変更により消去回数平準化を実行する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−265365号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところが、かかる消去回数平準化方法により複数のフラッシュメモリに渡って消去回数を平準化するためにはフラッシュメモリを常時起動しておく必要があり、このため消費電力を抑えることができない問題があった。またかかる消去回数平準化方法によると、データの書き換えに多くの時間を要し、その間ストレージ装置のI/O性能が劣化する問題があった。
【0008】
本発明は以上の点を考慮してなされたもので、寿命が短く、データ書き換えに時間のかかるフラッシュメモリの欠点を補いながら、省電力運転を行い得るストレージ装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【0009】
かかる課題を解決するため本発明においては、計算機システムにおいて、ホスト装置がデータを読み書きするための記憶領域を提供するストレージ装置と、前記ストレージ装置を管理する管理装置とを備え、前記ストレージ装置は、前記記憶領域を提供する複数の不揮発性メモリと、前記不揮発性メモリに対する前記ホスト装置からのデータの読み書きを制御するコントローラとを有し、前記コントローラは、前記複数の不揮発性メモリがそれぞれ提供する前記記憶領域をプールとしてまとめて管理すると共に、前記ホスト装置に対して仮想的なボリュームを提供し、当該仮想的なボリュームに対する前記ホスト装置からのデータの書込み要求に応じて前記仮想プールから前記仮想的なボリュームに前記記憶領域を動的に割り当て、割り当てた前記記憶領域に前記データを配置し、前記管理装置は、前記ホスト装置からのデータの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させて、未使用の前記不揮発性メモリに対する電源供給を停止させるように前記ストレージ装置を制御し、起動中の前記不揮発性メモリが提供する記憶領域に対するデータの書換え回数及び又はアクセス頻度を監視し、一部の前記不揮発性メモリが提供する記憶領域におけるデータの書換え回数が増大した場合には、他の前記不揮発性メモリが提供するデータの書換え回数が少ない記憶領域にデータを移動させるように前記ストレージ装置を制御し、一部の前記不揮発性メモリが提供する記憶領域に対するアクセス頻度が過多になった場合には、電源供給を停止している前記不揮発性メモリを起動することによりデータの配置先を分散させるように前記ストレージ装置を制御することを特徴とする。
【0010】
また本発明においては、ホスト装置がデータを読み書きするための記憶領域をそれぞれ提供する複数の不揮発性メモリを有するストレージ装置の制御方法において、前記ストレージ装置は、前記複数の不揮発性メモリがそれぞれ提供する前記記憶領域をプールとしてまとめて管理すると共に、前記ホスト装置に対して仮想的なボリュームを提供し、当該仮想的なボリュームに対する前記ホスト装置からのデータの書込み要求に応じて前記仮想プールから前記仮想的なボリュームに前記記憶領域を動的に割り当て、割り当てた前記記憶領域に前記データを配置し、前記ホスト装置からのデータの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させて、未使用の前記不揮発性メモリに対する電源供給を停止させるように前記ストレージ装置を制御する第1のステップと、起動中の前記不揮発性メモリが提供する記憶領域に対するデータの書換え回数及び又はアクセス頻度を監視する第2のステップと、一部の前記不揮発性メモリが提供する記憶領域におけるデータの書換え回数が増大した場合には、他の前記不揮発性メモリが提供するデータの書換え回数が少ない記憶領域にデータを移動させるように前記ストレージ装置を制御し、一部の前記不揮発性メモリが提供する記憶領域に対するアクセス頻度が過多になった場合には、電源供給を停止している前記不揮発性メモリを起動することによりデータの配置先を分散させるように前記ストレージ装置を制御する第3のステップとを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、寿命が短く、データ書き換えに時間のかかるフラッシュメモリの欠点を補いながら、省電力運転を行い得るストレージ装置及びその制御方法を実現できる。
【図面の簡単な説明】
【0012】
【図1】本実施の形態による計算機システムの全体構成を示すブロック図である。
【図2】フラッシュメモリ・モジュールの概略構成を示すブロック図である。
【図3】フラッシュメモリ・チップの説明に供する概念図である。
【図4】ストレージ装置における記憶領域の管理概要の説明に供する概念図である。
【図5】本実施の形態によるデータ配置先管理機能の説明に供する概念図である。
【図6】本実施の形態によるデータ配置先管理機能の説明に供する概念図である。
【図7】管理サーバのメモリに格納された各種制御プログラム及び各種管理テーブルの説明に供するブロック図である。
【図8】RAIDグループ管理テーブルの説明に供する概念図である。
【図9】論理デバイス管理テーブルの説明に供する概念図である。
【図10】スケジュール管理テーブルの説明に供する概念図である。
【図11】仮想プール稼働情報管理テーブルの説明に供する概念図である。
【図12】論理デバイス情報収集処理の処理手順を示すフローチャートである。
【図13】データ配置先管理処理の処理手順を示すフローチャートである。
【図14】データ配置先分散処理の処理手順を示すフローチャートである。
【図15】データ配置先集中処理の処理手順を示すフローチャートである。
【図16】スケジュール処理の処理手順を示すフローチャートである。
【図17】新規仮想プール登録処理の処理手順を示すフローチャートである。
【図18】テーブル更新処理の処理手順を示すフローチャートである。
【図19】レポート出力処理の処理手順を示すフローチャートである。
【図20】レポート画面の構成例を示す略線図である。
【符号の説明】
【0013】
1……計算機システム、2……業務ホスト、3……管理サーバ、4……ストレージ装置、20,31……CPU、21,32……メモリ、35……フラッシュメモリ・モジュール、40……フラッシュメモリ・チップ、41……フラッシュメモリ、43……ブロック、50……ページ、60……データ配置先管理プログラム、61……スケジュール管理プログラム、62……仮想プール稼働状況レポートプログラム、63……RAIDグループ管理テーブル、64……論理デバイス管理テーブル、65……スケジュール管理テーブル、66……仮想プール稼働情報管理テーブル、70……レポート画面、DPP……仮想プール、DP−VOL……仮想ボリューム、LDEV……論理デバイス、PDEV……物理デバイス、RG……RAIDグループ。
【発明を実施するための最良の形態】
【0014】
以下図面について、本発明の一実施の形態を詳述する。
【0015】
(1)本実施の形態による計算機システムの構成
図1において、1は全体として本実施の形態による計算機システムを示す。この計算機システム1は、複数の業務ホスト2、管理サーバ3及びストレージ装置4を備えて構成される。各業務ホスト2は、ネットワーク5を介してストレージ装置4と接続されると共に、管理用ネットワーク6を介して管理サーバ3と接続されている。また管理サーバ3は、管理用ネットワーク6を介してストレージ装置4と接続されている。
【0016】
ネットワーク5は、例えばSAN(Storage Area Network)、インターネットから構成される。このネットワーク5を介した業務ホスト2及びストレージ装置4間の通信は、ファイバーチャネルプロトコルに従って行われる。また管理用ネットワーク6は、例えばLAN(Local Area Network)などから構成される。この管理用ネットワーク6を介した管理サーバ3と、業務ホスト2又はストレージ装置4と間の通信は、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。
【0017】
業務ホスト2は、CPU(Central Processing Unit)10、メモリ11及び複数のインタフェース12A,12B等を備えたコンピュータ装置であり、パーソナルコンピュータやワークステーション、メインフレームコンピュータなどから構成される。業務ホスト2のメモリ11には、当該業務ホスト2を使用するユーザの業務内容に応じたアプリケーションソフトウェアが格納されており、CPU10がこのアプリケーションソフトウェアを実行することにより、業務ホスト2全体としてかかるユーザの業務内容に応じた処理が実行される。そして、CPU10がこのようなユーザの業務内容に応じた処理を実行する際に使用するデータがネットワーク5を介してストレージ装置4に読み書きされる。
【0018】
管理サーバ3は、CPU20、メモリ21及びインタフェース22等を備えたサーバ装置であり、インタフェース22を介して管理用ネットワーク6に接続されている。後述のように、管理サーバ3のメモリ21には、各種制御プログラム及び各種の管理テーブルが格納されており、CPU20がこれらの制御プログラムを実行することにより、管理サーバ3全体として後述のようなデータ配置先管理処理を実行する。
【0019】
ストレージ装置4は、複数のネットワークインタフェース30A,30Bと、CPU31及びメモリ32を含むコントローラ33と、ドライブインタフェース34と、複数のフラッシュメモリ・モジュール35とを備えて構成される。
【0020】
ネットインタフェース30Aは、ストレージ装置4がネットワーク5を介して業務ホスト2とデータを送受するためのインタフェースであり、ストレージ装置4及び業務ホスト2間の通信時におけるプロトコル変換などの処理を実行する。またネットインタフェース30Bは、ストレージ装置4が管理用ネットワーク6を介して管理サーバ3と通信を行うためのインタフェースであり、ストレージ装置4及び管理サーバ3間の通信時におけるプロトコル変換などの処理を実行する。さらにドライブインタフェース34は、フラッシュメモリ・モジュール35との間のインタフェースとして機能する。
【0021】
コントローラ33のメモリ32は、業務ホスト2によりフラッシュメモリ・モジュール35に読み書きされるデータを一時的に保持するために用いられるほか、CPU31のワークメモリとしても用いられる。各種の制御プログラムもこのメモリ32に保持される。CPU31は、ストレージ装置4全体の動作制御を司るプロセッサであり、メモリ32に格納された各種制御プログラムを実行することにより、業務ホスト2からのデータをフラッシュメモリ・モジュール35に読み書きする。
【0022】
ドライブインタフェース34は、フラッシュメモリ・モジュール35との間のプロトコル変換等を行うインタフェースである。後述のようなフラッシュメモリ・モジュール35の電源制御(電源のオン/オフ)も、このドライブインタフェース34により行われる。
【0023】
フラッシュメモリ・モジュール35は、図2に示すように、複数のフラッシュメモリ・チップ40から構成されるフラッシュメモリ41と、フラッシュメモリ41に対するデータの読み書きを制御するメモリコントローラ42とから構成される。
【0024】
フラッシュメモリ・チップ40は、複数の単位容量の記憶領域(以下、これをブロックと呼ぶ)43から構成される。ブロック43は、メモリコントローラ42がデータを消去する単位である。またブロック43は、後述のように複数のページを含む。ページは、メモリコントローラ42がデータを読み書きする単位である。なおページは、有効ページ、無効ページ又は未使用ページのいずれかに分類される。有効ページは、有効なデータを記憶しているページであり、無効ページは、無効なページを記憶しているページである。また未使用ページは、データを記憶していないページである。
【0025】
図3は、1つのフラッシュメモリ・チップ40におけるブロック構成を示す。ブロック43は、一般的に数十程度(例えば32又は64)のページ50から構成される。ページ53は、メモリコントローラ42がデータを読み書きする単位であり、例えば512バイトのデータ部51と、例えば16バイトの冗長部52とから構成される。
【0026】
データ部51には、通常のデータが格納され、冗長部52には、そのページ管理情報及びエラー訂正情報が格納される。ページ管理情報には、オフセットアドレス及びページステータスが含まれる。オフセットアドレスは、そのページ50が属するブロック43内における相対的なアドレスである。またページステータスは、そのページ50が有効ページ、無効ページ、未使用ページ及び処理中のページのうちのいずれであるかを示す情報である。エラー訂正情報は、そのページ50のエラーを検出及び訂正するための情報であり、例えばハミングコードが用いられる。
【0027】
(2)ストレージ装置に搭載された各種機能
次に、ストレージ装置4に搭載された各種機能について説明する。これに際して、まず、ストレージ装置4における記憶領域の管理方法について説明する。
【0028】
図4は、ストレージ装置4における記憶領域の管理方法の概要を示す。この図4に示すように、ストレージ装置4においては、1つのフラッシュメモリ・モジュール35が1つの物理デバイスPDEVとして管理され、複数の物理デバイスPDEVにより1つのウェアレベリンググループWDEVが定義される。
【0029】
また1つのウェアレベリンググループWDEVを構成する各物理デバイスPDEVが提供する記憶領域から1又は複数のRAIDグループRGが構成され、1つのRAIDグループRGから切り出された記憶領域(つまり1つのRAIDグループRGの一部の記憶領域)が論理デバイスLDEVとして定義される。さらに複数の論理デバイスLDEVをまとめて1つの仮想プールDPPが定義され、この仮想プールDPPに1又は複数の仮想ボリュームDP−VOLが対応付けられる。ストレージ装置4は、この仮想ボリュームDP−VOLを記憶領域として業務ホスト2に提供する。
【0030】
そして業務ホスト2から仮想ボリュームDP−VOLに対してデータの書き込みがあった場合、その仮想ボリュームDP−VOLにおけるデータの書込み先の領域に対して仮想プールDPPからいずれかの論理デバイスLDEVの記憶領域が割り当てられ、この記憶領域にそのデータが書き込まれる。
【0031】
この場合、データの書込み先の領域に記憶領域を割り当てる論理デバイスLDEVはランダムに選択される。このため複数の論理デバイスLDEVが存在する場合には、これら複数の論理デバイスLDEVにデータが分散されて格納される。
【0032】
そこで本実施の形態の場合、ストレージ装置4には、図5に示すように、通常時にはデータの配置先を一部の論理デバイスLDEVに集中させることで未使用の物理デバイスPDEV(フラッシュメモリ・モジュール35)数を最大化し、これら未使用の物理デバイスPDEVの電源供給を停止(オフ)させる一方、起動中の論理デバイスLDEVに対するデータの書換え回数やアクセス頻度が増大した場合には、図6に示すように、データ書換え回数が増大した論理デバイスLDEVに格納されているデータを書換え回数の少ない論理デバイスLDEVに移動させたり、アクセス頻度が過大になった論理デバイスLDEVに格納されているデータを他の論理デバイスLDEVに分散させるデータ配置先管理機能が搭載されている。
【0033】
これによりストレージ装置4においては、このデータ配置先管理機能によってデータの配置先を適宜変更することができ、かくしてフラッシュメモリ・モジュール35に含まれるフラッシュメモリ41(図2)の寿命を平準化しながら、通常時には省電力運転を行い得るようになされている。
【0034】
またストレージ装置4には、ユーザにより設定されたスケジュールに従って、その開始時間から終了時間までの間、データを複数の論理デバイスLDEVに分散させる処理を実行し、終了時間が経過すると、データを再度一部の論理デバイスLDEVに集中させるスケジュール処理機能も搭載されている。
【0035】
これによりストレージ装置4においては、このスケジュール処理機能によって、予めアクセスが増加することが分かっている時間帯にはデータを複数の論理デバイスLDEVに分散させてI/O性能の劣化を防止し、その時間帯の終了後には再度データを一部の論理デバイスLDEVに集中させることにより省電力運転を行い得るようになされている。
【0036】
加えて、ストレージ装置4には、仮想プールDPPの稼働状態をレポートする仮想プール稼働状況レポート機能も搭載されている。これによりストレージ装置4においては、この仮想プール稼働状況レポート機能によって、ユーザがストレージ装置4内の仮想プールDPPの稼働状況を容易に認識し得るようになされている。
【0037】
以上のようなデータ配置先管理機能、スケジュール処理機能及び仮想プール稼働状況レポート機能を実行するための手段として、図7に示すように、管理サーバ3のメモリ21には、データ配置先管理プログラム60、スケジュール管理プログラム61及び仮想プール稼働状況レポートプログラム62と、RAIDグループ管理テーブル63、論理デバイス管理テーブル64、スケジュール管理テーブル65及び仮想プール稼働情報管理テーブル66とが格納されている。
【0038】
データ配置先管理プログラム60は、上述のデータ配置先管理機能を実現するため、複数の論理デバイスLDEVに分散されて格納されているデータを一部の論理デバイスLDEVに集中させるデータ配置先集中処理や、一部の論理デバイスLDEVに集中して格納されているデータを複数の論理デバイスLDEVに分散させるデータ配置先分散処理を実行するプログラムである。
【0039】
またスケジュール管理プログラム61は、上述のスケジュール処理機能を実現するため、予めユーザによりスケジュールされた時間帯に上述のデータ配置先分散処理を行い、その時間帯の経過後に上述のデータ配置先集中処理を実行するプログラムである。
【0040】
さらに仮想プール稼働状況レポートプログラム62は、上述の仮想プール稼働状況レポート機能を実現するため、仮想プール稼働情報管理テーブル66を適宜更新し、この仮想プール稼働情報管理テーブル66に基づき、ユーザ指示に応じて又は定期的に、仮想プールDPPの稼働状況をレポート出力するプログラムである。
【0041】
一方、RAIDグループ管理テーブル63は、ストレージ装置4内に定義されたRAIDグループRGを管理するためのテーブルであり、図8に示すように、RAIDグループ番号欄63A、物理デバイス番号欄63B、論理デバイス番号欄63C、平均データ消去回数欄63D、消去可能回数欄63E、IOPS欄63F、処理性能欄63G、移行フラグ欄63H及び電源状態欄63Iから構成される。
【0042】
そしてRAIDグループ番号欄63Aには、ストレージ装置4内に定義された各RAIDグループRGにそれぞれ付与された識別番号(RAIDグループ番号)が格納され、物理デバイス番号欄63Bには、対応するRAIDグループRGを構成する各フラッシュメモリ・モジュール35(図1)にそれぞれ付与された識別番号(物理デバイス番号)が格納される。また、論理デバイス番号欄63Cには、そのRAIDグループRGから切り出された各論理デバイスLDEVにそれぞれ付与された識別番号(論理デバイス番号)が格納される。
【0043】
さらに平均データ消去回数欄63Dには、対応するフラッシュメモリ・モジュール35内の各ブロック43(図2)におけるデータの消去回数の平均値が格納され、消去可能回数欄63Eには、そのフラッシュメモリ・モジュール35内のブロック43におけるデータの消去可能回数の最大値が格納される。またIOPS欄63Fには、対応するフラッシュメモリ・モジュール35に対する単位時間当たりのI/O回数(IOPS)が格納され、処理性能欄63Gには、そのフラッシュメモリ・モジュール35における単位時間当たりのI/O処理の処理可能回数が格納される。なお消去可能回数欄63E及び処理性能欄63Gに格納される数値は、いずれも対応するフラッシュメモリ・モジュール35を構成する各フラッシュメモリ・チップ40(図2)のスペックの値である。
【0044】
さらに移行フラグ欄63Hには、データ移行に関するフラグ(以下、これを移行フラグと呼ぶ)が格納される。具体的には、対応するRAIDグループRGから切り出された論理デバイスLDEVに格納されたデータを他のRAIDグループRGから切り出された論理デバイスLDEVに移行させる場合には「移行元」、他のRAIDグループRGから切り出された論理デバイスLDEVに格納されているデータを、対応するRAIDグループRGから切り出された論理デバイスLDEVに移行する場合には「移行先」、これら以外の場合には「初期値」をそれぞれ表す移行フラグが格納される。
【0045】
さらに電源状態欄63Iには、対応するRAIDグループRGを構成する各フラッシュメモリ・モジュール35の電源状態が格納される。例えば、かかる各フラッシュメモリ・モジュール35の電源が供給されている場合には電源状態として「オン」が格納され、かかる各フラッシュメモリ・モジュール35の電源供給が停止されている場合には電源状態として「オフ」が格納される。
【0046】
従って、例えば図8の例の場合には、ストレージ装置4内には「RG#1」及び「RG#2」というRAIDグループRGが存在し、このうち「RG#1」というRAIDグループRGは「PDEV#1」〜「PDEV#4」という4つのフラッシュメモリ・モジュール35から構成され、「PDEV#1」というフラッシュメモリ・モジュール35からは「LDEV#1」〜「LDEV#3」という3つの論理デバイスLDEVが切り出されていることが分かる。また、例えば「PDEV#1」というフラッシュメモリ・モジュール35においては、各ブロック43におけるデータの消去回数の平均値、ブロック当たりの消去可能回数、単位時間当たりのアクセス回数、単位時間当たりの処理性能がそれぞれ「200」、「100000」、「3000」及び「10000」であり、これらフラッシュメモリ・モジュール35は電源がオン状態にあることも分かる。
【0047】
論理デバイス管理テーブル64は、仮想プールDPPを構成する論理デバイスLDEVを管理するためのテーブルであり、仮想プールDPPごとに作成される。この論理デバイス管理テーブル64は、図9に示すように、論理デバイス番号欄64A、物理デバイス番号欄64B、容量欄64C、有効ページ欄64D、無効ページ欄64E、未使用ページ欄64F及びデータ消去回数欄64Gから構成される。
【0048】
そして論理デバイス番号欄64Aには、対応する仮想プールDPPを構成する各論理デバイスLDEVの論理デバイス番号が格納され、物理デバイス番号欄64Bには、対応する論理デバイスLDEVを構成するすべてのフラッシュメモリ・モジュール35の物理デバイス番号が格納される。
【0049】
また容量欄64Cには、対応する論理デバイスLDEVの容量が格納され、有効ページ欄64D、無効ページ欄64E及び未使用ページ欄64Fには、それぞれ対応する論理デバイスLDEVにおける有効ページ(有効領域)の合計容量、無効ページ(無効領域)の合計容量及び未使用ページ(未使用領域)の合計容量がそれぞれ格納される。さらにデータ消去回数欄64Gには、対応する論理デバイスLDEV内においてブロック43に格納されているデータを消去した回数が格納される。
【0050】
従って、図9の例の場合、例えば「LDEV#1」という論理デバイスLDEVは、「PDEV#1」〜「PDEV#4」という4つの物理デバイス(フラッシュメモリ・モジュール35)が提供する記憶領域に跨って定義されており、その容量は「100[GB]」で、有効ページの合計容量は「10[GB]」、無効ページの合計容量は「20[GB]」、未使用ページの合計容量は「70[GB]」であって、現在のデータの消去回数が「100」であることが示されている。
【0051】
スケジュール管理テーブル65は、バッチ処理等の性能が要求される処理をスケジュールとして登録することにより、データ配置先管理処理を行うために利用されるテーブルであり、図10に示すように、スケジュール名欄65A、実行間隔欄65B、開始時間欄65C、終了時間欄65D及び必要スペック欄65Eから構成される。
【0052】
そしてスケジュール名欄65Aには、ユーザにより登録されたスケジュールのスケジュール名が格納され、実行間隔欄65Bには、そのスケジュールを実行する間隔が格納される。また開始時間欄65C及び終了時間欄65Dには、それぞれユーザにより登録されたそのスケジュールを開始又は終了すべき時間が格納され、必要スペック欄65Eには、そのスケジュールに対応する処理を実行するのに必要なRAIDグループRGの個数(以下、これを必要スペックと呼ぶ)が格納される。
【0053】
なお、このスケジュール管理テーブル65は、ユーザがスケジュール登録を行う任意のタイミングでデータが更新される。また必要スペック欄65Eに格納される必要スペックは、そのスケジュールに対応する処理の実行後に更新される。
【0054】
仮想プール稼働情報管理テーブル66は、仮想プールDPPを構成する物理デバイスPDEV(フラッシュメモリ・モジュール35)の稼働状況を管理するために利用されるテーブルであり、図11に示すように、仮想プール番号欄66A、仮想プール作成日時欄66B、物理デバイス番号欄66C、起動状態欄66D、起動状態最終更新時刻欄66E及び累計稼働時間欄66Fから構成される。
【0055】
そして仮想プール番号欄66Aには、ストレージ装置4内に定義されている仮想プールDPPの識別番号(仮想プール番号)が格納され、仮想プール作成日時欄66Bには、対応する仮想プールDPPの作成日時が格納される。また物理デバイス番号欄66Cには、対応する仮想プールDPPを構成するすべての物理デバイスPDEVの物理デバイス番号が格納され、起動状態欄66Dには、対応する物理デバイスPDEVの現在の起動状態が格納される。
【0056】
さらに起動状態最終更新時刻欄66Eには、対応する物理デバイスPDEVの起動状態を最後に確認した時刻が格納され、累計稼働時間欄66Fには、対応する物理デバイスPDEVの累計稼働時間が格納される。
【0057】
従って、図11の場合、「DPP#1」という仮想プールDPPは、「2009/8/31 12:00:00」に作成され、現在は「PDEV#1」〜「PDEV#8」という8個の物理デバイスPDEV(フラッシュメモリ・モジュール35)から構成されていることが分かる。またこれら8個の物理デバイスPDEVのうち、「PDEV#1」〜「PDEV#8」という4個の物理デバイスPDEVは現在起動中であり、これら物理デバイスPDEVの起動状態の最終確認時刻はいずれも「2009/9/1 12:00」で、累計稼働時間はいずれも「6」時間であることが示されている。
【0058】
(3)管理サーバの処理
次に、上述のようなデータ配置先管理機能、スケジュール処理機能及び仮想プール稼働状況レポート機能に関連して管理サーバ3において実行される各種処理の処理内容について説明する。なお、以下においては、各種処理の処理主体を「プログラム」として説明するが、実際には、そのプログラムに基づいて管理サーバ3のCPU20がその処理を実行することは言うまでもない。
【0059】
(3−1)データ配置先管理機能に関する処理
(3−1−1)論理デバイス情報収集処理
図12は、データ配置先管理プログラム60(図7)により定期的(例えば1時間毎)に実行される論理デバイス情報更新処理の処理手順を示す。データ配置先管理プログラム60は、この図12に示す論理デバイス情報更新処理を定期的に実行することにより、RAIDグループ管理テーブル63(図8)及び論理デバイス管理テーブル64(図9)に登録されている各論理デバイスLDEVに関する情報を更新する。
【0060】
すなわちデータ配置先管理プログラム60は、この論理デバイス情報更新処理を開始すると、まず、ストレージ装置4において管理されている各フラッシュメモリ・モジュール35に対するアクセス頻度(単位時間当たりのアクセス回数)を、図示しない所定の管理プログラム経由でストレージ装置4から取得し、取得した情報に基づいてRAIDグループ管理テーブル63のIOPS欄63Fを更新する(SP1)。
【0061】
続いてデータ配置先管理プログラム60は、ストレージ装置4において管理されている各フラッシュメモリ・モジュール35のデータ消去回数をストレージ装置4から取得し、取得した情報に基づいてRAIDグループ管理テーブル63の平均データ消去回数欄63D及び論理デバイス管理テーブル64のデータ消去回数欄64Gをそれぞれ更新する(SP2)。
【0062】
次いでデータ配置先管理プログラム60は、各論理デバイスLDEVの容量と、これらの論理デバイスLDEVの現在の使用ページ、無効ページ及び未使用ページの各容量とを論理デバイスLDEV単位で取得し、取得したこれらの情報に基づいて、RAIDグループ管理テーブル63及び論理デバイス管理テーブル64をそれぞれ更新する(SP3)。
【0063】
そしてデータ配置先管理プログラム60は、この後、この論理デバイス情報更新処理を終了する。
【0064】
(3−1−2)データ配置先管理処理
一方、図13は、管理サーバ3のデータ配置先管理プログラム60により定期的(例えば1時間毎)に実行されるデータ配置先管理処理の処理手順を示す。データ配置先管理プログラム60は、この図13に示す処理手順に従って複数の論理デバイスLDEVに分散されているデータを一部の論理デバイスLDEVに集中させ、又は一部の論理デバイスLDEVに集中しているデータを複数の論理デバイスLDEVに分散させる。
【0065】
すなわちデータ配置先管理プログラム60は、このデータ配置先管理処理を開始すると、まずRAIDグループRGごとのデータ消去回数を論理デバイス管理テーブル64からそれぞれ取得すると共に、RAIDグループRGごとの単位時間当たりのアクセス回数をRAIDグループ管理テーブル63から取得する(SP10)。
【0066】
続いてデータ配置先管理プログラム60は、データ消去回数が閾値(以下、これをデータ消去回数閾値と呼ぶ)を超えるRAIDグループRGが存在するか否かを判断する(SP11)。なお、このデータ消去回数閾値SHは、フラッシュメモリ・モジュール35内の各フラッシュメモリ・チップ40(図2)が保障するブロック43(図2)のデータ消去可能回数(RAIDグループ管理テーブル63の消去可能回数欄63Eに格納されているブロック43当たりの消去可能回数)をDとし、重付け変数をiとして、次式
【数1】


により算出される値である。また重付け変数iは、RAIDグループRGごとに、当該RAIDグループRGを構成するすべてのフラッシュメモリ・モジュール35のデータ消去回数が(1)式を超えたときにインクリメント(1だけ増加)される。
【0067】
そしてデータ配置先管理プログラム60は、ステップSP11の判断において肯定結果を得ると、データ消去回数がデータ消去回数閾値SHを超える各RAIDグループRGからそれぞれ切り出された論理デバイスLDEVを、ステップSP13〜ステップSP20について後述するデータ配置先集中処理においてデータの移行元となる論理デバイス(以下、これを移行元論理デバイスと呼ぶ)LDEVに設定する(SP12)。具体的に、データ配置先管理プログラム60は、RAIDグループ管理テーブル63におけるかかるRAIDグループRGに対応する移行フラグ欄63H(図8)に格納されている移行フラグを「移行元」に設定する。
【0068】
続いてデータ配置先管理プログラム60は、ステップSP12において移行フラグを「移行元」に設定したRAIDグループRGの中から1つのRAIDグループRGを選択する(SP13)。
【0069】
続いてデータ配置先管理プログラム60は、RAIDグループ管理テーブル63を参照して、電源状態が「オン」で、かつ移行フラグが「未設定」となっているRAIDグループRGの中からデータ消去回数の平均値が最も小さいRAIDグループを検索する(SP14)。
【0070】
そしてデータ配置先管理プログラム60は、この検索により検出したRAIDグループRGから切り出された各論理デバイスLDEVを、データ配置先集中処理においてデータの移行先となる論理デバイス(以下、これを移行先論理デバイスと呼ぶ)LDEVに決定する(SP15)。具体的にデータ配置先管理プログラム60は、RAIDグループ管理テーブル63におけるそのRAIDグループRGに対応する移行フラグ欄63Hの移行フラグを「移行先」に設定する。
【0071】
続いてデータ配置先管理プログラム60は、上述の移行元論理デバイスLDEVの合計使用容量が、上述の移行先論理デバイスLDEVの合計未使用容量未満であるか否かを判断する(SP16)。具体的に、データ配置先管理プログラム60は、論理デバイス管理テーブル64を参照して、すべての移行元論理デバイスLDEVの有効ページの合計容量を移行元論理デバイスLDEVの合計使用容量として算出する。またデータ配置先管理プログラム60は、すべての移行先論理デバイスLDEVの無効ページ及び未使用ページの合計容量を移行先論理デバイスLDEVの合計未使用容量として算出する。そしてデータ配置先管理プログラム60は、このようにして得られた移行元論理デバイスLDEVの合計使用容量と、移行先論理デバイスLDEVの合計未使用容量とを比較し、移行元論理デバイスLDEVの合計使用容量が、移行先論理デバイスLDEVの合計未使用容量未満であるか否かを判断する。
【0072】
データ配置先管理プログラム60は、この判断において否定結果を得るとステップSP14に戻り、この後、ステップSP14〜ステップSP16の処理を繰り返すことにより、移行先論理デバイスLDEVをRAIDグループRG単位で追加する。
【0073】
そしてデータ配置先管理プログラム60は、やがて移行先論理デバイスLDEVの合計未使用容量が移行元論理デバイスLDEVの合計使用容量以上となることによりステップSP16において肯定結果を得ると、ストレージ装置4のCPU31(図1)を制御することにより、移行元論理デバイスLDEVに格納されているデータを移行先論理デバイスLDEVに移行させる(SP17)。
【0074】
続いてデータ配置先管理プログラム60は、ストレージ装置4のCPU31(図1)を制御することにより、各移行元論理デバイスLDEVの有効ページ及び無効ページにそれぞれ格納されているデータを消去させると共に、これに応じて論理デバイス管理テーブル64を最新の状態に更新する(SP18)。
【0075】
またデータ配置先管理プログラム60は、そのときステップSP13において選択したRAIDグループRGを構成するすべてのフラッシュメモリ・モジュール35に対する電源供給を停止し、さらにRAIDグループ管理テーブル63におけるそのRAIDグループRGの電源状態を「オフ」に更新する(SP19)。
【0076】
次いでデータ配置先管理プログラム60は、ステップSP13において移行フラグを「移行元」に設定したすべてのRAIDグループRGについて上述のステップSP13〜ステップSP19の処理を実行し終えたか否かを判断する(SP20)。そしてデータ配置先管理プログラム60は、この判断において否定結果を得るとステップSP13に戻り、この後ステップSP13において順次異なるRAIDグループRGを選択しながら、ステップSP20において肯定結果を得るまでステップSP13〜ステップSP20の処理を繰り返す。
【0077】
そしてデータ配置先管理プログラム60は、やがてステップSP13において移行フラグを「移行元」に設定したすべてのRAIDグループRGについて上述のステップSP13〜ステップSP19の処理を実行し終えることによりステップSP20において肯定結果を得ると、このデータ配置先管理処理を終了する。
【0078】
一方、データ配置先管理プログラム60は、ステップSP11の判断において否定結果を得ると、アクセス頻度が一定時間高いRAIDグループRGが存在するか否かを判断する(SP21)。そしてデータ配置先管理プログラム60は、この判断において否定結果を得るとこのデータ配置先管理処理を終了する。
【0079】
これに対してデータ配置先管理プログラム60は、ステップSP21の判断において肯定結果を得ると、図14について後述するデータ配置先分散処理を実行し(SP22)、この後、このデータ配置先管理処理を終了する。
【0080】
(3−1−3)データ配置先分散処理
図14は、上述したデータ配置先管理処理(図13)のステップSP22においてデータ配置先管理プログラム60により実行されるデータ配置先分散処理の処理手順を示す。データ配置先管理プログラム60は、この図14に示す処理手順に従って、一部の論理デバイスLDEVに集中しているデータを複数の論理デバイスLDEVに分散させる。
【0081】
すなわちデータ配置先管理プログラム60は、データ配置先管理処理のステップSP22に進むとこのデータ配置先分散処理を開始し、まず、RAIDグループ管理テーブル63を参照して、電源状態が「オフ」で、かつ移行フラグが「未設定」となっているRAIDグループRGの中からデータ消去回数の平均値が最も小さいRAIDグループRGを検索する(SP30)。
【0082】
続いてデータ配置先管理プログラム60は、かかる検索により検出したRAIDグループRGを構成するすべてのフラッシュメモリ・モジュール35に対する電源供給を開始することにより、そのRAIDグループRGから切り出されたすべての論理デバイスLDEVを使用可能な状態にする(SP31)。
【0083】
これにより、この後、業務ホスト2から新たに仮想ボリュームDP−VOL(図4)に書き込まれたデータは、ステップSP31において使用可能状態となった論理デバイスLDEVを含めた使用可能状態のすべての論理デバイスLDEVに分散されて格納されることとなる。
【0084】
次いでデータ配置先管理プログラム60は、図12について上述した論理デバイス情報収集処理を実行することにより、RAIDグループ管理テーブル63及び論理デバイス管理テーブル64を更新する(SP32)。なお、このステップSP32における論理デバイス情報収集処理は、例えば10分間隔で行われる処理であり、前回の論理デバイス情報収集処理の実行後、10分が経過していないときには省略される。
【0085】
そしてデータ配置先管理プログラム60は、この後、RAIDグループ管理テーブル63を参照して、いずれかのRAIDグループRGに対するI/Oアクセスの頻度が高い状態にあるか否かを判断する(SP33)。
【0086】
具体的にデータ配置先管理プログラム60は、RAIDグループ管理テーブル63のIOPS欄に格納されているそのRAIDグループRGから切り出された各論理デバイスLDEVの単位時間当たりのI/Oアクセスの合計回数をX、RAIDグループ管理テーブル63の処理性能欄63Gに格納されている対応するフラッシュメモリ・モジュール35の単位時間当たりの処理性能をY、I/Oアクセスの頻度が高いか否かを判定するためのパラメータ(以下、これをアクセス過多判定パラメータと呼ぶ)を0.7として、次式
【数2】


で与えられる状態が一定時間継続した場合に、そのRAIDグループRGに対するI/Oアクセスの頻度が高い状態にあると判定する。従って、データ配置先管理プログラム60は、ステップSP33において、RAIDグループRGごとに(2)式を満たすか否かを判断することになる。なお、このアクセス過多判定パラメータの値は更新可能な値であり、0.7に限られない。
【0087】
そしてデータ配置先管理プログラム60は、いずれかのRAIDグループRGが未だ(2)式を満たすと判断した場合(つまりアクセス過多のRAIDグループRGが存在すると判断した場合)にはステップSP30に戻り、この後、ステップSP30以降の処理を繰り返す。これにより、それまで電源供給が停止されていたRAIDグループRGが順次起動され、そのRAIDグループRGから切り出された論理デバイスLDEVが使用可能状態にされてゆくことになる。
【0088】
これに対してデータ配置先管理プログラム60は、ステップSP33の判断において否定結果を得ると、RAIDグループ管理テーブル63を参照して、いずれかのRAIDグループRGに対するI/Oアクセスの頻度が低い状態にあるか否かを判断する(SP34)。
【0089】
具体的にデータ配置先管理プログラム60は、I/Oアクセスの頻度が低いか否かを判定するためのパラメータ(以下、これをアクセス低下判定パラメータと呼ぶ)を0.4として、次式
【数3】


で与えられる状態が一定時間継続した場合に、そのRAIDグループRGに対するI/Oアクセスの頻度が低い状態にあると判断する。なお、このアクセス低下判定パラメータの値は更新可能な値であり、0.4に限られない。
【0090】
そしてデータ配置先管理プログラム60は、いずれのRAIDグループRGも(3)式を満たさないと判断した場合(つまりアクセス頻度が低いRAIDグループRGが存在しないと判断した場合)にはステップSP32に戻り、この後、ステップSP32以降の処理を繰り返す。
【0091】
これに対してデータ配置先管理プログラム60は、ステップSP34の判断において肯定結果を得ると、図15について後述するデータ配置先集中処理を実行し(SP35)、この後、図13について上述したデータ配置先管理処理に戻る。
【0092】
(3−1−4)データ配置先集中処理
図15は、データ配置先分散処理のステップSP35においてデータ配置先管理プログラム60により実行されるデータ配置先集中処理の処理手順を示す。データ配置先管理プログラム60は、この図15に示す処理手順に従って、複数の論理デバイスLDEVに分散されたデータを一部の論理デバイスLDEVに集中させる。
【0093】
すなわちデータ配置先管理プログラム60は、図14について上述したデータ配置先分散処理のステップSP35に進むとこのデータ配置先集中処理を開始し、まず、RAIDグループ管理テーブル63を参照して、データ消去回数の平均値が最も小さいRAIDグループRGを検索する(SP40)。
【0094】
続いてデータ配置先管理プログラム60は、かかる検索により上述の条件を満たすRAIDグループRGを検出すると、そのRAIDグループRGから切り出された各論理デバイスLDEVを移行先論理デバイスに決定する(SP41)。具体的にデータ配置先管理プログラム60は、RAIDグループ管理テーブル63におけるこれらの論理デバイスLDEVに対応する移行フラグ欄63H(図8)に格納されている移行フラグを「移行先」に設定する(SP41)。
【0095】
次いでデータ配置先管理プログラム60は、RAIDグループ管理テーブル63を参照して、ステップSP40の検索において検出したRAIDグループRG以外の起動中のRAIDグループRGが存在するか否かを判断する(SP42)。具体的に、データ配置先管理プログラム60は、このステップSP42において、RAIDグループ管理テーブル63における対応する移行フラグ欄63Hに格納されている移行フラグが「未設定」であり、かつRAIDグループ管理テーブル63における対応する電源状態欄63Iに格納されている電源状態が「オン」となっているRAIDグループRGを検索する。
【0096】
そしてデータ配置先管理プログラム60は、この判断において否定結果を得ると、RAIDグループ管理テーブル63における各移行フラグ欄63Hにそれぞれ格納されている移行フラグをすべて「未設定」に更新した後、図14について上述したデータ配置先分散処理に戻る。
【0097】
これに対してデータ配置先管理プログラム60は、ステップSP42の判断において肯定結果を得ると、ステップSP40の検索により検出したRAIDグループRG以外の起動中のRAIDグループRGであって、データ消去回数が最も大きいRAIDグループRGを検索する(SP43)。具体的に、データ配置先管理プログラム60は、このステップSP43において、RAIDグループ管理テーブル63における対応する移行フラグ欄63Hに格納されている移行フラグが「未設定」であり、かつRAIDグループ管理テーブル63における対応する電源状態欄63Iに格納されている電源状態が「オン」であるRAIDグループRGの中からデータ消去回数の平均値が最も大きいRAIDグループRGを検索する。
【0098】
そしてデータ配置先管理プログラム60は、この検索により検出したRAIDグループRGから切り出された各論理デバイスLDEVを、上述の移行元論理デバイスに設定する(SP44)。具体的にデータ配置先管理プログラム60は、RAIDグループ管理テーブル63におけるそのRAIDグループRGに対応する移行フラグ欄63Hに格納されている移行フラグを「移行元」に設定する。
【0099】
次いでデータ配置先管理プログラム60は、データ配置先管理処理(図13)のステップSP16について上述した方法と同様の方法により、移行元論理デバイスLDEVの合計使用容量が、移行先論理デバイスLDEVの合計未使用容量未満であるか否かを判断する(SP45)。
【0100】
データ配置先管理プログラム60は、この判断において否定結果を得ると、RAIDグループ管理テーブル63を参照して、そのRAIDグループRGから切り出された論理デバイスLDEVが移行先論理デバイスに設定されていない起動中のRAIDグループRGであって、データ消去回数の平均値が最も小さいRAIDグループRGが存在するか否かを判断する(SP49)。具体的には、データ配置先管理プログラム60は、このステップSP49において、RAIDグループ管理テーブル63における対応する移行フラグ欄63Hに格納されている移行フラグが「未設定」であり、かつRAIDグループ管理テーブル63における対応する電源状態欄63Iに格納されている電源状態が「オン」となっているRAIDグループRGの中からデータ消去回数の平均値が最も少ないRAIDグループRGが存在するか否かを判断することになる。
【0101】
そしてデータ配置先管理プログラム60は、この判断において否定結果を得ると、RAIDグループ管理テーブル63における各移行フラグ欄63Hにそれぞれ格納されている移行フラグをすべて「未設定」に更新した後、図14について上述したデータ配置先分散処理に戻る。
【0102】
これに対してデータ配置先管理プログラム60は、ステップSP45の判断において肯定結果を得ると、ステップSP42において存在を確認した上述のRAIDグループRGから切り出された各論理デバイスLDEVを移行先論理デバイスに追加する(SP50)。具体的に、データ配置先管理プログラム60は、RAIDグループ管理テーブル63におけるかかるRAIDグループRGに対応する移行フラグ欄63Hに格納されている移行フラグを「移行先」に設定することになる。
【0103】
次いでデータ配置先管理プログラム60は、ステップSP45に戻り、この後、移行元論理デバイスLDEVの合計使用容量が、移行先論理デバイスLDEVの合計未使用容量未満となるまで、ステップSP45−ステップSP49−ステップSP50−ステップSP45のループを繰り返す。
【0104】
そしてデータ配置先管理プログラム60は、やがてステップSP45の判断において肯定結果を得ると、ストレージ装置4のCPU31(図1)を制御することにより、移行元論理デバイスLDEVに格納されているデータを移行先論理デバイスLDEVに移行させる(SP46)。
【0105】
続いてデータ配置先管理プログラム60は、ストレージ装置4のCPU31を制御することにより、各移行元論理デバイスLDEVの有効ページ及び無効ページにそれぞれ格納されているデータを消去させ、この後、これに応じて論理デバイス管理テーブル64を最新の状態に更新する(SP47)。
【0106】
次いでデータ配置先管理プログラム60は、そのときステップSP43の検索により検出したRAIDグループRGを構成するすべてのフラッシュメモリ・モジュール35に対する電源供給を停止し、さらにRAIDグループ管理テーブル63におけるそのRAIDグループRGに対応する電源状態欄63Iに格納されている電源状態を「オフ」に更新する(SP48)。
【0107】
さらにデータ配置先管理プログラム60は、ステップSP42に戻り、この後ステップSP42又はステップSP49において否定結果を得るまでステップSP42以降の処理を繰り返す。そしてデータ配置先管理プログラム60は、やがてステップSP42又はステップSP49において否定結果を得ると、データ配置先分散処理(図14)に戻る。
【0108】
(3−2)スケジュール処理機能に関する処理
他方、図16は、図12〜図15について上述した各種処理と並行してスケジュール管理プログラム61(図7)により実行されるスケジュール処理の処理手順を示す。このスケジュール処理は、上述のようにユーザにより設定されたスケジュールに従って、その開始時間から終了時間までの間、データを複数の論理デバイスLDEVに分散させる処理を実行し、終了時間が経過すると、データを再度一部の論理デバイスLDEVに集中させる処理である。従って、スケジュールは、予めアクセスが増加していることが分かっている時間帯に合わせて開始時間及び終了時間が設定される。
【0109】
スケジュール管理プログラム61は、スケジュール管理テーブル65(図10)を常時監視しており、スケジュール管理テーブル65に登録されたいずれかのスケジュールの開始時間の1分前になるとこのスケジュール処理を開始し、まず、スケジュール管理テーブル65上のそのとき実行しようとするスケジュールに対応する必要スペック欄65E(図10)に必要スペックが登録されているか否かを判断する(SP60)。
【0110】
スケジュール管理プログラム61は、この判断において肯定結果を得ると、かかる必要スペック欄65Eに登録されている必要個数のRAIDグループRGを起動し、それらのRAIDグループRGから切り出された各論理デバイスLDEVを使用可能な状態にする(SP61)。
【0111】
具体的に、スケジュール管理プログラム61は、このステップSP61において、RAIDグループ管理テーブル63を参照して、電源状態が「オフ」となっているRAIDグループRGのうち、平均データ消去回数欄63D(図8)に格納されているデータ消去回数の平均値が少ないものから順番に必要個数のRAIDグループRGを選択する。そしてスケジュール管理プログラム61は、選択した各RAIDグループRGをそれぞれ構成する各フラッシュメモリ・モジュール35に対する電源供給を開始し、さらにRAIDグループ管理テーブル63におけるそのRAIDグループRGに対応する電源状態欄63Iに格納されている電源状態を「オン」に更新する。そしてスケジュール管理プログラム61は、この後、ステップSP63に進む。
【0112】
これに対してスケジュール管理プログラム61は、ステップSP60の判断において否定結果を得ると、そのスケジュールを実行するのに必要なRAIDグループRGの個数を2個として、2個のRAIDグループRGを起動することにより、そのRAIDグループRGから切り出された論理デバイスLDEVを使用可能な状態にする(SP62)。このステップSP62における具体的な処理内容は、ステップSP61と同様であるので説明は省略する。そしてスケジュール管理プログラム61は、この後、ステップSP63に進む。
【0113】
そしてスケジュール管理プログラム61は、ステップSP63に進むと、図示しないタイマより現在時刻を取得し、スケジュール管理テーブル65に登録されているそのスケジュールの終了時間が経過したか否かを判断する(SP63)。
【0114】
スケジュール管理プログラム61は、この判断において否定結果を得ると、図64について上述した論理デバイス情報収集処理を実行することにより、RAIDグループ管理テーブル63を更新する(SP64)。なお、このステップSP64における論理デバイス情報収集処理は、例えば10分ごとに行われる処理であり、前回の論理デバイス情報収集処理の実行後、10分が経過していないときには省略される。
【0115】
次いでスケジュール管理プログラム61は、データ配置先分散処理(図14)のステップSP33と同様にして、RAIDグループ管理テーブル63に登録されたいずれかのRAIDグループRGに対するI/Oアクセスの頻度が高い状態にあるか否かを判断する(SP65)。
【0116】
そしてスケジュール管理プログラム61は、この判断において否定結果を得るとステップSP63に戻り、これに対して肯定結果を得ると、RAIDグループ管理テーブル63を参照して、電源状態が「オフ」で、かつ移行フラグが「未設定」となっているRAIDグループRGの中からデータ消去回数の平均値が最も小さいRAIDグループRGを検索する(SP66)。
【0117】
続いてスケジュール管理プログラム61は、かかる検索により検出したRAIDグループRGを構成するすべてのフラッシュメモリ・モジュール35に対する電源供給を開始することにより、そのRAIDグループRGから切り出されたすべての論理デバイスLDEVを使用可能な状態にする(SP67)。
【0118】
これにより、この後、業務ホスト2から新たに仮想ボリュームDP−VOL(図4)に書き込まれたデータは、ステップSP61又はステップSP62において使用可能状態となった論理デバイスLDEVを含めた使用可能状態のすべての論理デバイスLDEVに分散されて格納されることとなる。
【0119】
またスケジュール管理プログラム61は、この後ステップSP63に戻り、ステップSP63において肯定結果を得るまでステップSP63〜ステップSP67の処理を繰り返す。
【0120】
一方、スケジュール管理プログラム61は、やがてスケジュール管理テーブル65に登録されたそのスケジュールの終了時間が経過することによりステップSP63において肯定結果を得ると、スケジュール管理テーブル65におけるそのスケジュールに対応する必要スペック欄65E(図10)に格納されている必要スペックを、そのときそのスケジュールを実行するのに使用したRAIDグループRGの個数に更新する(SP68)。
【0121】
次いでスケジュール管理プログラム61は、図15について上述したデータ配置先集中処理を実行する(SP69)。これによりスケジュール管理プログラム61は、ステップSP60〜ステップSP67の処理により複数の論理デバイスLDEVに分散されたデータを一部の論理デバイスLDEVに再度集中させると共に、未使用のRAIDグループRGを最大化させて、これらのRAIDグループRGを構成するフラッシュメモリ・モジュール35に対する電源供給を開始させる。
【0122】
そしてスケジュール管理プログラム61は、この後、このスケジュール処理を終了する。
【0123】
(3−3)仮想プール稼働状況レポート機能に関する処理
(3−3−1)新規仮想プール登録処理
他方、図17は、図12〜図15について上述した各種処理と並行して仮想プール稼働状況レポートプログラム62(図7)により実行される新規仮想プール登録処理の処理手順を示す。
【0124】
仮想プール稼働状況レポートプログラム62は、ユーザ操作により仮想プールDPPが作成されると、これに応じてこの図17に示す新規仮想プール登録処理を開始し、まず、そのとき作成された新たな仮想プールDPPのエントリを仮想プール稼働情報管理テーブル66(図11)に追加する(SP70)。
【0125】
具体的に仮想プール稼働状況レポートプログラム62は、そのとき作成された仮想プールDPPに対応する行を仮想プール稼働情報管理テーブル66に追加し、その行の仮想プール番号欄66A(図11)及び仮想プール作成日時欄66Bに、それぞれその仮想プールDPPの仮想プール番号及び作成日時を格納する。
【0126】
また仮想プール稼働状況レポートプログラム62は、かかる行の物理デバイス番号欄66C(図11)にその仮想プールDPPを構成するすべてのフラッシュメモリ・モジュール35のフラッシュメモリ・モジュール番号を格納すると共に、各起動状態欄66D(図11)に、対応するフラッシュメモリ・モジュール35の現在の起動状態として「オン」を格納する。
【0127】
さらに仮想プール稼働状況レポートプログラム62は、かかる行の各起動状態最終更新時刻欄66E(図11)に、対応するフラッシュメモリ・モジュール35の起動状態の最終更新時刻としてその仮想プールDPPの作成日時を格納し、累計稼働時間欄66F(66F)に、対応するフラッシュメモリ・モジュール35の累計稼働時間として「0」を格納する。
【0128】
そして仮想プール稼働状況レポートプログラム62は、この後、この新規仮想プール登録処理を終了する。
【0129】
(3−3−2)テーブル更新処理
一方、図18は、新規仮想プール登録処理の実行後に仮想プール稼働状況レポートプログラム62により実行されるテーブル更新処理の処理手順を示す。仮想プール稼働状況レポートプログラム62は、上述したデータ配置先管理処理等によりいずれかのフラッシュメモリ・モジュール35に対して電源供給が開始若しくは停止され、又は、ユーザにより指示され若しくは予め定められた監視タイミングとなると、この図18に示す処理手順に従って仮想プール稼働情報管理テーブル66(図11)を更新する。
【0130】
すなわち仮想プール稼働状況レポートプログラム62は、いずれかのフラッシュメモリ・モジュール35に対する電源供給が開始若しくは停止され、又は、ユーザにより指示され若しくは予め定められた監視タイミングとなるとこのテーブル更新処理を開始し、まず、いずれかのフラッシュメモリ・モジュール35に対する電源供給が開始されたか否かを判断する(SP71)。
【0131】
仮想プール稼働状況レポートプログラム62は、この判断において肯定結果を得ると、仮想プール稼働情報管理テーブル66におけるそのフラッシュメモリ・モジュール35に対応するエントリの起動状態欄66D(図11)に格納されている起動状態を「オン」に更新すると共に、起動状態最終更新時刻欄66E(図11)に格納されているそのフラッシュメモリ・モジュール35の起動状態の最終更新時刻を現在時刻に更新する(SP72)。そして仮想プール稼働状況レポートプログラム62は、この後、このテーブル更新処理を終了する。
【0132】
一方、仮想プール稼働状況レポートプログラム62は、ステップSP71の判断において否定結果を得ると、いずれかのフラッシュメモリ・モジュール35に対する電源供給が停止されたか否かを判断する(SP73)。
【0133】
仮想プール稼働状況レポートプログラム62は、この判断において肯定結果を得ると、仮想プール稼働情報管理テーブル66におけるそのフラッシュメモリ・モジュール35に対応するエントリの起動状態欄66Dに格納されている起動状態を「オフ」に更新する。また仮想プール稼働状況レポートプログラム62は、そのフラッシュメモリ・モジュール35に対応するエントリの起動状態最終更新時刻欄66Eに格納されているそのフラッシュメモリ・モジュール35の起動状態の最終更新時刻を現在時刻に更新すると共に、累計稼働時間欄66F(図11)に格納されているそのフラッシュメモリ・モジュール35の累計稼働時間を更新する(SP74)。そして仮想プール稼働状況レポートプログラム62は、この後、このテーブル更新処理を終了する。
【0134】
他方、仮想プール稼働状況レポートプログラム62は、ステップSP73の判断において否定結果を得ると、ユーザによりレポートの出力を指示され又は一定間隔で設定された監視タイミングとなったか否かを判断する(SP75)。
【0135】
そして仮想プール稼働状況レポートプログラム62は、この判断において否定結果を得るとこのテーブル更新処理を終了する。
【0136】
これに対して仮想プール稼働状況レポートプログラム62は、ステップSP75の判断において肯定結果を得ると、仮想プール稼働情報管理テーブル66に登録された全フラッシュメモリ・モジュール35のうち、ステップSP77〜ステップSP79の処理を未だ行っていないフラッシュメモリ・モジュール35を1つ選択し、そのフラッシュメモリ・モジュール35の起動状態が「オン」であるか否かを、仮想プール稼働情報管理テーブル66の対応する起動状態欄66Dを参照して判断する(SP77)。
【0137】
そして仮想プール稼働状況レポートプログラム62は、この判断において肯定結果を得ると、仮想プール稼働情報管理テーブル66におけるそのフラッシュメモリ・モジュール35に対応する累計稼働時間欄66Fに格納されている累計稼働時間を、起動状態最終更新時刻欄66Eに格納されている起動状態の最終更新時刻から現在時刻までの時間を当該累計稼働時間に加算した値に更新すると共に、当該仮想プール稼働情報管理テーブル66におけるそのフラッシュメモリ・モジュール35に対応する起動状態最終更新時刻欄66Eに格納されている起動状態の最終更新時刻を現在時刻に更新する(SP78)。
【0138】
これに対して仮想プール稼働状況レポートプログラム62は、ステップSP77の判断において否定結果を得ると、仮想プール稼働情報管理テーブル66におけるそのフラッシュメモリ・モジュール35に対応する起動状態最終更新時刻欄66Eに格納されている起動状態の最終更新時刻を、現在時刻に更新する(SP79)。
【0139】
そして仮想プール稼働状況レポートプログラム62は、仮想プール稼働情報管理テーブル66に登録されているすべてのフラッシュメモリ・モジュール35についてステップSP77〜ステップSP79の処理を実行し終えたか否かを判断し(SP80)、否定結果を得るとステップSP76に戻って、この後、ステップSP80において肯定結果を得るまで同様の処理を繰り返す。
【0140】
そして仮想プール稼働状況レポートプログラム62は、やがて仮想プール稼働情報管理テーブル66に登録されているすべてのフラッシュメモリ・モジュール35についてステップSP77〜ステップSP79の処理を実行し終えることによりステップSP80において肯定結果を得ると、このテーブル更新処理を終了する。
【0141】
(3−3−3)レポート出力処理
図19は、図12〜図15について上述した各種処理と並行して仮想プール稼働状況レポートプログラム62により実行されるレポート出力処理の処理手順を示す。仮想プール稼働状況レポートプログラム62は、この図19に示す処理手順に従って仮想プールDPP(図4)の稼働状況をレポート出力する。
【0142】
すなわち仮想プール稼働状況レポートプログラム62は、ユーザによりレポートの出力が指示され又は定期的に実行するよう設定されたレポートの出力タイミングとなると、この図19に示すレポート出力処理を開始し、まず、図18について上述したテーブル更新処理を実行することにより、仮想プール稼働情報管理テーブル66を最新の状態に更新する(SP90)。
【0143】
続いて仮想プール稼働状況レポートプログラム62は、ステップSP90において更新した仮想プール稼働情報管理テーブル66を参照して、例えば図20に示すようなレポート画面70を管理サーバ3に表示させ、又は、管理サーバ3に接続された図示しないプリンタに印刷させる。
【0144】
このレポート画面70は、ストレージ装置4内に存在する各仮想プールDPPについて、その仮想プールの仮想プール番号と、その仮想プールDPPを構成する各フラッシュメモリ・モジュール35の物理デバイス番号と、これらフラッシュメモリ・モジュール35の稼働状態と、これらフラッシュメモリ・モジュール35の稼働率とを一覧化したものである。なお、稼働率は、次式
【数4】


により求められた数値である。
【0145】
そして仮想プール稼働状況レポートプログラム62は、この後、このレポート出力処理を終了する。
【0146】
(4)本実施の形態の効果
以上のように本実施の形態によるストレージ装置4においては、通常時にはデータの配置先を一部の論理デバイスLDEVに集中させることで未使用のフラッシュメモリ・モジュール35数を最大化し、これら未使用のフラッシュメモリ・モジュール35の電源を落とす一方、起動中の各論理デバイスLDEVのデータ書換え回数及びアクセス頻度を監視し、データ書換え回数が増大した論理デバイスLDEVに格納されているデータを書換え回数の少ない論理デバイスLDEVに移動させたり、アクセス頻度が過大になった論理デバイスLDEVに格納されているデータを他の論理デバイスに分散させるため、データの配置先を適宜変更することができ、かくしてフラッシュメモリ41の寿命を平準化しながら、通常時にはストレージ装置4全体として省電力運転を行うことができる。
【0147】
(5)他の実施の形態
なお上述の実施の形態においては、本発明を図のように構成された計算機システムのストレージ装置に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の計算機システムに広く適用することができる。
【0148】
また上述の実施の形態においては、ストレージ装置4において業務ホスト2からのデータを読み書きするための記憶領域を提供する不揮発性メモリとしてフラッシュメモリを適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の不揮発性メモリを広く適用することができる。
【0149】
さらに上述の実施の形態においては、データ消去回数閾値SHを上述の(1)式のように算出するようにした場合について述べたが、本発明はこれに限らず、この他種々の方法によりデータ消去回数閾値SHを決定するようにしても良い。
【0150】
さらに上述の実施の形態においては、上述の(2)式で与えられる状態が一定時間継続した場合に、そのRAIDグループRGに対するI/Oアクセスの頻度が高い状態にあると判定し、上述の(3)式で与えられる状態が一定時間継続した場合に、そのRAIDグループRGに対するI/Oアクセスの頻度が低い状態にあると判定するようにした場合について述べたが、本発明はこれに限らず、この他の方法によりこれらの判定を行うようにしても良い。
【0151】
さらに上述の実施の形態においては、データを一部の論理デバイスLDEVに集中させた後、起動中の論理デバイスLDEVに対するデータの書換え回数及びアクセス頻度を監視するようにした場合について述べたが、本発明はこれに限らず、これらデータの書換え回数及びアクセス頻度のうちのいずれか一方のみを監視するようにしても良い。
【産業上の利用可能性】
【0152】
本発明は、フラッシュメモリ等の不揮発性メモリを記憶媒体とするストレージ装置に適用することができる。

【特許請求の範囲】
【請求項1】
計算機システムにおいて、
ホスト装置がデータを読み書きするための記憶領域を提供するストレージ装置と、
前記ストレージ装置を管理する管理装置と
を備え、
前記ストレージ装置は、
前記記憶領域を提供する複数の不揮発性メモリと、
前記不揮発性メモリに対する前記ホスト装置からのデータの読み書きを制御するコントローラとを有し、
前記コントローラは、
前記複数の不揮発性メモリがそれぞれ提供する前記記憶領域をプールとしてまとめて管理すると共に、前記ホスト装置に対して仮想的なボリュームを提供し、当該仮想的なボリュームに対する前記ホスト装置からのデータの書込み要求に応じて前記仮想プールから前記仮想的なボリュームに前記記憶領域を動的に割り当て、割り当てた前記記憶領域に前記データを配置し、
前記管理装置は、
前記ホスト装置からのデータの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させて、未使用の前記不揮発性メモリに対する電源供給を停止させるように前記ストレージ装置を制御し、
起動中の前記不揮発性メモリが提供する記憶領域に対するデータの書換え回数及び又はアクセス頻度を監視し、
一部の前記不揮発性メモリが提供する記憶領域におけるデータの書換え回数が増大した場合には、他の前記不揮発性メモリが提供するデータの書換え回数が少ない記憶領域にデータを移動させるように前記ストレージ装置を制御し、一部の前記不揮発性メモリが提供する記憶領域に対するアクセス頻度が過多になった場合には、電源供給を停止している前記不揮発性メモリを起動することによりデータの配置先を分散させるように前記ストレージ装置を制御する
ことを特徴とする計算機システム。
【請求項2】
前記不揮発性メモリは、フラッシュメモリである
ことを特徴とする請求項1に記載の計算機システム。
【請求項3】
前記管理装置は、
未使用の前記不揮発性メモリが最大化するように、前記ホスト装置からのデータの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させる
ことを特徴とする請求項1に記載の計算機システム。
【請求項4】
前記管理装置は、
予め設定されたスケジュールを管理し、
いずれかのスケジュールの開始時間から終了時間までの間は、電源供給を停止していた前記不揮発性メモリを起動させることにより複数の前記不揮発性メモリがそれぞれ提供する記憶領域にデータを分散させるように前記ストレージ装置を制御し、
当該スケジュールの終了時間が経過すると、データの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させて、未使用の前記不揮発性メモリに対する電源供給を停止させるように前記ストレージ装置を制御する
ことを特徴とする請求項1に記載の計算機システム。
【請求項5】
前記管理装置は、
前記仮想プールの稼働状況に関する情報を前記ストレージ装置から取得し、
ユーザからの指示に応じて又は定期的に前記情報をレポート出力する
ことを特徴とする請求項1に記載の計算機システム。
【請求項6】
ホスト装置がデータを読み書きするための記憶領域をそれぞれ提供する複数の不揮発性メモリを有するストレージ装置の制御方法において、
前記ストレージ装置は、
前記複数の不揮発性メモリがそれぞれ提供する前記記憶領域をプールとしてまとめて管理すると共に、前記ホスト装置に対して仮想的なボリュームを提供し、当該仮想的なボリュームに対する前記ホスト装置からのデータの書込み要求に応じて前記仮想プールから前記仮想的なボリュームに前記記憶領域を動的に割り当て、割り当てた前記記憶領域に前記データを配置し、
前記ホスト装置からのデータの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させて、未使用の前記不揮発性メモリに対する電源供給を停止させるように前記ストレージ装置を制御する第1のステップと、
起動中の前記不揮発性メモリが提供する記憶領域に対するデータの書換え回数及び又はアクセス頻度を監視する第2のステップと、
一部の前記不揮発性メモリが提供する記憶領域におけるデータの書換え回数が増大した場合には、他の前記不揮発性メモリが提供するデータの書換え回数が少ない記憶領域にデータを移動させるように前記ストレージ装置を制御し、一部の前記不揮発性メモリが提供する記憶領域に対するアクセス頻度が過多になった場合には、電源供給を停止している前記不揮発性メモリを起動することによりデータの配置先を分散させるように前記ストレージ装置を制御する第3のステップと
を備えることを特徴とするストレージ装置の制御方法。
【請求項7】
前記不揮発性メモリは、フラッシュメモリである
ことを特徴とする請求項6にストレージ装置の制御方法。
【請求項8】
前記第1のステップでは、
未使用の前記不揮発性メモリが最大化するように、前記ホスト装置からのデータの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させる
ことを特徴とする請求項6に記載のストレージ装置の制御方法。
【請求項9】
前記第1乃至第3のステップの処理と並行して、
予め設定されたスケジュールを管理し、
いずれかのスケジュールの開始時間から終了時間までの間は、電源供給を停止していた前記不揮発性メモリを起動させることにより複数の前記不揮発性メモリがそれぞれ提供する記憶領域にデータを分散させるように前記ストレージ装置を制御し、
当該スケジュールの終了時間が経過すると、データの配置先を一部の前記不揮発性メモリが提供する記憶領域に集中させて、未使用の前記不揮発性メモリに対する電源供給を停止させるように前記ストレージ装置を制御する
ことを特徴とする請求項6に記載のストレージ装置の制御方法。
【請求項10】
前記第1乃至第3のステップの処理と並行して、
前記仮想プールの稼働状況に関する情報を前記ストレージ装置から取得し、
ユーザからの指示に応じて又は定期的に前記情報をレポート出力する
ことを特徴とする請求項6に記載のストレージ装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2011−128895(P2011−128895A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−286814(P2009−286814)
【出願日】平成21年12月17日(2009.12.17)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】