(57)【要約】【課題】階層化されたストレージを使用し、性能低下を抑えた大容量でコストパフォーマンスに優れた計算機システムを提供することを目的とする。【解決手段】本発明は、複数の計算機と、複数の計算機に接続される階層ストレージ装置（第一のストレージ媒体、低転送速度の第二のストレージ媒体）と、複数の計算機及び階層ストレージ装置に接続されるシステム管理装置、を具備する計算機システムである。  システム管理装置は、複数の計算機の計算ジョブ実行スケジュールを作成あるいは計算機システム内の他の装置から取得し、予め定められた方法によって計算ジョブ実行スケジュールに応じて階層ストレージ装置間のデータ移動を計画し、その計画に基づいて階層ストレージ装置に対してデータ移動の指令を出す。【選択図】図１
2008293233.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機と、前記複数の計算機に接続される階層ストレージ装置と、前記複数の計算機及び階層ストレージ装置に接続されるシステム管理装置、を具備する計算機システムであって、
前記階層ストレージ装置は、第一のストレージ媒体と、前記第一のストレージ媒体よりも転送速度の遅い第二のストレージ媒体から構成され、
前記システム管理装置は、前記複数の計算機の計算ジョブ実行スケジュールを作成あるいは前記計算機システム内の他の装置から取得し、予め定められた方法によって前記計算ジョブ実行スケジュールに応じて階層ストレージ装置間のデータ移動を計画し、その計画に基づいて前記階層ストレージ装置に対してデータ移動の指令を出す
ことを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記システム管理装置は、前記第二のストレージ媒体内の予め定められた方法で選ばれたデータを前記第一のストレージ媒体へ転送させることで、その後に前記計算機によって読み込まれるファイルを、その読み込み前に、第一のストレージ媒体へ保存する
ことを特徴とする計算機システム。
【請求項３】
請求項１に記載の計算機システムであって、
前記システム管理装置は、現在以降の所定時間内における前記計算機からの出力データ量を算出し、その出力データ量に合わせて前記第一のストレージ媒体の空き容量を確保するように、予め前記第一のストレージ媒体から前記第二のストレージ媒体へデータを転送させる
ことを特徴とする計算機システム。
【請求項４】
請求項２に記載の計算機システムであって、
前記システム管理装置は、前記第二のストレージ媒体内の予め定められた方法で選ばれたデータを前記第一のストレージ媒体へ転送するために、転送するデータの候補を集め、その候補の中からデータ量あるいは転送速度に関連する優先順位を用いてデータを選び出す
ことを特徴とする計算機システム。
【請求項５】
請求項１に記載の計算機システムであって、
前記システム管理装置は、前記第一のストレージ媒体内の予め定められた方法で選ばれたデータを第二のストレージ媒体へ転送させることで、前記第一のストレージ媒体の空き容量を確保する
ことを特徴とする計算機システム。
【請求項６】
請求項５に記載の計算機システムであって、
前記システム管理装置は、前記第一のストレージ媒体内の予め定められた方法で選ばれたデータを第二のストレージ媒体へ転送するために、転送するデータの候補を集め、その候補の中からデータ量あるいは転送速度に関連する優先順位を用いてデータを選び出す
ことを特徴とする計算機システム。
【請求項７】
請求項１に記載の計算機システムであって、
前記システム管理装置は、前記計算機と前記第一のストレージ媒体との間の転送速度、および、前記第一のストレージ媒体と前記第二のストレージ媒体との間の転送速度を予め把握し、それらの転送速度に基づいて前記データ移動を計画する
ことを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記システム管理装置は、前記階層ストレージ装置に保存されているデータについて、保存先が前記第一のストレージ媒体と前記第二のストレージ媒体のいずれであるかを把握している
ことを特徴とする計算機システム。
【請求項９】
請求項１に記載の計算機システムであって、
前記システム管理装置は、前記計算ジョブ実行スケジュールに基づいて、前記計算機から前記階層ストレージ装置へのデータの読み込みスケジュール及び書き込みスケジュールを予測して決定する
ことを特徴とする計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
前記システム管理装置は、前記計算機から前記階層ストレージ装置へのデータの書き込みスケジュールを基に、前記第一のストレージ媒体の現在以降の各時間での使用量を予測する
ことを特徴とする計算機システム。
【請求項１１】
請求項９に記載の計算機システムであって、
前記システム管理装置は、所定時間内に前記読み込みスケジュールに入っていないデータを前記第一のストレージ媒体から前記第二のストレージ媒体へ転送させる
ことを特徴とする計算機システム。
【請求項１２】
請求項９に記載の計算機システムであって、
前記システム管理装置は、所定時間内に前記読み込みスケジュールに入っているデータを前記第二のストレージ媒体から前記第一のストレージ媒体へ転送させる
ことを特徴とする計算機システム。
【請求項１３】
請求項１に記載の計算機システムであって、
前記システム管理装置は、前記計算機が前記階層ストレージ装置へアクセスしている間は、そのアクセス帯域を減少させないために前記階層ストレージ装置間のデータ転送が行われないように、その転送処理を中断するかあるいは予め計画しない
ことを特徴とする計算機システム。
【請求項１４】
請求項１０に記載の計算機システムであって、
前記システム管理装置は、現在以降の所定時間内における前記計算機からの出力データ量を算出し、その出力データ量と前記予測した第一のストレージ媒体の現在以降の使用量に基づいて、前記第一のストレージ媒体の空き容量を確保するように、予め前記第一のストレージ媒体から前記第二のストレージ媒体へデータを転送させる
ことを特徴とする計算機システム。
【請求項１５】
複数の計算機と、前記複数の計算機に接続される階層ストレージ装置と、前記複数の計算機及び階層ストレージ装置に接続されるシステム管理装置、を具備する計算機システムの制御方法であって、
前記階層ストレージ装置は、第一のストレージ媒体と、前記第一のストレージ媒体よりも転送速度の遅い第二のストレージ媒体から構成され、
前記システム管理装置は、前記複数の計算機の計算ジョブ実行スケジュールを作成あるいは前記計算機システム内の他の装置から取得し、予め定められた方法によって前記計算ジョブ実行スケジュールに応じて階層ストレージ装置間のデータ移動を計画し、その計画に基づいて前記階層ストレージ装置に対してデータ移動の指令を出す
ことを特徴とする計算機システムの制御方法。
【請求項１６】
請求項１５に記載の計算機システムの制御方法であって、
前記システム管理装置は、前記第二のストレージ媒体内の予め定められた方法で選ばれたデータを前記第一のストレージ媒体へ転送させることで、現在以降に前記計算機によって読み込まれるファイルを、その読み込み前に、前記第二のストレージ媒体よりも転送速度の速い第一のストレージ媒体へ保存する
ことを特徴とする計算機システムの制御方法。
【請求項１７】
請求項１５に記載の計算機システムの制御方法であって、
前記システム管理装置は、現在以降の所定時間内における前記計算機からの出力データ量を算出し、その出力データ量に合わせて前記第一のストレージ媒体の空き容量を確保するように、予め前記第一のストレージ媒体から前記第二のストレージ媒体へデータを転送させる
ことを特徴とする計算機システムの制御方法。
【請求項１８】
請求項１５に記載の計算機システムの制御方法であって、
前記システム管理装置は、前記第一のストレージ媒体内の予め定められた方法で選ばれたデータを第二のストレージ媒体へ転送させることで、前記第一のストレージ媒体の空き容量を確保する
ことを特徴とする計算機システムの制御方法。
【請求項１９】
請求項１５に記載の計算機システムの制御方法であって、
前記システム管理装置は、前記計算機が前記階層ストレージ装置へアクセスしている間は、そのアクセス帯域を減少させないために前記階層ストレージ装置間のデータ転送が行われないように、その転送処理を中断するかあるいは予め計画しない
ことを特徴とする計算機システムの制御方法。
【請求項２０】
複数の計算機と、前記複数の計算機に接続され第一のストレージ媒体と前記第一のストレージ媒体よりも転送速度の遅い第二のストレージ媒体から構成される階層ストレージ装置と、前記複数の計算機及び階層ストレージ装置に接続されるシステム管理装置、を具備する計算機システムにおけるシステム管理装置であって、
前記複数の計算機の計算ジョブ実行スケジュールを作成あるいは前記計算機システム内の他の装置から取得し、予め定められた方法によって前記計算ジョブ実行スケジュールに応じて階層ストレージ装置間のデータ移動を計画し、その計画に基づいて前記階層ストレージ装置に対してデータ移動の指令を出す
ことを特徴とするシステム管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、その制御方法およびシステム管理装置に関する。
【背景技術】
【０００２】
近年、例えば、天気予報や津波の伝播などを計算するハイパフォーマンスコンピューティングの分野で用いられる高速計算機は毎年高速化しており、計算に用いられるデータ量は計算速度ともに増加傾向にある。上記のハイパフォーマンスコンピューティングの分野では、計算機の計算速度の上昇とともに、より詳細なデータが用いられるようになり、データ量は増加している。そして、計算に用いられるデータ、計算結果のデータは全てストレージ（大容量の記憶装置）に保存されるため、今後、ストレージには非常に大きな容量が要求される。
【０００３】
一般的に、高速計算機による計算は、スケジュールに基づくバッチなどにより実行される。計算の実行では以下の３つの処理を行う。１番目の処理では、ストレージに保存されているデータを計算機主記憶（高速計算機のメモリなど）に転送する。以下、これを計算機へのステージングと呼ぶ。２番目の処理では、そのデータを入力として計算を実行して計算機主記憶に出力データを保存する。３番目の処理では、計算機主記憶に有る出力データをストレージへ転送し保存する。以下、これを計算機からのデステージングと呼ぶ。
【０００４】
また、ストレージの単位容量当たりの価格（以下、ビットコストと呼ぶ。）の毎年の低下率よりも、計算機の計算速度の毎年の伸び率の方が高いと言われている。そのため、現在の計算機で扱うデータを全て高速なストレージへ保存する計算機環境の構成のままでは、ストレージに多くの費用が掛かることになる。これに対して、高速だがビットコストが高いストレージ（以下、オンラインストレージと呼ぶ。）と、高速ではないがビットコストが安いストレージ（以下、ニアラインストレージと呼ぶ。）を併せた階層構造が提案されている。その制御法として特許文献１，２が開示されている。
【０００５】
特許文献１の方法は、ホスト（計算機）がアクセスする頻度の高いデータを転送速度若しくは応答速度の速いストレージへマイグレーション（転送）することで、データへのアクセスを高速化する方法である。
特許文献２の方法は、ストレージ階層用に閾値を確立し、ストレージ階層の使用量が閾値と同じか、それを超えた場合に、他の階層にデータをマイグレーションすることで階層ストレージ・サブシステムの使用量を管理するための方法である。
【特許文献１】特開２００３−２１６４６０号公報
【特許文献２】特開２００６−１９５９６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１は、計算スケジュールとは関係なく、単にホストがアクセスする頻度を基に、アクセスする頻度の高いデータをオンラインストレージへマイグレーションすることで、データへのアクセスを高速化する手法である。したがって、高速計算機環境へ適用したとき、次の問題がある。すなわち、計算スケジュールを考慮していないため、計算機が計算終了後に出力データをオンラインストレージへ保存するときに、オンラインストレージに十分な空き容量が無い可能性があり、出力データをニアラインストレージへデステージングすることになる。この場合は、出力データの計算機からのデステージングの性能が低下してしまう問題がある。同様に、オンラインストレージの空き容量不足により、計算に必要な入力データをニアラインストレージからオンラインストレージへマイグレーションすることができず、入力データをニアラインストレージから計算機へステージングする可能性がある。この場合、入力データの計算機へのステージングの性能が低下してしまう問題がある。
【０００７】
また、特許文献２は、オンラインストレージの使用容量が一定以上になったとき、ニアラインストレージへデータマイグレーションを行うことで、オンラインストレージに空きを作る手法である。したがって、高速計算機環境へ適用したとき、次の問題がある。すなわち、計算機の計算スケジュールを考慮しておらず、計算スケジュールに適したオンラインストレージの空き容量を十分に確保することができない。その結果、前述の通りオンラインストレージを有効に使うことができず、ステージング・デステージングの性能が低下してしまう問題がある。
【０００８】
本発明は、前記問題に鑑みてなされたものであって、階層化されたストレージを使用し、性能低下を抑えた大容量でコストパフォーマンスに優れた計算機システム、その制御方法およびそのシステム管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は、複数の計算機と、複数の計算機に接続される階層ストレージ装置と、複数の計算機及び階層ストレージ装置に接続されるシステム管理装置、を具備する計算機システムである。
階層ストレージ装置は、第一のストレージ媒体と、第一のストレージ媒体よりも転送速度の遅い第二のストレージ媒体から構成される。
そして、システム管理装置は、複数の計算機の計算ジョブ実行スケジュールを作成あるいは計算機システム内の他の装置から取得し、予め定められた方法によって計算ジョブ実行スケジュールに応じて階層ストレージ装置間のデータ移動を計画し、その計画に基づいて階層ストレージ装置に対してデータ移動の指令を出す。
【発明の効果】
【００１０】
本発明によれば、階層化されたストレージを使用し、性能低下を抑えた大容量でコストパフォーマンスに優れた計算機システム、その制御方法及びそのシステム管理装置を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための最良の形態（以下、実施形態という。）を図面に基づいて説明する。なお、適宜他図も参照するものとする。図１は、本発明の実施形態の計算機システムの構成例を示す図である。計算機システム１０００は、複数の計算機１００、NASヘッド１２０、オンラインストレージ１４０（階層ストレージ装置：第一のストレージ媒体）、ニアラインストレージ１６０（階層ストレージ装置：第二のストレージ媒体）、計算機管理サーバ１７０、ストレージ管理サーバ１８０から構成される。計算機管理サーバ１７０とストレージ管理サーバ１８０はシステム管理装置である。
【００１２】
計算機１００は、管理用インターフェース（Ｉ／Ｆ）１０１、CPU（Central Processing Unit）１０２、メモリ１０３、データ通信用インターフェース（Ｉ／Ｆ）１０４により構成されている。データ通信用のパスとしてインターフェース１０４がLAN-SW（Local Area Network Switch）１１０に接続されている。このデータ通信用パスを通して、計算に必要な入力データと計算結果である計算出力が転送される。管理用パスとしてインターフェース１０１がLAN-SW１９０に接続している。この管理用パスを通して計算機１００は、計算機管理サーバ１７０から計算処理の手続きを受信し、計算機管理サーバ１７０へ計算状況を送信する。以下、この計算処理の手続きをジョブと呼ぶ。ジョブの内容である手続きは、図３に示すJOBスクリプト３００のようなスクリプト（実行指示用の簡易プログラム）により記述される。
【００１３】
NASヘッドとは、ディスクを持たないNAS（Network Attached Storage）のことを意味する。ディスクを持たないのでその代わりにストレージに接続して、データを読み書きする。
NASヘッド１２０は物理的なオンラインストレージ１４０を論理ボリューム0(以下、LU0という。)として、物理的なニアラインストレージ１６０を論理ボリューム1(以下、LU1という。)として割り当て、LU0、LU1上にファイルシステム１２１を構成し、計算機１００からのファイルアクセスを処理する。
【００１４】
NASヘッド１２０はファイルに関する情報であるファイル情報１２２を持つ。これはストレージ管理サーバ１８０によって用いられる。
NASヘッド１２０は、LAN-SW１１０に接続する計算機側インターフェース（Ｉ／Ｆ）１２４、FC-SW（Fibre Channel Switch）１３０に接続するストレージシステム側インターフェース（Ｉ／Ｆ）１２５とLAN-SW１９０に接続する管理側インターフェース（Ｉ／Ｆ）１２３を持つ。
【００１５】
オンラインストレージ１４０はCHA（Channel Adaptor）１４１、SW（Switch）１４２、複数のディスク１４３、ニアラインストレージ側CHA１４４、管理インターフェース（Ｉ／Ｆ）１４５、キャッシュ１４６、DKA(DisKAdaptor)１４７を持つ。
管理インターフェース１４５はLAN-SW１９０に接続されている。CHA１４１は、ストレージと外部ネットワークとの間のインターフェースの役割を持つ。SW１４２はCHA１４１と、ニアラインストレージ側CHA１４４と、キャッシュ１４６と、DKA１４７とを接続するスイッチである。DKA１４７は、オンラインストレージ１４０がCHA１４１を通じて受領したIO要求に基づきディスク１４３を制御する。キャッシュ１４６には、IO要求により読み出される又は書き込まれるデータが一時的に保存される。CHA１４１はFC-SW１３０に接続されている。ニアラインストレージ側CHA１４４はFC-SW１５０に接続されている。
【００１６】
ニアラインストレージ１６０は、複数のコントローラ１６１、複数のディスク１６３、管理インターフェース（Ｉ／Ｆ）１６４、キャッシュ（不図示）を持つ。管理インターフェース１６４はLAN-SW１９０に接続されている。
コントローラ１６１は、CHA１４４とDKA１４７と同様の機能を持ち、ディスク１６３を制御するが、より安価にコンパクトに実行するため、性能規模はCHA１４４やDKA１４７よりも劣る。なお、コントローラ１６１はFC-SW１５０に接続されている。
【００１７】
計算機とストレージシステムは、上から計算機１００、オンラインストレージ１４０、ニアラインストレージ１６０という階層構造の形をとる。また、下の階層から上の階層へデータをマイグレーション（転送）することをステージング、上の階層から下の階層へデータをマイグレーションすることをデステージングという。さらに、以下では、オンラインストレージ１４０とニアラインストレージ１６０を、総称して、あるいはその片方を、ストレージシステム（ストレージ）ともいう。
【００１８】
計算機管理サーバ１７０は、管理用インターフェース（Ｉ／Ｆ）１７１、CPU１７２、メモリ１７３を持つ。管理用インターフェース１７１はLAN-SW１９０に接続されている。
メモリ１７３には、計算機稼動スケジューラ１７４、計算機稼動情報１７５、計算機実行ジョブ情報１７６、計算機管理プログラム１７７が記憶される。計算機実行ジョブ情報１７６はJOBスクリプト３００（図３参照）によって指定されるジョブを格納する。
【００１９】
計算機管理サーバ１７０は計算機稼動スケジューラ１７４の指示に基づく処理を行っている。ユーザは図示しないコンピュータ装置によってジョブの内容をJOBスクリプト３００（図３参照）に記述し、計算機管理サーバ１７０に送信することでジョブ実行要求を行う。計算機管理サーバ１７０はジョブ実行要求に対して、計算機稼動スケジューラ１７４に基づき処理を行う。すなわち、計算機管理サーバ１７０は、受信したJOBスクリプト３００（図３参照）を計算機実行ジョブ情報１７６に保存し、この計算機実行ジョブ情報１７６を基にジョブの実行スケジュールを作成する。実行スケジュールであるジョブごとのジョブ開始時間（開始時刻）、ジョブ終了時間（終了時刻）、計算ノードを、計算機稼動情報１７５として保存する。計算機部は計算機１００の１台以上の集合で構成されており、計算機１００の１台を計算ノードという。ここでは、計算ノードに０，１，２・・・といったように連番の数字を名前（識別子）としてつけている。
【００２０】
JOBスクリプト３００（図３参照）は計算機管理サーバ１７０内の、計算機実行ジョブ情報１７６に保存される。JOBスクリプト３００について、図３を用いて説明する。図３は、JOBスクリプトのデータ構成例である。JOBスクリプト３００は、ジョブ名（ＪＯＢ  ＮＡＭＥ）３０１、メモリサイズ（ＭＥＭ  ＳＩＺＥ）３０２、ＣＰＵ数（ＮＵＭ  ＣＰＵ）３０３、ＣＰＵ時間（ＣＰＵ  ＴＩＭＥ）３０４、入力ファイル名（ＩＮＰＵＴ  ＦＩＬＥ）３０５、出力ファイル名（ＯＵＴＰＵＴ  ＦＩＬＥ）３０６、実行ファイル名（ＥＸＥＣＵＴＥＤ  ＰＲＯＧＲＡＭ）３０７を情報に含むスクリプトである。
【００２１】
ジョブ名３０１は識別のための名前であり、ユーザが名前をつける。メモリサイズ３０２はジョブの実行に必要なメモリのサイズであり、計算機稼動スケジューラ１７４は計算機１００のメモリ１０３からメモリサイズ３０２分のメモリをそのジョブに割り振る。
ＣＰＵ数３０３はジョブの実行に必要なＣＰＵの数であり、計算機稼動スケジューラ１７４は計算機１００のＣＰＵ１０２からＣＰＵ数３０３分のＣＰＵをジョブに割り振る。
ＣＰＵ時間３０４は、計算機１００でのジョブ実行に掛かる時間であり、ジョブの実行時間がＣＰＵ時間３０４に達した場合、計算機稼動スケジューラ１７４はジョブを終了する。
【００２２】
入力ファイル名３０５はジョブの入力データであり、ジョブが実行されると計算機１００は入力ファイル名３０５で示されるファイルを入力ファイルとして読み込む（詳細は後記）。
出力ファイル名３０６はジョブの出力データであり、ジョブの計算終了後、計算機１００は出力ファイル名３０６で示されるファイルを出力ファイルとして書き込む（詳細は後記）。
【００２３】
ジョブの実行スケジュールである計算機稼動情報１７５のジョブ開始時間に従いジョブが開始され、ジョブ終了時間に従いジョブが終了される。ジョブ実行は、計算機管理サーバ１７０が計算機管理プログラム１７７の処理に基づき行われる。すなわち、計算機管理サーバ１７０は計算機実行ジョブ情報１７６に保存されたJOBスクリプト３００の内容に従い、計算機１００に対して計算処理を命令する。計算機１００はこの命令に基づき、主に３つの処理を行う。すなわち、ストレージシステムから計算機１００へJOBスクリプト３００に記述された入力ファイル名３０５、実行ファイル３０７、出力ファイル名３０６に基づき、ストレージシステムから計算機１００のメモリ１０３への入力ファイルのステージング、実行ファイルの実行、計算機１００のメモリ１０３からストレージシステムへの出力ファイルのデステージングの処理を行う。
【００２４】
計算機１００とストレージシステムの間のステージング・デステージングには以下の２通りの方法がある。１つ目は計算機１００とオンラインストレージ１４０間のステージングとデステージングであり、２つ目は計算機１００とニアラインストレージ１６０間のステージングとデステージングである。この２つの方法を、ステージングとデステージングに掛かる時間の観点で比較する。
【００２５】
図７（ａ）は、上記に示した計算機１００の一連の計算処理について、オンラインストレージ１４０と計算機１００の間でステージング・デステージングした場合のデータマイグレーションの様子を示している。
符号７０７、符号７０８はジョブ開始の時刻を示している。符号７０１、符号７０３は計算機１００からオンラインストレージ１４０への出力ファイルのデステージングを示している。符号７０１と符号７０３のデステージングは、計算機１００とオンラインストレージ１４０間のFC-SW１３０を通じて、３．４GB/ｓのスループットで行われる。符号７０２、符号７０４はオンラインストレージ１４０から計算機１００への入力ファイルのステージングを示しており、スループットは３．４GB/ｓである。符号７０５、符号７０６は、計算に必要な入力ファイルを、予めオンラインストレージ１４０へステージングすることを示している。スループットは１．７GB/ｓである。符号７０７のジョブ開始とともに、計算２に用いられる入力ファイルFileAが符号７０２でステージングされる。
【００２６】
このステージングに先立って符号７０５によりFileAをニアラインストレージ１６０からオンラインストレージ１４０へステージングしている。そのため、符号７０７のジョブ開始時刻からFileAがオンラインストレージ１４０から計算機１００へステージングされる。
そして、図７（ｂ）は、上記に示した計算機１００の一連の計算処理について、ニアラインストレージ１６０と計算機１００の間でオンラインストレージ１４０を経由してステージング・デステージングした場合のデータマイグレーションの様子を示している。
【００２７】
符号７１７、符号７１８はジョブ開始の時刻を示している。符号７１２はニアラインストレージ１６０から計算機１００への入力ファイルのステージングを示している。このステージングは、ニアラインストレージ１６０からオンラインストレージ１４０へのスループットに合わせて、１．７GB/ｓのスループットで行われる。符号７１３は計算機１００からニアラインストレージ１６０へ出力ファイルのデステージングを示しており、スループットは同様に１．７GB/ｓである。符号７１１と符号７１４は、符号７０１と符号７０４と同様である。
【００２８】
図７の（ａ）と（ｂ）を比較する。両方ともに符号７０７，符号７１７で同時にFileAのステージングが実行されているが、図７（ａ）ではFileAはスループット３・４GB/ｓの高速なオンラインストレージ１４０から、図７（ｂ）ではスループット１．７GB/ｓの低速なニアラインストレージ１６０からステージングされている。デステージングに関しても同様である。つまり、その結果、図７（ｂ）よりも図７（ａ）のほうがステージングとデステージングの時間が短くなる。
【００２９】
結果として、図７（ｂ）の手法よりも、予め必要なファイルをオンラインストレージ１４０へマイグレーションする図７（ａ）の手法のほうが、ステージングとデステージングの時間が短い分、計算機１００がより多くの時間を計算に費やすことができるというメリットがある。この図７（ａ）の手法に基づいて、ストレージ管理サーバ１８０が必要なファイルを予めニアラインストレージ１６０からオンラインストレージ１４０にマイグレーションしておけば、計算機１００は常時オンラインストレージ１４０との間でステージングとデステージングを行うことになる。理想的には、計算機１００は、オンラインストレージ１４０との間の高速なスループットで、オンラインストレージ１４０とニアラインストレージ１６０を合わせたストレージシステム全体の容量を利用できる。
【００３０】
ところが、オンラインストレージ１４０の空き容量が少ない場合、上記のような動作ができなくなってしまう。そのため、次の２つの問題が生じる。
１つ目は、オンラインストレージ１４０の空き容量が少ないために、計算に必要な入力ファイルを必要なときに高速なオンラインストレージ１４０にマイグレーションすることができない可能性が有る。結果として、入力ファイルをニアラインストレージ１６０から計算機１００にステージングすることになり、ステージングの性能が低下してしまう。
２つ目は、オンラインストレージ１４０の空き容量が少ないために、計算機１００からの出力ファイルをオンラインストレージ１４０の空き領域へデステージングすることができない可能性がある。結果として、出力ファイルをニアラインストレージ１６０へデステージングすることになり、デステージングの性能が低下してしまう。
【００３１】
そこで、上記問題を回避するために、オンラインストレージ１４０の空き容量を制御する必要性が出てくる。
しかし、単純にオンラインストレージ１４０の空き容量だけを見て、空き容量が少なくなってきたときに、ニアラインストレージ１６０へマイグレーションすることで空き容量を増やすという手法では解決できない。
【００３２】
図６は、オンラインストレージ１４０に空き容量があっても、計算機１００からのアウトプットにより、時間経過とともにその容量が不足してしまう一例である。
図６について説明する。図６（ａ）のグラフ６０６は現在のオンラインストレージ１４０の使用量に、今後計算機からのアウトプットによりオンラインストレージ１４０に保存されるデータを積んだ、累積増分（増分のみの合計）を示している。線分６０８はオンラインストレージ１４０の最大容量を示している。現在時刻から時刻t1まで計算機１００はジョブの計算を実行している。
【００３３】
時刻t1において計算機１００−１（複数の計算機１００の１番目）から出力データのデステージング６０１が開始され、時刻t2に終了する。その後、オンラインストレージ１４０の空き容量が不足してきたため、時刻t2においてオンラインストレージ１４０のデータをニアラインストレージ１６０へマイグレーションするデステージング６０３を開始し、空き領域を作っている（図６（ｂ）参照）。その後、計算機１００−２（複数の計算機１００の２番目）は時刻t3までジョブを実行している。時刻t3には、再び計算機１００−２から出力データのデステージング６０２が開始され、時刻t4に終了する。しかし、デステージング６０２の途中でオンラインストレージ１４０の空き領域が無くなってしまう。図６（ｃ）のグラフ６０７はオンラインストレージ１４０の使用量のグラフを示している。線分６０９は線分６０８と同様、オンラインストレージ１４０の最大容量を示している。デステージング６０２の途中で、グラフ６０７は線分６０９の最大容量へ達しており、デステージング６０２の途中でオンラインストレージ１４０の空き領域が無くなったことが分かる。
【００３４】
この手法では、デステージング６０３を実施するにも関わらず、デステージング開始が遅れるため、結果としてオンラインストレージ１４０の使用量を最大容量以内に抑えることができない。
オンラインストレージ１４０の容量不足は、計算機１００からのアウトプットのデータ量が不明であることと、計算機１００からのアウトプットのスループットがニアラインストレージ１６０へのマイグレーションのスループットよりも大きいことに由来する。すなわち、計算機１００からのアウトプットのデータ量によっては、ニアラインストレージ１６０へマイグレーションして空き容量を確保しようとデステージングを行っても、計算機１００からのアウトプットの方が高速のため、オンラインストレージ１４０の容量が一杯になってしまう可能性がある。
【００３５】
この原因は、オンラインストレージ１４０の空き容量を見るだけでは、今後計算機１００からの計算結果のアウトプットが考慮されておらず、アウトプットされたときに、オンラインストレージ１４０の容量が足りているかどうか分からないことにある。
この問題を回避するために、本手法では、オンラインストレージ１４０の使用を予測し、空き容量を制御する仕組みを採用する。それは、オンラインストレージ使用予測情報２０９（図２参照）に従い、デステージング候補リスト２１１のファイルを前もってデステージングする仕組みである。
このデステージングによって、空き容量を前もって適切に増やすことができる。このデステージングする仕組みについては、後で詳しく説明する。
【００３６】
本手法では、空き容量の代わりに、現在の空き容量と今後の計算機１００からのアウトプットのデータ量を考慮した指標を導入する。これを、使用可能容量と呼ぶことにする。なお、この使用可能容量はオンラインストレージ使用予測情報２０９（図２参照）に格納される。使用可能容量については、後で詳しく説明する。
この使用可能容量を用いて、次のようにオンラインストレージ１４０の空き容量を制御する。すなわち使用可能容量があるときは、計算の入力データをニアラインストレージ１６０からオンラインストレージ１４０へステージングする。
使用可能容量が無いときは、オンラインストレージ１４０からニアラインストレージ１６０へデステージングする。
【００３７】
図５は、本手法の動作を示した例である。
図５（ａ）のグラフ５１５は現在のオンラインストレージ１４０の使用量に、今後計算機１００からのアウトプットによりオンラインストレージ１４０に保存されるデータを積んだ、累積増分を示している。線分５２０はオンラインストレージ１４０の最大容量を示している。現在時刻から時刻t1まで計算機１００−１はジョブの計算を実行している。図５（ｂ）に示すように、時刻t1において計算機１００−１から出力データのデステージング５０９が開始され、時刻t2に終了している。その後、計算機１００−２は時刻t3までジョブの計算を実行している。時刻t3において、計算機１００−２から出力データのデステージング５１０が開始され、時刻t4に終了している。
【００３８】
この出力データのデステージングにより、オンラインストレージ１４０の最大容量を超えてしまうことになる。超えてしまった分は超過使用量５１６である。
符号５０７はt1からt2までの経過時間d1と、t3からt4までの経過時間d2を合計した時間、すなわち時刻t4までに、計算機１００からのデステージングに要する時間の合計である。この時間は、後述の式５に用いられる。
【００３９】
線分５０１はニアラインストレージ１６０・オンラインストレージ１４０間のスループットの傾きを持つ線分である。線分５０１は、時刻t4におけるグラフ５１５上の点から左に符号５０７の時間分移動した点を通る。
線分５０２は原点（線分５２０上の現在時刻における点）を通り、ニアラインストレージ１６０・オンラインストレージ１４０間のスループットの負の傾きを持つ線分である。線分５０１と５０２の交点とオンラインストレージの最大容量を示す線分５２０の差は使用可能容量５０５を示している。この使用可能容量５０５に対して、「使用可能容量５０５＞０（式１）」かどうか判定する。
式１が満たされる場合は、オンラインストレージ１４０に余裕があり、ステージング処理を行うことができる。
【００４０】
式１が満たされない場合は、オンラインストレージ１４０に余裕がないため、オンラインストレージ１４０からニアラインストレージ１６０へのデステージング処理が行い、オンラインストレージ１４０に空き領域を作る。
線分５０１と最大容量を示す線分５２０との交点の時刻は、使用可能容量５０５が０である時刻t0である。時刻t0において、オンラインストレージ１４０からニアラインストレージ１６０へのデステージング５１１を開始している。現在の空き容量は符号５０３に示されている。
【００４１】
図５（ｃ）に示すように、線分５１７は線分５２０と同様、オンラインストレージ１４０の最大容量を示している。時刻t1から時刻t2の間は計算機１００−１から出力データのデステージング５０９が実行されているため、オンラインストレージ１４０からニアラインストレージ１６０へのデステージングは実行されない。なぜなら、計算機１００−１とストレージシステム間のステージング及びデステージングのスループットを低下させないために、ストレージ管理サーバ１８０は計算機１００がアクセスしているストレージ媒体を使ったマイグレーション処理を行わないようにしているからである。時刻t2になると、計算機１００−１から出力データのデステージング５０９が終了し、かつ使用可能容量５０５が０のためオンラインストレージ１４０からニアラインストレージ１６０へのデステージング５１２を開始する。
【００４２】
図５（ｃ）のグラフ５１８は、オンラインストレージ１４０の使用量のグラフを示している。グラフ５１８を見ると、上記処理の結果、計算機１００からのアウトプットが来ても、オンラインストレージ１４０の使用量を最大容量以内に抑えられていることが分かる。
そこで、図５で示した本手法の動作を実現するために、ストレージ管理サーバ１８０を導入する。
【００４３】
図１のストレージ管理サーバ１８０は、管理用インターフェース（Ｉ／Ｆ）１８１、CPU１８２、メモリ１８３を持つ。管理用インターフェース１８１はLAN-SW１９０に接続されている。
図２はストレージ管理サーバ１８０のメモリ１８３に格納されたプログラム情報の詳細を示したブロック図である。
【００４４】
メモリ１８３には、計算機情報取得プログラム２０１、計算機実行ジョブスケジュール２０２（計算ジョブ実行スケジュール）、ファイル位置情報取得プログラム２０３、ストレージ情報２０４、ファイル位置情報２０５、ストレージ管理プログラム２０６、マイグレーション制御プログラム２０７、オンラインストレージ使用情報２０８、オンラインストレージ使用予測情報２０９、ステージング候補リスト２１０、デステージング候補リスト２１１、デステージングスケジュール２１２（書き込みスケジュール）、及び、ステージングスケジュール２１３（読み込みスケジュール）を格納している。
【００４５】
ストレージ管理サーバ１８０は計算機情報取得プログラム２０１に基づき、計算機管理サーバ１７０の計算機稼動情報１７５と計算機実行ジョブ情報１７６を取得し、計算機実行ジョブスケジュール２０２を作成する。図８において、計算機実行ジョブスケジュール２０２がブロック図で示されている。図８に示すように、計算機実行ジョブスケジュール２０２は、順番３１１、ジョブ名３１２、ジョブ開始時間３１３、ジョブ終了時間３１４、計算ノード３１５、入力ファイル名３１６、出力ファイル名３１７から成る。計算機実行ジョブスケジュール２０２は、計算機実行ジョブ情報１７６のジョブごとのジョブ開始時間、ジョブ終了時間、計算ノードに、それぞれのジョブのJOBスクリプト３００（図３参照）に書かれた入出力ファイルの情報を付加したものであり、ステージング候補リスト２１０、デステージング候補リスト２１１、デステージングスケジュール２１２、及び、ステージングスケジュール２１３の作成に利用される。
【００４６】
また、ストレージ管理サーバ１８０はファイル位置情報取得プログラム２０３に基づき、ストレージ情報２０４とファイル情報１２２を取得し、ファイル位置情報２０５を作成する。
ストレージ情報２０４は、NASヘッド１２０がファイルシステム１２１で管理しているLUと物理的なストレージシステムを対応付ける情報であり、図１３のブロック図のようにLU Number３６１と対応するストレージ名３６２から成る。
【００４７】
ファイル情報１２２は、図１２のブロック図のようにファイル名３５１、LU Number３５２、ファイルサイズ３５３から成る表の形をとる。
LU Number３５２、ファイルサイズ３５３は、それぞれファイル名３５１に示されたファイルが保存されている論理ユニット(LU)、ファイルサイズを示す。
【００４８】
ファイル位置情報２０５は、図９のブロック図のように、ファイル名３２１、保存場所３２２、ファイルサイズ３２３から成る表の形をとる。保存場所３２２は、ファイル名３２１に示されるファイルが、オンラインストレージ１４０に保存されているか、ニアラインストレージ１６０に保存されているのかを示す。ファイルサイズ３２３は、ファイル名３２１に示されるファイルのファイルサイズを示す。ファイル位置情報２０５は、ステージング候補リスト２１０、デステージング候補リスト２１１、デステージングスケジュール２１２、ステージングスケジュール２１３の作成に利用される。
【００４９】
ストレージ管理サーバ１８０は、マイグレーション制御プログラム２０７の処理に基づき、上記計算機実行ジョブスケジュール２０２とファイル位置情報２０５を基に、ステージングスケジュール２１３、デステージングスケジュール２１２を作成する。
ステージングスケジュール２１３は、今後の計算予定を記憶した計算機実行ジョブスケジュール２０２から、ジョブで利用される入力ファイルが計算機１００により読み込まれるスケジュールを記したものである。
ステージングスケジュール２１３は、図１０のブロック図のように順番３３１、入力ファイル名３３２、ファイルサイズ３３３、場所３３４、スループット３３５、読み取り開始時間（時刻）３３６、読み取り終了時間（時刻）３３７から成る表の形をとる。
【００５０】
ファイルサイズ３３３は、入力ファイル名３３２の示すファイルのファイルサイズを示す。場所３３４は、入力ファイル名３３２に示されるファイルが、オンラインストレージ１４０に保存されているか、ニアラインストレージ１６０に保存されているのかを示す。スループット３３５は、場所３３４に示されたストレージのスループットを示す。読み取り開始時間３３６、読み取り終了時間３３７は、それぞれ、計算機１００が入力ファイル名３３２の示すファイルの読み込みを開始する時間と、終了する時間である。
【００５１】
デステージングスケジュール２１２は、今後の計算予定を記憶した計算機実行ジョブスケジュールから、ジョブが実行された計算結果である出力ファイルが計算機１００により書き込まれるスケジュールを記したものである。
デステージングスケジュール２１２は、図１１のブロック図のように順番３４１、出力ファイル名３４２、ファイルサイズ３４３、場所３４４、スループット３４５、書き込み開始時間３４６、書き込み終了時間３４７から成る表の形をとる。
ファイルサイズ３４３は、出力ファイル名３４２の示すファイルのファイルサイズを示す。場所３４４は、出力ファイル名３４２に示されるファイルが、オンラインストレージ１４０に保存されているか、ニアラインストレージ１６０に保存されているのかを示す。スループット３４５は、場所３４４に示されたストレージシステムのスループットを示す。書き込み開始時間３４６、書き込み終了時間３４７は、それぞれ、計算機１００が出力ファイル名３４２の示すファイルの書き込みを開始する時間と、終了する時間である。
【００５２】
また、ストレージ管理サーバ１８０は、マイグレーション制御プログラム２０７の処理に基づき、上記計算機実行ジョブスケジュール２０２、オンラインストレージ使用情報２０８とファイル位置情報２０５、ステージングスケジュール２１３、デステージングスケジュール２１２を基に、オンラインストレージ使用予測情報２０９、ステージング候補リスト２１０、デステージング候補リスト２１１を作成する。
【００５３】
オンラインストレージ使用予測情報２０９には使用可能容量が保存されている。使用可能容量とは計算機１００が今後に出力するデータ量と、ニアラインストレージ１６０へのデステージングの量を考慮したオンラインストレージ１４０の空き容量を予測したものである。
【００５４】
ステージング候補リスト２１０は、図１４のブロック図のようにファイル名３７１、保存場所３７２、ファイルサイズ３７３、ジョブによりアクセスされる次の時刻である読み込み開始時間３７４から成る表の形をとる。
保存場所３７２は、ファイル名３７１に示されるファイルが、オンラインストレージ１４０に保存されているか、ニアラインストレージ１６０に保存されているのかを示す。ファイルサイズ３７３は、ファイル名３７１に示されるファイルのファイルサイズを示す。読み込み開始時間３７４は、計算機１００がファイル名３７１の示すファイルの読み込みを開始する時間である。この後説明するが、ステージング候補リスト２１０はステージング対象のファイルの決定に用いられる。
【００５５】
デステージング候補リスト２１１は、図１５のブロック図のようにファイル名３８１、保存場所３８２、ファイルサイズ３８３、ジョブによりアクセスされる次の時刻である読み込み開始時間３８４から成る表の形をとる。
保存場所３８２は、ファイル名３８１に示されるファイルが、オンラインストレージ１４０に保存されているか、ニアラインストレージ１６０に保存されているのかを示す。ファイルサイズ３８３は、ファイル名３８１に示されるファイルのファイルサイズを示す。読み込み開始時間３８４は、計算機１００がファイル名３８１の示すファイルの読み込みを開始する時間である。この後説明するが、デステージング候補リスト２１１はステージング対象のファイルの決定に用いられる。
【００５６】
ストレージ管理サーバ１８０は、マイグレーション制御プログラム２０７に基づき、オンラインストレージ使用予測情報２０９に従い、ステージング・デステージングの判断を行い、また、ステージング候補リスト２１０・デステージング候補リスト２１１からマイグレーション候補ファイルを１つ選択する。選択の方法は後述する。
ステージングが判断されたとき、ストレージ管理サーバ１８０は、ステージング候補リスト２１０から選択されたファイルを、ストレージ管理プログラム２０６に基づき、ニアラインストレージ１６０からオンラインストレージ１４０へステージングする。すなわち、ストレージ管理サーバ１８０はNASヘッド１２０に対して、選択されたファイルをLU１からLU０へ移動するように命令する。
【００５７】
デステージングが判断されたとき、ストレージ管理サーバ１８０は、デステージング候補リスト２１１から選択されたファイルを、ストレージ管理プログラム２０６に基づき、オンラインストレージ１４０からニアラインストレージ１６０へデステージングする。すなわち、ストレージ管理サーバ１８０はNASヘッド１２０に対して、選択されたファイルをLU０からLU１へ移動するように命令する。
【００５８】
ストレージ管理サーバ１８０は、マイグレーション制御プログラム２０７に基づき、計算に必要な入力ファイルを予めオンラインストレージ１４０へ保存しておくようにステージングの判断を行う。そして、ストレージ管理サーバ１８０は、ストレージ管理プログラム２０６に基づきステージング処理を行っている。
【００５９】
こうすることで、計算に必要な入力ファイルを必要なときに高速なオンラインストレージ１４０にマイグレーションすることができ、計算機１００への入力ファイルのステージングを短時間で行うことができる。そして、計算機１００からの出力ファイルをオンラインストレージ１４０の確保された空き領域へデステージングすることができ、出力ファイルのデステージングを短時間で行うことができる。
【００６０】
図４Ａは、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づく処理の流れを示したフローチャートである。この処理は、本手法の主なプログラムフロー（メインループ）である。なお、以下の図４A〜図４Hのフローチャートにおける各処理は、ストレージ管理サーバ１８０のCPU１８２がメモリ１８３の情報を参照することなどにより実行される。
【００６１】
図４Ａに示すように、ストレージ管理サーバ１８０は、まずオンラインストレージ１４０の余裕を確認し、この、オンラインストレージ１４０に余裕があるかどうか判定する（ステップＳ４０１）。
余裕があると判定されたときには（ステップＳ４０１でＹｅｓ）、ステージング処理を行う（ステップＳ４０３）。
余裕が無いと判定されたときには（ステップＳ４０１でＮｏ）、デステージング処理を行う（ステップＳ４０４）。
そして、一定時間待機（ウエイト）し（ステップＳ４０５）、ステップＳ４０１に戻る。
【００６２】
次に、図４Ｂのフローチャートを用いて、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づくステージング処理（図４ＡのステップＳ４０３に相当）の流れを説明する。
ステージング処理では、まずステージング候補のファイルリストであるステージング候補リスト２１０を作成する（ステップＳ４１１）。
作成されたステージング候補リスト２１０が空であるかどうか判定する（ステップＳ４１２）。
空であると判定された場合は（ステップＳ４１２でＹｅｓ）、デステージング処理を実行する（ステップＳ４１６）。
空でないと判定された場合は（ステップＳ４１２でＮｏ）、ステージング候補リスト２１０の最初のデータを選択する（ステップＳ４１３)。
【００６３】
選択されたデータをオンラインストレージ１４０へマイグレーションしたとき、オンラインストレージ１４０に余裕が有るかどうか、判定する（ステップＳ４１４)。
余裕が無いと判定された場合は（ステップＳ４１４でＮｏ）、デステージング処理を行う（ステップＳ４１６)。
余裕があると判定された場合は（ステップＳ４１４でＹｅｓ）、選択されたデータをニアラインストレージ１６０からオンラインストレージ１４０へ、ストレージ管理プログラム２０６に従い、ステージングする（ステップＳ４１５)。このステップ（ステップＳ４１５）のステージング中に、計算機１００へのステージングもしくは計算機１００からのデステージングが開始された場合、ステップ（ステップＳ４１５）のステージングを一時的に停止する。ステップＳ４１５のステージングを必要に応じて停止させることで、計算機１００はステージングもしくはデステージングをオンラインストレージ１４０の最大の性能で実行できる。
【００６４】
次に、図４Ｃのフローチャートを用いて、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づくデステージング処理（図４ＡのステップＳ４０４に相当）の流れを説明する。
デステージング処理では、まずデステージング候補のファイルリストであるデステージング候補リスト２１１を作成する（ステップＳ４２１）。
作成されたデステージング候補リスト２１１が空であるかどうか判定する（ステップＳ４２２)。
空であると判定された場合は（ステップＳ４２２でＹｅｓ）、終了する。
空でないと判定された場合は（ステップＳ４２２でＮｏ）、デステージング候補リスト２１１の最初のデータを選択する（ステップＳ４２３)。
【００６５】
選択されたファイル（データ）をオンラインストレージ１４０からニアラインストレージ１６０へ、ストレージ管理プログラム２０６に従い、デステージングする（ステップＳ４２４)。このステップＳ４２４のデステージング中に、計算機１００へのステージングもしくは計算機１００からのデステージングが開始された場合、ステップＳ４２４のデステージングを一時的に停止する。ステップＳ４２４のデステージングを必要に応じて停止させることで、計算機１００はステージングもしくはデステージングをオンラインストレージ１４０の最大の性能で実行できる。
【００６６】
次に、図４Ｅのフローチャートを用いて、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づきステージング候補リスト２１０を作成する処理の流れを説明する。
ステージング候補リスト２１０を作成する処理では、初めにステージング候補リスト２１０を空に初期化する（ステップＳ４４１)。
ファイル位置情報取得プログラム２０３のフローに従いファイル位置情報２０５を取得する（ステップＳ４４２)。
計算機情報取得プログラム２０１に従い計算機実行ジョブスケジュール２０２を取得する（ステップＳ４４３)。
【００６７】
計算機実行ジョブスケジュール２０２から、２４時間（所定時間）以内に実行されるジョブを選択する。この２４時間という時間はステージングの指標となる時間であり、ステージング指標時間と呼ぶ。そのジョブに対応する入力ファイルの場所を、ファイル位置情報２０５から調べる。入力ファイルの場所が、ニアラインストレージ１６０である場合、選択されたジョブをステージング候補リスト２１０に追加する。
追加するときは、計算機実行ジョブスケジュール２０２（図８参照）から選択したジョブに関する入力ファイル名３１６、ジョブ開始時間３１３と、ファイル位置情報２０５（図９参照）から入力ファイル名３１６と対応するファイル名に関する保存場所３２２とファイルサイズ３２３を、それぞれステージング候補リスト２１０（図１４参照）のファイル名３７１、読み込み開始時間３７４、保存場所３７２、ファイルサイズ３７３へ書き込む（ステップＳ４４４）
【００６８】
ジョブ開始時間が２４時間以内のジョブを収集する条件は、今後実行されるジョブの入力ファイルを予めオンラインストレージ１４０へマイグレーションするために、ステージング候補に入れることを示している。
ここで、ステージング指標時間を２４時間としているが、計算機１００の使い方に応じて変更することもできる。例えば、ジョブスケジューラによっては、２０時間以上先のスケジュールを作成するものの、その後スケジュールが変更される場合もある。この場合は、例えばジョブ開始時間が２０時間以内のジョブを収集するという条件に変更したほうが良い。
【００６９】
ステージング候補リスト２１０を読み込み開始時間３７４が早い順にソートする（ステップＳ４４５）。ここでは、読み込み開始時間３７４が早い順にソートしているが、これ以外にも、ファイルサイズ、ユーザから指定や設定に基づく何らかの優先順位（各データ量あるいは各転送速度に関連する優先順位など）を用いてソートすることもできる。
【００７０】
次に、図４Ｄのフローチャートを用いて、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づきデステージング候補リスト２１１を作成する処理の流れを説明する。
デステージング候補リスト２１１を作成する処理では、初めにデステージング候補リスト２１１を空に初期化する（ステップＳ４３１)。
ファイル位置情報取得プログラム２０３のフローに従いファイル位置情報２０５を取得する（ステップＳ４３２)。
計算機情報取得プログラム２０１に従い計算機実行ジョブスケジュール２０２を取得する（ステップＳ４３３)。
【００７１】
計算機実行ジョブスケジュール２０２から、４８時間（所定時間）以上先に実行されるか、もしくは今後実行されないジョブを選択する。
この４８時間という時間はデステージングの指標となる時間であり、デステージング指標時間と呼ぶ。そのジョブに対応する入力ファイルの場所を、ファイル位置情報２０５から調べる。入力ファイルの場所が、オンラインストレージ１４０である場合、選択されたジョブをデステージング候補リスト２１１に追加する。
【００７２】
追加するときは、計算機実行ジョブスケジュール２０２（図８参照）から選択したジョブに関する出力ファイル名３１７、ジョブ開始時間３１３と、ファイル位置情報２０５（図９参照）から出力ファイル名３１７と対応するファイル名に関する保存場所３２２とファイルサイズ３２３を、それぞれデステージング候補リスト２１１（図１５参照）のファイル名３８１、読み込み開始時間３８４、保存場所３８２、ファイルサイズ３８３へ書き込む（ステップＳ４３４）
【００７３】
ここで、デステージング指標時間を４８時間としているが、計算機１００の使い方に応じて変更することもできる。例えば、オンラインストレージ１４０の容量が小さく限られているときは、できるだけファイルをニアラインストレージ１６０へデステージングして、オンラインストレージ１４０の空き容量を作る必要がある。このときは、例えば24時間以上などの短い時間に設定し、デステージング候補となるファイル数を多くしたほうが良い。ただし、「ステージング指標時間＜デステージング指標時間」の関係を満たす必要がある。
【００７４】
デステージング候補リスト２１１を読み込み開始時間３８４が遅い順にソートする（ステップＳ４３５)。
ここでは、読み込み開始時間３８４が遅い順にソートしているが、これ以外にも、ファイルサイズ、ユーザから指定や設定に基づく何らかの優先順位を用いてソートすることもできる。
【００７５】
次に、図４Ｆのフローチャートを用いて、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づきオンラインストレージ１４０の余裕を確認する処理（図４ＡのステップＳ４０１に相当）の流れを説明する。
まず、ファイル位置情報取得プログラム２０３のフローに従いファイル位置情報２０５を取得する（ステップＳ４５１)。
計算機情報取得プログラム２０１に従い計算機実行ジョブスケジュール２０２を取得する（ステップＳ４５２)。
【００７６】
取得したファイル位置情報２０５と計算機実行ジョブスケジュール２０２を基に、ストレージシステムから計算機１００へステージングするスケジュールであるステージングスケジュール２１３を作成する（ステップＳ４５３)。
すなわち、計算機実行ジョブスケジュール２０２（図８参照）の順番３１１ごとに、順番３１１と入力ファイル名３１６とジョブ開始時間３１３を、ステージングスケジュール２１３（図１０参照）の順番３３１と入力ファイル名３３２と読み取り開始時間３３６へ書き込む。書き込まれたステージングスケジュール２１３の各順番の入力ファイル名について、ファイル位置情報２０５（図９参照）から、そのファイル名に対応する保存場所３２２とファイルサイズ３２３を、それぞれステージングスケジュール２１３（図１０参照）の場所３３４とファイルサイズ３３３へ書き込む。
【００７７】
ステージングスケジュール２１３（図１０参照）のスループット３３５は、ファイルの場所３３４から計算機１００へ転送したときのスループットである。図１０の例では、ファイルの場所がニアラインストレージ１６０の場合のスループットが１．７ＧＢ／sであり、オンラインストレージ１４０の場合が３．４GB／ｓである。
ステージングスケジュール２１３（図１０参照）の読み取り終了時間３３７は、読み取り「開始時間３３６＋ファイルサイズ３３３÷スループット３３５」により計算される。
【００７８】
取得したファイル位置情報２０５（図９参照）と計算機実行ジョブスケジュール２０２（図８参照）を基に、計算機１００からストレージシステムへデステージングするスケジュールであるデステージングスケジュール２１２を作成する（ステップＳ４５３)。
すなわち、計算機実行ジョブスケジュール２０２（図８参照）の順番３１１ごとに、順番３１１と入力ファイル名３１６とジョブ終了時間３１４を、デステージングスケジュール２１２（図１１参照）の順番３４１と出力ファイル名３４２と書き込み終了時間３４７へ書き込む。書き込まれたデステージングスケジュール２１２（図１１参照）の各順番の出力ファイル名について、ファイル位置情報２０５（図９参照）から、そのファイル名に対応するファイルサイズ３２３を、それぞれデステージングスケジュール２１２（図１１参照）のファイルサイズ３４３へ書き込む。
デステージングスケジュール２１２（図１１参照）の場所３４４はオンライン（オンラインストレージ１４０）として書き込む。
【００７９】
デステージングスケジュール２１２（図１１参照）のスループット３４５は、ファイルの場所３４４から計算機１００へ転送したときのスループットである。図１１の例では、ファイルの場所がニアラインストレージ１６０の場合のスループットは１．７ＧＢ／sであり、オンラインストレージ１４０の場合は３．４GB／ｓである。
デステージングスケジュール２１２（図１１参照）の書き込み開始時間３４６は、「書き込み終了時間３４７−ファイルサイズ３４３÷スループット３４５」により計算される。
【００８０】
出力ファイルのファイルサイズは一般的には不明であるが、ファイルサイズを予め予測しておく。これは例えば、ジョブの入力ファイルのサイズから出力ファイルサイズがほぼ変わらないとして予測する方法、ジョブの計算時間から時間に比例して出力ファイルのサイズが増えると仮定して予測する方法、これまでのジョブの出力ファイルファイルサイズから平均値などの統計を取ることで予測する方法、若しくはユーザがファイルサイズ情報を入力することで予測する方法などがある。
【００８１】
オンラインストレージ１４０に今後保存されるデータの量、増加使用量を算出する。増加使用量は、次のように計算される。各時間Tについて各時間増加使用量を、「各時間増加使用量＝（時間Tまでの計算機１００からアウトプットされるデータ量）−（時間Tまでニアラインストレージ１６０へデステージング処理を継続したときの、デステージングされるデータ量）」として計算する。図５の動作図を例にとると、各時間増加使用量と現在のオンラインストレージ１４０の使用量の合計したものが累積増分としてグラフ５１５で示されている。
【００８２】
（時間Tまでの計算機１００からアウトプットされるデータ量）は、「デステージングスケジュール３４０の書き込み開始時間３４６＜時間T」となっている全てのスケジュールについてファイルサイズ３４３（図１１参照）を合計することで計算される。
（時間Tまでニアラインストレージ１６０へデステージング処理を継続したときの、デステージングされるデータ量）は、次の式５によって計算される。
（時間Tまでニアラインストレージ１６０へデステージング処理を継続したときの、デステージングされるデータ量）＝オンラインストレージ１４０・ニアラインストレージ１６０間のスループット×（時間T−現在の時間−ステージングに掛かる時間−デステージングに掛かる時間）・・・（式５）
【００８３】
時間Tを時刻t4として、図５の動作図を例にとると、オンラインストレージ１４０に対する「ステージングに掛かる時間＋デステージングに掛かる時間」は符号５０７の時間になる。
ステージングに掛かる時間は、「ステージングスケジュール２１３（図１０参照）の読み取り開始時間３３６＜時間T」となっている全てのスケジュールについて（読み取り終了時間３３７−読み取り開始時間３３６）すなわち読み取り時間を足し合わせたものである。
デステージングに掛かる時間は、「デステージングスケジュール２１２（図１１参照）の書き込み開始時間３４６＜時間T」となっている全てのスケジュールについて（書き込み終了時間３４７−書き込み開始時間３４６）すなわち書き込み時間を足し合わせたものである。
【００８４】
次に、各時間Tについての各時間増加使用量の最大値を計算し、これを増加使用量とする。この最大値をとる時間をTMAXとする。図５の動作図を例にとると、時刻t4がTMAXとなる。
増加使用量は「（時間TMAXまでの計算機１００からアウトプットされるデータ量）―現在の空き容量」として計算される。
計算した増加使用量を用いて、使用可能容量を「使用可能容量＝（オンラインストレージ１４０の空き容量−増加使用量）÷２」として計算する（図４ＦのステップＳ４５４)。
【００８５】
この使用可能容量にいて、「使用可能容量＞ε（式２）」を判定する（図４ＦのステップＳ４５５)。
式２が満たされる場合（ステップＳ４５５でＹｅｓ）、余裕ありと判断する（ステップＳ４５６）。
式２が満たされない場合（ステップＳ４５５でＮｏ）、余裕無しと判定する（ステップＳ４５７)。
本実施形態では、「使用可能容量＞０」、すなわちオンラインストレージ１４０の容量が不足しないように制御することが目的である。そこで、ステップＳ４５５ではεの分だけマージンを取っている。
【００８６】
次に、図４Ｇのフローチャートを用いて、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づき選択されたデータをオンラインストレージ１４０へマイグレーションしたときの、オンラインストレージ１４０の余裕を確認する処理の流れを説明する。
ステップＳ４５１（図４Ｆ参照）と同様に、ファイル位置情報２０５を取得する（ステップＳ４６１）。
ステップＳ４５２と同様に、計算機実行ジョブスケジュール２０２を取得する（ステップＳ４６２）。
ステップＳ４５３と同様に、ステージングスケジュール２１３、デステージングスケジュール２１２を作成する（ステップＳ４６３)。ステップＳ４５４と同様に、使用可能容量と増加使用量を計算する（ステップＳ４６４)。
「使用可能容量＞選択データのサイズ（式３）」か否かを判定する（ステップＳ４６５)。
【００８７】
式３が満たされない場合は（ステップＳ４６５でＮｏ）、余裕無しと判断する（ステップＳ４６９）。
式３が満たされる場合は（ステップＳ４６５でＹｅｓ）、これはマイグレーション処理終了後、使用可能容量が０以下にならないことを意味する。
この場合は、「オンラインストレージ１４０の空き容量＞選択データのサイズ（式４）」を判定する（ステップＳ４６６)。
【００８８】
式４が満たされない場合は（ステップＳ４６６でＮｏ）、余裕無しと判断する（ステップＳ４６９)。
式４が満たされる場合は（ステップＳ４６６でＹｅｓ）、オンラインストレージ１４０に選択データを保存する空き容量があることを意味する。この場合は、「デステージング候補リスト２１１（図１５参照）にあるデータのサイズの合計＞選択データのサイズ＋増加使用量―空き容量（式５）」を判定する（ステップＳ４６７)。
【００８９】
式５が満たされない場合は（ステップＳ４６７でＮｏ）、余裕無しと判断する（ステップＳ４６９)。
式５が満たされる場合は（ステップＳ４６７でＹｅｓ）、今後デステージングされる予定のデータの量の分は、すでにデステージング候補リスト２１１の候補に入っていることを示す。この場合は、余裕ありと判断する（ステップＳ４６８)。
【００９０】
次に、図４Ｈのフローチャートを用いて、ストレージ管理サーバ１８０のマイグレーション制御プログラム２０７に基づきファイル位置情報２０５を取得する処理（図４ＤのステップＳ４３２、図４ＥのステップＳ４４２、図４ＦのステップＳ４５１、図４ＧのステップＳ４６１）の流れを説明する。
まず、オンラインストレージ１４０・ニアラインストレージ１６０からLU Numberとストレージ名との対応情報を取得し、ストレージ情報２０４（図１３参照）として保存する（ステップＳ４７１)。
【００９１】
続いて、NASヘッド１２０からファイル情報１２２（図２参照）を取得する（ステップＳ４７２)。取得したファイル情報１２２からファイル毎のLU Numberとファイルサイズが分かる。
ストレージ情報２０４（図１３参照）を基に、このLU Numberを対応するストレージ名へ書き換えて保存場所とすることで、ファイル位置情報２０５（図９参照）を構成する（ステップＳ４７３)。
【００９２】
次に、計算機１００へのステージングと計算機１００からのデステージングについて説明する。
計算機１００へのステージングの場合、計算機１００からのファイルの読み込み要求に対して、NASヘッド１２０は要求されたファイルが格納されているLUにアクセスを行い、計算機１００へファイルを転送する。
【００９３】
計算機１００からのデステージングの場合、計算機１００からのファイルの書き込み要求に対して、NASヘッド１２０は要求されたファイルをオンラインストレージ１４０へ書き込む。ただし、「使用可能容量＜０」であるときには、オンラインストレージ１４０の容量が不足するため、NASヘッド１２０は要求されたファイルを、オンラインストレージ１４０を経由してニアラインストレージ１６０へ書き込む。
【００９４】
計算機１００へのステージングと計算機１００からのデステージングについて、ファイルが計算機１００からオンラインストレージ１６０へ転送される場合において、図１のストレージシステム構成では、ファイルは一度オンラインストレージ１４０を通じてニアラインストレージ１６０へ転送されるためスループットが低下する可能性がある。オンラインストレージ１４０を中継せずに、計算機１００からニアラインストレージ１６０への直接アクセスをするために、図１７で示すストレージシステム構成が考えられる。
【００９５】
図１７は、計算機１００、オンラインストレージ１４０とニアラインストレージ１６０がFC-SW １３１を通じて接続される計算機システムの構成図である。図１の計算機システム１０００との違いは、計算機システム１００１では、FC-SW １３１を通じて計算機１００、オンラインストレージ１４０およびニアラインストレージ１６０が接続されている点、FC-SW１５０が除かれている点の2点である。計算機１００はFC-SW １３１を通じてオンラインストレージ１４０とニアラインストレージ１６０の両方へアクセスすることができる。
【００９６】
前記手法では、計算機１００へのステージングもしくは計算機１００からのデステージングと、ストレージ管理サーバ１８０によるオンラインストレージ１４０とニアラインストレージ１６０間のステージングもしくはデステージングと、が同時に実行されないように制御を行っている。これは、主たる目的である計算機１００へのステージングもしくは計算機１００からのデステージングを、できるだけ高速に実行するためである。すなわち、ストレージ管理サーバ１８０によるオンラインストレージ１４０とニアラインストレージ１６０間のステージングもしくはデステージングによって、計算機１００へのステージングもしくは計算機１００からのデステージング処理のスループットが低下しないようにしている。しかし、処理のスループットが低下してしまうのは、上記２つの処理が同時に、かつディスク１４３の同じドライブへアクセスしたときであり、これは限定的な場合である。
【００９７】
そこで、同時処理を許す手法について説明する。前記手法との違いは、使用可能容量の算出方法とステージングスケジュール２１３（図１０参照）を作成するステップ（図４FのステップＳ４５３)、ステージングのステップ（図４BのステップＳ４１５)とデステージングのステップ（図４CのステップＳ４２４)である。
使用可能容量の算出では、上記した式５が次のように変更される「（時間Tまでニアラインストレージ１６０へデステージング処理を継続したときの、デステージングされるデータ量）＝オンラインストレージ１４０・ニアラインストレージ１６０間のスループット×（時間T−現在の時間）」。
【００９８】
ステージングスケジュール２１３を作成するステップＳ４５３（図４F参照）について次のように変更する。前記したステップＳ４５３では、ファイルの場所がニアラインストレージ１６０である場合のスループットを１．７ＧＢ／sとしているが、同時処理のためスループットは低下する。そこで、スループットを１．７GB/ｓよりも低い値へ設定する。スループットの設定には、スループットの低下を測定し統計的にスループットを決定する方法、最悪のスループットを見積もり決定する方法などが考えられる。
ステージングのステップＳ４１５（図４B参照）とデステージングのステップＳ４２４（図４C参照）については次のように変更する。前記した図４Bと図４Cの処理では、同時処理中はステージングのステップＳ４１５とデステージングのステップＳ４２４を停止しているが、この停止を無くして同時処理を認めるように変更する。
【００９９】
図１６は、前記の同時処理を認めた場合の本手法の動作を示した図である。図５の場合と重複する説明は適宜省略する。
図１６（ａ）のグラフ１６１５は現在のオンラインストレージ１４０の使用量に、今後計算機１００からのアウトプットによりオンラインストレージ１４０に保存されるデータを積んだ、累積増分を示している。線分１６２０はオンラインストレージ１４０の最大容量を示している。時刻t1まで計算機１００−１はジョブの計算を実行している。時刻t1において計算機１００−１から出力データのオンラインストレージ１４０へのデステージング１６０９が開始され、時刻t2に終了する。その後、計算機１００−２は時刻t3までジョブの計算を実行している。時刻t3において、再び計算機１００−２から出力データのオンラインストレージ１４０へのデステージング１６１０が開始され、時刻t4に終了する。
【０１００】
この出力データのデステージングにより、オンラインストレージ１４０の最大容量を超えてしまうことになる。超えてしまった分は超過使用量１６１６である。
線分１６０１はニアラインストレージ１６０・オンラインストレージ１４０間のスループットの傾きを持つ線分である。線分１６０１は、時刻t4におけるグラフ１６１５上の点を通る。
【０１０１】
線分１６０２は原点（線分１６２０上の現在時刻における点）を通り、ニアラインストレージ１６０・オンラインストレージ１４０間のスループットの負の傾きを持つ線分である。線分１６０１と線分１６０２の交点とオンラインストレージ１４０の最大容量を示す線分１６２０の差は使用可能容量１６０５を示している。この使用可能容量１６０５に対して、「使用可能容量１６０５＞０（式１）」かどうか判定する。
【０１０２】
式１が満たされる場合は、オンラインストレージ１４０に余裕があり、ステージング処理を行うことができる。
式１が満たされない場合は、オンラインストレージ１４０に余裕がないため、デステージング処理を行い、オンラインストレージ１４０に空き領域を作る。
線分１６０１と最大容量を示す線分１６２０との交点の時刻は、使用可能容量１６０５が０となる時刻t0’である。図１６（ｂ）に示すように、時刻t0’から時刻t4までオンラインストレージ１４０からニアラインストレージ１６０へのデステージング１６１１を開始している。オンラインストレージ１４０の現在の空き容量はグラフ１６０３に示されている。
【０１０３】
図１６（ｃ）に示すように、線分１６１７はオンラインストレージの最大容量を示している。時刻t1から時刻t2の間は計算機１００−１から出力データのオンラインストレージ１４０へのデステージング１６０９が実行され、同様に時刻t3から時刻t4の間は計算機１００−２から出力データのオンラインストレージ１４０へのデステージング１６１０が実行されているが、同時処理を認めているため、オンラインストレージ１４０からニアラインストレージ１６０へのデステージング実行が継続される。図１６（ｃ）のグラフ１６１８は、オンラインストレージ１４０の使用量のグラフを示している。グラフ１６１８を見ると、上記処理の結果、計算機１００からのアウトプットが来ても、オンラインストレージ１４０の使用量を最大容量以内に抑えられたことが分かる。
【０１０４】
同時処理を認めるかどうかにより、次のような差が発生する。同時処理を認めない場合、オンラインストレージ１４０の容量が制御され、容量不足に陥る可能性は低い。しかし、同時処理ができないため、同時にマイグレーションができないという制限が発生する。同時処理を認めた場合、同時処理によりマイグレーション処理がお互いのスループットに影響を与え、オンラインストレージ１４０の容量制御が必ずしも確実に行われない。しかし、同時処理ができるために、より柔軟にマイグレーションを実行できる。
【０１０５】
次に同時処理を認めるかどうかの判断を説明する。
同時処理を認めるかどうかの判断について、ストレージシステムに次のようなポリシーを設定して、自動的に判断させる方法が考えられる。例えば、容量不足に陥る可能性をできるだけ低くしたいというポリシー、もしくは同時処理によるスループット低下の影響が低いので柔軟なマイグレーションを重視したいというポリシーである。
同時処理を認めるかどうかの判断について、ユーザが判断して設定する方法も考えられる。
【０１０６】
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。例えば、NASヘッドは、データをファイル単位で扱うための装置であり、本発明に必須の構成ではなく、他の装置で代用してもよい。その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態のストレージシステムの構成例を示す図である。
【図２】ストレージ管理サーバのメモリの内容を示す図である。
【図３】JOBスクリプトの例を示す図である。
【図４Ａ】本手法のメインループのプログラムフローを示す図である。
【図４Ｂ】ステージング処理のプログラムフローを示す図である。
【図４Ｃ】デステージング処理のプログラムフローを示す図である。
【図４Ｄ】デステージング候補リスト作成のプログラムフローを示す図である。
【図４Ｅ】ステージング候補リスト作成のプログラムフローを示す図である。
【図４Ｆ】オンラインストレージの余裕確認のプログラムフローを示す図である。
【図４Ｇ】選択されたデータをオンラインストレージへマイグレーションしたときのオンラインストレージの余裕確認のプログラムフローを示す図である。
【図４Ｈ】ファイル位置情報取得のプログラムフローを示す図である。
【図５】オンラインストレージの使用量を予測しない場合の動作図である。
【図６】オンラインストレージの使用量を予測する本手法の動作図である。
【図７】（ａ）は、計算機とオンラインストレージとの間のマイグレーションを用いたステージングとデステージングの図であり、（ｂ）は、計算機とニアラインストレージとの間のマイグレーションを用いたステージングとデステージングの図である。
【図８】計算機実行ジョブスケジュールの例を示す図である。
【図９】ファイル位置情報の例を示す図である。
【図１０】ステージングスケジュールの例を示す図である。
【図１１】デステージングスケジュールの例を示す図である。
【図１２】ファイル情報の例を示す図である。
【図１３】ストレージ情報の例を示す図である。
【図１４】ステージング候補リストの例を示す図である。
【図１５】デステージング候補リストの例を示す図である。
【図１６】同時処理を認めた場合の本手法の動作を示した図である。
【図１７】FC-SW を通じて計算機とニアラインストレージが接続されるストレージシステムの構成例である。
【符号の説明】
【０１０８】
１００  計算機
１４０  オンラインストレージ
１６０  ニアラインストレージ
１８０  ストレージ管理サーバ
１０００，１００１  計算機システム
【図１】
2008293233.tif 000003
【図２】
2008293233.tif 000004
【図３】
2008293233.tif 000005
【図４Ａ】
2008293233.tif 000006
【図４Ｂ】
2008293233.tif 000007
【図４Ｃ】
2008293233.tif 000008
【図４Ｄ】
2008293233.tif 000009
【図４Ｅ】
2008293233.tif 000010
【図４Ｆ】
2008293233.tif 000011
【図４Ｇ】
2008293233.tif 000012
【図４Ｈ】
2008293233.tif 000013
【図５】
2008293233.tif 000014
【図６】
2008293233.tif 000015
【図７】
2008293233.tif 000016
【図８】
2008293233.tif 000017
【図９】
2008293233.tif 000018
【図１０】
2008293233.tif 000019
【図１１】
2008293233.tif 000020
【図１２】
2008293233.tif 000021
【図１３】
2008293233.tif 000022
【図１４】
2008293233.tif 000023
【図１５】
2008293233.tif 000024
【図１６】
2008293233.tif 000025
【図１７】
2008293233.tif 000026