JP2015072643A - コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法 - Google Patents

コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法 Download PDF

Info

Publication number
JP2015072643A
JP2015072643A JP2013208713A JP2013208713A JP2015072643A JP 2015072643 A JP2015072643 A JP 2015072643A JP 2013208713 A JP2013208713 A JP 2013208713A JP 2013208713 A JP2013208713 A JP 2013208713A JP 2015072643 A JP2015072643 A JP 2015072643A
Authority
JP
Japan
Prior art keywords
file
request
content distribution
information
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013208713A
Other languages
English (en)
Other versions
JP6165580B2 (ja
Inventor
賢 野村
Masaru Nomura
賢 野村
稔 宇留島
Minoru Urushima
稔 宇留島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Industry and Control Solutions Co Ltd
Original Assignee
Hitachi Industry and Control Solutions Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Industry and Control Solutions Co Ltd filed Critical Hitachi Industry and Control Solutions Co Ltd
Priority to JP2013208713A priority Critical patent/JP6165580B2/ja
Publication of JP2015072643A publication Critical patent/JP2015072643A/ja
Application granted granted Critical
Publication of JP6165580B2 publication Critical patent/JP6165580B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】
従来技術の組み合わせでは、コンテンツ配信においてQoS保証を実現しようとしても、時刻情報付ファイルI/OをQoS保証されたブロックI/Oに変換するために、OSバージョン毎に独自のファイルシステムを開発しなければならないという技術上の課題がある。
【解決手段】
時刻情報付ファイルI/Oを通常のファイルI/Oに変換する手段と、前記通常のファイルI/Oの発行先となるファイルシステムの情報を取得する手段と、前記ファイルシステムのブロックI/Oの発行先となる前記ディスク装置の情報を取得する手段と、前記ファイルシステムの情報に基づいて、ファイルI/OがブロックI/Oに変換されるか予測する手段と、前記予測に基づいて、ファイルI/Oの要求に付属するオプションを調整する手段とを有する。
【選択図】 図1

Description

音声データや映像データなどのコンテンツを、ネットワークを介して配信するための技術に関する。
近年、コンテンツ配信技術は社会インフラを支える重要な技術となった。新聞や書籍、音楽、映像などあらゆる情報が電子データ化されて配信されている。このように、ネットワークを介して配信されるコンテンツには様々な種類の電子データが存在するが、特に映像データは個々のデータサイズが大きいためコンテンツの全データ量に対して占める割合が大きいという意味で重要である。
特許文献1記載の技術によれば、ディスク装置に対してコンテンツの読み込み、あるいは、書き込みを指示するためのブロックI/O要求の処理において、QoS保証が必要なI/O要求には当該I/O要求を処理完了させなければならない期限を示す時刻情報(デッドライン)を付加して、デッドラインまでの余裕がないI/O要求から優先して処理することによりQoS保証を実現できる。
US2010-0011182
従来技術の組み合わせのみでコンテンツ配信におけるQoS保証を実現しようとしても、時刻情報付ファイルI/OをQoS保証されたブロックI/Oに変換することが出来ないため、OSバージョン毎に独自のファイルシステムを開発しなければならないという技術上の課題がある。
上記課題を解決するために、本発明は、時刻情報付ファイルI/Oを通常のファイルI/Oに変換する手段と、上記通常のファイルI/Oの発行先となるファイルシステムの情報を取得する手段と、上記ファイルシステムのブロックI/Oの発行先となるディスク装置の情報を取得する手段と、上記ファイルシステムの情報に基づいてどのようにファイルI/OがブロックI/Oに変換されるか予測する手段と、当該予測に基づいてファイルI/OのI/O要求に伴うオプションを調整する手段を有する。
本発明によれば、一般的なファイルシステムを用いて、時刻情報付ファイルI/OをQoS保証されたブロックI/Oに変換することが出来る。すなわち、OSバージョン毎に独自のファイルシステムを開発することなくコンテンツ配信におけるQoS保証を実現することが出来る。
なお、上述した以外のさらなる課題、構成及び作用効果は、以下の本発明を実施するための形態および添付図面によって明らかになるものである。
第1の実施形態による計算機システムの構成例を示す図である。 第1の実施形態による動作概要を示す図である。 第1の実施形態で期待しているコンテンツのアップロード動作を示すシーケンス図である。 第1の実施形態における単に時刻情報付ファイルI/Oを通常のファイルI/Oに変換しただけでは期待した動作とはならない具体例の1つを示すシーケンス図である。 第1の実施形態におけるQoS保証された最大マルチストリーム性能と通常の最大スループットの違いを示す図である。 第1の実施形態におけるQoS保証プログラムのアルゴリズム例を示すシーケンス図である。 第1の実施形態における時刻情報付I/O要求の具体例を示す図である。 第1の実施形態におけるファイルシステム動作予測プログラムの処理内容を説明する図である。 第2の実施形態による計算機システムの構成例を示す図である。 第3の実施形態による計算機システムの構成例を示す図である。 第4の実施形態による計算機システムの構成例を示す図である。
以下、実施例を図面を用いて説明する。
図1は、本発明の第1の実施形態による計算機システムの構成例を示す図である。
コンテンツ配信サーバ100は、CPU111およびネットワークインターフェース112およびディスク113およびメモリ114が相互に作用してメモリ上のプログラムを実行することにより動作する。また、同様の内部構成を持つ端末101とネットワークインターフェース112を介して接続されており、ディスク113上に格納されているコンテンツを端末101に配信することや、端末101からアップロードされたコンテンツをディスク113に格納することによりコンテンツ配信サービスを実現する。
なお、コンテンツ配信サーバ100および端末101はそれぞれ複数台が接続していてもかまわなく、たとえば、1台のコンテンツ配信サーバ100が複数の端末101に対してコンテンツを配信することや、複数の端末101から1台のコンテンツ配信サーバにコンテンツをアップロードすることが出来る。
コンテンツ配信サーバは、起動するとディスク装置113に格納されているプログラムを読み込みメモリ114上に配置して実行する。
まず、OSプログラム120をメモリ114上に配置して実行する。OSプログラム120には標準ファイルシステムプログラム121およびI/O中継プログラム122が含まれる。
次に、コンテンツ配信サーバプログラム130とQoS保証プログラム140と管理プログラム150をメモリ114上に配置して実行する。これらはOSプログラム120上で動作するプログラムであるので、OSプログラム120と区別してアプリケーションプログラムと呼ぶ。コンテンツ配信サーバプログラム130は端末101へコンテンツを配信する処理や、端末101からのコンテンツのアップロードを受信する処理を実現するプログラムであり、時刻情報付ファイルI/O生成プログラム131を含んでいる。QoS保証プログラム140はコンテンツのQoS保証を実現するためのプログラムであり、ファイルI/O変換プログラム141と、標準ファイルシステム情報取得プログラム142と、ファイルシステム動作予測プログラム143と、I/Oオプション調整プログラム144と、ディスク情報取得プログラム145を含んでいる。また、管理プログラム150はコンテンツ配信サーバプログラム130やQoS保証プログラム140を管理するために使用するプログラムである。これらプログラムの詳細は後述する。
図2は、本発明の動作の概要を示す図である。たとえば、映像コンテンツを端末101に配信して再生しており、ディスク113から順次映像データを読み出しているとする。 このとき、CPU111は、コンテンツ配信サーバプログラム130を実行し、時刻情報付ファイルI/O生成プログラム131を実行することにより、映像データの再生速度、映像の再生位置、端末101や自身がバッファリングしている映像データの量などを鑑みて、これから読み出そうとしている映像データが必要となると予想される時刻を算出できる。そこで、CPU111は、当該時刻情報をファイルI/Oに付加して、時刻情報付ファイルI/O要求201を発行する。
次に、CPU111は、QoS保証プログラム140を実行することにより、時刻情報付ファイルI/O要求201を受け取る。そして、標準ファイルシステムプログラム121の種類や設定などを含むファイルシステム情報210および、ディスク113の性能に関する情報を含むディスク情報220をもとにして、CPU111は、QoS保証するためのI/O発行タイミングの調整およびI/O要求のオプションの調整を行ない、ファイルI/O要求202およびファイルI/O要求オプション203を発行する。
そして、CPU111は、標準ファイルシステムプログラム121により、ファイルI/O要求202および、ファイルI/O要求オプション203をブロックI/O要求204に変換することによりディスクから映像データを読み込むことができる。ただし、このブロックI/O要求204は、QoS保証プログラム140によるファイルI/O要求202の発行タイミングの調整やファイルI/O要求オプション203の調整の効果により、結果的にQoS保証されたブロックI/O要求と同等の特性が実現される。従ってコンテンツ配信のQoS保証が結果的に実現できる。
以下、ブロックI/OのQoS保証が結果的に実現されるプロセスについて詳細を述べる。
図3は、本発明の第1の実施形態で期待しているコンテンツのアップロード動作を示すシーケンス図である。
まず、映像データのアップロードは端末101からコンテンツ配信サーバ100上で動作するコンテンツ配信サーバプログラム130に対して書き込みの要求が行われることにより開始する(ステップ301)。そして、CPU111は、コンテンツ配信サーバプログラム130により、OSプログラム120が備えるI/O中継プログラム122に対して時刻情報付ファイルI/Oを発行する。そして、CPU111は、I/O中継プログラム122により、QoS保証プログラム140に上記時刻情報付ファイルI/Oを中継する(ステップ302)。なお、このような中継により、QoS保証プログラムはOSプログラム120内部にあっても外部にあっても問題とはならない。
次に、CPU111は、QoS保証プログラム140により、受け取ったI/O要求に付加されている時刻情報や、標準ファイルシステムプログラム121の種類と設定、ディスク113の性能といった情報をもとに、I/O要求の発行タイミングや当該I/O要求のオプションを調整して、OSプログラム120を介して標準ファイルシステムプログラム121にファイルI/Oを発行する(ステップ303)。
そして、CPU111は、標準ファイルシステムプログラム121により、ファイルI/Oを期待した通りのブロックI/Oに変換することにより(ステップ304)、コンテンツデータがディスク113に書き込まれ、最終的に端末101に書き込みの完了が通知される(ステップ305)。
この手順は端末101へコンテンツを配信する場合も同様であり、ステップ305にて読み込み完了通知と共にコンテンツデータが端末101に返信されることになる。
図4は、本発明の第1の実施形態において単純に時刻情報付ファイルI/Oを標準ファイルシステムプログラム121で通常のファイルI/Oに変換しただけでは期待した動作とはならない具体例の1つを示すシーケンス図である。
まず、映像データのアップロードは、端末101からコンテンツ配信サーバプログラム130に対して書き込みの要求が行われることにより開始する(ステップ401)。そして、I/O中継プログラム122を介して、CPU111がコンテンツ配信サーバプログラム130により、発行した時刻情報付ファイルI/OはQoS保証プログラム140に中継される(ステップ402)。さらに、CPU111は、QoS保証プログラム140により、標準ファイルシステムプログラム121に対してファイルI/Oを発行する(ステップ403)。
このとき、CPU111は、QoS保証プログラム140により、I/O要求のオプションを調整しなくても時刻情報付ファイルI/Oを通常のファイルI/Oに変換さえすれば、I/O要求を発行すること自体に支障はない。そして、端末101に書き込み完了を通知して処理を完了することができる(ステップ404)。
しかし、この場合には例えば、ディスク113に書き込むべきデータを、CPU111は、標準ファイルシステムプログラム121により、キャッシングして遅延書き込みを行っている可能性がある(ステップ405)。さらに、書き込みデータを分割して複数回に分けてディスク113上の物理的に異なる位置に書き込んでいる可能性もある(ステップ406)。読み込みにおいても、ステップ404のようにブロックI/Oが実行される前にI/O完了が通知されてしまうことはないが、ディスク113へのI/O要求が遅延する可能性はある。従って、必ずしもQoS保証プログラム140が期待した時間内にI/Oが処理されない、あるいは、I/O要求の分割により、必ずしもQoS保証プログラムが期待したディスク113の性能が得られない、という原因によってQoS保証に失敗してしまう。
標準ファイルシステムプログラム121がこのような動作をするのは、いわゆる最大スループットと呼ばれる通常のデータ転送における最大性能を高めることを目的に設計されているためである。さらに、なるべくディスク容量を無駄なく使い切ることを目的に設計されているからである。以下、最大スループットとQoS保証を行う場合の最大マルチストリーム性能の違いについて説明する。
図5は、本発明におけるQoS保証された最大マルチストリーム性能と通常の最大スループットの違いを示す図である。
図の縦軸501はスループットを表しており、横軸502はストリーム数を表している。ストリーム数とは同時に配信している映像の本数のことである。
コンテンツ配信サーバ100が1本だけ1Mbpsのビットレートの映像をQoS保証しつつ配信したならば、1Mbpsのスループットが計測される(503)。そして、2本の1Mbpsの映像をQoS保証しつつ配信するならば、2Mbpsのスループットが計測される(504)。
QoS保証とは、個々の映像のビットレートを守る制御であるのだから、QoS制御に成功している限り、スループットはストリーム数に比例した値となる。もし、映像n+1本目にスループットがストリーム数に比例しなくなったならば、映像n本目のスループットを最大マルチストリーム性能506とよび、QoS保証可能な最大性能となる。
しかし、QoS保証を無視すれば、さらに高いスループットを得ることも可能であり、この限界性能を最大スループット507と呼ぶ。
一般に、標準ファイルシステムプログラム121は、最大スループットを高めるよう設計されており、そのために、たとえば、CPU111は、I/O要求を発行する順番を入れ換えるリオーダリングと呼ばれる処理を行う。これにより、ディスクにブロックI/Oが発行されるタイミングは無制限に遅延する可能性がある。
また、ディスク上のデータ配置については、同じディスクになるべく多くのデータを書き込むことを目的として、場合によってはI/Oを分割してディスク上の異なる場所に書き込むといった処理を行う可能性がある。
最大マルチストリーム性能506を向上させるには、このような標準ファイルシステムプログラム121の通常の制御では想定していない性能を向上させるための独特のアプローチが必要となる。QoS保証する場合においては、個々のI/O要求のデッドラインを守ることが最優先事項であり、ディスクの容量効率よりもディスク性能を低下させないために同一コンテンツのデータをディスク上のなるべく連続した領域に記録することが重要になる。
図6は、第1の実施形態におけるQoS保証プログラムのアルゴリズム例を示すフローチャート図である。
QoS保証プログラム140は、メモリ114上に配置され実行開始される(ステップ600)。まず、標準ファイルシステム情報取得プログラム142が呼び出され、標準ファイルシステム121の種類やフォーマットパラメータなどが取得される。
CPU111は、標準ファイルシステム情報取得プログラム142により、OSプログラム120の提供する機能や標準ファイルシステム121に付属の管理プログラムなどを用いて当該情報を取得する。なお、フォーマットパラメータとは、データをなるべく連続領域に書くためのエクステントと呼ばれる値やデータを書き込む単位であるブロックサイズと呼ばれる値など、一般にファイルシステムのフォーマット時や設定ファイルなどで指定することが出来る値のことである。しかし、もちろんファイルシステムの実装によっては、ファイルシステム実行後に動的に設定した値の場合もあるし、あらかじめファイルシステム毎に定まっている定数である場合もある(ステップ601)。
次に、CPU111は、ディスク情報取得プログラム145を呼び出してディスクの応答性能などの情報を取得する。
CPU111は、ディスク情報取得プログラム145は実際に様々なI/Oサイズの読み込みI/O要求や書き込みI/O要求を発行することで、応答性能とよばれるディスク装置がどのくらいの時間でI/Oを処理できるのかを示す情報を取得することが出来る。また、OSプログラム120の機能を用いてディスクの種類を取得することにより、ディスクの種類ごとの平均的な性能から上記性能を見積もることもできる。あるいは、あらかじめ性能測定したデータをファイルなどに保存しておいて、当該ファイルを読み込むことによってもディスク性能を取得することが出来る(ステップ602)。
以上がQoS保証プログラム140の前処理である。これらは、QoS保証プログラム140が実行開始した後、最初に一度だけ実行して、その後は以下の手順を繰り返す。
まず、CPU111は、QoS保証プログラム140により、未処理の新たなI/O要求があるか確認する(ステップ603)。存在する場合には、当該I/O要求を自身が管理するI/OキューというI/O要求の並びに追加する(ステップ604)。なお。I/Oキューは複数あってもよく、たとえばQoS保証が必要なI/O要求と必要ないI/O要求を別々のI/Oキューに区別して格納しておき、QoS保証が必要なI/O要求を格納しているI/Oキュー内のI/O要求を優先的に処理することもできる。
次に、I/Oキュー内のI/O要求のうちファイル内の連続した領域に対するI/O要求があれば、それらをグループ化する。たとえば同じファイルの先頭1Mバイトと隣接する次の1Mバイトへの2つの1MバイトのI/O要求があれば、それらをグループ化して2MバイトのI/O要求としても扱えるようにする(ステップ605)。
また、I/O要求に付加された時刻情報を参照して期限までの猶予時間が短いI/O要求から順にI/Oキュー内のI/O要求をソートする。グループ化されたI/Oについては、それらI/O要求の中で最も猶予時間が短いI/O要求を採用する(ステップ606)。
そして、最も猶予時間の短いI/O要求の猶予時間が所定の閾値を下回っているか確認する。なお、所定の閾値とは、I/O要求を発行しなければならないタイムリミットを示しており、ステップ602で取得した当該I/O要求と同じサイズのI/O要求を処理する場合のディスクの応答性能データに所定のマージンを加算して算出することができる。もし、閾値を下回ってなければI/O要求のグループ化の機会を得るためにステップ603からの手順を繰り返す(ステップ607)。
逆に、閾値を下回っていれば、CPU111は、ファイルシステム動作予測プログラム143を呼び出して標準ファイルシステム121がどのようにブロックI/Oを発行するか予測を行う。そして、予測結果に応じてI/Oオプション調整プログラム144を呼び出して、当該ファイルI/O要求のオプションの設定を行う。このとき、グループ化されているI/O要求の場合はグループ単位でまとめて処理する。なお、標準ファイルシステム121のブロックサイズやエクステントサイズを鑑みてI/Oサイズに端数が残る場合は、当該端数を残してそれ以外の部分のみを処理してもかまわない。この動作については後述のファイルシステム動作予測プログラム143の説明の中で詳細を述べる(ステップ608)。
さらに、CPU111は、ファイルI/O 変換プログラム141を呼び出して時刻情報付ファイルI/O要求を通常のファイルI/O要求に変換する。そして、変換されたファイルI/O要求を、ステップ608で設定したファイルI/O要求のオプションとともに標準ファイルシステムプログラム121に対して発行する(ステップ609)。
最後に、CPU111は、既に標準ファイルシステム121に発行したI/O要求で完了したI/O要求があればI/O完了をI/O中継プログラム122を介してコンテンツ配信サーバプログラム130に通知する。読み込み要求であれば読み込んだデータも引き渡す。このとき、I/O要求の処理にかかった時間を計測して、ステップ602で取得したディスクの応答性能情報を最新の実績値を用いて更新ないし補正してもかまわない。この応答性能情報の最新の実績値は管理プログラム150を用いて取得することができる。また、ディスクの応答性能だけでなく、QoS保証プログラム140がI/O要求を受け取ってから処理完了するまでの時間など、プログラムの応答性能についても最新の実績値を算出して管理プログラム150を用いて取得することができる。完了したI/O要求がなければステップ603からの手順を繰り返す(ステップ610)。
図7は、本発明における時刻情報付ファイルI/O要求201の具体例を示す図である。時刻情報付ファイルI/O要求201はオプションとしてファイルの先頭からの位置を示すI/Oアドレス701と、当該I/Oで読み書きするデータ量を示すI/Oサイズ702と、書き込みか読み込みかを区別するI/O方向703と、I/O要求に付属するその他の詳細な性質を決定するI/O詳細オプション704と、当該I/Oを処理完了させなければならないデッドライン時刻705と、万がデッドライン時刻までにI/O要求を処理できなかった場合の挙動を指定するI/Oポリシー706からなる。
このうち、デッドライン時刻705と、I/Oポリシー706が、いわゆる時刻情報である。デッドライン時刻はミリ秒単位やマイクロ秒単位など任意の時間の単位であらわしてよい。また、現在時刻との差分をとって残された猶予時間に変換できるので、デッドライン時刻とはデッドラインまでの猶予時間と同じ意味を持つ。また、デッドライン時刻の表現方法は様々な形態があり、起点となる時刻と猶予時間の組み合わせで表現してもよく、たとえば、I/O要求を発行した時刻と当該時刻からの猶予時間の組み合わせであってもよい。
そして、I/Oポリシーは、デッドラインとなる時刻を超過した場合に、当該I/O要求を破棄するのか、遅延したまま処理を続行するのか、といった挙動を指定する情報である。 CPU111は、ファイルI/O 変換プログラム141により、これら2つの時刻情報を削除することにより、容易に時刻情報付ファイルI/Oを通常のファイルI/Oに変換することが出来る。もちろん、時刻情報付ファイルI/Oと通常のファイルI/Oのインターフェースやフォーマットは必ずしも同じではないので、それらの単純変換は必要となる。
なお、I/O詳細オプション704には、標準ファイルシステム121によるキャッシングを無効化するダイレクトI/Oの指示や、遅延書き込みをOFFにするといった指示や、連続領域にデータが書き込まれるように、I/O要求発行前に、あらかじめディスク上に連続した領域を確保するといった指示が含まれる。これらの指示は、OSが提供する全てのファイルシステムに共通なインターフェースを用いて、実際にファイルI/Oを実行するコマンドのパラメータとして与えられてもよいし、それとは別のコマンドのパラメータとして与えられてもよいし、さらには、全く別の独立した管理プログラムのパラメータとして与えられてもよいし、標準ファイルシステム121の初期設定ファイルの書き換え及び再読み込みという形態であってもよい。
I/Oオプション調整プログラム144は上述した様々な方法を用いて、標準ファイルシステムプログラム121の挙動を制御することが出来る。
図8は、本発明におけるファイルシステム動作予測プログラム143の処理内容を説明する図である。
図中のファイルA、ファイルB、ファイルCの横線はファイル先頭からのオフセット位置をあらわしており、ファイルシステムのブロックサイズないしエクステントサイズごとに縦線で区切っている。
ところで、ファイルシステムはブロックサイズまたはエクステントサイズに従ってデータをディスク上の連続領域に記憶するが、どちらが用いられるかはファイルシステム毎に異なる。ブロックサイズの場合には当該区間のデータは必ずディスク上の連続した領域に書かれるのに対して、エクステントサイズの場合は努力目標である点が異なる。しかし、エクステントを用いた場合であっても、ファイルI/OにダイレクトI/Oというファイルシステムのバッファを利用しないファイルI/Oの種類を指定することや、後述するように書き込み領域を事前予約するといった方法で連続した領域にデータが書かれることを保証できる。そこで、以下ブロックサイズに用語を統一するがエクステントサイズのケースも含めて説明を行う。
一般的なファイルシステム上のファイルにブロックサイズと同サイズのファイルI/O(801)を発行した場合には、ファイルシステムにより同サイズのブロックI/O(803)に変換される。また、ブロックサイズの倍数と同サイズのファイルI/O(802)を発行した場合には、同一のサイズのブロックI/O(804)に変換される場合や、ブロックサイズ単位に別々のブロックI/Oに分割される場合もある。
ファイルシステム動作予測プログラム143はファイルシステムの種類と同時に書き込みを行っているI/O要求の有無という情報を用いてI/O要求が分割されるかどうか判断することが出来る。ファイルシステムの種類によって、分割があるもの、ないもの、同時に書き込みを行っている場合には分割があるもの、の三種類に分けることが出来るためである。
ただし、ブロックサイズの倍数でないオフセット位置からブロックサイズと同サイズのファイルI/O(805)を発行しても、ファイル先頭からブロックサイズの倍数ごとの区切り位置でブロックI/O(806)、ブロックI/O(807)に分割されてしまう。これをアライメントが一致しないことによるI/O要求の分割と呼ぶ。
ブロックI/Oが分割されると、それぞれがディスク上の別々の領域に書かれる可能性がある。特に遅延アロケーションと呼ばれる方式を採用するファイルシステムでは、データをディスクに実際に書き込む直前までデータ格納先ブロックが決定されないため、このような現象が発生する可能性が高まる。そして、QoS保証に必要な安定したディスク性能が得られなくなる可能性も高まる。
そこで、ファイルシステム動作予測プログラム143は、ケースバイケースにファイルI/Oのオプションをどのように調整すべきか決定する。具体的には、上述したようなファイルシステムの種類など異なる条件を異なる軸で網羅した多次元のテーブルを備え、以下に述べる具体的なファイルI/Oのオプション調整手順に番号をつけて、上記多次元のテーブルの要素として上記番号を保持する。これにより、多次元のテーブルからファイルシステムの種類などの条件によって異なるファイルI/Oのオプション調整手順の番号を得ることができ、当該番号をI/Oオプション調整プログラム144に引数として渡すことにより、I/Oオプション調整プログラム144が当該番号に対応するファイルI/Oオプションの調整を実行することが出来る。
なお、特定のファイルシステムのみを対象として実施する場合など、上記多次元のテーブルの規模が小さい場合には、プログラム内の条件分岐の羅列の形で同様の機能を実施できる。
また、ファイルシステムの種類とその設定など条件によっては、適切なファイルI/Oオプションの調整手段が存在しない場合も考えられる。そのような場合にはQoS保証できないため、警告を行うことができる。具体的には、管理プログラム150を使って取得できるQoS保証プログラム140の動作ログなどに警告を出力したり、さらに所定のメールアドレスにメールを送付したり様々な方法で警告することができる。また、警告が発生する可能性があるかどうかは、上記多次元テーブルにファイルI/Oオプションの調整手段を識別する番号が格納されていない箇所があれば警告が発生する可能性があるのは自明であるので、QoS保証プログラム140の開始時にチェックを行ない、あらかじめ問題があることを警告することもできる。
以下、ファイルI/Oのオプション調整内容について詳細を述べる。
まず、アライメントが一致しないケースを無くすための調整方法について述べる。コンテンツ配信では基本的にファイルの先頭から順次I/O要求を処理していくので、アライメントが一致しなくなる原因は、ブロックサイズより大きいファイルI/O(808)が発行される場合と、ブロックサイズより小さいファイルI/O(812)が発行される場合の2つの場合が考えられる。
ブロックサイズより大きいファイルI/O(808)の場合には、当該I/O要求のデッドライン時間が許す限り、次のファイルI/O(809)を待ち、ブロックサイズの倍数単位でファイルI/Oを発行することを試みる。猶予時間が無い場合には、ブロックサイズの倍数となる範囲のデータ(810)を先に処理して、次のファイルI/O(809)が到着しだいファイルI/O(811)を発行するか、書き込みの場合においてはパディングと呼ばれる空白のデータで不足箇所を埋めてブロックサイズの倍数となるファイルI/Oを発行する。読み込みの場合は、今後続くデータへのI/O要求がくると仮定して、プリフェッチと呼ばれるまだI/O要求されていない領域の先読みをすることでブロックサイズの倍数のファイルI/Oを発行する。
一方、ブロックサイズより小さいファイルI/O(812)の場合にも、ブロックサイズより大きいファイルI/O(808)の端数の処理と同じ方法により、たとえば次のファイルI/O(813)とパディングないしプリフェッチ(814)を組み合わせてブロックサイズの倍数のファイルI/O(815)を発行する。
なお、上述したように、ファイルシステムの種類によっては、ブロックサイズの倍数のファイルI/O(816)を発行してもブロックI/Oがブロックサイズ単位に分割されてしまう場合がある。このようなケースでは、当該ファイルI/Oと同サイズかそれ以上の領域予約(817)をあらかじめ行ってからファイルI/Oを発行する。領域予約の方法には、OSやファイルシステムが提供する領域予約のためのシステムコールを利用する方法や、遅延書き込み機能を持つファイルシステムの場合には遅延書き込みをOFFに設定する方法や、同時書き込みが起こらないように書き込み処理をシーケンシャルに実行していく方法や、あらかじめファイル全体と同サイズのダミーファイルを作成して、当該ファイルの上書きしていく方法などがあり、ファイルシステムの種類に応じて最適な方法を選択できる。
以上述べた以外のファイルI/Oのオプション調整方法についても、当該方法を識別する番号を与えて、当該番号を上述の多次元のテーブルの適切な箇所に要素として格納することにより全て対応することが出来る。
なお、以上述べたQoS保証プログラム140およびQoS保証プログラム140に含まれる他のプログラムの内部情報は、全て管理プログラム150を用いて取得したり、書き換えたり、追加したりすることが出来る。具体的には、メモリ114上の情報は当該メモリ空間を使用しているプログラムが自由に読み書きできるのであるから、たとえばOSプログラム120が提供するプログラム間通信の機能を用いて、管理プログラム150がQoS保証プログラム140に情報の提供を要求した場合に、QoS保証プログラム140が当該情報を提供すれば、管理プログラム150はQoS保証プログラム140の情報を容易に取得できる。
以下、本発明の第1の実施形態とは異なる実施形態について述べる。
図9は、本発明の第2の実施形態による計算機システムの構成例を示す図である。本発明の第2の実施形態では、コンテンツ配信サーバプログラム130にQoS保証プログラム140を内蔵する。これにより、I/O中継プログラム122が不要になるか、サイズの大きいデータについてI/O中継プログラム122を介さず、直接コンテンツ配信サーバプログラム130とQoS保証プログラム140の間で引き渡すことができるというメリットがある。
図10は、本発明の第3の実施形態による計算機システムの構成例を示す図である。本発明の第3の実施形態では、QoS保証プログラム140をネットワークファイルシステムサーバプログラム(NFSサーバプログラム)160に内蔵する。これにより、I/O中継プログラム122が不要となり、さらに、QoS保証プログラム140を含むNFSサーバプログラム160をコンテンツ配信サーバ100の中だけでなく、外部のNFSサーバ102として実施して、複数のコンテンツ配信サーバ100で共有するような実施も可能となる。 図11は、本発明の第4の実施形態による計算機システムの構成例を示す図である。本発明の第4の実施形態では、QoS保証プログラム140をOSプログラム120内で動作するローダブルカーネルモジュールとして実施する。これにより、アプリケーション空間とOS空間の間で情報を送受することによるオーバヘッドを削減できる。
100:コンテンツ配信サーバ装置
101:端末装置
111:CPU
112:ネットワークインターフェース
113:ディスク
120:OSプログラム
121:標準ファイルシステムプログラム
122:I/O中継プログラム
130:コンテンツ配信サーバプログラム
131:時刻情報付ファイルI/O生成プログラム
140:QoS保証プログラム
141:ファイルI/O変換プログラム
142:標準ファイルシステム情報取得プログラム
143:ファイルシステム動作予測プログラム
144: I/Oオプション調整プログラム
145:ディスク情報取得プログラム
150:管理プログラム

Claims (14)

  1. 端末と接続され、前記端末に対してデータを送受信するネットワークインターフェースと、
    データが格納されるディスク装置と、
    時刻情報付ファイルI/Oを通常のファイルI/Oに変換する手段と、
    前記通常のファイルI/Oの発行先となるファイルシステムの情報を取得する手段と、
    前記ファイルシステムのブロックI/Oの発行先となる前記ディスク装置の情報を取得する手段と、
    前記ファイルシステムの情報に基づいて、ファイルI/OがどのようにブロックI/Oに変換されるか予測する手段と、
    前記予測に基づいて、ファイルI/Oの要求に付属するオプションを調整する手段と、を備えるコンテンツ配信装置。
  2. 請求項1に記載のコンテンツ配信装置において、
    前記時刻情報付ファイルI/O要求を一般的なファイルI/O要求およびファイルI/O要求のオプションに変換する手段と、
    前記ファイルI/O要求およびファイルI/O要求のオプションの発行タイミングを調整する手段を備えることによりQoS保証を実現するコンテンツ配信装置。
  3. 請求項2に記載のコンテンツ配信装置において、
    前記時刻情報付ファイルI/O要求の時刻情報を参照して期限までの猶予時間が短い順に処理する手段を備えるコンテンツ配信装置。
  4. 請求項3に記載のコンテンツ配信装置において、
    前記時刻情報付ファイルI/O要求の猶予時間が所定の閾値を下回っているか判断し、前記猶予時間が前記閾値を下回っていない場合、前記ファイルI/O要求と連続した領域に対するファイルI/O要求とをグループ化する手段を有するコンテンツ配信装置。
  5. 請求項1記載のコンテンツ配信装置において、
    ファイルシステムの種類やその設定など条件によってQoS保証が困難と予想される場合、前記ファイルシステムの種類や、その設定や、その他条件に問題があることを警告することを特徴とするコンテンツ配信装置。
  6. 請求項1に記載のコンテンツ配信装置において、
    I/O要求にデッドライン時刻とI/Oポリシーと、の情報を付加することを特徴とするコンテンツ配信装置。
  7. 請求項1に記載のコンテンツ配信装置において、
    I/O要求を処理するのに要した時間を最新の実績値を用いて更新する手段と当該時間を取得する手段を備えることを特徴とするコンテンツ配信装置。
  8. 端末と接続され、前記端末に対してデータを送受信するネットワークインターフェースと、データが格納されるディスク装置と、前記ネットワークインターフェースと、前記ディスク装置に接続されデータを処理するプロセッサと、を有するコンテンツ配信装置のコンテンツ配信方法であって、
    前記プロセッサは、時刻情報付ファイルI/Oを通常のファイルI/Oに変換し、
    前記通常のファイルI/Oの発行先となるファイルシステムの情報を取得し、
    前記ファイルシステムのブロックI/Oの発行先となる前記ディスク装置の情報を取得し、
    前記ファイルシステムの情報に基づいて、ファイルI/OがどのようにブロックI/Oに変換されるか予測し、
    前記予測に基づいて、ファイルI/Oの要求に付属するオプションを調整するコンテンツ配信方法。
  9. 請求項8に記載のコンテンツ配信装置のコンテンツ配信方法において、
    前記プロセッサは、前記時刻情報付ファイルI/O要求を一般的なファイルI/O要求およびファイルI/O要求のオプションに変換し、
    前記ファイルI/O要求およびファイルI/O要求のオプションの発行タイミングを調整するコンテンツ配信方法。
  10. 請求項9に記載のコンテンツ配信装置のコンテンツ配信方法において、
    前記プロセッサは、前記時刻情報付ファイルI/O要求の時刻情報を参照して期限までの猶予時間が短い順に処理するコンテンツ配信方法。
  11. 請求項10に記載のコンテンツ配信装置のコンテンツ配信方法において、
    前記プロセッサは、前記時刻情報付ファイルI/O要求の猶予時間が所定の閾値を下回っているか判断し、前記猶予時間が前記閾値を下回っていない場合、前記ファイルI/O要求と連続した領域に対するファイルI/O要求とをグループ化するコンテンツ配信方法。
  12. 請求項8に記載のコンテンツ配信装置のコンテンツ配信方法において、
    ファイルシステムの種類やその設定の条件によってQoS保証が困難と予想される場合、前記プロセッサは、前記ファイルシステムの種類や、その設定や、その他条件に問題があることを警告するコンテンツ配信方法。
  13. 請求項8に記載のコンテンツ配信装置のコンテンツ配信方法において、
    前記プロセッサは、I/O要求にデッドライン時刻とI/Oポリシーと、の情報を付加するコンテンツ配信方法。
  14. 請求項8に記載のコンテンツ配信装置のコンテンツ配信方法において、
    前記プロセッサは、I/O要求を処理するのに要した時間を最新の実績値を用いて更新および取得するコンテンツ配信方法。
JP2013208713A 2013-10-04 2013-10-04 コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法 Active JP6165580B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013208713A JP6165580B2 (ja) 2013-10-04 2013-10-04 コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013208713A JP6165580B2 (ja) 2013-10-04 2013-10-04 コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法

Publications (2)

Publication Number Publication Date
JP2015072643A true JP2015072643A (ja) 2015-04-16
JP6165580B2 JP6165580B2 (ja) 2017-07-19

Family

ID=53014956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013208713A Active JP6165580B2 (ja) 2013-10-04 2013-10-04 コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法

Country Status (1)

Country Link
JP (1) JP6165580B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950667A (ja) * 1995-07-31 1997-02-18 Hewlett Packard Co <Hp> ディスク・ドライブを制御する方法
JPH09190293A (ja) * 1996-01-12 1997-07-22 Nec Corp データ読出装置
JP2004104212A (ja) * 2002-09-05 2004-04-02 Matsushita Electric Ind Co Ltd 帯域管理ファイルシステム装置並びにそのプログラムとプログラム記録媒体
JP2005135126A (ja) * 2003-10-30 2005-05-26 Hitachi Ltd フラグメント防止ファイルシステム
JP2006285809A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置
JP2007058727A (ja) * 2005-08-26 2007-03-08 Hitachi Ltd ストレージ管理システムおよびその方法
US20110082950A1 (en) * 2009-10-07 2011-04-07 Hitachi, Ltd. Computer system and computer system input/output method
JP2013196066A (ja) * 2012-03-16 2013-09-30 Hitachi Information & Control Solutions Ltd ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950667A (ja) * 1995-07-31 1997-02-18 Hewlett Packard Co <Hp> ディスク・ドライブを制御する方法
JPH09190293A (ja) * 1996-01-12 1997-07-22 Nec Corp データ読出装置
JP2004104212A (ja) * 2002-09-05 2004-04-02 Matsushita Electric Ind Co Ltd 帯域管理ファイルシステム装置並びにそのプログラムとプログラム記録媒体
JP2005135126A (ja) * 2003-10-30 2005-05-26 Hitachi Ltd フラグメント防止ファイルシステム
JP2006285809A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置
JP2007058727A (ja) * 2005-08-26 2007-03-08 Hitachi Ltd ストレージ管理システムおよびその方法
US20110082950A1 (en) * 2009-10-07 2011-04-07 Hitachi, Ltd. Computer system and computer system input/output method
JP2013196066A (ja) * 2012-03-16 2013-09-30 Hitachi Information & Control Solutions Ltd ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム

Also Published As

Publication number Publication date
JP6165580B2 (ja) 2017-07-19

Similar Documents

Publication Publication Date Title
US9563369B2 (en) Fine-grained bandwidth provisioning in a memory controller
US8996840B2 (en) I/O controller and method for operating an I/O controller
WO2016011894A1 (zh) 报文处理方法和装置
US20190007480A1 (en) Methods, systems, and media for stored content distribution and access
US7490185B2 (en) Data processing system, access control method, and access control device
US9864706B2 (en) Management of allocation for alias devices
US11093352B2 (en) Fault management in NVMe systems
US10810143B2 (en) Distributed storage system and method for managing storage access bandwidth for multiple clients
JP2018110387A (ja) リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステム
JP2015520425A (ja) 計算機システム及びその制御方法
US20190205175A1 (en) Feedback mechanism for controlling dispatching work tasks in a multi-tier storage environment
CN106657182B (zh) 云端文件处理方法和装置
KR20190094690A (ko) 스토리지 서버 및 분산 파일 시스템에서 스토리지 서버에 의해 수행되는 적응형 프리페칭 방법
WO2016206463A1 (zh) 一种写操作控制方法、装置及系统
US10169260B2 (en) Multiprocessor cache buffer management
JP6331944B2 (ja) 情報処理装置、メモリ制御装置及び情報処理装置の制御方法
US20220214832A1 (en) Prefetching metadata in a storage system
JP6165580B2 (ja) コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法
US20170163555A1 (en) Video file buffering method and system
EP3293625B1 (en) Method and device for accessing file, and storage system
JPWO2008149657A1 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
CN116107635A (zh) 命令分发器、命令分发方法、调度器、芯片、板卡、设备
CN105264498B (zh) 用于通用串行总线系统的高速缓存管理的系统和方法
JP4872942B2 (ja) ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
CN105608212B (zh) 一种确保MapReduce的数据输入分片包含完整记录的方法与系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170116

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170621

R150 Certificate of patent or registration of utility model

Ref document number: 6165580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150