(57)【要約】【課題】多重化されていないＲＡＩＤ装置では、ＲＡＩＤ装置が故障したときにＲＡＩＤ装置にデータを蓄積できず、またＲＡＩＤ装置からデータを読込めなくなる。【解決手段】データ蓄積制御部３は、転送元装置２０から転送されたデータを小規模ストレージ８及びＲＡＩＤ装置９に書込んで、ファイル管理テーブル４に管理情報を記録する。データ蓄積制御部３は、ＲＡＩＤ装置９にデータの書込みが行えない書込不能期間は小規模ストレージ８にデータを書込む。そして、データ蓄積制御部３は、書込不能期間の経過後に、書込不能期間に小規模ストレージ８に書込んだデータを小規模ストレージ８から読込んで、ＲＡＩＤ装置９に書込む。【選択図】図１
2016057811.tif 000002
【特許請求の範囲】
【請求項１】
所定の記録容量を有し、データを蓄積する第１ストレージ装置、及び前記第１ストレージ装置よりも大きい記録容量を有し、前記データを冗長化して蓄積する第２ストレージ装置がそれぞれ蓄積する前記データの管理情報を保持する管理テーブルと、
前記第１ストレージ装置又は前記第２ストレージ装置から読込んだ前記データを転送先装置に転送し、前記管理テーブルに前記管理情報を記録するデータ配信制御部と、
転送元装置から転送された前記データを前記第１ストレージ装置及び前記第２ストレージ装置に書込んで、前記管理テーブルに前記管理情報を記録し、前記第２ストレージ装置に前記データの書込みが行えない書込不能期間に前記第１ストレージ装置に書込んだ前記データを、前記書込不能期間の経過後に、前記管理テーブルを参照して前記第１ストレージ装置から読込んで、前記第２ストレージ装置に書込むデータ蓄積制御部と、を備える
蓄積配信サーバ。
【請求項２】
前記第１ストレージ装置は、前記第２ストレージ装置よりも前記データ蓄積制御部が前記データを書込むアクセス速度、及び前記データ配信制御部前記データを読込むアクセス速度が速く、
前記データ配信制御部は、前記第１ストレージ装置及び前記第２ストレージ装置に同じ前記データが蓄積されている場合に、前記第１ストレージ装置から優先して前記データを読込んで前記転送先装置に転送する
請求項１に記載の蓄積配信サーバ。
【請求項３】
前記データ配信制御部は、前記書込不能期間には、前記第１ストレージ装置から前記データを読込んで、前記データを転送先装置に転送する
請求項２に記載の蓄積配信サーバ。
【請求項４】
前記管理テーブルは、前記管理情報として、前記第１ストレージ装置に対する前記データの書込状態、書込開始日時、読込状態、格納場所を管理し、
前記データ蓄積制御部は、前記管理テーブルを参照し、前記第１ストレージ装置の空き容量が、前記第１ストレージ装置に書込む前記データの容量に対して不足する場合に、前記書込開始日時が古い順に前記第１ストレージ装置に蓄積された前記データを削除する
請求項３に記載の蓄積配信サーバ。
【請求項５】
前記データ蓄積制御部は、前記管理テーブルを参照し、前記第１ストレージ装置から削除する対象となる前記データが前記データ配信制御部によって読込まれている場合に、削除する対象となる前記データとは異なるデータを前記第１ストレージ装置から削除する
請求項４に記載の蓄積配信サーバ。
【請求項６】
所定の記録容量を有し、データを蓄積する第１ストレージ装置と、
前記第１ストレージ装置よりも大きい記録容量を有し、前記データを冗長化して蓄積する第２ストレージ装置と、
前記第１ストレージ装置及び前記第２ストレージ装置がそれぞれ蓄積する前記データの管理情報を保持する管理テーブルと、
前記第１ストレージ装置又は前記第２ストレージ装置から読込んだ前記データを転送先装置に転送し、前記管理テーブルに前記管理情報を記録するデータ配信制御部と、
転送元装置から転送された前記データを前記第１ストレージ装置及び前記第２ストレージ装置に書込んで、前記管理テーブルに前記管理情報を記録し、前記第２ストレージ装置に前記データの書込みが行えない書込不能期間に前記第１ストレージ装置に書込んだ前記データを、前記書込不能期間の経過後に、前記管理テーブルを参照して前記第１ストレージ装置から読込んで、前記第２ストレージ装置に書込むデータ蓄積制御部と、を備える
蓄積配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大容量のデータを蓄積し、配信する蓄積配信サーバ及び蓄積配信システムに関する。
【背景技術】
【０００２】
従来、大容量のデータ（画像データ、音声データ等）をＲＡＩＤ（Redundant Array of Inexpensive Disks）装置に蓄積し、ネットワークを介してユーザ端末にデータをストリーミング配信する蓄積配信システムが知られている。
【０００３】
特許文献１には、大容量のデータを蓄積するストレージシステムが開示されている。このストレージシステムは、ＲＡＩＤ装置間でデータをプライマリデータとセカンダリデータにミラーリングして多重化する。そして、ＲＡＩＤ構成により装置内で復旧可能なディスク装置の障害が発生すると、ミラーリング先のＲＡＩＤ装置に障害ディスク装置に対応したディスク装置のデータを要求し、転送されたデータをスペアディスク装置に書込んで復旧させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２２７９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１にはデータをミラーリングして多重化することについて記載されているが、蓄積配信システムのような大容量のデータを取り扱うシステムでは、ＲＡＩＤ装置等のストレージ装置を複数台使用することがある。このため、ストレージ装置をミラーリングで多重化すると、システムの構築コスト、運用コストが膨大となってしまう。
【０００６】
一方で、ストレージ装置が多重化されていないシステムでは、ストレージ装置が故障したときにデータを読み出せなくなる。また、ストレージ装置を制御するＲＡＩＤコントローラが故障して、ＲＡＩＤコントローラを再起動している間はストレージ装置にデータを蓄積できなくなる。このため、ストレージ装置に蓄積されたデータに欠損が生じることがあった。
【０００７】
本発明はこのような状況に鑑みて成されたものであり、ストレージ装置の信頼性を高めることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、管理テーブルと、データ配信制御部と、データ蓄積制御部と、を備える。
管理テーブルは、所定の記録容量を有し、データを蓄積する第１ストレージ装置、及び第１ストレージ装置よりも大きい記録容量を有し、データを冗長化して蓄積する第２ストレージ装置がそれぞれ蓄積するデータの管理情報を保持する。
データ配信制御部は、第１ストレージ装置又は第２ストレージ装置から読込んだデータを転送先装置に転送し、管理テーブルに管理情報を記録する。
データ蓄積制御部は、転送元装置から転送されたデータを第１ストレージ装置及び第２ストレージ装置に書込んで、管理テーブルに管理情報を記録する。ここで、データ蓄積制御部は、第２ストレージ装置にデータの書込みが行えない書込不能期間に第１ストレージ装置に書込んだデータを、書込不能期間の経過後に、管理テーブルを参照して第１ストレージ装置から読込んで、第２ストレージ装置に書込む。
【発明の効果】
【０００９】
本発明によれば、第２ストレージ装置にデータの書込みが行えなくても、書込不能期間に第１ストレージ装置に書込んだデータを、書込不能期間の経過後に第１ストレージ装置から読込んで第２ストレージ装置に書込む。このため、第２ストレージ装置にデータ欠損を生じさせず、第２ストレージ装置の信頼性を高めることができる。
上記した以外の課題、構成及び効果は、以下の実施の形態例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施の形態例に係る蓄積配信システムの構成例を示すブロック図である。
【図２】本発明の一実施の形態例に係る計算機のハードウェア構成例を示すブロック図である。
【図３】本発明の一実施の形態例に係るファイル管理テーブルが管理する情報の例を示す。図３Ａは、ファイル管理テーブルの構成例を示し、図３Ｂは、ファイル管理テーブルが管理するファイルの書込み状態と読込み状態の一覧表を示す。
【図４】本発明の一実施の形態例に係る通常時における小規模ストレージとＲＡＩＤ装置の書込ファイルの例を示す説明図である。
【図５】本発明の一実施の形態例に係るＲＡＩＤ装置に障害が発生した時における小規模ストレージとＲＡＩＤ装置の書込ファイルの例を示す説明図である。
【図６】本発明の一実施の形態例に係るデータ蓄積制御部が小規模ストレージとＲＡＩＤ装置の書込ファイルに書込データを書込む処理の例を示すフローチャートである。
【図７】図６のステップＳ２に示したファイルオープン処理の例を示すフローチャートである。
【図８】図６のステップＳ４に示した書込処理の例を示すフローチャートである。
【図９】図６のステップＳ８に示したファイルクローズ処理の例を示すフローチャートである。
【図１０】図９のステップＳ３６に示した書き戻し処理の例を示すフローチャートである。
【図１１】図６のステップＳ９に示した過去ファイル削除処理の例を示すフローチャートである。
【図１２】本発明の一実施の形態例に係るデータ配信制御部が小規模ストレージ又はＲＡＩＤ装置の読込ファイルから読込データを読込む処理の例を示すフローチャートである。
【図１３】図１２のステップＳ６２に示した読込ファイルオープン処理の例を示すフローチャートである。
【図１４】図１２のステップＳ６７に示した読込ファイルクローズ処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施の形態例に係る蓄積配信システムについて、添付図面を参照して説明する。
本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
【００１２】
図１は、蓄積配信システム１の構成例を示す。
蓄積配信システム１は、蓄積配信サーバ２とＲＡＩＤ装置９（第２ストレージ装置の一例）を備える。
蓄積配信サーバ２は、データ蓄積制御部３、ファイル管理テーブル４（管理テーブルの一例）、データ配信制御部５及び小規模ストレージ８（第１ストレージ装置の一例）を備える。
【００１３】
この蓄積配信サーバ２は、標準的なＯＳ（Operating System）を搭載している。蓄積配信サーバ２は、ＯＳのファイルシステム機能を利用して、小規模ストレージ８とＲＡＩＤ装置９に対してそれぞれファイルをオープンし、データを読み書きした後、ファイルをクローズすることが可能である。
【００１４】
ここで、小規模ストレージ８は、所定の記録容量を有している。小規模ストレージ８は、ファイル（１）〜（３）で表される複数のファイル８ａに書込まれたデータを蓄積する。
ＲＡＩＤ装置９は、小規模ストレージ８よりも大きい記録容量を有している。ＲＡＩＤ装置９として、例えば、ＨＤＤ（Hard disk drive）が用いられる。ＲＡＩＤ装置９は、ファイル（ｍ）、（ｎ）、（１）〜（３）で表される複数のファイル９ａに書込まれたデータを冗長化して蓄積する。ＲＡＩＤ装置９は、例えば、ＲＡＩＤ５で構成されている。
【００１５】
以下の説明では、データ蓄積制御部３が転送元装置２０から転送された書込データ２２を、小規模ストレージ８に書込むファイル８ａと、ＲＡＩＤ装置９に書込むファイル９ａとを「書込ファイル」と呼ぶ場合がある。逆に、データ配信制御部５が転送先装置３０に読込データ３２を転送するために、小規模ストレージ８から読込むファイル８ａと、ＲＡＩＤ装置９から読込むファイル９ａを「読込ファイル」と呼ぶ場合がある。そして、書込ファイルと読込ファイルは、同じファイルを指すことがあり、書込データ２２と読込データ３２も同じデータを指すことがある。
【００１６】
データ蓄積制御部３は、書込データ２２を一時的にバッファリングする書込バッファ６を備える。このデータ蓄積制御部３は、転送元装置２０から受信する要求２１に従って、転送元装置２０から転送された書込データ２２を書込バッファ６に一旦バッファリングした後、小規模ストレージ８とＲＡＩＤ装置９の書込ファイルに書込データ２２を同時に書込む制御を行う。そして、データ蓄積制御部３は、書込ファイルの管理情報をファイル管理テーブル４に記録する。
【００１７】
しかし、データ蓄積制御部３は、ＲＡＩＤ装置９に何らかの障害が発生すると、ＲＡＩＤ装置９の書込ファイルに書込データ２２を書込めないことがある。このような場合に、データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルに書込データ２２の書込みが行えない書込不能期間は小規模ストレージ８の書込ファイルに書込データ２２を書込む。そして、データ蓄積制御部３は、障害が復旧した書込不能期間の経過後に、書込不能期間に小規模ストレージ８に書込んだ書込データ２２を、ファイル管理テーブル４を参照して小規模ストレージ８から読込んで、ＲＡＩＤ装置９に書込む。
【００１８】
ファイル管理テーブル４は、小規模ストレージ８が蓄積するファイル８ａと、ＲＡＩＤ装置９が蓄積するファイル９ａの管理情報（後述する図３を参照）を保持している。ファイル管理テーブル４は、データ蓄積制御部３とデータ配信制御部５によって参照又は更新される。
【００１９】
データ配信制御部５は、読込データ３２を一時的にバッファリングする読込バッファ７を備える。そして、データ配信制御部５は、転送先装置３０から受信する要求３１に従って、小規模ストレージ８又はＲＡＩＤ装置９の読込ファイルから読込んだ読込データ３２を読込バッファ７にバッファリングした後、読込データ３２として転送先装置３０に配信する。同時にデータ配信制御部５は、読込ファイルの管理情報をファイル管理テーブル４に記録する。
【００２０】
＜計算機のハードウェア構成例＞
次に、蓄積配信システム１の各装置を構成する計算機１０のハードウェア構成を説明する。
図２は、計算機１０のハードウェア構成例を示すブロック図である。
【００２１】
計算機１０は、いわゆるコンピュータとして用いられるハードウェアであり、蓄積配信サーバ２として用いられる。計算機１０は、バス１４にそれぞれ接続されたＣＰＵ（Central Processing Unit：中央処理装置）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３を備える。さらに、計算機１０は、表示部１５、操作部１６、不揮発性ストレージ１７、ネットワークインタフェース１８とを備える。
【００２２】
ＣＰＵ１１は、本実施の形態例に係る各機能を実現するソフトウェアのプログラムコードをＲＯＭ１２から読み出して実行する。ＲＡＭ１３には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３を用いて、蓄積配信サーバ２内の各部の機能が実現される。
【００２３】
表示部１５は、例えば、液晶ディスプレイモニタであり、計算機１０で行われる処理の結果等をユーザに表示する。操作部１６には、例えば、キーボード、マウス等が用いられ、ユーザが所定の操作入力、指示を行うことが可能である。なお、図１において、表示部１５、操作部１６の記載を省略している。
【００２４】
不揮発性ストレージ１７としては、例えば、ＨＤＤ、ＳＳＤ（Solid State Drive）、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、メモリカード等が用いられる。この不揮発性ストレージ１７には、ＯＳ、各種のパラメータの他に、計算機１０を機能させるためのプログラムが記録されている。この不揮発性ストレージ１７によって、小規模ストレージ８が構成される。小規模ストレージ８では、データ蓄積制御部３及びデータ配信制御部５のアクセス速度を高めるためにＳＳＤが用いられることが望ましい。
【００２５】
ネットワークインタフェース１８には、例えば、ＮＩＣ（Network Interface Card）等が用いられ、端子が接続されたＬＡＮ、専用線、ネットワークのいずれかを介して各種のデータを送受信することが可能である。これにより、蓄積配信サーバ２は、転送元装置２０、転送先装置３０に接続可能となる。
【００２６】
＜ファイル管理テーブルの例＞
図３は、ファイル管理テーブル４が管理する情報の例を示す。図３Ａは、ファイル管理テーブル４の構成例を示し、図３Ｂは、ファイル管理テーブル４が管理するファイルの書込み状態と読込み状態の一覧表を示す。
【００２７】
図３Ａに示すファイル管理テーブル４は、ファイル毎にファイル名を付したレコード（記憶領域）を確保している。そして、ファイル管理テーブル４は、レコード毎に小規模ストレージ用ファイル情報４ａとＲＡＩＤ装置用ファイル情報４ｂを保持している。
【００２８】
小規模ストレージ用ファイル情報４ａは、小規模ストレージ８に蓄積されるファイル８ａの書込状態、書込開始日時、読込状態、格納場所を管理情報として管理する。
ＲＡＩＤ装置用ファイル情報４ｂは、ＲＡＩＤ装置９に蓄積される各ファイル９ａの書込状態、書込開始日時、読込状態、格納場所を管理情報として管理する。
【００２９】
以下の説明で小規模ストレージ用ファイル情報４ａとＲＡＩＤ装置用ファイル情報４ｂを区別しない場合には、「ファイル情報」と総称する場合がある。
また、データ蓄積制御部３が書込ファイルに書込データ２２を書込むことを「ファイル書込」と呼び、データ配信制御部５が読込ファイルから読込データ３２を読込むことを「ファイル読込」と呼ぶ。
【００３０】
図３Ｂに示すファイルの書込状態には、“待ち状態”、“ファイル書込中”、“ファイル書込完了”、“ファイル書込エラー”の４種類がある。また、ファイルの読込状態には、“待ち状態”、“ファイル読込中”、“ファイル読込完了”、“ファイル読込エラー”の４種類がある。
例えば、図３Ａに示されるファイル（１）のレコードは、小規模ストレージ８とＲＡＩＤ装置９の両方に書込みが完了した状態であり、データ配信制御部５によって小規模ストレージ８の読込ファイルから読込データ３２が読込み中であることが分かる。
【００３１】
＜ファイル格納方法及びファイル削除方法＞
次に、データ蓄積制御部３が小規模ストレージ８とＲＡＩＤ装置９にファイルを格納する方法と、小規模ストレージ８からファイルを削除する方法の例について、図４と図５を参照して説明する。
【００３２】
図４は、通常時における小規模ストレージ８とＲＡＩＤ装置９の書込ファイルの例を示す。
図４では小規模ストレージ８とＲＡＩＤ装置９の書込ファイルと、経過時間を示す時間軸が示されている。この時間軸には、データ蓄積制御部３が小規模ストレージ８とＲＡＩＤ装置９の書込ファイルに対して行う書込データ２２の書込位置が白三角で示されている。書込位置は経過時間の時間軸に沿って上から下に進む。
【００３３】
データ蓄積制御部３は、転送元装置２０から転送され、書込バッファ６にバッファリングした書込データ２２を、小規模ストレージ８とＲＡＩＤ装置９の書込ファイルに同時に書き込む。そして、小規模ストレージ８には、ファイル（１）、ファイル（２）、ファイル（３）の順に、データ蓄積制御部３によって書込データ２２が書込まれている。また、ＲＡＩＤ装置９には、ファイル（ｍ）、ファイル（ｎ）、ファイル（１）、ファイル（２）、ファイル（３）の順に、データ蓄積制御部３によって書込データ２２が書込まれている。
【００３４】
上述したように小規模ストレージ８は、ＲＡＩＤ装置９と比べて記録容量が少ない。このため、データ蓄積制御部３は、ファイル管理テーブル４を参照し、小規模ストレージ８の空き容量が、小規模ストレージ８に書込む書込ファイルの容量に対して不足する場合に、書込開始日時が古い順に小規模ストレージ８に蓄積された書込ファイルを削除する。図４では、データ蓄積制御部３が、直近に書込んだファイル（１）〜（２）だけを小規模ストレージ８に残し、二点鎖線で示される古いファイル（ｎ）を削除したことが示されている。
【００３５】
図５は、ＲＡＩＤ装置９に障害が発生した時における小規模ストレージ８とＲＡＩＤ装置９の書込ファイルの例を示す。
ここでは、データ蓄積制御部３が小規模ストレージ８とＲＡＩＤ装置９にファイル（３）を同時に書込んでいる途中に、ＲＡＩＤ装置９で障害が発生し、ＲＡＩＤ装置９が書込不能になったことを想定する。
【００３６】
このとき、データ蓄積制御部３は、小規模ストレージ８のファイル（３）だけに書込データ２２を書込み、ＲＡＩＤ装置９のファイル（３）に対する書込データ２２の書込みを停止する。そして、データ蓄積制御部３は、ファイル（３）に対する書込データ２２の書込みを終了した後、ファイル（４）に対する書込データ２２の書込みを開始する時点で、再びＲＡＩＤ装置９にも書込データ２２の書込みを試みる。しかし、ＲＡＩＤ装置９に発生した障害が継続していれば、データ蓄積制御部３は、小規模ストレージ８のファイル（４）だけに書込データ２２を書込む。
【００３７】
ＲＡＩＤ装置９が障害から復旧すると、データ蓄積制御部３は、小規模ストレージ８とＲＡＩＤ装置９のファイル（５）に書込データ２２を同時に書込む。そして、データ蓄積制御部３は、小規模ストレージ８のファイル（３）、（４）に書込まれた書込データ２２を読出して、ＲＡＩＤ装置９のファイル（３）、（４）に書込データ２２を書込む。以降は、図４に示した処理と同じ内容となる。
【００３８】
＜データ蓄積制御部の処理の例＞
次に、データ蓄積制御部３の処理の例について、図６〜図１１を参照して説明する。
図６は、データ蓄積制御部３が小規模ストレージ８とＲＡＩＤ装置９の書込ファイルに書込データ２２を書込む処理の例を示すフローチャートである。なお、データ蓄積制御部３が書込バッファ６に書込データ２２をバッファリングする処理の説明は省略する。
【００３９】
始めに、データ蓄積制御部３は、ファイル書込開始要求が含まれる要求２１を待つ（Ｓ１）。そして、データ蓄積制御部３は、転送元装置２０から受信した要求２１からファイル書込開始要求を取り出すと、小規模ストレージ８とＲＡＩＤ装置９の書込ファイルをオープンするファイルオープン処理を行う（Ｓ２）。データ蓄積制御部３は、書込ファイルをオープンした後、転送元装置２０から書込データ２２を受信する（Ｓ３）。そして、データ蓄積制御部３は、小規模ストレージ８とＲＡＩＤ装置９の書込ファイルに書込データ２２を書込む書込み処理を行う（Ｓ４）。
【００４０】
次に、データ蓄積制御部３は、書込処理の結果を取得し、小規模ストレージ８とＲＡＩＤ装置９の両方に対して書込エラーが発生したかどうかを判定する（Ｓ５）。データ蓄積制御部３は、両方に書込エラーが発生したと判定すると、ファイルオープン処理で用意したファイル管理テーブル４の登録用レコードに小規模ストレージ８の書込状態として“ファイル書込みエラー”を記録する書込エラー応答を行う（Ｓ６）。そして、データ蓄積制御部３は、ステップＳ１に遷移して次のファイル書込開始要求を待つ。
【００４１】
データ蓄積制御部３は、ステップＳ５にて小規模ストレージ８とＲＡＩＤ装置９の両方又は片方に対するファイル書込みが成功したと判定すると、受信した書込データ２２が最終データであるかどうかを確認する（Ｓ７）。データ蓄積制御部３は、書込データ２２が最終データでないことを確認すると、再びステップＳ３に遷移して、次に受信する書込データ２２の書込処理（Ｓ４）を行う。
【００４２】
データ蓄積制御部３は、書込データ２２が最終データであることを確認すると、書込ファイルをクローズするファイルクローズ処理を行う（Ｓ８）。その後、データ蓄積制御部３は、小規模ストレージ８から一定時間を経過した過去ファイルを削除する過去ファイル削除処理を行い（Ｓ９）、ステップＳ１に遷移して次のファイル書込開始要求を待つ。
【００４３】
図７は、図６のステップＳ２に示したファイルオープン処理の例を示すフローチャートである。
このファイルオープン処理において、データ蓄積制御部３は、小規模ストレージ８の書込ファイルをオープンし（Ｓ１１）、書込ファイルのオープンが成功したかどうかを判定する（Ｓ１２）。
【００４４】
データ蓄積制御部３は、小規模ストレージ８の書込ファイルのオープンに失敗したと判定すると、オープンに失敗した書込ファイルのファイル情報を管理するための登録用レコードをファイル管理テーブル４に用意する。そして、データ蓄積制御部３は、この登録用レコードに小規模ストレージ８の書込状態として“ファイル書込エラー”をセットする（Ｓ１３）。
【００４５】
一方、データ蓄積制御部３は、小規模ストレージ８の書込ファイルのオープンに成功したと判定すると、オープンに成功した書込ファイルのファイル情報を管理するための登録用レコードをファイル管理テーブル４に用意する。そして、データ蓄積制御部３は、この登録用レコードに小規模ストレージ８の書込ファイルに対する書込データ２２の書込開始日時、書込ファイルの格納場所をセットし、書込状態に“ファイル書込中”をセットする（Ｓ１４）。
【００４６】
次に、データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルをオープンする（Ｓ１５）。そして、データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルのオープンが成功したかどうかを判定する（Ｓ１６）。
【００４７】
データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルのオープンに失敗したと判定すると、ファイル管理テーブル４に用意された登録用レコードにＲＡＩＤ装置９の書込状態として“ファイル書込エラー”をセットする（Ｓ１７）。
【００４８】
ＲＡＩＤ装置９の書込ファイルのオープンに成功した場合は、ファイル管理テーブル４に用意された登録用レコードにＲＡＩＤ装置９の書込ファイルの格納場所をセットし、書込状態に“ファイル書込中”をセットする（Ｓ１８）。ステップＳ１７、Ｓ１８で情報がセットされる登録用レコードはステップＳ１３、Ｓ１４でデータ蓄積制御部３が用意したものである。
【００４９】
図８は、図６のステップＳ４に示した書込処理の例を示すフローチャートである。
この書込処理において、データ蓄積制御部３は、ファイル管理テーブル４を参照し、書込ファイルの小規模ストレージ用ファイル情報４ａとＲＡＩＤ装置用ファイル情報４ｂを読み出す（Ｓ２１）。
【００５０】
次に、データ蓄積制御部３は、読出した小規模ストレージ用ファイル情報４ａより、小規模ストレージ８の書込ファイルの書込状態が“ファイル書込中”であるかどうかを判定する（Ｓ２２）。そして、書込状態が“ファイル書込中”でなければ、データ蓄積制御部３はステップＳ２６に遷移する。
【００５１】
しかし、書込状態が“ファイル書込中”であれば、データ蓄積制御部３は、小規模ストレージ８の書込ファイルに書込データ２２を書込む（Ｓ２３）。なお、データ蓄積制御部３は、ＲＡＩＤ装置９にデータの書込みが行えない書込不能期間においても、小規模ストレージ８の書込ファイルの書込状態が“ファイル書込中”であれば、小規模ストレージ８の書込ファイルに書込データ２２を書込むことが可能である。ステップＳ２３の後、データ蓄積制御部３は、小規模ストレージ８へのファイル書込が成功したかどうかを判定する（Ｓ２４）。
【００５２】
データ蓄積制御部３は、小規模ストレージ８へのファイル書込が失敗したと判定すると、小規模ストレージ用ファイル情報４ａの書込状態に“ファイル書込エラー”をセットする（Ｓ２５）。一方、データ蓄積制御部３は、小規模ストレージ８へのファイル書込が成功したと判定すると、ステップＳ２６に遷移する。
【００５３】
次に、データ蓄積制御部３は、ステップＳ２１で読出したＲＡＩＤ装置用ファイル情報４ｂよりＲＡＩＤ装置９の書込ファイルの書込状態が“ファイル書込中”であるかどうかを判定する（Ｓ２６）。書込状態が“ファイル書込中”でなければ、データ蓄積制御部３は書込処理を終了する。
【００５４】
しかし、書込状態が“ファイル書込中”であれば、データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルに書込データ２２を書込む（Ｓ２７）。そして、データ蓄積制御部３は、ＲＡＩＤ装置９へのファイル書込が成功したかどうかを判定する（Ｓ２８）。
【００５５】
データ蓄積制御部３は、ＲＡＩＤ装置９へのファイル書込が失敗したと判定すると、ＲＡＩＤ装置用ファイル情報４ｂの書込状態に“ファイル書込エラー”をセットする（Ｓ２９）。一方、データ蓄積制御部３は、ＲＡＩＤ装置９へのファイル書込が成功したと判定すると、書込処理を終了する。
【００５６】
図９は、図６のステップＳ８に示したファイルクローズ処理の例を示すフローチャートである。
このファイルクローズ処理において、データ蓄積制御部３は、小規模ストレージ８の書込ファイルに書込エラーが発生したか否か、つまり小規模ストレージ用ファイル情報４ａの書込状態が“ファイル書込エラー”であるかどうかを判定する（Ｓ３１）。データ蓄積制御部３は、書込状態が“ファイル書込エラー”であると判定すると、ステップＳ３４に遷移する。
【００５７】
一方、データ蓄積制御部３は、書込状態が“ファイル書込エラー”以外であると判定すると、小規模ストレージ８の書込ファイルをクローズする（Ｓ３２）。そして、データ蓄積制御部３は、小規模ストレージ用ファイル情報４ａの書込状態に“ファイル書込完了”をセットする（Ｓ３３）。
【００５８】
次に、データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルに書込エラーが発生し、ＲＡＩＤ装置用ファイル情報４ｂの書込状態が“ファイル書込エラー”であるかどうかを判定する（Ｓ３４）。データ蓄積制御部３は、書込状態が“ファイル書込エラー”であると判定すると、小規模ストレージ８へのファイル書込が正常に完了しているかどうかを判定する（Ｓ３５）。
【００５９】
ステップＳ３５にて小規模ストレージ８へのファイル書込が正常に完了していないと判定されると、データ蓄積制御部３は、ファイルクローズ処理を終了する。一方、データ蓄積制御部３は、小規模ストレージ８へのファイル書込が正常に完了していると判定すると、書き戻し処理（Ｓ３６）を行う。この書き戻し処理は、データ蓄積制御部３が、ＲＡＩＤ装置９に書込みが行えない書込不能期間に小規模ストレージ８に書込んだファイルを、ＲＡＩＤ装置９への書込みを再開したときに小規模ストレージ８から読込み、ＲＡＩＤ装置９に書込む処理である。データ蓄積制御部３は、書き戻し処理の終了後、ファイルクローズ処理を終了する。
【００６０】
ステップＳ３４にてＲＡＩＤ装置用ファイル情報４ｂの書込状態が“ファイル書込エラー”以外であると判定されると、データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルをクローズする（Ｓ３７）。そして、データ蓄積制御部３は、ＲＡＩＤ装置用ファイル情報４ｂの書込状態に“ファイル書込完了”をセットし（Ｓ３８）、ファイルクローズ処理を終了する。
【００６１】
図１０は、図９のステップＳ３６に示した書き戻し処理の例を示すフローチャートである。
この書き戻し処理において、データ蓄積制御部３は、ファイル管理テーブル４の全レコードをサーチして、ＲＡＩＤ装置用ファイル情報４ｂを読出す（Ｓ４１）。書き戻し処理が行われるファイルは、小規模ストレージ用ファイル情報４ａの書込状態が“ファイル書込完了”であり、かつ、ＲＡＩＤ装置用ファイル情報４ｂの書込状態が“ファイル書込エラー”となるファイルである。
【００６２】
次に、データ蓄積制御部３は、ＲＡＩＤ装置９へのファイル書込が可能であるかどうかを判定する（Ｓ４２）。データ蓄積制御部３は、ＲＡＩＤ装置９へのファイル書込ができないと判定すると、リトライ回数が規定値以下であるかどうかを判定する（Ｓ４３）。このリトライ回数は、データ蓄積制御部３が、ＲＡＩＤ装置９にファイル書込みができなかった場合に、再びＲＡＩＤ装置９にファイル書込を試みる回数である。
【００６３】
データ蓄積制御部３は、リトライ回数が規定値以下であると判定すると、一定時間スリープした後（Ｓ４５）、ステップＳ４２に遷移して、再びＲＡＩＤ装置９への書込みが可能かどうかを判定する。
【００６４】
ステップＳ４３にてリトライ回数が規定値を超えたと判定されると、ファイル管理テーブルのＲＡＩＤ装置用ファイル情報４ｂの書込状態に“ファイル書込エラー”をセットし（Ｓ４５）、データ蓄積制御部３は書き戻し処理を終了する。
【００６５】
ステップＳ４２にてＲＡＩＤ装置９へのファイル書込が可能であると判定されると、データ蓄積制御部３は、ＲＡＩＤ装置用ファイル情報４ｂの書込状態に“ファイル書込中”をセットする（Ｓ４６）。そして、データ蓄積制御部３は、小規模ストレージ８から読み出した書込データ２２をＲＡＩＤ装置９の書込ファイルに書込む（Ｓ４７）。
【００６６】
その後、データ蓄積制御部３は、ＲＡＩＤ装置９へのファイル書込みが完了すると、ＲＡＩＤ装置用ファイル情報４ｂの書込状態に“ファイル書込完了”をセットする（Ｓ４８）。そして、データ蓄積制御部３は、ＲＡＩＤ装置９の書込ファイルをクローズして（Ｓ４９）、書き戻し処理を終了する。
【００６７】
図１１は、図６のステップＳ９に示した過去ファイル削除処理の例を示すフローチャートである。
この過去ファイル削除処理において、データ蓄積制御部３は、小規模ストレージ８の蓄積済み容量が、予め設定した閾値を超えたかどうかを判定する（Ｓ５１）。データ蓄積制御部３は、小規模ストレージ８の蓄積済み容量が閾値以下であると判定すると、過去ファイル削除処理を終了する。
【００６８】
一方、データ蓄積制御部３は、小規模ストレージ８の蓄積済み容量が閾値を超えたと判定すると、小規模ストレージ８に書込まれて一定期間が経過した書込ファイルのレコードを小規模ストレージ用ファイル情報４ａから取得する（Ｓ５２）。このとき、データ蓄積制御部３は、ファイル管理テーブル４の全レコードをチェックし、書込開始時刻が最も古い書込ファイルの小規模ストレージ用ファイル情報４ａをファイル管理テーブル４から取得している。
【００６９】
次に、データ蓄積制御部３は、小規模ストレージ用ファイル情報４ａのレコードに示される読込状態が“ファイル読込中”であるかどうかを判定する（Ｓ５３）。データ蓄積制御部３は、小規模ストレージ８から削除する対象となる書込ファイルの読込状態が“ファイル読込中”であると判定すると、この書込ファイルはデータ配信制御部５によって読込まれている途中であるため、削除できない。この場合、データ蓄積制御部３は過去ファイル削除処理を終了する。そして、データ蓄積制御部３は、削除する対象となる書込ファイルとは異なる書込ファイルを小規模ストレージ８から削除する。このとき、小規模ストレージ８から削除される書込ファイルは、例えば、書込開始時刻が２番目に古い書込ファイルである。
【００７０】
ステップＳ５３にて読込状態が“ファイル読込中”でないと判定されると、データ蓄積制御部３は、小規模ストレージ８から該当する書込ファイルを削除する（Ｓ５４）。そして、データ蓄積制御部３は、削除した書込ファイルの小規模ストレージ用ファイル情報４ａとＲＡＩＤ装置用ファイル情報４ｂのレコードをファイル管理テーブル４から削除して（Ｓ５５）、過去ファイル削除処理を終了する。
【００７１】
＜データ配信制御部の処理の例＞
次に、データ配信制御部５の処理の例について、図１２〜図１４を参照して説明する。
図１２は、データ配信制御部５が小規模ストレージ８又はＲＡＩＤ装置９の読込ファイルから読込データ３２を読込む処理の例を示すフローチャートである。なお、データ配信制御部５が小規模ストレージ８とＲＡＩＤ装置９の読込ファイルから読み込んだ読込データ３２を読込バッファ７にバッファリングする処理の説明は省略する。
【００７２】
始めに、データ配信制御部５は、小規模ストレージ８又はＲＡＩＤ装置９の読込ファイルから読込データ３２を読み込むために要求３１に含まれるファイル読込開始要求を待つ（Ｓ６１）。データ配信制御部５は、転送先装置３０から要求３１を受信し、ファイル読込開始要求を読出すと、読込ファイルのオープン処理を行う（Ｓ６２）。
【００７３】
次に、データ配信制御部５は、転送先装置３０からの要求３１に含まれる読込ファイルの読込要求を待つ（Ｓ６３）。次に、データ配信制御部５は、要求３１から読込要求を取得すると、小規模ストレージ８又はＲＡＩＤ装置９の読込ファイルをオープンし、この読込ファイルから読込要求された読込データ３２を読み込む（Ｓ６４）。なお、データ配信制御部５は、ＲＡＩＤ装置９の書込不能期間であれば、小規模ストレージ８の読込ファイルから読込データ３２を読込む。そして、データ配信制御部５は、読込データ３２を転送先装置３０に転送する読込データ応答を行う（Ｓ６５）。
【００７４】
その後、データ配信制御部５は、読込データ応答を行った読込データ３２が読込ファイル内の最終データであるかどうかを判定する（Ｓ６６）。データ配信制御部５は、読込データ応答を行った読込データ３２が読込ファイル内の最終データでないと判定すると、ステップＳ６３に遷移して、再び読込ファイルから読込データ３２を読み込む。
【００７５】
一方、データ配信制御部５は、読込データ応答を行った読込データ３２が読込ファイル内の最終データであると判定すると、読込ファイルクローズ処理を行う（Ｓ６７）。その後、データ配信制御部５は、ステップＳ６１に遷移して、再びファイル読込開始要求を待つ。
【００７６】
図１３は、図１２のステップＳ６２に示した読込ファイルオープン処理の例を示すフローチャートである。
この読込ファイルオープン処理において、データ配信制御部５は、転送先装置３０から読込開始要求によって指定された読込ファイルの小規模ストレージ用ファイル情報４ａとＲＡＩＤ装置用ファイル情報４ｂをファイル管理テーブル４から取得する（Ｓ７１）。そして、データ配信制御部５は、指定された読込ファイルが小規模ストレージ８に存在するかどうかを判定する（Ｓ７２）。
【００７７】
ここで、小規模ストレージ８は、ＲＡＩＤ装置９よりもデータ蓄積制御部３が書込ファイルに書込データ２２を書込むアクセス速度、及びデータ配信制御部５が読込ファイルから読込データ３２を読込むアクセス速度が速い。このため、データ配信制御部５は、小規模ストレージ８及びＲＡＩＤ装置９に同じデータの読込ファイルが蓄積されていれば、小規模ストレージ８の読込ファイルから優先して読込データ３２を読込んで転送先装置３０に転送する。
【００７８】
ステップＳ７２にて指定された読込ファイルが小規模ストレージ８に存在しないと判定されると、データ配信制御部５は、ＲＡＩＤ装置９に読込ファイルが存在するかどうかを判定する（Ｓ７３）。データ配信制御部５は、ＲＡＩＤ装置９にも読込ファイルが存在しないと判定すると、転送先装置３０に対し読込ファイルの転送不可である旨を通知して、読込ファイルオープン処理を終了する。
【００７９】
ステップＳ７３にて指定された読込ファイルがＲＡＩＤ装置９に存在すると判定されると、データ配信制御部５は、読込対象としてＲＡＩＤ装置９の読込ファイルをオープンする（Ｓ７４）。そして、データ配信制御部５は、ＲＡＩＤ装置用ファイル情報４ｂの書込状態に“ファイル読込中”をセットして（Ｓ７５）、読込ファイルオープン処理を終了する。
【００８０】
ステップＳ７２にて指定された読込ファイルが小規模ストレージ８に存在すると判定されると、データ配信制御部５は、読込対象として小規模ストレージ８の読込ファイルをオープンする（Ｓ７６）。そして、データ配信制御部５は、小規模ストレージ用ファイル情報４ａの書込状態に“ファイル読込中”をセットして（Ｓ７７）、読込ファイルオープン処理を終了する。
【００８１】
図１４は、図１２のステップＳ６７に示した読込ファイルクローズ処理の例を示すフローチャートである。
この読込ファイルクローズ処理において、データ配信制御部５は、ファイル管理テーブル４を参照し（Ｓ８１）、読込ファイルの小規模ストレージ用ファイル情報４ａを取得する。そして、データ配信制御部５は、小規模ストレージ８から読込ファイルを読込んだかどうかを判定する（Ｓ８２）。
【００８２】
データ配信制御部５は、小規模ストレージ８から読込ファイルを読込んでいないと判定すると、ＲＡＩＤ装置用ファイル情報４ｂの読込状態に“ファイル読込完了”をセットし（Ｓ８３）、ＲＡＩＤ装置９の読込ファイルをクローズする（Ｓ８５）。
【００８３】
一方、データ配信制御部５は、小規模ストレージ８から読込ファイルを読込んだと判定すると、小規模ストレージ用ファイル情報４ａの読込状態に“ファイル読込完了”をセットし（Ｓ８４）、小規模ストレージ８の読込ファイルをクローズする（Ｓ８５）。
【００８４】
以上説明した一実施の形態例に係る蓄積配信システム１によれば、ＲＡＩＤ装置９の全体をミラーリング構成とするのではなく、ＲＡＩＤ装置９の他に小規模ストレージ８を設けている。そして、データ蓄積制御部３が小規模ストレージ８とＲＡＩＤ装置９に直近に書込んだファイルだけを二重化している。この蓄積配信システム１は、従来のようにＲＡＩＤ装置９と同じ規模のストレージ装置をミラーリング構成ではないので、蓄積配信システム１の構築コスト、運用コストを下げることができる。このため、蓄積配信システム１が大規模になるほど、システム全体のコストパフォーマンスを上げることができる。
【００８５】
また、ファイル管理テーブル４には、小規模ストレージ８に蓄積されるファイル８ａのファイル情報と、ＲＡＩＤ装置９に蓄積されるファイル９ａのファイル情報が管理されている。そして、ＲＡＩＤ装置９に障害が発生している間、データ蓄積制御部３は、小規模ストレージ８の書込ファイルに書込データ２２を書込んでいる。このため、データ蓄積制御部３は、ファイル管理テーブル４を参照することで、ＲＡＩＤ装置９へのファイル書込が停止した期間にＲＡＩＤ装置９では欠損していた書込ファイルが小規模ストレージ８に存在することが分かる。また、データ蓄積制御部３は、ＲＡＩＤ装置９の障害が復旧すると、障害発生期間に小規模ストレージ８に書込まれた書込ファイルの書込データ２２を小規模ストレージ８から読込んだ後、ＲＡＩＤ装置９に書き戻す。これによりＲＡＩＤ装置９のデータに欠損が生じず、ＲＡＩＤ装置９の信頼性を高めることができる。
【００８６】
また、ＲＡＩＤ装置９に一時的に障害が発生しても、データ配信制御部５は、小規模ストレージ８に蓄積されている読込ファイルを優先的に読み出す。これにより蓄積配信システム１を停止することなく転送先装置３０への読込データ３２の配信を継続することができる。
【００８７】
また、ＲＡＩＤ装置９の一時的な障害であれば、ＲＡＩＤ装置９に蓄積済みのファイル９ａはＲＡＩＤ５構成などにより冗長化されているので破損しない。このため、ＲＡＩＤ装置９が復旧した後に、データ配信制御部５は、ＲＡＩＤ装置９のファイル９ａから読込データ３２を読み出し可能である。
【００８８】
［変形例］
なお、ＲＡＩＤ装置９に障害が発生したときだけでなく、ＲＡＩＤ装置９のメンテナンスや瞬間停電によってもＲＡＩＤ装置９のファイル９ａに書込データ２２を書き込めないことがある。この場合であっても、ＲＡＩＤ装置９のファイル９ａに書込データ２２を書き込めない間、データ蓄積制御部３は、小規模ストレージ８にファイル８ａを蓄積しておき、ＲＡＩＤ装置９が復旧した後、小規模ストレージ８からファイル８ａを読み出してＲＡＩＤ装置９に書き戻すことができる。
【００８９】
また、上述した一実施の形態例では、小規模ストレージ８のファイル８ａを削除する方法として、ファイル管理テーブル４に書込開始日時を登録しておき、書込開始日時が最も古いファイル８ａから削除している。しかし、ファイル管理テーブル４にファイル８ａの参照回数を登録しておくことにより、最も参照されていないファイル８ａから削除することも考えられる。
【００９０】
また、上述した一実施の形態例では小規模ストレージ８とＲＡＩＤ装置９への処理をシーケンシャル処理しているが、並列処理により高速化することも可能である。
【００９１】
また、上述した一実施の形態例では、小規模ストレージ８とＲＡＩＤ装置９への書込及び読込単位をファイル毎としたが、例えば、ブロック毎であってもよい。
【００９２】
さらに、上述した一実施の形態例では小規模ストレージ８を蓄積配信サーバ２に内蔵する場合を示したが、小規模ストレージ８を蓄積配信サーバ２の外部に設ける構成としてもよい。
【００９３】
また、本発明は上述した実施の形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した実施の形態例は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることは可能であり、更にはある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９４】
１…蓄積配信システム、２…蓄積配信サーバ、３…データ蓄積制御部、４…ファイル管理テーブル、４ａ…小規模ストレージ用ファイル情報、４ｂ…ＲＡＩＤ装置用ファイル情報、５…データ配信制御部、８…小規模ストレージ、９…ＲＡＩＤ装置
【図１】
2016057811.tif 000003
【図２】
2016057811.tif 000004
【図３】
2016057811.tif 000005
【図４】
2016057811.tif 000006
【図５】
2016057811.tif 000007
【図６】
2016057811.tif 000008
【図７】
2016057811.tif 000009
【図８】
2016057811.tif 000010
【図９】
2016057811.tif 000011
【図１０】
2016057811.tif 000012
【図１１】
2016057811.tif 000013
【図１２】
2016057811.tif 000014
【図１３】
2016057811.tif 000015
【図１４】
2016057811.tif 000016