(57)【要約】【課題】フラッシュメモリを記憶領域として利用するストレージシステムの管理を容易にする。【解決手段】フラッシュメモリチップを備えるストレージシステムのコントローラは、フラッシュメモリチップの余剰容量値を管理し、パリティグループの定義または内部ＬＵの定義または論理ユニットの定義の少なくとも一つの定義に基いて、管理サーバに余剰容量値に基づく値を送信する。管理サーバは受信した余剰容量値に基く値を用いてストレージシステムの状態を表示する。【選択図】図３
2011003111.tif 000002
【特許請求の範囲】
【請求項１】
計算機と、
フラッシュメモリデバイスと、ストレージ構成情報を有するストレージコントローラと、キャッシュメモリと、を有し、前記フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、
前記ストレージシステムと前記計算機とを管理する管理システムと、
を有する情報システムであって、
前記ストレージコントローラは、前記フラッシュメモリデバイスの余剰領域の容量に基く値である第一の余剰容量値をストレージ構成情報に記憶し、前記ストレージ構成情報に基いてストレージ管理情報を生成し、前記ストレージ管理情報を前記管理システムへ送信し、
前記管理システムは、前記ストレージ管理情報を受信し、前記ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を表示する、
ことを特徴とした情報システム。
【請求項２】
請求項１記載の情報システムであって、
前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記論理ユニットと前記パリティグループとの対応を示す情報と、を前記ストレージ構成情報に格納し、
前記ストレージコントローラは、前記パリティグループの定義に基いて、前記論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニット対応する前記パリティグループに属する前記フラッシュメモリデバイスに、分散または冗長化して書き込み、
前記管理用の余剰容量値の表示は、前記パリティグループに対する第二の余剰容量値、又は前記第二の余剰容量値に表示用の変換を行った値、の表示である、
ことを特徴とした情報システム。
【請求項３】
請求項２記載の情報システムであって、
前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、
前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記パリティグループに対する前記第二の余剰容量値を算出する、
ことを特徴とした情報システム。
【請求項４】
請求項２記載の情報システムであって、
前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記パリティグループに対する前記第二の余剰容量値を算出し、
前記ストレージ管理情報は、前記第二の余剰容量値を含む、
ことを特徴とした情報システム。
【請求項５】
請求項１記載の情報システムであって、
前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記パリティグループを用いて定義する内部論理ユニットとの対応を示す情報と、前記内部論理ユニットと前記論理ユニットとの対応を示す情報と、を前記ストレージ構成情報に格納し、
前記ストレージコントローラは、前記論理ユニットを指定したデバイス問い合わせリクエストの応答として、前記指定された論理ユニットに対応する内部論理ユニットの識別情報を送信し、
前記ストレージコントローラは、前記パリティグループの定義及び前記内部論理ユニットの定義に基き、前記指定された論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニットに対応する前記パリティグループに属する、前記フラッシュメモリデバイスに分散または冗長化して書き込み、
前記管理用の余剰容量値の表示は、前記内部論理ユニットに対する第三の余剰容量値、又は前記第三の余剰容量値に表示用の変換を行った値、の表示である、
ことを特徴とした情報システム。
【請求項６】
請求項５記載の情報システムであって、
前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、
前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記内部論理ユニットに対する前記第三の余剰容量値を算出する、
ことを特徴とした情報システム。
【請求項７】
請求項５記載の情報システムであって、
前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記内部論理ユニットに対する前記第三の余剰容量値を算出し、
前記ストレージ管理情報は、前記第三の余剰容量値を含む、
ことを特徴とした情報システム。
【請求項８】
請求項１記載の情報システムであって、
前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、
前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、
前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出する、
ことを特徴とした情報システム。
【請求項９】
請求項１記載の情報システムであって、
前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、
前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出し、
前記ストレージ管理情報は、前記第四の余剰容量値を含む、
ことを特徴とした情報システム。
【請求項１０】
請求項１記載の情報システムであって、
前記管理システムは、前記管理用の余剰容量値を評価するポリシーを格納し、
前記管理システムは、前記ストレージ管理情報と前記ポリシーに基いて、前記論理ユニットに対応する前記フラッシュメモリデバイスの余剰領域が不足と判断した前記論理ユニットを低更新頻度用途と表示又は管理する、
ことを特徴とした情報システム。
【請求項１１】
請求項１０記載の情報システムであって、
前記計算機はアーカイブプログラムを実行し、
前記管理システムは、前記低更新頻度用途と判断した前記論理ユニットを前記アーカイブプログラムに割り当てる割り当てリクエストを、前記計算機に送信する、
ことを特徴とした情報システム。
【請求項１２】
請求項１０記載の情報システムであって、
前記管理システムは、前記低更新頻度用途と判断した論理ユニットを移行先とするデータマイグレーションリクエストを、前記ストレージシステムに送信する、
ことを特徴とした情報システム。
【請求項１３】
計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムであって、
前記管理システムは
前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信するポートと、
ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納したメモリと、
前記ポートを用いてストレージシステムを監視するプロセッサと、
前記管理側ストレージ構成情報を用いてストレージシステムの状態を表示する入出力装置と、
を有し、
前記プロセッサは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、
前記入出力装置は前記管理用の余剰容量値を表示する、
ことを特徴とした情報システム。
【請求項１４】
請求項１３記載の管理システムであって、
前記管理側ストレージ構成情報は、前記ストレージシステムに定義されたパリティグループに対する第二の余剰容量値を格納し、
前記管理用の余剰容量値は、前記パリティグループに対する第二の余剰容量値である、
ことを特徴とした管理システム。
【請求項１５】
計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムにおける管理方法であって、
前記管理システムは、前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信し、
前記管理システムは、ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納し、
前記管理システムは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、
前記管理システムは、前記管理システムが有する入出力装置を用いて前記管理用の余剰容量値を表示する、
ことを特徴とした情報システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の記憶デバイスを備えたストレージシステム及びストレージシステムの管理サーバに関する。
【背景技術】
【０００２】
従来、情報システムで用いられるストレージシステムは記憶媒体としてＨＤＤ（ハードディスクドライブ）を採用した製品が普及している。
【０００３】
一方で、近年、フラッシュメモリのビットコストが低下しつつあることから、フラッシュメモリが、有力な記憶デバイスとなりつつある。特許文献１に開示の技術では、ストレージシステムが、複数のフラッシュメモリを備えたフラッシュメモリデバイスを複数個と、複数のフラッシュメモリデバイスのうち、外部装置から受信したＩ／Ｏリクエストで指定のアクセス先から特定されるフラッシュメモリデバイスにアクセスするＩ／Ｏ処理制御部を有するコントローラとを備え、さらに同一の内部構成を有するフラッシュメモリデバイスでパリティグループを構成することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公開公報第２００７／０２８３０７９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では高信頼又は高性能なフラッシュメモリを利用したストレージシステムを提供することができるが、ストレージシステムの管理者はフラッシュメモリであることを考慮した管理が困難である。
【０００６】
本発明は、フラッシュメモリを記憶領域として利用するストレージシステムの管理を容易にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明におけるフラッシュメモリチップを備えるストレージシステムのコントローラは、フラッシュメモリチップの余剰容量値を管理し、パリティグループの定義または内部ＬＵの定義または論理ユニットの定義の少なくとも一つの定義に基いて、管理サーバに余剰容量値に基づく値を送信する。管理サーバは受信した余剰容量値に基く値を用いてストレージシステムの状態を表示する。
【発明の効果】
【０００８】
本発明によれば、フラッシュメモリを記憶領域として利用するストレージシステムの管理を容易にすることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の一実施形態に係る情報システムのハードウェア構成の一例を示す図である。
【図２】図２は、ＦＭＤのハードウェア構成及びソフトウェア構成のそれぞれの一例について示した図である。
【図３】図３は、本実施形態の概要を示す図である。
【図４】図４は、ホストとストレージシステムのそれぞれに存在するコンピュータプログラムと情報を示す図である。
【図５】図５は、ストレージコントローラにて保存されるＦＭＤ情報の例を示す図である。
【図６】図６は、ＰＧ構成情報の例を示す図である。
【図７】図７は、内部ＬＵ構成情報の例を示す図である。
【図８】図８は、ＲＡＩＤ１＋０のパリティグループのアドレス空間を示す。
【図９】図９は、ＲＡＩＤ５のパリティグループのアドレス空間を示す。
【図１０】図１０は、図８のアドレス空間でのキャッシュ使用例を示す。
【図１１】図１１は、図９のアドレス空間でのキャッシュ使用例の一部を示す。
【図１２】図１２は、図９のアドレス空間でのキャッシュ使用例の残りの一部を示す。
【図１３】図１３は、ＬＵパス情報の例を示す。
【図１４】図１４は、構成制御プログラムにて実行される、パリティグループの定義処理について示したフローである。
【図１５】図１５は、構成制御プログラムにて実行される、内部ＬＵの定義処理について示したフローである。
【図１６】図１６は、構成制御プログラムにて実行される、ＬＵのパス定義処理について示したフローである。
【図１７】図１７は、Ｉ／Ｏ処理プログラムがライトリクエストを受信した場合に行われる処理のフローである。
【図１８】図１８は、キャッシュ制御プログラムが繰り返し実行するパリティ作成とデステージングの処理を示す。
【図１９】図１９は、Ｉ／Ｏ処理プログラムがリードリクエストを受信した場合に行われる処理の流れの一例を示す。
【図２０】図２０は、アドレス空間の階層構造の一例を示す。
【図２１】図２１は、ＦＭＤのバリエーションの一つであるＳＦＭＤの例を示す。
【図２２】図２２は、ＦＭＤのバリエーションの一つである複数記憶領域提供ＦＭＤの例を示す。
【図２３】図２３は、図２２の複数記憶領域提供ＦＭＤのＦＭＤにより構成されたサブパリティグループの一例を示す。
【図２４】図２４は、管理サーバのソフトウェア構成の一例について示した図である。
【図２５】図２５は、管理側ＦＭＤ情報の例を示した図である。
【図２６】図２６は、管理側ＰＧ構成情報の例を示した図である。
【図２７】図２７は、管理側内部ＬＵ構成情報の例を示した図である。
【図２８】図２８は、管理側ＬＵパス情報の例を示した図である。
【図２９】図２９は、管理側代替候補ＦＭＤ情報の例を示した図である。
【図３０】図３０は、管理サーバにおける第１の表示例である。
【図３１】図３１は、管理サーバにおける第２の表示例である。
【図３２】図３２は、管理サーバにおける第３の表示例である。
【図３３】図３３は、管理サーバにおける第４の表示例である。
【図３４】図３４は、管理サーバにおける第５の表示例である。
【図３５】図３５は、管理サーバにおける第６の表示例である。
【図３６】図３６は、管理サーバにおける第７の表示例である。
【図３７】図３７は、管理サーバにおける第８の表示例である。
【図３８】図３８は、余剰容量ポリシー情報の例を示した図である。
【図３９】図３９は、論理ユニット運用情報の例を示した図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施の形態を説明する。なお、以後の説明では「ｘｘｘテーブル」、「ｘｘｘリスト」、「ｘｘｘＤＢ」、「ｘｘｘキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、ＤＢ、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ｘｘｘテーブル」、「ｘｘｘリスト」、「ｘｘｘＤＢ」、「ｘｘｘキュー」等について「ｘｘｘ情報」と呼ぶことがある。さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いるが、これらについてはお互いに置換が可能である。さらに、データ内容を示すために「情報」という表現を用いているが、他の表現形式であってもよい。
【００１１】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ又はストレージシステム等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００１２】
＜１．情報システムの構成＞。
【００１３】
図１は、本発明の一実施形態に係る情報システムのハードウェア構成の一例を示す図である。
【００１４】
情報システムは、例えば、ストレージシステム１０００、ホストコンピュータ（以後ホストと省略する）１１００及び管理サーバ１２００から構成される。ストレージシステム１０００、ホスト１１００及び管理サーバ１２００の数は、それぞれ、１以上とすることができる。ストレージシステム１０００とホスト１１００は、Ｉ／Ｏネットワーク１３００を介して、相互に接続される。ストレージシステム１０００と管理サーバ１２００及びホスト１１００は、管理ネットワーク（図示せず）またはＩ／Ｏネットワーク１３００を介して、相互に接続される。
【００１５】
ホスト１１００には、ホスト内部ネットワーク１１０４があり、そのネットワーク１１０４に、プロセッサ（図中ではＰｒｏｃと略記）１１０１と、メモリ（図中ではＭｅｍと略記）１１０２と、Ｉ／Ｏポート（図中ではＩ／Ｏ  Ｐと略記）１１０３とが接続されている。
【００１６】
管理サーバ１２００には、管理サーバ内部ネットワーク１２０４があり、そのネットワーク１２０４に、プロセッサ（図中ではＰｒｏｃと略記）１２０１と、メモリ（図中ではＭｅｍと略記）１２０２と、管理ポート（図中ではＭ  Ｐと略記）１２０３と、入出力装置１２０５（図中ではＩ／Ｏデバイスと略記）とが接続されている。入出力装置の例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外の装置であってもよい。また、入出力装置の代替としてシリアルインターフェースやイーサーネットインターフェースを入出力装置とし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力装置での入力及び表示を代替してもよい。
【００１７】
また、管理サーバ１２００は、管理操作リクエストを、ユーザー（例えば管理サーバ１２００のオペレーター、単に管理者と呼ぶこともある）から受付け、その受け付けた管理操作リクエストを、ストレージシステム１０００に送信することができる。管理操作リクエストは、ストレージシステム１０００の操作のためのリクエストであり、例えば、パリティグループ作成リクエスト、内部ＬＵ作成リクエスト、及びパス定義リクエストがある。それぞれのリクエストについては、後述する。
【００１８】
以後、情報システムを管理し、本願発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理サーバ１２００が表示用情報を表示する場合は管理サーバ１２００が管理システムである、また、管理サーバ１２０と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機も含め）が管理システムである。
【００１９】
Ｉ／Ｏネットワーク１３００は、ファイバーチャネルによる接続が第一に考えられるが、それ以外でも、ＦＩＣＯＮ（ＦＩｂｒｅ  ＣＯＮｎｅｃｔｉｏｎ：登録商標）やＥｔｈｅｒｎｅｔ（登録商標）とＴＣＰ／ＩＰとｉＳＣＳＩの組み合わせや、ＥｔｈｅｒｎｅｔとＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）やＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等のネットワークファイルシステムの組み合わせ等が考えられる。さらに、Ｉ／Ｏネットワーク１３００は、Ｉ／Ｏリクエストを転送可能な通信装置であればこれ以外でもよい。また、Ｉ／Ｏネットワーク１３００と管理ネットワークは同じネットワークであってもよい。
【００２０】
ストレージシステム１０００は、コントローラ（図中はＣＴＬと表記）１０１０と、キャッシュメモリ（図中はＣａｃｈｅ／Ｓｈａｒｅｄ  Ｍｅｍと表記）１０２０と、複数のフラッシュメモリデバイス（Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ：以後ＦＭＤと省略することがある）１０３０とを備える。  なお、典型的にはＦＭＤは保守交換部品としてストレージシステムから抜き差し可能なデバイスであることが考えられるが、そうでなくてもよい。好ましい形態としては、コントローラ１０１０及びキャッシュメモリ１０２０は、それぞれ複数のコンポーネントから構成することが考えられる。なぜなら、コンポーネント単体に障害が発生して閉塞した（利用不可能となったことを指す）場合でも、残りのコンポーネントを用いてリードやライトに代表されるＩ／Ｏリクエストを引き続き受けることができるためである。
【００２１】
コントローラ１０１０は、ストレージシステム１０００の動作を制御する装置（例えば回路基盤）である。コントローラ１０１０には、内部ネットワーク１０１６があり、そのネットワーク１０１６に、Ｉ／Ｏポート１０１３、キャッシュポート（図中ではＣ  Ｐと表記）１０１５、管理ポート（図中ではＭ  Ｐと表記）１０１６、バックエンドポート（図中ではＢ／Ｅ  Ｐと表記）１０１４、プロセッサ（例えばＣＰＵ）１０１１及びメモリ１０１２が接続されている。コントローラ１０１０同士とキャッシュメモリ１０２０は、ストレージ内部ネットワーク１０５０にて相互に接続される。また、コントローラ１０１０と各ＦＭＤ１０３０は、複数のバックエンドネットワーク１０４０にて相互接続される。なお、バックエンドネットワークとしてＩ／Ｏネットワーク１３００で紹介した接続媒体及びプロトコルを採用してもよいが、ＳＡＳ、ＳＡＴＡ、またはＰＣＩ−Ｅｘｐｒｅｓｓ等の他の媒体及びプロトコルであってもよい。
【００２２】
なお、ホスト１１００及びストレージシステム１０００の内部のネットワークは、好ましくは、Ｉ／Ｏポート１０１３の有する転送帯域より広帯域であり、また、バスやスイッチ型のネットワークによって全てまた一部が代替されてもよい。また、図１では、Ｉ／Ｏポート１０１３は、コントローラ１０１０に一つ存在することになっているが、実際には、複数のＩ／Ｏポート１０１３がコントローラ１０１０に存在してもよい。
【００２３】
以上のハードウェア構成によって、ストレージシステム１０００のＦＭＤ１０３０に保存された全てまたは一部のデータを、ホスト１１００が読出したり書き込んだりすることができ、管理サーバ１２００が情報システムを管理できるようになる。
【００２４】
図４は、ホスト１１００とストレージシステム１０００のそれぞれに存在するコンピュータプログラムと情報を示す図である。なお、管理サーバ１２００が有するコンピュータプログラムと情報については後ほど記す。
【００２５】
コントローラ１０１０では、プロセッサ１０１１とメモリ１０１２とＩ／Ｏポート１０１３とバックエンドポート１０１４とキャッシュポート１０１５とのうちの少なくとも一つによって、ＦＭＤ情報４０５０とＰＧ構成情報４０６０と内部ＬＵ構成情報４０７０とＬＵパス情報４０８０を保持し、且つ、Ｉ／Ｏ処理プログラム４０１０とキャッシュ制御プログラム４０２０と構成制御プログラム４０３０を実行する。なお、コントローラ１０１０で保持される情報の一部または全ては、ストレージシステム１０００内部でコントローラ１０１０外部の領域（例えばキャッシュメモリ１０２０や、ＦＭＤ１０３０の一部）にて保持されてもよい。
【００２６】
以下、プログラムが主語になる場合は、実際にはそのプログラムを実行するプロセッサによって処理が行われるものとする。
【００２７】
Ｉ／Ｏ処理プログラム４０１０は、ホスト１１００からＩ／Ｏリクエスト（例えばリードリクエスト又はライトリクエスト）を受け、そのＩ／Ｏリクエストに従う処理を実行する。具体的には、例えば、Ｉ／Ｏ処理プログラム４０１０は、キャッシュメモリ１０２０に保存されたデータ（リードリクエストに従う読出し対象データ）を、ホスト１１００へ転送したり、ホスト１１００から受信したデータ（ライトリクエストに従う書込み対象データ）を、キャッシュメモリ１０２０へ保存する。なお、ホスト１１００からのＩ／Ｏリクエストがブロックアクセス形式の場合は、Ｉ／Ｏ処理プログラム４０１０は、アクセス対象である論理ボリューム（例えばＳＣＳＩでの論理ユニット（ＬＵと略すことがある））を提供するための処理も行うことができる。また、ホスト１１００からのＩ／Ｏリクエストがファイル形式の場合は、Ｉ／Ｏ処理プログラム４０１０は、アクセス対象であるファイルやディレクトリを提供するための処理を行うことができる。なお、Ｉ／Ｏ処理プログラム４０１０は、前記以外のＩ／Ｏリクエスト（例えば、データベースクエリーやＣＫＤ形式のＩ／Ｏリクエスト）でのアクセスを提供するために必要な処理を行っても良い。
【００２８】
キャッシュ制御プログラム４０２０は、Ｉ／Ｏ処理プログラム４０１０と連動または自律的に、ＦＭＤ１０３０が保存するデータをキャッシュメモリ１０２０へコピー（移動を含む）したり、キャッシュメモリ１０２０が保存するデータをＦＭＤ１０３０へコピーしたりすることができる。キャッシュ制御プログラム４０２０は、さらに、信頼性を向上させるための処理として、例えば、ＲＡＩＤに代表される冗長化データを、キャッシュメモリ１０２０に保存されたデータから作成する及び／又は更新することを行ってもよい。
【００２９】
構成制御プログラム４０３０は、構成変更及び／又は構成参照のリクエストに応答して、ＦＭＤ情報４０５０、ＰＧ構成情報４０６０、内部ＬＵ構成情報４０７０及びＬＵパス情報４０８０のうちの少なくとも一つを参照及び／又は更新する処理を行うことができる。構成変更及び／又は構成参照のリクエストは、例えば、管理サーバ１２００、ホスト１１００及びその他コンピュータのうちの少なくとも一つから発行される。なお、構成制御プログラム４０３０は後述の管理サーバ１２００から他のリクエストを受信し、当該リクエストに対して応答を行う。
【００３０】
ＦＭＤ情報４０５０は、ＦＭＤ１０３０に関する情報を含む。ＰＧ構成情報４０６０は、パリティグループ（Ｐａｒｉｔｙ  Ｇｒｏｕｐ：  以後ＰＧと省略することがある）の構成情報を含む。内部ＬＵ構成情報４０６０は、パリティグループに含まれるＦＭＤの一部または全ての領域を内部的な論理ユニット（以後、「内部論理ユニット」や「内部ＬＵ」と省略する）として構成するための情報を含む。ＬＵパス情報は、内部ＬＵとＩ／Ｏポート１０１３がホスト１１００に対して提供するＬＵとの間の対応関係を表す情報を含む。なお、以後の説明では、内部ＬＵは複数のパリティグループの領域に跨らない場合を中心に説明するが、本発明はこれに限定されるものではない。内部ＬＵは、複数のパリティグループの領域を跨ってＣｏｎｃａｔｅｎａｔｅやストライピングを伴って構成されてもよい。
【００３１】
内部ＬＵは、一つの記憶領域に対して複数のポートを対応付ける場合や、一時的にでもすべてのポートとの対応付けが無い場合に備えて存在する論理的な存在である。また、論理ユニットに対する容量又はブロックサイズを問い合わせるリクエストがホスト１０００又は管理サーバ１２００から受信した場合、コントローラ１０１０は、問い合わせリクエストで指定された論理ユニットに対応する内部ＬＵの容量またはブロックサイズを送信してもよい。同様に、論理ユニットに対する識別子を問い合わせるリクエストがホスト１０００又は管理サーバ１２００から受信した場合、コントローラ１０１０は論理ユニットに割り当てられたＬＵＮに基く値を送信したり、又は論理ユニットに対応する内部論理ユニットの識別子に基く値を送信してもよい。
【００３２】
なお、ＦＭＤ情報４０５０、内部ＬＵ構成情報４０６０、内部ＬＵ構成情報４０７０、及びＬＵパス情報４０８０の一つ以上または全てをまとめてストレージ構成情報と呼ぶことがある。またストレージ構成情報には他の情報が含まれても良い。
【００３３】
ホスト１１００では、プロセッサ１１０１とメモリ１１０２とＩ／Ｏポート１１０３の少なくとも一つによって、ＯＳ４１０１とファイルシステム４１０２とアプリケーションプログラム（以後アプリケーションと省略する）４１０３の少なくとも一つが実行される。
【００３４】
アプリケーション４１０３は、ＯＳ４１０１やファイルシステム４１０２に依頼することで、ファイル等のデータを読み書きしつつ、ユーザーや他のコンピュータからのリクエストに応じて業務処理等を行うプログラム（例えばＷｅｂサーバプログラムやデータベース管理プログラム）である。
【００３５】
ＯＳ４１０１は、アプリケーション４１０３やファイルシステム４１０２から発行されるＩ／Ｏリクエストを、ストレージシステム１０００のＩ／Ｏポート１０１３への送信や、データをストレージシステム１０００からの受信を行う。ファイルシステム４１０２は、アプリケーションからのファイル形式のＩ／Ｏリクエストを、ブロック形式のＩ／Ｏリクエストやネットワークファイルシステムプロトコル形式のＩ／Ｏリクエストに変換してＯＳ４１０１へＩ／Ｏリクエストの転送を依頼することができる。なお、ＯＳ４１０１及びファイルシステム４１０２はこれら以外の処理を含んでも良い。
【００３６】
なお、ホスト１１００は、これ以外のプログラムが実行されていてもよい。また、ホスト１１００は、ブロックＩ／ＯリクエストやファイルＩ／Ｏリクエスト以外にデータベースクエリーやＣＫＤ方式のリクエストを送信及び受信してもよい。また、ホスト１１００やコントローラ１０１０で実行されるＯＳやファイルシステムを含めたプログラムは、一部または全ての処理をハードウェアにて実装されてもよい。
【００３７】
図２４は管理サーバ１２００に存在するコンピュータプログラムと情報を示す図である。メモリ１２１０は、システム管理プログラム１２０１０、管理側ＦＭＤ情報１２０５０、管理側ＰＧ構成情報１２０６０、管理側内部ＬＵ構成情報１２０７０、管理側ＬＵパス情報１２０８０、管理側代替候補ＦＭＤ情報１２０９０、余剰容量ポリシー情報１２１００、及び論理ユニット運用情報１２１１０を格納する。なおメモリ１２１０はこれ以外のデータを格納してもよく、上記情報の一部の格納を省略してもよい。
【００３８】
システム管理プログラム１２０１０は、ストレージシステム１０００又はホスト１１００を管理するプログラムである。
管理側ＦＭＤ情報１２０５０は、ストレージシステム１０００に設置されたＦＭＤ１０３０についての情報を格納する。
管理側ＰＧ構成情報１２０６０は、ストレージシステム１０００に定義されたパリティグループについての情報を格納する。
管理側内部ＬＵ構成情報１２０７０は、ストレージシステム１０００に定義された内部ＬＵについての情報を格納する。
管理側ＬＵパス情報１２０８０は、ストレージシステム１０００に定義された論理ユニットについての情報を格納する。
管理側代替候補ＦＭＤ情報１２０９０は、ストレージシステム１０００の代替候補ＦＭＤの情報を格納する。
余剰容量ポリシー情報は１２１００は、ＦＭＤ１０３０の余剰容量値に基く運用ポリシーを格納する。
論理ユニット運用情報１２１１０は、論理ユニットの運用に関する情報を格納する。
【００３９】
なお、管理サーバ１２００は、ＣＤ−ＲＯＭ等の媒体を用いて、システム管理プログラム１２０１０をメモリ１２１０へ格納されてもよい。また、管理サーバ１２００は、配布計算機から配布されたシステム管理プログラム１２０１０をメモリ１２１０へ格納してもよく、または配布計算機から配布されたインストールプログラムを実行することでシステム管理プログラム１２０１０をメモリ１２１０へ格納してもよい。
【００４０】
なお、管理側ＦＭＤ情報１２０５０、管理側内部ＬＵ構成情報１２０６０、管理側内部ＬＵ構成情報１２０７０、及び管理側ＬＵパス情報１２０８０の一つ以上または全てをまとめて管理側ストレージ構成情報と呼ぶことがある。また管理側ストレージ構成情報には他の情報が含まれても良い。
【００４１】
＜２．本実施形態の概要＞。
フラッシュメモリ（以後ＦＭと省略することがある）は、ブロック型の記憶デバイスであり、ページ及びイレースブロック（またはブロック）と呼ばれる単位でデータ管理が行われる。具体的に述べると、フラッシュメモリに対する読み書きは以下の３つの操作で実現される。
（操作１）ページを指定対象としたデータ読み込み操作
（操作２）ページを指定対象としたデータ書き込み操作
（操作３）ブロックを指定対象としたデータ消去操作
なお、ブロックは複数のページをまとめた単位である。
【００４２】
フラッシュメモリはＨＤＤと比較してヘッドシークや回転待ちが存在しないため、特にランダムアクセスに適している。しかし、フラッシュメモリはデータ書き込み又は消去頻度に関連してデータ格納に支障をきたすことがある（ただし、データ格納に支障を及ぼす要因はこれ以外にも存在する）。例えば、あるページに対する書き込み又はイレースが所定の回数を超えた場合、当該ページでのデータ格納が失敗する確率が高くなることが指摘されている。
【００４３】
こうした課題を克服する技術として、ウェアレベリングと呼ばれる特許文献１記載の書き換え対策技術がある。ウェアレベリング技術では、フラッシュメモリを利用した記憶デバイスであるＦＭＤに対して書き込み局所性のあるアクセスを受け続ける場合に、フラッシュメモリを制御するコントローラは、ホスト等外部からからアクセスで指定されたアドレスを、ＦＭＤが有するアドレス変換情報を用いてフラッシュメモリチップのページアドレス又はブロックアドレスに変換して、フラッシュメモリチップのページに対して読み込み又は書き込みを行ったり、またはブロックに対して消去を行う。そして、フラッシュメモリを制御するコントローラは、ＦＭＤが外部に提供するアドレス空間の特定アドレスが常に特定のフラッシュメモリのページ又はブロックと対応することがないように制御を行う。
【００４４】
その一方でＦＭＤは、デバイスとしてコントローラ１０１０に提供する記憶容量（以後、提供容量または提供記憶容量と呼ぶ）とこれを実現するために必要となる管理情報や冗長コード格納で必要な容量の記憶領域に加えて、ある程度のページまたはブロックに支障が発生した場合に備えて、余剰記憶領域（以後、余剰領域と呼ぶ）を持つ。この余剰領域を確保することで、仮に一部のページ又はブロックで障害が発生した場合でもその時点で余剰領域とされたページまたはブロックを割り当てなおすことでＦＭＤは提供容量分のデータ格納ができるよう工夫している。なお、余剰領域は障害が発生するまでは割り当てやウェアレベリングで利用されない場合や、障害発生前からウェアレベリングで利用されている（別な言い方をすれば、たまたま余剰領域として管理されていただけ）のどちらでも構わない。
【００４５】
なお、ストレージ装置におけるブロックはホストからの最小アクセス単位であることを指すことから、混乱を防ぐために、以後の説明ではフラッシュメモリチップのページをブロック、ブロックをセグメントと呼ぶことにする。
【００４６】
このようにしてＦＭＤを用いたストレージシステムはホストからのアクセスリクエストを処理しているが、ストレージシステムを管理する管理者からはフラッシュメモリの特性を考慮した管理を行うことが困難であった。以下がその理由の一例である。
【００４７】
（理由１）ウェアレベリングを用いたとしても、フラッシュメモリのブロックまたはセグメント障害によるＦＭＤの障害が発生する一方で、ウェアレベリング処理によってこれら障害は隠蔽されてしまうため、管理者はＦＭＤの障害状況を分析することが容易でない。さらに、ストレージシステムはＦＭＤの外部でもＲＡＩＤ処理に代表されるデータ格納領域の統合と分割、又は／および一つのデータ格納領域を分割して論理ユニットとして提供する、等の複数のＦＭＤを用いて複数の記憶領域をホストに提供するための複雑なアドレス変換をストレージシステム内部で行っている。さらに、ストレージシステムの実現方法によってはスペアリングやデータマイグレーション等によってアドレス変換内容が変化し、場合によってはストレーシステムが自律的に変化を行うこともあるため、管理者によるＦＭＤの障害状況の分析はより容易でなくなる。
【００４８】
（理由２）余剰領域が残り少ないＦＭＤであっても書き込みを行わない用途であれば有効活用できるが、現在は余剰領域の容量（すなわち余剰容量）を考慮したＦＭＤの使い分けが出来ていない。
【００４９】
図３は本発明の概要を示した図である。
【００５０】
図３ではストレージシステム１０００が５つのＦＭＤ１０３０−１〜１０３０−５が備えられる場合を例として説明する。ここで、ＦＭＤ１０３０−１とＦＭＤ１０３０−２とＦＭＤ１０３０−５は内部に１つのフラッシュメモリチップ（以後、ＦＭＣと呼ぶことがある）を有し、ＦＭＤ１０３０−３とＦＭＤ１０３０−４は内部に２つのＦＭＣを有すものとする。また、ＦＭＤ１０３０−とＦＭＤ１０３０−２とでパリティグループ１を構成し、ＦＭＤ１０３０−３とＦＭＤ１０３０−４とでパリティグループ２を構成する。ＦＭＤ１０３０−５はＦＭＤ１０３０−１乃至１０３０−４に障害が発生した時に代替のＦＭＤとして用いる代替候補ＦＭＤである。ＬＵ１乃至ＬＵ３はホストがアクセス対象とするＬＵであり、ＬＵ１がパリティグループ１に、ＬＵ２及びＬＵ３がパリティグループ２にそれぞれ対応しているものとする。
【００５１】
ＦＭＤ１０３０−１、ＦＭＤ１０３０−２、及びＦＭＤ１０３０−５は一つのＦＭＣを有し、ＦＭＤ１０３０−３及びＦＭＤ１０３０−４のそれぞれは二つのＦＭＣを有する。図４の各ＦＭＣの中に描かれた７つの四角形はセグメントを指し、「×」がついた四角形は障害が発生してデータ格納には不適なセグメントを指している。なお、障害管理の単位がブロックの場合はＦＭＣの中の四角形をブロックに置き換えればよい。
【００５２】
本例に於けるＦＭＤ１０３０−１乃至１０３０−５の状況は以下の通りである。
【００５３】
１セグメントのサイズ： ５０ＧＢ
ＦＭＤ１０３０−１： 提供容量＝２００ＧＢ、余剰容量＝１５０ＧＢ、障害容量＝０ＧＢ
ＦＭＤ１０３０−２： 提供容量＝２００ＧＢ、余剰容量＝５０ＧＢ、障害容量＝１００ＧＢ
ＦＭＤ１０３０−３： 提供容量＝２００ＧＢ、余剰容量＝１５０ＧＢ、障害容量＝３５０ＧＢ
ＦＭＤ１０３０−４： 提供容量＝２００ＧＢ、余剰容量＝３５０ＧＢ、障害容量＝１５０ＧＢ
ＦＭＤ１０３０−５： 提供容量＝２００ＧＢ、余剰容量＝１００ＧＢ、障害容量＝５０ＧＢ
ＬＵ１：ホスト提供容量＝１００ＧＢ
ＬＵ２：ホスト提供容量＝５０ＧＢ
ＬＵ３：ホスト提供容量＝１５０ＧＢ
なお、上記例ではセグメントサイズを大きな値にしているが、当然ながら他のサイズであってもよい。例えば、本願発明時点では１セグメントは数キロ〜数十キロバイト（又はビット）であり、典型的にはホストがストレージにアクセスするＳＣＳＩ等の通信プロトコルで指定可能なブロックの規格上の最小サイズである５１２バイトよりも大きな値である。同様にパリティグループ、ＦＭＤ、ＬＵ、及びＦＭＣの数の関係は１対１、多対１、１対多、多対多のいずれであっても良く、ここの存在ごとにそれぞれの数の関係が異なっていても良い。なお、容量効率及び性能の観点から考えた場合、パリティグループを構成するＦＭＤ１０３０同士で提供容量及びＦＭＣの数、ブロックサイズ、セグメントサイズ及びＦＭＤコントローラの特性が同一または近いことが望ましいが、必ずしもそうでなくてもよい。さらに、パリティグループに対応するＦＭＤ１０３０の数、提供容量、ＦＭＤ内部構成などの少なくとも一つがパリティグループ１とパリティグループ２で異なってもよい。当然ながら、各ＦＭＤ１０３０が内蔵するＦＭＣのブロックサイズ、セグメントサイズ、容量が異なっていてもよく、ＦＭＣの数も異なっても良い。
【００５４】
コントローラ１０１０は前述の通り、以下の情報を有する。
ＦＭＤ情報４０５０：少なくとも各ＦＭＤの提供容量及び余剰容量値を含む。
ＰＧ構成情報４０６０：少なくとも各ＦＭＤとパリティグループの対応関係を含む。
内部ＬＵ構成情報及びＬＵパス情報を含む情報：少なくとも各パリティグループと論理ユニットとの対応関係を含む。
【００５５】
管理サーバ１２００は、このストレージシステムの構成情報に基いて、論理ユニットに対するフラッシュメモリの余剰容量値（例えば、余剰容量をバイトやビットで表した値や、ブロックやセグメント数、余剰容量率（提供容量に対する余剰容量の割合）やこれら値に数学的処理を行った値）を得る。そして、管理サーバ１２００は、得た値を管理者に表示したり、一つ以上のホスト１１００による各論理ユニットの使い分けを行う。図４の例では、情報システムはＬＵ１である論理ユニットについて余剰容量率が最も低いため、２５％という値が十分に低いものと判断されるのであれば、ＬＵ１である論理ユニットをアーカイブ用途に変更している。
【００５６】
なお、この余剰容量値は、定められた値（例えばゼロ）に近くなると、ＦＭＤの余剰領域が不足することによって、新しく受信したライトデータの格納に失敗したり、後術する縮退状態となることによるデータ格納の信頼性低下、の可能性が高いことを示せれば他の具体例でもよい。
【００５７】
なお、管理サーバは論理ユニット以外にも以下について余剰容量値を表示することが考えられる。
（値１）ＦＭＤに対する余剰容量値の表示。余剰容量率を例とすれば、ＦＭＤの余剰容量に対するＦＭＤの提供容量の割合を、管理サーバは表示する。本情報を参照した管理者の運用の一例としては、余剰領域不足が原因で交換が必要なＦＭＤが無いか確認し、余剰容量率が低いＦＭＤは交換の対象とすることが考えられる。また、本情報を参照することでＦＭＤの増設計画を立てることも考えられる。
（値２）パリティグループに対する余剰容量値の表示。余剰容量率を例とすれば、パリティグループに属する一つ以上のＦＭＤの余剰容量率の最小値や、さらに最小値の次に小さな値や、平均値や分散値を、管理サーバは表示する。ＲＡＩＤ技術に代表されるデータ冗長化技術を採用したストレージシステムではパリティグループの状態として余剰容量値を表示することで縮退状態または閉塞状態になる可能性を管理者が容易に把握しやすい。また限られた表示スペースしかない表示画面においてはパリティグループ単位の情報表示は一覧性に優れる。
【００５８】
（値３）論理ユニットに対する余剰容量値の表示。余剰容量率を例とすれば、対応する一つ以上のパリティグループの余剰容量率を、管理サーバは表示する。なお、後述する内部ＬＵについても同様の表示を行っても良い。ホストは論理ユニットを指定することでストレージシステムの記憶領域を用いることから、論理ユニット又は内部論理ユニットに対する余剰容量率の表示は管理者がホストを管理する場合に状況把握が容易な表示となる。
（値４）代替候補ＦＭＤに対するフラッシュメモリの余剰に関する値の表示。パリティグループを新しく定義する場合や、ダイナミックスペアリングを行う場合等に用いる代替候補ＦＭＤの確認を、値そのものや、値１又は値２等との比較によって行うことが出来る。また、ストレージシステムがダイナミックスペアリングによって新たに外されたＦＭＤを代替候補ＦＭＤとして管理する場合は、本情報によって余剰領域不足でパリティグループから外されたＦＭＤを新たにスペアリングに使わないように管理者に促すことが可能である。
【００５９】
なお、上記で述べた以外の理由でこれら表示情報を用いても良い。
【００６０】
ところで、余剰容量値の元となるＦＭＤの余剰容量は、ＦＭＤに対する書き込み回数又は書き込みデータ量が増えるに従って減少する。そのため、ホスト又はストレージシステムにてＦＭＤ、パリティグループ、論理ユニット、又は内部ＬＵへの書き込み回数または書き込みデータ量を測定し、その値に基いて余剰容量値を推定してもよい。しかし、余剰容量値はウェアレベリングを実現している部位（例えば、ＦＭＤ１０３０のＦＭコントローラや、コントローラ１０１０）が管理している障害ブロック（または障害セグメント）の数や実際のフラッシュメモリチップ上のブロックの数に基いた値であることが精度上はより好ましい。理由の一例を以下に示す。
【００６１】
（理由Ａ）ＦＭＤがこのストレージシステムに取り付けられる前に、フラッシュメモリチップの製造元又は販売元によるテスト書き込みが行われる場合がある。また、フラッシュメモリチップの製造工程で最初から障害が発生したブロックが存在する場合がある。
（理由Ｂ）ストレージシステム１０００が有するキャッシュメモリの働きによって、必ずしもホストからのライトリクエストに付随するデータが毎回ＦＭＤに転送されて書き込まれるとは限らない。
（理由Ｃ）ウェアレベリング処理によっても実際のフラッシュメモリへの書き込みまたはイレース回数は変わる。しかし、ウェアレベリング技術はＦＭＤ１０３０又はストレージシステム１０００の製造ベンダーによって異なる方式を採用する場合があり、ウェアレベリングを実際に処理していない部位での推定はより難しい。
（理由Ｄ）ＦＭＤ内部にもキャッシュメモリを有する場合がある。
【００６２】
なお、上記理由は、状況次第で一部または全ての理由を考慮しなくても良い理由もある。例えば、理由Ａは高品質なチップが製造可能であれば無視しても問題ない程度の理由となる。
【００６３】
さらに管理サーバは、ＦＭＤに代表される物理コンポーネントや、パリティグループ及び論理ユニット及び内部ＬＵのような論理的なコンポーネントの、少なくとも一つについてフラッシュメモリの余剰容量値について管理者によって設定された閾値を下回った場合、管理者に対して、余剰容量値が閾値を下回ったことと共に、閾値を下回った当該値に対応するコンポーネント（論理的、物理的を問わず）を特定する情報（識別子等）を通知してもよい。
【００６４】
さらに管理サーバは、論理ユニットに対するフラッシュメモリの余剰容量値について、管理者によって設定された閾値を下回った場合、閾値を下回った当該値に対応する論理ユニット（余剰領域不足論理ユニットと呼ぶ場合がある）をＷＯＲＭやアーカイブ等の更新頻度が少ないデータ格納用途向けに用いるようにホスト１１００やホスト利用者等の外部へ当該論理ユニットを特定可能な用途切り替えリクエストを出すことも考えられる。
【００６５】
なお前述の余剰領域不足論理ユニットを「更新頻度が少ないデータ格納用途向け」として用いる実現例としては以下が考えられる（以下の処理は各実行主体が用途切り替えリクエスト受信に応じて行うことは言うまでもない）。
（実現例１）余剰領域不足論理ユニットに書き込みを行っていた第一のホスト（又はホスト上のアプリケーション又はホストの利用者）が用途切り替えリクエストを受信したら、上記論理ユニットに対して書き込む代わりに別な論理ユニットに対してデータ書き込みを行う（上記論理ユニットに格納されたデータの一部更新であれば更新前に別な論理ユニットに対してデータ移動又はコピーを実施してもよい）。
（実現例２）余剰領域不足論理ユニットに書き込みを行っていた第一のホストとは別な、アーカイブプログラム等の低更新頻度のデータ更新を行うホスト（第二のホスト）の設定変更を行い、余剰領域不足論理ユニットを第二のホストが低更新頻度用途で利用可能とする。具体的には、第一のホストは余剰領域不足論理ユニットのデータを第一のホストがアクセス可能な他の論理ユニットに移動させ、その後第一ホストは余剰領域不足論理ユニットの使用を抑止する設定を行う。そして、第二ホストは上記余剰領域不足論理ユニットを認識し、フォーマット等のアーカイブサーバが利用するための設定を行う。なお、アーカイブプログラムの一例としては、格納データに対して定められた期間は外部要求からの削除及び更新を抑止するファイルサーバプログラムやデータベースサーバプログラムであることが考えられるが、一例に過ぎない。また、アーカイブプログラムを実行する計算機をアーカイブ計算機、又はアーカイブサーバと呼ぶことがある。
（実現例３）ストレージシステムが、余剰領域不足論理ユニットのデータマイグレーション（つまり、余剰領域不足論理ユニットに当初対応するパリティグループ（移行元パリティグループ）に属するＦＭＤから別なパリティグループ（移行先パリティグループ）に属するＦＭＤへ、余剰領域不足論理ユニットのデータを移行すること）を行う。そして、
（Ａ）ストレージシステムが、他のパリティグループに定義された「更新頻度が少ないデータ格納用途向け」の論理ユニットを上記移行元パリティグループへデータマイグレーションする。
（Ｂ）移行元パリティグループに「更新頻度が少ないデータ格納用途向け」の論理ユニット（実際は後述する内部ＬＵ）を定義し、実現例２に示す第二のホストに提供する。
のいずれかまたは両方を行う。
【００６６】
しかし、余剰領域不足論理ユニットに対応するパリティグループに格納されたデータについて更新頻度が少なくなるようなホスト、管理サーバ、ストレージシステムの処理であれば、上記実現例以外を採用してもよい。
【００６７】
なお、前述のコンポーネント（論理的、物理的を問わず）に対するフラッシュメモリの余剰容量値の算出は、算出の元となる情報をストレージシステムが管理していることから、より迅速または正確な値を取得できる点ではストレージシステムが算出することが好適であるが、管理サーバ側で必要な情報を受信して算出してもよい。当然ながらストレージシステムと管理サーバ側で算出を分担してもよい。なお、ストレージシステムの実装形態によってはパリティグループという概念のないケースもある。この場合も、本願発明は適用可能である。すなわち、パリティグループが関連する処理をＦＭＤに関する処理として読み替えればよいからである。同様にストレージシステムの実施形態によっては内部ＬＵという概念が無いケースもある。この場合も本願発明は適用可能である。すなわち、内部ＬＵに関する説明を論理ユニットに置き換えればよい。
【００６８】
以上、本願発明の概要を記したが、本願発明は概要に示さなかった課題、効果、処理、構成などについても権利化と権利行使をしないことを示すものではない。当然ながら、フラッシュメモリの余剰容量値の表示について上記に記した少なくとも１項目又は全てを必ず表示するのみで、「更新頻度が少ないデータ格納用途向け」の論理ユニットを実現する処理を行わなくても良い。また反対に、フラッシュメモリの余剰容量値の表示を行わず、「更新頻度が少ないデータ格納用途向け」の論理ユニットを実現する処理のみを行ってもよく、両方行っても良い。
【００６９】
また、図には記していないが、ストレージシステム１０００に、ＦＭＤ１０３０とＨＤＤが混在した構成としてもよい。その場合、ＨＤＤとＦＭＤ１０３０では、Ｉ／Ｏ特性（例えば、ランダムアクセスかシーケンシャルアクセスか、ライトが多いのかリードが多いのか）が異なるため、ＨＤＤ同士でパリティグループを構成し、ＦＭＤについては、本実施形態で説明するパリティグループとすることができる。つまり、ＨＤＤのパリティグループとＦＭＤのパリティグループとが一つのストレージシステム１０００に混在してもよい。
【００７０】
＜３．詳細＞。
【００７１】
＜３．０．ブロックサイズ＞。
【００７２】
より詳細な説明に入る前に、本実施形態におけるブロックサイズについて、図２０を用いて説明する。本実施形態では、アドレス空間（正確には、デバイスの識別子とデバイス内のアドレス空間を指す）が、以下の４レイヤに分かれており、それぞれのレイヤで、異なるブロックサイズを採用することができる。
【００７３】
（レイヤ１）ＦＭＣにアクセスするときに用いるアドレス空間。以後の説明で、本レイヤを明示する時は、単語の末尾に'［Ｃ］'をつけることがある。
【００７４】
（レイヤ２）ＦＭＤ１０３０にアクセスする時に用いるアドレス空間。ＦＭＤ１０３０は、ＦＭＣとは異なるブロックサイズを採用することがある。なぜなら、ＦＭＤ１０３０は、複数のＦＭＣから構成されており、また、後述するフラッシュメモリの特徴を回避するためである。以後の説明で、本レイヤを明示する時は、単語の末尾に'［Ｄ］'をつけることがある。
【００７５】
（レイヤ３）コントローラ１０１０がキャッシュメモリ１０２０上のデータを管理するための、パリティグループに割り当てられたアドレス空間。本実施形態では、さまざまなブロックサイズを持つＦＭＤ１０３０がコントローラ１０１０に接続されることが考えられる。そこで、Ｉ／Ｏ処理やキャッシュ制御処理ではそのような異なるブロックサイズをできるだけ考慮しなくてもよい様に、コントローラ１０１０が、所定のブロックサイズ（例えば、ＳＣＳＩで最も一般的な最小ブロックサイズである５１２バイト）でパリティグループにアドレス空間を割り当てることができる。そのために、キャッシュメモリ１０２０とＦＭＤ１０３０間でデータをコピーするステージングやデステージング処理の時点でブロックサイズの変換が行われる。以後の説明で、本レイヤを明示する時は、単語の末尾に'［Ｇ］'をつけることがある。
【００７６】
（レイヤ４）ＬＵ（または後述する内部ＬＵ）にアクセスする時に用いるアドレス空間。ホスト１１００に対して５１２バイトのブロックサイズ以外のＬＵを提供することがあるために、キャッシュのレベルとは異なるブロックサイズが採用される。以後の説明で、本レイヤを明示する時は、単語の末尾に'［Ｌ］'をつけることがある。なお、レイヤ１からレイヤ４までの各ブロックには制御用のデータまたは冗長コードが含まれることがある（例えば、コントローラ１０１０は、データと共に冗長コードをＦＭＤ１０３０のブロック［Ｄ］に保存するようにＩ／Ｏリクエストを発行する）。
【００７７】
＜３．１．ＦＭＤ＞。
【００７８】
＜３．１．１．概要＞。
【００７９】
図２は、ＦＭＤのハードウェア構成及びソフトウェア構成のそれぞれの一例について示した図である。
【００８０】
ＦＭＤ１０３０は、Ｉ／Ｏポート２０３０と、ＦＭＤコントローラ２０１０と、複数のＦＭＣ２０２０とを備える。Ｉ／Ｏポート２０３０は、バックエンドネットワーク１０４０と、ＦＭＤコントローラ２０１０とに接続される。ＦＭＤコントローラ２０１０は、複数のＦＭＣ２０２０に接続される。
【００８１】
なお、好ましくは、ＦＭＤ１０３０は、複数のＩ／Ｏポート２０３０を備える。なぜならば、バックエンドネットワーク１０４０が冗長化されているために、冗長化された各々のバックエンドネットワーク１０４０とＦＭＤ１０３０が独立の部品で接続されたほうが冗長性維持のためには望ましいからである。しかし、ＦＭＤ１０３０は一つのＩ／Ｏポートであってもよい。
【００８２】
ところで、ＦＭＣ２０２０は、前述の特徴以外に、ＨＤＤやＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）には無い以下に例示する（Ａ１）乃至（Ａ４）の特徴を有する。
（Ａ１）アクセス単位はブロックである。
（Ａ２）ブロックデータを更新する場合、複数ブロックをまとめたセグメント単位でデータを削除するイレースコマンドの使用が必要である。
（Ａ３）同一ブロックに更新を繰り返すと更新処理が失敗することがある。
（Ａ４）更新を契機として別ブロックのデータ化けが発生することがある。
【００８３】
これらの特徴を考慮したＩ／Ｏ処理（コントローラ１０１０からのＩ／Ｏリクエストに応じてデータ更新や読み出し等）を行うために、ＦＭＤコントローラ２０１０には、例えば、ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１やＦＭＤ内部構成情報通知プログラム２０１４やＦＭＤアドレス変換情報２０１２やＦＭＤ内部構成情報２０１３が備えられる。また、上記特徴に鑑み、ＦＭＤ１０３０は、複数のＦＭＣ２０２０の総記憶容量より少ない記憶容量を提供容量としてコントローラ１０１０へ報告することで、余剰領域を確保することができる。
【００８４】
ＦＭＤアドレス変換情報２０１２は、ＦＭＤコントローラ２０１０が受信するＩ／Ｏリクエストに含まれるブロックアドレスとＦＭＣ２０２０のブロックの対応関係を含む。例えば、ＦＭＤアドレス変換情報２０１２は、以下に例示する種類（Ｂ１）及び（Ｂ２）の情報を各論理ブロックアドレス単位に持つことが考えられる（ただしＢ２は無くても良い）。
（Ｂ１）アドレス［Ｄ］のデータが実際に保存されているＦＭＣの識別子とブロックアドレス［Ｃ］。
（Ｂ２）アドレス［Ｄ］が参照された回数。
【００８５】
ＦＭＤ内部構成情報２０１３は、各フラッシュメモリチップの障害状況を管理する情報で、好ましくは、各ＦＭＣ２０２０内のセグメントを一つ以上集めた領域単位で以下に例示する種類（Ｃ１）及び（Ｃ２）の情報を保持している。
（Ｃ１）障害状況。
（Ｃ２）イレース済み情報。
【００８６】
当該情報２０１３は、また、ＦＭＤとしてコントローラ１０１０に提供する記憶領域（言い換えればアドレス空間）の属性（例えば、ブロックサイズ［Ｄ］、ブロック数［Ｄ］）と、余剰ブロックを管理するための情報を保持している。
【００８７】
ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、Ｉ／Ｏポート２０３０を通じてＦＭＤコントローラ２０１０が受信したＩ／Ｏリクエストを解析し、ＦＭＣ２０２０が保存するデータの更新や、ＦＭＣからデータを読み出し後にコントローラ１０１０へのデータ転送等を行う。
【００８８】
＜３．１．２．ＦＭＤのＩ／Ｏ処理＞。
【００８９】
以下に、ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１の処理内容を示す。
【００９０】
（Ｓｔｅｐ１）ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、Ｉ／Ｏリクエストを受信する。
【００９１】
（Ｓｔｅｐ２）もし、リクエストがリードリクエストの場合、ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、当該リクエストに含まれる開始論理ブロックアドレス［Ｄ］とブロック長［Ｄ］とＦＭＤアドレス変換情報から、データが保存されている一つ以上のフラッシュメモリチップ２０２０と当該チップ内のブロック  ［Ｃ］を特定し、特定したブロック  ［Ｃ］からデータを読み出して、読み出したデータを、リクエスト送信元（コントローラ１０１０）に返し、Ｓｔｅｐ１へ戻る。もし、リクエストがライトリクエストの場合は、ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、受信したブロックデータ毎にＳｔｅｐ３以降を実行する。
【００９２】
（Ｓｔｅｐ３）ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、最近データ保存したＦＭＣ２０２０の次のＦＭＣから、以下の条件（Ｄ１）乃至（Ｄ３）の全てを満たすブロック［Ｃ］を検索する。
（Ｄ１）障害が発生していないこと。
（Ｄ２）未使用領域である。
（Ｄ３）イレースコマンド実施済みのセグメントに含まれる。
【００９３】
なお、最近データ保存したＦＭＣ２０２０は、例えば、ＦＭＤ内部構成情報２０１３に、ＦＭＤ１０３０に搭載される各ＦＭＣ２０２０に対応した情報エリアを設け、最近データ保存したＦＭＣに対応する情報エリアに、情報を立て（例えば“1”を書き）、その前にデータ保存したＦＭＣに対応する情報エリアの情報を倒す（例えば“1”を“0”に変える）ことで、特定することができる。他の方式としては、ＦＭＤコントローラ２０１０がＦＭＣへデータ保存をした時点で当該コントローラ内部にＦＭＣの識別子を保存することでも特定することができる。また、次のＦＭＣとは、例えば、前回データ保存したＦＭＣ２０２０の番号より１大きい番号のＦＭＣとすることができる。
【００９４】
上記条件に適合するブロック［Ｃ］が当該ＦＭＣから見つからない場合は、ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、更に次のＦＭＣから検索を繰り返す。
【００９５】
（Ｓｔｅｐ４）ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、見つけたブロック［Ｃ］に対して、ライトデータ（ライトリクエストに従うライト対象のデータ）の一部またはすべてを保存する。なお、当該プログラム２０１１は、保存処理に付随して以下の（Ｅ１）及び（Ｅ２）のいずれかまたはすべての処理を行ってもよい。
（Ｅ１）保存前に、ライトデータからＬＲＣ（Ｌｏｎｇｉｔｕｄｉｎａｌ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）やＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）等の冗長コードを計算し、その冗長コードと共にライトデータを保存する。なお、当該冗長コードは、リードリクエスト受付時に、データ化けの有無を確認するために使うもので、データ化けが発生した場合は、当該リードリクエストでエラーを返し、ＦＭＤ内部構成情報２０１３に、ブロック障害が発生したことを記録する。
（Ｅ２）保存後に、ＦＭＣ２０２０から当該ブロックデータを読み込んで比較を行う。比較が失敗した場合は、ＦＭＤ内部構成情報２０１３にブロックに障害が発生したことを記録し、再びＳｔｅｐ３からやり直す。
【００９６】
（Ｓｔｅｐ５）ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、アドレス変換情報２０１２のブロックアドレス［Ｄ］に対応するＦＭＣ２０２０とブロックアドレス［Ｃ］を、新たにデータ保存したＦＭＣのブロック［Ｃ］を示すように更新し、更新前のブロック［Ｃ］は未使用領域とする。
【００９７】
なお、ＦＭＤ  Ｉ／Ｏ処理プログラム２０１１は、別処理として、新たに未使用領域となったブロックをイレースコマンドで書き込み可能にする処理（イレース処理）を実行することが考えられる。しかし、イレースコマンドは、複数ブロックを集めたセグメント単位でしか実行できないため、ブロックデータ移動によってセグメント全体を未使用領域としてからイレースコマンドを実行し、完了した後に、ＦＭＤ内部構成情報２０１３に、イレース済み情報を立てる（すなわちイレース済みセグメントであることを記録する）ことが考えられる。当該処理は、リクエスト処理と連動あるいは非同期のタイミングで繰り返し行うことができる。
【００９８】
なお、これまで説明してきたイレース処理やリードやライトの処理方法については、前記（Ａ１）から（Ａ４）の特徴に鑑み、以下の（Ｆ１）乃至（Ｆ４）の一部または全ての条件を備えていれば、ほかの処理で代替されてもよい。
（Ｆ１）フラッシュメモリチップ内の同一ブロックへの更新集中の回避。
（Ｆ２）フラッシュメモリチップ内のブロック上書き前のイレース処理の実行。
（Ｆ３）冗長コードを伴ったデータ化けの検知及び修復。
（Ｆ４）複数のフラッシュメモリチップへのアクセスを分散可能とするウェアレベリング処理（例えば、特許３５０７１３２号に記載の方法）。
【００９９】
＜３．１．３．ＦＭＤ内部構成情報通知プログラム＞。
【０１００】
ＦＭＤ内部構成情報通知プログラム２０１４は、ＦＭＤの内部情報をコントローラ１０１０等に通知するプログラムである。当該プログラム２０１４が提供する情報の例を、以下（Ｇ１）乃至（Ｇ８）に示す。
（Ｇ１）ＦＭＤ１０３０のブロックサイズ［Ｄ］（コントローラ１０１０は、当該ブロックサイズ単位でアクセスを行ってくる）。
（Ｇ２）ＦＭＤの提供ブロック数［Ｄ］（コントローラ１０１０は、当該ブロック数とブロックサイズ［Ｄ］から提供記憶容量を知ることがある）。
（Ｇ３）ＦＭＤ内部の余剰容量値（ブロック数での表現も可）。当該余剰容量値を提供する処理としては、ＦＭＤ内部構成情報２０１３での障害が発生したセグメント数（またはブロック数）を求めて以下の計算、
余剰ブロック数＝（全フラッシュメモリチップのブロック数）−（障害発生ブロック数）−（（Ｇ２）に記載のブロック数）、又は未使用ブロック数（ＦＭＤ使用開始時点から提供ブロック数［Ｄ］が提供容量分だけ必ず割り当てられている場合）
が行われればよい。なお、フラッシュメモリチップの一部の領域を管理用や内部冗長化等に用いている場合は、そのブロック数を考慮して（例えば減じて）計算してもよい。また、上記計算式は、ＦＭＣのブロックサイズを基準としているため、情報提供に当たってはＦＭＤのブロックサイズに換算して提供することができる。なお、上記例ではブロック数での計算式を示したが、ブロック数に所定の値を掛けることで他の余剰容量値が得られることは言うまでも無いことである。
（Ｇ４）スレッショルド値。
（Ｇ５）（Ｇ３）の余剰ブロック数［Ｄ］を（Ｇ２）の利用可能ブロック数［Ｄ］で割った値が（Ｇ４）のスレッショルド値以下になった場合の警告。なお、この警告は、例えば、ＨＤＤが障害発生時に提供していた警告と同じ値を提供することで、ＨＤＤをエミュレーションしてもよい。
（Ｇ６）ＦＭＤ１０３０が搭載するＦＭＣ数。または、ＦＭＤ１０３０が搭載するＦＭＣ数から障害によって利用できないと判断したＦＭＣ数を引いた数。その他、ＦＭＤ内部構成情報通知プログラム２０１４は、以下の場合等に、Ｉ／Ｏリクエストのエラーメッセージをコントローラ１０１０へ通知してもよい。
（Ｇ７）ＦＭＤ１０３０へ提供される電圧または電力が不足していることや、ＦＭＤ１０３０の内部バスやＦＭＤコントローラ２０１０の破損。
（Ｇ８）ＦＭＤコントローラ２０１０による、ＦＭＣに保存されたデータのデータ化けの検知。
【０１０１】
なお、ＦＭＤ１０３０とコントローラ１０１０との接続媒体及び通信プロトコルはどのようなものでもよい。さらにはＦＭＤ１０３０へのライトリクエストはＦＭＤ１０３０が格納するデータを更新するリクエストであれば良く、ＦＭＤ１０３０へのリードリクエストはＦＭＤ１０３０が格納するデータを参照するリクエストであれば良い。
【０１０２】
＜３．２．ストレージシステムで管理する情報＞。
【０１０３】
図５は、コントローラ１０１０にて保存されるＦＭＤ情報４０５０の例を示す図である。
【０１０４】
ＦＭＤ情報４０５０は、それぞれのＦＭＤ１０３０に対応するＦＭＤ１０３０の識別子毎に以下の（Ｈ１）乃至（Ｈ６）の情報を持つ。
（Ｈ１）閉塞情報。閉塞情報は、当該ＦＭＤに対して使用不可能な状況の場合に閉塞状態となり、そうではない場合に、正常状態となる。なお、使用不可能な状況の例は、ハードウェア障害や、ＦＭＤ１０３０を抜き取った場合や、図２に示すＦＭＤ１０３０の場合が余剰領域が不足または枯渇した場合がある。
（Ｈ２）ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）。ＦＭＤ１０３０にアクセスするために必要なＦｉｂｒｅＣｈａｎｎｅｌの通信識別子。なお、実際のＦｉｂｒｅＣｈａｎｎｅｌではＷＷＮからポート番号（ポートＩＤと呼ぶことがある）を作成して、その値を使って通信を行っているため、ポート番号を登録してもよい。また、これ以外にも、コントローラ１０１０からＦＭＤ１０３０に通信するための他の識別子（例えば、ＩＰアドレス、ＴＣＰ／ＩＰのポート番号、ｉＳＣＳＩ  Ｎａｍｅ等）で代替されてもよい。
（Ｈ３）ＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）。本実施形態では、ＦＭＤは一つの論理ユニットしか提供していないので、ＦＭＤが提供するＬＵの番号を保存すればよい。当然ながらＦＭＤ１０３０が固定のＬＵＮのみ応答することが明らかであれば、本エントリは省略してもよい。
（Ｈ４）ＦＭＤの型番。ストレージシステム１０００を長期間継続的に利用する場合、保守作業によって複数型番を併用することも考えられるため。
（Ｈ５）ＦＭＤの提供容量とブロックサイズ［Ｄ］とフラッシュメモリパッケージ枚数。これらの情報のうちの少なくとも一つが、ＦＭＤ１０３０のＦＭＤ内部構成情報通知プログラム２０１４によって、コントローラ１０１０に提供される。
（Ｈ６）ＦＭＤの余剰容量値。余剰容量についてはＦＭＤ１０３０から繰り返し情報取得をすることで繰り返し更新される。
【０１０５】
なお、図には記述されていないが、各ＦＭＤ１０３０についてストレージシステムに搭載した物理的な場所が判る情報が、ＦＭＤ情報４０５０に含められてもよい。
【０１０６】
図６は、ＰＧ構成情報４０６０の例を示す図である。
【０１０７】
ＰＧ構成情報４０６０は、それぞれのパリティグループ（ＰＧ）の識別子毎に、以下の（Ｉ１）乃至（Ｉ３）の情報を持つ。
（Ｉ１）閉塞情報。閉塞情報はＰＧが使用不可能な状況の場合に閉塞状態となり、そうではない場合に正常状態となる。なお、使用不可能な状況とは、以下に例示する事象が多重に発生した場合が考えられる。
（事象１）ハードウェア障害。
（事象２）ＦＭＤ１０３０の抜き取り。
（事象３）図２に示すＦＭＤ１０３０の場合は余剰領域が少ない、又は不足することによってコントローラ１０１０が報告を受信。
（Ｉ２）ＲＡＩＤレベル。
（Ｉ３）パリティグループに属するＦＭＤ１０３０の数と、そのＦＭＤの識別子。
【０１０８】
なお、前述のとおり、コントローラ１０１０は、パリティグループに対してアドレス空間を割り当てることができる。図８は、ＲＡＩＤ１＋０を例に採ったパリティグループのアドレス空間［Ｇ］と、ＦＭＤ１０３０のアドレス空間［Ｄ］の関係を示す。図９は、ＲＡＩＤ５を例に採った場合の同様の関係を示す。
【０１０９】
用例の説明：
図８及び図９は、４つのＦＭＤ８２００、８２１０、８２２２、８２３０を用いてパリティグループ８１００を構成する場合を示している。ハッチングされた箱８０１０は、ＦＭＤのブロック［Ｄ］を示し、そのブロックアドレス［Ｄ］を８０１１に示している。箱８０１０の中の点線の枠を持つ箱８０２０は、コントローラ１０１０がパリティグループ８１００に割り当てたブロック［Ｇ］で、コントローラ１０１０が割り当てるブロックアドレス［Ｇ］を８０２１に示す。なお、ブロック８０２０のブロックサイズ［Ｇ］は、ＳＣＳＩの規格が提供しうる最低のブロックサイズである５１２バイトとすることが考えられるが、これ以外のサイズでもよい。
【０１１０】
ＲＡＩＤ１＋０：
ＲＡＩＤ１＋０の場合、ミラーリングのために、コントローラ１０１０は、二つのＦＭＤで同じアドレス空間を割り当て（例では、ＦＭＤ８２００と８２１０、ＦＭＤ８２２０と８２３０）、その後ストライピングする。ストライピングの場合、コントローラ１０１０は、定められたブロック数（以後、ストライピング用連続ブロック数と呼ぶ）毎に、続きのアドレス空間［Ｇ］を別なＦＭＤへ切り替える（例では、ブロック［Ｇ］では４つ、ブロック［Ｄ］では２つ）。なお、ストライプサイズ（パリティグループ内の全ＦＭＤからデータを読み書きすることで行うＩ／Ｏサイズ）は、以下の式で算出することができる。
ストライプサイズ＝（ストライピング用連続ブロック数［Ｇ］）×（ＦＭＤの数／２）×（ブロックサイズ［Ｇ］）。
【０１１１】
なお、ＲＡＩＤ１の場合は、ＲＡＩＤ１＋０のストライピングを省略したものであるため、説明は省略する。
【０１１２】
ＲＡＩＤ５：
ＲＡＩＤ５の場合も、コントローラ１０１０は、ストライピング用連続ブロック数を単位にストライピング処理を行ったり、パリティ保存領域を割り当てる（例では、アドレスＰ０からＰ３が、アドレス０から１１までのパリティを保存する領域）。ＲＡＩＤ５の場合のストライプサイズは、以下の式で算出することができる。
ストライプサイズ＝（ストライピング用連続ブロック数［Ｇ］）×（ＦＭＤ数−１）×（ブロックサイズ［Ｇ］）。
【０１１３】
図７は、内部ＬＵ構成情報４０７０の例を示す図である。
【０１１４】
内部ＬＵ構成情報４０７０は、それぞれの内部ＬＵの識別子毎に以下の（Ｊ１）乃至（Ｊ４）情報を持つ。なお、ホスト１１００に記憶領域として提供されるＬＵは、この内部ＬＵを元にパスを定義することによって、外部に提供される。なお、ここで言う「外部」とは、ホスト１１００に代えて又は加えて、他種の装置、例えば、仮想化スイッチや別のストレージシステムであっても良い。換言すれば、該他種の装置が、ホスト１１００に代わって又は加えて、ストレージシステムにＩ／Ｏリクエストを発行することができる。
（Ｊ１）閉塞情報。閉塞情報は当該内部ＬＵに対して使用不可能な状況（例えば、パリティグループが閉塞している場合や、当該内部ＬＵに領域が割り当てられていない場合）の場合に閉塞状態となり、そうではない場合に正常状態となる。
（Ｊ２）ＰＧ識別子と開始アドレス［Ｇ］と終了アドレス［Ｇ］。当該内部ＬＵの記憶領域として用いるパリティグループと、パリティグループ内の開始ブロックアドレス［Ｇ］と終了ブロックアドレス［Ｇ］を示す。なお、本エントリは、コントローラ１０１０で管理されている。このため、当該ブロックアドレスは、コントローラにとってのブロックで管理されるが、その場合も、開始アドレス［Ｇ］と終了アドレス［Ｇ］はＦＭＤ１０３０のブロックサイズやストライプサイズを考慮した値とすることで、複数の内部ＬＵが同じストライピングやＦＭＤのブロック［Ｄ］を用いないようにすることができる。なお、内部ＬＵに対して、複数のパリティグループの記憶領域を割り当てる場合、内部ＬＵ構成情報４０７０のエントリは、（Ｊ２）の情報が複数個登録され、さらに、（Ｊ２）で定義した空間を結合するための情報が加えられることになる。
（Ｊ３）ブロックサイズ［Ｌ］。コントローラ１０１０は、例えば、５１２バイトをブロックサイズとしているが、ホスト１１００はこれより大きいブロックサイズを希望する場合があるため、ホスト１１００からのリクエストが前提とするブロックサイズが保持される。
（Ｊ４）コンペア情報。コントローラ１０１０がキャッシュメモリ１０２０へステージングする際に、パリティやミラーの情報と比較するかどうかを指定するためのオプションである。そのような比較が行われれば、信頼性を向上させることができる。
【０１１５】
図１３は、ＬＵパス情報４０８０の例を示した図である。
【０１１６】
ＬＵパス４０８０情報には、例えば、以下の（Ｋ１）乃至（Ｋ３）の情報が保持される。
（Ｋ１）ホスト１１００に対して提供する内部ＬＵの識別子。
（Ｋ２）ＷＷＮ（またはＩ／Ｏポート１０１３の識別子）。本情報は、ホスト１１００に対して提供する内部ＬＵを、どのポート１０１３から提供するかを示す。なお、前述したように、ＷＷＮに代えて、ポート番号など、他種の識別子で代替されてもよい。なお、以後は「ポートの識別子」と記載した場合はこれらいずれかの値であるものとする。
（Ｋ３）ＬＵＮ。本情報は、ホストへ向けて提供する内部ＬＵを、（Ｋ２）に記載のＷＷＮのどのＬＵＮとして提供するかを示す。
【０１１７】
なお、ＬＵＮは限られた数しか定義できないため、ストレージシステム１０００内で定義された全ての内部ＬＵにＷＷＮとＬＵＮを割り当てる必要はなく、あるＷＷＮとＬＵＮをある時間帯はある内部ＬＵに割り当て、別な時間は別な内部ＬＵに割り当てることで、ＬＵＮの有効利用が行われても良い。
【０１１８】
＜３．３．パリティグループ定義＞。
【０１１９】
図１４は、構成制御プログラム４０３０にて実行される、パリティグループの定義処理について示したフローである。以下に個々のステップの説明を記す。
【０１２０】
（Ｓｔｅｐ１４００１）構成制御プログラム４０３０は、必要に応じて、管理サーバ１２００へ、ＦＭＤ情報４０５０の一部または全ての情報を提供する。なお、管理サーバ１２００は、以下の（方法１）及び（方法２）のいずれかまたはすべてを実施してもよい。
（方法１）型番、提供容量、ブロックサイズ、余剰容量値の一つ以上を基準に構成されたグループを表示装置に表示する。
（方法２）フラッシュメモリチップ（ＦＭＣ）数を基に構成されたグループを表示装置に表示する。
【０１２１】
また、「必要に応じて」とは、例えば、管理サーバ１２００が、ユーザーからの要求
にて、コントローラ内部の情報を表示する必要が出たために、情報のリクエストを送信し、構成制御プログラム４０３０が、そのリクエストを受信したときである。
【０１２２】
（Ｓｔｅｐ１４００２）構成制御プログラム４０３０は、管理サーバ１２００から、複数のＦＭＤ１０３０の識別子（識別子は、物理的なストレージシステムへの搭載位置や論理的な識別情報でも代替可能である）とＲＡＩＤレベルとを含んだパリティグループ定義リクエストを受信し、そのリクエストに付随した情報（各ＦＭＤ識別子及びＲＡＩＤレベル）を基に、ＰＧ構成情報４０６０を作成及び／又は更新する。なお、前記処理の前に以下の（チェック１）乃至（チェック５）の少なくとも一つのチェック処理（または、チェックの結果を表示する処理）を加えることで、好ましくないパリティグループ構成の定義が回避されてもよい。
（チェック１）ストレージシステム１０００内のＦＭＤを除いた各コンポーネント（コントローラ、キャッシュメモリ、バックエンドＩ／Ｏネットワーク等を指す）の一つが障害等によって閉塞した場合に、パリティグループ定義リクエストに含まれる複数のＦＭＤ１０３０のうち二つ以上のＦＭＤ１０３０にアクセス（Ｉ／Ｏリクエストによるリード・ライトを含む）可能か否かのチェック。アクセス不可能であれば、パリティグループのデータ復元処理が失敗することになる。このチェックは、１点閉塞でＩ／Ｏリクエストを停止させないことを目的としたチェックである。なお、ＲＡＩＤ１やＲＡＩＤ１＋０等ミラーリングを伴うＲＡＩＤレベルでは、ミラーリング関係にある二つのＦＭＤの両方についてこの（チェック１）が行われても良い。
（チェック２）パリティグループ定義リクエストで指定された全てのＦＭＤ１０３０においてＦＭＣ数が異なるか否かのチェック。このチェックは、パリティグループ構成定義を支援するためのチェックである。
（チェック３）パリティグループ定義リクエストで指定された全てのＦＭＤ１０３０において型番が異なるか否かのチェック。ＦＭＤ１０３０の型番にＦＭＣ数が関係している場合は、（チェック２）が含まれてもよい。ただし、在庫切れなどの理由により、全て同じ型番のＦＭＤ１０２０を指定できない場合は、本チェックによる警告を無視してパリティグループ構成を定義することも考えられる。
（チェック４）パリティグループ定義リクエストに指定された全てのＦＭＤ１０３０において提供容量が異なるか否かのチェック。提供容量の有効利用を図ることが目的のチェックである。ただし、在庫切れなどで全て同じ容量のＦＭＤを指定できない場合は、本チェックによる警告を無視してパリティグループ構成を定義することも考えられる。
（チェック５）パリティグループ定義リクエストで指定された複数のＦＭＤ１０３０のブロックサイズ［Ｄ］が異なるか否かのチェック。ＦＭＤのブロックサイズ［Ｄ］はキャッシュメモリ１０２０へのステージングやデステージング時のデータ単位となるため、パリティグループ内でＩ／Ｏ性能の変化を軽減するためのチェックである。
【０１２３】
また、例えば、チェック６として、構成制御プログラム４０３０は、一つのパリティグループについて異種の記憶デバイス（例えば、ＨＤＤとＦＭＤ１０３０）が指定されているか否かをチェックし、異種の記憶デバイスが指定されている場合には、管理サーバ１２００に報告しても良い。
【０１２４】
（Ｓｔｅｐ１４００３）構成制御プログラムは、パリティグループを初期化（ミラーデータやパリティデータの作成を含む）
（Ｓｔｅｐ１４００４）構成制御プログラム４０３０は、ＰＧ構成情報４０６０の該当するパリティグループの閉塞情報を閉塞状態から正常状態へ変更し、利用可能なことを示し、管理サーバ１２００に完了メッセージを返す。
【０１２５】
なお、ＦＭＤ１０３０の型番によってＦＭＣ数や総記憶容量を一意に特定できる場合、ストレージシステム１０００の外部（例えば、ストレージシステム１０００の製造会社のコンピュータ）で、各種チェック毎に、パリティグループの定義が可能なＦＭＤの型番リストを作成し、当該リストをコントローラ１０１０へダウンロードして前記チェックに用いてもよい。
【０１２６】
＜３．４．内部ＬＵ定義＞。
【０１２７】
図１５は、構成制御プログラム４０３０にて実行される、内部ＬＵの定義処理について示したフローである。以下に個々のステップの説明を記す。
【０１２８】
（Ｓｔｅｐ１５００１）構成制御プログラム４０３０は、必要に応じて、管理サーバ１２００からのリクエストに応じて、ＰＧ構成情報４０６０の一部または全てを管理サーバへ送信する。
【０１２９】
（Ｓｔｅｐ１５００２）構成制御プログラム４０３０は、管理サーバ１２００から、以下に例示する（引数１）乃至（引数５）の一部または全ての情報を含んだ内部ＬＵ定義リクエストを受信したら、当該リクエストに付随した情報を基に、内部ＬＵ構成情報４０７０を作成及び／又は更新する。
（引数１）パリティグループの識別子。
（引数２）パリティグループの開始アドレス［Ｇ］。
（引数３）内部ＬＵの記憶容量またはパリティグループの終了アドレス［Ｇ］。
（引数４）内部ＬＵのブロックサイズ［Ｌ］。
（引数５）内部ＬＵのコンペア情報。
【０１３０】
なお、（引数３）については、終了アドレスが当該パリティグループのストライピングサイズの整数倍となることで、一つのパリティデータが複数の内部ＬＵで共有することを回避するチェックを実施してもよい。また、（引数２）と（引数３）は、パリティグループのブロックサイズで指定するとしたが、ストライピングサイズを単位として当該引数の値を受け取ってもよい。同様に、最終的にパリティグループの開始アドレス［Ｇ］と終了アドレス［Ｇ］を求められるのであれば、他の形式で引数を受け取ってもよい。
【０１３１】
（Ｓｔｅｐ１５００３）構成制御プログラム４０３０は、必要に応じて、内部ＬＵの初期化処理を行う。例えば、初期化処理の一環として内部ＬＵの管理領域を作成してもよい。
【０１３２】
（Ｓｔｅｐ１５００４）構成制御プログラム４０３０は、内部ＬＵ構成情報４０７０の該当する内部ＬＵの閉塞情報を閉塞状態から正常状態へ変更することで内部ＬＵが利用可能であることを示し、管理サーバ１２００に完了メッセージを返す。
【０１３３】
＜３．５．ＬＵパス定義＞。
【０１３４】
図１６は、構成制御プログラム４０３０にて実行される、ＬＵのパス定義処理について示したフローである。以下に個々のステップの説明を記す。
【０１３５】
（Ｓｔｅｐ１６００１）構成制御プログラム４０３０は、必要に応じて、管理サーバ１２００からの要求に応じて、内部ＬＵ構成情報４０７０とＬＵパス情報４０８０の一部または全てを管理サーバへ送信する。
【０１３６】
（Ｓｔｅｐ１６００２）構成制御プログラム４０３０は、管理サーバ１２００から、内部ＬＵの識別子とポート情報（最終的にＩ／Ｏポート１０１３の識別子またはＷＷＮへ変換可能な識別情報であればこれら以外の情報でもよい）とＬＵＮを含んだパス定義リクエストを受信する。
【０１３７】
（Ｓｔｅｐ１６００３）構成制御プログラム４０３０は、リクエストで指定されたＷＷＮとＬＵＮが割り当て済みでないか確認し、割り当て済みの場合はエラーで応答して終了する。未割り当ての場合はＳｔｅｐ１６００４を行う。
【０１３８】
（Ｓｔｅｐ１６００４）構成制御プログラム４０３０は、リクエストに付随した情報を元に、ＬＵパス情報４０８０を作成及び／又は更新し、完了メッセージを管理サーバ１２００へ返す。
【０１３９】
なお、ホスト１１００からのアクセスパス多重化のために、内部ＬＵに対して複数のパス定義を行っても良い。また、定義されたパスの解除処理の場合は、管理サーバ１２００から、内部ＬＵの識別子か、或いは、ＷＷＮとＬＵＮの組み合わせを用いて、ＬＵパス情報の対応エントリを見つけ、当該エントリを削除することによって、パス設定を解除してもよい。また、ＬＵパス定義リクエストでＷＷＮとＬＵＮを指定する代わりに、構成制御プログラム４０３０が空いているＷＷＮとＬＵＮを探して割り当ててもよい。
【０１４０】
＜３．６．閉塞検知＞。
【０１４１】
構成制御プログラム４０３０は、障害や電源断やコンポーネントの抜き去り等が原因のコンポーネント閉塞を検知する。以下に閉塞検知処理のフローを示す。
【０１４２】
（Ｌ１）構成制御プログラム４０３０は、各コンポーネントの状態を取得する。なお、コンポーネントがコントローラやＦＭＤの場合は当該コンポーネント上で動作するプログラムの状態やログでもよい。また、当該プログラム４０３０は、問い合わせの代替として各コンポーネントからの報告を本処理に用いてもよい。
【０１４３】
（Ｌ２）構成制御プログラム４０３０は、取得した状態をチェックすることで、各コンポーネント閉塞の有無を判断し、閉塞が無い場合は（Ｌ１）に戻る。
【０１４４】
（Ｌ３）（Ｌ２）にて閉塞と判断した場合、構成制御プログラム４０３０は、閉塞と判断したコンポーネントの識別子を管理サーバ１２００へ転送し、ユーザーに表示する。
【０１４５】
なお、ＦＭＤ１０３０の閉塞検知とその後のダイナミックスペアリングについては後述する。また、ＦＭＤ１０３０以外のコンポーネント閉塞によって一部のＦＭＤ１０３０に対してアクセス不可能な状況が発生することもあるが、その場合も後述するような処理（特にダイナミックスペアリング）を行ってもよい。
【０１４６】
＜３．６．１．ＦＭＤ１０３０の閉塞検知＞。
【０１４７】
以下に、構成制御プログラム４０３０にて実行される、ＦＭＤ１０３０の閉塞検知処理のフローについて記す。
【０１４８】
（Ｍ１）ＦＭＤ１０３０は、構成制御プログラムからのリクエストに応じて、（Ｇ１）乃至（Ｇ８）の少なくともひとつの情報を返すか、あるいは能動的にこれらの情報を送信する。
【０１４９】
（Ｍ２）構成制御プログラム４０３０は、受け取った情報をチェックし、ＦＭＤの閉塞の有無を判断する。判断方法の一例を以下に挙げる。
（判断方法１）Ｉ／Ｏリクエストエラーに代表される処理失敗の情報の場合は、規定回数（１回以上を含む）受け取ったことで判断する。
（判断方法２）３．１．３章に記載した余剰容量値に関連する情報（３．１．３章に記載の（Ｇ３）余剰ブロック数を（Ｇ２）の提供ブロック数で割った値が考えられる）の場合は、定められたスレッショルド値（本情報はコントローラ１０２０内部で保持されており、管理サーバ１２００経由でコントローラ１０２０へ設定されてもよい）を下回ったことで判断する。
（判断方法３）３．１．３章に記載した（Ｇ６）ＦＭＣ数の場合は、出荷時や仕様書の数から一定の割合以下となったことで判断する。
【０１５０】
なお、ＦＭＤの実装のバリエーションとして、上記判断方法をＦＭＤ１０３０内部で実現し、該当した場合は、コントローラ１０１０に、ＨＤＤと同様のデバイス障害として報告を行うことが考えられる。その場合は、コントローラ１０１０は、当該障害を（判断方法１）によって判断すればよい。
【０１５１】
（Ｍ３）構成制御プログラム４０３０は、ＦＭＤ構成情報４０５０の閉塞と判断したＦＭＤの閉塞情報を閉塞状態に変更し、ＦＭＤが利用不可能であることを示す。
【０１５２】
（Ｍ４）構成制御プログラム４０３０は、ＰＧ構成情報とＦＭＤ構成情報を参照することで、閉塞したＦＭＤ１０３０によってパリティグループがリード・ライトリクエストを処理できない状態かどうかを判断し、処理不可能な場合は該当するパリティグループの閉塞情報を閉塞状態（すなわち利用不可能）に変更する。なお、前記判断方法は、ＲＡＩＤ１＋０などのミラーリングを伴う冗長化方式の場合は、データを二重化しているペアとなるＦＭＤが両方とも閉塞状態かどうかで判断し、ＲＡＩＤ５の場合はパリティグループ中の閉塞状態のＦＭＤの数が２以上かどうかで判断する。
【０１５３】
（Ｍ５）構成制御プログラム４０３０は、内部ＬＵ構成情報を参照することで、閉塞したパリティグループ上にデータが保存された内部ＬＵの閉塞情報を閉塞状態（すなわち利用不可能）とする。
【０１５４】
（Ｍ６）構成制御プログラム４０３０は、必要に応じて、閉塞したＦＭＤ１０３０の識別情報を管理サーバ１３００に通知する。この通知には閉塞の理由となる情報（例えばどの判断方法で閉塞と判断したのか）を付随させてもよい。また、ＦＭＤ１０３０の閉塞によって閉塞したパリティグループや内部ＬＵやＬＵが存在する場合は、これらの識別情報を管理サーバ１３００に通知してもよい。なお、本通知を受け取った管理サーバ１３００は障害情報としてユーザーにこれらの情報を表示することが考えられる。
【０１５５】
なお、以後の説明では、閉塞状態のＦＭＤを含み、かつ、Ｉ／Ｏリクエストが可能なパリティグループの状態を、「縮退状態」と呼ぶ。この縮退状態のパリティグループに対するＩ／Ｏリクエストでは、データ復元処理を行って当該リクエストに応答する。なお、データ復元処理とは、冗長データから閉塞したＦＭＤのデータを復元することを指す。ミラーリングの場合は、閉塞したＦＭＤと同じデータが別のＦＭＤに存在するため、当該処理は当該別のＦＭＤのデータを使用する。パリティ方式の場合は、本処理は閉塞せずに残ったデータとパリティから閉塞したＦＭＤのデータを計算することで復元する。
【０１５６】
＜３．６．２．ＦＭＤのダイナミックスペアリング＞。
【０１５７】
以下に、構成制御プログラム４０３０による、ダイナミックスペアリング処理について説明する。
【０１５８】
（Ｎ１）構成制御プログラム４０３０は、障害検知処理でＦＭＤ閉塞を検知するまで待つ。
【０１５９】
（Ｎ２）構成制御プログラム４０３０は、Ｎ１で閉塞と検知したＦＭＤが関連する（例えばそのＦＭＤが含まれる）パリティグループを、ＰＧ構成情報４０６０を参照することにより、見つける。
【０１６０】
（Ｎ３）構成制御プログラム４０３０は、見つけたパリティグループについて、データ復元処理が実行可能であるかどうか判断し、実行不可能な場合はあきらめる（例えば終了する）。実行可能な場合は、Ｎ４以降を行う。
【０１６１】
（Ｎ４）構成制御プログラム４０３０は、パリティグループに適合する代替ＦＭＤを検索する。なお、検索条件としては、パリティグループ定義で提供した情報やチェック項目と類似な以下に例示の条件が考えられる。
（条件１）ＦＭＤのデータ容量や型番やＦＭＣ数やブロックサイズ［Ｄ］。
（条件２）ＦＭＤ以外のコンポーネント一点閉塞でＦＭＤ１０３０の二重閉塞とならないＦＭＤ１０３０の選択（パリティグループ閉塞をできるだけ回避するため）。
（条件３）パリティグループに残存するＦＭＤ１０３０の余剰容量率と代替ＦＭＤ１０３０の余剰容量率。例えば、残存するＦＭＤ１０３０の余剰容量率よりも多い余剰容量率の代替ＦＭＤ１０３０を選ぶことでダイナミックスペアリング後の余剰領域不足によるパリティグループ閉塞を回避することが考えられる。一方で、アーカイブ用途向きの論理ユニットしか格納されない場合は、代替ＦＭＤとして余剰領域が大きすぎるＦＭＤを用いることはコスト視点からは望ましくないため、残存するＦＭＤ１０３０の余剰容量率から定められた範囲内の余剰容量率を持つＦＭＤを代替ＦＭＤとすることも考えられる。
（条件４）いずれかのパリティグループに属さないＦＭＤ。
【０１６２】
（Ｎ５）構成制御プログラム４０３０は、データ復元処理で代替ＦＭＤへデータを復元する（以後復元コピー処理と呼ぶ）。より具体的な復元コピー処理の内容を以下に例示する。
（Ｎ５−１）構成制御プログラム４０３０は、コピーの完了位置を示す情報（コピー完了位置情報）をＦＭＤの先頭アドレスへ初期設定する。
（Ｎ５−２）構成制御プログラム４０３０は、コピー完了位置情報から、複数ブロック分だけ閉塞ＦＭＤのデータを復元（３．６．１章に記載の処理方法で）し、代替ＦＭＤへ書き込む。
（Ｎ５−３）構成制御プログラム４０３０は、コピー完了位置情報を書き込み済みブロック数分だけ進める。
（Ｎ５−４）コピー完了位置情報がＦＭＤの終了アドレスに進むまで、構成制御プログラム４０３０は、（Ｎ５−１）から（Ｎ５−３）を繰り返す。
【０１６３】
（Ｎ６）構成制御プログラム４０３０は、代替ＦＭＤを新たにパリティグループに登録し、閉塞ＦＭＤを除外する。
【０１６４】
なお、ＦＭＤの閉塞理由が余剰領域不足の場合は、ＦＭＤへ保存されているデータに対するリードリクエストが可能であるため、（Ｎ５−２）のデータ復元処理の代替として、パリティデータやミラーデータを用いずに、閉塞ＦＭＤからデータを読み込んでも良い。
【０１６５】
上記復元コピー中の閉塞ＦＭＤに対するＩ／Ｏリクエストについては、コピー完了位置情報以前のブロック［Ｄ］について代替ＦＭＤにデータが復元されているため、コントローラ１０１０は、そのデータをホスト１１００へ返したり（リードの場合）、代替ＦＭＤに対してライトデータを保存してもよい（ライトの場合）。なお、コピー完了位置情報以降のブロックアドレスに対しては、コントローラ１０１０は、以下の処理を実行することができる。
（Ｏ１）リードリクエストを受けた場合でＦＭＤの閉塞理由が余剰領域不足の場合は、データ復元処理として、閉塞ＦＭＤからキャッシュメモリにデータをステージングした後に、そのデータをホスト１１００へ返す
（Ｏ２）（Ｏ１）以外でリードリクエストを受けた場合、データ復元処理で閉塞したＦＭＤ１０３０に保存されたデータをキャッシュメモリ１０２０へ復元し、そのデータをホスト１１００へ返す
（Ｏ３）ライトリクエストを受けた場合、冗長データ（パリティデータやミラーデータ）を更新し、これ以降のリードリクエストやライトリクエストで本リクエストのライトデータを復元できるようにする。
【０１６６】
＜３．７．ライト処理＞。
【０１６７】
図１７は、Ｉ／Ｏ処理プログラム４０１０がライトリクエストを受信した場合に行われる処理のフローである。また、図１０は、図８のＲＡＩＤ１＋０のパリティグループのＦＭＤ８２００とＦＭＤ８２１０とキャッシュ２枚（ＣＭ−ＡとＣＭ−Ｂ）上のデータの流れや変化の例を示す概要図である。さらに、図１１と図１２は、図９のＲＡＩＤ１パリティグループのＦＭＤ９２００とＦＭＤ９２３０とキャッシュ２枚（ＣＭ−ＡとＣＭ−Ｂ）上のデータの流れや変化の例を示す概要図である。
【０１６８】
＜３．７．１．概要図の前提と用例＞。
【０１６９】
図１０から１２は、ホスト１１００に対して、ブロックサイズ［Ｌ］を５１２Ｂ（Ｂｙｔｅ）で公開しており、かつ、パリティグループの先頭から領域を割り当てられた内部ＬＵについて、ブロック'３'にライトリクエストが到着した場合の、キャッシュメモリとＦＭＤと間のデータの流れとデータの変化を示した図である。また、キャッシュメモリとＦＭＤ上の数字つきの箱は、パリティグループにコントローラ１０１０が割り当てたブロック［Ｇ］と、当該ブロック［Ｇ］のアドレスを指す。本例では、ＦＭＤブロックサイズ［Ｄ］は、ブロックサイズ［Ｇ］の二倍である。
【０１７０】
なお、キャッシュメモリ１０２０の領域管理では、キャッシュメモリ上のデータ領域とＦＭＤ上のデータ領域を対応付ける情報を小さくするために、ＦＭＤの連続した複数ブロック［Ｄ］（例で４ブロック［Ｇ］かつ、２ブロック［Ｄ］）で、キャッシュ上の連続アドレス領域（キャッシュセグメント）を割り当てるようにしている。そのため、例えば、コントローラ１０１０は、キャッシュセグメント毎に、以下に例示する（Ｑ１）乃至（Ｑ６）の属性情報を管理している。
（Ｑ１）キャッシュセグメント上のアドレス。
（Ｑ２）パリティグループの識別子とパリティグループ上のブロックアドレス［Ｇ］。
（Ｑ３）キャッシュセグメント内のブロック［Ｇ］毎のステージング情報。概要図ではキャッシュ上のブロック［Ｇ］の下に黒帯がある場合は当該データがステージング済みを意味している。
（Ｑ４）キャッシュセグメント内のブロック［Ｇ］毎のダーティ（更新済みだが、ＦＭＤへは未反映であること）情報。概要図では、キャッシュブロック内のブロック［Ｇ］の上に黒帯がある場合はダーティを意味している。
（Ｑ５）旧データ情報。
（６）パリティ更新要情報。図１１と１２の数字なしのＰと書かれた箱の上に黒帯がある場合は、パリティ更新が必要なことを意味し、数字なしのＰと書かれた箱のみの場合は更新不要を意味する。
【０１７１】
また、両概要図とも、リード用にブロック［Ｇ］の'０'と'１'はステージング済みの状態から説明を始める。
【０１７２】
＜３．７．２．ライトリクエスト処理フロー＞。
【０１７３】
図１７のフローと図１０から１２までの例を用いて、Ｉ／Ｏ処理プログラム４０１０がライトリクエストを受信した時の処理内容を説明する。
【０１７４】
（Ｓｔｅｐ１７００１）Ｉ／Ｏ処理プログラム４０１０は、コントローラ１０１０が受け取ったライトリクエストからＷＷＮとＬＵＮと開始ブロックアドレス［Ｌ］と、ブロック長［Ｌ］とライトデータを取得する。繰り返すが、予めコントローラ１０１０は当該ＬＵＮのブロックサイズ［Ｌ］として対応する内部ＬＵの内部ＬＵ構成情報４０７０のブロックサイズを報告しており、ライトリクエストの開始ブロックアドレスとブロック長は当該ブロックサイズ［Ｌ］を前提としている。なお、実際のライトリクエストにはＷＷＮのかわりにＰｏｒｔＩＤが含まれるため、ＰｏｒｔＩＤをＷＷＮに変換する必要がある。
【０１７５】
（Ｓｔｅｐ１７００２）Ｉ／Ｏ処理プログラム４０１０は、ＷＷＮとＬＵＮとＬＵパス情報から内部ＬＵ番号を求める。なお、ネットワークとしてＦｉｂｒｅＣｈａｎｎｅｌ以外を用いている場合は、ライトリクエストから内部ＬＵ番号を求めるほかの方法によってＳｔｅｐ１７００１とＳｔｅｐ１７００２を代替してもよい。例えば、ｉＳＣＳＩの場合は、ＩＰアドレスとＰｏｒｔ番号の組み合わせや、ｉＳＣＳＩターゲット名がＷＷＮの代わりとなり、ＬＵＮと組み合わせることで内部ＬＵ番号を求めることができる。
【０１７６】
（Ｓｔｅｐ１７００３）Ｉ／Ｏ処理プログラム４０１０は、内部ＬＵ構成情報４０７０を用いて、リクエストの開始ブロックアドレス［Ｌ］とブロック長［Ｌ］を、パリティグループの識別子と開始ブロックアドレス［Ｇ］と終了ブロックアドレス［Ｇ］へ変換する。変換計算は、以下の式で行う。
・開始ブロックアドレス［Ｇ］  ＝（ブロックサイズ［Ｌ］＊開始ブロックアドレス［Ｌ］／ブロックサイズ［Ｇ］）＋（内部ＬＵ構成情報の開始ブロックアドレス［Ｇ］）
・終了ブロックアドレス［Ｇ］  ＝（ブロックサイズ［Ｌ］＊ブロック長［Ｌ］／ブロックサイズ［Ｇ］）＋開始ブロックアドレス［Ｇ］。
【０１７７】
（Ｓｔｅｐ１７００５）Ｉ／Ｏ処理プログラム４０１０は、キャッシュ上にライトデータを保存する。この時、キャッシュ上に必要なブロック［Ｇ］のデータがステージング済の場合は、キャッシュ上のデータをライトデータで更新する。しかし、ステージング済みのブロックデータが存在する場合でも、本実施形態では、パリティ更新要情報がＮｏ（更新済み）で、保存対象ブロックのダーティ情報が立っている場合（すなわち、前回のパリティ更新で元としたライトデータ）は、今回のパリティ更新で旧データとして用いる必要があるため、別キャッシュセグメントを確保してライトデータを保存する。キャッシュ上にライトデータがない場合も、必要に応じて、キャッシュセグメントを確保してライトデータを保存する。
【０１７８】
なお、ライトデータは二枚のキャッシュ両方に保存することで、キャッシュが１枚閉塞してもライトデータを保持できるようにする。また保存と共に、Ｉ／Ｏ処理プログラム４０１０は、保存したブロックのステージング情報とダーティ情報とパリティ更新要情報を立てて、ライトリクエストに対する応答をホスト１１００へ返す。図１０と図１１の（１）では、ブロック［Ｇ］'３'のライトデータがキャッシュ２枚にライトされ、ステージング情報とダーティ情報が立っている。
【０１７９】
以上が、Ｉ／Ｏ処理プログラム４０１０のフローである。
【０１８０】
＜３．７．２．パリティ作成からデステージングまで＞。
【０１８１】
キャッシュ制御プログラム４０２０が繰り返し実行するパリティ作成とデステージングの手順を図１８に示す。
【０１８２】
（Ｓｔｅｐ１８００１）キャッシュ制御プログラム４０２０は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）等のキャッシュアルゴリズムによってパリティ作成またはデステージ対象のキャッシュセグメントを選択する。図１０〜１２（以下、「概要図」と記載することもある）ではブロック'２'と'３'が選択された。
【０１８３】
（Ｓｔｅｐ１８００２）キャッシュ制御プログラム４０２０は、デステージ対象のキャッシュセグメントのパリティグループＩＤやブロックアドレスを元にした計算式で、２枚のキャッシュのどちらに保存されたライトデータを、パリティ生成やデステージングに用いるか決定する。概要図ではＣＭ−Ａ上のライトデータを用いることにした。
【０１８４】
（Ｓｔｅｐ１８００３）キャッシュ制御プログラム４０２０は、デステージング対象キャッシュセグメントを、デステージング先となるＦＭＤ１０３０のブロックサイズ［Ｄ］に合わせて、セグメント中の未ステージ済みブロック［Ｇ］を埋める。これは、キャッシュメモリに対して、キャッシュメモリのブロック単位でデータを読み書きできるようにするために行われる。
【０１８５】
具体的には、キャッシュセグメント中の複数ブロック［Ｇ］を先頭からＦＭＤブロックサイズ［Ｄ］毎に区切り（つまり、デステージング単位に区切り）、その区切り毎にダーティなブロック［Ｇ］を持ち、かつ部分的未ステージング状態のブロック［Ｇ］がある場合は、ＦＭＤ１０３０から未ステージ状態のブロック［Ｇ］に対応するデータをコピーする。この時のコピーは、最初に、キャッシュ上の別領域にダーティなブロック［Ｇ］（例えばブロック‘2’）と未ステージング状態のブロック［Ｇ］（例えばブロック‘３’）を含むブロック［Ｄ］をステージングし、そこから未ステージング状態のブロック［Ｇ］だけコピーする。概要図（例えば図１０（１））ではブロック‘3’が未ステージング状態である。
【０１８６】
（Ｓｔｅｐ１８００４）キャッシュ制御プログラム４０２０は、デステージング対象キャッシュセグメントについて、パリティ生成が必要な場合はＳｔｅｐ１８００５を行い、ミラーリングが必要な場合はＳｔｅｐ１８０１１を行う。
【０１８７】
（Ｓｔｅｐ１８００５）キャッシュ制御プログラム４０２０は、パリティ生成のためにキャッシュセグメントのデステージング先ＦＭＤ１０３０に保存された旧データを、デステージング対象のキャッシュセグメントとは別なキャッシュセグメントにステージングする。なお、このステージングはＳｔｅｐ１８００３で行ったＦＭＤブロックサイズ化でステージングしたキャッシュセグメントと同じ領域を用いてもよいし、予めＳｔｅｐ１８００３で両方に必要なデータをステージングしておいてもよい（概要図の図１１の（２）では、両方に必要なデータをまとめてステージングした）。また、キャッシュ上に前回のパリティ更新で用いたデータがある場合は、ステージングを省略することができる。
【０１８８】
（Ｓｔｅｐ１８００６）キャッシュ制御プログラム４０２０は、デステージング対象のキャッシュセグメントに対応するパリティが保存されたブロック［Ｌ］を、ＦＭＤ１０２０からキャッシュセグメントへステージングする（概要図の図１１の（２）では、ＣＭ−Ｂへブロック‘Ｐ２’と‘Ｐ３’をステージングする）。なお、キャッシュ上に前回計算したパリティが存在する場合は、ステージングを省略することができる。
【０１８９】
（Ｓｔｅｐ１８００７）キャッシュ制御プログラム４０２０は、デステージング対象のキャッシュセグメント上のライトデータと、Ｓｔｅｐ１８００５でステージングした旧データと、Ｓｔｅｐ１８００６でステージングした現在のパリティとを用いて、新たなパリティを計算し、それを、現在のパリティとは別なキャッシュセグメントへダーティ情報を立てて保存する。当該プログラム４０２０は、また、デステージ対象キャッシュセグメントのパリティ更新要情報を下げて、Ｓｔｅｐ１８００５とＳｔｅｐ１８００６でステージングした旧データとパリティのキャッシュセグメントを破棄する。概要図の図１１の（３）で、ブロック‘2’のパリティ‘Ｐ２’がダーティとなっている。
【０１９０】
（Ｓｔｅｐ１８００８）キャッシュ制御プログラム４０２０は、Ｓｔｅｐ１８００７で計算した新たなパリティのキャッシュセグメントをデステージし、ダーティ情報を下げる。概要図の図１２の（４）では、パリティ‘2’と‘Ｐ３’をデステージングしている。
【０１９１】
（Ｓｔｅｐ１８００９）キャッシュ制御プログラム４０２０は、デステージング対象キャッシュセグメントをデステージし、ダーティ情報を下げる。デステージングが完了したら片方のキャッシュ上のライトデータを破棄してデステージングが完了する。なお、本ステップとＳｔｅｐ１８００８の順序は問わない。
【０１９２】
（Ｓｔｅｐ１８０１１）キャッシュ制御プログラムは、Ｓｔｅｐ１８００３で未ステージング済みブロックを埋めるために別キャッシュセグメントへステージングしたデータを破棄する。そして、キャッシュ制御プログラム４０２０は、デステージング対象キャッシュセグメントのライトデータをミラー関係の二つのＦＭＤ１０３０へデステージングする。当該プログラムは、両方とも完了するまで待った後、キャッシュの片方のライトデータを破棄する。概要図の図１０の（３）は、ＣＭ−Ａからブロック‘2’と‘3’がデステージされたことを示す。
【０１９３】
以上がパリティ生成処理である。
【０１９４】
次に前記処理で用いられていたデステージングの処理内容を示す。
【０１９５】
（Ｒ１）キャッシュ制御プログラム４０２０は、キャッシュセグメントのパリティグループのブロックアドレス［Ｇ］を、ストライピングの計算とブロックサイズの変換によって、ＦＭＤの識別子とＦＭＤのブロックアドレス［Ｄ］に変換する。
【０１９６】
（Ｒ２）キャッシュ制御プログラム４０２０は、（Ｒ１）で求めたブロックアドレス［Ｄ］で、（Ｒ１）で求めたＦＭＤに対して、ライトリクエストを送信する。
【０１９７】
リードについても同様に、キャッシュ制御プログラム４０２０は、パリティグループのブロックアドレス［Ｇ］をＦＭＤの識別子とＦＭＤのブロックアドレス［Ｄ］に変換して、リードリクエストをＦＭＤ１０３０に対して送信する。
【０１９８】
また、信頼性向上のため、キャッシュ制御プログラム４０２０は、ＦＭＤ１０３０へのデステージング時に、ＬＲＣやＣＲＣ等の冗長コードをライトデータに付加し、ステージング時にチェックしてもよい。さらに、キャッシュ制御プログラム４０２０は、デステージング後に、ＦＭＤに保存されたデータとキャッシュ上のデータを比較して、データが確実に保存されたことを確認してもよい。いずれの場合も、チェックで異常を検出した場合、キャッシュ制御プログラム４０２０は、ＦＭＤ閉塞検知処理やデータ復元処理を行うことができる。
【０１９９】
さらに、内部ＬＵ構成情報４０７０のデータコンペア情報がＹｅｓとなっている内部ＬＵに対応するステージングについては、信頼性を向上させるために、キャッシュ制御プログラム４０２０は、ＲＡＩＤ１であれば、本来のデータをＦＭＤ１０３０からキャッシュメモリ１０２０へコピーするとともに、ミラーリングペアの別ＦＭＤからもデータを読み出して比較する。同様に、ＲＡＩＤ５の場合は、キャッシュ制御プログラム４０２０は、本来のデータをＦＭＤ１０３０からキャッシュメモリ１０２０へコピーするとともに、他のＦＭＤからパリティデータと他のデータを用いて回復させたデータと当該ＦＭＤから読み出したデータを比較する。ＨＤＤの場合、回復処理はヘッドの移動や回転待ちを伴うアクセスパターンが増加する場合もあり、回復処理で行うＩ／Ｏリクエスト数の増加以上の性能低下も考慮が必要であるが、ＦＭＤの場合はこうした性能低下の考慮は不要である。
【０２００】
＜３．８．リード処理＞。
【０２０１】
図１９は、Ｉ／Ｏ処理プログラム４０１０がリードリクエストを受信した場合に行われる処理の流れの一例を示す。以下、各ステップを説明する。
【０２０２】
（Ｓｔｅｐ１９００１）Ｉ／Ｏ処理プログラム４０１０は、コントローラ１０１０が受け取ったリードリクエストから、ＷＷＮ、ＬＵＮ、開始ブロックアドレス、ブロック長及びライトデータを取得する。
【０２０３】
（Ｓｔｅｐ１９００２）Ｉ／Ｏ処理プログラム４０１０は、ＷＷＮとＬＵＮを、ＬＵパス情報に基づいて、内部ＬＵＮに変換する。なお、ライト処理と同様の方法でＳｔｅｐ１９００１とＳｔｅｐ１９００２を代替してもよい。
【０２０４】
（Ｓｔｅｐ１９００３）Ｉ／Ｏ処理プログラム４０１０は、内部ＬＵ構成情報４０７０を用いて、リードリクエストの開始アドレスとブロック長（ホスト１１００へ予め通知したブロックサイズをベースとした開始ブロックアドレスとブロック長）を、コントローラ１０１０内部で管理するブロック長をベースとした値へ、変換する。
【０２０５】
（Ｓｔｅｐ１９００４）Ｉ／Ｏ処理プログラム４０１０は、さらに、内部ＬＵ構成情報４０７０を用いて、内部ＬＵＮと変換した開始ブロックアドレスとブロック長とを、パリティグループＩＤとパリティグループ上での開始ブロックアドレスと終了ブロックアドレスへ変換する。変換のための計算では、内部ＬＵ構成情報４０７０の開始アドレスに開始ブロックアドレスを加えた値をパリティグループ上での開始ブロックアドレスとし、パリティグループ上での開始ブロックアドレスにブロック長を加えた値をパリティグループ上での終了ブロックアドレスとする。
【０２０６】
（Ｓｔｅｐ１９００５）Ｉ／Ｏ処理プログラム４０１０は、リードリクエストで要求されたデータがキャッシュに存在するか確認し、存在しない場合はキャッシュセグメントを確保し、ステージング処理でキャッシュにデータをコピーする。
【０２０７】
（Ｓｔｅｐ１９００６）Ｉ／Ｏ処理プログラム４０１０は、キャッシュ上のデータをホスト１１００へ転送する。
【０２０８】
以上が、Ｉ／Ｏ処理プログラム４０１０のフローである。なお、本手順のいずれかのステップでＷＷＮやＬＵＮや開始ブロックアドレスやブロック長のチェックを行っても良い。
【０２０９】
なお、本実施形態としては、ＬＵのブロックサイズよりＦＭＤのブロックサイズが大きい形態で用いられることがある。なぜならば、ＦＭＤのＦＭＤアドレス変換情報２０１２のエントリ量は、ＦＭＤの記憶容量をブロックサイズで割った値に関係しており、将来はエントリ量が増加することが予測され、その結果、Ｉ／Ｏリクエストで必要なデータを見つけるための検索時間が増えてしまい、ＦＭＤのブロックサイズを８１９２バイトなど大きなブロックサイズにすることが考えられるからである。一方、通常のホストでは、ブロックサイズは、現時点では５１２Ｂブロックを基本としているからでもある。ただし、これは、ほかの関係を否定するものではない。ＬＵのブロックサイズがＦＭＤのブロックサイズ以上であれば、キャッシュ上のステージングやデステージング処理が効率が良いと考えられるので、こうした構成を積極的に採用することもありえる。
【０２１０】
また、ストレージシステム１０００は、一つの装置から構成される必要はない。例えば、ＦＭＤ１０３０とコントローラ１０１０は別の装置として存在し、バックエンドＩ／Ｏネットワークにて接続されることも考えられる。さらに、コントローラ１０１０に、ＬＵに対してアクセス可能なホストを限定するアクセス制御プログラムを付加したり、ＬＵのレプリカを同じストレージシステム１０００内に作成するローカルレプリケーションプログラムや、異なるストレージシステムへミラーリングを行うリモートミラーリングプログラムを実行してもよい。より具体的には、例えば、リモートミラーリングを行うにあたってはコピー元とコピー先でＦＭＤ１０３０を用いたストレージシステムを採用することも考えられる。さらに、コピー元のストレージシステムは、ＦＭＤ１０３０を用いたストレージシステム１０００を採用し、コピー先のストレージシステムには、ＨＤＤを用いたストレージを採用したリモートミラーリングを実施することも考えられる。その理由としては、ＦＭＤ１０３０とＨＤＤの性能特性やビットコストが異なる事や、ＦＭＤに内蔵されたフラッシュメモリが電荷を操作することでデータを保持するのに対して、ＨＤＤの場合は磁気によってデータを保持するため、データ消失やデータ化けを起こしやすい環境（例えば、温度、湿度、Ｘ線、電場、及び磁場のうちの少なくとも一つを含む）が異なることを利用して耐障害性を向上させる事を挙げることができる。
【０２１１】
さて、以下、更に説明を続ける。
【０２１２】
＜４．ＦＭＤ１０３０の代替デバイス＞。
【０２１３】
＜４．１．ＳＦＭＤ１０３０（２）＞。
【０２１４】
ＦＭＤ１０３０には、いくつかのバリエーションが考えられる。図２１に、その一例を示す。
【０２１５】
ＳＦＭＤ１０３０（２）は、ＦＭＤ１０３０のｓｕｂｓｔｉｔｕｔｅデバイスである。ＳＦＭＤ１０３０（２）は、ＳＦＭＤマスターコントローラ２１０１０と、複数のＩ／Ｏポート２０３０（２）と、複数のＦＭＤ１０３０とを備える。各ＦＭＤ１０３０は、Ｉ／Ｏポート２０３０を介してＳＦＭＤマスターコントローラ２１０１０と接続されている。なお、Ｉ／Ｏポート２０３０は内部バスで代替してもよく、図が示すように一つのＩ／Ｏポート２０３０が接続された形態でも、複数のＩ／Ｏポートが接続された形態でもよい。なお、一つのＳＦＭＤ１０３０（２）に含まれるＦＭＤ１０３０は、以下の項目（Ｔ１）乃至（Ｔ３）が同じであるほうが望ましいと考えられる。
（Ｔ１）記憶容量［Ｄ］。
（Ｔ２）ブロックサイズ［Ｄ］。
（Ｔ３）ＦＭＤコントローラ２０１０の性能。
【０２１６】
ＳＦＭＤマスターコントローラ２１０１０は、複数のＦＭＤ１０３０をまとめて一つの記憶領域を提供するため、ストライピング処理を行う。すなわち、コントローラ１０１０が、ＳＦＭＤ１０３０（２）にアクセスする際は、ＦＭＤ１０３０のアドレス空間［Ｄ］ではなく、新たなアドレス空間［ＳＤ］を用いる。Ｉ／Ｏリクエストを受信したＳＦＭＤマスターコントローラ２１０１０は、ストライピング処理を行うことで、Ｉ／Ｏリクエストに含まれる開始アドレス［ＳＤ］とブロック長［ＳＤ］から、データが保存されているＦＭＤ１０３０とその開始アドレス［Ｄ］とブロック長［Ｄ］を得て、Ｉ／Ｏリクエストを送信する。なお、ＳＦＭＤ１０３０（２）に対するＩ／Ｏリクエストのブロック長［ＳＤ］が長い場合は、データ受信又はデータ送信の途中で、前記変換とＦＭＤ１０３０に対するＩ／Ｏリクエストの送信が行われることは、ＦＭＤ１０３０の場合と同じである。
【０２１７】
好ましくは、ＳＦＭＤ１０３０（２）のブロックサイズ［ＳＤ］は、ＦＭＤ１０１０のブロックサイズ［Ｄ］と等しいと考えられる。また、ＳＦＭＤ１０３０（２）のブロック数［ＳＤ］（または記憶容量  ［ＳＤ］）は、内蔵するＦＭＤ１０３０のブロック数［Ｄ］（または記憶容量［Ｄ］）の総数に等しいが、制御目的にＦＭＤ１０３０のブロック［Ｄ］の一部を用いる場合は、総数から当該ブロック分を差し引いた数でもよい。
【０２１８】
ＳＦＭＤマスターコントローラ２１０１０は、以下の（Ｕ１）乃至（Ｕ４）の情報を、コントローラ１０１０へ送信することができる。
（Ｕ１）ブロック数［ＳＤ］。
（Ｕ２）ブロックサイズ［ＳＤ］。
（Ｕ３）余剰ブロック数［ＳＤ］。
（Ｕ４）ＦＭＣ２０２０の数、及び／又は、ＦＭＤ１０３０の数。
【０２１９】
なお、ＳＦＭＤマスターコントローラ２１０１０は、上記情報に加えて、ＦＭＤ内部構成情報通知プログラム２０１３が提供する情報の一部または全てをコントローラ１０１０へ送信してもよい。
【０２２０】
ところで、ＳＦＭＤ１０３０（２）は、ＦＭＤ１０３０と異なり、或るＦＭＤ１０３０の余剰ブロック数がゼロになった時点で、たとえ他のＦＭＤ１０３０の余剰ブロック数がゼロ以上であっても、ライトリクエストは失敗する。そのため、（Ｕ３）の余剰ブロック数［ＳＤ］の値は、各ＦＭＤ１０３０の余剰ブロック数の最小値（または最小値にＦＭＤ１０３０の数を掛けた数）を報告することが考えられる。
【０２２１】
ＳＦＭＤ１０３０（２）は、ＦＭＤ１０３０と比較して、以下に示す欠点と利点があると考えられる。
（欠点）ＦＭＣの利用効率が悪い。アクセスパターンによっては、特定のＦＭＤ１０３０にライトリクエストが集中するため、コンポーネントが閉塞になるまでの時間が短い。
（利点）ボトルネック箇所が少ない。ＦＭＤコントローラ２０１０で行われる余剰領域管理やアドレス変換は、ＦＭＤアドレス変換情報２０１２の検索を必要とする負荷が低くない処理であるため、ＦＭＤ１０３０に内蔵するＦＭＣの数を増加させても、ＦＭＤコントローラ２１０１０のボトルネック化によって、性能が向上しない場合がある。これを回避するため、ブロックサイズ［Ｄ］を大きくすることで、ＦＭＤ１０３０のアドレス変換時に検索するＦＭＤアドレス変換情報２０１２の大きさを小さくして性能向上する方法も考えられる。しかし、大きすぎるブロックサイズは、ランダムアクセスが多い環境ではアクセスに直接関係ないデータまでステージングやデステージングをしてしまうため、性能が劣化する。ＳＦＭＤ１０３０（２）の場合は、アドレス変換は、複数のＦＭＤコントローラ２０１０にて分散して処理されるため、ボトルネックとなりにくく、かつ大容量のＦＭＣを多く搭載してもブロックサイズを大きくする必要がない。
【０２２２】
なお、上記欠点を解決するため、コントローラ１０１０で行われる以下の一つ以上の処理をＳＦＭＤマスターコントローラ２１０１０でも実行することも考えられる。
（処理１）ダイナミックスペアリング。ＳＦＭＤ１０３０（２）に内蔵するＦＭＤ１０３０の一部をスペア用途として扱い、稼働中のＦＭＤ１０３０の余剰ブロック数が少なくなった場合に、ダイナミックスペアリングを行う。冗長領域を割り当てるためにＦＭＣの利用効率は下がるが、特定のＦＭＤ１０３０にアクセスが集中することによるコンポーネント閉塞までの時間は長くなる。
（処理２）ミラーリングやパリティ等の冗長データの付加。
【０２２３】
なお、上記の処理の有無について、ＳＦＭＤマスターコントローラ２１０１０がコントローラ１０１０からの要求に応じて情報を送信することが考えられる。また、ＳＦＭＤ１０３０（２）の型番によって有無がわかるのであれば、当該情報をコントローラ１０１０が取得することによって前記情報取得に代えてもよい。
【０２２４】
＜４．２．ＳＦＭＤとＦＭＤの混在ストレージシステム＞。
【０２２５】
ＳＦＭＤ１０３０（２）とＦＭＤ１０３０は、コントローラ１０１０から同じ方法でリードリクエストやライトリクエストを送信できる。そのため、ストレージシステム１０００は、複数のＳＦＭＤ１０３０（２）を搭載することができ、こうした構成でも、これまで説明してきた処理が実行可能である。さらに、ストレージシステム１０００は、ＳＦＭＤ１０３０（２）とＦＭＤ１０３０の両方を搭載することも可能である。こうした構成は、ＦＭＤ１０３０におけるＦＭＣ数の違いと同様の理由にて発生しうる。この場合、ＳＦＭＤ１０３０（２）とＦＭＤ１０３０では、内部構造に起因するＩ／Ｏ特性の差や閉塞までの時間（耐久性）が異なるため、パリティグループにＳＦＭＤ１０３０（２）とＦＭＤ１０３０が混在しないような構成をとることが考えられる。これを実現するため、コントローラ１０１０は、両デバイスの内部構造に関連する情報を取得し、その情報を、パリティグループ構成定義時にユーザーに提供したり、チェック処理に用いたりすることが考えられる。また、ユーザーがＬＵを利用するときに、当該ＬＵが、ＳＦＭＤ１０３０（２）かＦＭＤ１０３０のいずれで構成されているのかを表示することで、ストレージ階層を意識したシステム活用を促進することも考えられる。しかし、デバイスが不足している場合等の理由が考えられるため、パリティグループに両デバイスが混在してもよい。
【０２２６】
さらに、ＳＦＭＤ１０３０（２）は、ダイナミックスペアリングや冗長データの有無によって部品点数が増加するかわりに耐久性を向上させることができるため、前記と同様に、内部構造（ダイナミックスペアリングや冗長データの有無を含める）をコントローラ１０１０が取得し、ＳＦＭＤ１０３０（２）の中でもさらに、ダイナミックスペアリング有りのデバイスだけでパリティグループを構成したり、冗長データ有りのデバイスだけでパリティグループを構成したりすることも考えられる。
【０２２７】
＜５．ＦＭＤ１０３０の代替デバイスその２＞。
【０２２８】
＜５．１．複数記憶領域提供ＦＭＤ＞。
【０２２９】
図２２に示す、複数記憶領域提供ＦＭＤ１０３０（３）は、内蔵する複数のＦＭＤ１０３０をコントローラ１０１０へ提供する。提供方式の一例としては、Ｉ／Ｏポート２０３０（３）が持つＷＷＮに属するＬＵとして各ＦＭＤ１０３０を提供する方法が考えられる。コンバーター２２０１０は、例えば、コントローラ１０１０から指定されたＦＭＤ１０３０へアクセスリクエストを振り分けたり、又はＦＭＤ１０３０のポート２０３０がポート２０３０（２）と異なる転送媒体である場合に変換処理を行ったりする。一方、コントローラ１０１０は、複数記憶領域提供ＦＭＤ１０３０（３）に内蔵された複数のＦＭＤ１０３０を認識し、障害発生の有無は当該ＦＭＤ１０３０を単位として管理する。なお、保守員は複数記憶領域提供ＦＭＤ１０３０（３）単位で保守交換を行うことができる。なお、複数記憶領域提供ＦＭＤ１０３０（３）はコンバータ２２０１０を介さず、各ＦＭＤ１０３０毎にコントローラ１０１０と接続するポートを有しても良い。
【０２３０】
＜５．２．複数記憶領域提供ＦＭＤ１０３０（３）を用いたパリティグループ構成＞。
【０２３１】
複数記憶領域提供ＦＭＤ１０３０（３）を用いてパリティグループを構成する場合、コントローラ１０１０は、或る複数記憶領域提供ＦＭＤ１０３０（３）から複数のＦＭＤ１０３０を選択してパリティグループを構成しないようにする必要がある。なぜならば、物理的な障害の単位、電源断の単位、及び、デバイスの抜き差しを行う単位のうちの少なくとの一つの単位は、複数記憶領域提供ＦＭＤ１０３０（３）であるため、同一デバイスから複数のＦＭＤ１０３０を用いていた状況でデバイス障害が発生すると、パリティグループのデータ復元処理が不可能になってしまうからである。
【０２３２】
上記パリティグループ構成を支援するために、コントローラ１０１０は、パリティグループ構成を定義する場合に以下の二つの方法を用いることが考えられる。
（方法１）パリティグループ構成定義時、コントローラ１０１０は、例えば、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）により、複数記憶領域提供ＦＭＤ１０３０（３）とそこに内蔵されているＦＭＤ１０３０の対応関係を表示し、ユーザーから、複数のＦＭＤ１０３０の指定を受け付ける。その指定を受けたコントローラ１０１０は、指定された複数のＦＭＤ１０３０の一部が同じ複数記憶領域提供ＦＭＤ１０３０（３）に属していないかチェックを行う。
（方法２）パリティグループ構成定義時、コントローラ１０１０は、例えば、ＧＵＩにより、マルチＬＵ−ＦＭＤ１０３０（３）の一覧を表示し、ユーザーから、複数のマルチＬＵ−ＦＭＤ１０３０（３）の指定を受け付ける。指定を受けたコントローラ１０１０は、指定された複数の複数記憶領域提供ＦＭＤ１０３０（３）が、それぞれ互いに、搭載されたＦＭＤ１０３０の数と記憶容量が等しいことをチェックする。その後、コントローラ１０１０は、図２３に例示するように、各マルチＬＵ−ＦＭＤ１０３０（３）のＦＭＤ１０３０により構成するサブパリティグループを定義し、さらに、マルチＬＵ−ＦＭＤ１０３０（３）内の複数のサブパリティグループを、Ｃｏｎｃａｔｅｎａｔｅ等で結合した領域をパリティグループとして用いたり、ユーザーに提供したりする。なお、"Ｃｏｎｃａｔｅｎａｔｅ"について説明すると、例えば、ＬＵ１にＬＵ２をＣｏｎｃａｔｅｎａｔｅするとは、ＬＵ１のアドレス空間の最後尾にＬＵ２のアドレス空間の先頭を結合することである。
【０２３３】
＜５．２．ダイナミックスペアリングと閉塞検知＞。
【０２３４】
複数記憶領域提供ＦＭＤ１０３０（３）を用いる場合も、ＳＦＭＤ１０３０（２）と同様に、特定のＦＭＤ１０３０にライトリクエストが集中することがある。そのため、コントローラ１０１０は、各複数記憶領域提供ＦＭＤ１０３０（３）内の各ＦＭＤの余剰容量値を把握し、いずれかのＦＭＤ１０３０に対して余剰ブロック数が少なくなってきた時点で、当該ＦＭＤ１０３０を他の複数記憶領域提供ＦＭＤ１０３０（３）に内蔵されたＦＭＤ１０３０へダイナミックスペアリングを行う。あるいは、各複数記憶領域提供ＦＭＤ１０３０（３）利用時にあらかじめスペアリング用のＦＭＤ１０３０を確保しておき、或るＦＭＤ１０３０の余剰ブロック数が少なくなってきた時点で、当該ＦＭＤ１０３０から、当該ＦＭＤ１０３０と同じ複数記憶領域提供ＦＭＤ１０３０（３）に内蔵されるスペアリング用のＦＭＤ１０３０へダイナミックスペアリングを行う方法も考えられる。あるいは、コントローラ１０１０が、余剰ブロック数が少なくなった複数記憶領域提供ＦＭＤ１０３０（３）内に、スペアリング用のＦＭＤ１０３０が無い場合には、他の複数記憶領域提供ＦＭＤ１０３０（３）のＦＭＤを自己のスペアリング用のＦＭＤ１０３０として使う方法も考えられる。また、コントローラ１０１０（例えば構成制御プログラム４０３０）が、コピー先のスペアリング用のＦＭＤ１０３０を、コピー元のＦＭＤ１０３０が属していたパリティグループ（或いはサブパリティグループ）の要素とし、そのコピー元のＦＭＤ１０３０を、そのパリティグループ（或いはサブパリティグループ）から外すことができる。具体的には、例えば、ＰＧ構成情報４０６０において、そのパリティグループ（或いはサブパリティグループ）に対応する欄に、コピー先のスペアリング用のＦＭＤ１０３０のＩＤを追加し、その欄から、コピー元のＦＭＤ１０３０のＩＤを削除することができる。
【０２３５】
なお、複数記憶領域提供ＦＭＤ１０３０（３）を内蔵したストレージシステムについても、これまで説明した処理が適用可能である。例えば、ユーザーがパリティグループ構成を定義する際は、各複数記憶領域提供ＦＭＤ１０３０から、内蔵するＦＭＣの数、提供容量、余剰容量値、またはＦＭＤ１０３０の数を取得し、同じ数又は容量のデバイス同士でパリティグループを構成する等がある。
【０２３６】
また、複数記憶領域提供ＦＭＤ１０３０（３）を内蔵したストレージシステムの場合、閉塞検知は、ＦＭＤ１０３０単位で行うことができる。そのため、パリティグループとしてみた場合は、データ復元処理が不可能な場合でも、サブパリティグループとしてみた場合は、データ復元処理が可能または不要でＩ／Ｏリクエストを処理可能な場合がある。もし、内部ＬＵが、このようなＩ／Ｏリクエストを処理可能なサブパリティグループだけで構成されている場合は、コントローラ１０１０は、パリティグループとしてはデータ復元処理が不可能と判断した場合でも、内部ＬＵを閉塞とせずにＩ／Ｏリクエストを継続させてもよい。
【０２３７】
＜６．ホストの詳細＞。
【０２３８】
管理サーバ１２００の説明に必要となるホストＬＵについて説明する。
【０２３９】
前述の通り、ホスト１１００はストレージシステムが提供する論理ユニットに対してアクセスリクエストを送信することでフラッシュメモリによる記憶領域を利用することができる。そのために、ホスト１１００にて実行されるＯＳ４１０１は、ホストＬＵを管理する。
【０２４０】
ホストＬＵとはホスト１１００のＯＳ４１０１が論理ユニットに対応するようにＯＳ４１０１が定義する論理的な存在である。ＯＳ４１０１はホストＬＵに対する情報として少なくとも以下の情報を格納する。
＊  ホストＬＵの識別子。当該識別子はＯＳ４１０１によって割り当てられた識別子であるが、割り当てに際してホスト管理者の指示が介在することがある。
＊  ホストＬＵに対応する論理ユニットのポートＩＤ及びＬＵＮ。
＊  ホストＬＵに対応する論理ユニットの提供容量。
【０２４１】
ホストＬＵはアプリケーション４１０３又はファイルシステム４１０２に提供される。アプリケーション４１０３又はファイルシステム４１０２は、ホストＬＵの識別子を直接的または間接的に指定することで、論理ユニットに対するアクセスリクエストを送信している。
【０２４２】
また、データベースプログラム、Ｗｅｂサーバプログラム、メールサーバ等のアプリケーション４１０３では複数の定義情報（アプリケーションデータの格納場所を含む）を設定し、定義情報毎に異なるテーブル、ＨＴＭＬファイル、メールデータを提供することがある。こうした状況を説明するため、アプリケーションの定義情報に基いて処理を行う論理的なコンポーネントとして実行インスタンスを導入する。なお、定義情報の無いアプリケーション４１０３を本発明に適用する場合は実行インスタンスとした説明をアプリケーション４１０３に置き換えればよい。
【０２４３】
＜７．管理サーバの詳細＞。
【０２４４】
次に管理サーバ１２００について説明する。
【０２４５】
＜７．１．管理サーバが有する情報の詳細＞。
【０２４６】
図２５は、管理側ＦＭＤ情報１２０５０の例を示した図である。
【０２４７】
管理側ＦＭＤ情報１２０５０は各ストレージシステムに取り付けられたＦＭＤ１０３０に関する以下の情報を格納する。
（ＭＡ１）  ＦＭＤ１０３０の識別子。
（ＭＡ２）  ＦＭＤ１０３０の閉塞情報。
（ＭＡ３）  ＦＭＤ１０３０の型番。
（ＭＡ４）  ＦＭＤ１０３０の提供容量とブロックサイズ［Ｄ］とフラッシュメモリパッケージ枚数。
（ＭＡ５）  ＦＭＤ１０３０の余剰容量値。
【０２４８】
なお、上記（ＭＡ１）乃至（ＭＡ５）のそれぞれの意味は図５で説明したＦＭＤ情報４０５０の意味と同じである。しかし、管理側ＦＭＤ情報１２０５０とＦＭＤ情報４０５０とは同じデータ構造である必要は無い。同様に管理側ＦＭＤ情報１２０５０とＦＭＤ情報４０５０とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
【０２４９】
図２６は、管理側ＰＧ構成情報１２０６０の例を示した図である。
【０２５０】
管理側ＰＧ構成情報１２０６０は各ストレージシステムに定義されたパリティグループに関する以下の情報を格納する。
（ＭＢ１）  パリティグループの識別子。
（ＭＢ２）  パリティグループの閉塞情報。
（ＭＢ３）  パリティグループのＲＡＩＤレベル。
（ＭＢ４）  パリティグループに属するＦＭＤの数とＦＭＤの識別子。
（ＭＢ５）  パリティグループの余剰容量率。
【０２５１】
なお、上記（ＭＢ１）乃至（ＭＢ４）のそれぞれの意味は図６で説明したＰＧ構成情報４０６０の意味と同じである。しかし、管理側ＰＧ構成情報１２０６０とＰＧ構成情報４０６０とは同じデータ構造である必要は無い。同様に管理側ＰＧ構成情報１２０６０とＰＧ構成情報４０６０とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
【０２５２】
図２７は管理側内部ＬＵ構成情報１２０７０の例を示した図である。
【０２５３】
管理側内部ＬＵ構成情報１２０７０は各ストレージシステムに定義された内部ＬＵに関する以下の情報を格納する。
（ＭＣ１）  内部ＬＵの識別子。
（ＭＣ２）  内部ＬＵの閉塞情報。
（ＭＣ３）  内部ＬＵが定義されたパリティグループの識別子。
（ＭＣ４）  内部ＬＵのブロックサイズ。
（ＭＣ５）  内部ＬＵのコンペア情報
（ＭＣ６）  内部ＬＵの提供容量。本容量はコントローラ１０１０が内部ＬＵ構成情報４０７０の開始アドレス及び終了アドレス及びブロックサイズに基いて計算された値をコントローラ１０１０から受信した値であることが考えられる。しかし、内部ＬＵ構成情報４０７０の開始アドレス及び終了アドレスを管理サーバ１２００が受信できるのであれば、管理サーバ１２００にて算出してもよい。
（ＭＣ７）  内部ＬＵの余剰容量率。
【０２５４】
なお、上記（ＭＣ１）乃至（ＭＣ５）のそれぞれの意味は図７で説明した内部ＬＵ構成情報４０７０の意味と同じである。しかし、管理側内部ＬＵ構成情報１２０７０と内部ＬＵ構成情報４０７０とは同じ同じデータ構造である必要は無い。同様に管理側内部ＬＵ構成情報１２０７０と内部ＬＵ構成情報４０７０とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
【０２５５】
図２８は管理側ＬＵパス情報１２０８０の例を示した図である。
【０２５６】
管理側ＬＵパス情報１２０８０は各ストレージシステムに定義された論理ユニットに関する以下の情報を格納する。
（ＭＤ１）  ホスト１１００に対して提供する内部ＬＵの識別子。
（ＭＤ２）  ＷＷＮ（またはＩ／Ｏポート１０１３の識別子）。本情報は、ホスト１１００に対して提供する内部ＬＵを、どのポート１０１３から提供するかを示す。なお、前述したように、ＷＷＮに代えて、ポート番号など、他種の識別子で代替されてもよい。また、ＬＵパス情報４０８０の該当する情報と異なる内容であってもよい（例えば、ストレージシステムはＷＷＮで管理し、管理サーバはポート番号で管理する）。
（ＭＤ３）  ＬＵＮ。
【０２５７】
なお、上記（ＭＤ１）及び（ＭＤ３）のそれぞれの意味は図１３で説明したＬＵパス情報４０８０の意味と同じである。しかし、管理側ＬＵパス情報１２０８０とＬＵパス情報４０８０とは同じデータ構造である必要は無い。同様に管理側ＬＵパス情報１２０８０とＬＵパス情報４０８０とは同じ意味を持つ情報を有する場合も同じデータ表現形式で格納する必要は無い。
【０２５８】
図２９は管理側代替候補ＦＭＤ情報１２０９０の例を示した図である。
【０２５９】
管理側代替候補ＦＭＤ情報１２０９０は各ストレージシステム毎に代替候補ＦＭＤに関する情報を管理する情報で、以下の情報を持つ。
（ＭＥ１）  代替ＦＭＤとなりうるＦＭＤ１０３０（省略して代替候補ＦＭＤと呼ぶことがある）の数。
（ＭＥ２）  代替候補ＦＭＤの余剰容量率の平均値又は最小値。
（ＭＥ３）  代替候補ＦＭＤ１０３０の識別子
なお、代替候補ＦＭＤ１０３０の特定は、ストレージシステムに取り付けられているが、パリティグループに属していないＦＭＤ１０３０であることが考えられる。しかし、他の案として、コントローラが管理者からのＦＭＤ１０３０を指定した設定リクエストに応じて代替候補ＦＭＤ１０３０のグループ（以後、代替候補ＦＭＤグループと呼ぶ）を定義することも考えられ、この場合はストレージシステムから代替候補ＦＭＤグループに属するＦＭＤ１０３０の識別子を取得すればよい。
【０２６０】
図３８は余剰容量ポリシー情報１２１００の例を示した図である。
【０２６１】
余剰容量ポリシー情報１２１００は余剰容量値に関するポリシー（以後、余剰容量ポリシー又はポリシーと呼ぶことがある）の情報について格納した情報で、以下の情報を持つ。
（ＭＦ１）  ポリシーの識別子。
（ＭＦ２）  余剰容量率を評価する閾値。なお、余剰容量率を評価する基準であれば閾値以外を採用してもよい。
（ＭＦ３）  評価基準に適合した場合に、実行するアクションを識別する名前（または識別子）。
（ＭＦ４）  評価基準に適合した場合に、実行するアクションの実現するアクション指示。なお、アクション指示はプログラムであったり、スクリプトであってもよい。
【０２６２】
図３９は論理ユニット運用情報１２１１０の例を示した図である。
【０２６３】
論理ユニット運用情報１２１１０は、ホスト１１００に定義されたホストＬＵに関する情報を格納する。
（ＭＧ１）  ホストＬＵを定義したスト１１００の識別子。
（ＭＧ２）  ホストＬＵの識別子。
（ＭＧ３）  ホストＬＵに対応する論理ユニットのポート識別子とＬＵＮ。
（ＭＧ４）  ホストＬＵの状態。
（ＭＧ５）  ホストＬＵに適用するポリシーの識別子。
（ＭＧ６）  ホストＬＵを使用するアプリケーションの実行インスタンスの識別子。
【０２６４】
＜７．２．管理サーバの処理＞。
【０２６５】
以下に管理サーバのシステム管理プログラム１２０１０について説明する。
【０２６６】
＜７．２．１．ホストからの管理情報受信＞。
【０２６７】
システム管理プログラム１２０１０は、以下の処理を行うことでホスト１１００の情報を受信する。
（Ｓｔｅｐ１）システム管理プログラム１２０１０は、ホスト１１００からホスト管理情報を受信する。
（Ｓｔｅｐ２）システム管理プログラム１２０１０は、前述のホスト管理情報に基いて、論理ユニット運用情報１２１１０を生成または更新する。
【０２６８】
なお、ホスト１１００が送信するホスト管理情報はホスト１１００が有するアプリケーション４１０３の定義情報及びホストＬＵの情報に基いて作成される。そのため、ホスト管理情報は、アプリケーション４１０３の定義情報及びホストＬＵの情報の一部または全てまたはまたは前回送信分からの差分を含む情報であることが考えられるが、これら情報と同じデータ構造やデータ表現形式で含める必要は無い。また、ホスト設定情報は、アプリケーション４１０３の実行インスタンスとホストＬＵとの関係、及びホストＬＵと論理ユニットとの関係を含むのであればどのような情報表現形式や送信形式であってもよい。
【０２６９】
なお、上記処理は管理者による管理サーバへの指示を契機として実施しても良く、一部の情報がホスト１１００を経由せずに管理者から管理サーバへ入力された情報に基いても良く、繰り返し実行してもよい。
【０２７０】
＜７．２．２．ストレージシステムからの管理情報受信＞。
【０２７１】
システム管理プログラム１２０１０は、以下の処理を行うことでストレージシステム１０００の情報を受信する。
（Ｓｔｅｐ１）システム管理プログラム１２０１０は、ストレージシステム１０００からストレージシステムの管理情報を受信する。
（Ｓｔｅｐ２）システム管理プログラム１２０１０は、前述のストレージシステム管理情報に基いて以下の情報を作成または更新する。
＊  管理側ＦＭＤ情報１２０５０
＊  管理側ＰＧ構成情報１２０６０
＊  管理側内部ＬＵ構成情報１２０７０
＊  管理側ＬＵパス情報１２０８０
＊  管理側代替候補ＦＭＤ情報１２０９０
なお、ストレージシステム１０００が送信するストレージシステム管理情報はストレージシステム１０００が有する以下の情報に基いて作成される。
＊  ＦＭＤ情報４０５０
＊  ＰＧ構成情報４０６０
＊  内部ＬＵ構成情報４０７０
＊  ＬＵパス情報４０８０
ストレージシステム管理情報は、上記情報の一部または全てまたは前回送信分からの差分を含むことが考えられるが、これら情報と同じデータ構造やデータ表現形式でストレージシステム管理情報に含める必要は無い。また、ストレージシステム管理情報は、少なくとも一つの物理的又は論理的なコンポーネントの余剰容量値と当該値に対応するコンポーネントの識別子を含み、ＦＭＤ１０３０とパリティグループと内部ＬＵと論理ユニットとのいずれか二つ以上または全ての関係を示す情報を含むのであれば、どのような情報表現形式や送信形式であってもよい。つまり余剰容量値と上記関係は別々な通信で送信されてもよい。さらには上記関係は管理サーバの入力によって関係構築がなされている場合があるため、ストレージシステム管理情報に含めなくても良い。
【０２７２】
また、上記関係を示す情報については２回目以降のストレージシステム管理情報には含めなくても良い。その一つの形態として、ストレージシステム管理情報は、ＦＭＤ１０３０の識別子とＦＭＤの余剰容量値だけを含む情報であっても構わない。
【０２７３】
同様に、ストレージシステムからの管理情報を受信する処理は、ストレージシステム管理情報に含まれる少なくとも一つの論理的又は物理的なコンポーネントの余剰容量値に基いて、管理サーバ１２００が有する情報の余剰容量値（または余剰容量率）を更新できればよい。その一例として、ストレージシステム管理情報に含まれる余剰容量値をそのまま管理サーバ１２００が有する情報の余剰容量値（または余剰容量率）に格納することも考えられるが、何らかの変換を行った後に格納してもよい。
【０２７４】
なお、上記処理は管理者による管理サーバ１２００への指示を契機として実施しても良く、関係に関する情報については一部の情報がホスト１１００を経由せずに管理者から管理サーバへ入力された情報に基いても良い。また、本処理は繰り返し実行してもよい。
【０２７５】
＜７．２．３．余剰容量運用ポリシーの設定＞。
【０２７６】
システム管理プログラム１２０１０は、以下の処理を行うことで余剰容量ポリシー情報１２１００又は論理ユニット運用情報１２１１０を作成または更新する。
（Ｓｔｅｐ１）システム管理プログラム１２０１０は、入出力装置を介して、管理者から以下の情報を受信する。
＊  ポリシーを適用する閾値
＊  余剰容量率の評価基準。より具体的には閾値。
＊  アクション名。
＊  アクション指示。
（Ｓｔｅｐ２）システム管理プログラム１２０１０は、管理者から受信した情報に基き、余剰容量ポリシー情報１２１００を作成または更新する。具体的には以下の通りである：
＊  受信した情報がポリシーの新規追加であれば、システム管理プログラム１２０１０は新しいポリシー識別子を生成し、余剰容量ポリシー情報１２１００に上記情報を共に格納する。
＊  受信した情報がポリシーの更新であれば、システム管理プログラム１２０１０は余剰容量ポリシー情報１２１００の変更対象情報を更新する。
（Ｓｔｅｐ３）システム管理プログラム１２０１０は、管理者からポリシーを特定する情報とポリシーを適用するホストＬＵまたは使用アプリケーションの実行インスタンスを特定する情報を受信する。なお、ポリシーを特定する情報の例としてはポリシー識別子がある。また、ポリシーを適用するホストＬＵまたは使用アプリケーションの実行インスタンスを特定する情報の例としては、ホストＬＵの識別子や、使用アプリケーションの実行インスタンスの識別子がある。
（Ｓｔｅｐ４）システム管理プログラム１２０１０は、Ｓｔｅｐ３で受信した情報に基いて、論理ユニット運用情報１２１１０を更新する。
【０２７７】
なお、システム管理プログラム１２０１０は、Ｓｔｅｐ１及びＳｔｅｐ２とは独立に、Ｓｔｅｐ３及びＳｔｅｐ４を実行することで、入力済みのポリシーを適用するホストＬＵの変更を行っても良い。
【０２７８】
＜７．２．４．各コンポーネントの余剰容量値の算出処理＞。
【０２７９】
システム管理プログラム１２０１０は、以下の情報を算出して更新する。
【０２８０】
（算出１）管理側ＰＧ構成情報１２０６０のパリティグループに対する余剰容量率：  管理側ＰＧ構成情報１２０６０の参加ＦＭＤの識別子を参考に、管理側ＦＭＤ情報１２０５０に格納された算出対象パリティグループに属する一つ以上のＦＭＤの余剰容量率を取得する（実際には、余剰容量と提供容量を取得してから余剰容量率を算出する）。そして、取得した余剰容量率から最小の余剰容量率を管理側ＰＧ構成情報１２０６０の算出対象パリティグループの余剰容量率としてこの最小値を格納する。本算出処理は少なくとも、管理側ＦＭＤ情報の提供容量又は余剰容量値の変化（たとえば、上述のストレージシステム管理情報受信の契機や、ＦＭＤを交換した場合や、さらにはストレージ装置から余剰容量値の変化を意味するメッセージを受領した場合がある）、または管理側ＰＧ構成情報の参加ＦＭＤの識別子の変化（例えば、ダイナミックスペアリングを実行した場合、パリティグループの新規定義または定義更新を行った場合）を検知した際に行えばよい。
【０２８１】
（算出２）管理側内部ＬＵ構成情報１２０７０の内部ＬＵに対する余剰容量率：  管理側内部ＬＵ構成情報１２０７０のパリティグループの識別子を参考に、管理側ＰＧ構成情報１２０６０の算出対象の内部ＬＵが定義されたパリティグループの余剰容量率を管理側ＰＧ構成情報１２０６０から取得する。さらに取得した値を、算出対象の内部ＬＵの余剰容量率として、管理側内部ＬＵ構成情報１２０７０に格納する。なお、内部ＬＵが複数のパリティグループを用いて定義されている場合は、各パリティグループに対応する余剰容量率のうち、最小値を算出対象の内部ＬＵの余剰容量率としてもよい。本算出処理は少なくとも、算出対象の内部ＬＵに対応するパリティグループの余剰容量率の変化を検知したり、内部ＬＵとパリティグループの対応関係の変化（例えば、内部ＬＵのデータを透過的にあるパリティグループから他のパリティグループへ移動させる）を検知した場合に行えばよい。
【０２８２】
（算出３）管理側代替候補ＦＭＤ情報１２０９０の代替候補ＦＭＤの余剰容量率の平均値または最小値：  代替候補ＦＭＤについて、管理側ＦＭＤ情報１２０５０に格納された余剰容量率を取得する（実際には、余剰容量と提供容量を取得してから余剰容量率を算出する）。そして取得した余剰容量率の平均値または最小値を、管理側代替候補ＦＭＤ情報１２０９０に格納する。
【０２８３】
＜７．３．管理情報表示及び表示処理＞。
【０２８４】
次に、管理サーバ１２００の情報表示について表示内容の算出処理と共に説明する。なお、それぞれの表示は管理サーバ１２００が有する以下の情報に基く。
＊  管理側ＦＭＤ情報１２０５０
＊  管理側ＰＧ構成情報１２０６０
＊  管理側内部ＬＵ構成情報１２０７０
＊  管理側ＬＵパス情報１２０８０
＊  管理側代替候補ＦＭＤ情報１２０９０
＊  余剰容量ポリシー情報１２１００
＊  論理ユニット運用情報１２１１０
なお、以後の説明では管理サーバ１２００が管理する上記情報をまとめてシステム管理情報と呼ぶことがある。なお、このシステム管理情報は上記情報が全て含まれるとは限らない。例えば本発明はポリシーを用いない運用も可能であり、またホストＬＵやアプリケーションを考慮せずにポリシーを設定する場合もあるため、そうした実施形態の際には上記全ての情報が必要ではないからである。
【０２８５】
＜７．３．１．管理サーバの画面表示例＞。
【０２８６】
図３０は、管理サーバ１２００がストレージシステム１０００又はホスト１１００に関する情報を入出力装置を用いて表示する画面の一例である。
【０２８７】
画面表示は第１ペイン３００１０、第２ペイン３００２０、及び第３ペイン３００３０の３つを含み、それぞれのペインでは以下に示すような情報を表示し、また入出力装置による入力を支援する。
【０２８８】
（第１ペイン）管理サーバ１２００が管理するストレージシステム１０００及びストレージシステム１０００の物理的コンポーネント（たとえばＦＭＤ）又はストレージシステム１０００への設定で論理的に生成された論理コンポーネント（たとえばパリティグループ、内部ＬＵ、論理ユニット）を意味する表示オブジェクトを表示する。なお、図３０における表示オブジェクトはアイコン又は／及び文字列を指すが、他の映像又は音声であってもよい。第１ペインはさらに、管理サーバ１２００が管理するホスト１１００、及びホスト１１００の物理的又は論理的なコンポーネント（例えばアプリケーションの実行インスタンス）を意味する表示オブジェクトを表示する。さらに、第１ペインは表示オブジェクト間の上位関係又は下位関係を表示する（図３０ではアイコン間の点線が該当する）。第１ペインはストレージシステム１０００及びホスト１１００の各々に対応したコンポーネント全体を示す表示オブジェクトを表示する（以後、このような表示オブジェクトと強調する場合は一覧表示オブジェクトと呼ぶことにし、特に一覧表示オブジェクトと前出の表示オブジェクトと区別しないでよい場合は単に表示オブジェクトと呼ぶ）。図３０の「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部ＬＵ」、「ポート」等それぞれのコンポーネントを一意に特定する識別子を伴わない表示オブジェクトが、一覧表示オブジェクトである。
【０２８９】
（第２ペイン）第１ペインを用いて入出力装置から指定された表示オブジェクトに対応するストレージシステム１０００又はホスト１１００のコンポーネント（物理的、論理的を問わず）の管理情報を表示する。なお、第１ペインで一覧表示オブジェクトが指定された場合は、第２ペインでは一覧表示オブジェクトに対応するコンポーネント（論理的、物理的を問わず）の要約管理情報を表示する。
（第３ペイン）第１ペインを用いて入出力装置から一覧表示オブジェクトを指定された場合に、当該一覧表示オブジェクトに対応する一つ以上のコンポーネント（論理的、物理的を問わず）のそれぞれの管理情報を表示する。
【０２９０】
なお、「表示オブジェクトＡは表示オブジェクトＢの上位（または上位関係）にある」と説明した場合、第１ペインにおけるツリー表示において表示オブジェクトＡは表示オブジェクトＢよりも根に近いことを指す。「表示オブジェクトＡは表示オブジェクトＢの下位（または下位関係）にある」と説明した場合、第１ペインにおけるツリー表示において表示オブジェクトＡは表示オブジェクトＢよりも葉に近いことを指す。
【０２９１】
なお、入出力装置にポインティングデバイス（例えばマウス、タッチパッド、タッチスクリーン、ペンタブレット）を含む場合は、表示オブジェクトをダブルクリックで指定することで、管理サーバ１２００は指定された表示オブジェクトの下位関係に該当する表示オブジェクトを展開表示する。また、図３０又は以後説明する図３１乃至図３７の例ではＧＵＩを想定しているが、コマンドラインインターフェース（ＣＬＩ）を用いたコンソール出力であってもよい。
【０２９２】
＜７．３．２．ＦＭＤに関する表示＞。
【０２９３】
引き続き図３０を用いて、管理サーバが、記憶デバイスとしてＦＭＤ１０３０を指定された時に、表示する情報について説明する。
【０２９４】
なお、図３０の例ではＳＴＧ１の表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステムに属するコンポーネント（論理的、物理的を問わず）として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部ＬＵ」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている（別な言い方をすればＳＴＧ１の表示オブジェクトから下位の関係に当たるそれぞれの表示オブジェクトが表示されるとも言える）。さらに、図３０の例では、「記憶デバイス」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステム１０００に設置された一つ以上のＦＭＤに対応した表示オブジェクト（つまり、ＦＭＤ１乃至ＦＭＤ３の文字列を有する表示オブジェクト）が画面表示されている。
【０２９５】
そして、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が所定のＦＭＤ１０３０の表示オブジェクト（図３０ではＦＭＤ３の識別子を持つ表示オブジェクト）をクリックすることで、管理サーバ１２００は所定のＦＭＤ１０３０を指定した管理情報表示リクエストを受信する。
【０２９６】
管理情報表示リクエストを受信した管理サーバ１２００は、第２ペインに所定のＦＭＤ１０３０に関する管理情報として以下の少なくとも一つを表示する。
＊  記憶デバイスを特定する識別子として、所定のＦＭＤ１０３０の識別子を表示する。本表示は管理側ＦＭＤ情報１２０５０のＦＭＤ識別子に基いて行われる。
＊  記憶デバイスの取り付け位置に関する情報を表示する。本表示は管理側ＦＭＤ情報１２０５０のＦＭＤ識別子に基いて取り付け位置を算出することで行われる。
＊  記憶デバイスの型番として、所定のＦＭＤ１０３０の型番を表示する。本表示は管理側ＦＭＤ情報１２０５０の型番に基いて行われる。
＊  記憶デバイスの構成の一部として、所定のＦＭＤ１０３０のＦＭＣ枚数及びブロックサイズ［Ｄ］を表示する。本表示は管理側ＦＭＤ情報１２０５０のＦＭＣ枚数及びブロックサイズに基いて行われる。
＊  記憶デバイスの提供容量として、所定のＦＭＤ１０３０の提供容量を表示する。本表示は管理側ＦＭＤ情報１２０５０の提供容量に基いて行われる。
＊  記憶デバイスの余剰容量率として、所定のＦＭＤ１０３０の余剰容量率を表示する。本表示は管理側ＦＭＤ情報１２０５０の余剰容量値又は／及び提供容量に基いて行われる。
＊  記憶デバイスの状態として、所定のＦＭＤ１０３０の状態を表示する。本表示は管理側ＦＭＤ情報１２０５０の閉塞情報と余剰容量率に基いて行われる。
【０２９７】
なお、ＦＭＤ１０３０の状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
（状態１）正常（Ｉ／Ｏ処理受付可能という意味）
（状態２）閉塞（利用不可能という意味）
（状態３）余剰領域不足（図中では省略して余剰不足と表現することがある）
また、管理サーバ１２００は、複数のＦＭＤ１０３０の各々について、上記所定のＦＭＤ１０３０に関する管理情報を第３ペインに表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が記憶デバイスの文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ１２００は所定のＦＭＤ１０３０を指定した管理情報表示リクエストを受信した時点であることが考えられる。
【０２９８】
＜７．３．３．パリティグループに関する表示＞。
【０２９９】
図３１を用いて、管理サーバ１２００が、所定のパリティグループを指定された時に表示する情報について説明する。
【０３００】
なお、図３１の例ではＳＴＧ１の表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステムに属するコンポーネント（論理的、物理的を問わず）として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部ＬＵ」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図３１の例では、「パリティグループ」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステム１０００に定義された一つ以上のパリティグループに対応した表示オブジェクト（つまり、ＰＧ１、ＰＧ２、及びＰＧｘの表示オブジェクト）が画面表示されている。
【０３０１】
そして、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が所定のパリティグループの表示オブジェクト（図３１ではＰＧ１の識別子を持つ表示オブジェクト）をクリックすることで、管理サーバ１２００は所定のパリティグループを指定した管理情報表示リクエストを受信する。
【０３０２】
管理情報表示リクエストを受信した管理サーバ１２００は、第２ペインに所定のパリティグループに関する管理情報として以下の少なくとも一つを表示する。
＊  パリティグループを特定する識別子として、所定のパリティグループの識別子を表示する。本表示は管理側ＰＧ構成情報１２０６０のパリティグループ識別子に基いて行われる。
＊  パリティグループのＲＡＩＤレベルとして、所定のパリティグループのＲＡＩＤレベルを表示する。本表示は管理側ＰＧ構成情報１２０６０のＲＡＩＤレベルに基いて行われる。
＊  パリティグループの記憶デバイス数として、所定のパリティグループに属するＦＭＤ１０３０の数を表示する。本表示は管理側ＰＧ構成情報１２０６０のＦＭＤ数に基いて行われる。
＊  パリティグループの提供容量として、所定のパリティグループのＲＡＩＤ処理化後に実現される容量を表示する。本表示は管理側ＰＧ構成情報１２０６０の参加ＦＭＤ識別子及びＲＡＩＤレベル、及び管理側ＦＭＤ情報１２０５０の提供容量に基いて行われる。
＊  パリティグループの余剰容量率として、所定のパリティグループの余剰容量率を表示する。本表示は管理側ＰＧ構成情報１２０６０の余剰容量率に基いて行われる。
＊  パリティグループの状態として、所定のパリティグループの状態を表示する。本表示は管理側ＰＧ構成情報１２０６０の閉塞情報と余剰容量率に基いて行われる。
【０３０３】
なお、パリティグループの状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
（状態１）正常（Ｉ／Ｏ処理受付可能という意味）
（状態２）縮退（３．６．１．章の定義を参照。また、別な言葉で表現すればパリティグループに属する正常状態のＦＭＤ１０３０が一つ閉塞した時点でデータ消失が発生する状態とも言える（特にＲＡＩＤ５の場合））
（状態３）閉塞（利用不可能という意味）
（状態４）余剰領域不足（図中では省略して余剰不足と表現している）
（状態５）縮退かつ余剰領域不足（縮退状態のパリティグループに属するＦＭＤ１０３０の少なくとも一つが余剰領域不足状態であることを指す）
なお、図３１の画面表示で余剰容量率として表示する値は以下の値の少なくとも一つであることが考えられる。
＊  パリティグループに属する一つ以上のＦＭＤ１０３０の余剰容量率のうち、もっとも小さな値。余剰領域不足によるパリティグループの縮退状態化を回避するために監視する場合は当該値が好適である。
＊  パリティグループに属する一つ以上のＦＭＤ１０３０の余剰容量率のうち、もっとも小さな値とその次に小さな値。余剰領域不足によるパリティグループの閉塞状態化を回避するために監視する場合は当該値が好適である。
＊  パリティグループに属する一つ以上のＦＭＤ１０３０の余剰容量率の平均値と分散値。
【０３０４】
さらに、管理情報表示リクエストを受信した管理サーバ１２００は、第３ペインに所定のパリティグループに属する一つ以上のＦＭＤ１０３０の各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図３０で説明した値であることが考えられるほが他の値であってもよい。
【０３０５】
また図３２のように、管理サーバ１２００は、複数のパリティグループの各々について、上記所定のパリティグループに関する管理情報を第３ペインに表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が「パリティグループ」の文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ１２００がパリティグループを指定した管理情報表示リクエストを受信した時点であることが考えられる。このときに第２ペインに表示する情報としては、以下が考えられるが他の集約情報を表示してもよい。
＊  クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。
＊  クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義されたパリティグループの数。
＊  クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義されたパリティグループの余剰容量率の最小値又は平均値。
【０３０６】
さらに、管理情報表示リクエストを受信した管理サーバ１２００は、第３ペインにストレージシステム１０００に定義された一つ以上パリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図３１で説明した値に加えて、各々のパリティグループに属するＦＭＤ１０３０に関する情報であることが考えられるほが他の値であってもよい。
【０３０７】
＜７．３．４．内部ＬＵに関する表示＞。
【０３０８】
図３３を用いて管理サーバ１２００が所定の内部ＬＵを指定された時に画面表示する情報について説明する。
【０３０９】
なお、図３３の例ではＳＴＧ１の表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステムに属するコンポーネント（論理的、物理的を問わず）として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部ＬＵ」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図３３の例では、「パリティグループ」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステム１０００に定義された一つ以上の内部ＬＵに対応した表示オブジェクト（つまり、Ｉ−ＬＵ１乃至Ｉ−ＬＵ３、及びＩ−ＬＵｘの文字列を持つ表示オブジェクト）が画面表示されている。
【０３１０】
そして、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が所定の内部ＬＵの表示オブジェクト（図３３ではＩ−ＬＵ１の識別子を持つ内部ＬＵ）をクリックすることで、管理サーバ１２００は所定の内部ＬＵを指定した管理情報表示リクエストを受信する。
【０３１１】
管理情報表示リクエストを受信した管理サーバ１２００は、第２ペインに所定の内部ＬＵに関する管理情報として以下の少なくとも一つを表示する。
＊  内部ＬＵを特定する識別子として、所定の内部ＬＵの識別子を表示する。本表示は管理側内部ＬＵ構成情報１２０７０の内部ＬＵの識別子に基いて行われる。
＊  内部ＬＵが定義されたパリティグループの識別子として、所定の内部ＬＵが定義されたパリティグループの識別子を表示する。本表示は管理側内部ＬＵ構成情報１２０７０のパリティグループ識別子に基いて行われる。
＊  内部ＬＵのブロックサイズとして、所定の内部ＬＵのブロックサイズを表示する。本表示は管理側内部ＬＵ構成情報１２０７０のブロックサイズに基いて行われる。
＊  内部ＬＵの提供容量として、所定の内部ＬＵの提供容量を表示する。本表示は管理側内部ＬＵ構成情報１２０７０の提供容量に基いて行われる。
＊  内部ＬＵの余剰容量率として、所定の内部ＬＵが定義されたパリティグループの余剰容量率を表示する。本表示は管理側内部ＬＵ構成情報１２０７０の余剰容量率に基いて行われる。
＊  内部ＬＵの状態として、所定の内部ＬＵの状態を表示する。本表示は管理側内部ＬＵ構成情報１２０７０の閉塞情報及び余剰容量率に基いて行われる。
【０３１２】
なお、内部ＬＵの状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
（状態１）正常（Ｉ／Ｏ処理受付可能という意味）
（状態２）縮退（３．６．１．章の定義を参照。また、別な言葉で表現すれば、所定の内部ＬＵが定義されたパリティグループに属する、正常状態のＦＭＤ１０３０が一つ閉塞した時点でデータ消失が発生する状態とも言える（特にＲＡＩＤ５の場合））
（状態３）閉塞（利用不可能という意味）
（状態４）余剰領域不足（図中では省略して余剰不足と表現することがある）
（状態５）縮退かつ余剰領域不足（所定の内部ＬＵが定義された縮退状態のパリティグループに属する、ＦＭＤ１０３０の少なくとも一つが余剰領域不足状態であることを指す）
なお、図３３の画面表示で余剰容量率として表示する値は図３１及び図３２で説明したパリティグループに関する表示で説明した値を表示してもよい。
【０３１３】
さらに、管理情報表示リクエストを受信した管理サーバ１２００は、第３ペインに所定の内部ＬＵが定義された一つ以上のパリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図３１及び図３２で説明した値であることが考えられるほが他の値であってもよい。
【０３１４】
また、管理サーバ１２００は、複数の内部ＬＵの各々について、上記所定の内部ＬＵに関する管理情報を第３ペインに一覧表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が「内部ＬＵ」の文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ１２００がパリティグループを指定した管理情報表示リクエストを受信した時点であることが考えられる。このときに第２ペインに表示する情報としては、以下が考えられるが他の集約情報を表示してもよい。
＊  クリックした「内部ＬＵ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。
＊  クリックした「内部ＬＵ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義された内部ＬＵの数。
＊  クリックした「パリティグループ」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムに定義された内部ＬＵの余剰容量率の最小値又は平均値。
【０３１５】
＜７．３．５．論理ユニットに関する表示＞。
【０３１６】
図３４を用いて管理サーバ１２００が所定のＬＵを指定された時に画面表示する情報について説明する。
【０３１７】
なお、図３４の例ではＳＴＧ１の表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステムに属するコンポーネント（論理的、物理的を問わず）として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部ＬＵ」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図３４の例では、「ポート」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステム１０００が有する一つ以上のポートの各々に対応した表示オブジェクト（つまり、ｙｙ及びｚｚの文字列を有する表示オブジェクト）が画面表示されている。さらに、ｚｚの「ポート」一覧表示オブジェクトをポインティングデバイスでダブルクリックすることでｚｚの識別子を持つポートに定義された一つ以上の論理ユニットの各々に対応した表示オブジェクト（つまり、ＬＵＮ０及びＬＵＮ１の文字列を有する表示オブジェクト）が画面表示されている。
【０３１８】
そして、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が所定のＬＵの表示オブジェクト（図３３ではＬＵＮ０の識別子を持つ表示オブジェクト）をクリックすることで、管理サーバ１２００は所定の論理ユニットを指定した管理情報表示リクエストを受信する。
【０３１９】
管理情報表示リクエストを受信した管理サーバ１２００は、第２ペインに所定の論理ユニットに関する管理情報として以下の少なくとも一つを表示する。
＊  論理ユニットが定義されたポートを特定する識別子として、所定の論理ユニットが定義されたポートを特定する識別子を表示する。なお、当該識別子はファイバーチャネルの場合はＷＷＮやポートＩＤ、Ｅｔｈｅｒｎｅｔの場合はＭＡＣアドレスやＩＰアドレスが考えられるが、他の識別子であってもよい。本表示は管理側ＬＵパス情報１２０８０のポート識別子に基いて行われる。
＊  論理ユニットを特定する識別子として、所定の論理ユニットの識別子を表示する。なお、当該識別子としてはＳＣＳＩのＬＵＮであることが考えられるが、他の識別子でもよい。本表示は管理側ＬＵパス情報１２０８０のＬＵＮに基いて行われる。
＊  論理ユニットが対応する内部ＬＵの識別子として、所定の論理ユニットが対応する内部ＬＵの識別子を表示する。本表示は管理側ＬＵパス情報１２０８０の内部ＬＵ識別子に基いて行われる。
＊  論理ユニットのブロックサイズとして、所定の論理ユニットのブロックサイズを表示する。本表示は管理側ＬＵパス情報１２０８０の内部ＬＵの識別子、及び管理側内部ＬＵ構成情報１２０７０のブロックサイズに基いて行われる。
＊  論理ユニットの提供容量として、所定の論理ユニットに対応する内部ＬＵの提供容量を表示する。本表示は管理側ＬＵパス情報１２０８０の内部ＬＵの識別子、及び管理側内部ＬＵ構成情報１２０７０の提供容量に基いて行われる。
＊  論理ユニットの余剰容量率として、所定の論理ユニットに対応する内部ＬＵの余剰容量率を表示する。本表示は管理側ＬＵパス情報１２０８０の内部ＬＵの識別子、及び管理側内部ＬＵ構成情報１２０７０の余剰容量率に基いて行われる。
＊  論理ユニットの状態として、所定の論理ユニットの状態を表示する。本表示は管理側ＬＵパス情報１２０８０の内部ＬＵの識別子、及び管理側内部ＬＵ構成情報１２０７０の閉塞情報及び余剰容量率に基いて行われる。
【０３２０】
なお、論理ユニットの状態として以下のいずれかの値を表示することが考えられるが、他の値を表示しても良い。
（状態１）正常（Ｉ／Ｏ処理受付可能という意味）
（状態２）縮退（３．６．１．章の定義を参照。また、別な言葉で表現すれば、所定の論理ユニットに対応するパリティグループに属する、正常状態のＦＭＤ１０３０が一つ閉塞した時点でデータ消失が発生する状態とも言える（特にＲＡＩＤ５の場合））
（状態３）閉塞（利用不可能という意味）
（状態４）余剰領域不足（図中では省略して余剰不足と表現することがある）
（状態５）縮退かつ余剰領域不足（所定の論理ユニットに対応する縮退状態のパリティグループに属する、ＦＭＤ１０３０の少なくとも一つが余剰領域不足状態であることを指す）
なお、図３４の画面表示で余剰容量率として表示する値は図３１及び図３２で説明したパリティグループに関する表示で説明した値を表示してもよい。
【０３２１】
さらに、管理情報表示リクエストを受信した管理サーバ１２００は、第３ペインに所定の論理ユニットに対応する一つ以上のパリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図３１及び図３２で説明した値であることが考えられるほが他の値であってもよい。
【０３２２】
また、管理サーバ１２００は、複数の論理ユニットの各々について、上記所定の論理ユニットに関する管理情報を第３ペインに表示してもよい。なお、そのときの契機としては、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が「ポート」の文字列を持つ一覧表示オブジェクトをクリックすることにより、管理サーバ１２００が所定のポートを指定した管理情報表示リクエストを受信した時点であることが考えられる。このときに第２ペインに表示する情報としては、以下が考えられるが他の集約情報を表示してもよい。
＊  クリックした「ポート」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。
＊  クリックした「ポート」の一覧表示オブジェクトに対応するポートに対して定義された一つ以上の論理ユニットの数。
＊  クリックした「ポート」の一覧表示オブジェクトに対応するポートに対して定義された一つ以上の論理ユニットの余剰容量率の最小値又は平均値。
【０３２３】
さらに、管理情報表示リクエストを受信した管理サーバ１２００は、第３ペインにストレージシステム１０００に定義された一つ以上パリティグループの各々に関する管理情報を一覧表示してもよい。なお、当該管理情報については図３１で説明した値に加えて、各々のパリティグループに属するＦＭＤ１０３０に関する情報であることが考えられるほが他の値であってもよい。
【０３２４】
＜７．３．６．代替候補ＦＭＤに関する表示＞。
【０３２５】
図３５を用いて、管理サーバが、代替候補デバイスを指定された時に、表示する情報について説明する。
【０３２６】
なお、図３５の例ではＳＴＧ１の表示オブジェクトをポインティングデバイスでダブルクリックすることでＳＴＧ１で識別されるストレージシステムに属するコンポーネント（論理的、物理的を問わず）として、「記憶デバイス」、「代替候補デバイス」、「パリティグループ」、「内部ＬＵ」、「ポート」の各々に対応した一覧表示オブジェクトが画面表示されている。
【０３２７】
そして、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が代替候補デバイスの一覧表示オブジェクトをクリックすることで、管理サーバ１２００は代替候補デバイスを指定した管理情報表示リクエストを受信する。
【０３２８】
管理情報表示リクエストを受信した管理サーバ１２００は、第２ペインに代替候補デバイスに関する管理情報として以下の少なくとも一つを表示する。
＊  クリックした「代替候補デバイス」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムの識別子。本表示は管理側代替候補ＦＭＤ情報１２０９０のストレージシステムの識別子に基いて行われる。
＊  クリックした「代替候補デバイス」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムが有する代替候補ＦＭＤ１０３０の数。本表示は管理側代替候補ＦＭＤ情報１２０９０のＦＭＤ数に基いて行われる。
＊  クリックした「代替候補デバイス」の一覧表示オブジェクトから上位の、ストレージシステムの一覧表示オブジェクトに対応するストレージシステムが有する代替候補デバイスの平均余剰容量率又は最小余剰容量率。本表示は管理側代替候補ＦＭＤ情報１２０９０の余剰容量率に基いて行われる。
【０３２９】
また、管理サーバ１２００は、複数の代替候補ＦＭＤ１０３０の各々について、代替候補ＦＭＤ１０３０に関する下記の少なくとも一つの管理情報を第３ペインに表示してもよい。なお、表示する情報としては、ＦＭＤ１０３０を指定することで第２ペインに表示された情報の少なくとも一つを含むことが考えられるが、他の情報を表示してもよい。
【０３３０】
＜７．３．７．アプリケーションに関する表示＞。
【０３３１】
図３６を用いて、管理サーバ１２００が、所定のホスト及び所定のホストが認識した論理ユニット（以後、ホストが認識した論理ユニットをホストＬＵと呼ぶ）を指定された時に表示する情報について説明する。
【０３３２】
なお、図３６の例ではＨｏｓｔ１の表示オブジェクトをポインティングデバイスをダブルクリックすることでＨｏｓｔ１で識別されるホスト１１００に属するコンポーネント（論理的、物理的を問わず）として、「アプリケーション」及び「ＬＵ」の各々に対応した一覧表示オブジェクトが画面表示されている。さらに、図３６の例では「アプリケーション」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることで、Ｈｏｓｔ１で識別されるホスト１１００に設定された一つ以上のアプリケーションの実行インスタンスに対応した一覧表示オブジェクト（つまり、「メールサーバ」、「アーカイブ１」、「Ｗｅｂサーバ１」それぞれの表示オブジェクト）が画面表示されている。さらに、図３６の例では「Ｗｅｂサーバ１」の一覧表示オブジェクトをポインティングデバイスでダブルクリックすることで、Ｗｅｂサーバ１で識別されるアプリケーション実行インスタンスがデータ格納又は参照に用いている一つ以上のホストＬＵの表示オブジェクト（つまり、「ｓｄａ１」と「ｓｄａ２」それぞれの表示オブジェクト）が画面表示されている。
【０３３３】
そして、管理者が画面表示を介し、ポインティングデバイスカーソル３００４０が所定のホストＬＵの表示オブジェクト（図３６では「ｓｄａ２」の表示オブジェクト）をクリックすることで、管理サーバ１２００は所定のホストＬＵを指定した管理情報表示リクエストを受信する。
【０３３４】
管理情報表示リクエストを受信した管理サーバ１２００は、第２ペインに所定のホストＬＵに関する管理情報として以下の少なくとも一つを表示する。
＊  アプリケーション種別またはアプリケーションの実行インスタンスを識別する情報として、所定のホストＬＵの表示オブジェクトの上位に該当するアプリケーションの一覧表示オブジェクトに対応する、アプリケーションの実行インスタンスの識別子を表示する。なお、所定のホストＬＵを複数のアプリケーション実行インスタンスが共有している場合は、複数のアプリケーション実行インスタンスの識別子を表示してもよい。本表示は論理ユニット運用情報１２１１０の使用アプリケーションの実行インスタンスの識別子に基いて行われる。
＊  ホストＬＵの識別子として、所定のホストＬＵのホスト１１００が割り当てた識別子を表示する。本表示は論理ユニット運用情報１２１１０のホストＬＵ識別子に基いて行われる。
＊  ホストＬＵを論理ユニットとして提供しているポートの識別子とＬＵＮ番号として、所定のホストＬＵに対応する論理ユニットが定義されたポートの識別子とＬＵＮ番号を表示する。本表示は論理ユニット運用情報１２１１０のＬＵＮに基いて行われる。
＊  ホストＬＵの提供容量として、所定のホストＬＵとしてホスト１１００が検知した容量、または所定のホストＬＵに対応する論理ユニットに対応する内部ＬＵの提供容量を表示する。本表示は論理ユニット運用情報１２１１０の使用アプリケーションのポート識別子及びＬＵＮ、管理側ＬＵパス情報の内部ＬＵ識別子、及び管理側内部ＬＵ構成情報の提供容量に基いて行われる。
＊  ホストＬＵの余剰容量率として、所定のホストＬＵに対応する論理ユニットに対応する内部ＬＵの余剰容量率を表示する。本表示は論理ユニット運用情報１２１１０の使用アプリケーションのポート識別子及びＬＵＮ、管理側ＬＵパス情報の内部ＬＵ識別子、及び管理側内部ＬＵ構成情報の余剰容量率に基いて行われる。
＊  ホストＬＵに提供された運用ポリシーの情報として、所定のホストＬＵに適用された運用ポリシーの識別子と、当該運用ポリシーの余剰容量率に対する閾値と閾値を下回った場合のアクションを含む情報を表示する。本表示は論理ユニット運用情報１２１１０の適用ポリシー識別子、及び余剰容量ポリシー情報１２１００に基いて行われる。
＊  ホストＬＵの状態として、所定のホストＬＵの状態を表示する。なお、当該ホストＬＵの状態としては、以下に示す状態を表示することが考えられる。本表示は論理ユニット運用情報１２１１０の状態に基いて行われる。
＊  対応する論理ユニット又は内部ＬＵの状態
＊  アプリケーションの実行インスタンスの所定のホストＬＵの利用設定に関連した状態。論理ユニットにアーカイブデータの格納中であることを指すアーカイブ中や、論理ユニットにアーカイブデータを格納完了したことを指すアーカイブ済みといった状態や、アプリケーションが認識している所定のホストＬＵの用途としてアーカイブ運用中といった状態が考えられる。
＊  ホスト１１００又はＩ／Ｏネットワーク１３００の障害状況を考慮した状態（例えば、通信断絶）
なお、後述するが、ホストＬＵの状態は管理者の指定によりアプリケーションに応じた任意の文字列を表示してもよい。その場合に新たに追加表示する情報として、ホストＬＵに対応する論理ユニットに対応する内部ＬＵの状態を表示してもよい。なお、表示に際して参照する情報について図３４の説明と同じである。
【０３３５】
なお、図３０乃至図３６に示した画面表示にて余剰容量率の変わりとして、他の余剰容量値を表示してもよい。また、図中では現時点の余剰容量率を表示しているが、過去の余剰容量値を含めてグラフ等の形で表示を行っても良い。過去の値を参照することで管理者は今後の余剰容量値の推定することができるからである。
【０３３６】
さらに、上記説明にて第１ペインを用いた管理情報表示リクエストで指定する論理的又は物理的なコンポーネントを指定する方法についても述べたが、本発明はこれに限定されない。管理情報表示リクエストで以下の指定が出来るのであれば他の表示、指定方法で実現してもよい。
＊  特定の論理的または物理的なコンポーネントを指定する（例えば、あるパリティグループを指定する場合）
＊  所定のストレージシステム（または所定のコンポーネント）が関係する、ある種別の論理的または物理的なコンポーネントを指定する（例えば、ストレージシステムＳＴＧ１に定義されたパリティグループ全体を指定する）
なお、これら指定条件として事前設定した条件に基く指定または表示内容のフィルタリングを行っても良い。さらに説明した情報以外の情報が画面表示されてもよく、逆に説明した情報の一部を省略してもよい。
【０３３７】
＜７．４．ポリシーに基く処理＞。
【０３３８】
システム管理プログラム１２０１０は、内部ＬＵの余剰容量率の変化に応じて、余剰容量率が変化した内部ＬＵに関して以下の処理を行う。
【０３３９】
（Ｓｔｅｐ１）システム管理プログラム１２０１０は、余剰容量率が変化した内部ＬＵに対応する論理ユニットを、管理側ＬＵパス情報１２０８０に基いて特定する。
【０３４０】
（Ｓｔｅｐ２）システム管理プログラム１２０１０は、Ｓｔｅｐ１で特定した論理ユニットに対応するホストＬＵを、論理ユニット運用情報１２１１０に基いて特定する。
【０３４１】
（Ｓｔｅｐ３）システム管理プログラム１２０１０は、Ｓｔｅｐ２で特定したホストＬＵの適用ポリシー識別子を参照する。参照の結果、適用ポリシーの識別子が格納されていなければ処理を終了する。参照の結果、適用ポリシーの識別子が格納されている場合は、適用ポリシーを特定する。
【０３４２】
（Ｓｔｅｐ４）システム管理プログラム１２０１０は、Ｓｔｅｐ３で特定した適用ポリシーの全てについて、以下の処理を行う。
（Ｓｔｅｐ４Ａ）システム管理プログラム１２０１０は、余剰容量ポリシー情報１２１００を参照することで、変化した内部ＬＵの余剰容量率を閾値に登録された評価基準で判断する。
（Ｓｔｅｐ４Ｂ）Ｓｔｅｐ４Ａで評価基準に適合していると判断した場合、システム管理プログラム１２０１０は、アクション指示に格納された内容に基いた処理を行う。
【０３４３】
＜７．５．アクション指示の内容＞。
【０３４４】
＜７．５．１．ホストＬＵ状態指示＞。
【０３４５】
前述の通り、アクション指示の内容は管理者が指定することができ、それによってより多くのアプリケーションに対応した運用管理を実現している。さらにアクション指示にはホストＬＵの状態を変化させる指示を記載することができる（以後の説明では当該指示をホストＬＵ状態指示と呼ぶ）。多くのアプリケーションに対応した運用管理を実現するためには、ホストＬＵの状態として表示すべき状態についてもアプリケーションに応じた柔軟な状態を表示したほうがより好適だと考えたことによるものである。以下がホストＬＵ状態指示の指示例である。
＞  ＨＯＳＴＬＵＳＴＡＴ  ”任意の文字列”
アクション指示の内容を参照したシステム管理プログラム１２０１０は、ホストＬＵ状態指示を検知することで論理ユニット運用情報の状態を”任意の文字列”へ更新する。
【０３４６】
＜７．５．２．アクション指示の一例＞。
【０３４７】
アクション指示の内容の一例を以下に示す。
（例１）ホストＬＵが閾値を下回ったことを示す電子メール又はＳＮＭＰトラップを送信する。
（例２）閾値を下回ったホストＬＵを利用しているアプリケーションの実行インスタンスに対して、当該ホストＬＵをアーカイブ用途で用いさせるためのコマンド又はプログラムを実行する。
（例３）閾値を下回ったホストＬＵを利用しているアプリケーションの実行インスタンス又は／及びホスト１１００のプログラムに対して、当該ホストＬＵに格納したアプリケーションデータを他のホストＬＵに移動するためのコマンド又はプログラムを実行する。それと連携して、当該実行インスタンスに対して当該ホストＬＵへの少なくとも書き込みを抑止するコマンド又はプログラムを実行する。そして、アーカイブプログラムの実行インスタンスに当該ホストＬＵをアーカイブデータ格納用に用いさせるためのコマンド又はプログラムを実行する。
【０３４８】
＜７．５．３．閾値に関連するデータマイグレーション処理＞。
【０３４９】
ＦＭＤ１０３０に対応した内部ＬＵは、ＨＤＤと比較して特に高いランダムリード性能を有し、ライト性能についてはＦＭＤ及びＲＡＩＤレベル次第ではあるがＨＤＤとあまり変わらない性能をもつ。そのため、ＦＭＤ１０３０に対応した内部ＬＵは、高速用途向けとされる場合がある。一方で、本発明により書き込み回数には制限があるものの、ランダムリード性能に優れる高速アーカイブ用途向けとされるパリティグループ及び内部ＬＵが新たに存在し得ることになった。ここではストレージシステム１０００が行うデータマイグレーションを用いた、高速用途向けの内部ＬＵの集合である高速Ｔｉｅｒと、高速アーカイブ用途向けの内部ＬＵの集合である高速アーカイブＴｉｅｒとの管理について説明する。
【０３５０】
まず、コントローラ１０１０の構成制御プログラム４０３０は、以下のデータマイグレーションのどちらかまたは両方を実行する。
【０３５１】
（データマイグレーション処理ケース１）
（Ｓｔｅｐ１）構成制御プログラム４０３０は、管理サーバから移行対象の内部ＬＵの識別子と、移行先となる内部ＬＵの識別子を指定したデータマイグレーション指示を受信する。
（Ｓｔｅｐ２）構成制御プログラム４０３０は、移行対象の内部ＬＵとして格納されているライトデータを、移行対象の内部ＬＵに現在対応している移行元となるパリティグループのＦＭＤ１０３０から読み出す。
（Ｓｔｅｐ３）構成制御プログラム４０３０は、Ｓｔｅｐ２で読み出したデータを移行先となる内部ＬＵに対応する移行先となるパリティグループに属するＦＭＤ１０３０へ書き込む。なお、ＦＭＤ１０３０の書き込み先のアドレス範囲は移行先となる内部ＬＵに対応したアドレス範囲である。
（Ｓｔｅｐ４）内部ＬＵ構成情報４０７０に格納された移行対象の内部ＬＵの識別子と、移行先となる内部ＬＵの識別子を交換する。
【０３５２】
（データマイグレーション処理ケース２）
（Ｓｔｅｐ１）構成制御プログラム４０３０は、管理サーバから移行対象の内部ＬＵの識別子と、移行対象の内部ＬＵの提供容量以上の未割り当て領域が存在する移行先となるパリティグループの識別子を指定したデータマイグレーション指示を受信する。
（Ｓｔｅｐ２）構成制御プログラム４０３０は、移行対象の内部ＬＵとして格納されているライトデータを、移行対象の内部ＬＵに現在対応している移行元となるパリティグループのＦＭＤ１０３０から読み出す。
（Ｓｔｅｐ３）構成制御プログラム４０３０は、Ｓｔｅｐ２で読み出したデータを移行先となるパリティグループに属するＦＭＤ１０３０へ書き込む。なお、ＦＭＤ１０３０の書き込み先のアドレス範囲は未割り当てのアドレス範囲である。
（Ｓｔｅｐ４）内部ＬＵ構成情報４０７０に格納された移行対象の内部ＬＵのパリティグループの識別子を移行先となるパリティグループの識別子に変更する。また、内部ＬＵ構成情報４０７０に格納された移行対象の内部ＬＵの開始アドレスと終了アドレスを、ＦＭＤ１０３０の書き込み先のアドレス範囲をパリティグループのアドレス範囲に変換したパリティグループ上のアドレス範囲の先頭と終わりに変更する。
【０３５３】
システム管理プログラム１２０１０は、上述のストレージシステム１０００でのデータマイグレーションを利用して、以下の処理を行うことで二つのＴｉｅｒの管理を行う。
（Ｓｔｅｐ０）システム管理プログラム１２０１０は、所定の閾値を上回る余剰容量率の内部ＬＵを高速Ｔｉｅｒに属する内部ＬＵとして管理する。
（Ｓｔｅｐ１）システム管理プログラム１２０１０は、所定の閾値を下回ったパリティグループの存在を検知、及び当該パリティグループの識別子を特定する。そして、当該パリティグループに定義された一つ以上の内部ＬＵを移行元内部ＬＵとして特定する。
（Ｓｔｅｐ２）システム管理プログラム１２０１０は、移行元内部ＬＵの所属を高速Ｔｉｅｒから高速アーカイブＴｉｅｒに変更し、必要に応じて移行元内部ＬＵの所属Ｔｉｅｒを高速アーカイブＴｉｅｒと表示する。
（Ｓｔｅｐ３）システム管理プログラム１２０１０は、以下の全ての条件を持つ内部ＬＵを移行先となる内部ＬＵとして特定する。
＊  所定の閾値を下回ったパリティグループとは異なるパリティグループに定義される。
＊  前述の移行元内部ＬＵと同容量である。
＊  ホスト１１００が使用していない。
なお、この時点で画面表示を行う場合は、移行先となる内部ＬＵは高速Ｔｉｅｒに所属すると表示する。
（Ｓｔｅｐ４）システム管理プログラム１２０１０は、前述の移行元内部ＬＵの識別子と、前述の移行先となる内部ＬＵの識別子を指定したデータマイグレーションリクエストをコントローラ１０１０に送信する。コントローラ１０１０はリクエストに従って内部ＬＵのデータをマイグレーションする。
（Ｓｔｅｐ５）システム管理プログラム１２０１０は、データマイグレーション完了を検知したら、画面表示にて、前述の移行先となった内部ＬＵが高速アーカイブ用途向けのＴｉｅｒに変化したことを表す。また、移行元の内部ＬＵは高速Ｔｉｅｒに所属することを表示する。図３８の画面表示はその一例であり、データマイグレーション前はライトリクエストにも対応可能な高速Ｔｉｅｒに所属していた移行先となった内部ＬＵは、高速アーカイブ用途向けに新たに所属することを示すように第１ペインの表示が変化している。当該表示によって、管理者は移行先となった内部ＬＵが高速アーカイブ用途向けとなったことを把握でき、余剰領域が不足しつつあるＦＭＤ１０３０の有効利用を図ることができる。
【０３５４】
以上はデータマイグレーション処理ケース１を前提とした説明であったが、データマイグレーション処理ケース２を用いた場合は、移行先となる内部ＬＵの代わりとして移行先となるパリティグループを指定または表示すればよい。さらには、高速アーカイブ用途向けとなったパリティグループについてはシステム管理プログラム１２０１０が自動で所定の提供容量を持つ内部ＬＵを定義するリクエストをストレージシステム１０００に送信し、その結果定義された内部ＬＵが高速アーカイブＴｉｅｒに所属するよう表示を行っても良い。なお、図３８で高速アーカイブＴｉｅｒに所属すると表示された内部ＬＵまたはパリティグループに対する運用例としては以下が考えられる。
＊  システム管理プログラム１２０１０は、高速アーカイブＴｉｅｒに所属すると表示された内部ＬＵまたはパリティグループをアーカイブプログラムまたはアーカイブサーバに割り当てる割り当てリクエストを管理者から受信する。システム管理プログラム１２０１０はアーカイブサーバまたはアーカイブプログラムの設定を変更させて、高速アーカイブＴｉｅｒに所属すると表示された内部ＬＵまたはパリティグループをアーカイブプログラムに割り当てる。
＊  システム管理プログラム１２０１０は、ある内部ＬＵを移行対象、高速アーカイブＴｉｅｒに所属すると表示された内部ＬＵまたはパリティグループを移行先として指定したデータマイグレーションリクエストを管理者から受信する。システム管理プログラム１２０１０はデータマイグレーションリクエストを受信し、ストレージシステムにある内部ＬＵを移行対象、高速アーカイブＴｉｅｒに所属すると表示された内部ＬＵまたはパリティグループを移行先として指定したデータマイグレーションリクエストを送信する。なお、前述の「ある内部ＬＵ」の例としてはＨＤＤ又はＦＭＤ１０３０が属するパリティグループに定義され、かつ更新頻度が少ない（またはアーカイブデータが格納されている）内部ＬＵがある。
【０３５５】
なお、本表示、及びポリシーに基く処理は、余剰容量率の変わりとして、他の余剰容量値を用いても良い。
【０３５６】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、コントローラ１０１０は、他の構成を採用することもできる。例えば、上記の構成に代えて、上位装置との通信を制御する複数の第一の制御部（例えば制御回路基板）と、ＦＭＤ１０３０との通信を制御する複数の第二の制御部（例えば制御回路基板）と、上位装置とＦＭＤ１０３０との間で授受されるデータを記憶することができるキャッシュメモリと、ストレージシステム１０００を制御するためのデータを記憶することができる制御メモリと、各第一の制御部、各第二の制御部、キャッシュメモリ及び制御メモリを接続する接続部（例えば、クロスバスイッチなどのスイッチ）とを備えることができる。この場合、第一の制御部と第二の制御部の一方が、又は双方が協働して、前述したコントローラ１０１０としての処理を行うことができる。制御メモリは無くても良く、その場合、キャッシュメモリに、制御メモリが記憶する情報を記憶する領域が設けられても良い。
【０３５７】
また、以上の説明ではウェアレベリングをＦＭＤコントローラ２０１０が行っているために、余剰容量値をコントローラ１０１０がＦＭＤコントローラ２０１０から取得し、本値に基いて算出されたＦＭＤ１０３０の余剰容量値を管理サーバ１２００に送信していた。もしウェアレベリングをコントローラ１０１０で処理する場合は、余剰容量値の算出をコントローラ１０１０が管理している余剰領域の情報に基いて行っても良い。また、以上の説明では、ＦＭＤ以外の物理的または論理的なコンポーネントの余剰容量値の算出を管理サーバ１２００にて実現したが、コントローラ１０１０にて算出してもよい。また、画面表示に提供容量を表示するものと説明したが、代替として提供ブロック数等の提供容量に関連する情報を表示してもよい。また、内部ＬＵに対する余剰容量値に基いて表示または処理を行っている処理又は表示については、論理ユニットに対する余剰容量値、パリティグループに対する余剰容量値、ホストＬＵに対する余剰容量値に置き換えて表示または処理を行っても良い。
【０３５８】
以上、本発明の一つの視点として、計算機と、フラッシュメモリデバイスと、ストレージ構成情報を有するストレージコントローラと、キャッシュメモリと、を有し、前記フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、前記ストレージシステムと前記計算機とを管理する管理システムと、を有する情報システムであって、前記ストレージコントローラは、前記フラッシュメモリデバイスの余剰領域の容量に基く値である第一の余剰容量値をストレージ構成情報に記憶し、前記ストレージ構成情報に基いてストレージ管理情報を生成し、前記ストレージ管理情報を前記管理システムへ送信し、前記管理システムは、前記ストレージ管理情報を受信し、前記ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を表示する、情報システムを開示した。
【０３５９】
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記論理ユニットと前記パリティグループとの対応を示す情報と、を前記ストレージ構成情報に格納し、前記ストレージコントローラは、前記パリティグループの定義に基いて、前記論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニット対応する前記パリティグループに属する前記フラッシュメモリデバイスに、分散または冗長化して書き込み、前記管理用の余剰容量値の表示は、前記パリティグループに対する第二の余剰容量値、又は前記第二の余剰容量値に表示用の変換を行った値、の表示としてもよいことを開示した。
【０３６０】
また、本発明の別な視点として、前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記パリティグループに対する前記第二の余剰容量値を算出してもよいことを開示した。
【０３６１】
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記パリティグループに対する前記第二の余剰容量値を算出し、前記ストレージ管理情報は、前記第二の余剰容量値を含めてもよいことを開示した。
【０３６２】
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスを用いたパリティグループの定義を示す情報と、前記パリティグループを用いて定義する内部論理ユニットとの対応を示す情報と、前記内部論理ユニットと前記論理ユニットとの対応を示す情報と、を前記ストレージ構成情報に格納し、前記ストレージコントローラは、前記論理ユニットを指定したデバイス問い合わせリクエストの応答として、前記指定された論理ユニットに対応する内部論理ユニットの識別情報を送信し、前記ストレージコントローラは、前記パリティグループの定義及び前記内部論理ユニットの定義に基き、前記指定された論理ユニットを指定したライトリクエストのライトデータを、前記指定された論理ユニットに対応する前記パリティグループに属する、前記フラッシュメモリデバイスに分散または冗長化して書き込み、前記管理用の余剰容量値の表示は、前記内部論理ユニットに対する第三の余剰容量値、又は前記第三の余剰容量値に表示用の変換を行った値、の表示としてもよいことを開示した。
【０３６３】
また、本発明の別な視点として、前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記内部論理ユニットに対する前記第三の余剰容量値を算出してもよいことを開示した。
【０３６４】
また、本発明の別な視点として、前記ストレージコントローラは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基いて、前記内部論理ユニットに対する前記第三の余剰容量値を算出し、前記ストレージ管理情報は、前記第三の余剰容量値を含めてもよいことを開示した。
【０３６５】
また、本発明の別な視点として、前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、前記ストレージ管理情報は、前記フラッシュメモリデバイスに対する第一の余剰容量値を含み、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出してもよいことを開示した。
【０３６６】
また、本発明の別な視点として、前記管理用の余剰容量値の表示は、前記論理ユニットに対する第四の余剰容量値、又は前記第四の余剰容量値に表示用の変換を行った値、の表示であり、前記管理システムは、前記フラッシュメモリデバイスに対する前記第一の余剰容量値に基き、前記論理ユニットに対する前記第四の余剰容量値を算出し、前記ストレージ管理情報は、前記第四の余剰容量値を含めてもよいことを開示した。
【０３６７】
また、本発明の別な視点として、前記管理システムは、前記管理用の余剰容量値を評価するポリシーを格納し、前記管理システムは、前記ストレージ管理情報と前記ポリシーに基いて、前記論理ユニットに対応する前記フラッシュメモリデバイスの余剰領域が不足と判断した前記論理ユニットを低更新頻度用途と表示又は管理してもよいことを開示した。
【０３６８】
また、本発明の別な視点として、前記計算機はアーカイブプログラムを実行し、前記管理システムは、前記低更新頻度用途と判断した前記論理ユニットを前記アーカイブプログラムに割り当てる割り当てリクエストを、前記計算機に送信してもよいことを開示した。
【０３６９】
また、本発明の別な視点として、前記管理システムは、前記低更新頻度用途と判断した論理ユニットを移行先とするデータマイグレーションリクエストを、前記ストレージシステムに送信してもよいことを開示した。
【０３７０】
また、本発明の別な視点として、計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムであって、前記管理システムは、前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信するポートと、ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納したメモリと、前記ポートを用いてストレージシステムを監視するプロセッサと、前記管理側ストレージ構成情報を用いてストレージシステムの状態を表示する入出力装置と、を有し、前記プロセッサは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、前記入出力装置は前記管理用の余剰容量値を表示することを開示した。
【０３７１】
また、本発明の別な視点として、前記管理側ストレージ構成情報は、前記ストレージシステムに定義されたパリティグループに対する第二の余剰容量値を格納し、前記管理用の余剰容量値は、前記パリティグループに対する第二の余剰容量値としてもよいことを開示した。
【０３７２】
また、本発明の別な視点として、計算機と、フラッシュメモリデバイスを用いて前記計算機に論理ユニットを提供するストレージシステムと、を管理する管理システムにおける管理方法であって、前記管理システムは、前記ストレージシステムからフラッシュメモリデバイスの余剰領域の容量に関する値である第一の余剰容量値を受信し、前記管理システムは、ストレージの構成情報及び前記第一の余剰容量値を格納する管理側ストレージ構成情報を格納し、前記管理システムは、前記管理側ストレージ管理情報に基いて、前記ストレージシステムに関連する管理用の余剰容量値を生成し、前記管理システムは、前記管理システムが有する入出力装置を用いて前記管理用の余剰容量値を表示することを開示した。
【０３７３】
しかし、本発明はこれら以外の視点についても開示されている。
【符号の説明】
【０３７４】
１０００…ストレージシステム  １０１０…コントローラ  １０２０…キャッシュメモリ  １０３０…ＦＭＤ（フラッシュメモリデバイス）  １２００…管理サーバ
【図１】
2011003111.tif 000003
【図２】
2011003111.tif 000004
【図３】
2011003111.tif 000005
【図４】
2011003111.tif 000006
【図５】
2011003111.tif 000007
【図６】
2011003111.tif 000008
【図７】
2011003111.tif 000009
【図８】
2011003111.tif 000010
【図９】
2011003111.tif 000011
【図１０】
2011003111.tif 000012
【図１１】
2011003111.tif 000013
【図１２】
2011003111.tif 000014
【図１３】
2011003111.tif 000015
【図１４】
2011003111.tif 000016
【図１５】
2011003111.tif 000017
【図１６】
2011003111.tif 000018
【図１７】
2011003111.tif 000019
【図１８】
2011003111.tif 000020
【図１９】
2011003111.tif 000021
【図２０】
2011003111.tif 000022
【図２１】
2011003111.tif 000023
【図２２】
2011003111.tif 000024
【図２３】
2011003111.tif 000025
【図２４】
2011003111.tif 000026
【図２５】
2011003111.tif 000027
【図２６】
2011003111.tif 000028
【図２７】
2011003111.tif 000029
【図２８】
2011003111.tif 000030
【図２９】
2011003111.tif 000031
【図３０】
2011003111.tif 000032
【図３１】
2011003111.tif 000033
【図３２】
2011003111.tif 000034
【図３３】
2011003111.tif 000035
【図３４】
2011003111.tif 000036
【図３５】
2011003111.tif 000037
【図３６】
2011003111.tif 000038
【図３７】
2011003111.tif 000039
【図３８】
2011003111.tif 000040
【図３９】
2011003111.tif 000041