(57)【特許請求の範囲】
【請求項１】
コンピュータに、
ホスト装置から送信されたデータの半導体メモリへの書き込みアクセス状況に応じて、データ毎の書き込みアクセス頻度を求め、
データ退避用に設けられた退避領域に退避されたデータを前記半導体メモリに書き込むか、前記退避領域に退避させた状態を保持するかについて、当該データの書き込みアクセス頻度の大きさにより判断し、
前記退避領域に退避されたデータのうち、前記半導体メモリに書き込むと判断されたデータを、前記半導体メモリに書き込む、
処理を実行させることを特徴とするストレージ制御プログラム。
【請求項２】
データ毎の書き込みアクセス頻度を、当該書き込みアクセス頻度の大きさにより複数の段階に分け、
前記退避領域に退避されたデータの書き込みアクセス頻度が最も低い段階である場合は、当該データを前記半導体メモリに書き込むと判断することを特徴とする請求項１記載のストレージ制御プログラム。
【請求項３】
前記退避領域に退避されたデータの書き込みアクセス頻度が最も低い段階以外の段階であり、当該データの前記半導体メモリへの書き込みアクセスが所定時間なかった場合に、当該データを前記半導体メモリに書き込むと判断することを特徴とする請求項２記載のストレージ制御プログラム。
【請求項４】
前記退避領域に退避されたデータの書き込みアクセス頻度が最も高い段階である場合は、当該データを前記退避領域に退避させた状態を保持すると判断することを特徴とする請求項２または３記載のストレージ制御プログラム。
【請求項５】
コンピュータが、
ホスト装置から送信されたデータの半導体メモリへの書き込みアクセス状況に応じて、データ毎の書き込みアクセス頻度を求め、
データ退避用に設けられた退避領域に退避されたデータを前記半導体メモリに書き込むか、前記退避領域に退避させた状態を保持するかについて、当該データの書き込みアクセス頻度の大きさにより判断し、
前記退避領域に退避されたデータのうち、前記半導体メモリに書き込むと判断されたデータを、前記半導体メモリに書き込む、
ことを特徴とするストレージ制御方法。
【請求項６】
ホスト装置から送信されたデータの半導体メモリへの書き込みアクセス状況に応じて、データ毎の書き込みアクセス頻度を求める作成部と、
データ退避用に設けられた退避領域に退避されたデータを前記半導体メモリに書き込むか、前記退避領域に退避させた状態を保持するかについて、当該データの書き込みアクセス頻度の大きさにより判断する判断部と、
前記退避領域に退避されたデータのうち、前記半導体メモリに書き込むと判断されたデータを、前記半導体メモリに書き込む書き込み部と、
を有することを特徴とするストレージ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ制御プログラム、ストレージ制御方法およびストレージ制御装置に関する。
【背景技術】
【０００２】
業務の電子化や法規制等により、電子メールや資料・書類を全て電子化して保管する記憶媒体の需要が高まっている。
電子データを記憶する記憶媒体としては、即応性があり大容量のデータを記憶できるものが主流になっている。この記憶媒体としては、ハードディスク（ＨＤＤ：Hard Disk Drive）等が知られている。
【０００３】
また、ハードディスク等に加え、記憶媒体を搭載した装置（ストレージ装置）の省電力化に向けて、書き込み速度の高速化、および、ディスクの消費電力が可能なフラッシュメモリ等の半導体記憶素子を使用したＳＳＤ（Solid State Drive）が使用されることが増えている。
【０００４】
ストレージ装置では、冗長性を考慮した構成をとることが知られている。冗長性を考慮した構成をとる場合、装置を制御するモジュールやディスク、ＳＳＤは少なくとも二重化された状態になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１６３６４７号公報
【特許文献２】特開２００８−５２３１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＳＤに対する書き込みアクセスが高い頻度で発生すると、半導体記憶素子の構造上、ハードディスクに比べて早い期間で、書き換え可能回数の上限に達してしまう可能性がある。
【０００７】
なお、ＳＳＤについて説明したが、他の不揮発性半導体メモリについても同様の問題がある。
本発明はこのような点に鑑みてなされたものであり、データ管理の信頼性を高めるストレージ制御プログラム、ストレージ制御方法、および、信頼性の高いストレージ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、開示のストレージ制御プログラムが提供される。このプログラムは、コンピュータに、作成手順、判断手順、および書き込み手順を実行させる。
作成手順では、ホスト装置から送信されたデータの記憶媒体への書き込みアクセス状況に応じてデータ毎のアクセス頻度を識別するアクセス頻度情報を定期的に作成する。
【０００９】
判断手順では、作成手順によりアクセス頻度情報が作成される度に、アクセス頻度情報に基づいて、データ退避用に設けられた退避領域に退避されたデータを記憶媒体に書き込むか、退避領域に退避させた状態を保持するかを判断する。
【００１０】
書き込み手順では、判断手順の判断に応じてデータを記憶媒体に書き込む。
【発明の効果】
【００１１】
開示のストレージ制御プログラムによれば、データ管理の信頼性を高めることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態のストレージ制御装置の概要を示す図である。
【図２】第２の実施の形態のストレージシステムを示すブロック図である。
【図３】ドライブエンクロージャの一例を示す図である。
【図４】ストレージ装置の機能を示すブロック図である。
【図５】アクセスカウンタを示す図である。
【図６】アクセス頻度情報を示す図である。
【図７】アクセス履歴情報を示す図である。
【図８】スケジュール管理情報を示す図である。
【図９】スケジュール調整管理情報を示す図である。
【図１０】ＲＡＩＤグループ情報を示す図である。
【図１１】退避データ管理情報を示す図である。
【図１２】退避データ管理テーブルの更新を示す具体例である。
【図１３】書き込みアクセス時のデータ退避を説明する図である。
【図１４】読み出しアクセス時のデータ読み出しを説明する図である。
【図１５】更新処理を示す図である。
【図１６】Ｉ／Ｏ制御処理を示すフローチャートである。
【図１７】ＳＳＤ書き込み制御処理を示すフローチャートである。
【図１８】運用状態確認処理を示すフローチャートである。
【図１９】アクセス監視起動処理を示すフローチャートである。
【図２０】アクセス回数収集処理を示すフローチャートである。
【図２１】更新処理実行確認処理を示すフローチャートである。
【図２２】更新処理を示すフローチャートである。
【図２３】アクセス回数履歴管理処理を示すフローチャートである。
【図２４】スケジュール管理処理を示すフローチャートである。
【図２５】更新スケジュール算出処理を示すフローチャートである。
【図２６】更新スケジュール算出処理を示すフローチャートである。
【図２７】ユーザが設定するスケジュールを示す図である。
【図２８】スケジュール調整処理を示すフローチャートである。
【図２９】データ毎の運用ランクを設定したスケジュール調整管理テーブルを示す図である。
【図３０】履歴情報確認処理を示すフローチャートである。
【図３１】履歴情報確認処理を示すフローチャートである。
【図３２】ＳＳＤランク補正処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態のストレージ制御装置について説明し、その後、実施の形態をより具体的に説明する。
【００１４】
＜第１の実施の形態＞
図１は、第１の実施の形態のストレージ制御装置の概要を示す図である。
ストレージ制御装置１は、ストレージ装置群２と、ホスト装置３と接続されている。ストレージ制御装置１は、ホスト装置３から受信したアクセス要求に基づいて、ストレージ装置群２へのアクセス処理を行う。
【００１５】
ホスト装置３は、ストレージ装置群２に記憶された情報の読み出し、または、ストレージ装置群２への情報の書き込みのアクセス要求をストレージ制御装置１に対して行う。
ストレージ装置群２は、複数のストレージ装置２ａ、２ｂを有する。
【００１６】
また、ストレージ装置群２では、ＳＳＤとハードディスクドライブとが混在している。本実施の形態では、ストレージ装置２ａがＳＳＤを有しており、ストレージ装置２ｂがハードディスクドライブを有している。
【００１７】
次に、ストレージ制御装置１について説明する。ストレージ制御装置１は、入出力制御部１ａと、アクセス監視部１ｂと、アクセス制御部１ｃと、キャッシュ１ｄとを有している。
【００１８】
入出力制御部１ａは、ホスト装置３からのアクセス要求を受信し、受信したアクセス要求に基づいて、ストレージ装置群２に記憶された情報の読み出し、または、ストレージ装置群２への情報の書き込み処理を行う。入出力制御部１ａによる読み出し、または、書き込みの処理のタイミングは、アクセス監視部１ｂにより制御されている。
【００１９】
アクセス監視部１ｂは、入出力制御部１ａを監視し、ホスト装置３からアクセス要求のあった情報が属する論理ボリュームを検出する。論理ボリュームの検出は、例えば、アクセス要求のあった書き込みデータと、その書き込みデータが属する論理ボリュームとが対応付けられたテーブルを参照することで行われる。さらに、アクセス監視部１ｂは、各ストレージ装置２ａ、２ｂの動作状態を監視する。
【００２０】
さらに、アクセス監視部１ｂは、アクセス要求のあった書き込みデータが属する論理ボリュームを検出すると、検出した論理ボリュームを構成するストレージ装置の集合（ストレージグループ）の動作状態を確認し、対応するストレージグループが稼動状態の場合は、入出力制御部１ａに情報の読み出し、または、書き込み処理を進めさせる。
【００２１】
アクセス制御部１ｃは、作成部１１ｃと、判断部１２ｃと、書き込み部１３ｃとを有している。
作成部１１ｃは、ホスト装置３から送信されたデータのストレージ装置２ａ、２ｂへの書き込みアクセス状況に応じて、データ毎のアクセス頻度を識別するアクセス頻度情報を作成する。
【００２２】
アクセス頻度情報は、全てのストレージ装置２ａ、２ｂについて作成してもよいが、少なくともＳＳＤを有するストレージ装置２ａについて作成する。
アクセス頻度情報は、所定時間毎のストレージ装置へのアクセスの累積数を段階的に表したものとするのが好ましい。例えば、アクセス回数が３０分に３００回以上の場合のアクセス頻度情報をα、アクセス回数が３０分に１０回以上で３００回未満の場合のアクセス頻度情報をβ、アクセス回数が１０回未満の場合のアクセス頻度情報をγと設定することができる。アクセス頻度情報は、書き込みアクセス頻度の大小を判断する基準として用いる。これにより判断部１２ｃの判断を簡易なものとすることができる。
【００２３】
判断部１２ｃは、作成部１１ｃにより作成されたアクセス頻度情報に基づいて、ストレージ装置２ａを書き込み先とするデータをストレージ装置２ａに書き込むか、データの退避用に設けられた退避領域に書き込むかを判断する。
【００２４】
なお、退避領域は、ＳＳＤ以外の記憶媒体に設けることが好ましい。本実施の形態では、退避領域は、ハードディスクドライブを有するストレージ装置２ｂに予め設定されているものとする。
【００２５】
本実施の形態での判断方法としては、例えば、以下のようにすることができる。
前述したアクセス頻度情報がαである場合は、ストレージ装置に対するアクセス頻度が比較的多いものと判断し、ストレージ装置２ｂの空き領域、言い換えると退避領域にデータを書き込むのが好ましい。図１では、ストレージ装置２ｂの空き領域にデータＤｔ１、Ｄｔ２が書き込まれた状態を図示している。これにより、ＳＳＤを有するストレージ装置２ａにデータが高頻度で書き込まれ、ストレージ装置２ａが早期に書き換え可能回数の上限に達してしまうことを回避することができる。これにより、データ管理の信頼性を高めることができる。
【００２６】
この際、データを書き込んだ領域を識別するために、キャッシュ１ｄにデータの書き込み箇所を識別する情報（退避データ管理情報）を書き込んでおき、入出力制御部１ａが、データを読み出すときに参照し、退避したデータの書き込み箇所を特定し、特定した箇所からデータを読み出すようにするのが好ましい。これにより、データを容易に読み出すことができる。
【００２７】
また、前述したアクセス頻度情報がβである場合は、ストレージ装置２ａへのアクセスが所定時間なかった場合には書き込み対象データをストレージ装置２ａに書き込むと判断し、それ以外の場合には書き込み対象のデータをストレージ装置２ｂに退避するのが好ましい。
【００２８】
これにより、ＳＳＤを有するストレージ装置２ａにデータが高頻度で書き込まれ、ストレージ装置２ａが早期に書き換え可能回数の上限に達してしまうことを回避することができる。
【００２９】
前述したアクセス頻度情報がγである場合は、ストレージ装置に対するアクセス頻度が比較的少ないものと判断し、ストレージ装置２ａにデータを書き込むのが好ましい。
書き込み部１３ｃは、判断部１２ｃの判断に応じて、データをストレージ装置２ａ、またはストレージ装置２ｂに書き込む。
【００３０】
ストレージ装置へのデータ書き込みの後、作成部１１ｃは、アクセス頻度情報を定期的に作成する。アクセス頻度情報を作成するタイミングは、この他にも、例えば、再度、ホスト装置３からのアクセスがあった場合や、ユーザが指定した時間や、予め周期的に設定された時間等が挙げられる。
【００３１】
判断部１２ｃは、作成部１１ｃによりアクセス頻度情報が作成される度に、ストレージ装置２ｂに退避されたデータＤｔ１、Ｄｔ２をストレージ装置２ａに書き込むか、ストレージ装置２ｂに退避させた状態を保持するかを判断する。この判断は、データ単位で行ってもよいし、ストレージ装置単位で行ってもよい。例えば、ストレージ装置２ｂに退避した、アクセス頻度情報がβであるデータへのアクセスが半日ない場合には、ストレージ装置２ｂに退避したデータをストレージ装置２ａに書き込む。また、他の例として、ストレージ装置２ａへのアクセスが半日ない場合には、ストレージ装置２ｂに退避したデータをストレージ装置２ａに書き込む。
【００３２】
図１では、前回アクセス頻度情報がαであると判断された、ストレージ装置２ｂに退避されたデータＤｔ１について、作成部１１ｃが再度作成したアクセス頻度情報がγである場合の処理を示している。この場合、ストレージ装置２ｂに退避されたデータＤｔ１をストレージ装置２ａに書き込むと判断する。書き込み部１３ｃは、ストレージ装置２ｂに退避しているデータＤｔ１をストレージ装置２ａに書き込む。
【００３３】
また、図１では、前回アクセス頻度情報がαであると判断された、ストレージ装置２ｂに退避されたデータＤｔ２について、作成部１１ｃが再度作成したアクセス頻度情報がαである場合の処理を示している。この場合、データＤｔ２をストレージ装置２ｂに退避させた状態を保持すると判断する。この場合、データＤｔ２のデータ更新は、ストレージ装置２ｂで行われる。
【００３４】
本実施の形態のストレージ制御装置１によれば、作成部１１ｃがＳＳＤを有するストレージ装置２ａに対するアクセス頻度情報を定期的に作成し、アクセス頻度情報が作成される度に、データをストレージ装置２ａに書き込むか、ストレージ装置２ｂに退避した状態を保持するかを判断部１２ｃが判断するようにした。具体的には、ストレージ装置２ａに対するアクセス頻度が高い場合は、データをストレージ装置２ｂに退避する状態を保持し、ストレージ装置２ａに対するアクセス頻度が低い場合は、データをストレージ装置２ａに書き込むようにした。
【００３５】
このように、ストレージ装置２ａにデータを書き込む回数を制御することにより、ＳＳＤが、早期に、書き換え可能回数の上限に達してしまうことを抑制することができる。また、アクセス頻度が低いデータをＳＳＤに格納しておくことで、読み出しアクセス性能を向上させることができる。従って、信頼性の高い装置を実現することができる。
【００３６】
なお、入出力制御部１ａ、アクセス監視部１ｂ、アクセス制御部１ｃは、ストレージ制御装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、キャッシュ１ｄは、ストレージ制御装置１が有するＲＡＭ（Random Access Memory）等が備えるデータ記憶領域により実現することができる。
【００３７】
また、本実施の形態では、データの書き込みを退避する記憶媒体としてＳＳＤを有するストレージ装置２ａを挙げた。しかし、データの書き込みを退避する記憶媒体は、これに限らず、例えば、書き込み回数の回数制限がハードディスクより少ない他の記憶媒体を用いることもできる。
【００３８】
次に、ストレージ制御装置１が有する機能を、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成するストレージ群を有するストレージシステムに適用した実施の形態を、第２の実施の形態として説明する。
【００３９】
＜第２の実施の形態＞
図２は、第２の実施の形態のストレージシステムを示すブロック図である。
ストレージシステム１００は、ホストコンピュータ（以下、単に「ホスト」と言う）３０と、ディスクの動作制御を行う制御モジュールである制御モジュール（ＣＭ：Controller Module）１０ａ、１０ｂ、１０ｃと、ストレージ装置群を実装するドライブエンクロージャ（ＤＥ：Drive Enclosure）２０ａ、２０ｂ、２０ｃ、２０ｄとを有する。
【００４０】
ストレージシステム１００は、ＲＡＩＤを構成するドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄと、ホスト３０とが、制御モジュール（ＣＭ：Control Module）１０ａ、１０ｂ、１０ｃを介して接続されている。
【００４１】
ストレージシステム１００は、運用に使用する制御モジュールを２以上有することで、冗長性が確保されている。
制御モジュール１０ａ、１０ｂ、１０ｃは、コントローラエンクロージャ（ＣＥ：Controller Enclosure）１８内に実装されている。各制御モジュール１０ａ、１０ｂ、１０ｃは、それぞれストレージ制御装置として機能する。
【００４２】
なお、図２では、１つのホスト３０を図示しているが、複数のホストが、コントローラエンクロージャ１８に接続されていてもよい。
制御モジュール１０ａ、１０ｂ、１０ｃは、それぞれ、アクセス指示情報としてＩ／Ｏコマンドをドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄに送信し、ストレージ装置の記憶領域に対するデータの入出力指令を行う。また、入出力指令からアクセス監視時間が経過しても応答が得られないときは、このＩ／Ｏ処理を中断するアボート指示コマンドをドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄに送信する。
【００４３】
ドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄに実装されるストレージ装置群は、冗長性を考慮したＲＡＩＤ構成を有する。
これらドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄにて構成されるＲＡＩＤグループは、複数のハードディスクドライブ、または、複数のＳＳＤのいずれかで構成される。
【００４４】
ここで、制御モジュール１０ａは、ＣＰＵ（Central Processing Unit）１１と、ＣＰＵ１２とによって装置全体が制御されている。なお、図２中、制御モジュール１０ａの「ＣＰＵ０」は、ＣＰＵ１１を識別する名称であり、「ＣＰＵ１」は、ＣＰＵ１２を識別する名称である。
【００４５】
ＣＰＵ１１、および、ＣＰＵ１２には、内部バスを介してメモリ１３、チャネルアダプタ（ＣＡ：Channel Adapter）１４、および、デバイスアダプタ（ＤＡ：Device Adapter）１５が接続されている。
【００４６】
メモリ１３には、ＣＰＵ１１およびＣＰＵ１２に実行させるプログラムの少なくとも一部が一時的に格納される。また、メモリ１３は、ＣＰＵ１１およびＣＰＵ１２の共有のメモリであり、ＣＰＵ１１およびＣＰＵ１２による処理に必要な各種データが格納される。
【００４７】
チャネルアダプタ１４は、ファイバチャネル（ＦＣ：Fibre Channel）スイッチ３１に接続され、ファイバチャネルスイッチ３１を介してホスト３０のチャネルＣＨ１、ＣＨ２、ＣＨ３、ＣＨ４に接続される。この経路を介して、ホスト３０と、ＣＰＵ１１およびＣＰＵ１２との間でデータの送受信が行われる。
【００４８】
デバイスアダプタ１５は、外部のドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄに接続される。ＣＰＵ１１およびＣＰＵ１２は、デバイスアダプタ１５を介して外部のドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄとの間でデータの送受信を行う。
【００４９】
なお、制御モジュール１０ｂ、１０ｃのハードウェア構成も、制御モジュール１０ａと同様である。このようなハードウェア構成によって、制御モジュール１０ａ、１０ｂ、１０ｃの処理機能を実現することができる。
【００５０】
図３は、ドライブエンクロージャの一例を示す図である。
ドライブエンクロージャ２０ａは、複数のストレージ装置２１１ａ、２１１ｂ、２１１ｃ、２１１ｄ、２１１ｅ、２１１ｆ、２１１ｇ、２１１ｈと、各ストレージ装置２１１ａ〜２１１ｈにそれぞれ電源経路２２１ａ、２２１ｂを介して電源を供給する複数の電源供給部（ＰＳＵ：Power Supply Unit）２３１ａ、２３１ｂとを有する。さらに、ドライブエンクロージャ２０ａは、各ストレージ装置２１１ａ〜２１１ｈとそれぞれ入出力経路２２２ａ、２２２ｂを介して接続された複数のデバイス監視部（ＰＢＣ：Port Bypass Circuit）２３０ａ、２３０ｂを有する。
【００５１】
各ストレージ装置２１１ａ〜２１１ｈには、電源供給部２３１ａ、２３１ｂの両方から電力が供給される。
これら、各ストレージ装置２１１ａ〜２１１ｈには、ハードディスクとＳＳＤとが混在して用いられている。
【００５２】
電源供給部２３１ａ、２３１ｂは、それぞれが、ドライブエンクロージャ２０ａが備える全てのストレージ装置２１１ａ〜２１１ｈを同時に稼動し、また、全てのストレージ装置２１１ａ〜２１１ｈのうち所定の数のストレージ装置を同時に起動するのに充分な電力を供給する能力を備えている。
【００５３】
このように、電源供給部２３１ａ、２３１ｂが冗長化された構成であるため、一方の電源供給部が故障したとしても、ストレージ装置２１１ａ〜２１１ｈへの電力の供給の停止を抑制することができる。
【００５４】
デバイス監視部２３０ａ、２３０ｂは、各制御モジュール１０ａ〜１０ｃの指示に基づいて、各ストレージ装置２１１ａ〜２１１ｈに記憶される情報を読み出したり、書き込んだりする。
【００５５】
さらに、デバイス監視部２３０ａ、２３０ｂは、各ストレージ装置２１１ａ〜２１１ｈを監視し、各ストレージ装置２１１ａ〜２１１ｈの動作状態（稼動、起動、停止）を検出する。ここで、稼動とは、起動後の安定した状態を指し、この稼動状態においてデータの書き込み、または、読み出し処理が行われる。
【００５６】
さらに、デバイス監視部２３０ａ、２３０ｂは、各電源供給部２３１ａ、２３１ｂを監視し、各電源供給部２３１ａ、２３１ｂの動作モードの検出及び故障検出を行う。さらに、デバイス監視部２３０ａ、２３０ｂは、電源供給部２３１ａ、２３１ｂが供給可能な最大電力量と、電源供給部２３１ａ、２３１ｂの現在の電力使用量とを検出する。
【００５７】
なお、他のドライブエンクロージャ２０ｂ〜２０ｄも、ドライブエンクロージャ２０ａと同様の構造を備えている。
このようなドライブエンクロージャ２０ｂ〜２０ｄで構成されるドライブエンクロージャ群２０は、各ドライブエンクロージャ２０ｂ〜２０ｄが備えるストレージ装置のうちの複数のストレージ装置に、例えばユーザ情報等の情報を分割して記憶し、またはそれぞれ同じ情報を記憶するＲＡＩＤ構造を備える。
【００５８】
そして、ドライブエンクロージャ群２０は、各ドライブエンクロージャ２０ａ〜２０ｄが備えるストレージのうち、１つ、または複数のストレージによりそれぞれ構成された複数のＲＡＩＤグループを有する。ここで、ドライブエンクロージャ群２０では、各ＲＡＩＤグループに論理ボリュームが設定されている。なお、ここでは、ＲＡＩＤグループと論理ボリュームとは一致するが、これに限らず、１つの論理ボリュームが複数のＲＡＩＤグループに対して設けられていてもよく、１つのＲＡＩＤグループに対して複数の論理ボリュームが設けられていてもよい。また、図２、図３ではドライブエンクロージャ２０ａ〜２０ｄは、８つのストレージ装置２１１ａ〜２１１ｈを有するが、これに限らず、任意の個数のストレージを有してもよい。
【００５９】
図４は、ストレージ装置の機能を示すブロック図である。
以下、制御モジュール１０ａの機能を説明するが、制御モジュール１０ｂ、１０ｃも制御モジュール１０ａと同様の機能を有している。
【００６０】
制御モジュール１０ａは、Ｉ／Ｏ制御部１１１と、システム制御部１１２と、装置監視部１１３と、アクセス情報収集部１１４と、制御部１１５と、アクセス情報格納部１１６と、スケジュール格納部１１７と、ＲＡＩＤグループ情報格納部１１８とを有している。
【００６１】
Ｉ／Ｏ制御部１１１は、ホスト３０からのＩ／Ｏ要求を処理する。具体的には、Ｉ／Ｏ制御部１１１はドライブエンクロージャ２０ａ、２０ｂ、２０ｃ、２０ｄに対するデータの書き込み処理や読み出し処理を制御する。
【００６２】
システム制御部１１２は、装置全体を制御するものであり、例えば各装置の電源制御を行う。
装置監視部１１３は、ストレージ装置内の各装置の状態を監視する。ここで「各装置の状態」としては、例えば、各装置の稼働状態や、電源状態等が挙げられる。
【００６３】
アクセス情報収集部１１４は、ホスト３０からの処理要求に基づいて、ホスト３０によるドライブエンクロージャ２０ａ〜２０ｄに対するデータのアクセス回数の収集を制御するものであり、アクセス回数を計数するアクセスカウンタ１１４ａを備えている。
【００６４】
なお、アクセス情報収集部１１４は、Ｉ／Ｏ制御部１１１と協働して、ホスト３０からのデータ毎のアクセス回数を収集する。
制御部１１５は、ホスト３０からのアクセス回数を記憶・管理する。この制御部１１５は、ＳＳＤ書き込み制御部１１５ａと、アクセス監視・履歴管理部１１５ｂと、スケジュール管理・変更部１１５ｃと、スケジュール調整部１１５ｄとを有している。
【００６５】
ＳＳＤ書き込み制御部１１５ａは、ストレージ装置へのアクセス状況やアクセススケジュールから、ＳＳＤに対する書き込みアクセス処理の実行や、ＳＳＤとは別個の記憶媒体へのデータの退避要否を判断し、判断した処理を実行する。また、ＳＳＤ書き込み制御部１１５ａは、一定期間内にスケジュールの更新処理がない場合のＳＳＤに対する書き込み制御判定や、一定期間内にスケジュールの更新処理が実行される可能性がある場合のデータを退避した記憶媒体の管理・制御を実施する。
【００６６】
このＳＳＤ書き込み制御部１１５ａは、図１の判断部１２ｃ、および、書き込み部１３ｃに対応している。
アクセス監視・履歴管理部１１５ｂは、ストレージ装置への各データのアクセス状況を日時単位で監視する。具体的には、アクセス監視・履歴管理部１１５ｂは、アクセス情報収集部１１４によって取得されたアクセス回数をデータ毎、かつ、所定時間毎にまとめたアクセス頻度情報を作成する。そしてアクセス監視・履歴管理部１１５ｂは、作成したアクセス頻度情報を、アクセス情報格納部１１６に格納する。
【００６７】
また、アクセス監視・履歴管理部１１５ｂは、アクセス頻度情報に基づいて、データ毎のデータ書き込みの判断基準を段階的に示す情報を作成する。なお、この情報もアクセス頻度を示す情報であるが、以下では、説明の便宜上、「アクセス履歴情報」と言う。アクセス監視・履歴管理部１１５ｂは、作成したアクセス履歴情報をアクセス情報格納部１１６に格納する。
【００６８】
このアクセス監視・履歴管理部１１５ｂは、図１の作成部１１ｃに対応している。
スケジュール管理・変更部１１５ｃは、アクセス履歴情報に基づいて作成されるＳＳＤを構成するＲＡＩＤグループにデータを書き込むスケジュールを管理する。このスケジュールは、ＳＳＤへデータを書き込む時間か否かの判断を行う基準となるものである。また、必要に応じてスケジュールを変更する。
【００６９】
具体的には、スケジュール管理・変更部１１５ｃは、アクセス監視・履歴管理部１１５ｂが作成したアクセス履歴情報に基づいて、更新用の運用ランクを作成する。そして、作成した更新用の運用ランクに基づいて、当日のＳＳＤを構成するＲＡＩＤグループにデータを書き込むスケジュールを作成する。
【００７０】
また、スケジュール管理・変更部１１５ｃは、既にスケジュールが作成されている場合は、作成済みの現在のスケジュールと今回作成された当日のスケジュールとを照合し、スケジュールを最適化し、更新用のスケジュールを作成する。作成したスケジュールは、スケジュール格納部１１７に格納する。なお、最適化の方法については、後に詳述する。
【００７１】
なお、スケジュール管理・変更部１１５ｃは、更新用のスケジュールを、アクセス履歴等（例えば、直前の所定期間分のアクセス履歴）に基づいて作成するようにしてもよい。
さらに、スケジュール管理・変更部１１５ｃは、過去のＳＳＤを構成するＲＡＩＤグループに対するアクセス履歴やユーザが設定したスケジュールに基づいて、更新用のスケジュールを調整するようにしてもよい。なお、スケジュールの調整方法については、後述する。
【００７２】
例えば、スケジュール管理・変更部１１５ｃは、更新用のスケジュールを新たに作成する日が２００９年１１月１日の日曜日であれば、過去数か月分の毎月１日のアクセス履歴情報や、過去数ヵ月分の毎月第１週の日曜日のアクセス履歴情報や、過去の金曜日のアクセス履歴情報や、前年の６月１日のアクセス履歴情報等により、最近収集したアクセス履歴情報に基づいて作成した更新用のスケジュールを変更することもできる。
【００７３】
スケジュール調整部１１５ｄは、スケジュール管理・変更部１１５ｃにより作成されたスケジュールと、現在運用しているスケジュールとに基づいて、スケジュール管理・変更部１１５ｃが最適化したスケジュールを一定時間間隔で更新する。スケジュールの更新にあたっては、ユーザが作成したスケジュールを優先させることができる。
【００７４】
アクセス情報格納部１１６には、データの書き込みアクセス数が、データ毎、かつＳＳＤ毎に格納される。アクセス情報格納部１１６にはまた、対象ＳＳＤにおけるデータ毎の読み出しアクセス数、対象ＳＳＤにおけるデータ毎の書き込みアクセス頻度が格納される。
【００７５】
また、アクセス情報格納部１１６には、当日以外のアクセス履歴情報も格納される。
スケジュール格納部１１７には、スケジュールを管理する種々の情報が格納される。
ＲＡＩＤグループ情報格納部１１８には、データの最終書き込みアクセス時間が、データ毎、かつ、ＳＳＤ毎に格納される。ＲＡＩＤグループ情報格納部１１８にはまた、ＳＳＤ毎のデータの別領域への退避データ管理情報が、データ毎に格納される。なお、退避データ管理情報には、退避先、退避元等が含まれる。
【００７６】
退避先に指定する領域は、不揮発媒体であるハードディスクを有するＲＡＩＤグループや、Thin Provisioning Pool等の仮想ボリューム等が挙げられる。なお、以下の説明では、退避先に指定された領域を「プール領域」と言う。
【００７７】
なお、Ｉ／Ｏ制御部１１１、システム制御部１１２、装置監視部１１３、アクセス情報収集部１１４、および、制御部１１５は、制御モジュール１０ａが有するＣＰＵ１１、１２が備える機能により実現することができる。なお、これらの各機能をＣＰＵ１１、１２がそれぞれ備えていてもよい。
【００７８】
アクセス情報格納部１１６、スケジュール格納部１１７、および、ＲＡＩＤグループ情報格納部１１８は、メモリ１３により実現することができる。
次に、アクセス情報格納部１１６、スケジュール格納部１１７、および、ＲＡＩＤグループ情報格納部１１８に格納されている情報について詳しく説明する。
【００７９】
図５は、アクセスカウンタを示す図である。
図５に示すアクセスカウンタ１１４ａには、データおよびアクセス数の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００８０】
データの欄には、データを識別する名前が格納されている。
アクセス数の欄には、ストレージ装置でデータへのアクセスが発生した場合、領域にデータの書き込みアクセスがあった回数（アクセス回数）が格納されている。
【００８１】
図６は、アクセス頻度情報を示す図である。
アクセス頻度管理テーブル１１６ａは、データ毎に設けられている。
図６に示すアクセス頻度管理テーブル１１６ａには、時間およびアクセス数の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００８２】
時間の欄には、予め定められた時間間隔で時刻が設定されている。図６では、時間間隔が１分に設定されている。
アクセス数の欄には、時刻毎のアクセス数が格納されている。例えば、００：００：００の欄には、００：００：００から００：００：５９までのアクセス数が格納されている。
【００８３】
図７は、アクセス履歴情報を示す図である。
アクセス履歴管理テーブル１１６ｂは、データ毎に設けられている。
図７に示すアクセス履歴管理テーブル１１６ｂには、時間、運用ランク（Operational Rank）、および、カウント数の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００８４】
時間の欄には、所定の時間帯が設定されている。図７では、時間帯が３０分毎に設定されている。
運用ランクの欄には、時間帯毎の運用ランク（アクセス履歴情報）が設定されている。
【００８５】
この運用ランクは、予め定められた判断基準と、カウント数の欄の値に基づいて設定される。例えば、カウント数の欄の値が３００以上であれば、運用ランクは「Ａ」に設定される。カウント数の欄の値が２００〜２９９であれば、運用ランクは「Ｂ」に設定される。カウント数の欄の値が１〜１９９であれば、運用ランクは「Ｃ」に設定される。カウント数の欄の値が０であれば、運用ランクは「Ｄ」に設定される。
【００８６】
カウント数の欄には、アクセス頻度管理テーブル１１６ａに基づいて累積されたアクセス数が格納されている。例えば、時間００：００：００−００：３０：００の欄のカウント数は、アクセス頻度管理テーブル１１６ａの００：００：００から００：３０：００までのアクセス数の累計を示している。
【００８７】
次に、スケジュール格納部１１７に格納されている各情報を説明する。
図８は、スケジュール管理情報を示す図である。図８では、スケジュール管理情報がテーブル化されている。
【００８８】
スケジュール管理テーブル１１７ａは、データ毎に設けられている。
スケジュール管理テーブル１１７ａには、時間（Time）、現在の運用ランク（Present Operational Rank）、今日の運用ランク（Today Operational Rank）、更新用運用ランク（Renewal Operational Rank）の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００８９】
時間の欄には、アクセス履歴管理テーブル１１６ｂと同じ単位での時間帯が設定されている。
現在の運用ランクの欄には、前日までの同一時間帯の運用ランクの平均が格納されている。ＳＳＤ書き込み制御部１１５ａは、現在の運用ランクに基づいて、後述するＳＳＤ書き込み制御処理を実行する。各時間帯の運用ランクをひとまとめにしたものがスケジュールとなる。
【００９０】
今日の運用ランクの欄には、アクセス履歴管理テーブル１１６ｂに格納されている当日の運用ランクが時間帯毎に格納されている。
更新用運用ランクの欄には、スケジュール管理・変更部１１５ｃが作成した更新用の運用ランクが格納されている。
【００９１】
また、時間の欄には、スケジュールが半日分であれば００：００：００から１１：５９：５９までの１２時間分の時間が、３０分おきに設定される。スケジュールが１日分であれば００：００：００から２３：５９：５９までの２４時間分の時間が、３０分おきに設定される。
【００９２】
スケジュール管理・変更部１１５ｃは、データ毎、かつ、所定時間帯毎に、ＳＳＤに記録させるデータの優先度（運用ランクＡ〜Ｄ）を示す優先度情報を作成する。
すなわち、スケジュール管理テーブル１１７ａの更新用運用ランクの欄には、ホスト３０からのアクセス頻度に基づく運用ランクＡ〜Ｄが、プール領域に退避すべき優先度を表す指標として格納されている。
【００９３】
運用ランクＡに設定されたデータは、原則として、プール領域に退避すべきデータ（退避最優先データ）であることを表している。
運用ランクＢ、Ｃに設定されたデータは、それぞれ、原則として、プール領域に退避し、所定時間以上当該データに対するアクセスがない場合にＳＳＤに書き込むデータ（退避優先データ）であることを表している。なお、前述した所定時間は、運用ランクＢの方が、運用ランクＣより長く設定されている。所定時間を運用ランク毎に設定していることは、ＳＳＤに対する高頻度のアクセスを抑制するためである。
【００９４】
運用ランクＤに設定されたデータは、プール領域には退避せず、ＳＳＤに書き込むデータ（退避抑止データ）であることを表している。
図９は、スケジュール調整管理情報を示す図である。図９では、スケジュール調整管理情報がテーブル化されている。
【００９５】
スケジュール調整管理テーブル１１７ｂは、日にち毎に設けられている。
スケジュール調整管理テーブル１１７ｂには、時間、ＲＬＵ＃０の運用ランク、ＲＬＵ＃１の運用ランク、・・・、ＲＬＵ＃４の運用ランクの欄が設けられている。
【００９６】
時間の欄には、アクセス履歴管理テーブル１１６ｂと同じ単位での時間が設定されている。
各ＲＬＵ（ＲＡＩＤグループの論理ユニット）の運用ランクの欄には、それぞれ、各スケジュール管理テーブル１１７ａの更新用運用ランクに、ユーザが設定した運用ランクが考慮された結果作成された各データの運用ランクが、ＲＬＵ毎且つ時間帯毎に格納されている。この運用ランクの作成方法については、後に詳述する。
【００９７】
次に、ＲＡＩＤグループ情報格納部１１８に格納されている各情報を説明する。
図１０は、ＲＡＩＤグループ情報を示す図である。図１０では、ＲＡＩＤグループ情報がテーブル化されている。
【００９８】
図１０に示すＲＡＩＤグループ情報管理テーブル１１８ａは、ＲＬＵナンバー（RLU No.）、ステータス（Status）、ディスクタイプ（Disk Type）、最終書き込み時間（Last Write Time）、書き込みアクセスランク（Write Access RANK）、テンポラリデータフラグ（Temporary Data Flag）、テンポラリＲＬＵナンバー（Temporary RLU No.）の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００９９】
ＲＬＵナンバーの欄には、ＲＡＩＤグループを識別する情報が設定されている。
ステータスの欄には、ＲＬＵナンバーの欄に設定されたＲＬＵが有効（Available）か否（Non Available）か（使用可能か否か）を示す情報が設定されている。
【０１００】
ディスクタイプの欄には、当該ＲＡＩＤグループを構成するディスク種別が格納されている。本実施の形態では、ＳＳＤ、ＦＣ／ＳＡＳ（Serial Attached SCSI）ディスク、ＳＡＴＡ（Serial ATA）ディスクの３種が設定されている。なお、図１０中では、ＦＣ／ＳＡＳディスクを単に「ＦＣ／ＳＡＳ」と表記し、ＳＡＴＡディスクを単に「ＳＡＴＡ」と表記している。
【０１０１】
最終書き込み時間の欄には、当該ＲＡＩＤグループに対する書き込みアクセスの最終時間が格納されている。最終書き込み時間は、最終アクセス時間を元にＳＳＤに対する書き込みデータの更新を行うか、あるいはデータを退避するかの判断を行う際に使用する。
【０１０２】
書き込みアクセスランクの欄には、当該ＲＡＩＤグループに対する書き込みアクセスの頻度を表す運用ランクが格納されている。
書き込みアクセスランクの算出は後述の手法で算出する。なお、書き込みアクセスランクはアクセス状況に応じて常に変化する。更には書き込みアクセスランクは、アクセス予測を含めて算出される。この書き込みアクセスランクも、ＳＳＤに対する書き込みデータの更新を行うか、退避するかの判断を行う際に使用する。
【０１０３】
テンポラリデータフラグの欄には、「Ｏｎ」、「Ｏｆｆ」、または、「−」のいずれかが格納される。
ディスクタイプの欄にＳＳＤが設定されている場合は、テンポラリデータフラグは他のＲＡＩＤグループに退避したデータの有無を示す情報となる。退避したデータが存在する場合には「Ｏｎ」が格納される。退避したデータが存在しない場合には「Ｏｆｆ」が格納される。
【０１０４】
例えば、ＲＡＩＤグループ情報管理テーブル１１８ａの４行目のレコードのディスクタイプの欄には「ＳＳＤ」が設定されているが、そのテンポラリデータフラグの欄には「Ｏｆｆ」が格納されているため、ＲＬＵ＃３のデータは退避されていないことを示している。また、１行目のレコードのディスクタイプの欄にも「ＳＳＤ」が設定されており、テンポラリデータフラグの欄には、「Ｏｎ」が格納されている。これは、退避したデータが他のＲＬＵナンバーのＲＡＩＤグループに存在していることを示している。
【０１０５】
ディスクタイプの欄にＳＳＤ以外が設定されている場合は、当該ＲＬＵナンバーのＲＡＩＤグループが、退避したデータを受け入れたか否かを示す情報となる。
当該ＲＬＵナンバーのＲＡＩＤグループが退避したデータを受け入れた場合は、「Ｏｎ」が格納される。当該ＲＬＵナンバーのＲＡＩＤグループが退避したデータを受け入れていない場合は「−」が設定される。
【０１０６】
例えば、５行目のレコードのディスクタイプの欄には「ＦＣ／ＳＡＳ」が設定されており、テンポラリデータフラグの欄には、「Ｏｎ」が格納されている。これは、ＲＬＵ＃４のＲＡＩＤグループが、退避したデータを受け入れていることを示している。
【０１０７】
テンポラリＲＬＵナンバーの欄には、データを退避した先のＲＡＩＤグループ、または、データを受け入れたＲＡＩＤグループのＲＬＵナンバーの情報が格納されている。
ディスクタイプの欄にＳＳＤが設定されている場合は、テンポラリＲＬＵナンバーは退避したデータの退避先を示す情報となる。データを退避したＲＡＩＤグループが複数存在する場合は、データを退避した全てのＲＡＩＤグループのＲＬＵナンバーの情報が格納される。ディスクタイプの欄にＳＳＤ以外が設定されている場合は、テンポラリＲＬＵナンバーはデータの退避元を示す情報となる。
【０１０８】
例えば、１行目のレコードのテンポラリＲＬＵナンバーの欄には、「４」が格納されているが、これは、ＲＬＵ＃４のＲＡＩＤグループが、ＲＬＵ＃０に対する書き込みアクセスがあったデータの退避先になっていることを示している。また、５行目のレコードのテンポラリＲＬＵナンバーの欄には、「０」が格納されているが、これは、ＲＬＵ＃４のＲＡＩＤグループが、受け入れたデータの退避元が、ＲＬＵ＃０のＲＡＩＤグループであることを示している。
【０１０９】
図１１は、退避データ管理情報を示す図である。図１１では、退避データ管理情報がテーブル化されている。
退避データ管理テーブル１１８ｂには、退避元ＲＬＵナンバー（Src. RLU No.）、退避先ＲＬＵナンバー（Dst. RLU No.）、スタートオフセット（Start Offset）、データサイズ（Data Size）、オフセット、有効フラグ（Valid Flag）の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【０１１０】
退避元ＲＬＵナンバーの欄には、データ退避元のＲＡＩＤグループを識別する情報、つまりＲＬＵナンバーが格納されている。例えば、退避元ＲＬＵがＲＬＵ＃０であれば、退避元ＲＬＵナンバーの欄に「０」が格納される。また、退避元ＲＬＵがＲＬＵ＃１であれば、退避元ＲＬＵナンバーの欄に「１」が格納される。
【０１１１】
退避先ＲＬＵナンバーの欄には、データ退避先のＲＡＩＤグループを識別する情報（番号）が格納されている。図１１の例で退避先ＲＬＵナンバーに格納されている「４」は、ＲＬＵ＃４を示している。
【０１１２】
スタートオフセットの欄には、退避元ＲＬＵナンバーの欄に格納されたＲＡＩＤグループの、退避元データの先頭位置を示す情報が格納されている。
データサイズの欄には、退避元ＲＬＵナンバーの欄に格納されたＲＡＩＤグループの退避元データのデータサイズを示す情報が格納されている。
【０１１３】
オフセットの欄には、退避先ＲＬＵナンバーの欄のＲＡＩＤグループに格納された退避元データの先頭位置を示す情報が格納されている。例えば、１行目のレコードのデータサイズは、「0x00001000」であり、オフセットは、「0x00000000」である。このため、１行目の退避データは、「0x00000000」から「0x00000999」まで書き込まれていることになる。従って、「0x00000999」の次の「0x00001000」からデータが書き込み可能であることが分かる。従って、２行目のレコードのオフセットの欄には、「0x00001000」が格納される。
【０１１４】
有効フラグの欄には、当該レコードの内容を有効とするか無効とするかを識別するフラグが設定される。フラグが「Ｏｎ」である場合は、当該レコードの内容が有効であることを示し、フラグが「Ｏｆｆ」である場合は、当該レコードの内容が無効であることを示す。
【０１１５】
この有効フラグの欄を設けたのは、退避されたデータに対する再アクセスが発生した場合、再アクセスが１１８ｂのレコードに記録されたスタートオフセット、データサイズの範囲内に入るか否かで処理が異なるからである。
【０１１６】
ＳＳＤ書き込み制御部１１５ａは、再アクセスが、当該スタートオフセット、データサイズの範囲内に入る書き込みアクセスの場合は、退避先領域をそのまま更新する。この場合、有効フラグは、「Ｏｎ」のままとする。
【０１１７】
ＳＳＤ書き込み制御部１１５ａは、再アクセスが、当該スタートオフセット、データサイズの範囲内に入らない書き込みアクセスの場合は、既に保持している退避先領域を解除、新規に退避先領域を確保して更新を行う。この場合、ＳＳＤ書き込み制御部１１５ａは、有効フラグを「Ｏｎ」から「Ｏｆｆ」に書き換える。
【０１１８】
図１２は、退避データ管理テーブルの更新を示す具体例である。
スタートオフセット「0x00150000」、データサイズ「0x00002000」の書き込みアクセスが発生した場合、図１２（ａ）に示す退避データ管理テーブル１１８ｂの１行目のレコードに記載された各情報を参照すると、１行目のレコードのデータを更新することはできない。具体的には以下のとおりである。
【０１１９】
図１２（ａ）は、ＲＬＵ＃０に対する書き込みアクセスが発生する前の段階の退避データ管理テーブルを示している。
図１２（ａ）では、スタートオフセットが「0x00150000」、データサイズが「0x00001000」の退避対象データが、オフセット「0x00000000」でＲＬＵ＃４に退避されている。
【０１２０】
同様に、図１２（ａ）では、スタートオフセットが「0x11223300」、データサイズが「0x00022000」の退避対象データが、オフセット「0x00001000」でＲＬＵ＃４に退避されている。
【０１２１】
ＲＬＵ＃０に対するスタートオフセット「0x00150000」、データサイズ「0x00002000」の書き込みアクセスが発生したものとする。
図１２（ａ）を見ると、ＲＬＵ＃４の「0x00000000」から、スタートオフセット「0x00150000」の退避対象データが書き込まれており、このデータに続いてＲＬＵ＃４の「0x00001000」から、スタートオフセット「0x1122330000」の退避対象データが書き込まれている。
【０１２２】
今回の書き込みアクセス対象のデータサイズは「0x00002000」であり、スタートオフセット「0x00150000」、データサイズ「0x00001000」の退避データが退避されているＲＬＵ＃４の領域でのアクセス対象データの更新ができない。
【０１２３】
このため、図１２（ｂ）に示す退避データ管理テーブル１１８ｂのように、新規に退避データを書き込み、既存の退避データを削除する。すなわち、１行目のレコードに記載された情報は、有効でないため、１行目のレコードの有効フラグを「Ｏｆｆ」に設定する。また、スタートオフセットの値は使用しないため消す（図１２では「−」で表記している）。なお、１行目のレコードに記載されたデータサイズ、オフセットおよび有効フラグの欄の情報を参照することにより、オフセット「0x00000000」からデータサイズが「0x0000100」分だけ、退避領域が空き領域であることが分かる。従って、１行目のレコードは、削除せずに残す。そして、スタートオフセットおよびデータサイズが１行目のレコードに等しいレコードを新たに６行目に作成する。すなわち、６行目のレコードのスタートオフセットの欄には、１行目のスタートオフセットに格納されていたスタートオフセット「0x00150000」を格納する。データサイズの欄には、今回の書き込みアクセス対象のデータサイズ「0x00002000」を格納する。オフセットの欄には、ＲＬＵ＃４に格納された退避元データの先頭位置を示す情報「0x00027710」を格納する。
【０１２４】
なお、前述した更新処理がこれ以降の時間に書き込みアクセスデータの退避が行われた場合に、退避対象となるアクセスデータのデータサイズが、退避データ管理テーブル１１８ｂの２行目のオフセットと１行目のオフセットとの差分であれば、この１行目のレコードが示すＲＬＵ＃４の領域に退避対象となるアクセスデータを格納することができる。
【０１２５】
なお、退避データ管理テーブル１１８ｂに格納できる情報（レコード数）が予め定めた上限に達した場合には、退避したデータを強制的に退避元に書き込み、退避元に書き込んだデータに対応する退避先情報をリセットするようにすることができる。これについては、後述するステップＳ２３にて説明する。
【０１２６】
次に、制御モジュール１０ａの処理の概要を説明し、その後、各処理についてフローチャートを用いて詳しく説明する。
＜処理概要＞
制御モジュール１０ａは、ホスト３０からのＩ／Ｏアクセスをチャネルアダプタ１４が受け付けると、実際にデータを保存、保持している箇所に対するＲＡＩＤグループ、ディスク・ＳＳＤの位置情報をＩ／Ｏ制御部１１１が確認する。
【０１２７】
ここで、データ書き込み要求時に、アクセス情報収集部１１４は、ＳＳＤに対するアクセス状況を監視する。アクセス状況の監視は、アクセス回数をベースにＳＳＤ構成ＲＡＩＤグループを含む全てのＲＡＩＤグループを対象に行う。
【０１２８】
ＳＳＤ書き込み制御部１１５ａは、ＳＳＤに対するアクセスが発生した場合、アクセスのタイプに応じて処理を変更する。
・書き込みアクセスの場合
アクセスがＳＳＤに対する書き込みアクセスの場合、ＳＳＤ書き込み制御部１１５ａは、当該領域に対するアクセスが、初回アクセス（１回目のアクセス）か更新アクセス（２回目以降のアクセス）かで処理を変更する。
【０１２９】
図１３は、書き込みアクセス時のデータ退避を説明する図である。
初回アクセスの場合は、ＳＳＤ書き込み制御部１１５ａはＳＳＤにデータを書き込む。
更新アクセスの場合は、ＳＳＤ書き込み制御部１１５ａは、ＲＡＩＤグループ情報管理テーブル１１８ａの書き込みアクセスランクの欄を参照し、書き込みアクセスの対象となっているＲＡＩＤグループのボリュームに対するアクセス状況を確認する。
【０１３０】
当該ボリュームに対する運用ランクがＢ、Ｃ、またはＤである場合は、ＳＳＤ書き込み制御部１１５ａは、後述する書き込み判定論理結果に基づいて、ＳＳＤに対する即時書き込みアクセスを行うか、あるいはＳＳＤに対する書き込みアクセスを行わないかを判断する。
【０１３１】
他方、当該ボリュームに対する運用ランクがＡである場合は、ＳＳＤ書き込み制御部１１５ａは、即時にはＳＳＤに対する書き込みアクセスは行わない。図１３に示すように、ＳＳＤ書き込み制御部１１５ａは、書き込み対象のデータのうち、新たに追加、または、上書きされたデータ箇所（更新箇所）のデータＤ１のみをプール領域に退避する。なお、図１３では、データＤ１が書き込まれなかったＳＳＤの記憶領域（＝更新されないＳＳＤの領域）Ｄ１ａ、Ｄ２ａを示している。
【０１３２】
また、プール領域には、以前に退避されたデータＤ２も格納されている。
そして、メモリ１３内の、退避したデータＤ１の退避位置を識別する位置情報ｄ１を、退避データ管理テーブル１１８ｂに格納する。なお、図１２に示す退避データ管理テーブル１１８ｂには、以前に退避されたデータＤ２に関する位置情報ｄ２が格納されている。
【０１３３】
図１４は、読み出しアクセス時のデータ読み出しを説明する図である。
・読み出しアクセスの場合
読み出しアクセスが発生した場合は、書き込みアクセス時に読み出しアクセス対象のデータをＳＳＤに書き込んでいるか否かで処理を変更する。
【０１３４】
なお、読み出しアクセス対象のデータをＳＳＤに書き込んでいるか否かは、退避データ管理テーブル１１８ｂのスタートオフセットの欄を参照することにより、識別することができる。
【０１３５】
読み出しアクセスによる読み出し対象のデータが、プール領域に退避しているデータのみである場合、例えば、読み出し対象がデータＤ１のみである場合は、退避データ管理テーブル１１８ｂのオフセットの欄を参照し、データＤ１の退避位置を識別するメモリ１３内の位置情報ｄ１を特定する。そして、退避しているデータＤ１のみを読み出す。
【０１３６】
なお、読み出しアクセスによる読み出し対象のデータが、プール領域に退避しているデータのみであるか否かは、退避データ管理テーブル１１８ｂのデータサイズの欄を参照し、そのデータサイズを確認することにより、識別することができる。
【０１３７】
読み出しアクセスによる読み出し対象のデータが、プール領域に退避しているデータ以外のデータを含んでいる場合、すなわち、プール領域に退避しているデータとＳＳＤに格納されているデータとが混在している場合、ＳＳＤから読み出したデータに、プール領域に退避しているデータを更新したデータを読み出す。
【０１３８】
例えば、図１４に示すように、読み出し対象が、データＤ１を含むデータＤ３である場合、データＤ３のデータＤ１を除くデータＤ４をＳＳＤから読み出す。そして、プール領域に退避しているデータＤ１を、退避データ管理テーブル１１８ｂを参照することで読み出す。そして、データＤ４にデータＤ１を更新したデータを、データＤ３として読み出す。
【０１３９】
他方、読み出しアクセスによる読み出し対象のデータが、ＳＳＤに格納しているデータのみである場合は、ＳＳＤに格納されているデータを読み出す。
図１５は、更新処理を示す図である。
【０１４０】
プール領域に退避していたデータの更新処理を実行する場合、ＳＳＤ構成ＲＡＩＤグループに格納されているデータのうち、プール領域に格納されているデータ部分のみを更新する（図１５中、更新箇所のみ更新処理実施）。その後、プール領域に退避した、更新されたデータを初期化する。また、当該退避しているデータに関する退避データ管理テーブル１１８ｂのレコードも初期化する。
【０１４１】
以下、前述した処理概要について、フローチャートを用いて詳しく説明する。
＜Ｉ／Ｏ制御処理＞
以下、Ｉ／Ｏ制御部１１１のＩ／Ｏ制御処理を説明する。
【０１４２】
図１６は、Ｉ／Ｏ制御処理を示すフローチャートである。
［ステップＳ１］  Ｉ／Ｏ制御部１１１は、ホスト３０からＩ／Ｏアクセスを受け付ける。その後、ステップＳ２に遷移する。
【０１４３】
［ステップＳ２］  Ｉ／Ｏ制御部１１１は、ＲＡＩＤグループ情報管理テーブル１１８ａを参照し、アクセス対象のＲＡＩＤグループ（Ｉ／Ｏアクセスで指定されているＲＡＩＤグループ）（以下、「アクセス対象ＲＡＩＤグループ」と言う）の状態を確認する。Ｉ／Ｏ制御部１１１は例えば、アクセス対象ＲＡＩＤグループの実装状態や、アクセス対象ＲＡＩＤグループが動作しているか等の動作状態を確認する。その後、ステップＳ３に遷移する。
【０１４４】
［ステップＳ３］  Ｉ／Ｏ制御部１１１は、アクセス対象ＲＡＩＤグループの実装状態を確認した結果に基づいて、アクセス対象ＲＡＩＤグループの実装状態がＯＫか否か（異常が発生していないか）を判断する。なお、ここでの異常とは、例えば、アクセス対象ＲＡＩＤグループ未実装等を言う。アクセス対象ＲＡＩＤグループの実装状態がＯＫである場合（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。アクセス対象ＲＡＩＤグループの実装状態がＯＫではない場合（ステップＳ３のＮｏ）、ステップＳ１１に遷移する。
【０１４５】
［ステップＳ４］  Ｉ／Ｏ制御部１１１は、ＲＡＩＤグループ情報管理テーブル１１８ａのディスクタイプの欄を参照し、アクセス対象ＲＡＩＤグループのディスクタイプを確認する。その後、ステップＳ５に遷移する。
【０１４６】
［ステップＳ５］  Ｉ／Ｏ制御部１１１は、ステップＳ４にて確認したディスクタイプが、ＳＳＤか否かを判断する。確認したディスクタイプがＳＳＤである場合（ステップＳ５のＹｅｓ）、ステップＳ６に遷移する。確認したディスクタイプがＳＳＤではない場合（ステップＳ５のＮｏ）、ステップＳ１２に遷移する。
【０１４７】
［ステップＳ６］  Ｉ／Ｏ制御部１１１は、ＳＳＤ書き込み制御処理の運用状態を確認する。運用状態を確認する処理は、ＳＳＤ書き込み制御部１１５ａに、スケジュールに基づく制御を行わせるか否かをＩ／Ｏ制御部１１１が確認するものである。コントローラエンクロージャ１８は、ユーザによって制御部１１５にスケジュールに基づく処理を実行させるか否か、すなわち、ＳＳＤ書き込み制御処理の運用を行うか否かを設定可能に構成されており、Ｉ／Ｏ制御部１１１は、その設定状態をチェックする。その後、ステップＳ７に遷移する。
【０１４８】
［ステップＳ７］  Ｉ／Ｏ制御部１１１は、ステップＳ６にて確認したＳＳＤ書き込み制御処理が運用中か否かを判断する。ＳＳＤ書き込み制御処理が運用中である場合（ステップＳ７のＹｅｓ）、ステップＳ８に遷移する。ＳＳＤ書き込み制御処理が運用中ではない場合（ステップＳ７のＮｏ）、ステップＳ１２に遷移する。
【０１４９】
［ステップＳ８］  Ｉ／Ｏ制御部１１１は、アクセス対象ＲＡＩＤグループに実装されているＳＳＤに対するアクセス種（書き込みアクセスか読み出しアクセスか）の有無を確認する。
【０１５０】
［ステップＳ９］  Ｉ／Ｏ制御部１１１は、ステップＳ８の確認の結果に基づいて、ＳＳＤ書き込み制御部１１５ａが、書き込みアクセスか否かを判断する。書き込みアクセスである場合（ステップＳ９のＹｅｓ）、ステップＳ１０に遷移する。書き込みアクセスではない場合（ステップＳ９のＮｏ）、ステップＳ１２に遷移する。
【０１５１】
［ステップＳ１０］  Ｉ／Ｏ制御部１１１は、ＳＳＤ書き込み制御部１１５ａにＳＳＤ書き込み制御処理を実行させる。なお、ＳＳＤ書き込み制御処理は後に詳述する。その後、Ｉ／Ｏ制御処理を終了する。
【０１５２】
［ステップＳ１１］  Ｉ／Ｏ制御部１１１は、アクセス対象のＲＡＩＤグループを、アクセスできないＲＡＩＤグループであると判断する。その後、Ｉ／Ｏ制御処理を終了する。
【０１５３】
［ステップＳ１２］  Ｉ／Ｏ制御部１１１は、アクセス対象ＲＡＩＤグループに対し、ホストＩ／Ｏ処理を実行する。
具体的には、Ｉ／Ｏ制御部１１１は、ホスト３０からのＩ／ＯアクセスがＳＳＤ以外に対するデータ書き込み要求であった場合、メモリ１３上に書き込み対象のデータを記憶することで、ホスト３０側に書き込み完了を応答する。また、ＲＡＩＤグループの該当箇所にメモリ１３に記憶したデータを書き込む。
【０１５４】
他方、ホスト３０からのＩ／Ｏアクセスがデータ読み出し要求であった場合、メモリ１３上に読み出し対象のデータが存在するか否かを判断する。具体的には、ＲＡＩＤグループ情報管理テーブル１１８ａのアクセス対象ＲＡＩＤグループのテンポラリデータフラグの欄を参照する。メモリ１３上に読み出し対象データが存在する場合は、メモリ１３上のデータをホスト３０側に応答する。メモリ１３上に読み出しデータが存在しない場合は、実データが存在するＲＡＩＤグループの該当箇所からデータを読み出し、メモリ１３上に当該データを展開した後、ホスト３０に当該データと応答を返す。
【０１５５】
その後、Ｉ／Ｏ制御処理を終了する。
以上で、Ｉ／Ｏ制御処理の説明を終了する。
次に、ステップＳ１０にてＩ／Ｏ制御部１１１から指示を受け、ＳＳＤ書き込み制御部１１５ａが実行するＳＳＤ書き込み制御処理を説明する。
【０１５６】
＜ＳＳＤ書き込み制御処理＞
図１７は、ＳＳＤ書き込み制御処理を示すフローチャートである。
［ステップＳ２１］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ１で受け付けたアクセスの領域を確認する。その後、ステップＳ２２に遷移する。
【０１５７】
［ステップＳ２２］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ２１の確認に基づいて、Ｉ／Ｏアクセスがアクセス対象の領域に対する初回アクセスか否かを判断する。具体的には、Ｉ／Ｏ制御部１１１がＳＳＤに書き込んだ領域を識別する情報を有しており、ＳＳＤ書き込み制御部１１５ａは、Ｉ／Ｏアクセスによるアクセス対象の領域に、すでにデータが書き込まれているか否かをＩ／Ｏ制御部１１１に問い合わせる。問い合わせの結果、アクセス対象の領域が、既にデータが書き込まれた領域ではない場合にＩ／Ｏアクセスが初回アクセスであると判断する。初回アクセスである場合（ステップＳ２２のＹｅｓ）、ステップＳ２３に遷移する。初回アクセスではない場合（ステップＳ２２のＮｏ）、ステップＳ２４に遷移する。
【０１５８】
［ステップＳ２３］  ＳＳＤ書き込み制御部１１５ａは、ＳＳＤへの書き込み処理を行う。このとき、ＳＳＤ書き込み制御部１１５ａは、退避データ更新フラグを確認する。退避データ更新フラグが「Ｏｎ」である場合、退避データ管理テーブル１１８ｂに格納されているレコードのうち、アクセス対象ＲＡＩＤグループについてのレコードのデータを、退避先のプール領域から読み出し、併せてＳＳＤに書き込む。書き込み領域としては、例えば、ＳＳＤの未使用領域の先頭等が挙げられる。また、プール領域に退避していたデータをプール領域から消去し、書き込みを行った領域に対応する退避データ管理テーブル１１８ｂのレコードを消去する。また、併せて、ＲＡＩＤグループ情報管理テーブル１１８ａも更新する。併せて書き込むことにより、退避データ管理テーブル１１８ｂに書き込むことができるレコードが増え、退避データ管理テーブル１１８ｂが作成できるレコードが上限に達することを抑制することができる。その後、ＳＳＤ書き込み制御処理を終了する。
【０１５９】
［ステップＳ２４］  ＳＳＤ書き込み制御部１１５ａは、ＲＡＩＤグループ情報管理テーブル１１８ａの書き込みアクセスランクの欄を参照し、アクセス対象ＲＡＩＤグループの書き込みアクセスランクを確認する。その後、ステップＳ２５に遷移する。
【０１６０】
［ステップＳ２５］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ２４にて確認した運用ランクが運用ランクＤか否かを判断する。ステップＳ２４にて確認した運用ランクが運用ランクＤである場合（ステップＳ２５のＹｅｓ）、ステップＳ４０に遷移する。ステップＳ２４にて確認した運用ランクが運用ランクＤではない場合（ステップＳ２５のＮｏ）、ステップＳ２６に遷移する。
【０１６１】
［ステップＳ２６］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ２４にて確認した運用ランクが運用ランクＣか否かを判断する。ステップＳ２４にて確認した運用ランクが運用ランクＣである場合（ステップＳ２６のＹｅｓ）、ステップＳ３１に遷移する。ステップＳ２４にて確認した運用ランクが運用ランクＣではない場合（ステップＳ２６のＮｏ）、ステップＳ２７に遷移する。
【０１６２】
［ステップＳ２７］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ２４にて確認した運用ランクが運用ランクＢか否かを判断する。ステップＳ２４にて確認した運用ランクが運用ランクＢである場合（ステップＳ２７のＹｅｓ）、ステップＳ２９に遷移する。ステップＳ２４にて確認した運用ランクが運用ランクＢではない場合（ステップＳ２７のＮｏ）、ステップＳ２８に遷移する。
【０１６３】
［ステップＳ２８］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ２４にて確認した運用ランクが運用ランクＡであると判断する。その後、ステップＳ３３に遷移する。
［ステップＳ２９］  ＳＳＤ書き込み制御部１１５ａは、Ｉ／Ｏ制御部１１１がＳＳＤに最終にアクセスした時間（最終アクセス時間）を確認する。具体的には、ＳＳＤ書き込み制御部１１５ａはＲＡＩＤグループ情報管理テーブル１１８ａを参照し、当該ＲＡＩＤグループの最終書き込み時間を確認する。その後、ステップＳ３０に遷移する。
【０１６４】
［ステップＳ３０］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ２９にて確認した最終書き込み時間と現時間とを比較する。そしてＳＳＤ書き込み制御部１１５ａは、現時間が最終書き込み時間から１日（２４時間）以上経過したか否かを判断する。現時間が最終書き込み時間から１日以上経過している場合（ステップＳ３０のＹｅｓ）、ステップＳ４０に遷移する。現時間が最終書き込み時間から１日以上経過していない場合（ステップＳ３０のＮｏ）、ステップＳ３３に遷移する。
【０１６５】
［ステップＳ３１］  ＳＳＤ書き込み制御部１１５ａは、Ｉ／Ｏ制御部１１１が、ＳＳＤに最終にアクセスした時間（最終アクセス時間）を確認する。具体的にはＳＳＤ書き込み制御部１１５ａは、ＲＡＩＤグループ情報管理テーブル１１８ａを参照し、当該ＲＡＩＤグループの最終書き込み時間を確認する。その後、ステップＳ３２に遷移する。
【０１６６】
［ステップＳ３２］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ３１にて確認した最終アクセス時間と現時間とを比較する。そしてＳＳＤ書き込み制御部１１５ａは、現時間が最終アクセス時間から半日（１２時間）以上経過したか否かを判断する。現時間が最終アクセス時間から半日以上経過している場合（ステップＳ３２のＹｅｓ）、ステップＳ４０に遷移する。現時間が最終アクセス時間から半日以上経過していない場合（ステップＳ３０のＮｏ）、ステップＳ３３に遷移する。
【０１６７】
［ステップＳ３３］  ＳＳＤ書き込み制御部１１５ａは、退避データ管理テーブル１１８ｂを参照し、退避データ管理テーブル１１８ｂのレコード残数（メモリ１３管理上の残りの領域）を確認する。その後、ステップＳ３４に遷移する。
【０１６８】
［ステップＳ３４］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ３３にて確認したレコード残数が存在するか否かを判断する。レコード残数が存在する場合（ステップＳ３４のＹｅｓ）、ステップＳ３６に遷移する。レコード残数が存在しない場合（ステップＳ３４のＮｏ）、ステップＳ３５に遷移する。
【０１６９】
［ステップＳ３５］  ＳＳＤ書き込み制御部１１５ａは、退避データ更新フラグを「Ｏｎ」に設定する。この退避データ更新フラグは、ＳＳＤ書き込み制御処理内で使用するフラグであり、例えば、メモリ１３にて管理される。その後、ステップＳ２３に遷移する。
【０１７０】
［ステップＳ３６］  ＳＳＤ書き込み制御部１１５ａは、プール領域の残り領域を確認する。その後、ステップＳ３７に遷移する。
［ステップＳ３７］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ３６にて確認した結果に基づいて、プール領域にデータを格納できるか否かを判断する。プール領域にデータを格納できる場合（ステップＳ３７のＹｅｓ）、ステップＳ３８に遷移する。プール領域にデータを格納できない場合（ステップＳ３７のＮｏ）、ステップＳ３５に遷移する。
【０１７１】
［ステップＳ３８］  ＳＳＤ書き込み制御部１１５ａは、退避データ管理テーブル１１８ｂに今回退避した退避データの管理情報を格納する。その後、ステップＳ３９に遷移する。
【０１７２】
［ステップＳ３９］  ＳＳＤ書き込み制御部１１５ａは、退避データをプール領域に格納する。その後、ＳＳＤ書き込み制御処理を終了する。
［ステップＳ４０］  ＳＳＤ書き込み制御部１１５ａは、アクセス対象ＲＡＩＤグループの退避データを確認する。具体的には、ＳＳＤ書き込み制御部１１５ａは退避データ管理テーブル１１８ｂの退避元ＲＬＵナンバーの欄を参照し、アクセス対象ＲＡＩＤグループのレコードが存在するか否かを確認する。その後、ステップＳ４１に遷移する。
【０１７３】
［ステップＳ４１］  ＳＳＤ書き込み制御部１１５ａは、ステップＳ４０にて確認した結果に基づいて、アクセス対象ＲＡＩＤグループの退避データが存在するか否かを判断する。退避データが存在する場合（ステップＳ４１のＹｅｓ）、ステップＳ４２に遷移する。退避データが存在しない場合（ステップＳ４１のＮｏ）、ステップＳ４３に遷移する。
【０１７４】
［ステップＳ４２］  ＳＳＤ書き込み制御部１１５ａは、退避データ更新フラグを「Ｏｎ」に設定する。その後、ステップＳ４３に遷移する。
［ステップＳ４３］  ＳＳＤ書き込み制御部１１５ａは、ＳＳＤへの書き込み処理を行う。この処理は、ステップＳ２３の処理と同様の処理を行う。その後、ＳＳＤ書き込み制御処理を終了する。
【０１７５】
以上で、ＳＳＤ書き込み制御処理の説明を終了する。
なお、本実施の形態では、初回アクセスの場合は、ステップＳ２３に遷移しデータをＳＳＤに書き込んだが、これに限らず、更新アクセスと同様にアクセス頻度に応じて、ＳＳＤに書き込むか否かを決定するようにしてもよい。
【０１７６】
また、図１７には示していないが、ＳＳＤのデータを退避するプール領域の残量が足りない場合は、更新頻度が低いデータをＳＳＤに更新し、プール領域の該当領域を使用可能にするようにしてもよい。
【０１７７】
次に、ＳＳＤ書き込み制御処理の運用に伴い実行される処理（運用状態確認処理）を説明する。
図１８は、運用状態確認処理を示すフローチャートである。
【０１７８】
［ステップＳ５１］  制御部１１５は、ＳＳＤ書き込み制御処理の運用状態を確認する。その後、ステップＳ５２に遷移する。
［ステップＳ５２］  制御部１１５は、ステップＳ５１にて確認した結果に基づいて、ＳＳＤ書き込み制御処理が運用状態か否かを判断する。ＳＳＤ書き込み制御処理が運用状態である場合（ステップＳ５２のＹｅｓ）、ステップＳ５３に遷移する。ＳＳＤ書き込み制御処理が運用状態ではない場合（ステップＳ５２のＮｏ）、運用状態確認処理を終了する。
【０１７９】
［ステップＳ５３］  アクセス監視・履歴管理部１１５ｂは、アクセス情報収集部１１４に対して、対象データのアクセス数の収集を依頼し、アクセス情報収集部１１４によるアクセス回数の収集を開始させる（アクセス監視起動処理）。なお、この処理については後に詳述する。その後、ステップＳ５４に遷移する。以下、ステップＳ５４〜ステップＳ６４の処理は、一定時間間隔（例えば、半日毎や、１日毎）で繰り返し実行される。
【０１８０】
［ステップＳ５４］  アクセス監視・履歴管理部１１５ｂは、上記ステップＳ５３においてアクセス情報収集部１１４によって収集されたアクセス数を収集する（アクセス回数収集処理）。その後、ステップＳ５５に遷移する。
【０１８１】
［ステップＳ５５］  アクセス監視・履歴管理部１１５ｂは、ステップＳ５４にて収集したアクセス数に基づいて、アクセス頻度情報を作成する。そしてアクセス監視・履歴管理部１１５ｂは、作成したアクセス頻度情報をアクセス頻度管理テーブル１１６ａに格納する。
【０１８２】
また、アクセス監視・履歴管理部１１５ｂは、作成したアクセス頻度情報に基づいて、データ毎の運用ランクを示すアクセス履歴情報を作成する。そしてアクセス監視・履歴管理部１１５ｂは、作成したアクセス履歴情報をアクセス履歴管理テーブル１１６ｂに格納する。その後、ステップＳ５６に遷移する。
【０１８３】
［ステップＳ５６］  スケジュール管理・変更部１１５ｃは、アクセス履歴管理テーブル１１６ｂに基づいて、スケジュールを更新することを示す更新処理実行フラグを確認する（更新処理実行確認処理）。なお、更新処理実行確認処理については、後に詳述する。その後、ステップＳ５７に遷移する。
【０１８４】
［ステップＳ５７］  スケジュール管理・変更部１１５ｃは、ステップＳ５６にて確認した更新処理実行フラグに基づいて、更新処理を実行するか否かを判断する。更新処理を実行する場合（ステップＳ５７のＹｅｓ）、ステップＳ５８に遷移する。更新処理を実行しない場合（ステップＳ５７のＮｏ）、ステップＳ５９に遷移する。
【０１８５】
［ステップＳ５８］  スケジュール管理・変更部１１５ｃは、ＳＳＤへの退避データの更新処理を実行する。なお、更新処理については、後に詳述する。その後、ステップＳ５９に遷移する。
【０１８６】
［ステップＳ５９］  スケジュール管理・変更部１１５ｃは、ＳＳＤ書き込み制御処理の運用状態を確認する。これは、運用中に運用設定が解除されたか否かを確認する処理である。その後、ステップＳ６０に遷移する。
【０１８７】
［ステップＳ６０］  スケジュール管理・変更部１１５ｃは、ステップＳ５９にて確認した結果に基づいて、ＳＳＤ書き込み制御処理が運用状態か否かを判断する。ＳＳＤ書き込み制御処理が運用状態である場合（ステップＳ６０のＹｅｓ）、ステップＳ６１に遷移する。ＳＳＤ書き込み制御処理が運用状態ではない場合（ステップＳ６０のＮｏ）、ステップＳ６４に遷移する。
【０１８８】
［ステップＳ６１］  アクセス監視・履歴管理部１１５ｂは、監視周期を確認する。その後、ステップＳ６２に遷移する。
［ステップＳ６２］  アクセス監視・履歴管理部１１５ｂは、ステップＳ６１にて確認した結果に基づいて、ステップＳ６３にて説明するリセット監視パラメータを初期化してから一定周期が経過したか否かを判断する。一定周期が経過した場合（ステップＳ６２のＹｅｓ）、ステップＳ６３に遷移する。一定周期が経過していない場合（ステップＳ６２のＮｏ）、一定時間間隔経過後に、ステップＳ５４に遷移する。
【０１８９】
［ステップＳ６３］  アクセス監視・履歴管理部１１５ｂは、リセット監視パラメータ、つまりアクセスカウンタ１１４ａ、アクセス頻度管理テーブル１１６ａ、および、アクセス履歴管理テーブル１１６ｂのパラメータを初期化する。その後、ステップＳ５４に遷移する。
【０１９０】
［ステップＳ６４］  スケジュール管理・変更部１１５ｃは、ＳＳＤ書き込み制御処理の運用を終了するために、現在、プール領域を有する全てのストレージ装置について、プール領域に退避されているデータをＳＳＤへ書き戻すための更新処理を実行する。その後、運用状態確認処理を終了する。
【０１９１】
以上で、運用状態確認処理の説明を終了する。
次に、ステップＳ５３のアクセス監視起動処理を説明する。
＜アクセス監視起動処理＞
図１９は、アクセス監視起動処理（Ｓ５３）を示すフローチャートである。
【０１９２】
［ステップＳ５３ａ］  アクセス監視・履歴管理部１１５ｂは、アクセス対象ＲＡＩＤグループを確認する。その後、ステップＳ５３ｂに遷移する。以下、アクセス監視・履歴管理部１１５ｂは、ステップＳ５３ｂ〜ステップＳ５３ｄの処理を、アクセス対象ＲＡＩＤグループ毎に繰り返し実行する。
【０１９３】
［ステップＳ５３ｂ］  アクセス監視・履歴管理部１１５ｂは、ステップＳ５３ａにて確認したアクセス対象ＲＡＩＤグループの１つについて、実装状態や、稼働状態を確認する。その後、ステップＳ５３ｃに遷移する。
【０１９４】
［ステップＳ５３ｃ］  アクセス監視・履歴管理部１１５ｂは、ステップＳ５３ｂにて確認した実装状態や、稼働状態がＯＫか否か（異常が発生していないか）を判断する。なお、ここでの異常とは、例えば、未実装、故障の発生、電源ＯＦＦ等を言う。
【０１９５】
状態がＯＫであれば（ステップＳ５３ｃのＹｅｓ）、ステップＳ５３ｄに遷移する。状態がＯＫではなければ（ステップＳ５３ｃのＮｏ）、未だアクセス監視起動処理を行っていないアクセス対象ＲＡＩＤグループが存在すれば、ステップＳ５３ｂに遷移する。そして、そのアクセス対象ＲＡＩＤグループについてステップＳ５３ｂ以降の処理を行う。全てのアクセス対象ＲＡＩＤグループについてアクセス監視起動処理を行った場合は、アクセス監視起動処理を終了する。
【０１９６】
［ステップＳ５３ｄ］  アクセス監視・履歴管理部１１５ｂは、状態がＯＫと判断されたアクセス対象ＲＡＩＤグループについてのアクセス回数の収集の開始を、アクセス情報収集部１１４に依頼する。その後、未だアクセス監視起動処理を行っていないアクセス対象ＲＡＩＤグループが存在すれば、ステップＳ５３ｂに遷移する。そして、そのアクセス対象ＲＡＩＤグループについてステップＳ５３ｂ以降の処理を行う。全てのアクセス対象ＲＡＩＤグループについてアクセス監視起動処理を行った場合は、アクセス監視起動処理を終了する。
【０１９７】
以上でアクセス監視起動処理の説明を終了する。
次に、ステップＳ５４のアクセス回数収集処理を説明する。
＜アクセス回数収集処理＞
図２０は、アクセス回数収集処理（Ｓ５４）を示すフローチャートである。
【０１９８】
［ステップＳ５４ａ］  アクセス監視・履歴管理部１１５ｂは、アクセス対象ＲＡＩＤグループを確認する。その後、ステップＳ５４ｂに遷移する。以下、制御部１１５は、ステップＳ５４ｂ〜ステップＳ５４ｋの処理を、アクセス対象ＲＡＩＤグループ毎に繰り返し実行する。
【０１９９】
［ステップＳ５４ｂ］  アクセス監視・履歴管理部１１５ｂは、ステップＳ５４ａにて確認したアクセス対象ＲＡＩＤグループの１つについて、実装状態や、稼働状態を確認する。その後、ステップＳ５４ｃに遷移する。
【０２００】
［ステップＳ５４ｃ］  アクセス監視・履歴管理部１１５ｂは、ステップＳ５４ｂにて確認した実装状態や、稼働状態がＯＫか否かを判断する。状態がＯＫであれば（ステップＳ５４ｃのＹｅｓ）、ステップＳ５４ｄに遷移する。状態がＯＫではなければ（ステップＳ５４ｃのＮｏ）、ステップＳ５４ｉに遷移する。
【０２０１】
［ステップＳ５４ｄ］  アクセス監視・履歴管理部１１５ｂは、アクセス情報収集部１１４のアクセス回数の収集状態を確認する。アクセス監視・履歴管理部１１５ｂは例えば、アクセス情報収集部１１４が、ストレージ装置２１１ａ等を未実装状態から実装状態に変更したか否かや、ストレージ装置２１１ａが故障状態から復帰した場合等の再起動処理を行っていないかを確認する。
【０２０２】
［ステップＳ５４ｅ］  アクセス監視・履歴管理部１１５ｂは、ステップＳ５４ｄにて確認したアクセス回数の収集状態に基づいて、アクセス情報収集部１１４による収集処理が動作中か否かを判断する。収集処理が動作中である場合（ステップＳ５４ｅのＹｅｓ）、ステップＳ５４ｆに遷移する。収集処理が動作中ではない場合（ステップＳ５４ｅのＮｏ）、ステップＳ５４ｇに遷移する。
【０２０３】
［ステップＳ５４ｆ］  アクセス監視・履歴管理部１１５ｂは、アクセス情報収集部１１４が収集したアクセス回数の送信をアクセス情報収集部１１４に指示する。その後、ステップＳ５４ｋに遷移する。
【０２０４】
［ステップＳ５４ｇ］  アクセス情報収集部１１４による収集処理が動作中でない場合、アクセス監視・履歴管理部１１５ｂは、アクセス回数の再度の収集開始をアクセス情報収集部１１４に指示する。その後、ステップＳ５４ｈに遷移する。
【０２０５】
［ステップＳ５４ｈ］  アクセス監視・履歴管理部１１５ｂは、アクセス回数の初期値を「０」に設定する。その後、ステップＳ５４ｋに遷移する。
［ステップＳ５４ｉ］  アクセス監視・履歴管理部１１５ｂは、状態がＯＫではないと判断された処理対象ＲＡＩＤグループが、状態異常で監視対象外であると決定する。その後、ステップＳ５４ｊに遷移する。
【０２０６】
［ステップＳ５４ｊ］  アクセス監視・履歴管理部１１５ｂは、アクセス回数の初期値を「０」に設定する。その後、ステップＳ５４ｋに遷移する。
［ステップＳ５４ｋ］  アクセス監視・履歴管理部１１５ｂは、収集したアクセス回数をメモリ１３に一時記憶する。その後、未だ状態確認を行っていないアクセス対象ＲＡＩＤグループが存在すれば、ステップＳ５４ｂに遷移する。そして、そのアクセス対象ＲＡＩＤグループについてステップＳ５４ｂ以降の処理を行う。全てのアクセス対象ＲＡＩＤグループについて状態確認を行った場合は、ステップＳ５４ｍに遷移する。
【０２０７】
［ステップＳ５４ｍ］  アクセス監視・履歴管理部１１５ｂは、アクセス回数ランク更新処理を実行する。なお、この処理については後に詳述する。その後、アクセス回数収集処理を終了する。
【０２０８】
以上で、アクセス回数収集処理の説明を終了する。
次に、ステップＳ５６に示す更新処理実行確認処理を説明する。
＜更新処理実行確認処理＞
図２１は、更新処理実行確認処理（Ｓ５６）を示すフローチャートである。
【０２０９】
以下、制御部１１５は、ステップＳ５６ａ〜ステップＳ５６ｇの処理を、アクセス対象ＲＡＩＤグループ毎に繰り返し実行する。
［ステップＳ５６ａ］  スケジュール管理・変更部１１５ｃは、ユーザが指定した指定時間を確認する。この指定時間は、ユーザが時、分、秒単位で指定することができる。指定時間は例えば、１３時３５分３４秒のように指定することができる。その後、ステップＳ５６ｂに遷移する。
【０２１０】
［ステップＳ５６ｂ］  スケジュール管理・変更部１１５ｃは、ステップＳ５６ａにて確認した指定時間と現在の時間とを比較し、指定時間が経過しているか否かを判断する。指定時間が経過している場合（ステップＳ５６ｂのＹｅｓ）、ステップＳ５６ｆに遷移する。指定時間が経過していない場合（ステップＳ５６ｂのＮｏ）、ステップＳ５６ｃに遷移する。
【０２１１】
［ステップＳ５６ｃ］  スケジュール管理・変更部１１５ｃは、アクセス対象ＲＡＩＤグループのアクセス状況を確認する。具体的には、スケジュール管理・変更部１１５ｃはＲＡＩＤグループ情報管理テーブル１１８ａの書き込みアクセスランクの欄を参照し、アクセス対象ＲＡＩＤグループの運用ランクを取得する。その後、ステップＳ５６ｄに遷移する。
【０２１２】
［ステップＳ５６ｄ］  スケジュール管理・変更部１１５ｃは、一定時間が経過したか否かを判断する。具体的には、スケジュール管理・変更部１１５ｃはＲＡＩＤグループ情報管理テーブル１１８ａの最終書き込み時間の欄を参照し、ステップＳ５６ｃにて取得した運用ランクが、取得した運用ランクに対応する最終書き込み時間が定めた時間を経過したか否かを判断する。取得した運用ランクに対応する最終書き込み時間が定めた時間を経過した場合（ステップＳ５６ｄのＹｅｓ）、ステップＳ５６ｆに遷移する。取得した運用ランクに対応する最終書き込み時間が定めた時間を経過していない場合（ステップＳ５６ｄのＮｏ）、ステップＳ５６ｅに遷移する。
【０２１３】
［ステップＳ５６ｅ］  スケジュール管理・変更部１１５ｃは、退避データの更新処理が実行されていないと判定する。その後、未だ更新処理実行確認処理を行っていないＳＳＤ構成ＲＡＩＤグループが存在すれば、ステップＳ５６ａに遷移し、スケジュール管理・変更部１１５ｃはそのＳＳＤ構成ＲＡＩＤグループについてステップＳ５６ａ以降の処理を行う。全てのＳＳＤ構成ＲＡＩＤグループについて更新処理実行確認処理を行った場合は、更新処理実行確認処理を終了する。
【０２１４】
［ステップＳ５６ｆ］  スケジュール管理・変更部１１５ｃは、退避データの更新処理が実行されたと判定する。その後、ステップＳ５６ｇに遷移する。
［ステップＳ５６ｇ］  スケジュール管理・変更部１１５ｃは、更新処理実行フラグを「Ｏｎ」に設定する。この更新処理実行フラグは、例えばメモリ１３に記憶する。その後、未だ更新処理実行確認処理を行っていないＳＳＤ構成ＲＡＩＤグループが存在すれば、ステップＳ５６ａに遷移し、スケジュール管理・変更部１１５ｃはそのＳＳＤ構成ＲＡＩＤグループについてステップＳ５６ａ以降の処理を行う。全てのＳＳＤ構成ＲＡＩＤグループについて更新処理実行確認処理を行った場合は、更新処理実行確認処理を終了する。
【０２１５】
以上で、更新処理実行確認処理の説明を終了する。
次に、ステップＳ５８の更新処理を説明する。
＜更新処理＞
図２２は、更新処理（Ｓ５８）を示すフローチャートである。
【０２１６】
［ステップＳ５８ａ］  スケジュール管理・変更部１１５ｃは、運用解除時の全てのボリューム更新か、すなわち、ステップＳ６４の処理か否かを確認する。その後、ステップＳ５８ｂに遷移する。
【０２１７】
［ステップＳ５８ｂ］  スケジュール管理・変更部１１５ｃは、ステップＳ５８ａにて確認した結果に基づいて、運用を解除するか否かを判断する。運用を解除すると判断した場合、（ステップＳ５８ｂのＹｅｓ）、ステップＳ５８ｃに遷移する。運用を解除しないと判断した場合（ステップＳ５８ｂのＮｏ）、ステップＳ５８ｄに遷移する。
【０２１８】
［ステップＳ５８ｃ］  スケジュール管理・変更部１１５ｃは、退避データのＳＳＤ更新処理をＳＳＤ書き込み制御部１１５ａに依頼する。具体的にはスケジュール管理・変更部１１５ｃは、退避データのＳＳＤへの書き込みと、退避データ管理テーブル１１８ｂの初期化をＳＳＤ書き込み制御部１１５ａに依頼する。その後、未だ更新処理を行っていないＳＳＤ構成ＲＡＩＤグループが存在すれば、ステップＳ５８ａに遷移し、そのＳＳＤ構成ＲＡＩＤグループについてステップＳ５８ａ以降の処理を行う。全てのＳＳＤ構成ＲＡＩＤグループについて更新処理を行った場合は、更新処理を終了する。
【０２１９】
［ステップＳ５８ｄ］  スケジュール管理・変更部１１５ｃは、退避データの更新処理が実行済みかを確認する。具体的には、スケジュール管理・変更部１１５ｃはメモリ１３を参照し、ステップＳ５６ｇにて設定された更新処理実行フラグを確認する。その後、ステップＳ５８ｅに遷移する。
【０２２０】
［ステップＳ５８ｅ］  スケジュール管理・変更部１１５ｃは、ステップＳ５８ｄにて確認した結果に基づいて、退避データの更新処理を実行するか否かを判断する。具体的にはスケジュール管理・変更部１１５ｃは、ステップＳ５８ｄにて確認した更新処理実行フラグに対応するＳＳＤ構成ＲＡＩＤグループの更新処理実行フラグが「Ｏｎ」である場合（ステップＳ５８ｅのＹｅｓ）、ステップＳ５８ｃに遷移する。当該ＳＳＤ構成ＲＡＩＤグループの更新処理実行フラグが「Ｏｆｆ」である場合（ステップＳ５８ｅのＮｏ）、未だ更新処理を行っていないＳＳＤ構成ＲＡＩＤグループが存在すれば、ステップＳ５８ａに遷移し、そのＳＳＤ構成ＲＡＩＤグループについてステップＳ５８ａ以降の処理を行う。全てのＳＳＤ構成ＲＡＩＤグループについて更新処理を行った場合は、更新処理を終了する。
【０２２１】
以上で、更新処理の説明を終了する。
次に、図２０のステップＳ５４ｍのアクセス回数ランク更新処理を説明する。
この処理は、以下のアクセス回数履歴管理処理、スケジュール管理処理、および、スケジュール調整処理の３つの処理によって実現される。以下、順番に説明する。
【０２２２】
＜アクセス回数履歴管理処理＞
図２３は、アクセス回数履歴管理処理を示すフローチャートである。
［ステップＳ７１］  アクセス監視・履歴管理部１１５ｂは、短時間履歴更新処理を開始する。ここで、短時間履歴更新処理とは、アクセス情報収集部１１４によって収集され、アクセスカウンタ１１４ａに一時記憶されたアクセス回数を、所定時間帯毎（ここでは０時から３０分毎）の履歴情報に集約してまとめる処理をいう。その後、ステップＳ７２に遷移する。以下、アクセス監視・履歴管理部１１５ｂは、ステップＳ７２、Ｓ７３の処理を、対象データ数分繰り返し実行する。
【０２２３】
［ステップＳ７２］  アクセス監視・履歴管理部１１５ｂは、対象データ毎に、予め定められた時間から３０分間のアクセス回数からアクセス頻度情報を作成する。そして、アクセス監視・履歴管理部１１５ｂは作成したアクセス頻度情報をアクセス頻度管理テーブル１１６ａに格納する。その後、ステップＳ７３に遷移する。
【０２２４】
［ステップＳ７３］  アクセス監視・履歴管理部１１５ｂは、上記ステップＳ７２にてアクセス頻度管理テーブル１１６ａに格納されたアクセス頻度情報に基づいて、現時点における運用ランク（Ａ〜Ｄ）を決定して、メモリ１３に一時記憶する。
【０２２５】
アクセス監視・履歴管理部１１５ｂは、上記ステップＳ７２、Ｓ７３の処理をデータ数分実行したら、ステップＳ７４に遷移する。
［ステップＳ７４］  アクセス監視・履歴管理部１１５ｂは、メイン履歴更新処理を実行する。ここで、メイン履歴更新処理とは、３０分毎の履歴情報を、データ別に半日毎の情報にまとめて、アクセス履歴管理テーブル１１６ｂに格納する処理をいう。
【０２２６】
［ステップＳ７５］  アクセス監視・履歴管理部１１５ｂは、現在時刻が更新時間であるか否かを判断する。つまり、半日分のアクセス回数を集約すべき時間であるか、換言すると、３０分毎のアクセス回数が半日分取得できているかをアクセス監視・履歴管理部１１５ｂは判断する。更新時間である場合（ステップＳ７５のＹｅｓ）、ステップＳ７６に遷移する。更新時間ではない場合（ステップＳ７５のＮｏ）、アクセス回数履歴管理処理を終了する。
【０２２７】
［ステップＳ７６］  アクセス監視・履歴管理部１１５ｂは、対象データ毎に３０分間のアクセス回数からアクセス履歴情報を作成する。そしてアクセス監視・履歴管理部１１５ｂは、作成したアクセス履歴情報を運用ランクとしてアクセス履歴管理テーブル１１６ｂに格納する。アクセス監視・履歴管理部１１５ｂは、上記ステップＳ７６の処理をデータ数分実行した後に、アクセス回数履歴管理処理を終了する。
【０２２８】
以上で、アクセス回数履歴管理処理の説明を終了する。
次に、スケジュール管理処理フローを説明する。
＜スケジュール管理処理フロー＞
図２４は、スケジュール管理処理を示すフローチャートである。
【０２２９】
［ステップＳ８１］  スケジュール管理・変更部１１５ｃは、スケジュール（履歴・既存）を確認する。このスケジュールの確認は、既存の履歴情報（アクセス状況）から作成される現在のスケジュールを確認して更新するものである。
【０２３０】
［ステップＳ８２］  スケジュール管理・変更部１１５ｃは、スケジュールを更新、または、再構築すべき時間であるか否かを判断する。現在時刻がスケジュールを更新、または、再構築すべき時間である場合（ステップＳ８２のＹｅｓ）、ステップＳ８３に遷移する。スケジュールを更新、または、再構築すべき時間ではない場合（ステップＳ８２のＮｏ）、ステップＳ９１に遷移する。
【０２３１】
［ステップＳ８３］  スケジュール管理・変更部１１５ｃは、現在のスケジュールの再構築処理を確認する。その後、ステップＳ８４に遷移する。
［ステップＳ８４］  スケジュール管理・変更部１１５ｃは、ステップＳ８３の確認に基づいて、再構築処理が必要であるか否かを判断する。再構築処理が必要である場合は、制御モジュール１０ａ等がリセットされた場合や、履歴やスケジュールが存在しない場合等が挙げられる。再構築処理が必要である場合（ステップＳ８４のＹｅｓ）、ステップＳ８５に遷移する。再構築処理が必要ではない場合（ステップＳ８４のＮｏ）、ステップＳ８７に遷移する。以下、スケジュール管理・変更部１１５ｃは、ステップＳ８５、ステップＳ８６の処理を、対象データ数分、および、半日分の時間単位（３０分間隔）毎に繰り返し実行する。
【０２３２】
［ステップＳ８５］  スケジュール管理・変更部１１５ｃは、アクセス情報格納部１１６に保持された当日以外の履歴情報を元に、スケジュール管理テーブル１１７ａに示す現在のスケジュールの欄の運用ランクを算出する。スケジュール管理・変更部１１５ｃは具体的には、当日以外の過去の履歴に基づいて、スケジュール管理テーブル１１７ａに示す時間単位毎に過去のアクセス状況を算出する。ステップＳ８５の処理については、後述する更新スケジュール算出処理を参照しながら詳細に説明する。その後、ステップＳ８６に遷移する。
【０２３３】
［ステップＳ８６］  スケジュール管理・変更部１１５ｃは、上記ステップＳ８５で算出した運用ランクをスケジュール管理テーブル１１７ａに格納する。
スケジュール管理・変更部１１５ｃは、上記ステップＳ８５、Ｓ８６の処理をデータ数分、および、半日分の時間単位（３０分間隔）分実行した後に、ステップＳ８７に遷移する。
【０２３４】
［ステップＳ８７］  スケジュール管理・変更部１１５ｃは、新しいスケジュール、つまり、スケジュール管理テーブル１１７ａの更新用運用ランクの欄のアクセス状況の更新時間を確認する。その後、ステップＳ８８に遷移する。
【０２３５】
［ステップＳ８８］  スケジュール管理・変更部１１５ｃは、ステップＳ８７にて確認した更新時間に基づいて、新スケジュールの更新時間であるか否かを判断する。新スケジュールの更新時間である場合（ステップＳ８８のＹｅｓ）、ステップＳ８９に遷移する。新スケジュールの更新時間ではない場合（ステップＳ８８のＮｏ）、ステップＳ９１に遷移する。以下、スケジュール管理・変更部１１５ｃは、ステップＳ８９、Ｓ９０の処理を、対象データ数毎に繰り返し実行する。
【０２３６】
［ステップＳ８９］  スケジュール管理・変更部１１５ｃは、対象データ数分の更新用のスケジュールを作成する、更新スケジュール算出処理を実行する。なお、スケジュール管理・変更部１１５ｃは、スケジュール管理テーブル１１７ａに格納されている全ての履歴情報、即ち、過去の履歴情報に当日分の履歴情報を合わせたアクセス履歴に基づいて、更新用のスケジュールとしての運用ランクを算出する。つまり、スケジュール管理・変更部１１５ｃは、当日分の履歴を用いて運用ランクを更新する。この処理については、後に詳述する。
【０２３７】
［ステップＳ９０］  スケジュール管理・変更部１１５ｃは、算出した運用ランクを、スケジュール管理テーブル１１７ａの更新用運用ランクの欄の該当する時間帯に格納する。
【０２３８】
スケジュール管理・変更部１１５ｃは、上記ステップＳ８９、Ｓ９０の処理をデータ数分実行した後に、ステップＳ９１に遷移する。
［ステップＳ９１］  スケジュール管理・変更部１１５ｃは、現在時間を確認する。その後、ステップＳ９２に遷移する。
【０２３９】
［ステップＳ９２］  スケジュール管理・変更部１１５ｃは、ステップＳ９１にて確認した現在時間が、スケジュールを最新の情報に更新する更新時間であるか否か、即ち、スケジュール管理テーブル１１７ａの更新用運用ランクの欄の運用ランクを、現在の運用ランクの欄に更新するか否かを判断する。更新時間であると判断すると（ステップＳ９２のＹｅｓ）、ステップＳ９３に遷移する。更新時間ではない場合（ステップＳ９２のＮｏ）、スケジュール管理・変更部１１５ｃはスケジュール管理処理を終了する。以下、スケジュール管理・変更部１１５ｃは、ステップＳ９３、Ｓ９４の処理を、対象データ数毎に繰り返し実行する。
【０２４０】
［ステップＳ９３］  スケジュール管理・変更部１１５ｃは、スケジュール管理テーブル１１７ａの今日の運用ランクの欄のスケジュールを、上記ステップＳ９０において更新（格納）した更新用運用ランクの欄のスケジュールに更新する。その後、ステップＳ９４に遷移する。
【０２４１】
［ステップＳ９４］  スケジュール管理・変更部１１５ｃは、スケジュール管理テーブル１１７ａの更新用運用ランクの欄のスケジュールを初期化する。
スケジュール管理・変更部１１５ｃは、ステップＳ９３、Ｓ９４の処理を対象データ数分実行してから、スケジュール管理処理を終了する。
【０２４２】
スケジュール管理処理が終了すると、スケジュール調整処理を行う。
次に、ステップＳ８９の更新スケジュール算出処理を詳しく説明する。
＜更新スケジュール算出処理＞
図２５、および、図２６は、更新スケジュール算出処理を示すフローチャートである。なお、図２５、および、図２６では運用ランクを単に「ランク」と表記している。
【０２４３】
更新スケジュール算出処理では、運用ランクに基づいた、計算用の値（以下、「ランク数値」）と、運用ランクＡ、Ｂ、Ｃ、Ｄが登場した数（「運用ランクの数」）を管理する。
【０２４４】
図２５の処理開始時点の「ランク数値」「運用ランク数」の初期値は、それぞれ、「０」とする。
スケジュール管理・変更部１１５ｃは、更新スケジュール算出処理を、対象データ数毎に繰り返し実行する。
【０２４５】
［ステップＳ８９ａ］  スケジュール管理・変更部１１５ｃは、以下のステップＳ８９ａ〜Ｓ８９ｄ２：ｇ２の処理を、対象データ数分行って、更新スケジュールを算出する。つまり、スケジュール管理・変更部１１５ｃは、全履歴情報（過去のスケジュールおよび当日のスケジュール）を元に、更新用のスケジュールとしての運用ランク（Ａ〜Ｄ）を所定の時間帯毎（ここでは０時から３０分おき）に算出する。その後、ステップＳ８９ｂに遷移する。
【０２４６】
［ステップＳ８９ｂ］  スケジュール管理・変更部１１５ｃは、全履歴情報（格納データ）を取得し、取得したデータ（スケジュール）に対して以下のステップＳ８９ｃ〜Ｓ８９ｇ２の処理を、取得したデータ数分繰り返し実行し、所定の時間帯毎の優先度を算出する。
【０２４７】
なお、スケジュール管理・変更部１１５ｃは、ステップＳ８９ｂにおいて全履歴情報ではなく、所定の情報だけを取得するようにしてもよい。例えば、スケジュール管理・変更部１１５ｃは、全履歴情報のうち、更新スケジュールを作成すべき時間帯の過去のスケジュールを取得してもよい。
【０２４８】
［ステップＳ８９ｃ］  スケジュール管理・変更部１１５ｃは、上記ステップＳ８９ａにおいて取得した過去のスケジュールの運用ランクを判断する。判断した運用ランクが運用ランクＡの場合、ステップＳ８９ｄ１に遷移する。運用ランクＢの場合、ステップＳ８９ｅ１に遷移する。運用ランクＣの場合、ステップＳ８９ｆ１に遷移する。運用ランクＤの場合、ステップＳ８９ｇ１に遷移する。
【０２４９】
［ステップＳ８９ｄ１］  スケジュール管理・変更部１１５ｃは、ランク数値を１加点する。その後、ステップＳ８９ｄ２に遷移する。
［ステップＳ８９ｄ２］  スケジュール管理・変更部１１５ｃは、運用ランクＡの数を１加える。その後、ステップＳ８９ｈに遷移する。つまり、スケジュール管理・変更部１１５ｃは、上記ステップＳ８９ｂで取得した全てのデータに対するランク数値を算出し保持するとともに、取得したデータのうちの運用ランクＡ、Ｂ、Ｃ、Ｄの数を管理する。
【０２５０】
［ステップＳ８９ｅ１］  スケジュール管理・変更部１１５ｃは、ランク数値を２加点する。その後、ステップＳ８９ｄ２に遷移する。
［ステップＳ８９ｅ２］  スケジュール管理・変更部１１５ｃは、運用ランクＢの数を１加える。その後、ステップＳ８９ｈに遷移する。
【０２５１】
［ステップＳ８９ｆ１］  スケジュール管理・変更部１１５ｃは、ランク数値を３加点する。その後、ステップＳ８９ｆ２に遷移する。
［ステップＳ８９ｆ２］  スケジュール管理・変更部１１５ｃは、運用ランクＣの数を１加える。その後、ステップＳ８９ｈに遷移する。
【０２５２】
［ステップＳ８９ｇ１］  スケジュール管理・変更部１１５ｃは、ランク数値を４加点する。その後、ステップＳ８９ｇ２に遷移する。
［ステップＳ８９ｇ２］  スケジュール管理・変更部１１５ｃは、運用ランクＤの数を１加える。その後、ステップＳ８９ｈに遷移する。
【０２５３】
［ステップＳ８９ｈ］  スケジュール管理・変更部１１５ｃは、全ての取得データに対して上記ステップＳ８９ｅ１〜Ｓ８９ｇ２の処理が終了すると、算出したランク数値の平均値を算出する。つまり、スケジュール管理・変更部１１５ｃは、算出したランク数値を取得データ数で割ることにより平均値を算出する。例えば、図８に示すスケジュール管理テーブル１１７ａを例にとると、更新用運用ランクの欄の運用ランクは、それぞれ、Ａ、Ａ、Ｂ、Ｂ、Ｃである。スケジュール管理・変更部１１５ｃは、最初に取得した運用ランクがＡであるため、ランク数値に１を加点し、運用ランクＡの数を１加える。この結果、ランク数値は「１」、運用ランクＡの数は「１」、その他の運用ランクの数は「０」となる。
【０２５４】
スケジュール管理・変更部１１５ｃは、次に取得した運用ランクがＡであるため、ランク数値に１を加点し、運用ランクＡの数を１加える。この結果、ランク数値は「２」、運用ランクＡの数は「２」、その他の運用ランクの数は「０」となる。
【０２５５】
スケジュール管理・変更部１１５ｃは、次に取得した運用ランクがＢであるため、ランク数値に２を加点し、運用ランクＢの数を１加える。この結果、ランク数値は「４」、運用ランクＡの数は「２」、運用ランクＢの数は「１」、その他の運用ランクの数は「０」となる。
【０２５６】
スケジュール管理・変更部１１５ｃは、次に取得した運用ランクがＢであるため、ランク数値に２を加点し、運用ランクＢの数を１加える。この結果、ランク数値は「６」、運用ランクＡの数は「２」、運用ランクＢの数は「２」、その他の運用ランクの数は「０」となる。
【０２５７】
スケジュール管理・変更部１１５ｃは、次に取得した運用ランクがＣであるため、ランク数値に３を加点し、運用ランクＣの数を１加える。この結果、ランク数値は「７」、運用ランクＡの数は「２」、運用ランクＢの数は「２」、運用ランクＣの数は「１」、運用ランクＤの数は「０」となる。
【０２５８】
スケジュール管理・変更部１１５ｃは、全ての取得データに対して上記ステップＳ８９ｅ１〜Ｓ８９ｇ２の処理が終了したので、算出したランク数値「７」を取得データ数「５」で割ることにより平均値１．４を算出する。
【０２５９】
その後、ステップＳ８９ｉに遷移する。
［ステップＳ８９ｉ］  スケジュール管理・変更部１１５ｃは、算出したランク数の平均値が予め設定された複数の数値範囲のうちのどの範囲に属するかを判断する。平均値が１未満であれば（ステップＳ８９ｉの１未満）ステップＳ８９ｊに遷移する。平均値が１〜１．９９であれば（ステップＳ８９ｉの１〜１．９９）ステップＳ８９ｋに遷移する。平均値が２〜２．９９であれば（ステップＳ８９ｉの２〜２．９９）ステップＳ８９ｏに遷移する。平均値が３〜３．９９であれば（ステップＳ８９ｉの３〜３．９９）ステップＳ８９ｒに遷移する。平均値が４であれば（ステップＳ８９ｉの４）ステップＳ８９ｔに遷移する。
【０２６０】
［ステップＳ８９ｊ］  スケジュール管理・変更部１１５ｃは、当該データの運用ランクをＡであると判断する。その後、ステップＳ８９ｕに遷移する。
［ステップＳ８９ｋ］  スケジュール管理・変更部１１５ｃは、当該データの運用ランクがＡであるかＢであるかを判定する判定処理を行うことを決定する。その後、ステップＳ８９ｍに遷移する。
【０２６１】
［ステップＳ８９ｍ］  スケジュール管理・変更部１１５ｃは、ステップＳ８９ｋの決定に基づき、ステップＳ８９ｄ１〜Ｓ８９ｇ２にて集計した各運用ランクの数に基づいて、運用ランクを判定する。具体的には、スケジュール管理・変更部１１５ｃは、運用ランクＡの数と、運用ランクＢ〜Ｄの数に重み付けを施した数と比較し（ステップＳ８９ｍ；図中“ランク  Ａ＞ランク  Ｂ？”と表記）、運用ランクＡの数の方が多ければ（ステップＳ８９ｍのＹｅｓ）、ステップＳ８９ｊに遷移する。運用ランクＡの数の方が少なければ（ステップＳ８９ｍのＮｏ）、ステップＳ８９ｎに遷移する。
【０２６２】
このとき、スケジュール管理・変更部１１５ｃは、運用ランクＡ、Ｂの数に対する重み係数を“１”、運用ランクＣの数に対する重み係数を“１．２５”、運用ランクＤの数に対する重み係数を“１．５”として、下記式（１）が成り立つか否かを当該ステップにおいて判断する。
【０２６３】
運用ランクＡの数＞運用ランクＢの数＋運用ランクＣの数×１．２５＋運用ランクＤの数×１．５・・・（１）
［ステップＳ８９ｎ］  スケジュール管理・変更部１１５ｃは、当該データの運用ランクをＢと判定する。その後、ステップＳ８９ｕに遷移する。
【０２６４】
［ステップＳ８９ｏ］  スケジュール管理・変更部１１５ｃは、当該データの運用ランクがＢであるかＣであるかを判定する判定処理を行うことを決定する。その後、ステップＳ８９ｐに遷移する。
【０２６５】
［ステップＳ８９ｐ］  スケジュール管理・変更部１１５ｃは、ステップＳ８９ｏの決定に基づき、ステップＳ８９ｄ１〜Ｓ８９ｇ２にて集計した各運用ランクの数に基づいて、運用ランクを判定する。
【０２６６】
具体的には、スケジュール管理・変更部１１５ｃは、運用ランクＡ、Ｂの数に重み付けを施した数と、運用ランクＣ、Ｄの数に重み付けを施した数と比較し（ステップＳ８９ｐ；図中“ランク  Ｂ＞ランク  Ｃ？”と表記）、運用ランクＡ、Ｂの数の方が多ければ（ステップＳ８９ｐのＹｅｓ）、ステップＳ８９ｎに遷移する。運用ランクＡ、Ｂの数の方が少なければ（ステップＳ８９ｐのＮｏ）、ステップＳ８９ｑに遷移する。
【０２６７】
このとき、スケジュール管理・変更部１１５ｃは、運用ランクＡ、Ｄの数に対する重み係数を“１．２５”、運用ランクＢ、Ｃの数に対する重み係数を“１”として、下記式（２）が成り立つか否かを当該ステップにおいて判断する。
【０２６８】
運用ランクＡの数×１．２５＋運用ランクＢの数＞運用ランクＣの数＋運用ランクＤの数×１．２５・・・（２）
［ステップＳ８９ｑ］  スケジュール管理・変更部１１５ｃは、当該データの運用ランクをＣと判定する。その後、ステップＳ８９ｕに遷移する。
【０２６９】
［ステップＳ８９ｒ］  スケジュール管理・変更部１１５ｃは、当該データの運用ランクがＣであるかＤであるかを判定する判定処理を行うことを決定する。その後、ステップＳ８９ｓに遷移する。
【０２７０】
［ステップＳ８９ｓ］  スケジュール管理・変更部１１５ｃは、ステップＳ８９ｒの決定に基づき、ステップＳ８９ｄ１〜Ｓ８９ｇ２にて集計した各運用ランクの数に基づいて、運用ランクを判定する。
【０２７１】
具体的には、スケジュール管理・変更部１１５ｃは、運用ランクＡ〜Ｃの数に重み付けを施した数と、運用ランクＤの数と比較し（ステップＳ８９ｓ；図中“ランク  Ｃ＞ランク  Ｄ？”と表記）、運用ランクＡ〜Ｃの数の方が多ければ（ステップＳ８９ｓのＹｅｓ）、ステップＳ８９ｑに遷移する。運用ランクＡ〜Ｃの数の方が少なければ（ステップＳ８９ｓのＮｏ）、ステップＳ８９ｔに遷移する。
【０２７２】
このとき、スケジュール管理・変更部１１５ｃは、運用ランクＡの数に対する重み係数を“１．５”、運用ランクＢの数に対する重み係数を“１．２５”、運用ランクＣ、Ｄの数に対する重み係数を“１”として、下記式（３）が成り立つか否かを上記ステップＳ４２において判断する。
【０２７３】
運用ランクＡの数×１．５＋運用ランクＢの数×１．２５＋運用ランクＣの数＞運用ランクＤの数・・・（３）
［ステップＳ８９ｔ］  スケジュール管理・変更部１１５ｃは、当該データの運用ランクをＤと判定する。その後、ステップＳ８９ｕに遷移する。
【０２７４】
［ステップＳ８９ｕ］  スケジュール管理・変更部１１５ｃは、これら判定した運用ランクを次回の更新用のスケジュールとして設定（あるいは保持）する。
スケジュール管理・変更部１１５ｃは、上述したステップＳ８９ａ〜Ｓ８９ｕの処理を対象データ数分実行し、更新スケジュール算出処理を終了する。
【０２７５】
このように、スケジュール管理・変更部１１５ｃは、過去のスケジュール（履歴情報）に基づいて更新用のスケジュールを算出する際に、過去のスケジュールの運用ランクに一義的に与えた数値の平均値を単に用いるのではなく、各運用ランクの数に重み付けを施して算出した値にも基づいて更新スケジュールを算出するので、当該データに対する過去のアクセス傾向に則した正確な優先度付け（更新スケジュールの算出）を行うことができる。その結果、メモリ１３をより有効に利用できるようになる。
【０２７６】
つまり、スケジュール管理・変更部１１５ｃは、過去の履歴情報に基づく運用ランク数値の平均値に基づく運用ランクのランク付けに対して、頻度に応じた補正を行うべく、当該運用ランクに対極する運用ランクの数（頻度）に重みを付した判断を行うようにした。これにより、当該データに対する過去の実績を、より正確に反映させた運用ランクのランク付けを行うことができる。
【０２７７】
なお、図２５、および、図２６に示すフローチャート（ステップＳ８９ａ〜Ｓ８９ｕ）に示す処理は、対象とするデータ（上記ステップＳ８９ｂにおいて取得するデータ）の内容によって、ステップＳ８５の処理にもなるし、あるいは、後述する図２８のステップＳ１０９の処理にもなる。
【０２７８】
換言すると、これらステップＳ８９、Ｓ８５、およびＳ１０９の処理は、図２５、および、図２６に示す同一のアルゴリズムによって実現されるものである。
具体的には、上記ステップＳ８９の処理は、上述した通りである。ステップＳ８５の処理は、ステップＳ８９ｂの処理をアクセス情報格納部１１６内の当日分の履歴情報以外の過去の履歴情報を対象として行う。さらに、後述する図２８のステップＳ１０９の処理は、ステップＳ８９ｂの処理をユーザが設定したスケジュール、または過去のスケジュールを対象として行う。
【０２７９】
次に、スケジュール調整処理を説明する。
＜スケジュール調整処理＞
スケジュール調整処理は、例えば、ユーザが設定したスケジュールがある場合には、それらを考慮して、スケジュールを調整するものである。このスケジュールは、ユーザが、インタフェース（図示せず）を介して入力することができる。
【０２８０】
図２７は、ユーザが設定するスケジュールを示す図である。
ユーザが設定するスケジュールは、スケジュール管理テーブル１１７ａと同様のフォーマットでメモリ１３に格納されている。
【０２８１】
図２８は、スケジュール調整処理を示すフローチャートである。
［ステップＳ１０１］  スケジュール調整部１１５ｄは、スケジュール管理テーブル１１７ａの今日の運用ランクの欄のスケジュール（以下、処理日スケジュールともいう）を確認する。その後、ステップＳ１０２に遷移する。
【０２８２】
［ステップＳ１０２］  スケジュール調整部１１５ｄは、ステップＳ１０１の確認結果に基づいて、処理日スケジュールがスケジュール管理テーブル１１７ａに存在するか否かを判断する。処理日スケジュールがスケジュール管理テーブル１１７ａに存在する場合（ステップＳ１０２のＹｅｓ）、ステップＳ１０３に遷移する。処理日スケジュールがスケジュール管理テーブル１１７ａに存在しない場合（ステップＳ１０２のＮｏ）、ステップＳ１０５に遷移する。
【０２８３】
［ステップＳ１０３］  スケジュール調整部１１５ｄは、処理日スケジュールを更新すべき更新時間を確認する。
［ステップＳ１０４］  スケジュール調整部１１５ｄは、ステップＳ１０３の確認結果に基づいて、現在時刻が処理日スケジュールを更新すべき更新時間であるか否かを判断する。現在時刻が更新時間である場合（ステップＳ１０４のＹｅｓ）、ステップＳ１０５に遷移する。現在時刻が更新時間ではない場合（ステップＳ１０４のＮｏ）、スケジュール調整処理を終了する。
【０２８４】
［ステップＳ１０５］  スケジュール調整部１１５ｄは、ユーザが設定したユーザ設定スケジュール（図２７参照）を確認する。その後、ステップＳ１０６に遷移する。
［ステップＳ１０６］  スケジュール調整部１１５ｄは、ステップＳ１０５の確認結果に基づいて、ユーザ設定スケジュールがメモリ１３に存在するか否かを判断する。ユーザ設定スケジュールが存在すれば（ステップＳ１０６のＹｅｓ）、ステップＳ１０７に遷移する。
【０２８５】
なお、このときステップＳ１０６で、上記ステップＳ１０２において処理日スケジュールがないと判断されていれば、スケジュール管理・変更部１１５ｃは、今日の運用ランクの欄に何ら情報を設定せずに、情報がない状態のまま維持する。
【０２８６】
一方、ユーザ設定スケジュールが存在しなければ（ステップＳ１０６のＮｏ）、ステップＳ１１４に遷移する。この場合、スケジュール管理・変更部１１５ｃは、ステップＳ１１４の処理を、対象データ数毎、および、時間単位（３０分間隔）毎に繰り返し実行する。
【０２８７】
［ステップＳ１０７］  スケジュール調整部１１５ｄは、ユーザ設定スケジュールによる最適化処理を行うか否かを判断する。本実施の形態のストレージシステム１００では、ユーザがインタフェース（図示せず）を介して、メモリ１３の内容を決定するスケジュールを調整するにあたり、ユーザ設定スケジュールを優先させる（即ち、ユーザ設定スケジュールをそのままスケジュールとする）か、あるいは、ユーザ設定スケジュールと対応する過去のスケジュール（履歴情報）の一方または両方を優先させるか（すなわち、ユーザ設定スケジュールと対応する過去のスケジュールとの一方または両方を用いた最適化処理を実行するか）を示す優先情報を、ＣＰＵ１１、１２の制御部１１５に対して設定可能に構成されている。
【０２８８】
［ステップＳ１０８］  スケジュール管理・変更部１１５ｃは、ユーザによって設定された優先情報に基づいて、最適化処理が必要であるか否かを判断する。最適化処理が必要である場合（ステップＳ１０８のＹｅｓ）、ステップＳ１０９に遷移する。この場合、スケジュール管理・変更部１１５ｃは、以下のステップＳ１０９、Ｓ１１０の処理を、全ての時間単位分実行し、さらにＳ１０９、Ｓ１１０の処理の時間単位分の実行を対象データ数分実行する。
【０２８９】
最適化処理が必要ではない場合（ステップＳ１０８のＮｏ）、ステップＳ１１２に遷移する。
この場合、スケジュール管理・変更部１１５ｃは、ステップＳ１１２の処理を全ての時間単位分実行し、さらにステップＳ１１２の全ての時間単位分の実行を対象データ数分実行する。
【０２９０】
［ステップＳ１０９］  スケジュール調整部１１５ｄは、ユーザ設定スケジュールに基づいた処理日スケジュールの最適化を実施する。このとき、スケジュール管理・変更部１１５ｃは、上記図２５、および、図２６に示した処理手順（アルゴリズム）により最適化処理を実行する。具体的には、スケジュール管理・変更部１１５ｃは、上記図２５のステップＳ８９ｂにおいて、現在のスケジュールとユーザ設定スケジュールとを取得し、取得した処理日スケジュールとユーザ設定スケジュールとに対して、以降のステップＳ８９ｃ〜Ｓ８９ｕの処理を実行する。その後、ステップＳ１１０に遷移する。
【０２９１】
［ステップＳ１１０］  スケジュール調整部１１５ｄは、現在のスケジュールとユーザ設定スケジュールとの合わせ込みを行って、処理日スケジュールを最適化し、最適化したスケジュール（即ち、“Operational Rank”）をメモリ１３に一時記憶する。
【０２９２】
スケジュール調整部１１５ｄは、上記ステップＳ１０９、Ｓ１１０の処理を対象データ数分、および、時間単位分実行したら、ステップＳ１１１に遷移する。
［ステップＳ１１１］  スケジュール調整部１１５ｄは、ステップＳ１１０にてメモリ１３に一時記憶した処理日スケジュールを、スケジュール管理テーブル１１７ａの今日の運用ランクの欄に格納する。スケジュール調整部１１５ｄはまた、スケジュール調整管理テーブル１１７ｂの運用ランクの欄に一時記憶した処理日スケジュールを、格納する。スケジュール調整部１１５ｄはさらに、ＲＡＩＤグループ情報管理テーブル１１８ａの書き込みアクセスランクの欄にも一時記憶した処理日スケジュールを、格納する。その後、スケジュール調整処理を終了する。
【０２９３】
［ステップＳ１１２］  スケジュール調整部１１５ｄは、ユーザ設定スケジュールをメモリ１３に一時記憶する。
スケジュール調整部１１５ｄは、上記ステップＳ１１２の処理を対象データ数分、および、時間単位分実行したら、ステップＳ１１３に遷移する。
【０２９４】
［ステップＳ１１３］  スケジュール調整部１１５ｄは、ステップＳ１１２にてメモリ１３に一時記憶したユーザ設定スケジュールをスケジュール調整管理テーブル１１７ｂの今日の運用ランクの欄に格納する。その後、スケジュール調整処理を終了する。
【０２９５】
［ステップＳ１１４］  スケジュール調整部１１５ｄは、対象データ数分全てに対して、半日分における所定時間帯毎（３０分単位間隔）に、処理日スケジュール（更新用スケジュール）をそのまま今日のスケジュールに設定する。
【０２９６】
スケジュール調整部１１５ｄは、上記ステップＳ１１４の処理を対象データ数分、および、時間単位分実行したら、スケジュール調整処理を終了する。
このように、スケジュール調整部１１５ｄは、ユーザが設定したユーザ設定スケジュールが存在し、且つ、ユーザによって最適化の指示があれば、過去の履歴情報に基づいて作成した処理日スケジュール（現在のスケジュール）とユーザ設定スケジュールとの合わせ込みを行って、処理日スケジュールを最適化する。これにより、ユーザの意思にも過去の傾向にも合致した処理日スケジュールを設定することができる。その結果、メモリ１３をより有効に使用できる。
【０２９７】
さらに、ユーザの設定により、処理日スケジュールをユーザ設定スケジュールに変更することもできるので、ユーザの利便性が向上する。
以上述べたように、ストレージシステム１００によれば、ＳＳＤ書き込み制御部１１５ａが、ＳＳＤ書き込み制御処理において、運用ランクに応じて、データをＳＳＤに書き込むか、プール領域に退避するのかを決定するようにした。これにより、ＳＳＤ構成ＲＡＩＤグループにデータが高頻度で書き込まれ、早期に書き換え可能回数の上限に達してしまうことを回避することができる。従って、ストレージシステム１００の信頼性を向上させることができる。
【０２９８】
また、更新処理を行うようにしたので、アクセス状況に応じたより精密な制御を行うことができる。
なお、本実施の形態では、ＲＬＵ毎に運用ランクを設定したスケジュール調整管理テーブル１１７ｂを作成した。しかし、これに限らず、このスケジュール調整管理テーブル１１７ｂの代わりに、データ毎の運用ランクを設定したスケジュール調整管理テーブルを作成するようにしてもよい。
【０２９９】
図２９は、データ毎の運用ランクを設定したスケジュール調整管理テーブルを示す図である。
スケジュール調整管理テーブル１１７ｃは、日にち毎に設けられている。
【０３００】
スケジュール調整管理テーブル１１７ｃには、時間、データ１の運用ランク、データ２の運用ランク、・・・、データｎの運用ランクの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【０３０１】
時間の欄には、アクセス履歴管理テーブル１１６ｂと同じ単位での時間が設定されている。
各データの運用ランクの欄には、それぞれ、各スケジュール管理テーブル１１７ａの更新予測値の運用ランクに、ユーザが設定した運用ランクが考慮された結果、作成された運用ランクがまとめられて格納されている。
【０３０２】
このようなスケジュール調整管理テーブル１１７ｃを使用しても、スケジュール調整管理テーブル１１７ｂを使用した場合と同様の効果が得られる。
次に、第３の実施の形態のストレージシステムについて説明する。
【０３０３】
＜第３の実施の形態＞
以下、第３の実施の形態のストレージシステムについて、前述した第２の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０３０４】
第３の実施の形態のストレージシステムは、アクセス回数履歴管理処理が第２の実施の形態と異なり、それ以外は第２の実施の形態と同様である。
第３の実施の形態のアクセス回数履歴管理処理は、Ｓ７６において、以下の履歴情報確認処理、および、ＳＳＤランク補正処理を行うことで、運用ランクを決定し、格納する。以下、これらの処理について順番に説明する。
【０３０５】
＜履歴情報確認処理＞
図３０、および、図３１は、履歴情報確認処理を示すフローチャートである。
［ステップＳ１２１］  アクセス監視・履歴管理部１１５ｂは、直前の短時間履歴情報として、アクセス頻度管理テーブル１１６ａに格納された１分間隔のアクセス回数を所定時間分（ここでは３０分間分）取得する。その後、ステップＳ１２２に遷移する。
【０３０６】
アクセス監視・履歴管理部１１５ｂは、対象データ全てに対して後述するステップＳ１２２〜Ｓ１６５の処理を行う。
［ステップＳ１２２］  アクセス監視・履歴管理部１１５ｂは、上記ステップＳ１２１で取得した直前３０分間の履歴情報の１分間毎の平均値（以下、負荷平均値という）を算出する。その後、ステップＳ１２３に遷移する。
【０３０７】
アクセス監視・履歴管理部１１５ｂは、１分間毎のアクセス回数（つまり、３０個の履歴情報）全てに対して、後述するステップＳ１２３〜Ｓ１３６の処理を行う。
［ステップＳ１２３］  アクセス監視・履歴管理部１１５ｂは、１分間毎のアクセス回数を確認する。その後、ステップＳ１２４に遷移する。
【０３０８】
［ステップＳ１２４］  アクセス監視・履歴管理部１１５ｂは、ステップＳ１２３にて確認した結果に基づいて、１分間毎のアクセス回数が、かかる３０分間の前半部分のものか、後半部分のものかを判断する。
【０３０９】
なお、アクセス監視・履歴管理部１１５ｂは、現在に近い方の最新の１５分間のアクセス回数を前半部分と判断し、３０分間のうちの古い方の１５分間を後半部分と判断する。
前半部分のものである場合（ステップＳ１２４の前半）、ステップＳ１２５に遷移する。後半部分のものである場合（ステップＳ１２４の後半）、ステップＳ１３１に遷移する。
【０３１０】
［ステップＳ１２５］  アクセス監視・履歴管理部１１５ｂは、負荷平均値と、当該アクセス回数（実測値）との差分を確認する。その後、ステップＳ１２６に遷移する。
［ステップＳ１２６］  アクセス監視・履歴管理部１１５ｂは、ステップＳ１２５の確認結果に基づいて、実測値が平均値以上か否かを判断する。実測値が平均値以上である場合（ステップＳ１２６のＹｅｓ）、ステップＳ１２７に遷移する。実測値が平均値より小さい場合（ステップＳ１２６のＮｏ）、ステップＳ１２９に遷移する。
【０３１１】
［ステップＳ１２７］  アクセス監視・履歴管理部１１５ｂは、前半部分で高負荷（アクセス頻度が増加）傾向であることを示す前半高負荷値（初期値は０）に１点を加点する。その後、ステップＳ１２８に遷移する。
【０３１２】
［ステップＳ１２８］  アクセス監視・履歴管理部１１５ｂは、前半部分における高負荷差分の合計値を表す前半高負荷差分値（初期値は０）に、上記ステップＳ１２５において算出された実測値と平均値との差（絶対値）を加点する。その後、ステップＳ１３７に遷移する。
【０３１３】
［ステップＳ１２９］  アクセス監視・履歴管理部１１５ｂは、前半部分で低負荷（アクセス頻度が減少）傾向であることを示す前半低負荷値（初期値は０）に１点を加点する。その後、ステップＳ１３０に遷移する。
【０３１４】
［ステップＳ１３０］  アクセス監視・履歴管理部１１５ｂは、前半部分における低負荷差分の合計値を表す前半低負荷差分値（初期値は０）に、上記ステップＳ１２５において算出された実測値と平均値との差（絶対値）を加点する。その後、ステップＳ１３７に遷移する。
【０３１５】
［ステップＳ１３１］  アクセス監視・履歴管理部１１５ｂは、アクセス監視・履歴管理部１１５ｂは、負荷平均値と、当該アクセス回数との差分を確認する。その後、ステップＳ１３２に遷移する。
【０３１６】
［ステップＳ１３２］  アクセス監視・履歴管理部１１５ｂは、ステップＳ１３１の確認結果に基づいて、実測値が平均値以上か否かを判断する。実測値が平均値以上の場合（ステップＳ１３２のＹｅｓ）、ステップＳ１３５に遷移する。実測値が平均値より小さい場合（ステップＳ１３２のＮｏ）、ステップＳ１３３に遷移する。
【０３１７】
［ステップＳ１３３］  アクセス監視・履歴管理部１１５ｂは、後半部分で低負荷（アクセス頻度が減少）傾向であることを示す後半低負荷値（初期値は０）に１点を加点する。その後、ステップＳ１３４に遷移する。
【０３１８】
［ステップＳ１３４］  アクセス監視・履歴管理部１１５ｂは、後半部分における低負荷差分の合計値を表す後半低負荷差分値（初期値は０）に、上記ステップＳ１３１において算出された実測値と平均値との差（絶対値）を加点する。その後、ステップＳ１３７に遷移する。
【０３１９】
［ステップＳ１３５］  アクセス監視・履歴管理部１１５ｂは、後半部分で高負荷（アクセス頻度が増加）傾向であることを示す後半高負荷値（初期値は０）に１点を加点する。その後、ステップＳ１３６に遷移する。
【０３２０】
［ステップＳ１３６］  アクセス監視・履歴管理部１１５ｂは、後半部分における高負荷差分の合計値を表す後半高負荷差分値（初期値は０）に、上記ステップＳ１３１において算出された実測値と平均値との差（絶対値）を加点する。その後、ステップＳ１３７に遷移する。
【０３２１】
［ステップＳ１３７］  アクセス監視・履歴管理部１１５ｂは、上記ステップＳ１２３〜Ｓ１３６の処理を直前の３０分間の１分単位のアクセス回数の全てに対して実行した後に、前半部分について負荷加点を確認する。つまり、アクセス監視・履歴管理部１１５ｂは、上記ステップＳ１２７において算出した前半高負荷値と、上記ステップＳ１２９において算出した前半低負荷値とを比較する。その後、ステップＳ１３８に遷移する。
【０３２２】
［ステップＳ１３８］  アクセス監視・履歴管理部１１５ｂは、前半部分が高負荷傾向であるか低負荷傾向であるかを判断する。ここで、前半高負荷値と前半低負荷値との差分がサンプルの１／４（つまり、ここでは前半１５分間分の１５個のデータの１／４である３．７５）以上ではない場合には、アクセス監視・履歴管理部１１５ｂは、高負荷と低負荷とが略同一であると判断して（ステップＳ１３８の“高負荷≒低負荷”）、ステップＳ１３９に遷移する。
【０３２３】
また、前半高負荷値が前半低負荷値よりも４以上多い場合には、アクセス監視・履歴管理部１１５ｂは、前半部分が高負荷の可能性があると判断して（ステップＳ１３８の“高負荷≫低負荷”）、ステップＳ１４０に遷移する。
【０３２４】
また、前半低負荷値が前半高負荷値よりも４以上多い場合には、アクセス監視・履歴管理部１１５ｂは、前半部分が低負荷の可能性があると判断して（ステップＳ１３８の“高負荷≪低負荷”）、ステップＳ１４３に遷移する。
【０３２５】
［ステップＳ１３９］  アクセス監視・履歴管理部１１５ｂは、前半部分に負荷変化（増減傾向）はないと判断する。その後、ステップＳ１４６に遷移する。
［ステップＳ１４０］  アクセス監視・履歴管理部１１５ｂは、負荷平均値と前半高負荷差分値の平均値（即ち、前半高負荷差分値をステップＳ１２６において“上”（高負荷）と判定されたサンプル数で割った値）との差分を算出する前半高負荷差分加点比較処理を行う。その後、ステップＳ１４１に遷移する。
【０３２６】
［ステップＳ１４１］  アクセス監視・履歴管理部１１５ｂは、ステップＳ１４０の比較結果に基づいて、算出した差分が平均値に対して５％未満であれば（ステップＳ１４１の“５％未満”）、ステップＳ１３９に遷移する。算出した差分が平均値に対して５％以上であれば（ステップＳ１４１の“５％以上”）、ステップＳ１４２に遷移する。
【０３２７】
［ステップＳ１４２］  アクセス監視・履歴管理部１１５ｂは、アクセス監視・履歴管理部１１５ｂは、前半部分が高負荷傾向（増加傾向；前半高負荷）と判断する。その後、ステップＳ１４６に遷移する。
【０３２８】
［ステップＳ１４３］  アクセス監視・履歴管理部１１５ｂは、負荷平均値と前半低負荷差分値の平均値（即ち、前半低負荷差分値をステップＳ１２６において“下”（低負荷）と判定されたサンプル数で割った値）との差分を算出する前半低負荷差分加点比較処理を行う。
【０３２９】
［ステップＳ１４４］  アクセス監視・履歴管理部１１５ｂは、ステップＳ１４３の比較結果に基づいて、算出した差分が平均値に対して５％未満であれば（ステップＳ１４４の“５％未満”）、ステップＳ１３９に遷移する。
【０３３０】
一方、算出した差分が平均値に対して５％以上であれば（ステップＳ１４４の“５％以上”）、ステップＳ１４５に遷移する。
［ステップＳ１４５］  アクセス監視・履歴管理部１１５ｂは、前半部分が低負荷傾向（減少傾向；前半低負荷）と判断する。その後、ステップＳ１４６に遷移する。
【０３３１】
［ステップＳ１４６］  アクセス監視・履歴管理部１１５ｂは、上記ステップＳ１３７〜Ｓ１４５に示した前半部分に対する処理と同様の処理を、後半部分に対しても実行する。
【０３３２】
なお、上記ステップＳ１３７〜Ｓ１４５の処理と、ステップＳ１４６〜Ｓ１５４の処理とはそれぞれ対応しており、各処理において対象とするデータが、後半低負荷値、後半高負荷値、後半低負荷差分値、および後半高負荷差分値である点のみが異なっている。従って、ステップＳ１４７〜Ｓ１５４については、その詳細な説明を省略する。
【０３３３】
［ステップＳ１５５］  アクセス監視・履歴管理部１１５ｂは、後半部分について、後半負荷変化なし（ステップＳ１４８）か、後半高負荷（ステップＳ１５１）か、後半低負荷（ステップＳ１５４）のいずれかを判断すると、前半部分の負荷傾向（前半負荷）と後半部分の負荷傾向（後半負荷）とを比較する。その後、ステップＳ１５６に遷移する。
【０３３４】
［ステップＳ１５６］  アクセス監視・履歴管理部１１５ｂは、ステップＳ１５５の比較結果に基づいて、前半負荷がどのように判断されたかを、上記ステップＳ１３９、Ｓ１４２、Ｓ１４５の判断結果に基づいて判断する。
【０３３５】
ここで、アクセス監視・履歴管理部１１５ｂは、前半負荷が高負荷であると判断すると（ステップＳ１５６の“高負荷”）、ステップＳ１５７に遷移する。
また、アクセス監視・履歴管理部１１５ｂは、前半負荷の変化がないと判断すると（ステップＳ１５６の“変化なし”）、ステップＳ１６１に遷移する。
【０３３６】
また、アクセス監視・履歴管理部１１５ｂは、前半負荷が低負荷であると判断すると（ステップＳ１５６の“低負荷”）、ステップＳ１６３に遷移する。
［ステップＳ１５７］  アクセス監視・履歴管理部１１５ｂは、後半負荷がどのように判断されたかを、上記ステップＳ１４８、Ｓ１５１、Ｓ１５４の判断結果に基づいて判断する。そして、アクセス監視・履歴管理部１１５ｂは、後半負荷が逆に低負荷であると判断すると（ステップＳ１５７の“低負荷”）、ステップＳ１５８に遷移する。後半負荷の変化がないと判断すると（ステップＳ１５７の“変化なし”）、ステップＳ１５９に遷移する。
【０３３７】
さらに、アクセス監視・履歴管理部１１５ｂは、後半負荷も高負荷であると判断すると（ステップＳ１５７の“高負荷”）、ステップＳ１６０に遷移する。
［ステップＳ１５８］  アクセス監視・履歴管理部１１５ｂは、直前のアクセス傾向が、増加傾向化が大きい（高負荷化大）と判断する。その後、ステップＳ１６５に遷移する。
【０３３８】
［ステップＳ１５９］  アクセス監視・履歴管理部１１５ｂは、直前のアクセス傾向が、増加傾向化が小さい（高負荷化小）と判断する。その後、ステップＳ１６５に遷移する。
【０３３９】
［ステップＳ１６０］  アクセス監視・履歴管理部１１５ｂは、直前のアクセス傾向が、増減変化なし（負荷変化なし）と判断する。その後、ステップＳ１６５に遷移する。
［ステップＳ１６１］  アクセス監視・履歴管理部１１５ｂは、後半負荷の傾向を判断する。ここで、アクセス監視・履歴管理部１１５ｂは、後半負荷が低負荷であると判断すると（ステップＳ１６１の“低負荷”）、ステップＳ１５９に遷移する。
【０３４０】
そして、後半負荷の変化がないと判断すると（ステップＳ１６１の“変化なし”）、直前のアクセス傾向が、増減変化なし（負荷変化なし）と判断する（ステップＳ１６０）。
さらに、アクセス監視・履歴管理部１１５ｂは、後半負荷が高負荷であると判断すると（ステップＳ１６１の“高負荷”）、ステップＳ１６２に遷移する。
【０３４１】
［ステップＳ１６２］  アクセス監視・履歴管理部１１５ｂは、直前のアクセス傾向が、減少傾向化が小さい（低負荷化小）と判断する。その後、ステップＳ１６５に遷移する。
【０３４２】
［ステップＳ１６３］  アクセス監視・履歴管理部１１５ｂは、後半負荷が低負荷であると判断すると（ステップＳ１６３の“低負荷”）、ステップＳ１６０に遷移する。
一方、アクセス監視・履歴管理部１１５ｂは、後半負荷の変化がないと判断すると（ステップＳ１６３の“変化なし”）、ステップＳ１６２に遷移する。
【０３４３】
さらに、アクセス監視・履歴管理部１１５ｂは、後半負荷が高負荷であると判断すると（ステップＳ１６３の“高負荷”）、ステップＳ１６４に遷移する。
［ステップＳ１６４］  アクセス監視・履歴管理部１１５ｂは、直前のアクセス傾向が、減少傾向化が大きい（低負荷化大）と判断する。その後、ステップＳ１６５に遷移する。
【０３４４】
［ステップＳ１６５］  アクセス監視・履歴管理部１１５ｂは、上述した負荷判定結果をメモリ１３に保存する。
アクセス監視・履歴管理部１１５ｂは、上述したステップＳ１２３〜Ｓ１６５の処理を、処理対象の全データに対して実行し、履歴情報確認処理を終了する。
【０３４５】
このように、アクセス監視・履歴管理部１１５ｂは、アクセス履歴管理テーブル１１６ｂに運用ランクを格納する際に、当該スケジュールを作成してから当該スケジュールに基づく更新処理を開始するまでの間に収集された直前のアクセス回数（履歴）に基づいて、直前のアクセス傾向を判断する。
【０３４６】
その際、アクセス監視・履歴管理部１１５ｂは、直前の所定時間分のアクセス回数を、前半部分と後半部分とに分け、それぞれについて増減傾向を判断し、それら前半部分の増減傾向と後半部分の増減傾向とを比較することにより、直前のアクセス傾向を判断するので、かかる判断を正確に行うことができる。
【０３４７】
また、増減傾向を判断するにあたり、負荷平均値に対するアクセス頻度の大小（前半高負荷値、前半低負荷値、後半高負荷値、後半低負荷値）だけを比較する（ステップＳ１３８、Ｓ１４７）だけでなく、負荷平均値に対する実際の差分値（前半高負荷差分値、前半低負荷差分値、後半高負荷差分値、後半低負荷差分値）に基づいて、増減傾向を判断するので、直前のアクセス傾向をより正確に判断できる。
【０３４８】
さらにその際、アクセス監視・履歴管理部１１５ｂは、差分値の平均値が、負荷平均値に対して５％未満の差しかなければ（ステップＳ１４１、Ｓ１４４、Ｓ１５０、Ｓ１５３の“５％未満”）、負荷変化なしと判断するので（ステップＳ１３９、Ｓ１４８）、負荷値に基づけば高負荷傾向または低負荷傾向であると判断できるものであっても、実際の差分値が殆どなければ変化なしと判断することにより、増減傾向の判断をより正確なものにできる。
【０３４９】
次に、ＳＳＤランク補正処理を説明する。
＜ＳＳＤランク補正処理＞
図３２は、ＳＳＤランク補正処理を示すフローチャートである。なお、図３２では運用ランクを単に「ランク」と表記している。
【０３５０】
［ステップＳ１７１］  スケジュール管理・変更部１１５ｃは、スケジュール調整部１１５ｄの処理日スケジュールを取得する。そして、スケジュール管理・変更部１１５ｃは、ステップＳ１７２〜Ｓ１９８の処理を、処理対象のデータ数分実行する。
【０３５１】
［ステップＳ１７２］  スケジュール管理・変更部１１５ｃは、取得した処理日スケジュールにおける現在時刻の運用ランク（Operational Rank）を確認する。その後、ステップＳ１７３に遷移する。
【０３５２】
［ステップＳ１７３］  スケジュール管理・変更部１１５ｃは、ステップＳ１７２にて確認した運用ランクに基づいて、データ展開制御のベース値を設定する。具体的には、運用ランクＡである場合（ステップＳ１７３のランクＡ）、ステップＳ１７４に遷移する。運用ランクＢである場合（ステップＳ１７３のランクＢ）、ステップＳ１７５に遷移する。運用ランクＣである場合（ステップＳ１７３のランクＣ）、ステップＳ１７６に遷移する。運用ランクＤである場合（ステップＳ１７３のランクＤ）、ステップＳ１７７に遷移する。
【０３５３】
［ステップＳ１７４］  スケジュール管理・変更部１１５ｃは、退避最優先モードに設定する。その後、ステップＳ１７８に遷移する。
［ステップＳ１７５］  スケジュール管理・変更部１１５ｃは、退避優先モードに設定する。その後、ステップＳ１７８に遷移する。
【０３５４】
［ステップＳ１７６］  スケジュール管理・変更部１１５ｃは、退避可能モードに設定する。その後、ステップＳ１７８に遷移する。
［ステップＳ１７７］  スケジュール管理・変更部１１５ｃは、退避抑止モードに設定する。その後、ステップＳ１７８に遷移する。
【０３５５】
［ステップＳ１７８］  スケジュール管理・変更部１１５ｃは、履歴情報の付け合せ処理として、図３０、および、図３１に示す履歴情報確認処理によって獲得したアクセス傾向（負荷傾向）を示す情報から、実際のデータ展開制御処理の運用ランクを決定する処理を開始する。
【０３５６】
［ステップＳ１７９］  スケジュール管理・変更部１１５ｃは、当該データの負荷傾向（図３１のステップＳ１６５において保存された負荷判定結果）を確認する。負荷傾向が高負荷傾向大であれば（ステップＳ１７９の高負荷傾向大）、ステップＳ１８０に遷移する。負荷傾向が高負荷傾向小であれば（ステップＳ１７９の高負荷傾向小）、ステップＳ１８１に遷移する。負荷傾向が変更なしであれば（ステップＳ１７９の変更なし）、ステップＳ１８２に遷移する。負荷傾向が低負荷傾向小であれば（ステップＳ１７９の低負荷傾向小）、ステップＳ１８３に遷移する。負荷傾向が低負荷傾向大であれば（ステップＳ１７９の低負荷傾向大）、ステップＳ１８４に遷移する。
【０３５７】
［ステップＳ１８０］  スケジュール管理・変更部１１５ｃは、予め設定された重み基準値（例えば、１）を１．２倍して補正用の重みを算出する。その後、ステップＳ１８５に遷移する。
【０３５８】
［ステップＳ１８１］  スケジュール管理・変更部１１５ｃは、重み基準値を１．１倍して補正用の重みを算出する。その後、ステップＳ１８５に遷移する。
［ステップＳ１８２］  スケジュール管理・変更部１１５ｃは、重み基準値を１．０倍して補正用の重みを算出する。その後、ステップＳ１８５に遷移する。
【０３５９】
［ステップＳ１８３］  スケジュール管理・変更部１１５ｃは、重み基準値を０．９倍して補正用の重みを算出する。その後、ステップＳ１８５に遷移する。
［ステップＳ１８４］  スケジュール管理・変更部１１５ｃは、重み基準値を０．８倍して補正用の重みを算出する。その後、ステップＳ１８５に遷移する。
【０３６０】
［ステップＳ１８５］  スケジュール管理・変更部１１５ｃは、図３０のステップＳ１２８またはステップＳ１３０において算出した履歴情報の差分結果としての前半高負荷差分または前半低負荷差分を、補正用の重みに反映する。具体的には、スケジュール管理・変更部１１５ｃは、下記、式（４）に示す計算を行う。
【０３６１】
補正用の重み＋（差分結果／１００）・・・（４）
ここで、スケジュール管理・変更部１１５ｃは、上記ステップＳ１７９のチェック結果が、高負荷傾向大、または、高負荷傾向小であった場合には、上記図３０のステップＳ１２８において算出した前半高負荷差分を上記式（４）の差分結果の値として採用する。このとき、スケジュール管理・変更部１１５ｃは、前半高負荷差分をそのまま正の値として差分結果に使用する。
【０３６２】
一方、スケジュール管理・変更部１１５ｃは、上記ステップＳ１７９のチェック結果が、低負荷負荷傾向小、または、低負荷傾向大であった場合には、上記図３０のステップＳ１３０において算出した前半低負荷差分を上記式（４）の差分結果の値として採用する。
【０３６３】
このとき、スケジュール管理・変更部１１５ｃは、前半低負荷差分を負の値として差分結果に使用する。
また、スケジュール管理・変更部１１５ｃは、上記ステップＳ１７９のチェック結果が、変化なしであった場合には、差分結果の値として０を使用する。その後、ステップＳ１８６に遷移する。
【０３６４】
［ステップＳ１８６］  スケジュール管理・変更部１１５ｃは、上記図３０のステップＳ１２２において算出した履歴情報の負荷平均値に補正用の重みの値を反映する。具体的には、負荷平均値に上記ステップＳ１８５において処理を施された補正用の重みを積算する。その後、ステップＳ１８７に遷移する。
【０３６５】
［ステップＳ１８７］  スケジュール管理・変更部１１５ｃは、ステップＳ１８６の反映結果を判定する。反映結果（即ち、上記ステップＳ１８６による処理結果）が、１０以上であれば（ステップＳ１８７の１０〜）、ステップＳ１８８に遷移する。
【０３６６】
また、スケジュール管理・変更部１１５ｃは、反映結果が５以上、９．９９以下であれば（ステップＳ１８７の５〜９．９９）、ステップＳ１８９に遷移する。反映結果が１以上、４．９９以下であれば（ステップＳ１８７の１〜４．９９）、ステップＳ１９０に遷移する。反映結果が０以上、０．９９以下であれば（ステップＳ１８７の０〜０．９９）、ステップＳ１９１に遷移する。
【０３６７】
［ステップＳ１８８］  スケジュール管理・変更部１１５ｃは、当該対象データの補正用の運用ランクを運用ランクＡと判定する。その後、ステップＳ１９２に遷移する。
［ステップＳ１８９］  スケジュール管理・変更部１１５ｃは、当該対象データの補正用の運用ランクを運用ランクＢと判定する。その後、ステップＳ１９２に遷移する。
【０３６８】
［ステップＳ１９０］  スケジュール管理・変更部１１５ｃは、当該対象データの補正用の運用ランクを運用ランクＣと判定する。その後、ステップＳ１９２に遷移する。
［ステップＳ１９１］  スケジュール管理・変更部１１５ｃは、当該対象データの補正用の運用ランクを運用ランクＤと判定する。その後、ステップＳ１９２に遷移する。
【０３６９】
なお、これら運用ランクＡ〜Ｄは、スケジュールにおける優先度としての運用ランクと同様の意義を持つものであるが、反映結果は、３０分間の平均値（１分間当たりの値）であるので、上記ステップＳ１８７の分岐条件に基づいて、同義のランク付けを行うことができる。
【０３７０】
［ステップＳ１９２］  スケジュール管理・変更部１１５ｃは、反映結果の結果値と補正用の運用ランクとをメモリ１３に記憶する。その後、ステップＳ１９３に遷移する。
［ステップＳ１９３］  スケジュール管理・変更部１１５ｃは、上記ステップＳ１７３における判定結果であるベース値としての運用ランクと、補正用の運用ランク（反映結果）との照合を行う。具体的には、スケジュール管理・変更部１１５ｃは、ベース値としての運用ランク、および、補正用の運用ランクをそれぞれ数値化して平均値を算出する。ここでは、運用ランクＡは１、運用ランクＢは２、運用ランクＣは３、運用ランクＤは４として、ベース値としての運用ランクおよび補正用の運用ランクをそれぞれ数値化して、これら２つの値の平均値を求める。その後、ステップＳ１９４に遷移する。
【０３７１】
［ステップＳ１９４］  スケジュール管理・変更部１１５ｃは、ステップＳ１９３にて求めた平均値を用いてデータ退避優先度判定処理を開始する。
［ステップＳ１９５］  スケジュール管理・変更部１１５ｃは、ステップＳ１７３にて行ったランク判定により得られたモードに基づいて、データを退避が優先であるか否かを判断する。スケジュール管理・変更部１１５ｃは、モードが、退避最優先モード、または、退避優先モードであれば（ステップＳ１９５のＹｅｓ）、ステップＳ１９６に遷移する。データ退避優先情報が、退避可能モード、または、退避抑止モードであれば（ステップＳ１９５のＮｏ）、ステップＳ１９７に遷移する。
【０３７２】
［ステップＳ１９６］  スケジュール管理・変更部１１５ｃは、データ退避優先判定処理として、上記ステップＳ１９３において算出した平均値の余りを切り捨てた値に基づいて、当該対象データの最終的な運用ランクを判定する処理を行う。
【０３７３】
例えば、平均値が１．５であった場合には、スケジュール管理・変更部１１５ｃは、その平均値における０．５を切り捨てて平均値を１．０として取り扱い、上記ステップＳ１９３において運用ランクを数値化した値を用いて、その平均値をランク化する。
【０３７４】
具体的には、スケジュール管理・変更部１１５ｃは、平均値が１であれば運用ランクＡと判定し、平均値が２であれば運用ランクＢと判定し、平均値が３であれば運用ランクＣと判定し、平均値が４であれば運用ランクＤと判定する。その後、ステップＳ１９８に遷移する。
【０３７５】
このように、スケジュール管理・変更部１１５ｃは、データ退避優先時には、平均値の余りを切り捨てることによって、平均値を極力小さい値にして当該データの最終的な優先度を高めるようにする。
【０３７６】
［ステップＳ１９７］  スケジュール管理・変更部１１５ｃは、通常運用優先判定処理として、上記ステップＳ１９３において算出した平均値の余りを繰り上げた値に基づいて、当該対象データの最終的な運用ランクを判定する処理を行う。
【０３７７】
例えば、平均値が１．５であった場合には、スケジュール管理・変更部１１５ｃは、その平均値における０．５を繰り上げて平均値を２．０として取り扱い、その平均値を上記ステップＳ１９６の処理と同様にランク化する。その後、ステップＳ１９８に遷移する。
【０３７８】
このように、スケジュール管理・変更部１１５ｃは、通常運用優先時には、平均値の余りを繰り上げることによって、平均値を通常通り取り扱って当該データの最終的な優先度を求める。
【０３７９】
［ステップＳ１９８］  スケジュール管理・変更部１１５ｃは、上記ステップＳ１９６、または、ステップＳ１９７において判定した運用ランクを、最終的な運用ランクとしての個別制御用ランク（Operational Rank）としてアクセス履歴管理テーブル１１６ｂの運用ランクの欄に設定する。
【０３８０】
スケジュール管理・変更部１１５ｃは、上述したステップＳ１７２〜Ｓ１９８までの処理を、対象データ数分実行し、ＳＳＤランク補正処理を終了する。
この第３の実施の形態のストレージシステムによれば、第２の実施の形態のストレージシステム１００と同様の効果が得られる。
【０３８１】
そして、第３の実施の形態のストレージシステムによれば、さらに、スケジュール管理・変更部１１５ｃは、データ展開処理を行う前に直前のアクセス傾向に基づいて、スケジュールを当該アクセス傾向に合わせて確実に補正することができる。つまり、スケジュール管理・変更部１１５ｃは、直前のアクセス傾向に基づいてスケジュールを動的に変化させることができる。従って、スケジュールを決定してからアクセス傾向が変化した場合等であっても、補正後のアクセス傾向に基づいてＳＳＤ書き込み制御処理を行うことにより、メモリ１３を有効に活用することができる。
【０３８２】
なお、上述した図３０、および、図３１の各ステップにおいて用いた全ての数値は、本発明において限定されるものではなく、上記図３０、および、図３１の処理の趣旨を逸脱しない範囲で種々変更することができる。
【０３８３】
以上、本発明のストレージ制御プログラム、ストレージ制御方法およびストレージ制御装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０３８４】
また、本発明は、前述した実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御モジュール１０ａが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等がある。
【０３８５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０３８６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０３８７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【０３８８】
以上の第１〜第３の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  コンピュータに、
ホスト装置から送信されたデータの記憶媒体への書き込みアクセス状況に応じて前記データ毎のアクセス頻度を識別するアクセス頻度情報を作成する作成手順、
前記作成手順により作成された前記アクセス頻度情報に基づいて、データ退避用に設けられた退避領域に退避されたデータを前記記憶媒体に書き込むか、前記退避領域に退避させた状態を保持するかを判断する判断手順、
前記判断手順の判断に応じて前記退避領域に退避させたデータを前記記憶媒体に書き込む書き込み手順、
を実行させることを特徴とするストレージ制御プログラム。
【０３８９】
（付記２）  前記アクセス頻度情報は、前記記憶媒体へのアクセス頻度に応じたデータ書き込みの判断基準が段階的に設定されており、前記アクセス頻度が最も低い段階にある場合は、前記退避領域に退避させたデータを前記記憶媒体に書き込むよう設定されていることを特徴とする付記１記載のストレージ制御プログラム。
【０３９０】
（付記３）  前記アクセス頻度情報は、前記記憶媒体へのアクセス頻度が最も低い段階以外の段階において、前記記憶媒体へのアクセスが所定時間なかった場合に前記退避領域に退避させたデータを前記記憶媒体に書き込むと判断することを特徴とする付記２記載のストレージ制御プログラム。
【０３９１】
（付記４）  前記アクセス頻度が最も高い段階では、前記退避領域に退避させたデータを前記退避領域に退避させた状態を保持することを特徴とする付記２記載のストレージ制御プログラム。
【０３９２】
（付記５）  前記判断手順では、前記退避領域の残量がデータ量未満である場合は、前記アクセス頻度にかかわらず前記データを前記記憶媒体に書き込むことを特徴とする付記１記載のストレージ制御プログラム。
【０３９３】
（付記６）  前記コンピュータに、さらに、前記ホスト装置からの前記データの読み出し要求に対し、前記記憶媒体より先に前記退避領域にデータが存在するか否かを判断するデータ読み出し判断手順を実行させることを特徴とする付記１記載のストレージ制御プログラム。
【０３９４】
（付記７）  前記データ読み出し判断手順では、前記退避領域にデータが存在する場合、全データか一部データかを判断し、一部データの場合、前記退避領域のデータと前記記憶媒体に記憶されたデータとを読み出すことを特徴とする付記６記載のストレージ制御プログラム。
【０３９５】
（付記８）  コンピュータが、
ホスト装置から送信されたデータの記憶媒体への書き込みアクセス状況に応じて前記データ毎のアクセス頻度を識別するアクセス頻度情報を作成し、
作成されたアクセス頻度情報に基づいて、データ退避用に設けられた退避領域に退避されたデータを前記記憶媒体に書き込むか、前記退避領域に退避させた状態を保持するかを判断し、
前記判断に応じて前記退避領域に退避させたデータを前記記憶媒体に書き込む、
ことを特徴とするストレージ制御方法。
【０３９６】
（付記９）  ホスト装置から送信されたデータの記憶媒体への書き込みアクセス状況に応じて前記データ毎のアクセス頻度を識別するアクセス頻度情報を作成する作成部と、
前記作成部により作成された前記アクセス頻度情報に基づいて、データ退避用に設けられた退避領域に退避されたデータを前記記憶媒体に書き込むか、前記退避領域に退避させた状態を保持するかを判断する判断部と、
前記判断部の判断に応じて前記退避領域に退避させたデータを前記記憶媒体に書き込む書き込み部と、
を有することを特徴とするストレージ制御装置。
【符号の説明】
【０３９７】
１  ストレージ制御装置
１ａ  入出力制御部
１ｂ  アクセス監視部
１ｃ  アクセス制御部
１ｄ  キャッシュ
２  ストレージ装置群
２ａ、２ｂ  ストレージ装置
３  ホスト装置
１０ａ、１０ｂ、１０ｃ  制御モジュール
１１ｃ  作成部
１２ｃ  判断部
１３  メモリ
１３ｃ  書き込み部
１４  チャネルアダプタ
１５  デバイスアダプタ
１８  コントローラエンクロージャ
２０  ドライブエンクロージャ群
２０ａ〜２０ｄ  ドライブエンクロージャ
３０  ホスト
１００  ストレージシステム
１１１  Ｉ／Ｏ制御部
１１２  システム制御部
１１３  装置監視部
１１４  アクセス情報収集部
１１４ａ  アクセスカウンタ
１１５  制御部
１１５ａ  ＳＳＤ書き込み制御部
１１５ｂ  アクセス監視・履歴管理部
１１５ｃ  スケジュール管理・変更部
１１５ｄ  スケジュール調整部
１１６  アクセス情報格納部
１１６ａ  アクセス頻度管理テーブル
１１６ｂ  アクセス履歴管理テーブル
１１７  スケジュール格納部
１１７ａ  スケジュール管理テーブル
１１７ｂ、１１７ｃ  スケジュール調整管理テーブル
１１８  ＲＡＩＤグループ情報格納部
１１８ａ  ＲＡＩＤグループ情報管理テーブル
１１８ｂ  退避データ管理テーブル
【図１】
0005521716.tif 000002
【図２】
0005521716.tif 000003
【図３】
0005521716.tif 000004
【図４】
0005521716.tif 000005
【図５】
0005521716.tif 000006
【図６】
0005521716.tif 000007
【図７】
0005521716.tif 000008
【図８】
0005521716.tif 000009
【図９】
0005521716.tif 000010
【図１０】
0005521716.tif 000011
【図１１】
0005521716.tif 000012
【図１２】
0005521716.tif 000013
【図１３】
0005521716.tif 000014
【図１４】
0005521716.tif 000015
【図１５】
0005521716.tif 000016
【図１６】
0005521716.tif 000017
【図１７】
0005521716.tif 000018
【図１８】
0005521716.tif 000019
【図１９】
0005521716.tif 000020
【図２０】
0005521716.tif 000021
【図２１】
0005521716.tif 000022
【図２２】
0005521716.tif 000023
【図２３】
0005521716.tif 000024
【図２４】
0005521716.tif 000025
【図２５】
0005521716.tif 000026
【図２６】
0005521716.tif 000027
【図２７】
0005521716.tif 000028
【図２８】
0005521716.tif 000029
【図２９】
0005521716.tif 000030
【図３０】
0005521716.tif 000031
【図３１】
0005521716.tif 000032
【図３２】
0005521716.tif 000033