(57)【要約】 【課題】汎用のソリッドステートドライブを用いたデータの読み出しに遅延が生じることのないサーバコンピュータおよびドライブ制御装置を提供する。【解決手段】ドライブ制御装置は、監視部、データ記憶部、制御部を備える。前記監視部は要求に対してデータを読出しおよび書込み可能なソリッドステートドライブの動作状態を監視し前記ソリッドステートドライブがビジー状態か否かを検出する。前記データ記憶部は前記ソリッドステートドライブへ書込むべきデータまたは前記ソリッドステートドライブから読出し要求元へ転送すべきデータを一時保持可能である。前記制御部は前記要求が書込み要求であり、前記監視部により前記ソリッドステートドライブがビジー状態であることが検出された場合、前記書込み対象のデータを前記データ記憶部に書込み、前記ソリッドステートドライブがビジー状態でなくなった後、前記データ記憶部のデータを前記ソリッドステートドライブへ書き込む。【選択図】図１
2013257801.tif 000002
【特許請求の範囲】
【請求項１】
要求に対してデータを読出しおよび書込み可能なソリッドステートドライブの動作状態を監視し前記ソリッドステートドライブがビジー状態か否かを検出する監視部と、
前記ソリッドステートドライブへ書込むべき書込み対象のデータまたは前記ソリッドステートドライブから読出し要求元へ転送すべき読出し対象のデータを一時保持可能なデータ記憶部と、
前記要求が書込み要求であり、前記監視部により前記ソリッドステートドライブがビジー状態であることが検出された場合、前記書込み対象のデータを前記データ記憶部に書込み、前記ソリッドステートドライブがビジー状態でなくなった後、前記データ記憶部のデータを前記ソリッドステートドライブへ書き込む制御部と
を具備するドライブ制御装置。
【請求項２】
前記制御部は、
前記監視部により前記ソリッドステートドライブがビジー状態でないことが検出された場合、前記書込み対象のデータを、前記データ記憶部を経由せずに前記ソリッドステートドライブに直接書込む請求項１記載のドライブ制御装置。
【請求項３】
前記制御部は、
前記要求が前記読出し要求であり、前記監視部により前記ソリッドステートドライブがビジー状態であることが検出された場合、事前に前記ソリッドステートドライブから読み出し前記データ記憶部に保持しておいた前記読出し対象のデータを前記データ記憶部から読み出して要求元へ転送する請求項１記載のドライブ制御装置。
【請求項４】
要求に対してデータを読出しおよび書込み可能な複数のソリッドステートドライブのうち一つのソリッドステートドライブを書込み優先、他のソリッドステートドライブを読出し優先とし、前記複数のソリッドステートドライブの動作状態を監視し各のソリッドステートドライブがビジー状態か否かを検出する監視部と、
前記複数のソリッドステートドライブへ書込むべき書込み対象のデータまたは前記複数のソリッドステートドライブのうちの一つのソリッドステートドライブから読出し要求元へ転送すべき読出し対象のデータを一時保持可能なデータ記憶部と、
前記要求が書込み要求であり、前記監視部により前記読出し優先のソリッドステートドライブがビジー状態であることが検出された場合、書込み対象のデータを書込み優先のソリッドステートドライブと前記データ記憶部にそれぞれ書込み、前記読出し優先のソリッドステートドライブがビジー状態でなくなった後、前記データ記憶部のデータを前記読出し優先のソリッドステートドライブへ書き込む制御部と
を具備するドライブ制御装置。
【請求項５】
前記制御部は、
前記監視部により前記読出し優先のソリッドステートドライブがビジー状態でないことが検出された場合、前記書込み対象のデータを、前記データ記憶部を経由せずに前記ソリッドステートドライブに直接書込む請求項４記載のドライブ制御装置。
【請求項６】
前記制御部は、
前記要求が前記読出し要求であり、前記監視部により前記読出し優先のソリッドステートドライブがビジー状態であることが検出された場合、前記読出し対象のデータを前記書込み優先のソリッドステートドライブから読み出す請求項４記載のドライブ制御装置。
【請求項７】
要求に対してデータを読出しおよび書込み可能なソリッドステートドライブと、
前記ソリッドステートドライブの動作状態を監視し前記ソリッドステートドライブがビジー状態か否かを検出する監視部と、
前記ソリッドステートドライブへ書込むべき書込み対象のデータまたは前記ソリッドステートドライブから読出し要求元へ転送すべき読出し対象のデータを一時保持可能なデータ記憶部と、
前記要求が書込み要求であり、前記監視部により前記ソリッドステートドライブがビジー状態であることが検出された場合、書込み対象のデータを前記データ記憶部に書込み、前記ソリッドステートドライブがビジー状態でなくなった後、前記データ記憶部のデータを前記ソリッドステートドライブへ書き込む制御部と
を具備するサーバコンピュータ。
【請求項８】
前記制御部は、
前記監視部により前記ソリッドステートドライブがビジー状態でないことが検出された場合、前記書込み対象のデータを、前記データ記憶部を経由せずに前記ソリッドステートドライブに直接書込む請求項７記載のサーバコンピュータ。
【請求項９】
前記制御部は、
前記要求が前記読出し要求であり、前記監視部により前記ソリッドステートドライブがビジー状態であることが検出された場合、事前に前記ソリッドステートドライブから読み出し前記データ記憶部に保持しておいた前記読出し対象のデータを前記データ記憶部から読み出して要求元へ転送する請求項７記載のサーバコンピュータ。
【請求項１０】
要求に対してデータを読出しおよび書込み可能な複数のソリッドステートドライブと、
前記複数のソリッドステートドライブのうち一つのソリッドステートドライブを書込み優先、他のソリッドステートドライブを読出し優先とし、前記複数のソリッドステートドライブの動作状態を監視し各のソリッドステートドライブがビジー状態か否かを検出する監視部と、
前記複数のソリッドステートドライブへ書込むべき書込み対象のデータまたは前記複数のソリッドステートドライブのうちの一つのソリッドステートドライブから読出し要求元へ転送すべき読出し対象のデータを一時保持可能なデータ記憶部と、
前記要求が書込み要求であり、前記監視部により前記読出し優先のソリッドステートドライブがビジー状態であることが検出された場合、書込み対象のデータを書込み優先のソリッドステートドライブと前記データ記憶部にそれぞれ書込み、前記読出し優先のソリッドステートドライブがビジー状態でなくなった後、前記データ記憶部のデータを前記読出し優先のソリッドステートドライブへ書き込む制御部と
を具備するサーバコンピュータ。
【請求項１１】
前記制御部は、
前記監視部により前記読出し優先のソリッドステートドライブがビジー状態でないことが検出された場合、前記書込み対象のデータを、前記データ記憶部を経由せずに前記ソリッドステートドライブに直接書込む請求項１０記載のサーバコンピュータ。
【請求項１２】
前記制御部は、
前記要求が前記読出し要求であり、前記監視部により前記読出し優先のソリッドステートドライブがビジー状態であることが検出された場合、前記読出し対象のデータを前記書込み優先のソリッドステートドライブから読み出す請求項１０記載のサーバコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、例えば映像や音楽などのコンテンツを利用者に配信するためのサーバコンピュータおよびドライブ制御装置に関する。
【背景技術】
【０００２】
近年、ネットワークを利用して映像や音楽などのコンテンツを配信するサービスが既に始まっている。
【０００３】
この種のサービスには、利用者の要求に対してコンテンツをリアルタイムで配信すること、いわゆるリアルタイム性が要求されるため、ストレージに蓄積されたコンテンツを配信するサーバコンピュータにも、コンテンツ（映像データ）をストレージに読み書きする際に高速かつ安定した性能が求められる。
【０００４】
高速かつ安定という面で、最近では、ストレージに、フラッシュメモリを使用したソリッドステートドライブ（以下「ＳＳＤ」と称す）が利用されることがある。
【０００５】
ＳＳＤはＨＤＤと比較してデータの平均アクセス速度が速く、低消費電力で動作する特徴を持っている。その一方で、書込みや消去を繰り返して長期間使用すると、ＳＳＤに初めてデータを書き込むときと比べて、書込み速度が遅くなることが知られている。
【０００６】
これは、ＳＳＤの内部処理としてウエアレベリング（書き込みの平準化）やガベージコレクション（不要データ領域の開放）といったアルゴリズムが実行されるからである。
【０００７】
映像や音楽などの連続したデータをＳＳＤから読み出す際に、別のデータの書込みが同時に行われていると、安定して読み出せない場合がある。
【０００８】
すなわち、あるデータの書込みに時間を要した場合には、その間、別のデータの読み出しが待たされることがある。これは、映像や音楽などの連続したデータを取り出す場合には好ましくない。この影響を軽減するためにＳＳＤ内部にキャッシュメモリを持たせ、見かけ上、安定してデータを読み書きさせる方法が既にある。
【０００９】
しかし、大量かつ連続したデータを読み出している最中に、書込みを実行させようとした場合には、より大きなキャッシュメモリをＳＳＤの内部に用意、つまりＳＳＤをカスタム化しなければならず、コストの面で好ましくなく、できれば汎用のＳＳＤを使用したい。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１２−２２５０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ストレージデバイスに汎用のＳＳＤを使用する場合、ＳＳＤの内部のコントローラがウェアレベリングやガベージコレクション処理を自律的に行うため、ＳＳＤ固有の遅延問題が必ず発生することになる。
【００１２】
さらに、ストレージデバイス内での一定時間内の読み書きの遅延は障害として扱われることはないため、冗長データで補完されることもない。これは、映像配信などのように、途切れなくデータを取り出したい場合において極めて不都合である。
【００１３】
本発明が解決しようとする課題は、汎用のソリッドステートドライブを用いたデータの読み出しに遅延が生じることのないサーバコンピュータおよびドライブ制御装置を提供することにある。
【課題を解決するための手段】
【００１４】
実施形態のドライブ制御装置は、監視部、データ記憶部、制御部を備える。前記監視部は要求に対してデータを読出しおよび書込み可能なソリッドステートドライブの動作状態を監視し前記ソリッドステートドライブがビジー状態か否かを検出する。前記データ記憶部は前記ソリッドステートドライブへ書込むべきデータまたは前記ソリッドステートドライブから読出し要求元へ転送すべきデータを一時保持可能である。前記制御部は前記要求が書込み要求であり、前記監視部により前記ソリッドステートドライブがビジー状態であることが検出された場合、前記書込み対象のデータを前記データ記憶部に書込み、前記ソリッドステートドライブがビジー状態でなくなった後、前記データ記憶部のデータを前記ソリッドステートドライブへ書き込む。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態のコンテンツサーバの構成を示す図である。
【図２】第１実施形態のコンテンツサーバの書込み動作を示すフローチャートである。
【図３】第１実施形態のコンテンツサーバの読出し動作を示すフローチャートである。
【図４】第２実施形態のコンテンツサーバの構成を示す図である。
【図５】第２実施形態のコンテンツサーバの書込み動作を示すフローチャートである。
【図６】第２実施形態のコンテンツサーバの読出し動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、実施形態を詳細に説明する。
（第１実施形態）  
図１は第１実施形態の映像配信用のコンテンツサーバの構成を示す図である。
【００１７】
この第１実施形態のコンテンツサーバ１は、ハードディスク装置、メモリ、ＣＰＵ、外部通信インターフェース等を備えたコンピュータである。
【００１８】
図１に示すように、このコンテンツサーバ１は、機能的には、ＳＳＤ２、オペレーティングシステム１０（以下「ＯＳ１０」と称す）、制御部としてのリードライト制御部１３、動作状態記憶部としてのＳＳＤ情報記憶部１４、データ記憶部１５、ＳＳＤ状態監視部１６等を備える。
【００１９】
ＯＳ１０は、ハードディスクにインストールされている基本ソフトウェアであり、ＳＳＤ２に対して保存されているデータの読出し要求および書込み要求等の要求を発生する。
【００２０】
ＯＳ１０は、例えばネットワークに接続されたクライアント端末（要求元）のユーザからの指示に従い、ＳＳＤ２に対してデータの読出し要求を行い、ＳＳＤ２から得られたデータを、ネットワークを通じて要求元へ配信することで、このサーバコンピュータの映像配信機能を実現する。
【００２１】
ＳＳＤ２は、フラッシュメモリを有しており、ＯＳ１０からの要求に対して、予めフラッシュメモリに保存されているデータを読出しおよびフラッシュメモリに対してデータを書込み可能である。ここでデータとは、例えば映像配信サービスなどに用いる映画などの映像コンテンツである。この他、データは音楽などのコンテンツであってもよい。
【００２２】
ＳＳＤ情報記憶部１４はＳＳＤ２の動作状態を設定可能である。動作状態とは、例えばライト中、リード中、内部処理中、待機中などであり、例えばライト中、リード中、内部処理中は、この間は外部からＳＳＤ２にアクセスできないためビジー状態である。
【００２３】
ＳＳＤ状態監視部１６は、ＳＳＤ２を常に監視しＳＳＤ２の動作状態（ビジー状態か否か）を検出してＳＳＤ情報記憶部１４に設定する。すなわちＳＳＤ状態監視部１６は、要求に対してデータを読出しおよび書込み可能なＳＳＤ２の動作状態を監視しＳＳＤ２がビジー状態か否かを検出する監視部として機能する。
【００２４】
データ記憶部１５はＳＳＤ２へ書込むべきデータまたはＳＳＤ２から読出し要求元へ転送すべきデータを一時保持可能である。
【００２５】
リードライト制御部１３は、ＳＳＤ２に対してＯＳ１０からの書込み要求または読み出し要求が生じた場合、ＳＳＤ情報記憶部１４のＳＳＤ２の動作状態を確認し、書込み要求であれば、ＳＳＤ２がビジー状態の場合、書込み対象のデータをデータ記憶部１５に書込み、ＳＳＤ２の動作状態がビジー状態でなくなった後、データ記憶部１５のデータをＳＳＤ２へ書き込む。
【００２６】
またリードライト制御部１３は、ＳＳＤ２がビジー状態でないことが検出された場合、書込み対象のデータを、データ記憶部１５を経由せずにＳＳＤ２に直接書込む。
【００２７】
さらに、リードライト制御部１３は、要求が読出し要求であり、ＳＳＤ情報記憶部１４のＳＳＤ２の動作状態を確認した結果、ＳＳＤ状態監視部１６によりＳＳＤ２がビジー状態であることが検出されていた場合、事前にＳＳＤ２から読出しデータ記憶部１５に保持しておいた読出し対象のデータをデータ記憶部１５から読出して要求元へ転送する。なおこの場合はＯＳ１０から一つ先のデータの読出し要求が事前にあることが前提である。
【００２８】
続いて、図２乃至図４のフローチャートを参照してこの第１実施形態のコンテンツサーバの動作を説明する。動作を説明するにあたり、データの書込み要求が発生した場合の第１のケースと、データの読出し要求が発生した場合の第２のケースと、第１および第２のケース以外の第３のケースとに分けて説明する。
【００２９】
＜第１のケース：データの書込み要求が発生した場合＞  
ＯＳ１０からリードライト制御部１３に、ＳＳＤ２に対する要求があり、その要求が例えばデータの書込み要求であった場合（図２のステップＳ１０１のＹｅｓ）、リードライト制御部１３は、ＳＳＤ情報記憶部１４のＳＳＤ２の動作状態の設定内容を確認し、ＳＳＤ２の動作状態をチェック（確認）する（ステップＳ１０２）。
【００３０】
このチェック（確認）の結果、ＳＳＤ２の動作状態がビジー状態でなければ（ステップＳ１０２のＮｏ）、リードライト制御部１３は、書込み対象のデータをＳＳＤ２に直接書込む（ステップＳ１０３）。
【００３１】
そして、リードライト制御部１３は、書込み対象のデータを書き込んだ結果を確認し、書込み対象のデータの書込みが失敗、つまり成功しなかった場合（ステップＳ１０４のＮｏ）、書込みエラーをＯＳ１０に通知する（ステップＳ１０５）。
【００３２】
また書込み対象のデータの書込みが成功した場合（ステップＳ１０４のＹｅｓ）、リードライト制御部１３は、今回の要求に関する処理を終了する。
【００３３】
一方、チェック（確認）の結果、ＳＳＤ２の動作状態がビジー状態であれば（ステップＳ１０２のＹｅｓ）、リードライト制御部１３は、書込み対象のデータをデータ記憶部１５に書込む（ステップＳ１０６）。
【００３４】
そして、リードライト制御部１３は、書込み対象のデータを書き込んだ結果を確認し、書込み対象のデータの書込みが失敗、つまり成功しなかった場合（ステップＳ１０７のＮｏ）、書込みエラーをＯＳ１０に通知する（ステップＳ１０５）。
【００３５】
また書込み対象のデータの書込みが成功した場合（ステップＳ１０７のＹｅｓ）、リードライト制御部１３は、ＳＳＤ情報記憶部１４のＳＳＤ２の動作状態の設定内容を確認し、ＳＳＤ２の動作状態をチェック（確認）する（ステップＳ１０８）。
【００３６】
このチェック（確認）の結果、ＳＳＤ２の動作状態がビジー状態でなければ（ステップＳ１０８のＮｏ）、リードライト制御部１３は、データ記憶部１５に保持されている書込み対象のデータをＳＳＤ２へ書込む（ステップＳ１０９）。
【００３７】
また、チェック（確認）の結果、ＳＳＤ２の動作状態がビジー状態であれば（ステップＳ１０８のＹｅｓ）、リードライト制御部１３は、ＳＳＤ２がビジー状態でなくなるのを待つ。
【００３８】
そして、ＳＳＤ２へデータを書込んだ結果、データの書込みが成功した場合（ステップＳ１１０のＹｅｓ）、リードライト制御部１３は、データ記憶部１５に保持されている書込み済みのデータを削除する（ステップＳ１１１）。
【００３９】
データを削除した後、リードライト制御部１３は、データの削除が成功したか否かを確認し（ステップＳ１１２）、データの削除が成功すると（ステップＳ１１２のＹｅｓ）、今回の要求に関する処理を終了する。
【００４０】
＜第２のケース：データの読出し要求が発生した場合＞  
この場合、リードライト制御部１３は、先のデータの読出し要求（仮要求）をＯＳ１０から予め受けておき、読出し要求予定のデータ（以下「先読みデータ」と称す）をＳＳＤ２から読出し、データ記憶部１５に保持（記憶）しておくものとする（図３のステップＳ１２１）。
【００４１】
そして、ＯＳ１０からリードライト制御部１３に、ＳＳＤ２に対する要求があり、その要求が例えばデータの読出し要求であった場合（ステップＳ１２２のＹｅｓ）、リードライト制御部１３は、予め読出しておいた先読みデータと同一のデータの要求であるのかをチェックする（確認する）（ステップ１２３）。
【００４２】
チェック（確認）の結果、読出し要求の対象のデータがデータ記憶部１５に保持された先読みデータと一致する場合（ステップＳ１２３のＹｅｓ）、リードライト制御部１３は、読出し要求の対象のデータをデータ記憶部１５から読出してＯＳ１０へ転送する（ステップＳ１２４）。
【００４３】
そして、リードライト制御部１３は、データ記憶部１５において転送済みとなった先読みデータをデータ記憶部１５から削除する（ステップ１２５）。
【００４４】
一方、チェック（確認）の結果、読出し要求の対象のデータがデータ記憶部１５に保持された先読みデータと一致しなければ（ステップＳ１２３のＮｏ）、リードライト制御部１３は、ＳＳＤ２の動作状態をチェックした後、読出し要求の対象のデータをＳＳＤ２から直接読出す（ステップＳ１２６）。
【００４５】
そして、リードライト制御部１３は、書出したデータが正常に読出せたか否かの読出し確認を行い（ステップＳ１２７）、データの読出しが成功した場合は（ステップＳ１２７のＹｅｓ）、今回の要求に関する処理を終了する。
【００４６】
一方、データの読出しが失敗、つまり成功しなかった場合（ステップＳ１２７のＮｏ）、リードライト制御部１３は、読出し要求に対するエラーをＯＳ１０に通知する（ステップＳ１２８）。このときに動作結果をログとして記憶または出力してもよい。
【００４７】
＜第３ケース：第１ケース，第２ケース以外の状態の場合＞  
ＯＳ１０からＳＳＤ２に対してデータの読出し要求または書込みの要求がないタイミングで、リードライト制御部１３は、データ記憶部１５内にＳＳＤへの書込み対象のデータがあるか否かをチェックする。
【００４８】
このチェックの結果、データ記憶部１５内にＳＳＤへの書込み対象のデータが保持されている場合、リードライト制御部１３は、そのデータを読み出してＳＳＤ２へ書込む。
【００４９】
そしてデータの書込みに成功した場合は、データ記憶部１５の書込み済みのデータを削除する。
【００５０】
なおデータ記憶部１５からのデータのＳＳＤ２への書込みに失敗した場合や書込み済みデータの削除に失敗した場合は、その旨を示すエラーをリードライト制御部１３に通知する。また、このときに動作結果をログ出力してもよい。
【００５１】
このようにこの第１実施形態によれば、汎用のＳＳＤ２を用いたコンテンツの読み出しに遅延が生じることのないコンテンツサーバ１およびドライブ制御装置としてのリードライト制御部１３を提供することができる。
【００５２】
（第２実施形態）  
一般的なビジネス用途のサーバにおけるストレージは、データの保持性能を第１として冗長化されていることが多い。ストレージの冗長化の一例としてＲＡＩＤ１（ミラーリング）がある。
【００５３】
これは、複数のストレージに同じデータを書き込んでおき、必要に応じていずれかのストレージからデータを読み出す方法である。ＲＡＩＤ１の実現方法として、ＲＡＩＤコントローラをサーバに実装し、ＯＳからの読み書きの命令を各ストレージに分配する方法がある。
【００５４】
ＲＡＩＤ１で動作するＲＡＩＤコントローラは、冗長化された複数のストレージに対して同じ動作を行うことでデータの同一性を保持している。すなわち、冗長化されたそれぞれのストレージの内容は対称である。
【００５５】
またＲＡＩＤコントローラは、しばしばキャッシュメモリを搭載することがあり、ストレージへの読み書きをバッファリングする機能を有するものがある。このＲＡＩＤコントローラのキャッシュによりストレージに対する読み書き時のバースト性を平準化することができる。
【００５６】
しかし、このキャッシュからストレージへ書込みデータを転送する際には、ストレージデバイス内で読み書きが輻輳する可能性がある。データ書込みのときにキャッシュの空き容量が少なくなると、ＲＡＩＤコントローラ１１はストレージに対して書込みを優先させるか、またはオペレーティングシステムからの書込み要求を待たせることになる。
【００５７】
このとき、ＲＡＩＤコントローラのキャッシュのメモリ容量を大きくすることが考えられるが、キャッシュに大きなメモリ容量を持たせても、キャッシュからストレージデバイスへの書込みを実行する際に、ストレージデバイス内で発生した読み書きの輻輳による読出し遅延は避けられない。
【００５８】
特にストレージデバイスに汎用のＳＳＤを使用した場合、ＳＳＤの内部のコントローラがウェアレベリングやガベージコレクション処理を自立的に行うため、ＳＳＤ固有の遅延問題が必ず発生することになる。
【００５９】
さらに、ストレージデバイス内での一定時間内の読み書きの遅延は障害として扱われることはないため、冗長データで補完されることもない。これは、映像配信などのように、途切れなくデータを取り出したい場合において極めて不都合である。
【００６０】
そこで、この第２実施形態では、ＲＡＩＤ１での実現方法について説明する。  
図４は第２実施形態の映像配信用のコンテンツサーバの構成を示す図である。
【００６１】
この第２実施形態のコンテンツサーバ１は、ハードディスク装置、メモリ、ＣＰＵ、外部通信インターフェース等を備えたコンピュータである。
【００６２】
図４に示すように、このコンテンツサーバ１は、機能的には、第１ＳＳＤ３、第２ＳＳＤ４、ＯＳ１０、ＲＡＩＤコントローラ１１、データ記憶部１５等を備える。
【００６３】
データ記憶部１５は、ＲＡＩＤコントローラ１１にインターフェースを介して着脱自在に接続されたフラッシュメモリなどである。つまりデータ記憶部１５は、所望に応じて交換可能に設けられており、保持しておくデータの容量を変更することができる。
【００６４】
ＲＡＩＤコントローラ１１は、キャッシュメモリ１２、制御部としてのリードライト制御部１３、動作状態記憶部としてのＳＳＤ情報記憶部１４、ＳＳＤ状態監視部１６を有する。
【００６５】
ＯＳ１０は、ハードディスクにインストールされている基本ソフトウェアであり、ＳＳＤに対して保存されているデータの読出し要求および書込み要求等の要求を発生する。
【００６６】
ＯＳ１０は、第１実施形態と同様の機能、つまり例えばネットワークに接続されたクライアント端末（要求元）のユーザからの指示に従い、ＳＳＤに対してデータの読出し要求を行い、ＳＳＤから得られたデータを、ネットワークを通じて要求元へ配信することで、このコンテンツサーバ１の映像配信機能を実現する。
【００６７】
キャッシュメモリ１２は、いずれかのＳＳＤから読み出した配信用のデータを所望のタイミングで送信するためのデータ一時保持用のメモリである。
【００６８】
第１ＳＳＤ３および第２ＳＳＤ4は、フラッシュメモリを有しており、ＯＳ１０からの要求に対して、予めフラッシュメモリに保存されているデータを読出しおよびフラッシュメモリに対してデータを書込み可能である。
【００６９】
ＳＳＤ情報記憶部１４には、予め書込み優先のＳＳＤと読出し優先のＳＳＤのＩＤが設定されている。この例では、例えば第１ＳＳＤ３が書込み優先のＳＳＤ、第２ＳＳＤ４が読出し優先のＳＳＤとして設定されているものとする。
【００７０】
またＳＳＤ情報記憶部１４は、第１ＳＳＤ３，第２ＳＳＤ４それぞれの動作状態を設定可能である。ＳＳＤ情報記憶部１４には、例えばＳＳＤ毎にライト中、リード中、内部処理中、待機中などといった状態フラグが設定される。例えばライト中、リード中、内部処理中は、この処理期間中、外部からＳＳＤにアクセスできないため、ビジー状態である。
【００７１】
ＳＳＤ状態監視部１６は、第１ＳＳＤ３，第２ＳＳＤ４を常に監視し第１ＳＳＤ３，第２ＳＳＤ４の動作状態（ビジー状態か否か）を検出してＳＳＤ情報記憶部１４に設定する。
【００７２】
データ記憶部１５は第１ＳＳＤ３，第２ＳＳＤ４へ書込むべきデータまたは第１ＳＳＤ３，第２ＳＳＤ４から読出し要求元へ転送すべきデータを一時保持可能である。
【００７３】
リードライト制御部１３は、第１ＳＳＤ３，第２ＳＳＤ４に対してＯＳ１０からの書込み要求または読み出し要求が生じた場合、ＳＳＤ情報記憶部１４の各第１ＳＳＤ３，第２ＳＳＤ４の動作状態を確認し、第１ＳＳＤ３，第２ＳＳＤ４が共にビジー状態でない場合は、要求が書込み要求であれば、書込み対象のデータを第１ＳＳＤ３と第２ＳＳＤ４にほぼ同時に書込む。
【００７４】
また、要求が書込み要求であり、ＳＳＤ情報記憶部１４の各第１ＳＳＤ３，第２ＳＳＤ４の動作状態を確認した結果、一方のＳＳＤ（第１ＳＳＤ３または第２ＳＳＤ４）がビジー状態である場合、リードライト制御部１３は、書込み対象のデータを、ビジー状態ではないＳＳＤとデータ記憶部１５に書込み、そのときビジー状態であったＳＳＤがビジー状態でなくなった後、データ記憶部１５のデータを当該ＳＳＤへ書き込む。
【００７５】
この例では、第１ＳＳＤ３が書込み優先ボリュームとして設定されているため、書込み要求が生じたときにビジー状態となっいることは少なく、第２ＳＳＤ４がビジー状態であるときに、書込み対象のデータが第１ＳＳＤ３とデータ記憶部１５に書込まれる。
【００７６】
その後、第２ＳＳＤ４がビジー状態でなくなったときに、リードライト制御部１３によりデータ記憶部１５のデータが第２ＳＳＤ４に書込まれる。
【００７７】
また、リードライト制御部１３は、要求が読出し要求である場合に、ＳＳＤ情報記憶部１４の第１ＳＳＤ３と第２ＳＳＤ４の動作状態を確認した結果、いずれのＳＳＤもビジー状態でなければ、読出し優先ボリュームとして設定されている第２ＳＳＤ４から該当データを読出して要求元へ転送する。
【００７８】
なお、リードライト制御部１３は、要求が読出し要求である場合に、ＳＳＤ情報記憶部１４の第１ＳＳＤ３と第２ＳＳＤ４の動作状態を確認した結果、第１ＳＳＤ３がビジー状態ではなく第２ＳＳＤ４がビジー状態であれば、読出し優先ボリュームではない第１ＳＳＤ３から該当データを読出して要求元へ転送する。
【００７９】
続いて、図５、図６のフローチャートを参照してこの第２実施形態のコンテンツサーバの動作を説明する。動作を説明するにあたり、データの書込み要求が発生した場合の第１のケースと、データの読出し要求が発生した場合の第２のケースと、第１および第２のケース以外の第３のケースとに分けて説明する。
【００８０】
＜第１のケース：データの書込み要求が発生した場合＞  
ＯＳ１０からリードライト制御部１３に、ＳＳＤに対する要求があり、その要求が例えばデータの書込み要求であった場合（図５のステップＳ２０１のＹｅｓ）、リードライト制御部１３は、ＳＳＤ情報記憶部１４の第１ＳＳＤ３，第２ＳＳＤ４の動作状態の設定内容を確認し、第１ＳＳＤ３，第２ＳＳＤ４の動作状態をチェック（確認）する（ステップＳ２０２）。
【００８１】
このチェック（確認）の結果、第２ＳＳＤ４の動作状態がビジー状態でなければ（ステップＳ２０２のＮｏ）、リードライト制御部１３は、書込み対象のデータを第１ＳＳＤ３および第２ＳＳＤ４に直接書込む（ステップＳ２０３）。
【００８２】
そして、リードライト制御部１３は、書込み対象のデータを書き込んだ結果を確認し（ステップＳ２０４）、書込み対象のデータの書込みが成功した場合（ステップＳ２０４のＹｅｓ）、その時点で処理を終了する。
【００８３】
また書込み結果を確認した結果、書込み対象のデータの書込みが失敗、つまり成功しなかった場合（ステップＳ２０４のＮｏ）、書込み要求に対するエラーをＯＳ１０に通知する（ステップＳ２０５）。
【００８４】
一方、上記チェック（確認）の結果、第２ＳＳＤ４の動作状態がビジー状態であれば（ステップＳ２０２のＹｅｓ）、リードライト制御部１３は、書込み対象のデータを第１ＳＳＤ３とデータ記憶部１５に書込む（ステップＳ２０６）。
【００８５】
そして、リードライト制御部１３は、書込み対象のデータを書き込んだ結果を確認し（ステップＳ２０７）、書込み対象のデータの書込みが成功した場合（ステップＳ２０７のＹｅｓ）、ＳＳＤ情報記憶部１４の第２ＳＳＤ４の動作状態の設定内容を参照し、第２ＳＳＤ４の動作状態をチェック（確認）する（ステップＳ２０８）。
【００８６】
このチェック（確認）の結果、第２ＳＳＤ４の動作状態がビジー状態であれば（ステップ２０８のＹｅｓ）、リードライト制御部１３は、第２ＳＳＤ４がビジー状態でなくなるのを待つ。
【００８７】
またチェック（確認）の結果、第２ＳＳＤ４の動作状態がビジー状態でなければ（ステップＳ２０８のＮｏ）、リードライト制御部１３は、データ記憶部１５に保持されている書込み対象のデータを第２ＳＳＤ４へ書込む（ステップＳ２０９）。
【００８８】
そして、リードライト制御部１３は、第２ＳＳＤ４へデータを書込んだ結果を確認し（ステップＳ２１０）、データの書込みが成功した場合（ステップＳ２１０のＹｅｓ）、データ記憶部１５に保持されている書込み対象のデータを削除する（ステップＳ２１１）。
【００８９】
データを削除した後、リードライト制御部１３は、データの削除が成功したか否かを確認し（ステップＳ２１２）、データの削除が成功すると（ステップＳ２１２のＹｅｓ）、今回の要求に関する処理を終了する。
【００９０】
一方、ステップＳ２１０の書込み確認の結果、書込み対象のデータの書込みが失敗、つまり成功しなかった場合（ステップＳ２１０のＮｏ）またはデータの削除確認の結果、データの削除が成功しなかった場合（ステップＳ２１２のＮｏ）、リードライト制御部１３は、書込み要求に対してＲＡＩＤ構成エラーをＯＳ１０に通知する（ステップＳ２１３）。
【００９１】
＜第２のケース：データの読出し要求が発生した場合＞  
ＯＳ１０からリードライト制御部１３に、第１ＳＳＤ３，第２ＳＳＤ４に対する要求があり、その要求が例えばデータの読出し要求であった場合（ステップＳ２２１のＹｅｓ）、リードライト制御部１３は、ＳＳＤ情報記憶部１４の第１ＳＳＤ３，第２ＳＳＤ４の動作状態の設定内容を参照し、第１ＳＳＤ３，第２ＳＳＤ４の動作状態をチェック（確認）する（ステップＳ２２２）。
【００９２】
このチェック（確認）の結果、読出し優先ボリュームである第２ＳＳＤ４がビジー状態でなければ（ステップＳ２２２のＮｏ）、リードライト制御部１３は、読出し対象のデータを読出し優先ボリュームの第２ＳＳＤ４から直接読出す（ステップＳ２２３）。
【００９３】
また、チェック（確認）の結果、第２ＳＳＤ４がビジー状態であれば（ステップＳ２２２のＹｅｓ）、リードライト制御部１３は、読出し対象のデータを、書込み優先ボリュームである第１ＳＳＤ３から読出し（ステップＳ２２４）、キャッシュメモリ１２に一時保持する。
【００９４】
そして、リードライト制御部１３は、データが正常に読み出せたか否かの読出し確認を行い（ステップＳ２２５）、データの読出しが成功した場合（ステップＳ２２５のＹｅｓ）、読出したデータをキャッシュメモリ１２からＯＳ１１へ転送する（ステップＳ２２６）。
【００９５】
一方、第１ＳＳＤ３からデータの読出しが失敗、つまり成功しなかった場合（ステップＳ２２５のＮｏ）、リードライト制御部１３は、第２ＳＳＤ４の動作状態をチェック（確認）する（ステップ２２７）。
【００９６】
このチェック（確認）の結果、読出し優先ボリュームである第２ＳＳＤ４がビジーでなかった場合（ステップＳ２２７のＮｏ）、リードライト制御部１３は、読出し対象のデータを読出し優先ボリュームである第２ＳＳＤ４から直接読出す（ステップＳ２２８）。
【００９７】
また、チェック（確認）の結果、第２ＳＳＤ４がビジー状態であれば（ステップ２２７のＹｅｓ）、リードライト制御部１３は、第２ＳＳＤ４がビジー状態でなくなるまで、一定時間待つ（ステップＳ２２９）
【００９８】
そして、第２ＳＳＤ４のビジー状態の検知時間が予め設定した時間（しきい値）以内、つまり一定時間を超えなければ（ステップＳ２２９のＹｅｓ）、リードライト制御部１３は、再び第２ＳＳＤ４の動作状態をチェック（確認）する（ステップＳ２２７）。
【００９９】
一方、ステップＳ２２９のビジー時間の監視の結果、予め設定された時間以上ビジー状態が継続した場合（ステップＳ２２９のＮｏ）、リードライト制御部１３は、読出し要求に対するエラーをＯＳ１０に通知する（ステップＳ２３０）。このときに動作結果をログとして記憶または出力してもよい。
【０１００】
＜第３ケース：第１ケース，第２ケース以外の状態の場合＞  
ＯＳ１０からＳＳＤに対してデータの読出し要求または書込みの要求がないタイミングで、リードライト制御部１３は、データ記憶部１５内にデータがあるか否かをチェックする。
【０１０１】
このチェックの結果、データ記憶部１５内にデータが保持されている場合、リードライト制御部１３は、そのデータを読み出して第２ＳＳＤ４へ書込む。
【０１０２】
そしてデータの書込みに成功した場合は、データ記憶部１５の書込み済みのデータを削除する。
【０１０３】
なおデータ記憶部１５からのデータの第２ＳＳＤ４への書込みに失敗した場合や書込み済みデータの削除に失敗した場合は、その旨を示すエラーを報知する。また、このときに動作結果をログとしてハードディスク装置の所定の記憶領域またはメモリに記憶または外部へ出力してもよい。
【０１０４】
このようにこの第２実施形態によれば、コンテンツの読み出しに遅延が生じることがないという第１実施形態と同様の効果に加えて、複数の汎用のＳＳＤ（第１ＳＳＤ３，第２ＳＳＤ４）を用いたＲＡＩＤ１でのコンテンツの書込みおよび読出し環境を構築することができる。
【０１０５】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１０６】
また上記実施形態に示した各構成要素を、コンピュータのハードディスク装置のストレージにインストールしたプログラムで実現してもよく、また上記プログラムを、コンピュータ読取可能な電子媒体：electronic mediaに記憶しておき、プログラムを電子媒体からコンピュータに読み取らせることで本発明の機能をコンピュータが実現するようにしてもよい。電子媒体としては、例えばＣＤ−ＲＯＭ等の記録媒体やフラッシュメモリ、リムーバブルメディア：Removable media等が含まれる。さらに、ネットワークを介して接続した異なるコンピュータに構成要素を分散して記憶し、各構成要素を機能させたコンピュータ間で通信することで実現してもよい。
【符号の説明】
【０１０７】
１…コンテンツサーバ、２…ＳＳＤ、３…第１ＳＳＤ、４…第２ＳＳＤ、１０…オペレーティングシステム（ＯＳ）、１１…ＲＡＩＤコントローラ、１２…キャッシュメモリ、１３…リードライト制御部、１４…ＳＳＤ情報記憶部、１５…データ記憶部、１６…ＳＳＤ状態監視部。
【図１】
2013257801.tif 000003
【図２】
2013257801.tif 000004
【図３】
2013257801.tif 000005
【図４】
2013257801.tif 000006
【図５】
2013257801.tif 000007
【図６】
2013257801.tif 000008