(57)【要約】【課題】ディスクアレイを構成する複数のＨＤＤの空き記憶容量が互いに異なる場合であっても読み書き性能を向上させることができるデータ記憶装置及び方法を提供する。【解決手段】書き込み対象のコンテンツのビットレートを判別し、複数の記憶部のうちから当該ビットレートに応じた個数のＨＤＤを被選択ＨＤＤとして選択して、当該コンテンツを分割して得られた複数のデータ片を当該被選択ＨＤＤにのみ書き込む。【選択図】図１
2013196116.tif 000002
【特許請求の範囲】
【請求項１】
複数のＨＤＤからなるディスクアレイと、書込み要求に応じてコンテンツを分割して得られた複数のデータ片を前記ディスクアレイに書き込む書込み手段と、を含むデータ記憶装置であって、
前記コンテンツのビットレートを判別するビットレート判別手段と、
前記複数のＨＤＤのうちから当該判別されたビットレートに応じた個数のＨＤＤを被選択ＨＤＤとして選択するＨＤＤ選択手段と、を含み、
前記書込み手段は、前記被選択ＨＤＤにのみ前記データ片を書き込むことを特徴とするデータ記憶装置。
【請求項２】
前記ＨＤＤ選択手段は、前記ビットレートが高いほど前記被選択ＨＤＤの個数を多くすることを特徴とする請求項１に記載のデータ記憶装置。
【請求項３】
前記ＨＤＤ選択手段は、前記ＨＤＤのうちから空き記憶領域の大きいものを優先的に前記被選択ＨＤＤとすることを特徴とする請求項２に記載のデータ記憶装置。
【請求項４】
前記書込み手段による書き込みに先立って、前記被選択ＨＤＤの各々の最大連続記憶領域のうちの最小のものよりも前記データ片のサイズが大きい場合には前記被選択ＨＤＤの個数よりも多い個数のＨＤＤを新たな被選択ＨＤＤとして再選択する再選択手段を含むことを特徴とする請求項３に記載のデータ記憶装置。
【請求項５】
書込み要求に応じてコンテンツを分割して得られた複数のデータ片を複数のＨＤＤからなるディスクアレイに書き込む記憶方法であって、
前記コンテンツのビットレートを判別するビットレート判別ステップと、
前記複数のＨＤＤのうちから当該判別されたビットレートに応じた個数のＨＤＤを被選択ＨＤＤとして選択するＨＤＤ選択するＨＤＤ選択ステップと、
前記被選択ＨＤＤにのみ前記データ片を書き込む書込みステップと、を含むことを特徴とするデータ記憶方法。
【請求項６】
前記ＨＤＤ選択ステップにおいては、前記ビットレートが高いほど前記被選択ＨＤＤの個数を多くすることを特徴とする請求項５に記載のデータ記憶方法。
【請求項７】
前記ＨＤＤ選択ステップにおいては、前記被選択ＨＤＤのうちから空き記憶領域の大きいものを優先的に選択することを特徴とする請求項６に記載のデータ記憶方法。
【請求項８】
前記被選択ＨＤＤの各々の最大連続記憶領域のうちの最小のものよりも前記データ片のサイズが大きい場合には前記被選択ＨＤＤの個数よりも多い個数のＨＤＤを新たな被選択ＨＤＤとして再選択する再選択ステップを前記ＨＤＤ選択ステップと前記書込みステップとの間に含むことを特徴とする請求項７に記載のデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ方式のデータ記憶装置及び方法に関する。
【背景技術】
【０００２】
従来より、データ読み書き性能の向上等のために複数台のＨＤＤ（Hard disk drive：ハードディスクドライブ）を組み合わせて仮想的な１台のハードディスクとして運用する例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）アレイ等のディスクアレイ方式の記憶装置が知られている。
【０００３】
ＲＡＩＤアレイ方式においては、記憶されるべきデータは一定サイズに分割され、ＲＡＩＤアレイを構成する例えばハードディスク等のＨＤＤの各々に分散記憶される。分割データの記憶方法についてはこれまで様々な提案がなされている。分割データを分散記憶する代表的な記憶方法としては、複数のＨＤＤに番号を割り当てその番号順にデータを記憶することにより、各ＨＤＤに対する読み書き処理を分散させる記憶方法が知られている。かかる記憶方法によれば、各ＨＤＤの記憶容量が同一である場合には各ＨＤＤに記憶されるデータの総量が均一になる。一方、各ＨＤＤの記憶容量が同一でない場合には、ＨＤＤの各々は、記憶容量が最も小さい１つのＨＤＤの記憶容量の分しか記憶できない。
【０００４】
近年、このような問題を解決すべく、記憶容量の異なる複数のＨＤＤからなるＲＡＩＤアレイへの分散記憶方法も提案されている。例えば、特許文献１には、データの書き込み要求があっても直ぐには空き領域の割り当てを行なわず、記憶すべきデータを数ブロック分バッファリングした後にまとめてデータを記憶する記憶装置の数及び記憶領域を決定する方法が開示されている。当該方法によれば、不連続な記憶領域にデータが記憶される確立を小さくし、且つパリティの計算回数を減らして、各ＨＤＤの空き領域を無駄なく使用できるとしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２９６０３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されている方法の場合、結果的にデータが格納されるＨＤＤの数が減らされてしまい、空き記憶容量を有効活用できなくなってしまうことが考えられる。故に、ＲＡＩＤアレイの本来の目的に反して読み書き性能が低下してしまうという問題がある。読み書き性能が低いことは、例えばビデオ・オン・デマンド（ＶＯＤ：Video On Demand）等のシステムにおいて高い読出し速度が要求される高ビットレートの動画データを扱う場合に致命的な欠点となる。
【０００７】
本発明は上記した如き問題点に鑑みてなされたものであって、ディスクアレイを構成する複数のＨＤＤの空き記憶容量が互いに異なる場合であっても読み書き性能を向上させることができるデータ記憶装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によるデータ記憶装置は、複数のＨＤＤからなるディスクアレイと、書込み要求に応じてコンテンツを分割して得られた複数のデータ片を前記ディスクアレイに書き込む書込み手段と、を含むデータ記憶装置であって、前記コンテンツのビットレートを判別するビットレート判別手段と、前記複数のＨＤＤのうちから当該判別されたビットレートに応じた個数のＨＤＤを被選択ＨＤＤとして選択するＨＤＤ選択手段と、を含み、前記書込み手段は、前記被選択ＨＤＤにのみ前記データ片を書き込むことを特徴とする。
【０００９】
本発明によるデータ記憶方法は、書込み要求に応じてコンテンツを分割して得られた複数のデータ片を複数のＨＤＤからなるディスクアレイに書き込む記憶方法であって、前記コンテンツのビットレートを判別するビットレート判別ステップと、前記複数のＨＤＤのうちから当該判別されたビットレートに応じた個数のＨＤＤを被選択ＨＤＤとして選択するＨＤＤ選択するＨＤＤ選択ステップと、前記被選択ＨＤＤにのみ前記データ片を書き込む書込みステップと、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明によるデータ記憶装置及び方法によれば、ディスクアレイを構成する複数のＨＤＤの空き記憶容量が互いに異なる場合であっても読み書き性能を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例であるデータ記憶装置の構成を示すブロック図である。
【図２】図１の書込み部によるコンテンツデータ書込み処理ルーチンを示すフローチャートである。
【図３】ビットレート毎に図１のＨＤＤの被選択最小個数が対応付けられた最小個数テーブルを示す図である。
【図４】書込み部による分割回数算出処理サブルーチンを示すフローチャートである。
【図５】書込み部によるコンテンツデータ書込み処理時における被選択ＨＤＤ及び被記憶ブロックの決定工程を示す図である。
【図６】図５（ｃ）に対応する書込み部によるコンテンツデータ書込み処理時における被選択ＨＤＤ及び被記憶ブロックの決定工程を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施例について添付の図面を参照しつつ詳細に説明する。
【００１３】
図１には、本発明の実施例であるデータ記憶装置１０（以下、単に記憶装置１０と称する）の構成が示されている。
【００１４】
ディスクアレイ１１は、複数のＨＤＤ１１−１〜１１−ｄ（ｄは２以上の整数）からなる。ディスクアレイ１１は例えばＲＡＩＤアレイである。ディスクアレイ１１は、例えば映像や音楽等のコンテンツを記憶することができる。
【００１５】
読出し部１２は、通信網４１を介して到来した、視聴端末２０−１〜２０−ｍ（ｍは２以上の整数）のいずれか１つからの送信要求に応じて、当該送信要求に対応するコンテンツをディスクアレイ１１から読出して、これを当該送信要求を発した１つの視聴端末に送信する。読出し部１２は、送信すべきコンテンツをディスクアレイ１１から読み出す際には、後述のアロケーションテーブル１４を参照して、当該コンテンツを構成する各データ片がディスクアレイ１１のどの記憶位置に記憶されているかを把握する。この記憶位置は、一般的にブロックと称される物理的な位置である。以下、コンテンツのデータ片が記憶されている記憶位置を記憶済みブロックと称し、データ片が記憶されていない記憶位置を空きブロックと称する。読出し部１２は、記憶済みブロックからコンテンツのデータ片を順次読み出して送信する。
【００１６】
書込み部１３は、管理端末３０−１〜３０−ｎ（ｎは２以上の整数）のいずれか１つから書込み要求と共に送信されたコンテンツを通信網４１を介して受信し、当該コンテンツをディスクアレイ１１に記憶させる。コンテンツデータの大きさが、連続する空きブロックの総容量よりも大きい場合には、書込み部１３は、コンテンツを複数のデータ片に分割して、そのデータ片をディスクアレイ１１上の空きブロックに書き込む。また、書込み部１３は、管理端末３０−１〜３０−ｎのいずれか１つからの削除要求に応じて、当該削除要求に対応するコンテンツをディスクアレイ１１から削除することもできる。書込み部１３は、コンテンツを記憶又は削除する度に、後述のアロケーションテーブル１４及びフリーテーブル１５の内容を更新する。
【００１７】
アロケーションテーブル１４は、少なくとも１つのコンテンツのＩＤすなわち識別子と、ディスクアレイ１１上の記憶済みブロックとの対応を示すテーブルである。すなわち、あるコンテンツを構成するデータ片がディスクアレイ１１上のどの記憶ブロックに記憶されているかが示されている。読出し部１２は、あるコンテンツを読み出す際に、アロケーションテーブル１４を参照することにより、ＨＤＤ１１−１〜１１−ｄのうちのどれから、又、どの記憶済みブロックから順にコンテンツのデータ片を読み出すべきかを把握することができる。
【００１８】
フリーテーブル１５は、ディスクアレイ１１上の全記憶領域のうちの空き領域を示すテーブルである。すなわち、コンテンツのデータ片が記憶されていない領域である空きブロックが示されている。書込み部１３は、フリーテーブル１５を参照することにより、空きブロックの総量、空きブロックが連続しているか不連続であるか、及び空きブロックの連続数を把握することができる。
【００１９】
読出し部１２及び書込み部１３の動作は、例えば、記憶装置１０内のＣＰＵ（図示せず）がＲＯＭ等の記憶手段（図示せず）に記憶されたプログラムを実行することで実現できる。また、アロケーションテーブル１４及びフリーテーブル１５は、例えばＲＡＭ等の記憶手段（図示せず）に記憶され更新自在である。
【００２０】
視聴端末２０−１は、ユーザによって例えばキーボード等の入力装置（図示せず）に入力された視聴要求入力に応じて、コンテンツの送信を要求する送信要求を通信網４１を介して読出し部１２に送信する。また、視聴端末２０−１は、当該送信要求に応じて送信された自身宛のコンテンツを通信網４１を介して受信する。コンテンツが映像コンテンツである場合には、視聴端末２０−１は、そのコンテンツの映像をディスプレイ（図示せず）に表示する。視聴端末２０−２〜２０−ｍの各々も視聴端末２０−１と同様の構成である。
【００２１】
管理端末３０−１は、管理者によって例えばキーボード等の入力装置（図示せず）に入力された書込み要求入力に応じて、当該書込み要求入力に対応するコンテンツと、ディスクアレイ１１への当該コンテンツの追加を要求する書込み要求とを通信網４２を介して書込み部１３に送信する。また、管理端末３０−１は、管理者からの削除要求入力に応じて、ディスクアレイ１１に記憶されているコンテンツの削除を要求する削除要求を書込み部１３に送信することもできる。管理端末３０−２〜３０−ｎの各々も管理端末３０−１と同様の構成である。
【００２２】
通信網４１及び４２は、例えばインターネット等の通信ネットワークである。
【００２３】
以下、図２を参照しつつ、書込み部１３によるコンテンツデータ書込み処理について説明する。
【００２４】
先ず、書込み部１３は、管理端末３０−１〜３０−ｎのいずれか１つから書込み要求と共に送信されたコンテンツを通信網４１を介して受信する（ステップＳ０１）。
【００２５】
次に、書込み部１３は、受信コンテンツを解析してそのビットレートを算出する（ステップＳ０２）。書込み部１３は、受信コンテンツに含まれるビットレート情報を取得するようにしても良い。
【００２６】
次に、書込み部１３は、当該算出したビットレートに基づいて、受信コンテンツのデータ片を記憶するＨＤＤとして選択されるべきＨＤＤ１１−１〜１１−ｄ（以下、被選択ＨＤＤと称する）の最小個数を決定する（ステップＳ０３）。書込み部１３は、例えば、ビットレート範囲毎に被選択ＨＤＤの最小個数が対応付けられた最小個数テーブルを参照して当該決定を行なう。
【００２７】
図３には、最小個数テーブルの一例が示されている。ビットレートが高いほど被選択ＨＤＤ個数Ｄの最小値（以下、最小個数Ｄｍｉｎと称する）も大きくなるように対応付けられている。１≦Ｄｍｉｎ≦ｄである。”ｄ”はＨＤＤ１１−１〜１１−ｄの総数である。図３の例の場合、最小個数Ｄｍｉｎは、ビットレートが０〜３Ｍｂｐｓの場合には１つ、ビットレートが３〜６Ｍｂｐｓの場合には２つ、ビットレートが６〜９Ｍｂｐｓの場合には３つ、・・・、ビットレートが２４Ｍｂｐｓ以上の場合にはｄ個である。なお、図３は一例であり、最小個数Ｄｍｉｎは、ＨＤＤ１１−１〜１１−ｄの個数やＨＤＤ１１−１〜１１−ｄの個々の書込み性能に応じて適当な個数とすることができる。
【００２８】
一般に、ハードディスク等のＨＤＤ１１−１〜１１−ｄにデータを記憶する際には、連続する空きブロックにコンテンツデータを記憶する方が書込み及び読出し時の性能上有利となる。連続する空きブロックが無い場合にはコンテンツデータを分割して複数のデータ片とし、これらを記憶する。書込み部１３は、ステップＳ０３の後、コンテンツデータの分割回数の期待値Ｆｅｘｐを”０”とする（ステップＳ０４）。
【００２９】
次に、書込み部１３は、フリーテーブル１５を参照し、ＨＤＤ１１−１〜１１−ｄのうちから空きブロック数が多い上位Ｄｍｉｎ個（ＤｍｉｎはステップＳ０３で決定した個数）を選択する（ステップＳ０５）。以下、被選択ＨＤＤの集合を被選択ＨＤＤ群Ｈと称する。更に、書込み部１３は、被選択ＨＤＤ群Ｈにコンテンツデータを記憶するときの分割回数を算出する（ステップＳ０５）。なお、分割回数の算出値Ｆの算出処理の詳細については後述する（図４）。
【００３０】
次に、書込み部１３は、算出値Ｆが期待値Ｆｅｘｐ以下であるか否かを判別する（ステップＳ０６）。
【００３１】
書込み部１３は、算出値Ｆが期待値Ｆｅｘｐよりも大きいと判別した場合、被選択ＨＤＤ個数ＤがＨＤＤ総数ｄに等しいか否かを判別する（ステップＳ０７）。
【００３２】
書込み部１３は、被選択ＨＤＤ個数ＤがＨＤＤ総数ｄに等しい場合、Ｄの値をこれ以上増やすことができないので、ステップＳ０５において選択した被選択ＨＤＤ群Ｈを実際にコンテンツを記憶すべきＨＤＤ群として決定し、ステップＳ０９に進む（ステップＳ０７）。
【００３３】
一方、書込み部１３は、被選択ＨＤＤ個数ＤがＨＤＤ総数ｄに達していないと判別した場合、被選択ＨＤＤ個数Ｄを”１”だけ増やす（ステップＳ０８）。更に、書込み部１３は、ステップＳ０６において算出した算出値Ｆを新しい期待値Ｆｅｘｐとし、ステップＳ０５に戻る（ステップＳ０８）。
【００３４】
次に、書込み部１３は、フリーテーブル１５を更新する（ステップＳ０９）。詳細には、書込み部１３は、被選択ＨＤＤ群Ｈに属するＨＤＤの全ての空きブロックのうち、コンテンツのデータ片を記憶すべき空きブロックを削除する。
【００３５】
次に、書込み部１３は、被選択ＨＤＤ群Ｈに属するＨＤＤの空きブロックにコンテンツのデータ片を記憶する（ステップＳ１０）。
【００３６】
次に、書込み部１３は、アロケーションテーブル１４を更新する（ステップＳ１１）。詳細には、書込み部１３は、コンテンツのデータ片を記憶したブロックをアロケーションテーブル１４に記憶する。
【００３７】
書込み部１３は、データ片の記憶が完了したら当該ルーチンを終了する。書込み部１３は、書込み要求を受信する度に上記した書込み処理ルーチンを実行する。
【００３８】
以下、図４を参照しつつ、書込み部１３による分割回数算出処理（上記のステップＳ０５の処理）について説明する。
【００３９】
書込み部１３は、当該サブルーチンの実行開始時点において、コンテンツのデータサイズＳと、被選択ＨＤＤ個数Ｄの最小値Ｄｍｉｎと、被選択ＨＤＤ群Ｈとをパラメータとして有している（ステップＳ２１）。また、書込み部１３は、最終的に当該サブルーチンの呼び出し元に返却すべき変数である算出値Ｆの初期値を”０”とする。
【００４０】
次に、書込み部１３は、被選択ＨＤＤ群Ｈに属するＨＤＤの各々の最大連続空きブロックを示す空きブロックリストＬを生成する（ステップＳ２２）。ＨＤＤの各々について最大サイズのものを１つ選択するので、空きブロックリストＬの構成要素の個数はＤ（最初のサイクルにおいてはＤｍｉｎ）個である。
【００４１】
次に、書込み部１３は、空きブロックリストＬに示されるＤ個の最大連続空きブロックの最小値を最大連続空きブロック最小値ｍｉｎ（Ｌ）として選択する（ステップＳ２３）。
【００４２】
次に、書込み部１３は、データサイズＳのコンテンツを分割することなくＤ個のＨＤＤに記憶できるか否かを判別する（ステップＳ２４）。書込み部１３は、（Ｓ／Ｄ）≦ｍｉｎ（Ｌ）の条件を満たしていない場合には、コンテンツの分割が必要であると判別してステップ２５に進む。
【００４３】
書込み部１３は、分割回数の算出値Ｆを”１”だけ増やす（ステップＳ２５）。
【００４４】
次に、書込み部１３は、フリーテーブル１５を参照し、ＨＤＤ１１−１〜１１−ｄの各々の連続空きブロックのうち、ｍｉｎ（Ｌ）分のブロックを予約ブロックとして設定し、空きブロックから除外する（ステップＳ２６）。
【００４５】
次に、書込み部１３は、予約ブロックのサイズの合計値をデータサイズＳから減算し（ステップＳ２７）、ステップＳ２２に戻る。
【００４６】
ステップＳ２４において、（Ｓ／Ｄ）≦ｍｉｎ（Ｌ）の条件を満たしている場合には、書込み部１３は、コンテンツの分割が不要であると判別してステップ２８に進む。
【００４７】
書込み部１３は、フリーテーブル１５を参照し、ＨＤＤ１１−１〜１１−ｄの各々の連続空きブロックのうち、ｍｉｎ（Ｌ）分のブロックを予約ブロックとして設定し、空きブロックから除外する（ステップＳ２８）。
【００４８】
次に、書込み部１３は、各予約ブロックの位置を記憶し、分割回数の算出値Ｆを当該ルーチンの呼び出し元に返却する（ステップＳ２９）。なお、フリーテーブル１５上に設定された予約ブロックは、算出値Ｆの返却後に空きブロックに戻される。書込み部１３は、算出値Ｆを返却したら当該ルーチンを終了する。
【００４９】
以下、図２〜図５を参照しつつ、書込み部１３によるコンテンツデータ書込み処理時における被選択ＨＤＤ及び被記憶ブロックの決定工程について説明する。
【００５０】
図５（ａ）〜（ｅ）には、ディスクアレイ１１が４つのＨＤＤ１１−１〜１１−４からなる場合のブロックの状態推移の一例が示されている。ＨＤＤ１１−１〜１１−４の各々はブロック１〜８を有しており、ディスクアレイ１１全体では４×８ブロックの記憶領域が存在する。各ブロック中の記号は、そのブロックの状態を示している。記号「×」は、当該ブロックにデータ片が記憶されている状態すなわち当該ブロックが記憶済みブロックであることを示している。記号「Ｒ」は、当該ブロックが予約ブロックであることを示している。記号が記されていないブロックは空きブロックである。
【００５１】
図５（ａ）は、ブロックの初期状態である。この状態のときに、データサイズＳが９ブロック且つビットレートが４Ｍｂｐｓのコンテンツをディスクアレイ１１に記憶する場合について説明する。
【００５２】
先ず、書込み部１３は、書込み要求と共に送信されたコンテンツを受信して（ステップＳ０１）、当該コンテンツのビットレートが４Ｍｂｐｓであると判別する（ステップＳ０２）。
【００５３】
ビットレートが４Ｍｂｐｓであるので、書込み部１３は、図３の最小個数テーブルを参照してＨＤＤ最小個数Ｄを”２”とする（ステップＳ０３）。また、コンテンツの分割回数の期待値Ｆｅｘｐを”０”とする（ステップＳ０４）。
【００５４】
次に、書込み部１３は、ＨＤＤ１１−１〜１１−４のうち、図５（ａ）の状態において空きブロック数が多い上位Ｄ個（＝２個）のＨＤＤ１１−３及び１１−２を選択し、これらを被選択ＨＤＤ群Ｈとする（ステップＳ０５）。
【００５５】
次に、書込み部１３は、被選択ＨＤＤ群Ｈにコンテンツを記憶した場合のコンテンツの分割回数を算出するために分割回数算出処理サブルーチン（図４）を実行する（ステップＳ０５）。
【００５６】
当該サブルーチン開始時点のパラメータを整理すると以下になる。データサイズＳ＝９ブロック、被選択ＨＤＤ個数Ｄ（Ｄｍｉｎ）＝２、被選択ＨＤＤ群Ｈ＝｛ＨＤＤ１１−２及び１１−３｝、分割回数の算出値Ｆ＝０（初期値）、分割回数の期待値Ｆｅｘｐ＝０である（ステップＳ２１）。
【００５７】
ＨＤＤ１１−２及び１１−３の各々の最大連続空きブロックは”４”であるので、書込み部１３は、空きブロックリストＬ＝｛４、４｝とする（ステップＳ２２）。当該リストＬから、最大連続空きブロックの最小値ｍｉｎ（Ｌ）は”４”となる（ステップＳ２３）。
【００５８】
次に、書込み部１３は、データサイズＳ＝９のコンテンツを分割することなく、ＨＤＤ１１−２及び１１−３に記憶できるか否かを判別する（ステップＳ２４）。各パラメータを不等式（Ｓ／Ｄ）≦ｍｉｎ（Ｌ）に当てはめると（９／２）≦４となり、不等式が成立しない。書込み部１３は、分割回数の算出値Ｆ＝０に”１”だけ加算しＦ＝１とする（ステップＳ２５）。
【００５９】
次に、書込み部１３は、ＨＤＤ１１−２及び１１−３の各々の連続空きブロックのうち、ｍｉｎ（Ｌ）＝４個分のブロックを予約ブロックとして設定し、空きブロックから除外する（ステップＳ２６）。
【００６０】
図５（ｂ）には、ＨＤＤ１１−２及び１１−３の各々について４個分の予約ブロックが設定されたときの状態が示されている。予約ブロックは記号Ｒで示されている。
【００６１】
書込み部１３は、予約ブロックのサイズの合計値である”８”（＝４＋４）をデータサイズＳ＝９から減算してＳ＝１とする（ステップＳ２７）。この時点のパラメータを整理すると以下になる。データサイズＳ＝１ブロック、被選択ＨＤＤ個数Ｄ＝２、被選択ＨＤＤ群Ｈ＝｛ＨＤＤ１１−２及び１１−３｝、分割回数の算出値Ｆ＝１、分割回数の期待値Ｆｅｘｐ＝０である。
【００６２】
書込み部１３は、ステップＳ２２に戻り、上記と同様の処理を行なう。図５（ｂ）の状態のときには、空きブロックリストＬ＝｛２、３｝となり、最大連続空きブロックの最小値ｍｉｎ（Ｌ）は”２”となる（ステップＳ２２及びＳ２３）。
【００６３】
この場合、各パラメータを不等式（Ｓ／Ｄ）≦ｍｉｎ（Ｌ）に当てはめると（１／２）≦２となり、不等式が成立する（ステップＳ２４）。
【００６４】
書込み部１３は、ＨＤＤ１１−２及び１１−３の各々の連続空きブロックのうち、ｍｉｎ（Ｌ）＝２個分のブロックを予約ブロックとして設定し、空きブロックから除外する（ステップＳ２８）。
【００６５】
図５（ｃ）には、ＨＤＤ１１−２及び１１−３の各々について２個分の予約ブロックが設定されたときの状態が示されている。
【００６６】
書込み部１３は、算出値Ｆを”１”として図４のサブルーチンを終了する。この時点において、各パラメータを条件式Ｆｅｘｐ≧Ｆに当てはめると０≧１となり、不等式が成立しない（ステップＳ０６）。この時点においては、被選択ＨＤＤ個数Ｄ＝２は、ＨＤＤの総数”４”に達していないので、個数Ｄに”１”だけ加算し、個数Ｄ＝３とする（ステップＳ０７及びＳ０８）。また、期待値Ｆｅｘｐを、現時点の算出値Ｆ＝１と同じ値とする。すなわち、期待値Ｆｅｘｐ＝１とする（ステップＳ０８）。その後、ステップＳ０５に戻る。
【００６７】
上記の予約ブロックは空きブロックに戻されているので、この時点におけるディスクアレイ１１のブロックの状態は図５（ａ）の状態に戻っている。
【００６８】
書込み部１３は、ＨＤＤ１１−１〜１１−４のうち、図５（ａ）の状態において空きブロック数が多い上位Ｄ個（＝３個）のＨＤＤ１１−３、１１−２及び１１−１を選択し、これらを被選択ＨＤＤ群Ｈとする（ステップＳ０５）。この時点のパラメータを整理すると以下になる。データサイズＳ＝９ブロック、被選択ＨＤＤ個数Ｄ＝３、被選択ＨＤＤ群Ｈ＝｛ＨＤＤ１１−１、１１−２及び１１−３｝、分割回数の算出値Ｆ＝０（初期値）、分割回数の期待値Ｆｅｘｐ＝１である（ステップＳ２１）。
【００６９】
図５（ａ）の状態のときには、空きブロックリストＬ＝｛３、４、４｝となり、最大連続空きブロックの最小値ｍｉｎ（Ｌ）は”３”となる（ステップＳ２２及びＳ２３）。
【００７０】
この場合、各パラメータを不等式（Ｓ／Ｄ）≦ｍｉｎ（Ｌ）に当てはめると（９／３）≦３となり、不等式が成立する（ステップＳ２４）。
【００７１】
書込み部１３は、ＨＤＤ１１−１、１１−２及び１１−３の各々の連続空きブロックのうち、ｍｉｎ（Ｌ）＝３個分のブロックを予約ブロックとして設定し、空きブロックから除外する（ステップＳ２８）。
【００７２】
図５（ｄ）には、ＨＤＤ１１−１、１１−２及び１１−３の各々について３個分の予約ブロックが設定されたときの状態が示されている。書込み部１３は、算出値Ｆを”０”としたまま、図４のサブルーチンを終了する。この時点において、各パラメータを条件式Ｆｅｘｐ≧Ｆに当てはめると１≧０となり、不等式が成立する（ステップＳ０６）。
【００７３】
書込み部１３は、被選択ＨＤＤ群ＨであるＨＤＤ１１−１、１１−２及び１１−３を、コンテンツデータの記憶先として決定し、フリーテーブル１５を更新する（ステップＳ０９）。
【００７４】
図５（ｅ）には、更新後のフリーテーブル１５が示されている。図５（ｅ）の状態は、図５（ｄ）の予約ブロック「Ｒ」が記憶済みブロック「×」に変更されたものである。
【００７５】
書込み部１３は、コンテンツを複数のデータ片に分割し、これらを図５（ｄ）の予約ブロックに書き込む（ステップＳ１０）。また、書込み部１３は、当該書込み位置をアロケーションテーブル１４に記憶する（ステップＳ１１）。書込み部１３は、当該記憶を完了したらコンテンツデータ書込み処理を終了する。
【００７６】
このように、本実施例の記憶装置１０においては、ビットレートが高いほどＨＤＤ最小個数Ｄも大きくなるように対応付けられている最小個数テーブル（図３）を用いて、コンテンツのビットレートが高い程より多くのＨＤＤにデータを分散記憶するようにしている。かかる構成により、読出し時の性能低下を回避することができる。
【００７７】
また、本実施例の記憶装置１０においては、コンテンツのビットレートが低い場合には、最小個数テーブル（図３）を用いて少数のＨＤＤを選択するとともに、ステップＳ０５において空きブロック数を多く有するＨＤＤを優先的に選択して被選択ＨＤＤ群Ｈとすることにより、空き容量が大きい少数のＨＤＤを選択して、これらにデータを記憶するようにしている。かかる構成により、各ＨＤＤの空きブロック数の偏りが減るので、最長連続空きブロックの最小値ｍｉｎ(Ｌ)に合わせて連続空きブロックを予約する構成（ステップＳ２３及びＳ２６）においても、各ＨＤＤの空きブロックを無駄なく活用することができる。故に、本実施例の記憶装置１０によれば、各ＨＤＤの空き記憶容量が異なる場合であっても、各ＨＤＤの空きブロックを有効活用して、読み書き性能を向上させることができる。
【００７８】
また、本実施例の記憶装置１０における図５（ｃ）の結果を導くステップＳ２８の処理において、コンテンツのデータサイズＳを被選択ＨＤＤ個数Ｄで割った値が１未満であるとき、書込み部１３は、ＨＤＤ１１−２及び１１−３の各々の連続空きブロックのうち、ｍｉｎ（Ｌ）＝２個分のブロックの代わりに、不等式（Ｓ／Ｄ）≦ｍｉｎ（Ｌ）で用いたコンテンツのデータサイズＳ＝１個分のブロックを予約ブロックとして設定し、空きブロックから除外することにより、予約ブロックをさらに最適にすることができる。図６には、図５（ｃ）に対応する図面であり、ＨＤＤ１１−２及び１１−３の各々について１個分の予約ブロックが設定されたときの状態が示されている。
【符号の説明】
【００７９】
１０  記憶装置
１１  ディスクアレイ
１１−１〜１１−ｄ  ＨＤＤ
１２  読出し部
１３  書込み部
１４  アロケーションテーブル
１５  フリーテーブル
１６  通信網
２０−１〜２０−ｍ  視聴端末
３０−１〜３０−ｎ  管理端末
４１、４２  通信網
【図１】
2013196116.tif 000003
【図２】
2013196116.tif 000004
【図３】
2013196116.tif 000005
【図４】
2013196116.tif 000006
【図５】
2013196116.tif 000007
【図６】
2013196116.tif 000008