(57)【要約】      （修正有）【課題】キャッシュメモリにおけるキャッシュの退避を効率的に行う。【解決手段】情報処理システムは、複数の記憶装置と、複数の記憶装置にアクセス可能であり、且つキャッシュメモリを有する情報処理装置とを有する。そして、上で述べた情報処理装置が、複数の記憶装置のうち第１の記憶装置に異常が発生した場合、複数の記憶装置のうち異常が発生していない第２の記憶装置を特定すると共に、キャッシュメモリにおける、第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、第２の記憶装置に格納する第１処理部と、第１の記憶装置の異常が解消された場合、第２の記憶装置に格納された隠しファイルに含まれるキャッシュを、第１の記憶装置に格納する第２処理部とを有する。【選択図】図２
2015076047.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置と、
前記複数の記憶装置にアクセス可能であり且つキャッシュメモリを有する情報処理装置と、
を有し、
前記情報処理装置が、
前記複数の記憶装置のうち第１の記憶装置に異常が発生した場合、前記複数の記憶装置のうち異常が発生していない第２の記憶装置を特定すると共に、前記キャッシュメモリにおける、前記第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、前記第２の記憶装置に格納する第１処理部と、
前記第１の記憶装置の異常が解消された場合、前記第２の記憶装置に格納された前記隠しファイルに含まれる前記キャッシュを、前記第１の記憶装置に格納する第２処理部と、
を有する情報処理システム。
【請求項２】
前記情報処理装置が、
前記第１の記憶装置へのデータの格納を実行するプロセス又は当該プロセスが実行されるジョブの再開に用いる情報を保存すると共に、前記プロセス又は前記ジョブを終了させる第３処理部
をさらに有する請求項１記載の情報処理システム。
【請求項３】
前記情報処理装置が、
前記第１の記憶装置に格納すべきデータを前記キャッシュメモリに格納する処理を、前記第１の記憶装置の異常が解消されるまで休止する第４処理部
をさらに有する請求項１又は２記載の情報処理システム。
【請求項４】
前記情報処理装置が、
前記キャッシュメモリにおける前記キャッシュを前記第１の記憶装置に格納することを要求する第１の格納要求が、前記第１の記憶装置の異常が解消された後に処理されるように、前記第１の格納要求をキューに追加する第５処理部
をさらに有する請求項１乃至３のいずれか１つ記載の情報処理システム。
【請求項５】
前記第２処理部は、
前記第２の記憶装置に格納された前記隠しファイルを削除する
ことを特徴とする請求項１乃至４のいずれか１つ記載の情報処理システム。
【請求項６】
複数の記憶装置と当該複数の情報処理装置にアクセス可能であり且つキャッシュメモリを有する情報処理装置とを含む情報処理システムの制御方法であって、
前記情報処理装置が、
前記複数の記憶装置のうち第１の記憶装置に異常が発生した場合、前記複数の記憶装置のうち異常が発生していない第２の記憶装置を特定し、
前記キャッシュメモリにおける、前記第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、前記第２の記憶装置に格納し、
前記第１の記憶装置の異常が解消された場合、前記第２の記憶装置に格納された前記隠しファイルに含まれる前記キャッシュを、前記第１の記憶装置に格納する、
処理を実行する、情報処理システムの制御方法。
【請求項７】
情報処理装置の制御プログラムであって、
アクセス可能な複数の記憶装置のうち第１の記憶装置に異常が発生した場合、前記複数の記憶装置のうち異常が発生していない第２の記憶装置を特定し、
キャッシュメモリにおける、前記第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、前記第２の記憶装置に格納し、
前記第１の記憶装置の異常が解消された場合、前記第２の記憶装置に格納された前記隠しファイルに含まれる前記キャッシュを、前記第１の記憶装置に格納する、
処理を前記情報処理装置に実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
ＯＳ（Operating System）のファイルシステムは、ディスク装置（例えばＨＤＤ（Hard Disk Drive））に対するアクセスの処理を高速化するため、キャッシュメモリを利用する。例えばデータの書き込みの場合、ファイルシステムは、書き込みを要求されたデータを一旦キャッシュメモリに書き込む。そして、キャッシュメモリに書き込まれたデータ（すなわちキャッシュ）を、非同期に（例えば定期的に）ディスク装置のディスクに書き込む。
【０００３】
しかし、ディスク装置に異常が発生した場合には、キャッシュメモリ上のキャッシュをディスク装置に書き込むことができず、キャッシュが消失してしまうことがある。このようなキャッシュの消失に対処する技術として、以下のような技術が知られている。
【０００４】
具体的には、キャッシュメモリの保守を行う際に、そのキャッシュメモリに格納されているデータを他のキャッシュメモリ又はディスク装置に書き込む技術が知られている。
【０００５】
また、シングルコントローラの障害時に、キャッシュデータ保護コントローラが、キャッシュメモリ内のデータをキャッシュデータ保存用のメモリに格納する技術が知られている。
【０００６】
また、ディスク制御装置が、無停電電源装置から停電の検出通知を受けた場合に、第１のディスクユニットの回転を停止し、ディスクキャッシュメモリのデータを第２のディスクユニットにバックアップする技術が知られている。
【０００７】
また、複数のハードディスクドライブに、ユーザデータ領域と別にライトキャッシュ退避領域を形成し、停電発生時には、キャッシュメモリの内容をライトキャッシュ退避領域に書き込む技術が知られている。
【０００８】
しかし、いずれの技術においても、キャッシュを退避させるため、専用のハードウェア資源を運用中のシステムのハードウェア資源とは別に設ける。そのため、システムの構築コスト及び運用コストが高くなるという問題がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平０９−２６５４３５号公報
【特許文献２】特開２００８−２６９２２１号公報
【特許文献３】特開２００９−００３７８９号公報
【特許文献４】特開２０００−３５７０５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従って、本発明の目的は、１つの側面では、キャッシュメモリにおけるキャッシュの退避を効率的に行うための技術を提供することである。
【課題を解決するための手段】
【００１１】
本発明に係る情報処理システムは、複数の記憶装置と、複数の記憶装置にアクセス可能であり且つキャッシュメモリを有する情報処理装置とを有する。そして、上で述べた情報処理装置が、複数の記憶装置のうち第１の記憶装置に異常が発生した場合、複数の記憶装置のうち異常が発生していない第２の記憶装置を特定すると共に、キャッシュメモリにおける、第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、第２の記憶装置に格納する第１処理部と、第１の記憶装置の異常が解消された場合、第２の記憶装置に格納された隠しファイルに含まれるキャッシュを、第１の記憶装置に格納する第２処理部とを有する。
【発明の効果】
【００１２】
１側面では、キャッシュメモリにおけるキャッシュの退避を効率的に行えるようになる。
【図面の簡単な説明】
【００１３】
【図１】図１は、システムの概要を示す図である。
【図２】図２は、第１の実施の形態におけるオブジェクトストレージサーバの機能ブロック図である。
【図３】図３は、ディスク装置の機能ブロック図である。
【図４】図４は、ディスクリスト格納部に格納されるデータの一例を示す図である。
【図５】図５は、第１キューに格納されるデータの一例を示す図である。
【図６】図６は、第１の実施の形態におけるキャッシュ処理の処理フローを示す図である。
【図７】図７は、クローズ処理の処理フローを示す図である。
【図８】図８は、書き込み処理の処理フローを示す図である。
【図９】図９は、リカバリ処理の処理フローを示す図である。
【図１０】図１０は、隠しファイルの形式を示す図である。
【図１１】図１１は、第２の実施の形態におけるオブジェクトストレージサーバの機能ブロック図である。
【図１２】図１２は、第２の実施の形態におけるキャッシュ処理の処理フローを示す図である。
【図１３】図１３は、ジョブ制御処理の処理フローを示す図である。
【図１４】図１４は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１４】
［実施の形態１］
図１に、第１の実施の形態におけるシステムの概要を示す。図１に示したシステムにおいては、例えばＬＡＮ（Local Area Network）であるネットワーク５に、オブジェクトストレージサーバ１１及び１２と、メタデータサーバ１３と、ユーザ端末３１及び３２とが接続されている。オブジェクトストレージサーバ１１には、ディスク装置１１１乃至１１６が接続され、オブジェクトストレージサーバ１２には、ディスク装置１２１乃至１２６が接続され、メタデータサーバ１３には、ディスク装置１３１及び１３２が接続されている。
【００１５】
メタデータサーバ１３は、ファイルのメタデータを格納するためのディスク装置１３１及び１３２を管理する。オブジェクトストレージサーバ１１は、ファイルの実体部分のデータを格納するためのディスク装置１１１乃至１１６を管理し、オブジェクトストレージサーバ１２は、ファイルの実体部分のデータを格納するためのディスク装置１２１乃至１２６を管理する。オブジェクトストレージサーバ１１及び１２は、ユーザ端末３１及び３２から、実行されたジョブの結果を受信し、ディスク装置に格納する。
【００１６】
図２に、第１の実施の形態におけるオブジェクトストレージサーバ１１の機能ブロック図を示す。オブジェクトストレージサーバ１１は、第１書き込み処理部１１０１と、キャッシュ格納部１１０２と、クローズ処理部１１０３と、リカバリ処理部１１０５及び要求処理部１１０８を含む第２書き込み処理部１１０４と、監視部１１０９と、ディスクリスト格納部１１１０と、第１キュー１１１１と、第２キュー１１１２とを含む。リカバリ処理部１１０５は、第１処理部１１０６及び第２処理部１１０７を含む。
【００１７】
第１書き込み処理部１１０１は、データの書き込みの指示を実行中のジョブのプロセスから受け付けた場合、データをキャッシュ格納部１１０２に格納する。キャッシュ格納部１１０２は、オブジェクトストレージサーバ１１が有するキャッシュメモリ（図示せず）に設けられる。クローズ処理部１１０３は、ファイルを閉じることを要求するクローズ要求を実行中のジョブのプロセスから受信した場合、第２書き込み処理部１１０４に、キャッシュ格納部１１０２に格納されているキャッシュをディスク装置におけるファイルに書き込むことを要求する書き込み要求を送信する。要求処理部１１０８は、キャッシュ格納部１１０２に格納されているキャッシュをディスク装置に書き込む処理を実行する。リカバリ処理部１１０５における第１処理部１１０６及び第２処理部１１０７は、後述するリカバリ処理を実行する。監視部１１０９は、ディスク装置１１１乃至１１６から受信したシステムメッセージを解析し、故障中のディスク装置のデバイス番号をディスクリスト格納部１１１０に格納する。
【００１８】
なお、オブジェクトストレージサーバ１２の機能ブロック図はオブジェクトストレージサーバ１１の機能ブロック図と同じであるので、説明を省略する。
【００１９】
図３に、ディスク装置１１１の機能ブロック図を示す。ディスク装置１１１は、ドライバ１１１０１と、記憶部１１１０２とを有する。ドライバ１１１０１は、記憶部１１１０２を管理する。また、ドライバ１１１０１は、ディスク装置１１１の状態を示すシステムメッセージをオブジェクトストレージサーバ１１に送信する。記憶部１１１０２はディスク型の記憶媒体であり、ファイルが格納される。
【００２０】
なお、ディスク装置１１１以外のディスク装置の機能ブロック図はディスク装置１１１の機能ブロック図と同じであるので、説明を省略する。
【００２１】
図４に、ディスクリスト格納部１１１０に格納されるデータの一例を示す。図４の例では、故障中のディスク装置の台数を表す情報と、故障中のディスク装置のデバイス番号とが格納される。
【００２２】
図５に、第１キュー１１１１に格納されるデータの一例を示す。図５の例では、クローズ処理部１１０３から受信した書き込み要求が格納される。要求処理部１１０８は、第１キュー１１１１に格納された書き込み要求を、ＦＩＦＯ（First In First Out）によって処理する。第１キュー１１１１に格納された書き込み要求は、例えば定期的に処理される。
【００２３】
第２キュー１１１２のデータ構造は、第１キュー１１１１のデータ構造と同じである。第２キュー１１１２に格納された書き込み要求は処理されず、第１キューに移された後に処理される。これについては後で詳しく説明する。
【００２４】
次に、図６乃至図１０を用いて、オブジェクトストレージサーバ１１が実行する処理について説明する。まず、図６を用いて、第１書き込み処理部１１０１がデータをキャッシュ格納部１１０２に格納する処理について説明する。
【００２５】
まず、第１書き込み処理部１１０１は、オブジェクトストレージサーバ１１において実行されているジョブのプロセスから、データをファイルに書き込む指示を受け付ける（図６：ステップＳ１）。
【００２６】
第１書き込み処理部１１０１は、ディスクリスト格納部１１１０にディスク装置のデバイス番号が登録されているか否かによって、故障中のディスク装置が有るか判断する（ステップＳ３）。
【００２７】
故障中のディスク装置が無い場合（ステップＳ３：Ｎｏルート）、現時点でデータをキャッシュ格納部１１０２に格納しても問題は無いので、ステップＳ１１の処理に移行する。一方、故障中のディスク装置が有る場合（ステップＳ３：Ｙｅｓルート）、第１書き込み処理部１１０１は、データが書き込まれるファイル、ファイル先頭からのオフセット、及びデータ量等の情報によって、データの書き込み先のディスク装置を特定する（ステップＳ５）。なお、異常時にのみ書き込み先のディスク装置を特定するのは、処理性能への影響を小さくするためである。
【００２８】
第１書き込み処理部１１０１は、ディスクリスト格納部１１１０に格納されているディスク装置のデバイス番号を用いて、書き込み先のディスク装置の中に、故障中のディスク装置が有るか判断する（ステップＳ７）。
【００２９】
書き込み先のディスク装置の中に、故障中のディスク装置が無い場合（ステップＳ７：Ｎｏルート）、現時点でデータをキャッシュ格納部１１０２に格納しても問題は無いので、ステップＳ１１の処理に移行する。一方、書き込み先のディスク装置の中に、故障中のディスク装置が有る場合（ステップＳ７：Ｙｅｓルート）、第１書き込み処理部１１０１は、故障中のディスク装置が復旧するまで待機する（ステップＳ９）。故障中のディスク装置が管理者の作業により復旧すると、管理者はコマンドによってオブジェクトストレージサーバ１１のファイルシステムに復旧を通知する。通知が有ると、ステップＳ１１の処理に移行する。
【００３０】
第１書き込み処理部１１０１は、書き込みを指示されたデータを、キャッシュ格納部１１０２に格納する（ステップＳ１１）。そして処理を終了する。
【００３１】
以上のような処理を実行すれば、ディスク装置の記憶部への格納を待っている状態のデータが増えることによってキャッシュ格納部１１０２の容量が足りなくなることを防止できるようになる。
【００３２】
次に、図７を用いて、クローズ処理部１１０３がファイルをクローズする際に実行する処理について説明する。
【００３３】
まず、クローズ処理部１１０３は、オブジェクトストレージサーバ１１において実行されているジョブのプロセスから、ファイルを閉じることを要求するクローズ要求を受信する（図７：ステップＳ２１）。
【００３４】
クローズ処理部１１０３は、ディスク装置の記憶部に未だ書き込まれていないキャッシュ（本実施の形態においては、キャッシュ格納部１１０２に格納されている全キャッシュ）を、キャッシュ格納部１１０２から特定する（ステップＳ２３）。
【００３５】
クローズ処理部１１０３は、ステップＳ２３において特定されたキャッシュを書き込むことを要求する書き込み要求を第２書き込み処理部１１０４に送信する（ステップＳ２５）。これに応じ、第２書き込み処理部１１０４は、書き込み処理を実行する。書き込み処理において、第２書き込み処理部１１０４は、Ｉ／Ｏ（Input/Output）エラーの有無を示す情報を含む応答をクローズ処理部１１０３に出力する。書き込み処理については、後で詳しく説明する。
【００３６】
クローズ処理部１１０３は、第２書き込み処理部１１０４から、書き込み要求に対する応答を受信する（ステップＳ２７）。
【００３７】
クローズ処理部１１０３は、受信した応答に含まれる、Ｉ／Ｏエラーの有無を示す情報によって、Ｉ／Ｏエラーが発生したか判断する（ステップＳ２９）。
【００３８】
Ｉ／Ｏエラーが発生した場合（ステップＳ２９：Ｙｅｓルート）、クローズ処理部１１０３は、エラーの発生を示すデータを、実行中のジョブのプロセスに出力する（ステップＳ３１）。一方、Ｉ／Ｏエラーが発生していない場合（ステップＳ２９：Ｎｏルート）、クローズ処理部１１０３は、クローズ処理が正常に終了したことを示すデータを、実行中のジョブのプロセスに出力する（ステップＳ３３）。そして処理を終了する。
【００３９】
以上のような処理を実行すれば、ファイルを閉じる際にキャッシュ格納部１１０２に残っているキャッシュを漏れなくディスク装置の記憶部に書き込めるようになる。
【００４０】
次に、図８を用いて、第２書き込み処理部１１０４が実行する書き込み処理について説明する。
【００４１】
まず、第２書き込み処理部１１０４における要求処理部１１０８は、書き込み要求をクローズ処理部１１０３から受信するまで待機する。（図８：ステップＳ４１）。そして、要求処理部１１０８は、クローズ処理部１１０３から書き込み要求を受信する（ステップＳ４３）。
【００４２】
要求処理部１１０８は、ディスクリスト格納部１１１０にディスク装置のデバイス番号が登録されているか否かによって、故障中のディスク装置が有るか判断する（ステップＳ４５）。
【００４３】
故障中のディスク装置が有る場合（ステップＳ４５：Ｙｅｓルート）、要求処理部１１０８は、データが書き込まれるファイル、ファイル先頭からのオフセット、及びデータ量等の情報によって、データの書き込み先のディスクを特定する（ステップＳ４７）。
【００４４】
要求処理部１１０８は、ディスクリスト格納部１１１０に格納されているディスク装置のデバイス番号を用いて、書き込み先のディスク装置の中に、故障中のディスク装置が有るか判断する（ステップＳ４９）。
【００４５】
書き込み先のディスク装置の中に、故障中のディスク装置が無い場合（ステップＳ４９：Ｎｏルート）、現時点でキャッシュをディスク装置の記憶部に格納しても問題は無いので、ステップＳ５３の処理に移行する。一方、書き込み先のディスク装置の中に、故障中のディスク装置が有る場合（ステップＳ４９：Ｙｅｓルート）、現時点でキャッシュをディスク装置の記憶部に格納できないので、要求処理部１１０８は、書き込み要求を第２キュー１１１２に格納する（ステップＳ５１）。そしてステップＳ４１の処理に戻る。
【００４６】
一方、故障中のディスク装置が無い場合（ステップＳ４５：Ｎｏルート）、要求処理部１１０８は、書き込み先のディスク装置に、キャッシュについての書き込み命令（例えばライト（write）命令）を送信する（ステップＳ５３）。これに応じ、書き込み命令を受信したディスク装置は、オブジェクトストレージサーバ１１から受信した書き込み命令に含まれるキャッシュを、記憶部に格納されているファイルに書き込み、ファイルを閉じる。そして、ディスク装置は、書き込み命令の結果をオブジェクトストレージサーバ１１に送信する。書き込み命令の結果には、Ｉ／Ｏエラーの有無を示す情報が含まれる。
【００４７】
要求処理部１１０８は、書き込み命令の送信先のディスク装置から、書き込み命令の結果を受信する（ステップＳ５５）。
【００４８】
要求処理部１１０８は、受信した書き込み命令の結果に含まれる、Ｉ／Ｏエラーの有無を示す情報によって、Ｉ／Ｏエラーが発生したか判断する（ステップＳ５７）。
【００４９】
Ｉ／Ｏエラーが発生した場合（ステップＳ５７：Ｙｅｓルート）、第２書き込み処理部１１０４におけるリカバリ処理部１１０５は、リカバリ処理を実行する（ステップＳ５９）。リカバリ処理については、図９及び図１０を用いて説明する。
【００５０】
まず、リカバリ処理部１１０５における第１処理部１１０６は、故障が発生したディスク装置のデバイス番号をディスクリスト格納部１１１０に追加する（図９：ステップＳ７１）。また、第１処理部１１０６は、ディスクリスト格納部１１１０における、故障中のディスク装置の台数を１インクリメントする。
【００５１】
第１処理部１１０６は、故障が発生していないディスク装置を特定する（ステップＳ７３）。故障が発生していないディスク装置とは、ディスクリスト格納部１１１０にデバイス番号が登録されていないディスク装置である。
【００５２】
第１処理部１１０６は、書き込み要求において指定されたキャッシュを含む隠しファイル（Invisible File）を生成する（ステップＳ７５）。図１０に、隠しファイルの一例を示す。図１０の例では、隠しファイルには、退避するキャッシュのページ数と、各ページについての情報とが含まれる。ページについての情報には、ページの長さ（すなわちバイト数）と、ページの格納位置（本実施の形態においては、ディスク装置のデバイス番号及びブロック番号）と、ページの内容とが含まれる。隠しファイルは、システムの利用者から参照されないように設定される。
【００５３】
第１処理部１１０６は、ステップＳ７３において特定されたディスク装置の記憶部に、ステップＳ７５において生成された隠しファイルを格納する（ステップＳ７７）。ステップＳ７７において、第１処理部１１０６は、生成された退避用の隠しファイルをディスク装置に送信し、ディスク装置に隠しファイルを格納させる。
【００５４】
なお、通常、ファイルシステムは、ディスク装置におけるブロックの使用状況を管理しており、またディスク装置に十分な空き領域がある状態で使用する。そのため、ファイルシステムは、故障が発生していないディスク装置から空き領域を容易に取得して使用することができる。
【００５５】
そして、第１処理部１１０６は、故障が発生したディスク装置が復旧するまで待機する（ステップＳ７９）。故障したディスク装置が管理者の作業により復旧すると、管理者はコマンドによってオブジェクトストレージサーバ１１のファイルシステムに復旧を通知する。通知が有ると、第１処理部１１０６は、第２処理部１１０７に処理の実行を指示する。
【００５６】
第２処理部１１０７は、故障したディスク装置の復旧後、退避用の隠しファイルに含まれるキャッシュを取り出し、キャッシュが格納されるべきディスク装置に格納する（ステップＳ８１）。ステップＳ８１において、第２処理部１１０７は、キャッシュをディスク装置に送信し、ディスク装置にキャッシュを格納させる。そして、第２処理部１１０７は、退避用の隠しファイルを削除する（ステップＳ８３）。
【００５７】
第２処理部１１０７は、復旧したディスク装置についての書き込み要求を第２キュー１１１２から取り出し、第１キュー１１１１に追加する（ステップＳ８５）。ステップＳ８５の処理により、故障中に発行された書き込み要求について処理できるようになる。そして、第２処理部１１０７は、復旧したディスク装置のデバイス番号をディスクリスト格納部１１１０から削除する（ステップＳ８７）。
【００５８】
第２処理部１１０７は、故障が発生したディスク装置が復旧したことを要求処理部１１０８に通知する（ステップＳ８９）。そして処理を終了する。
【００５９】
図８の説明に戻り、要求処理部１１０８は、リカバリ処理の結果をクローズ処理部１１０３に出力する（ステップＳ６１）。
【００６０】
一方、Ｉ／Ｏエラーが発生していない場合（ステップＳ５７：Ｎｏルート）、要求処理部１１０８は、書き込みが正常に終了したことを示すデータを、クローズ処理部１１０３に出力する（ステップＳ６３）。そして処理を終了する。
【００６１】
以上のように、隠しファイルにすれば利用者から参照されることは無いので、運用中のシステムにおけるディスク装置に格納しておいても問題は無い。よって、キャッシュの退避のために専用の記憶装置を設けなくてもよいので、コストを高くすることが無い、効率的なキャッシュの退避を行えるようになる。
【００６２】
なお、第２書き込み処理部１１０４は、書き込み処理によってキャッシュをディスク装置の記憶部に書き込むだけではなく、例えば定期的に、第１キュー１１１１内の書き込み要求を処理することによって、キャッシュをディスク装置の記憶部に書き込む。このようにすることで、キャッシュ格納部１１０２にキャッシュが溜まってしまうことを抑制できるようになる。
【００６３】
また、上ではオブジェクトストレージサーバ１１が実行する処理について説明したが、オブジェクトストレージサーバ１２が実行する処理もオブジェクトストレージサーバ１１が実行する処理と同じである。
【００６４】
［実施の形態２］
次に、第２の実施の形態について説明する。図１１に、第２の実施の形態におけるオブジェクトストレージサーバ１１の機能ブロック図を示す。第１の実施の形態におけるオブジェクトストレージサーバ１１と比較すると、第２の実施の形態におけるオブジェクトストレージサーバ１１には、ジョブ制御部１１１３が設けられている。ジョブ制御部１１１３は、第１書き込み処理部１１０１からの要求に応じ、書き込みを指示したプロセス又はそのプロセスが実行されているジョブを停止する。
【００６５】
次に、図１２を用いて、第１書き込み処理部１１０１がデータをキャッシュ格納部１１０２に格納する処理について説明する。
【００６６】
まず、第１書き込み処理部１１０１は、オブジェクトストレージサーバ１１において実行されているジョブのプロセスから、データをファイルに書き込む指示を受け付ける（図１２：ステップＳ９１）。
【００６７】
第１書き込み処理部１１０１は、ディスクリスト格納部１１１０にディスク装置のデバイス番号が登録されているか否かによって、故障中のディスク装置が有るか判断する（ステップＳ９３）。
【００６８】
故障中のディスク装置が無い場合（ステップＳ９３：Ｎｏルート）、現時点でデータをキャッシュ格納部１１０２に格納しても問題は無いので、ステップＳ１０１の処理に移行する。一方、故障中のディスク装置が有る場合（ステップＳ９３：Ｙｅｓルート）、第１書き込み処理部１１０１は、データが書き込まれるファイル、ファイル先頭からのオフセット、及びデータ量等の情報によって、データの書き込み先のディスクを特定する（ステップＳ９５）。
【００６９】
第１書き込み処理部１１０１は、ディスクリスト格納部１１１０に格納されているディスク装置のデバイス番号を用いて、書き込み先のディスク装置の中に、故障中のディスク装置が有るか判断する（ステップＳ９７）。
【００７０】
書き込み先のディスク装置の中に、故障中のディスク装置が無い場合（ステップＳ９７：Ｎｏルート）、現時点でデータをキャッシュ格納部１１０２に格納しても問題は無いので、ステップＳ１０１の処理に移行する。一方、書き込み先のディスク装置の中に、故障中のディスク装置が有る場合（ステップＳ９７：Ｙｅｓルート）、第１書き込み処理部１１０１は、書き込みを指示したプロセスのＩＤを含むジョブ制御要求をジョブ制御部１１１３に送信する（ステップＳ９９）。なお、書き込みを指示したプロセスのＩＤは、指示に含まれる情報によって特定される。
【００７１】
第１書き込み処理部１１０１は、書き込みを指示されたデータを、キャッシュ格納部１１０２に格納する（ステップＳ１１）。そして処理を終了する。
【００７２】
以上のような処理を実行すれば、停止すべきプロセス又はプロセスが実行されるジョブをジョブ制御部１１１３に通知できるようになる。
【００７３】
次に、図１３を用いて、ジョブ制御部１１１３が実行する処理について説明する。まず、ジョブ制御部１１１３は、ジョブ制御要求を受信するまで待機し（図１３：ステップＳ１１１）、ジョブ制御要求を受信する（ステップＳ１１３）。
【００７４】
ジョブ制御部１１１３は、ジョブ制御要求に含まれるプロセスのＩＤによって、そのプロセスが実行されているジョブを特定する（ステップＳ１１５）。
【００７５】
ジョブ制御部１１１３は、実行中のジョブの状態を示すデータ等を含むチェックポイントを取得し（ステップＳ１１７）、オブジェクトストレージサーバ１１内の記憶装置又はネットワーク５に接続された他のサーバが管理する記憶装置等に格納する。
【００７６】
ジョブ制御部１１１３は、ステップＳ１１５において特定されたジョブを停止し（ステップＳ１１９）、元の処理に戻る。これにより、ジョブが利用する資源（例えばメモリ等）は解放される。なお、ステップＳ１１９においてはジョブを停止したが、プロセスだけを停止してもよい。
【００７７】
以上のような処理を実行すれば、ジョブが停止されるため、ディスク装置の記憶部への格納を待っている状態のデータが増えることによってキャッシュ格納部１１０２の容量が足りなくなることを防止できるようになる。なお、チェックポイントは、実行中のジョブの状態を復元しジョブを再開するために用いられる。
【００７８】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したオブジェクトサーバ１１及びディスク装置１１１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７９】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００８０】
また、上では第１キュー及び第２キューを用いる例を示したが、キューは１つだけであってもよい。例えば第１キューのみを用いる場合、ステップＳ５１においては、すぐには処理しない書き込み要求であることを示す情報を書き込み要求に関連付けて第１キューに格納する。そして、ステップＳ８５において、関連付けられた情報を削除すれば、上で述べた処理と同じ結果になる。
【００８１】
また、図１に示したシステムはラスターファイルシステム（Lustre File System）の形態を有しているが、ラスターファイルシステム以外の分散ファイルシステムであってもよい。
【００８２】
また、サーバの外部にディスク装置を設ける例を示したが、サーバ内のディスクに対して本実施の形態の処理を実行してもよい。
【００８３】
なお、上で述べたオブジェクトストレージサーバ１１及び１２、メタデータサーバ１３、並びにユーザ端末３１及び３２は、コンピュータ装置であって、図１４に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８４】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８５】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）複数の記憶装置と、（Ｂ）複数の記憶装置にアクセス可能であり且つキャッシュメモリを有する情報処理装置とを有する。そして、上で述べた情報処理装置が、（ｂ１）複数の記憶装置のうち第１の記憶装置に異常が発生した場合、複数の記憶装置のうち異常が発生していない第２の記憶装置を特定すると共に、キャッシュメモリにおける、第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、第２の記憶装置に格納する第１処理部と、（ｂ２）第１の記憶装置の異常が解消された場合、第２の記憶装置に格納された隠しファイルに含まれるキャッシュを、第１の記憶装置に格納する第２処理部とを有する。
【００８６】
このようにすれば、たとえ第２の記憶装置が退避用の特別な記憶装置ではなくても、本来は参照することができない利用者がキャッシュを参照することは無い。従って、退避用として別途記憶装置を設けなくてもよいので、キャッシュの退避に要するコストを削減できるようになる。
【００８７】
また、上で述べた情報処理装置が、（ｂ３）第１の記憶装置へのデータの格納を実行するプロセス又は当該プロセスが実行されるジョブの再開に用いる情報を保存すると共に、プロセス又はジョブを終了させる第３処理部をさらに有してもよい。このようにすれば、第１の記憶装置への格納を待っている状態のデータが増えることによってキャッシュメモリの容量が足りなくなることを防止できるようになる。
【００８８】
また、上で述べた情報処理装置が、（ｂ４）第１の記憶装置に格納すべきデータをキャッシュメモリに格納する処理を、第１の記憶装置の異常が解消されるまで休止する第４処理部をさらに有してもよい。このような方法であっても、第１の記憶装置への格納を待っている状態のデータが増えることによってキャッシュメモリの容量が足りなくなることを防止できるようになる。
【００８９】
また、上で述べた情報処理装置が、（ｂ５）キャッシュメモリにおけるキャッシュを第１の記憶装置に格納することを要求する第１の格納要求が、第１の記憶装置の異常が解消された後に処理されるように、第１の格納要求をキューに追加する第５処理部をさらに有してもよい。このようにすれば、異常が発生した記憶装置にキャッシュを格納する処理が行われないようにすることができるようになる。
【００９０】
また、上で述べた第２処理部は、（ｂ２１）第２の記憶装置に格納された隠しファイルを削除してもよい。このようにすれば、不要になった隠しファイルによって記憶装置の容量が減ることがなくなる。
【００９１】
また、上で述べたキューは、処理すべき格納要求が格納される第１のキューと処理されない格納要求が格納される第２のキューとを含んでもよい。そして、上で述べた第４処理部は、（ｂ４１）第１の格納要求を第２のキューに格納し、上で述べた第２処理部は、（ｂ２２）第１の記憶装置の異常が解消された場合、第１の格納要求を第２のキューから取り出し、第１のキューに格納してもよい。なお、キューイングの方法はこのような方法に限られるわけではない。
【００９２】
本実施の形態の第２の態様に係る制御方法は、複数の記憶装置と当該複数の情報処理装置にアクセス可能であり且つキャッシュメモリを有する情報処理装置とを含む情報処理システムにおいて実行される。そして、上で述べた情報処理装置が、（Ｃ）複数の記憶装置のうち第１の記憶装置に異常が発生した場合、複数の記憶装置のうち異常が発生していない第２の記憶装置を特定し、（Ｄ）キャッシュメモリにおける、第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、第２の記憶装置に格納し、（Ｅ）第１の記憶装置の異常が解消された場合、第２の記憶装置に格納された隠しファイルに含まれるキャッシュを、第１の記憶装置に格納する処理を含む。
【００９３】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９５】
（付記１）
複数の記憶装置と、
前記複数の記憶装置にアクセス可能であり且つキャッシュメモリを有する情報処理装置と、
を有し、
前記情報処理装置が、
前記複数の記憶装置のうち第１の記憶装置に異常が発生した場合、前記複数の記憶装置のうち異常が発生していない第２の記憶装置を特定すると共に、前記キャッシュメモリにおける、前記第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、前記第２の記憶装置に格納する第１処理部と、
前記第１の記憶装置の異常が解消された場合、前記第２の記憶装置に格納された前記隠しファイルに含まれる前記キャッシュを、前記第１の記憶装置に格納する第２処理部と、
を有する情報処理システム。
【００９６】
（付記２）
前記情報処理装置が、
前記第１の記憶装置へのデータの格納を実行するプロセス又は当該プロセスが実行されるジョブの再開に用いる情報を保存すると共に、前記プロセス又は前記ジョブを終了させる第３処理部
をさらに有する付記１記載の情報処理システム。
【００９７】
（付記３）
前記情報処理装置が、
前記第１の記憶装置に格納すべきデータを前記キャッシュメモリに格納する処理を、前記第１の記憶装置の異常が解消されるまで休止する第４処理部
をさらに有する付記１又は２記載の情報処理システム。
【００９８】
（付記４）
前記情報処理装置が、
前記キャッシュメモリにおける前記キャッシュを前記第１の記憶装置に格納することを要求する第１の格納要求が、前記第１の記憶装置の異常が解消された後に処理されるように、前記第１の格納要求をキューに追加する第５処理部
をさらに有する付記１乃至３のいずれか１つ記載の情報処理システム。
【００９９】
（付記５）
前記第２処理部は、
前記第２の記憶装置に格納された前記隠しファイルを削除する
ことを特徴とする付記１乃至４のいずれか１つ記載の情報処理システム。
【０１００】
（付記６）
前記キューは、処理すべき格納要求が格納される第１のキューと処理されない格納要求が格納される第２のキューとを含み、
前記第４処理部は、
前記第１の格納要求を前記第２のキューに格納し、
前記第２処理部は、
前記第１の記憶装置の異常が解消された場合、前記第１の格納要求を前記第２のキューから取り出し、前記第１のキューに格納する
ことを特徴とする付記４記載の情報処理システム。
【０１０１】
（付記７）
複数の記憶装置と当該複数の情報処理装置にアクセス可能であり且つキャッシュメモリを有する情報処理装置とを含む情報処理システムの制御方法であって、
前記情報処理装置が、
前記複数の記憶装置のうち第１の記憶装置に異常が発生した場合、前記複数の記憶装置のうち異常が発生していない第２の記憶装置を特定し、
前記キャッシュメモリにおける、前記第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、前記第２の記憶装置に格納し、
前記第１の記憶装置の異常が解消された場合、前記第２の記憶装置に格納された前記隠しファイルに含まれる前記キャッシュを、前記第１の記憶装置に格納する、
処理を実行する、情報処理システムの制御方法。
【０１０２】
（付記８）
情報処理装置の制御プログラムであって、
アクセス可能な複数の記憶装置のうち第１の記憶装置に異常が発生した場合、前記複数の記憶装置のうち異常が発生していない第２の記憶装置を特定し、
キャッシュメモリにおける、前記第１の記憶装置に格納すべきキャッシュを含む隠しファイルを生成し、前記第２の記憶装置に格納し、
前記第１の記憶装置の異常が解消された場合、前記第２の記憶装置に格納された前記隠しファイルに含まれる前記キャッシュを、前記第１の記憶装置に格納する、
処理を前記情報処理装置に実行させるための制御プログラム。
【符号の説明】
【０１０３】
１１，１２  オブジェクトストレージサーバ    １３  メタデータサーバ
１１１，１１２，１１３，１１４，１１５，１１６，１２１，１２２，１２３，１２４，１２５，１２６，１３１，１３２  ディスク装置
１１０１  第１書き込み処理部    １１０２  キャッシュ格納部
１１０３  クローズ処理部    １１０４  第２書き込み処理部
１１０５  リカバリ処理部    １１０６  第１処理部
１１０７  第２処理部    １１０８  要求処理部
１１０９  監視部    １１１０  ディスクリスト格納部
１１１１  第１キュー    １１１２  第２キュー
１１１３  ジョブ制御部    １１１０１  ドライバ
１１１０２  記憶部    ３１，３２  ユーザ端末
５  ネットワーク
【図１】
2015076047.tif 000003
【図２】
2015076047.tif 000004
【図３】
2015076047.tif 000005
【図４】
2015076047.tif 000006
【図５】
2015076047.tif 000007
【図６】
2015076047.tif 000008
【図７】
2015076047.tif 000009
【図８】
2015076047.tif 000010
【図９】
2015076047.tif 000011
【図１０】
2015076047.tif 000012
【図１１】
2015076047.tif 000013
【図１２】
2015076047.tif 000014
【図１３】
2015076047.tif 000015
【図１４】
2015076047.tif 000016